/* AUTHORIZATION SKIP ES6 */
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([
  ["chunk-vendors"],
  {
    "00ad": function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("6373"),
        A = n("453f"),
        o = "startsWith",
        a = ""[o];
      r(r.P + r.F * n("3afb")(o), "String", {
        startsWith: function (e) {
          var t = A(this, e, o),
            n = i(
              Math.min(arguments.length > 1 ? arguments[1] : void 0, t.length),
            ),
            r = String(e);
          return a ? a.call(t, r, n) : t.slice(n, n + r.length) === r;
        },
      });
    },
    "00ee": function (e, t, n) {
      var r = n("b622"),
        i = r("toStringTag"),
        A = {};
      ((A[i] = "z"), (e.exports = "[object z]" === String(A)));
    },
    "019f": function (e, t, n) {
      var r = n("9fe8");
      e.exports = function (e, t) {
        if (!r(e)) return e;
        var n, i;
        if (t && "function" == typeof (n = e.toString) && !r((i = n.call(e))))
          return i;
        if ("function" == typeof (n = e.valueOf) && !r((i = n.call(e))))
          return i;
        if (!t && "function" == typeof (n = e.toString) && !r((i = n.call(e))))
          return i;
        throw TypeError("Can't convert object to primitive value");
      };
    },
    "0209": function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("cffc")(2);
      r(r.P + r.F * !n("55c7")([].filter, !0), "Array", {
        filter: function (e) {
          return i(this, e, arguments[1]);
        },
      });
    },
    "02ee": function (e, t, n) {
      "use strict";
      var r = n("2ce8"),
        i = n("9fe8"),
        A = n("09db"),
        o = [].slice,
        a = {},
        s = function (e, t, n) {
          if (!(t in a)) {
            for (var r = [], i = 0; i < t; i++) r[i] = "a[" + i + "]";
            a[t] = Function("F,a", "return new F(" + r.join(",") + ")");
          }
          return a[t](e, n);
        };
      e.exports =
        Function.bind ||
        function (e) {
          var t = r(this),
            n = o.call(arguments, 1),
            a = function () {
              var r = n.concat(o.call(arguments));
              return this instanceof a ? s(t, r.length, r) : A(t, r, e);
            };
          return (i(t.prototype) && (a.prototype = t.prototype), a);
        };
    },
    "02f7": function (e, t, n) {
      n("c94e") &&
        "g" != /./g.flags &&
        n("2761").f(RegExp.prototype, "flags", {
          configurable: !0,
          get: n("66ac"),
        });
    },
    "0366": function (e, t, n) {
      var r = n("e330"),
        i = n("59ed"),
        A = n("40d5"),
        o = r(r.bind);
      e.exports = function (e, t) {
        return (
          i(e),
          void 0 === t
            ? e
            : A
              ? o(e, t)
              : function () {
                  return e.apply(t, arguments);
                }
        );
      };
    },
    "04fa": function (e, t, n) {
      for (
        var r = n("21d0"),
          i = n("5a5d"),
          A = n("77ea"),
          o = n("93e0"),
          a = n("0713"),
          s = n("c053"),
          c = n("de24"),
          u = c("iterator"),
          l = c("toStringTag"),
          h = s.Array,
          f = {
            CSSRuleList: !0,
            CSSStyleDeclaration: !1,
            CSSValueList: !1,
            ClientRectList: !1,
            DOMRectList: !1,
            DOMStringList: !1,
            DOMTokenList: !0,
            DataTransferItemList: !1,
            FileList: !1,
            HTMLAllCollection: !1,
            HTMLCollection: !1,
            HTMLFormElement: !1,
            HTMLSelectElement: !1,
            MediaList: !0,
            MimeTypeArray: !1,
            NamedNodeMap: !1,
            NodeList: !0,
            PaintRequestList: !1,
            Plugin: !1,
            PluginArray: !1,
            SVGLengthList: !1,
            SVGNumberList: !1,
            SVGPathSegList: !1,
            SVGPointList: !1,
            SVGStringList: !1,
            SVGTransformList: !1,
            SourceBufferList: !1,
            StyleSheetList: !0,
            TextTrackCueList: !1,
            TextTrackList: !1,
            TouchList: !1,
          },
          d = i(f),
          p = 0;
        p < d.length;
        p++
      ) {
        var g,
          m = d[p],
          v = f[m],
          y = o[m],
          w = y && y.prototype;
        if (w && (w[u] || a(w, u, h), w[l] || a(w, l, m), (s[m] = h), v))
          for (g in r) w[g] || A(w, g, r[g], !0);
      }
    },
    "0635": function (e, t, n) {
      var r = n("9fe8");
      n("0a66")("isFrozen", function (e) {
        return function (t) {
          return !r(t) || (!!e && e(t));
        };
      });
    },
    "066b": function (e, t, n) {
      var r = n("f083");
      r(r.S, "Number", { MIN_SAFE_INTEGER: -9007199254740991 });
    },
    "06cf": function (e, t, n) {
      var r = n("83ab"),
        i = n("c65b"),
        A = n("d1e7"),
        o = n("5c6c"),
        a = n("fc6a"),
        s = n("a04b"),
        c = n("1a2d"),
        u = n("0cfb"),
        l = Object.getOwnPropertyDescriptor;
      t.f = r
        ? l
        : function (e, t) {
            if (((e = a(e)), (t = s(t)), u))
              try {
                return l(e, t);
              } catch (n) {}
            if (c(e, t)) return o(!i(A.f, e, t), e[t]);
          };
    },
    "06e3": function (e, t, n) {
      n("1b1e")("Int32", 4, function (e) {
        return function (t, n, r) {
          return e(this, t, n, r);
        };
      });
    },
    "0713": function (e, t, n) {
      var r = n("2761"),
        i = n("fb32");
      e.exports = n("c94e")
        ? function (e, t, n) {
            return r.f(e, t, i(1, n));
          }
        : function (e, t, n) {
            return ((e[t] = n), e);
          };
    },
    "076f": function (e, t, n) {
      "use strict";
      var r = n("d77f"),
        i = n("a87b"),
        A = n("fef8");
      n("9ed1")("search", 1, function (e, t, n, o) {
        return [
          function (n) {
            var r = e(this),
              i = void 0 == n ? void 0 : n[t];
            return void 0 !== i ? i.call(n, r) : new RegExp(n)[t](String(r));
          },
          function (e) {
            var t = o(n, e, this);
            if (t.done) return t.value;
            var a = r(e),
              s = String(this),
              c = a.lastIndex;
            i(c, 0) || (a.lastIndex = 0);
            var u = A(a, s);
            return (
              i(a.lastIndex, c) || (a.lastIndex = c),
              null === u ? -1 : u.index
            );
          },
        ];
      });
    },
    "07fa": function (e, t, n) {
      var r = n("50c4");
      e.exports = function (e) {
        return r(e.length);
      };
    },
    "0821": function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("2ce8"),
        A = n("42ee"),
        o = n("f937"),
        a = [].sort,
        s = [1, 2, 3];
      r(
        r.P +
          r.F *
            (o(function () {
              s.sort(void 0);
            }) ||
              !o(function () {
                s.sort(null);
              }) ||
              !n("55c7")(a)),
        "Array",
        {
          sort: function (e) {
            return void 0 === e ? a.call(A(this)) : a.call(A(this), i(e));
          },
        },
      );
    },
    "0840": function (e, t, n) {
      n("1b1e")("Uint32", 4, function (e) {
        return function (t, n, r) {
          return e(this, t, n, r);
        };
      });
    },
    "085a": function (e, t, n) {
      var r = n("f083");
      r(r.S, "Math", {
        clamp: function (e, t, n) {
          return Math.min(n, Math.max(t, e));
        },
      });
    },
    "08bf": function (e, t, n) {
      "use strict";
      n("e681")("link", function (e) {
        return function (t) {
          return e(this, "a", "href", t);
        };
      });
    },
    "09db": function (e, t) {
      e.exports = function (e, t, n) {
        var r = void 0 === n;
        switch (t.length) {
          case 0:
            return r ? e() : e.call(n);
          case 1:
            return r ? e(t[0]) : e.call(n, t[0]);
          case 2:
            return r ? e(t[0], t[1]) : e.call(n, t[0], t[1]);
          case 3:
            return r ? e(t[0], t[1], t[2]) : e.call(n, t[0], t[1], t[2]);
          case 4:
            return r
              ? e(t[0], t[1], t[2], t[3])
              : e.call(n, t[0], t[1], t[2], t[3]);
        }
        return e.apply(n, t);
      };
    },
    "0a48": function (e, t, n) {
      var r = n("832c");
      e.exports = function (e, t) {
        return new (r(e))(t);
      };
    },
    "0a66": function (e, t, n) {
      var r = n("f083"),
        i = n("0ae2"),
        A = n("f937");
      e.exports = function (e, t) {
        var n = (i.Object || {})[e] || Object[e],
          o = {};
        ((o[e] = t(n)),
          r(
            r.S +
              r.F *
                A(function () {
                  n(1);
                }),
            "Object",
            o,
          ));
      };
    },
    "0ae2": function (e, t) {
      var n = (e.exports = { version: "2.6.12" });
      "number" == typeof __e && (__e = n);
    },
    "0b67": function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("688d"),
        A = n("6373"),
        o = n("37a2"),
        a = n("66ac"),
        s = RegExp.prototype,
        c = function (e, t) {
          ((this._r = e), (this._s = t));
        };
      (n("6ada")(c, "RegExp String", function () {
        var e = this._r.exec(this._s);
        return { value: e, done: null === e };
      }),
        r(r.P, "String", {
          matchAll: function (e) {
            if ((i(this), !o(e))) throw TypeError(e + " is not a regexp!");
            var t = String(this),
              n = "flags" in s ? String(e.flags) : a.call(e),
              r = new RegExp(e.source, ~n.indexOf("g") ? n : "g" + n);
            return ((r.lastIndex = A(e.lastIndex)), new c(r, t));
          },
        }));
    },
    "0ba2": function (e, t, n) {
      "use strict";
      var r = n("42ee"),
        i = n("6fc7"),
        A = n("6373");
      e.exports = function (e) {
        var t = r(this),
          n = A(t.length),
          o = arguments.length,
          a = i(o > 1 ? arguments[1] : void 0, n),
          s = o > 2 ? arguments[2] : void 0,
          c = void 0 === s ? n : i(s, n);
        while (c > a) t[a++] = e;
        return t;
      };
    },
    "0bbe": function (e, t, n) {
      "use strict";
      var r = n("d77f"),
        i = n("42ee"),
        A = n("6373"),
        o = n("9b6f"),
        a = n("6972"),
        s = n("fef8"),
        c = Math.max,
        u = Math.min,
        l = Math.floor,
        h = /\$([$&`']|\d\d?|<[^>]*>)/g,
        f = /\$([$&`']|\d\d?)/g,
        d = function (e) {
          return void 0 === e ? e : String(e);
        };
      n("9ed1")("replace", 2, function (e, t, n, p) {
        return [
          function (r, i) {
            var A = e(this),
              o = void 0 == r ? void 0 : r[t];
            return void 0 !== o ? o.call(r, A, i) : n.call(String(A), r, i);
          },
          function (e, t) {
            var i = p(n, e, this, t);
            if (i.done) return i.value;
            var l = r(e),
              h = String(this),
              f = "function" === typeof t;
            f || (t = String(t));
            var m = l.global;
            if (m) {
              var v = l.unicode;
              l.lastIndex = 0;
            }
            var y = [];
            while (1) {
              var w = s(l, h);
              if (null === w) break;
              if ((y.push(w), !m)) break;
              var B = String(w[0]);
              "" === B && (l.lastIndex = a(h, A(l.lastIndex), v));
            }
            for (var b = "", _ = 0, x = 0; x < y.length; x++) {
              w = y[x];
              for (
                var C = String(w[0]),
                  E = c(u(o(w.index), h.length), 0),
                  M = [],
                  S = 1;
                S < w.length;
                S++
              )
                M.push(d(w[S]));
              var F = w.groups;
              if (f) {
                var T = [C].concat(M, E, h);
                void 0 !== F && T.push(F);
                var U = String(t.apply(void 0, T));
              } else U = g(C, h, E, M, F, t);
              E >= _ && ((b += h.slice(_, E) + U), (_ = E + C.length));
            }
            return b + h.slice(_);
          },
        ];
        function g(e, t, r, A, o, a) {
          var s = r + e.length,
            c = A.length,
            u = f;
          return (
            void 0 !== o && ((o = i(o)), (u = h)),
            n.call(a, u, function (n, i) {
              var a;
              switch (i.charAt(0)) {
                case "$":
                  return "$";
                case "&":
                  return e;
                case "`":
                  return t.slice(0, r);
                case "'":
                  return t.slice(s);
                case "<":
                  a = o[i.slice(1, -1)];
                  break;
                default:
                  var u = +i;
                  if (0 === u) return n;
                  if (u > c) {
                    var h = l(u / 10);
                    return 0 === h
                      ? n
                      : h <= c
                        ? void 0 === A[h - 1]
                          ? i.charAt(1)
                          : A[h - 1] + i.charAt(1)
                        : n;
                  }
                  a = A[u - 1];
              }
              return void 0 === a ? "" : a;
            })
          );
        }
      });
    },
    "0cfb": function (e, t, n) {
      var r = n("83ab"),
        i = n("d039"),
        A = n("cc12");
      e.exports =
        !r &&
        !i(function () {
          return (
            7 !=
            Object.defineProperty(A("div"), "a", {
              get: function () {
                return 7;
              },
            }).a
          );
        });
    },
    "0d51": function (e, t) {
      var n = String;
      e.exports = function (e) {
        try {
          return n(e);
        } catch (t) {
          return "Object";
        }
      };
    },
    "0db5": function (e, t, n) {
      var r = n("f083"),
        i = n("93e0").isFinite;
      r(r.S, "Number", {
        isFinite: function (e) {
          return "number" == typeof e && i(e);
        },
      });
    },
    "0f00": function (e, t, n) {
      var r = n("f083");
      r(r.S, "Math", {
        iaddh: function (e, t, n, r) {
          var i = e >>> 0,
            A = t >>> 0,
            o = n >>> 0;
          return (
            (A +
              (r >>> 0) +
              (((i & o) | ((i | o) & ~((i + o) >>> 0))) >>> 31)) |
            0
          );
        },
      });
    },
    "10dd": function (e, t) {
      t.f = Object.getOwnPropertySymbols;
    },
    1147: function (e, t, n) {
      var r = n("d77f"),
        i = n("2ce8"),
        A = n("de24")("species");
      e.exports = function (e, t) {
        var n,
          o = r(e).constructor;
        return void 0 === o || void 0 == (n = r(o)[A]) ? t : i(n);
      };
    },
    "11da": function (e, t, n) {
      var r = n("f083"),
        i = Math.imul;
      r(
        r.S +
          r.F *
            n("f937")(function () {
              return -5 != i(4294967295, 5) || 2 != i.length;
            }),
        "Math",
        {
          imul: function (e, t) {
            var n = 65535,
              r = +e,
              i = +t,
              A = n & r,
              o = n & i;
            return (
              0 |
              (A * o +
                ((((n & (r >>> 16)) * o + A * (n & (i >>> 16))) << 16) >>> 0))
            );
          },
        },
      );
    },
    "11e2": function (e, t, n) {
      var r = n("9fe8"),
        i = n("4759").set;
      e.exports = function (e, t, n) {
        var A,
          o = t.constructor;
        return (
          o !== n &&
            "function" == typeof o &&
            (A = o.prototype) !== n.prototype &&
            r(A) &&
            i &&
            i(e, A),
          e
        );
      };
    },
    1296: function (e, t, n) {
      var r = n("f083");
      r(r.S, "Math", {
        log10: function (e) {
          return Math.log(e) * Math.LOG10E;
        },
      });
    },
    "13d2": function (e, t, n) {
      var r = n("d039"),
        i = n("1626"),
        A = n("1a2d"),
        o = n("83ab"),
        a = n("5e77").CONFIGURABLE,
        s = n("8925"),
        c = n("69f3"),
        u = c.enforce,
        l = c.get,
        h = Object.defineProperty,
        f =
          o &&
          !r(function () {
            return 8 !== h(function () {}, "length", { value: 8 }).length;
          }),
        d = String(String).split("String"),
        p = (e.exports = function (e, t, n) {
          ("Symbol(" === String(t).slice(0, 7) &&
            (t = "[" + String(t).replace(/^Symbol\(([^)]*)\)/, "$1") + "]"),
            n && n.getter && (t = "get " + t),
            n && n.setter && (t = "set " + t),
            (!A(e, "name") || (a && e.name !== t)) &&
              (o ? h(e, "name", { value: t, configurable: !0 }) : (e.name = t)),
            f &&
              n &&
              A(n, "arity") &&
              e.length !== n.arity &&
              h(e, "length", { value: n.arity }));
          try {
            n && A(n, "constructor") && n.constructor
              ? o && h(e, "prototype", { writable: !1 })
              : e.prototype && (e.prototype = void 0);
          } catch (i) {}
          var r = u(e);
          return (
            A(r, "source") ||
              (r.source = d.join("string" == typeof t ? t : "")),
            e
          );
        });
      Function.prototype.toString = p(function () {
        return (i(this) && l(this).source) || s(this);
      }, "toString");
    },
    "13d5": function (e, t, n) {
      "use strict";
      var r = n("23e7"),
        i = n("d58f").left,
        A = n("a640"),
        o = n("2d00"),
        a = n("605d"),
        s = A("reduce"),
        c = !a && o > 79 && o < 83;
      r(
        { target: "Array", proto: !0, forced: !s || c },
        {
          reduce: function (e) {
            var t = arguments.length;
            return i(this, e, t, t > 1 ? arguments[1] : void 0);
          },
        },
      );
    },
    "14c9": function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("93e0"),
        A = n("0ae2"),
        o = n("bde8")(),
        a = n("de24")("observable"),
        s = n("2ce8"),
        c = n("d77f"),
        u = n("928a"),
        l = n("c668"),
        h = n("0713"),
        f = n("8fc4"),
        d = f.RETURN,
        p = function (e) {
          return null == e ? void 0 : s(e);
        },
        g = function (e) {
          var t = e._c;
          t && ((e._c = void 0), t());
        },
        m = function (e) {
          return void 0 === e._o;
        },
        v = function (e) {
          m(e) || ((e._o = void 0), g(e));
        },
        y = function (e, t) {
          (c(e), (this._c = void 0), (this._o = e), (e = new w(this)));
          try {
            var n = t(e),
              r = n;
            null != n &&
              ("function" === typeof n.unsubscribe
                ? (n = function () {
                    r.unsubscribe();
                  })
                : s(n),
              (this._c = n));
          } catch (i) {
            return void e.error(i);
          }
          m(this) && g(this);
        };
      y.prototype = l(
        {},
        {
          unsubscribe: function () {
            v(this);
          },
        },
      );
      var w = function (e) {
        this._s = e;
      };
      w.prototype = l(
        {},
        {
          next: function (e) {
            var t = this._s;
            if (!m(t)) {
              var n = t._o;
              try {
                var r = p(n.next);
                if (r) return r.call(n, e);
              } catch (i) {
                try {
                  v(t);
                } finally {
                  throw i;
                }
              }
            }
          },
          error: function (e) {
            var t = this._s;
            if (m(t)) throw e;
            var n = t._o;
            t._o = void 0;
            try {
              var r = p(n.error);
              if (!r) throw e;
              e = r.call(n, e);
            } catch (i) {
              try {
                g(t);
              } finally {
                throw i;
              }
            }
            return (g(t), e);
          },
          complete: function (e) {
            var t = this._s;
            if (!m(t)) {
              var n = t._o;
              t._o = void 0;
              try {
                var r = p(n.complete);
                e = r ? r.call(n, e) : void 0;
              } catch (i) {
                try {
                  g(t);
                } finally {
                  throw i;
                }
              }
              return (g(t), e);
            }
          },
        },
      );
      var B = function (e) {
        u(this, B, "Observable", "_f")._f = s(e);
      };
      (l(B.prototype, {
        subscribe: function (e) {
          return new y(e, this._f);
        },
        forEach: function (e) {
          var t = this;
          return new (A.Promise || i.Promise)(function (n, r) {
            s(e);
            var i = t.subscribe({
              next: function (t) {
                try {
                  return e(t);
                } catch (n) {
                  (r(n), i.unsubscribe());
                }
              },
              error: r,
              complete: n,
            });
          });
        },
      }),
        l(B, {
          from: function (e) {
            var t = "function" === typeof this ? this : B,
              n = p(c(e)[a]);
            if (n) {
              var r = c(n.call(e));
              return r.constructor === t
                ? r
                : new t(function (e) {
                    return r.subscribe(e);
                  });
            }
            return new t(function (t) {
              var n = !1;
              return (
                o(function () {
                  if (!n) {
                    try {
                      if (
                        f(e, !1, function (e) {
                          if ((t.next(e), n)) return d;
                        }) === d
                      )
                        return;
                    } catch (r) {
                      if (n) throw r;
                      return void t.error(r);
                    }
                    t.complete();
                  }
                }),
                function () {
                  n = !0;
                }
              );
            });
          },
          of: function () {
            for (var e = 0, t = arguments.length, n = new Array(t); e < t; )
              n[e] = arguments[e++];
            return new ("function" === typeof this ? this : B)(function (e) {
              var t = !1;
              return (
                o(function () {
                  if (!t) {
                    for (var r = 0; r < n.length; ++r)
                      if ((e.next(n[r]), t)) return;
                    e.complete();
                  }
                }),
                function () {
                  t = !0;
                }
              );
            });
          },
        }),
        h(B.prototype, a, function () {
          return this;
        }),
        r(r.G, { Observable: B }),
        n("3a2f")("Observable"));
    },
    "15e3": function (e, t, n) {
      var r = n("1c6a"),
        i = n("d77f"),
        A = r.has,
        o = r.key;
      r.exp({
        hasOwnMetadata: function (e, t) {
          return A(e, i(t), arguments.length < 3 ? void 0 : o(arguments[2]));
        },
      });
    },
    1626: function (e, t) {
      e.exports = function (e) {
        return "function" == typeof e;
      };
    },
    "167a": function (e, t, n) {
      n("f948")("Set");
    },
    "182d": function (e, t, n) {
      var r = n("f8cd"),
        i = RangeError;
      e.exports = function (e, t) {
        var n = r(e);
        if (n % t) throw i("Wrong offset");
        return n;
      };
    },
    "18f1": function (e, t, n) {
      var r = n("f083"),
        i = n("8539");
      r(r.S + r.F * (Number.parseFloat != i), "Number", { parseFloat: i });
    },
    "19aa": function (e, t, n) {
      var r = n("3a9b"),
        i = TypeError;
      e.exports = function (e, t) {
        if (r(t, e)) return e;
        throw i("Incorrect invocation");
      };
    },
    "1a2d": function (e, t, n) {
      var r = n("e330"),
        i = n("7b0b"),
        A = r({}.hasOwnProperty);
      e.exports =
        Object.hasOwn ||
        function (e, t) {
          return A(i(e), t);
        };
    },
    "1af4": function (e, t, n) {
      var r = n("6373"),
        i = n("6012"),
        A = n("688d");
      e.exports = function (e, t, n, o) {
        var a = String(A(e)),
          s = a.length,
          c = void 0 === n ? " " : String(n),
          u = r(t);
        if (u <= s || "" == c) return a;
        var l = u - s,
          h = i.call(c, Math.ceil(l / c.length));
        return (h.length > l && (h = h.slice(0, l)), o ? h + a : a + h);
      };
    },
    "1b18": function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("d77f"),
        A = function (e) {
          ((this._t = i(e)), (this._i = 0));
          var t,
            n = (this._k = []);
          for (t in e) n.push(t);
        };
      (n("6ada")(A, "Object", function () {
        var e,
          t = this,
          n = t._k;
        do {
          if (t._i >= n.length) return { value: void 0, done: !0 };
        } while (!((e = n[t._i++]) in t._t));
        return { value: e, done: !1 };
      }),
        r(r.S, "Reflect", {
          enumerate: function (e) {
            return new A(e);
          },
        }));
    },
    "1b1e": function (e, t, n) {
      "use strict";
      if (n("c94e")) {
        var r = n("cee8"),
          i = n("93e0"),
          A = n("f937"),
          o = n("f083"),
          a = n("f308"),
          s = n("b799"),
          c = n("911a"),
          u = n("928a"),
          l = n("fb32"),
          h = n("0713"),
          f = n("c668"),
          d = n("9b6f"),
          p = n("6373"),
          g = n("53d3"),
          m = n("6fc7"),
          v = n("019f"),
          y = n("2fb2"),
          w = n("5155"),
          B = n("9fe8"),
          b = n("42ee"),
          _ = n("c786"),
          x = n("6621"),
          C = n("ed60"),
          E = n("dbb2").f,
          M = n("a37b"),
          S = n("5689"),
          F = n("de24"),
          T = n("cffc"),
          U = n("27c4"),
          Q = n("1147"),
          L = n("21d0"),
          I = n("c053"),
          H = n("ebe8"),
          O = n("3a2f"),
          R = n("0ba2"),
          P = n("f945"),
          D = n("2761"),
          N = n("8d87"),
          k = D.f,
          G = N.f,
          V = i.RangeError,
          z = i.TypeError,
          j = i.Uint8Array,
          K = "ArrayBuffer",
          W = "Shared" + K,
          X = "BYTES_PER_ELEMENT",
          Y = "prototype",
          J = Array[Y],
          q = s.ArrayBuffer,
          Z = s.DataView,
          $ = T(0),
          ee = T(2),
          te = T(3),
          ne = T(4),
          re = T(5),
          ie = T(6),
          Ae = U(!0),
          oe = U(!1),
          ae = L.values,
          se = L.keys,
          ce = L.entries,
          ue = J.lastIndexOf,
          le = J.reduce,
          he = J.reduceRight,
          fe = J.join,
          de = J.sort,
          pe = J.slice,
          ge = J.toString,
          me = J.toLocaleString,
          ve = F("iterator"),
          ye = F("toStringTag"),
          we = S("typed_constructor"),
          Be = S("def_constructor"),
          be = a.CONSTR,
          _e = a.TYPED,
          xe = a.VIEW,
          Ce = "Wrong length!",
          Ee = T(1, function (e, t) {
            return Ue(Q(e, e[Be]), t);
          }),
          Me = A(function () {
            return 1 === new j(new Uint16Array([1]).buffer)[0];
          }),
          Se =
            !!j &&
            !!j[Y].set &&
            A(function () {
              new j(1).set({});
            }),
          Fe = function (e, t) {
            var n = d(e);
            if (n < 0 || n % t) throw V("Wrong offset!");
            return n;
          },
          Te = function (e) {
            if (B(e) && _e in e) return e;
            throw z(e + " is not a typed array!");
          },
          Ue = function (e, t) {
            if (!B(e) || !(we in e))
              throw z("It is not a typed array constructor!");
            return new e(t);
          },
          Qe = function (e, t) {
            return Le(Q(e, e[Be]), t);
          },
          Le = function (e, t) {
            var n = 0,
              r = t.length,
              i = Ue(e, r);
            while (r > n) i[n] = t[n++];
            return i;
          },
          Ie = function (e, t, n) {
            k(e, t, {
              get: function () {
                return this._d[n];
              },
            });
          },
          He = function (e) {
            var t,
              n,
              r,
              i,
              A,
              o,
              a = b(e),
              s = arguments.length,
              u = s > 1 ? arguments[1] : void 0,
              l = void 0 !== u,
              h = M(a);
            if (void 0 != h && !_(h)) {
              for (o = h.call(a), r = [], t = 0; !(A = o.next()).done; t++)
                r.push(A.value);
              a = r;
            }
            for (
              l && s > 2 && (u = c(u, arguments[2], 2)),
                t = 0,
                n = p(a.length),
                i = Ue(this, n);
              n > t;
              t++
            )
              i[t] = l ? u(a[t], t) : a[t];
            return i;
          },
          Oe = function () {
            var e = 0,
              t = arguments.length,
              n = Ue(this, t);
            while (t > e) n[e] = arguments[e++];
            return n;
          },
          Re =
            !!j &&
            A(function () {
              me.call(new j(1));
            }),
          Pe = function () {
            return me.apply(Re ? pe.call(Te(this)) : Te(this), arguments);
          },
          De = {
            copyWithin: function (e, t) {
              return P.call(
                Te(this),
                e,
                t,
                arguments.length > 2 ? arguments[2] : void 0,
              );
            },
            every: function (e) {
              return ne(
                Te(this),
                e,
                arguments.length > 1 ? arguments[1] : void 0,
              );
            },
            fill: function (e) {
              return R.apply(Te(this), arguments);
            },
            filter: function (e) {
              return Qe(
                this,
                ee(Te(this), e, arguments.length > 1 ? arguments[1] : void 0),
              );
            },
            find: function (e) {
              return re(
                Te(this),
                e,
                arguments.length > 1 ? arguments[1] : void 0,
              );
            },
            findIndex: function (e) {
              return ie(
                Te(this),
                e,
                arguments.length > 1 ? arguments[1] : void 0,
              );
            },
            forEach: function (e) {
              $(Te(this), e, arguments.length > 1 ? arguments[1] : void 0);
            },
            indexOf: function (e) {
              return oe(
                Te(this),
                e,
                arguments.length > 1 ? arguments[1] : void 0,
              );
            },
            includes: function (e) {
              return Ae(
                Te(this),
                e,
                arguments.length > 1 ? arguments[1] : void 0,
              );
            },
            join: function (e) {
              return fe.apply(Te(this), arguments);
            },
            lastIndexOf: function (e) {
              return ue.apply(Te(this), arguments);
            },
            map: function (e) {
              return Ee(
                Te(this),
                e,
                arguments.length > 1 ? arguments[1] : void 0,
              );
            },
            reduce: function (e) {
              return le.apply(Te(this), arguments);
            },
            reduceRight: function (e) {
              return he.apply(Te(this), arguments);
            },
            reverse: function () {
              var e,
                t = this,
                n = Te(t).length,
                r = Math.floor(n / 2),
                i = 0;
              while (i < r) ((e = t[i]), (t[i++] = t[--n]), (t[n] = e));
              return t;
            },
            some: function (e) {
              return te(
                Te(this),
                e,
                arguments.length > 1 ? arguments[1] : void 0,
              );
            },
            sort: function (e) {
              return de.call(Te(this), e);
            },
            subarray: function (e, t) {
              var n = Te(this),
                r = n.length,
                i = m(e, r);
              return new (Q(n, n[Be]))(
                n.buffer,
                n.byteOffset + i * n.BYTES_PER_ELEMENT,
                p((void 0 === t ? r : m(t, r)) - i),
              );
            },
          },
          Ne = function (e, t) {
            return Qe(this, pe.call(Te(this), e, t));
          },
          ke = function (e) {
            Te(this);
            var t = Fe(arguments[1], 1),
              n = this.length,
              r = b(e),
              i = p(r.length),
              A = 0;
            if (i + t > n) throw V(Ce);
            while (A < i) this[t + A] = r[A++];
          },
          Ge = {
            entries: function () {
              return ce.call(Te(this));
            },
            keys: function () {
              return se.call(Te(this));
            },
            values: function () {
              return ae.call(Te(this));
            },
          },
          Ve = function (e, t) {
            return (
              B(e) &&
              e[_e] &&
              "symbol" != typeof t &&
              t in e &&
              String(+t) == String(t)
            );
          },
          ze = function (e, t) {
            return Ve(e, (t = v(t, !0))) ? l(2, e[t]) : G(e, t);
          },
          je = function (e, t, n) {
            return !(Ve(e, (t = v(t, !0))) && B(n) && y(n, "value")) ||
              y(n, "get") ||
              y(n, "set") ||
              n.configurable ||
              (y(n, "writable") && !n.writable) ||
              (y(n, "enumerable") && !n.enumerable)
              ? k(e, t, n)
              : ((e[t] = n.value), e);
          };
        (be || ((N.f = ze), (D.f = je)),
          o(o.S + o.F * !be, "Object", {
            getOwnPropertyDescriptor: ze,
            defineProperty: je,
          }),
          A(function () {
            ge.call({});
          }) &&
            (ge = me =
              function () {
                return fe.call(this);
              }));
        var Ke = f({}, De);
        (f(Ke, Ge),
          h(Ke, ve, Ge.values),
          f(Ke, {
            slice: Ne,
            set: ke,
            constructor: function () {},
            toString: ge,
            toLocaleString: Pe,
          }),
          Ie(Ke, "buffer", "b"),
          Ie(Ke, "byteOffset", "o"),
          Ie(Ke, "byteLength", "l"),
          Ie(Ke, "length", "e"),
          k(Ke, ye, {
            get: function () {
              return this[_e];
            },
          }),
          (e.exports = function (e, t, n, s) {
            s = !!s;
            var c = e + (s ? "Clamped" : "") + "Array",
              l = "get" + e,
              f = "set" + e,
              d = i[c],
              m = d || {},
              v = d && C(d),
              y = !d || !a.ABV,
              b = {},
              _ = d && d[Y],
              M = function (e, n) {
                var r = e._d;
                return r.v[l](n * t + r.o, Me);
              },
              S = function (e, n, r) {
                var i = e._d;
                (s &&
                  (r = (r = Math.round(r)) < 0 ? 0 : r > 255 ? 255 : 255 & r),
                  i.v[f](n * t + i.o, r, Me));
              },
              F = function (e, t) {
                k(e, t, {
                  get: function () {
                    return M(this, t);
                  },
                  set: function (e) {
                    return S(this, t, e);
                  },
                  enumerable: !0,
                });
              };
            y
              ? ((d = n(function (e, n, r, i) {
                  u(e, d, c, "_d");
                  var A,
                    o,
                    a,
                    s,
                    l = 0,
                    f = 0;
                  if (B(n)) {
                    if (!(n instanceof q || (s = w(n)) == K || s == W))
                      return _e in n ? Le(d, n) : He.call(d, n);
                    ((A = n), (f = Fe(r, t)));
                    var m = n.byteLength;
                    if (void 0 === i) {
                      if (m % t) throw V(Ce);
                      if (((o = m - f), o < 0)) throw V(Ce);
                    } else if (((o = p(i) * t), o + f > m)) throw V(Ce);
                    a = o / t;
                  } else ((a = g(n)), (o = a * t), (A = new q(o)));
                  h(e, "_d", { b: A, o: f, l: o, e: a, v: new Z(A) });
                  while (l < a) F(e, l++);
                })),
                (_ = d[Y] = x(Ke)),
                h(_, "constructor", d))
              : (A(function () {
                  d(1);
                }) &&
                  A(function () {
                    new d(-1);
                  }) &&
                  H(function (e) {
                    (new d(), new d(null), new d(1.5), new d(e));
                  }, !0)) ||
                ((d = n(function (e, n, r, i) {
                  var A;
                  return (
                    u(e, d, c),
                    B(n)
                      ? n instanceof q || (A = w(n)) == K || A == W
                        ? void 0 !== i
                          ? new m(n, Fe(r, t), i)
                          : void 0 !== r
                            ? new m(n, Fe(r, t))
                            : new m(n)
                        : _e in n
                          ? Le(d, n)
                          : He.call(d, n)
                      : new m(g(n))
                  );
                })),
                $(
                  v !== Function.prototype ? E(m).concat(E(v)) : E(m),
                  function (e) {
                    e in d || h(d, e, m[e]);
                  },
                ),
                (d[Y] = _),
                r || (_.constructor = d));
            var T = _[ve],
              U = !!T && ("values" == T.name || void 0 == T.name),
              Q = Ge.values;
            (h(d, we, !0),
              h(_, _e, c),
              h(_, xe, !0),
              h(_, Be, d),
              (s ? new d(1)[ye] == c : ye in _) ||
                k(_, ye, {
                  get: function () {
                    return c;
                  },
                }),
              (b[c] = d),
              o(o.G + o.W + o.F * (d != m), b),
              o(o.S, c, { BYTES_PER_ELEMENT: t }),
              o(
                o.S +
                  o.F *
                    A(function () {
                      m.of.call(d, 1);
                    }),
                c,
                { from: He, of: Oe },
              ),
              X in _ || h(_, X, t),
              o(o.P, c, De),
              O(c),
              o(o.P + o.F * Se, c, { set: ke }),
              o(o.P + o.F * !U, c, Ge),
              r || _.toString == ge || (_.toString = ge),
              o(
                o.P +
                  o.F *
                    A(function () {
                      new d(1).slice();
                    }),
                c,
                { slice: Ne },
              ),
              o(
                o.P +
                  o.F *
                    (A(function () {
                      return (
                        [1, 2].toLocaleString() !=
                        new d([1, 2]).toLocaleString()
                      );
                    }) ||
                      !A(function () {
                        _.toLocaleString.call([1, 2]);
                      })),
                c,
                { toLocaleString: Pe },
              ),
              (I[c] = U ? T : Q),
              r || U || h(_, ve, Q));
          }));
      } else e.exports = function () {};
    },
    "1b40": function (e, t, n) {
      "use strict";
      (n.d(t, "a", function () {
        return _;
      }),
        n.d(t, "c", function () {
          return r["default"];
        }),
        n.d(t, "b", function () {
          return E;
        }),
        n.d(t, "d", function () {
          return M;
        }));
      var r = n("2b0e");
      /**
       * vue-class-component v7.2.6
       * (c) 2015-present Evan You
       * @license MIT
       */ function i(e) {
        return (
          (i =
            "function" === typeof Symbol && "symbol" === typeof Symbol.iterator
              ? function (e) {
                  return typeof e;
                }
              : function (e) {
                  return e &&
                    "function" === typeof Symbol &&
                    e.constructor === Symbol &&
                    e !== Symbol.prototype
                    ? "symbol"
                    : typeof e;
                }),
          i(e)
        );
      }
      function A(e, t, n) {
        return (
          t in e
            ? Object.defineProperty(e, t, {
                value: n,
                enumerable: !0,
                configurable: !0,
                writable: !0,
              })
            : (e[t] = n),
          e
        );
      }
      function o(e) {
        return a(e) || s(e) || c();
      }
      function a(e) {
        if (Array.isArray(e)) {
          for (var t = 0, n = new Array(e.length); t < e.length; t++)
            n[t] = e[t];
          return n;
        }
      }
      function s(e) {
        if (
          Symbol.iterator in Object(e) ||
          "[object Arguments]" === Object.prototype.toString.call(e)
        )
          return Array.from(e);
      }
      function c() {
        throw new TypeError("Invalid attempt to spread non-iterable instance");
      }
      function u() {
        return (
          "undefined" !== typeof Reflect &&
          Reflect.defineMetadata &&
          Reflect.getOwnMetadataKeys
        );
      }
      function l(e, t) {
        (h(e, t),
          Object.getOwnPropertyNames(t.prototype).forEach(function (n) {
            h(e.prototype, t.prototype, n);
          }),
          Object.getOwnPropertyNames(t).forEach(function (n) {
            h(e, t, n);
          }));
      }
      function h(e, t, n) {
        var r = n
          ? Reflect.getOwnMetadataKeys(t, n)
          : Reflect.getOwnMetadataKeys(t);
        r.forEach(function (r) {
          var i = n
            ? Reflect.getOwnMetadata(r, t, n)
            : Reflect.getOwnMetadata(r, t);
          n
            ? Reflect.defineMetadata(r, i, e, n)
            : Reflect.defineMetadata(r, i, e);
        });
      }
      var f = { __proto__: [] },
        d = f instanceof Array;
      function p(e) {
        return function (t, n, r) {
          var i = "function" === typeof t ? t : t.constructor;
          (i.__decorators__ || (i.__decorators__ = []),
            "number" !== typeof r && (r = void 0),
            i.__decorators__.push(function (t) {
              return e(t, n, r);
            }));
        };
      }
      function g(e) {
        var t = i(e);
        return null == e || ("object" !== t && "function" !== t);
      }
      function m(e, t) {
        var n = t.prototype._init;
        t.prototype._init = function () {
          var t = this,
            n = Object.getOwnPropertyNames(e);
          if (e.$options.props)
            for (var r in e.$options.props) e.hasOwnProperty(r) || n.push(r);
          n.forEach(function (n) {
            Object.defineProperty(t, n, {
              get: function () {
                return e[n];
              },
              set: function (t) {
                e[n] = t;
              },
              configurable: !0,
            });
          });
        };
        var r = new t();
        t.prototype._init = n;
        var i = {};
        return (
          Object.keys(r).forEach(function (e) {
            void 0 !== r[e] && (i[e] = r[e]);
          }),
          i
        );
      }
      var v = [
        "data",
        "beforeCreate",
        "created",
        "beforeMount",
        "mounted",
        "beforeDestroy",
        "destroyed",
        "beforeUpdate",
        "updated",
        "activated",
        "deactivated",
        "render",
        "errorCaptured",
        "serverPrefetch",
      ];
      function y(e) {
        var t =
          arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
        t.name = t.name || e._componentTag || e.name;
        var n = e.prototype;
        (Object.getOwnPropertyNames(n).forEach(function (e) {
          if ("constructor" !== e)
            if (v.indexOf(e) > -1) t[e] = n[e];
            else {
              var r = Object.getOwnPropertyDescriptor(n, e);
              void 0 !== r.value
                ? "function" === typeof r.value
                  ? ((t.methods || (t.methods = {}))[e] = r.value)
                  : (t.mixins || (t.mixins = [])).push({
                      data: function () {
                        return A({}, e, r.value);
                      },
                    })
                : (r.get || r.set) &&
                  ((t.computed || (t.computed = {}))[e] = {
                    get: r.get,
                    set: r.set,
                  });
            }
        }),
          (t.mixins || (t.mixins = [])).push({
            data: function () {
              return m(this, e);
            },
          }));
        var i = e.__decorators__;
        i &&
          (i.forEach(function (e) {
            return e(t);
          }),
          delete e.__decorators__);
        var o = Object.getPrototypeOf(e.prototype),
          a = o instanceof r["default"] ? o.constructor : r["default"],
          s = a.extend(t);
        return (B(s, e, a), u() && l(s, e), s);
      }
      var w = { prototype: !0, arguments: !0, callee: !0, caller: !0 };
      function B(e, t, n) {
        Object.getOwnPropertyNames(t).forEach(function (r) {
          if (!w[r]) {
            var i = Object.getOwnPropertyDescriptor(e, r);
            if (!i || i.configurable) {
              var A = Object.getOwnPropertyDescriptor(t, r);
              if (!d) {
                if ("cid" === r) return;
                var o = Object.getOwnPropertyDescriptor(n, r);
                if (!g(A.value) && o && o.value === A.value) return;
              }
              (0, Object.defineProperty(e, r, A));
            }
          }
        });
      }
      function b(e) {
        return "function" === typeof e
          ? y(e)
          : function (t) {
              return y(t, e);
            };
      }
      b.registerHooks = function (e) {
        v.push.apply(v, o(e));
      };
      var _ = b;
      var x =
        "undefined" !== typeof Reflect &&
        "undefined" !== typeof Reflect.getMetadata;
      function C(e, t, n) {
        if (
          x &&
          !Array.isArray(e) &&
          "function" !== typeof e &&
          !e.hasOwnProperty("type") &&
          "undefined" === typeof e.type
        ) {
          var r = Reflect.getMetadata("design:type", t, n);
          r !== Object && (e.type = r);
        }
      }
      function E(e) {
        return (
          void 0 === e && (e = {}),
          function (t, n) {
            (C(e, t, n),
              p(function (t, n) {
                (t.props || (t.props = {}))[n] = e;
              })(t, n));
          }
        );
      }
      function M(e, t) {
        void 0 === t && (t = {});
        var n = t.deep,
          r = void 0 !== n && n,
          i = t.immediate,
          A = void 0 !== i && i;
        return p(function (t, n) {
          "object" !== typeof t.watch && (t.watch = Object.create(null));
          var i = t.watch;
          ("object" !== typeof i[e] || Array.isArray(i[e])
            ? "undefined" === typeof i[e] && (i[e] = [])
            : (i[e] = [i[e]]),
            i[e].push({ handler: n, deep: r, immediate: A }));
        });
      }
    },
    "1b50": function (e, t, n) {
      var r = n("f083");
      r(r.S, "Math", {
        trunc: function (e) {
          return (e > 0 ? Math.floor : Math.ceil)(e);
        },
      });
    },
    "1bde": function (e, t, n) {
      "use strict";
      var r = n("ab6e"),
        i = n("798a"),
        A = "Map";
      e.exports = n("d168")(
        A,
        function (e) {
          return function () {
            return e(this, arguments.length > 0 ? arguments[0] : void 0);
          };
        },
        {
          get: function (e) {
            var t = r.getEntry(i(this, A), e);
            return t && t.v;
          },
          set: function (e, t) {
            return r.def(i(this, A), 0 === e ? 0 : e, t);
          },
        },
        r,
        !0,
      );
    },
    "1be4": function (e, t, n) {
      var r = n("d066");
      e.exports = r("document", "documentElement");
    },
    "1c2d": function (e, t) {
      var n = {}.toString;
      e.exports = function (e) {
        return n.call(e).slice(8, -1);
      };
    },
    "1c6a": function (e, t, n) {
      var r = n("1bde"),
        i = n("f083"),
        A = n("de85")("metadata"),
        o = A.store || (A.store = new (n("94bb"))()),
        a = function (e, t, n) {
          var i = o.get(e);
          if (!i) {
            if (!n) return;
            o.set(e, (i = new r()));
          }
          var A = i.get(t);
          if (!A) {
            if (!n) return;
            i.set(t, (A = new r()));
          }
          return A;
        },
        s = function (e, t, n) {
          var r = a(t, n, !1);
          return void 0 !== r && r.has(e);
        },
        c = function (e, t, n) {
          var r = a(t, n, !1);
          return void 0 === r ? void 0 : r.get(e);
        },
        u = function (e, t, n, r) {
          a(n, r, !0).set(e, t);
        },
        l = function (e, t) {
          var n = a(e, t, !1),
            r = [];
          return (
            n &&
              n.forEach(function (e, t) {
                r.push(t);
              }),
            r
          );
        },
        h = function (e) {
          return void 0 === e || "symbol" == typeof e ? e : String(e);
        },
        f = function (e) {
          i(i.S, "Reflect", e);
        };
      e.exports = {
        store: o,
        map: a,
        has: s,
        get: c,
        set: u,
        keys: l,
        key: h,
        exp: f,
      };
    },
    "1c9c": function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("cffc")(1);
      r(r.P + r.F * !n("55c7")([].map, !0), "Array", {
        map: function (e) {
          return i(this, e, arguments[1]);
        },
      });
    },
    "1cb7": function (e, t, n) {
      var r = n("93e0"),
        i = n("0ae2"),
        A = n("cee8"),
        o = n("a43b"),
        a = n("2761").f;
      e.exports = function (e) {
        var t = i.Symbol || (i.Symbol = A ? {} : r.Symbol || {});
        "_" == e.charAt(0) || e in t || a(t, e, { value: o.f(e) });
      };
    },
    "1d02": function (e, t, n) {
      "use strict";
      var r = n("ebb5"),
        i = n("a258").findLastIndex,
        A = r.aTypedArray,
        o = r.exportTypedArrayMethod;
      o("findLastIndex", function (e) {
        return i(A(this), e, arguments.length > 1 ? arguments[1] : void 0);
      });
    },
    "1d80": function (e, t) {
      var n = TypeError;
      e.exports = function (e) {
        if (void 0 == e) throw n("Can't call method on " + e);
        return e;
      };
    },
    "1e5c": function (e, t, n) {
      (function (r) {
        var i, A;
        (n("b7ef"),
          n("907a"),
          n("3c5d"),
          n("fa9e"),
          n("77d9"),
          /*!
           *  howler.js v2.2.3
           *  howlerjs.com
           *
           *  (c) 2013-2020, James Simpson of GoldFire Studios
           *  goldfirestudios.com
           *
           *  MIT License
           */
          (function () {
            "use strict";
            var n = function () {
              this.init();
            };
            n.prototype = {
              init: function () {
                var e = this || o;
                return (
                  (e._counter = 1e3),
                  (e._html5AudioPool = []),
                  (e.html5PoolSize = 10),
                  (e._codecs = {}),
                  (e._howls = []),
                  (e._muted = !1),
                  (e._volume = 1),
                  (e._canPlayEvent = "canplaythrough"),
                  (e._navigator =
                    "undefined" !== typeof window && window.navigator
                      ? window.navigator
                      : null),
                  (e.masterGain = null),
                  (e.noAudio = !1),
                  (e.usingWebAudio = !0),
                  (e.autoSuspend = !0),
                  (e.ctx = null),
                  (e.autoUnlock = !0),
                  e._setup(),
                  e
                );
              },
              volume: function (e) {
                var t = this || o;
                if (
                  ((e = parseFloat(e)),
                  t.ctx || d(),
                  "undefined" !== typeof e && e >= 0 && e <= 1)
                ) {
                  if (((t._volume = e), t._muted)) return t;
                  t.usingWebAudio &&
                    t.masterGain.gain.setValueAtTime(e, o.ctx.currentTime);
                  for (var n = 0; n < t._howls.length; n++)
                    if (!t._howls[n]._webAudio)
                      for (
                        var r = t._howls[n]._getSoundIds(), i = 0;
                        i < r.length;
                        i++
                      ) {
                        var A = t._howls[n]._soundById(r[i]);
                        A && A._node && (A._node.volume = A._volume * e);
                      }
                  return t;
                }
                return t._volume;
              },
              mute: function (e) {
                var t = this || o;
                (t.ctx || d(),
                  (t._muted = e),
                  t.usingWebAudio &&
                    t.masterGain.gain.setValueAtTime(
                      e ? 0 : t._volume,
                      o.ctx.currentTime,
                    ));
                for (var n = 0; n < t._howls.length; n++)
                  if (!t._howls[n]._webAudio)
                    for (
                      var r = t._howls[n]._getSoundIds(), i = 0;
                      i < r.length;
                      i++
                    ) {
                      var A = t._howls[n]._soundById(r[i]);
                      A && A._node && (A._node.muted = !!e || A._muted);
                    }
                return t;
              },
              stop: function () {
                for (var e = this || o, t = 0; t < e._howls.length; t++)
                  e._howls[t].stop();
                return e;
              },
              unload: function () {
                for (var e = this || o, t = e._howls.length - 1; t >= 0; t--)
                  e._howls[t].unload();
                return (
                  e.usingWebAudio &&
                    e.ctx &&
                    "undefined" !== typeof e.ctx.close &&
                    (e.ctx.close(), (e.ctx = null), d()),
                  e
                );
              },
              codecs: function (e) {
                return (this || o)._codecs[e.replace(/^x-/, "")];
              },
              _setup: function () {
                var e = this || o;
                if (
                  ((e.state = (e.ctx && e.ctx.state) || "suspended"),
                  e._autoSuspend(),
                  !e.usingWebAudio)
                )
                  if ("undefined" !== typeof Audio)
                    try {
                      var t = new Audio();
                      "undefined" === typeof t.oncanplaythrough &&
                        (e._canPlayEvent = "canplay");
                    } catch (n) {
                      e.noAudio = !0;
                    }
                  else e.noAudio = !0;
                try {
                  t = new Audio();
                  t.muted && (e.noAudio = !0);
                } catch (n) {}
                return (e.noAudio || e._setupCodecs(), e);
              },
              _setupCodecs: function () {
                var e = this || o,
                  t = null;
                try {
                  t = "undefined" !== typeof Audio ? new Audio() : null;
                } catch (u) {
                  return e;
                }
                if (!t || "function" !== typeof t.canPlayType) return e;
                var n = t.canPlayType("audio/mpeg;").replace(/^no$/, ""),
                  r = e._navigator ? e._navigator.userAgent : "",
                  i = r.match(/OPR\/([0-6].)/g),
                  A = i && parseInt(i[0].split("/")[1], 10) < 33,
                  a = -1 !== r.indexOf("Safari") && -1 === r.indexOf("Chrome"),
                  s = r.match(/Version\/(.*?) /),
                  c = a && s && parseInt(s[1], 10) < 15;
                return (
                  (e._codecs = {
                    mp3: !(
                      A ||
                      (!n && !t.canPlayType("audio/mp3;").replace(/^no$/, ""))
                    ),
                    mpeg: !!n,
                    opus: !!t
                      .canPlayType('audio/ogg; codecs="opus"')
                      .replace(/^no$/, ""),
                    ogg: !!t
                      .canPlayType('audio/ogg; codecs="vorbis"')
                      .replace(/^no$/, ""),
                    oga: !!t
                      .canPlayType('audio/ogg; codecs="vorbis"')
                      .replace(/^no$/, ""),
                    wav: !!(
                      t.canPlayType('audio/wav; codecs="1"') ||
                      t.canPlayType("audio/wav")
                    ).replace(/^no$/, ""),
                    aac: !!t.canPlayType("audio/aac;").replace(/^no$/, ""),
                    caf: !!t.canPlayType("audio/x-caf;").replace(/^no$/, ""),
                    m4a: !!(
                      t.canPlayType("audio/x-m4a;") ||
                      t.canPlayType("audio/m4a;") ||
                      t.canPlayType("audio/aac;")
                    ).replace(/^no$/, ""),
                    m4b: !!(
                      t.canPlayType("audio/x-m4b;") ||
                      t.canPlayType("audio/m4b;") ||
                      t.canPlayType("audio/aac;")
                    ).replace(/^no$/, ""),
                    mp4: !!(
                      t.canPlayType("audio/x-mp4;") ||
                      t.canPlayType("audio/mp4;") ||
                      t.canPlayType("audio/aac;")
                    ).replace(/^no$/, ""),
                    weba: !(
                      c ||
                      !t
                        .canPlayType('audio/webm; codecs="vorbis"')
                        .replace(/^no$/, "")
                    ),
                    webm: !(
                      c ||
                      !t
                        .canPlayType('audio/webm; codecs="vorbis"')
                        .replace(/^no$/, "")
                    ),
                    dolby: !!t
                      .canPlayType('audio/mp4; codecs="ec-3"')
                      .replace(/^no$/, ""),
                    flac: !!(
                      t.canPlayType("audio/x-flac;") ||
                      t.canPlayType("audio/flac;")
                    ).replace(/^no$/, ""),
                  }),
                  e
                );
              },
              _unlockAudio: function () {
                var e = this || o;
                if (!e._audioUnlocked && e.ctx) {
                  ((e._audioUnlocked = !1),
                    (e.autoUnlock = !1),
                    e._mobileUnloaded ||
                      44100 === e.ctx.sampleRate ||
                      ((e._mobileUnloaded = !0), e.unload()),
                    (e._scratchBuffer = e.ctx.createBuffer(1, 1, 22050)));
                  var t = function (n) {
                    while (e._html5AudioPool.length < e.html5PoolSize)
                      try {
                        var r = new Audio();
                        ((r._unlocked = !0), e._releaseHtml5Audio(r));
                      } catch (n) {
                        e.noAudio = !0;
                        break;
                      }
                    for (var i = 0; i < e._howls.length; i++)
                      if (!e._howls[i]._webAudio)
                        for (
                          var A = e._howls[i]._getSoundIds(), o = 0;
                          o < A.length;
                          o++
                        ) {
                          var a = e._howls[i]._soundById(A[o]);
                          a &&
                            a._node &&
                            !a._node._unlocked &&
                            ((a._node._unlocked = !0), a._node.load());
                        }
                    e._autoResume();
                    var s = e.ctx.createBufferSource();
                    ((s.buffer = e._scratchBuffer),
                      s.connect(e.ctx.destination),
                      "undefined" === typeof s.start ? s.noteOn(0) : s.start(0),
                      "function" === typeof e.ctx.resume && e.ctx.resume(),
                      (s.onended = function () {
                        (s.disconnect(0),
                          (e._audioUnlocked = !0),
                          document.removeEventListener("touchstart", t, !0),
                          document.removeEventListener("touchend", t, !0),
                          document.removeEventListener("click", t, !0),
                          document.removeEventListener("keydown", t, !0));
                        for (var n = 0; n < e._howls.length; n++)
                          e._howls[n]._emit("unlock");
                      }));
                  };
                  return (
                    document.addEventListener("touchstart", t, !0),
                    document.addEventListener("touchend", t, !0),
                    document.addEventListener("click", t, !0),
                    document.addEventListener("keydown", t, !0),
                    e
                  );
                }
              },
              _obtainHtml5Audio: function () {
                var e = this || o;
                if (e._html5AudioPool.length) return e._html5AudioPool.pop();
                var t = new Audio().play();
                return (
                  t &&
                    "undefined" !== typeof Promise &&
                    (t instanceof Promise || "function" === typeof t.then) &&
                    t.catch(function () {
                      console.warn(
                        "HTML5 Audio pool exhausted, returning potentially locked audio object.",
                      );
                    }),
                  new Audio()
                );
              },
              _releaseHtml5Audio: function (e) {
                var t = this || o;
                return (e._unlocked && t._html5AudioPool.push(e), t);
              },
              _autoSuspend: function () {
                var e = this;
                if (
                  e.autoSuspend &&
                  e.ctx &&
                  "undefined" !== typeof e.ctx.suspend &&
                  o.usingWebAudio
                ) {
                  for (var t = 0; t < e._howls.length; t++)
                    if (e._howls[t]._webAudio)
                      for (var n = 0; n < e._howls[t]._sounds.length; n++)
                        if (!e._howls[t]._sounds[n]._paused) return e;
                  return (
                    e._suspendTimer && clearTimeout(e._suspendTimer),
                    (e._suspendTimer = setTimeout(function () {
                      if (e.autoSuspend) {
                        ((e._suspendTimer = null), (e.state = "suspending"));
                        var t = function () {
                          ((e.state = "suspended"),
                            e._resumeAfterSuspend &&
                              (delete e._resumeAfterSuspend, e._autoResume()));
                        };
                        e.ctx.suspend().then(t, t);
                      }
                    }, 3e4)),
                    e
                  );
                }
              },
              _autoResume: function () {
                var e = this;
                if (
                  e.ctx &&
                  "undefined" !== typeof e.ctx.resume &&
                  o.usingWebAudio
                )
                  return (
                    "running" === e.state &&
                    "interrupted" !== e.ctx.state &&
                    e._suspendTimer
                      ? (clearTimeout(e._suspendTimer),
                        (e._suspendTimer = null))
                      : "suspended" === e.state ||
                          ("running" === e.state &&
                            "interrupted" === e.ctx.state)
                        ? (e.ctx.resume().then(function () {
                            e.state = "running";
                            for (var t = 0; t < e._howls.length; t++)
                              e._howls[t]._emit("resume");
                          }),
                          e._suspendTimer &&
                            (clearTimeout(e._suspendTimer),
                            (e._suspendTimer = null)))
                        : "suspending" === e.state &&
                          (e._resumeAfterSuspend = !0),
                    e
                  );
              },
            };
            var o = new n(),
              a = function (e) {
                var t = this;
                e.src && 0 !== e.src.length
                  ? t.init(e)
                  : console.log(
                      "An array of source files must be passed with any new Howl.",
                    );
              };
            a.prototype = {
              init: function (e) {
                var t = this;
                return (
                  o.ctx || d(),
                  (t._autoplay = e.autoplay || !1),
                  (t._format =
                    "string" !== typeof e.format ? e.format : [e.format]),
                  (t._html5 = e.html5 || !1),
                  (t._muted = e.mute || !1),
                  (t._loop = e.loop || !1),
                  (t._pool = e.pool || 5),
                  (t._preload =
                    ("boolean" !== typeof e.preload &&
                      "metadata" !== e.preload) ||
                    e.preload),
                  (t._rate = e.rate || 1),
                  (t._sprite = e.sprite || {}),
                  (t._src = "string" !== typeof e.src ? e.src : [e.src]),
                  (t._volume = void 0 !== e.volume ? e.volume : 1),
                  (t._xhr = {
                    method: e.xhr && e.xhr.method ? e.xhr.method : "GET",
                    headers: e.xhr && e.xhr.headers ? e.xhr.headers : null,
                    withCredentials:
                      !(!e.xhr || !e.xhr.withCredentials) &&
                      e.xhr.withCredentials,
                  }),
                  (t._duration = 0),
                  (t._state = "unloaded"),
                  (t._sounds = []),
                  (t._endTimers = {}),
                  (t._queue = []),
                  (t._playLock = !1),
                  (t._onend = e.onend ? [{ fn: e.onend }] : []),
                  (t._onfade = e.onfade ? [{ fn: e.onfade }] : []),
                  (t._onload = e.onload ? [{ fn: e.onload }] : []),
                  (t._onloaderror = e.onloaderror
                    ? [{ fn: e.onloaderror }]
                    : []),
                  (t._onplayerror = e.onplayerror
                    ? [{ fn: e.onplayerror }]
                    : []),
                  (t._onpause = e.onpause ? [{ fn: e.onpause }] : []),
                  (t._onplay = e.onplay ? [{ fn: e.onplay }] : []),
                  (t._onstop = e.onstop ? [{ fn: e.onstop }] : []),
                  (t._onmute = e.onmute ? [{ fn: e.onmute }] : []),
                  (t._onvolume = e.onvolume ? [{ fn: e.onvolume }] : []),
                  (t._onrate = e.onrate ? [{ fn: e.onrate }] : []),
                  (t._onseek = e.onseek ? [{ fn: e.onseek }] : []),
                  (t._onunlock = e.onunlock ? [{ fn: e.onunlock }] : []),
                  (t._onresume = []),
                  (t._webAudio = o.usingWebAudio && !t._html5),
                  "undefined" !== typeof o.ctx &&
                    o.ctx &&
                    o.autoUnlock &&
                    o._unlockAudio(),
                  o._howls.push(t),
                  t._autoplay &&
                    t._queue.push({
                      event: "play",
                      action: function () {
                        t.play();
                      },
                    }),
                  t._preload && "none" !== t._preload && t.load(),
                  t
                );
              },
              load: function () {
                var e = this,
                  t = null;
                if (o.noAudio) e._emit("loaderror", null, "No audio support.");
                else {
                  "string" === typeof e._src && (e._src = [e._src]);
                  for (var n = 0; n < e._src.length; n++) {
                    var r, i;
                    if (e._format && e._format[n]) r = e._format[n];
                    else {
                      if (((i = e._src[n]), "string" !== typeof i)) {
                        e._emit(
                          "loaderror",
                          null,
                          "Non-string found in selected audio sources - ignoring.",
                        );
                        continue;
                      }
                      ((r = /^data:audio\/([^;,]+);/i.exec(i)),
                        r || (r = /\.([^.]+)$/.exec(i.split("?", 1)[0])),
                        r && (r = r[1].toLowerCase()));
                    }
                    if (
                      (r ||
                        console.warn(
                          'No file extension was found. Consider using the "format" property or specify an extension.',
                        ),
                      r && o.codecs(r))
                    ) {
                      t = e._src[n];
                      break;
                    }
                  }
                  if (t)
                    return (
                      (e._src = t),
                      (e._state = "loading"),
                      "https:" === window.location.protocol &&
                        "http:" === t.slice(0, 5) &&
                        ((e._html5 = !0), (e._webAudio = !1)),
                      new s(e),
                      e._webAudio && u(e),
                      e
                    );
                  e._emit(
                    "loaderror",
                    null,
                    "No codec support for selected audio sources.",
                  );
                }
              },
              play: function (e, t) {
                var n = this,
                  r = null;
                if ("number" === typeof e) ((r = e), (e = null));
                else {
                  if (
                    "string" === typeof e &&
                    "loaded" === n._state &&
                    !n._sprite[e]
                  )
                    return null;
                  if (
                    "undefined" === typeof e &&
                    ((e = "__default"), !n._playLock)
                  ) {
                    for (var i = 0, A = 0; A < n._sounds.length; A++)
                      n._sounds[A]._paused &&
                        !n._sounds[A]._ended &&
                        (i++, (r = n._sounds[A]._id));
                    1 === i ? (e = null) : (r = null);
                  }
                }
                var a = r ? n._soundById(r) : n._inactiveSound();
                if (!a) return null;
                if (
                  (r && !e && (e = a._sprite || "__default"),
                  "loaded" !== n._state)
                ) {
                  ((a._sprite = e), (a._ended = !1));
                  var s = a._id;
                  return (
                    n._queue.push({
                      event: "play",
                      action: function () {
                        n.play(s);
                      },
                    }),
                    s
                  );
                }
                if (r && !a._paused) return (t || n._loadQueue("play"), a._id);
                n._webAudio && o._autoResume();
                var c = Math.max(
                    0,
                    a._seek > 0 ? a._seek : n._sprite[e][0] / 1e3,
                  ),
                  u = Math.max(
                    0,
                    (n._sprite[e][0] + n._sprite[e][1]) / 1e3 - c,
                  ),
                  l = (1e3 * u) / Math.abs(a._rate),
                  h = n._sprite[e][0] / 1e3,
                  f = (n._sprite[e][0] + n._sprite[e][1]) / 1e3;
                ((a._sprite = e), (a._ended = !1));
                var d = function () {
                  ((a._paused = !1),
                    (a._seek = c),
                    (a._start = h),
                    (a._stop = f),
                    (a._loop = !(!a._loop && !n._sprite[e][2])));
                };
                if (!(c >= f)) {
                  var p = a._node;
                  if (n._webAudio) {
                    var g = function () {
                      ((n._playLock = !1), d(), n._refreshBuffer(a));
                      var e = a._muted || n._muted ? 0 : a._volume;
                      (p.gain.setValueAtTime(e, o.ctx.currentTime),
                        (a._playStart = o.ctx.currentTime),
                        "undefined" === typeof p.bufferSource.start
                          ? a._loop
                            ? p.bufferSource.noteGrainOn(0, c, 86400)
                            : p.bufferSource.noteGrainOn(0, c, u)
                          : a._loop
                            ? p.bufferSource.start(0, c, 86400)
                            : p.bufferSource.start(0, c, u),
                        l !== 1 / 0 &&
                          (n._endTimers[a._id] = setTimeout(
                            n._ended.bind(n, a),
                            l,
                          )),
                        t ||
                          setTimeout(function () {
                            (n._emit("play", a._id), n._loadQueue());
                          }, 0));
                    };
                    "running" === o.state && "interrupted" !== o.ctx.state
                      ? g()
                      : ((n._playLock = !0),
                        n.once("resume", g),
                        n._clearTimer(a._id));
                  } else {
                    var m = function () {
                      ((p.currentTime = c),
                        (p.muted = a._muted || n._muted || o._muted || p.muted),
                        (p.volume = a._volume * o.volume()),
                        (p.playbackRate = a._rate));
                      try {
                        var r = p.play();
                        if (
                          (r &&
                          "undefined" !== typeof Promise &&
                          (r instanceof Promise || "function" === typeof r.then)
                            ? ((n._playLock = !0),
                              d(),
                              r
                                .then(function () {
                                  ((n._playLock = !1),
                                    (p._unlocked = !0),
                                    t
                                      ? n._loadQueue()
                                      : n._emit("play", a._id));
                                })
                                .catch(function () {
                                  ((n._playLock = !1),
                                    n._emit(
                                      "playerror",
                                      a._id,
                                      "Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.",
                                    ),
                                    (a._ended = !0),
                                    (a._paused = !0));
                                }))
                            : t ||
                              ((n._playLock = !1), d(), n._emit("play", a._id)),
                          (p.playbackRate = a._rate),
                          p.paused)
                        )
                          return void n._emit(
                            "playerror",
                            a._id,
                            "Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.",
                          );
                        "__default" !== e || a._loop
                          ? (n._endTimers[a._id] = setTimeout(
                              n._ended.bind(n, a),
                              l,
                            ))
                          : ((n._endTimers[a._id] = function () {
                              (n._ended(a),
                                p.removeEventListener(
                                  "ended",
                                  n._endTimers[a._id],
                                  !1,
                                ));
                            }),
                            p.addEventListener(
                              "ended",
                              n._endTimers[a._id],
                              !1,
                            ));
                      } catch (i) {
                        n._emit("playerror", a._id, i);
                      }
                    };
                    "data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA" ===
                      p.src && ((p.src = n._src), p.load());
                    var v =
                      (window && window.ejecta) ||
                      (!p.readyState && o._navigator.isCocoonJS);
                    if (p.readyState >= 3 || v) m();
                    else {
                      ((n._playLock = !0), (n._state = "loading"));
                      var y = function () {
                        ((n._state = "loaded"),
                          m(),
                          p.removeEventListener(o._canPlayEvent, y, !1));
                      };
                      (p.addEventListener(o._canPlayEvent, y, !1),
                        n._clearTimer(a._id));
                    }
                  }
                  return a._id;
                }
                n._ended(a);
              },
              pause: function (e) {
                var t = this;
                if ("loaded" !== t._state || t._playLock)
                  return (
                    t._queue.push({
                      event: "pause",
                      action: function () {
                        t.pause(e);
                      },
                    }),
                    t
                  );
                for (var n = t._getSoundIds(e), r = 0; r < n.length; r++) {
                  t._clearTimer(n[r]);
                  var i = t._soundById(n[r]);
                  if (
                    i &&
                    !i._paused &&
                    ((i._seek = t.seek(n[r])),
                    (i._rateSeek = 0),
                    (i._paused = !0),
                    t._stopFade(n[r]),
                    i._node)
                  )
                    if (t._webAudio) {
                      if (!i._node.bufferSource) continue;
                      ("undefined" === typeof i._node.bufferSource.stop
                        ? i._node.bufferSource.noteOff(0)
                        : i._node.bufferSource.stop(0),
                        t._cleanBuffer(i._node));
                    } else
                      (isNaN(i._node.duration) && i._node.duration !== 1 / 0) ||
                        i._node.pause();
                  arguments[1] || t._emit("pause", i ? i._id : null);
                }
                return t;
              },
              stop: function (e, t) {
                var n = this;
                if ("loaded" !== n._state || n._playLock)
                  return (
                    n._queue.push({
                      event: "stop",
                      action: function () {
                        n.stop(e);
                      },
                    }),
                    n
                  );
                for (var r = n._getSoundIds(e), i = 0; i < r.length; i++) {
                  n._clearTimer(r[i]);
                  var A = n._soundById(r[i]);
                  A &&
                    ((A._seek = A._start || 0),
                    (A._rateSeek = 0),
                    (A._paused = !0),
                    (A._ended = !0),
                    n._stopFade(r[i]),
                    A._node &&
                      (n._webAudio
                        ? A._node.bufferSource &&
                          ("undefined" === typeof A._node.bufferSource.stop
                            ? A._node.bufferSource.noteOff(0)
                            : A._node.bufferSource.stop(0),
                          n._cleanBuffer(A._node))
                        : (isNaN(A._node.duration) &&
                            A._node.duration !== 1 / 0) ||
                          ((A._node.currentTime = A._start || 0),
                          A._node.pause(),
                          A._node.duration === 1 / 0 &&
                            n._clearSound(A._node))),
                    t || n._emit("stop", A._id));
                }
                return n;
              },
              mute: function (e, t) {
                var n = this;
                if ("loaded" !== n._state || n._playLock)
                  return (
                    n._queue.push({
                      event: "mute",
                      action: function () {
                        n.mute(e, t);
                      },
                    }),
                    n
                  );
                if ("undefined" === typeof t) {
                  if ("boolean" !== typeof e) return n._muted;
                  n._muted = e;
                }
                for (var r = n._getSoundIds(t), i = 0; i < r.length; i++) {
                  var A = n._soundById(r[i]);
                  A &&
                    ((A._muted = e),
                    A._interval && n._stopFade(A._id),
                    n._webAudio && A._node
                      ? A._node.gain.setValueAtTime(
                          e ? 0 : A._volume,
                          o.ctx.currentTime,
                        )
                      : A._node && (A._node.muted = !!o._muted || e),
                    n._emit("mute", A._id));
                }
                return n;
              },
              volume: function () {
                var e,
                  t,
                  n,
                  r = this,
                  i = arguments;
                if (0 === i.length) return r._volume;
                if (
                  1 === i.length ||
                  (2 === i.length && "undefined" === typeof i[1])
                ) {
                  var A = r._getSoundIds(),
                    a = A.indexOf(i[0]);
                  a >= 0 ? (t = parseInt(i[0], 10)) : (e = parseFloat(i[0]));
                } else
                  i.length >= 2 &&
                    ((e = parseFloat(i[0])), (t = parseInt(i[1], 10)));
                if (!("undefined" !== typeof e && e >= 0 && e <= 1))
                  return (
                    (n = t ? r._soundById(t) : r._sounds[0]),
                    n ? n._volume : 0
                  );
                if ("loaded" !== r._state || r._playLock)
                  return (
                    r._queue.push({
                      event: "volume",
                      action: function () {
                        r.volume.apply(r, i);
                      },
                    }),
                    r
                  );
                ("undefined" === typeof t && (r._volume = e),
                  (t = r._getSoundIds(t)));
                for (var s = 0; s < t.length; s++)
                  ((n = r._soundById(t[s])),
                    n &&
                      ((n._volume = e),
                      i[2] || r._stopFade(t[s]),
                      r._webAudio && n._node && !n._muted
                        ? n._node.gain.setValueAtTime(e, o.ctx.currentTime)
                        : n._node &&
                          !n._muted &&
                          (n._node.volume = e * o.volume()),
                      r._emit("volume", n._id)));
                return r;
              },
              fade: function (e, t, n, r) {
                var i = this;
                if ("loaded" !== i._state || i._playLock)
                  return (
                    i._queue.push({
                      event: "fade",
                      action: function () {
                        i.fade(e, t, n, r);
                      },
                    }),
                    i
                  );
                ((e = Math.min(Math.max(0, parseFloat(e)), 1)),
                  (t = Math.min(Math.max(0, parseFloat(t)), 1)),
                  (n = parseFloat(n)),
                  i.volume(e, r));
                for (var A = i._getSoundIds(r), a = 0; a < A.length; a++) {
                  var s = i._soundById(A[a]);
                  if (s) {
                    if ((r || i._stopFade(A[a]), i._webAudio && !s._muted)) {
                      var c = o.ctx.currentTime,
                        u = c + n / 1e3;
                      ((s._volume = e),
                        s._node.gain.setValueAtTime(e, c),
                        s._node.gain.linearRampToValueAtTime(t, u));
                    }
                    i._startFadeInterval(
                      s,
                      e,
                      t,
                      n,
                      A[a],
                      "undefined" === typeof r,
                    );
                  }
                }
                return i;
              },
              _startFadeInterval: function (e, t, n, r, i, A) {
                var o = this,
                  a = t,
                  s = n - t,
                  c = Math.abs(s / 0.01),
                  u = Math.max(4, c > 0 ? r / c : r),
                  l = Date.now();
                ((e._fadeTo = n),
                  (e._interval = setInterval(function () {
                    var i = (Date.now() - l) / r;
                    ((l = Date.now()),
                      (a += s * i),
                      (a = Math.round(100 * a) / 100),
                      (a = s < 0 ? Math.max(n, a) : Math.min(n, a)),
                      o._webAudio ? (e._volume = a) : o.volume(a, e._id, !0),
                      A && (o._volume = a),
                      ((n < t && a <= n) || (n > t && a >= n)) &&
                        (clearInterval(e._interval),
                        (e._interval = null),
                        (e._fadeTo = null),
                        o.volume(n, e._id),
                        o._emit("fade", e._id)));
                  }, u)));
              },
              _stopFade: function (e) {
                var t = this,
                  n = t._soundById(e);
                return (
                  n &&
                    n._interval &&
                    (t._webAudio &&
                      n._node.gain.cancelScheduledValues(o.ctx.currentTime),
                    clearInterval(n._interval),
                    (n._interval = null),
                    t.volume(n._fadeTo, e),
                    (n._fadeTo = null),
                    t._emit("fade", e)),
                  t
                );
              },
              loop: function () {
                var e,
                  t,
                  n,
                  r = this,
                  i = arguments;
                if (0 === i.length) return r._loop;
                if (1 === i.length) {
                  if ("boolean" !== typeof i[0])
                    return (
                      (n = r._soundById(parseInt(i[0], 10))),
                      !!n && n._loop
                    );
                  ((e = i[0]), (r._loop = e));
                } else 2 === i.length && ((e = i[0]), (t = parseInt(i[1], 10)));
                for (var A = r._getSoundIds(t), o = 0; o < A.length; o++)
                  ((n = r._soundById(A[o])),
                    n &&
                      ((n._loop = e),
                      r._webAudio &&
                        n._node &&
                        n._node.bufferSource &&
                        ((n._node.bufferSource.loop = e),
                        e &&
                          ((n._node.bufferSource.loopStart = n._start || 0),
                          (n._node.bufferSource.loopEnd = n._stop),
                          r.playing(A[o]) &&
                            (r.pause(A[o], !0), r.play(A[o], !0))))));
                return r;
              },
              rate: function () {
                var e,
                  t,
                  n,
                  r = this,
                  i = arguments;
                if (0 === i.length) t = r._sounds[0]._id;
                else if (1 === i.length) {
                  var A = r._getSoundIds(),
                    a = A.indexOf(i[0]);
                  a >= 0 ? (t = parseInt(i[0], 10)) : (e = parseFloat(i[0]));
                } else
                  2 === i.length &&
                    ((e = parseFloat(i[0])), (t = parseInt(i[1], 10)));
                if ("number" !== typeof e)
                  return ((n = r._soundById(t)), n ? n._rate : r._rate);
                if ("loaded" !== r._state || r._playLock)
                  return (
                    r._queue.push({
                      event: "rate",
                      action: function () {
                        r.rate.apply(r, i);
                      },
                    }),
                    r
                  );
                ("undefined" === typeof t && (r._rate = e),
                  (t = r._getSoundIds(t)));
                for (var s = 0; s < t.length; s++)
                  if (((n = r._soundById(t[s])), n)) {
                    (r.playing(t[s]) &&
                      ((n._rateSeek = r.seek(t[s])),
                      (n._playStart = r._webAudio
                        ? o.ctx.currentTime
                        : n._playStart)),
                      (n._rate = e),
                      r._webAudio && n._node && n._node.bufferSource
                        ? n._node.bufferSource.playbackRate.setValueAtTime(
                            e,
                            o.ctx.currentTime,
                          )
                        : n._node && (n._node.playbackRate = e));
                    var c = r.seek(t[s]),
                      u =
                        (r._sprite[n._sprite][0] + r._sprite[n._sprite][1]) /
                          1e3 -
                        c,
                      l = (1e3 * u) / Math.abs(n._rate);
                    ((!r._endTimers[t[s]] && n._paused) ||
                      (r._clearTimer(t[s]),
                      (r._endTimers[t[s]] = setTimeout(
                        r._ended.bind(r, n),
                        l,
                      ))),
                      r._emit("rate", n._id));
                  }
                return r;
              },
              seek: function () {
                var e,
                  t,
                  n = this,
                  r = arguments;
                if (0 === r.length) n._sounds.length && (t = n._sounds[0]._id);
                else if (1 === r.length) {
                  var i = n._getSoundIds(),
                    A = i.indexOf(r[0]);
                  A >= 0
                    ? (t = parseInt(r[0], 10))
                    : n._sounds.length &&
                      ((t = n._sounds[0]._id), (e = parseFloat(r[0])));
                } else
                  2 === r.length &&
                    ((e = parseFloat(r[0])), (t = parseInt(r[1], 10)));
                if ("undefined" === typeof t) return 0;
                if (
                  "number" === typeof e &&
                  ("loaded" !== n._state || n._playLock)
                )
                  return (
                    n._queue.push({
                      event: "seek",
                      action: function () {
                        n.seek.apply(n, r);
                      },
                    }),
                    n
                  );
                var a = n._soundById(t);
                if (a) {
                  if (!("number" === typeof e && e >= 0)) {
                    if (n._webAudio) {
                      var s = n.playing(t)
                          ? o.ctx.currentTime - a._playStart
                          : 0,
                        c = a._rateSeek ? a._rateSeek - a._seek : 0;
                      return a._seek + (c + s * Math.abs(a._rate));
                    }
                    return a._node.currentTime;
                  }
                  var u = n.playing(t);
                  (u && n.pause(t, !0),
                    (a._seek = e),
                    (a._ended = !1),
                    n._clearTimer(t),
                    n._webAudio ||
                      !a._node ||
                      isNaN(a._node.duration) ||
                      (a._node.currentTime = e));
                  var l = function () {
                    (u && n.play(t, !0), n._emit("seek", t));
                  };
                  if (u && !n._webAudio) {
                    var h = function () {
                      n._playLock ? setTimeout(h, 0) : l();
                    };
                    setTimeout(h, 0);
                  } else l();
                }
                return n;
              },
              playing: function (e) {
                var t = this;
                if ("number" === typeof e) {
                  var n = t._soundById(e);
                  return !!n && !n._paused;
                }
                for (var r = 0; r < t._sounds.length; r++)
                  if (!t._sounds[r]._paused) return !0;
                return !1;
              },
              duration: function (e) {
                var t = this,
                  n = t._duration,
                  r = t._soundById(e);
                return (r && (n = t._sprite[r._sprite][1] / 1e3), n);
              },
              state: function () {
                return this._state;
              },
              unload: function () {
                for (var e = this, t = e._sounds, n = 0; n < t.length; n++)
                  (t[n]._paused || e.stop(t[n]._id),
                    e._webAudio ||
                      (e._clearSound(t[n]._node),
                      t[n]._node.removeEventListener(
                        "error",
                        t[n]._errorFn,
                        !1,
                      ),
                      t[n]._node.removeEventListener(
                        o._canPlayEvent,
                        t[n]._loadFn,
                        !1,
                      ),
                      t[n]._node.removeEventListener("ended", t[n]._endFn, !1),
                      o._releaseHtml5Audio(t[n]._node)),
                    delete t[n]._node,
                    e._clearTimer(t[n]._id));
                var r = o._howls.indexOf(e);
                r >= 0 && o._howls.splice(r, 1);
                var i = !0;
                for (n = 0; n < o._howls.length; n++)
                  if (
                    o._howls[n]._src === e._src ||
                    e._src.indexOf(o._howls[n]._src) >= 0
                  ) {
                    i = !1;
                    break;
                  }
                return (
                  c && i && delete c[e._src],
                  (o.noAudio = !1),
                  (e._state = "unloaded"),
                  (e._sounds = []),
                  (e = null),
                  null
                );
              },
              on: function (e, t, n, r) {
                var i = this,
                  A = i["_on" + e];
                return (
                  "function" === typeof t &&
                    A.push(r ? { id: n, fn: t, once: r } : { id: n, fn: t }),
                  i
                );
              },
              off: function (e, t, n) {
                var r = this,
                  i = r["_on" + e],
                  A = 0;
                if (("number" === typeof t && ((n = t), (t = null)), t || n))
                  for (A = 0; A < i.length; A++) {
                    var o = n === i[A].id;
                    if ((t === i[A].fn && o) || (!t && o)) {
                      i.splice(A, 1);
                      break;
                    }
                  }
                else if (e) r["_on" + e] = [];
                else {
                  var a = Object.keys(r);
                  for (A = 0; A < a.length; A++)
                    0 === a[A].indexOf("_on") &&
                      Array.isArray(r[a[A]]) &&
                      (r[a[A]] = []);
                }
                return r;
              },
              once: function (e, t, n) {
                var r = this;
                return (r.on(e, t, n, 1), r);
              },
              _emit: function (e, t, n) {
                for (
                  var r = this, i = r["_on" + e], A = i.length - 1;
                  A >= 0;
                  A--
                )
                  (i[A].id && i[A].id !== t && "load" !== e) ||
                    (setTimeout(
                      function (e) {
                        e.call(this, t, n);
                      }.bind(r, i[A].fn),
                      0,
                    ),
                    i[A].once && r.off(e, i[A].fn, i[A].id));
                return (r._loadQueue(e), r);
              },
              _loadQueue: function (e) {
                var t = this;
                if (t._queue.length > 0) {
                  var n = t._queue[0];
                  (n.event === e && (t._queue.shift(), t._loadQueue()),
                    e || n.action());
                }
                return t;
              },
              _ended: function (e) {
                var t = this,
                  n = e._sprite;
                if (
                  !t._webAudio &&
                  e._node &&
                  !e._node.paused &&
                  !e._node.ended &&
                  e._node.currentTime < e._stop
                )
                  return (setTimeout(t._ended.bind(t, e), 100), t);
                var r = !(!e._loop && !t._sprite[n][2]);
                if (
                  (t._emit("end", e._id),
                  !t._webAudio && r && t.stop(e._id, !0).play(e._id),
                  t._webAudio && r)
                ) {
                  (t._emit("play", e._id),
                    (e._seek = e._start || 0),
                    (e._rateSeek = 0),
                    (e._playStart = o.ctx.currentTime));
                  var i = (1e3 * (e._stop - e._start)) / Math.abs(e._rate);
                  t._endTimers[e._id] = setTimeout(t._ended.bind(t, e), i);
                }
                return (
                  t._webAudio &&
                    !r &&
                    ((e._paused = !0),
                    (e._ended = !0),
                    (e._seek = e._start || 0),
                    (e._rateSeek = 0),
                    t._clearTimer(e._id),
                    t._cleanBuffer(e._node),
                    o._autoSuspend()),
                  t._webAudio || r || t.stop(e._id, !0),
                  t
                );
              },
              _clearTimer: function (e) {
                var t = this;
                if (t._endTimers[e]) {
                  if ("function" !== typeof t._endTimers[e])
                    clearTimeout(t._endTimers[e]);
                  else {
                    var n = t._soundById(e);
                    n &&
                      n._node &&
                      n._node.removeEventListener("ended", t._endTimers[e], !1);
                  }
                  delete t._endTimers[e];
                }
                return t;
              },
              _soundById: function (e) {
                for (var t = this, n = 0; n < t._sounds.length; n++)
                  if (e === t._sounds[n]._id) return t._sounds[n];
                return null;
              },
              _inactiveSound: function () {
                var e = this;
                e._drain();
                for (var t = 0; t < e._sounds.length; t++)
                  if (e._sounds[t]._ended) return e._sounds[t].reset();
                return new s(e);
              },
              _drain: function () {
                var e = this,
                  t = e._pool,
                  n = 0,
                  r = 0;
                if (!(e._sounds.length < t)) {
                  for (r = 0; r < e._sounds.length; r++)
                    e._sounds[r]._ended && n++;
                  for (r = e._sounds.length - 1; r >= 0; r--) {
                    if (n <= t) return;
                    e._sounds[r]._ended &&
                      (e._webAudio &&
                        e._sounds[r]._node &&
                        e._sounds[r]._node.disconnect(0),
                      e._sounds.splice(r, 1),
                      n--);
                  }
                }
              },
              _getSoundIds: function (e) {
                var t = this;
                if ("undefined" === typeof e) {
                  for (var n = [], r = 0; r < t._sounds.length; r++)
                    n.push(t._sounds[r]._id);
                  return n;
                }
                return [e];
              },
              _refreshBuffer: function (e) {
                var t = this;
                return (
                  (e._node.bufferSource = o.ctx.createBufferSource()),
                  (e._node.bufferSource.buffer = c[t._src]),
                  e._panner
                    ? e._node.bufferSource.connect(e._panner)
                    : e._node.bufferSource.connect(e._node),
                  (e._node.bufferSource.loop = e._loop),
                  e._loop &&
                    ((e._node.bufferSource.loopStart = e._start || 0),
                    (e._node.bufferSource.loopEnd = e._stop || 0)),
                  e._node.bufferSource.playbackRate.setValueAtTime(
                    e._rate,
                    o.ctx.currentTime,
                  ),
                  t
                );
              },
              _cleanBuffer: function (e) {
                var t = this,
                  n = o._navigator && o._navigator.vendor.indexOf("Apple") >= 0;
                if (
                  o._scratchBuffer &&
                  e.bufferSource &&
                  ((e.bufferSource.onended = null),
                  e.bufferSource.disconnect(0),
                  n)
                )
                  try {
                    e.bufferSource.buffer = o._scratchBuffer;
                  } catch (r) {}
                return ((e.bufferSource = null), t);
              },
              _clearSound: function (e) {
                var t = /MSIE |Trident\//.test(
                  o._navigator && o._navigator.userAgent,
                );
                t ||
                  (e.src =
                    "data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA");
              },
            };
            var s = function (e) {
              ((this._parent = e), this.init());
            };
            s.prototype = {
              init: function () {
                var e = this,
                  t = e._parent;
                return (
                  (e._muted = t._muted),
                  (e._loop = t._loop),
                  (e._volume = t._volume),
                  (e._rate = t._rate),
                  (e._seek = 0),
                  (e._paused = !0),
                  (e._ended = !0),
                  (e._sprite = "__default"),
                  (e._id = ++o._counter),
                  t._sounds.push(e),
                  e.create(),
                  e
                );
              },
              create: function () {
                var e = this,
                  t = e._parent,
                  n = o._muted || e._muted || e._parent._muted ? 0 : e._volume;
                return (
                  t._webAudio
                    ? ((e._node =
                        "undefined" === typeof o.ctx.createGain
                          ? o.ctx.createGainNode()
                          : o.ctx.createGain()),
                      e._node.gain.setValueAtTime(n, o.ctx.currentTime),
                      (e._node.paused = !0),
                      e._node.connect(o.masterGain))
                    : o.noAudio ||
                      ((e._node = o._obtainHtml5Audio()),
                      (e._errorFn = e._errorListener.bind(e)),
                      e._node.addEventListener("error", e._errorFn, !1),
                      (e._loadFn = e._loadListener.bind(e)),
                      e._node.addEventListener(o._canPlayEvent, e._loadFn, !1),
                      (e._endFn = e._endListener.bind(e)),
                      e._node.addEventListener("ended", e._endFn, !1),
                      (e._node.src = t._src),
                      (e._node.preload =
                        !0 === t._preload ? "auto" : t._preload),
                      (e._node.volume = n * o.volume()),
                      e._node.load()),
                  e
                );
              },
              reset: function () {
                var e = this,
                  t = e._parent;
                return (
                  (e._muted = t._muted),
                  (e._loop = t._loop),
                  (e._volume = t._volume),
                  (e._rate = t._rate),
                  (e._seek = 0),
                  (e._rateSeek = 0),
                  (e._paused = !0),
                  (e._ended = !0),
                  (e._sprite = "__default"),
                  (e._id = ++o._counter),
                  e
                );
              },
              _errorListener: function () {
                var e = this;
                (e._parent._emit(
                  "loaderror",
                  e._id,
                  e._node.error ? e._node.error.code : 0,
                ),
                  e._node.removeEventListener("error", e._errorFn, !1));
              },
              _loadListener: function () {
                var e = this,
                  t = e._parent;
                ((t._duration = Math.ceil(10 * e._node.duration) / 10),
                  0 === Object.keys(t._sprite).length &&
                    (t._sprite = { __default: [0, 1e3 * t._duration] }),
                  "loaded" !== t._state &&
                    ((t._state = "loaded"), t._emit("load"), t._loadQueue()),
                  e._node.removeEventListener(o._canPlayEvent, e._loadFn, !1));
              },
              _endListener: function () {
                var e = this,
                  t = e._parent;
                (t._duration === 1 / 0 &&
                  ((t._duration = Math.ceil(10 * e._node.duration) / 10),
                  t._sprite.__default[1] === 1 / 0 &&
                    (t._sprite.__default[1] = 1e3 * t._duration),
                  t._ended(e)),
                  e._node.removeEventListener("ended", e._endFn, !1));
              },
            };
            var c = {},
              u = function (e) {
                var t = e._src;
                if (c[t]) return ((e._duration = c[t].duration), void f(e));
                if (/^data:[^;]+;base64,/.test(t)) {
                  for (
                    var n = atob(t.split(",")[1]),
                      r = new Uint8Array(n.length),
                      i = 0;
                    i < n.length;
                    ++i
                  )
                    r[i] = n.charCodeAt(i);
                  h(r.buffer, e);
                } else {
                  var A = new XMLHttpRequest();
                  (A.open(e._xhr.method, t, !0),
                    (A.withCredentials = e._xhr.withCredentials),
                    (A.responseType = "arraybuffer"),
                    e._xhr.headers &&
                      Object.keys(e._xhr.headers).forEach(function (t) {
                        A.setRequestHeader(t, e._xhr.headers[t]);
                      }),
                    (A.onload = function () {
                      var t = (A.status + "")[0];
                      "0" === t || "2" === t || "3" === t
                        ? h(A.response, e)
                        : e._emit(
                            "loaderror",
                            null,
                            "Failed loading audio file with status: " +
                              A.status +
                              ".",
                          );
                    }),
                    (A.onerror = function () {
                      e._webAudio &&
                        ((e._html5 = !0),
                        (e._webAudio = !1),
                        (e._sounds = []),
                        delete c[t],
                        e.load());
                    }),
                    l(A));
                }
              },
              l = function (e) {
                try {
                  e.send();
                } catch (t) {
                  e.onerror();
                }
              },
              h = function (e, t) {
                var n = function () {
                    t._emit("loaderror", null, "Decoding audio data failed.");
                  },
                  r = function (e) {
                    e && t._sounds.length > 0
                      ? ((c[t._src] = e), f(t, e))
                      : n();
                  };
                "undefined" !== typeof Promise &&
                1 === o.ctx.decodeAudioData.length
                  ? o.ctx.decodeAudioData(e).then(r).catch(n)
                  : o.ctx.decodeAudioData(e, r, n);
              },
              f = function (e, t) {
                (t && !e._duration && (e._duration = t.duration),
                  0 === Object.keys(e._sprite).length &&
                    (e._sprite = { __default: [0, 1e3 * e._duration] }),
                  "loaded" !== e._state &&
                    ((e._state = "loaded"), e._emit("load"), e._loadQueue()));
              },
              d = function () {
                if (o.usingWebAudio) {
                  try {
                    "undefined" !== typeof AudioContext
                      ? (o.ctx = new AudioContext())
                      : "undefined" !== typeof webkitAudioContext
                        ? (o.ctx = new webkitAudioContext())
                        : (o.usingWebAudio = !1);
                  } catch (i) {
                    o.usingWebAudio = !1;
                  }
                  o.ctx || (o.usingWebAudio = !1);
                  var e = /iP(hone|od|ad)/.test(
                      o._navigator && o._navigator.platform,
                    ),
                    t =
                      o._navigator &&
                      o._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),
                    n = t ? parseInt(t[1], 10) : null;
                  if (e && n && n < 9) {
                    var r = /safari/.test(
                      o._navigator && o._navigator.userAgent.toLowerCase(),
                    );
                    o._navigator && !r && (o.usingWebAudio = !1);
                  }
                  (o.usingWebAudio &&
                    ((o.masterGain =
                      "undefined" === typeof o.ctx.createGain
                        ? o.ctx.createGainNode()
                        : o.ctx.createGain()),
                    o.masterGain.gain.setValueAtTime(
                      o._muted ? 0 : o._volume,
                      o.ctx.currentTime,
                    ),
                    o.masterGain.connect(o.ctx.destination)),
                    o._setup());
                }
              };
            ((i = []),
              (A = function () {
                return { Howler: o, Howl: a };
              }.apply(t, i)),
              void 0 === A || (e.exports = A),
              (t.Howler = o),
              (t.Howl = a),
              "undefined" !== typeof r
                ? ((r.HowlerGlobal = n),
                  (r.Howler = o),
                  (r.Howl = a),
                  (r.Sound = s))
                : "undefined" !== typeof window &&
                  ((window.HowlerGlobal = n),
                  (window.Howler = o),
                  (window.Howl = a),
                  (window.Sound = s)));
          })(),
          /*!
           *  Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported.
           *
           *  howler.js v2.2.3
           *  howlerjs.com
           *
           *  (c) 2013-2020, James Simpson of GoldFire Studios
           *  goldfirestudios.com
           *
           *  MIT License
           */
          (function () {
            "use strict";
            ((HowlerGlobal.prototype._pos = [0, 0, 0]),
              (HowlerGlobal.prototype._orientation = [0, 0, -1, 0, 1, 0]),
              (HowlerGlobal.prototype.stereo = function (e) {
                var t = this;
                if (!t.ctx || !t.ctx.listener) return t;
                for (var n = t._howls.length - 1; n >= 0; n--)
                  t._howls[n].stereo(e);
                return t;
              }),
              (HowlerGlobal.prototype.pos = function (e, t, n) {
                var r = this;
                return r.ctx && r.ctx.listener
                  ? ((t = "number" !== typeof t ? r._pos[1] : t),
                    (n = "number" !== typeof n ? r._pos[2] : n),
                    "number" !== typeof e
                      ? r._pos
                      : ((r._pos = [e, t, n]),
                        "undefined" !== typeof r.ctx.listener.positionX
                          ? (r.ctx.listener.positionX.setTargetAtTime(
                              r._pos[0],
                              Howler.ctx.currentTime,
                              0.1,
                            ),
                            r.ctx.listener.positionY.setTargetAtTime(
                              r._pos[1],
                              Howler.ctx.currentTime,
                              0.1,
                            ),
                            r.ctx.listener.positionZ.setTargetAtTime(
                              r._pos[2],
                              Howler.ctx.currentTime,
                              0.1,
                            ))
                          : r.ctx.listener.setPosition(
                              r._pos[0],
                              r._pos[1],
                              r._pos[2],
                            ),
                        r))
                  : r;
              }),
              (HowlerGlobal.prototype.orientation = function (
                e,
                t,
                n,
                r,
                i,
                A,
              ) {
                var o = this;
                if (!o.ctx || !o.ctx.listener) return o;
                var a = o._orientation;
                return (
                  (t = "number" !== typeof t ? a[1] : t),
                  (n = "number" !== typeof n ? a[2] : n),
                  (r = "number" !== typeof r ? a[3] : r),
                  (i = "number" !== typeof i ? a[4] : i),
                  (A = "number" !== typeof A ? a[5] : A),
                  "number" !== typeof e
                    ? a
                    : ((o._orientation = [e, t, n, r, i, A]),
                      "undefined" !== typeof o.ctx.listener.forwardX
                        ? (o.ctx.listener.forwardX.setTargetAtTime(
                            e,
                            Howler.ctx.currentTime,
                            0.1,
                          ),
                          o.ctx.listener.forwardY.setTargetAtTime(
                            t,
                            Howler.ctx.currentTime,
                            0.1,
                          ),
                          o.ctx.listener.forwardZ.setTargetAtTime(
                            n,
                            Howler.ctx.currentTime,
                            0.1,
                          ),
                          o.ctx.listener.upX.setTargetAtTime(
                            r,
                            Howler.ctx.currentTime,
                            0.1,
                          ),
                          o.ctx.listener.upY.setTargetAtTime(
                            i,
                            Howler.ctx.currentTime,
                            0.1,
                          ),
                          o.ctx.listener.upZ.setTargetAtTime(
                            A,
                            Howler.ctx.currentTime,
                            0.1,
                          ))
                        : o.ctx.listener.setOrientation(e, t, n, r, i, A),
                      o)
                );
              }),
              (Howl.prototype.init = (function (e) {
                return function (t) {
                  var n = this;
                  return (
                    (n._orientation = t.orientation || [1, 0, 0]),
                    (n._stereo = t.stereo || null),
                    (n._pos = t.pos || null),
                    (n._pannerAttr = {
                      coneInnerAngle:
                        "undefined" !== typeof t.coneInnerAngle
                          ? t.coneInnerAngle
                          : 360,
                      coneOuterAngle:
                        "undefined" !== typeof t.coneOuterAngle
                          ? t.coneOuterAngle
                          : 360,
                      coneOuterGain:
                        "undefined" !== typeof t.coneOuterGain
                          ? t.coneOuterGain
                          : 0,
                      distanceModel:
                        "undefined" !== typeof t.distanceModel
                          ? t.distanceModel
                          : "inverse",
                      maxDistance:
                        "undefined" !== typeof t.maxDistance
                          ? t.maxDistance
                          : 1e4,
                      panningModel:
                        "undefined" !== typeof t.panningModel
                          ? t.panningModel
                          : "HRTF",
                      refDistance:
                        "undefined" !== typeof t.refDistance
                          ? t.refDistance
                          : 1,
                      rolloffFactor:
                        "undefined" !== typeof t.rolloffFactor
                          ? t.rolloffFactor
                          : 1,
                    }),
                    (n._onstereo = t.onstereo ? [{ fn: t.onstereo }] : []),
                    (n._onpos = t.onpos ? [{ fn: t.onpos }] : []),
                    (n._onorientation = t.onorientation
                      ? [{ fn: t.onorientation }]
                      : []),
                    e.call(this, t)
                  );
                };
              })(Howl.prototype.init)),
              (Howl.prototype.stereo = function (t, n) {
                var r = this;
                if (!r._webAudio) return r;
                if ("loaded" !== r._state)
                  return (
                    r._queue.push({
                      event: "stereo",
                      action: function () {
                        r.stereo(t, n);
                      },
                    }),
                    r
                  );
                var i =
                  "undefined" === typeof Howler.ctx.createStereoPanner
                    ? "spatial"
                    : "stereo";
                if ("undefined" === typeof n) {
                  if ("number" !== typeof t) return r._stereo;
                  ((r._stereo = t), (r._pos = [t, 0, 0]));
                }
                for (var A = r._getSoundIds(n), o = 0; o < A.length; o++) {
                  var a = r._soundById(A[o]);
                  if (a) {
                    if ("number" !== typeof t) return a._stereo;
                    ((a._stereo = t),
                      (a._pos = [t, 0, 0]),
                      a._node &&
                        ((a._pannerAttr.panningModel = "equalpower"),
                        (a._panner && a._panner.pan) || e(a, i),
                        "spatial" === i
                          ? "undefined" !== typeof a._panner.positionX
                            ? (a._panner.positionX.setValueAtTime(
                                t,
                                Howler.ctx.currentTime,
                              ),
                              a._panner.positionY.setValueAtTime(
                                0,
                                Howler.ctx.currentTime,
                              ),
                              a._panner.positionZ.setValueAtTime(
                                0,
                                Howler.ctx.currentTime,
                              ))
                            : a._panner.setPosition(t, 0, 0)
                          : a._panner.pan.setValueAtTime(
                              t,
                              Howler.ctx.currentTime,
                            )),
                      r._emit("stereo", a._id));
                  }
                }
                return r;
              }),
              (Howl.prototype.pos = function (t, n, r, i) {
                var A = this;
                if (!A._webAudio) return A;
                if ("loaded" !== A._state)
                  return (
                    A._queue.push({
                      event: "pos",
                      action: function () {
                        A.pos(t, n, r, i);
                      },
                    }),
                    A
                  );
                if (
                  ((n = "number" !== typeof n ? 0 : n),
                  (r = "number" !== typeof r ? -0.5 : r),
                  "undefined" === typeof i)
                ) {
                  if ("number" !== typeof t) return A._pos;
                  A._pos = [t, n, r];
                }
                for (var o = A._getSoundIds(i), a = 0; a < o.length; a++) {
                  var s = A._soundById(o[a]);
                  if (s) {
                    if ("number" !== typeof t) return s._pos;
                    ((s._pos = [t, n, r]),
                      s._node &&
                        ((s._panner && !s._panner.pan) || e(s, "spatial"),
                        "undefined" !== typeof s._panner.positionX
                          ? (s._panner.positionX.setValueAtTime(
                              t,
                              Howler.ctx.currentTime,
                            ),
                            s._panner.positionY.setValueAtTime(
                              n,
                              Howler.ctx.currentTime,
                            ),
                            s._panner.positionZ.setValueAtTime(
                              r,
                              Howler.ctx.currentTime,
                            ))
                          : s._panner.setPosition(t, n, r)),
                      A._emit("pos", s._id));
                  }
                }
                return A;
              }),
              (Howl.prototype.orientation = function (t, n, r, i) {
                var A = this;
                if (!A._webAudio) return A;
                if ("loaded" !== A._state)
                  return (
                    A._queue.push({
                      event: "orientation",
                      action: function () {
                        A.orientation(t, n, r, i);
                      },
                    }),
                    A
                  );
                if (
                  ((n = "number" !== typeof n ? A._orientation[1] : n),
                  (r = "number" !== typeof r ? A._orientation[2] : r),
                  "undefined" === typeof i)
                ) {
                  if ("number" !== typeof t) return A._orientation;
                  A._orientation = [t, n, r];
                }
                for (var o = A._getSoundIds(i), a = 0; a < o.length; a++) {
                  var s = A._soundById(o[a]);
                  if (s) {
                    if ("number" !== typeof t) return s._orientation;
                    ((s._orientation = [t, n, r]),
                      s._node &&
                        (s._panner ||
                          (s._pos || (s._pos = A._pos || [0, 0, -0.5]),
                          e(s, "spatial")),
                        "undefined" !== typeof s._panner.orientationX
                          ? (s._panner.orientationX.setValueAtTime(
                              t,
                              Howler.ctx.currentTime,
                            ),
                            s._panner.orientationY.setValueAtTime(
                              n,
                              Howler.ctx.currentTime,
                            ),
                            s._panner.orientationZ.setValueAtTime(
                              r,
                              Howler.ctx.currentTime,
                            ))
                          : s._panner.setOrientation(t, n, r)),
                      A._emit("orientation", s._id));
                  }
                }
                return A;
              }),
              (Howl.prototype.pannerAttr = function () {
                var t,
                  n,
                  r,
                  i = this,
                  A = arguments;
                if (!i._webAudio) return i;
                if (0 === A.length) return i._pannerAttr;
                if (1 === A.length) {
                  if ("object" !== typeof A[0])
                    return (
                      (r = i._soundById(parseInt(A[0], 10))),
                      r ? r._pannerAttr : i._pannerAttr
                    );
                  ((t = A[0]),
                    "undefined" === typeof n &&
                      (t.pannerAttr ||
                        (t.pannerAttr = {
                          coneInnerAngle: t.coneInnerAngle,
                          coneOuterAngle: t.coneOuterAngle,
                          coneOuterGain: t.coneOuterGain,
                          distanceModel: t.distanceModel,
                          maxDistance: t.maxDistance,
                          refDistance: t.refDistance,
                          rolloffFactor: t.rolloffFactor,
                          panningModel: t.panningModel,
                        }),
                      (i._pannerAttr = {
                        coneInnerAngle:
                          "undefined" !== typeof t.pannerAttr.coneInnerAngle
                            ? t.pannerAttr.coneInnerAngle
                            : i._coneInnerAngle,
                        coneOuterAngle:
                          "undefined" !== typeof t.pannerAttr.coneOuterAngle
                            ? t.pannerAttr.coneOuterAngle
                            : i._coneOuterAngle,
                        coneOuterGain:
                          "undefined" !== typeof t.pannerAttr.coneOuterGain
                            ? t.pannerAttr.coneOuterGain
                            : i._coneOuterGain,
                        distanceModel:
                          "undefined" !== typeof t.pannerAttr.distanceModel
                            ? t.pannerAttr.distanceModel
                            : i._distanceModel,
                        maxDistance:
                          "undefined" !== typeof t.pannerAttr.maxDistance
                            ? t.pannerAttr.maxDistance
                            : i._maxDistance,
                        refDistance:
                          "undefined" !== typeof t.pannerAttr.refDistance
                            ? t.pannerAttr.refDistance
                            : i._refDistance,
                        rolloffFactor:
                          "undefined" !== typeof t.pannerAttr.rolloffFactor
                            ? t.pannerAttr.rolloffFactor
                            : i._rolloffFactor,
                        panningModel:
                          "undefined" !== typeof t.pannerAttr.panningModel
                            ? t.pannerAttr.panningModel
                            : i._panningModel,
                      })));
                } else 2 === A.length && ((t = A[0]), (n = parseInt(A[1], 10)));
                for (var o = i._getSoundIds(n), a = 0; a < o.length; a++)
                  if (((r = i._soundById(o[a])), r)) {
                    var s = r._pannerAttr;
                    s = {
                      coneInnerAngle:
                        "undefined" !== typeof t.coneInnerAngle
                          ? t.coneInnerAngle
                          : s.coneInnerAngle,
                      coneOuterAngle:
                        "undefined" !== typeof t.coneOuterAngle
                          ? t.coneOuterAngle
                          : s.coneOuterAngle,
                      coneOuterGain:
                        "undefined" !== typeof t.coneOuterGain
                          ? t.coneOuterGain
                          : s.coneOuterGain,
                      distanceModel:
                        "undefined" !== typeof t.distanceModel
                          ? t.distanceModel
                          : s.distanceModel,
                      maxDistance:
                        "undefined" !== typeof t.maxDistance
                          ? t.maxDistance
                          : s.maxDistance,
                      refDistance:
                        "undefined" !== typeof t.refDistance
                          ? t.refDistance
                          : s.refDistance,
                      rolloffFactor:
                        "undefined" !== typeof t.rolloffFactor
                          ? t.rolloffFactor
                          : s.rolloffFactor,
                      panningModel:
                        "undefined" !== typeof t.panningModel
                          ? t.panningModel
                          : s.panningModel,
                    };
                    var c = r._panner;
                    c
                      ? ((c.coneInnerAngle = s.coneInnerAngle),
                        (c.coneOuterAngle = s.coneOuterAngle),
                        (c.coneOuterGain = s.coneOuterGain),
                        (c.distanceModel = s.distanceModel),
                        (c.maxDistance = s.maxDistance),
                        (c.refDistance = s.refDistance),
                        (c.rolloffFactor = s.rolloffFactor),
                        (c.panningModel = s.panningModel))
                      : (r._pos || (r._pos = i._pos || [0, 0, -0.5]),
                        e(r, "spatial"));
                  }
                return i;
              }),
              (Sound.prototype.init = (function (e) {
                return function () {
                  var t = this,
                    n = t._parent;
                  ((t._orientation = n._orientation),
                    (t._stereo = n._stereo),
                    (t._pos = n._pos),
                    (t._pannerAttr = n._pannerAttr),
                    e.call(this),
                    t._stereo
                      ? n.stereo(t._stereo)
                      : t._pos &&
                        n.pos(t._pos[0], t._pos[1], t._pos[2], t._id));
                };
              })(Sound.prototype.init)),
              (Sound.prototype.reset = (function (e) {
                return function () {
                  var t = this,
                    n = t._parent;
                  return (
                    (t._orientation = n._orientation),
                    (t._stereo = n._stereo),
                    (t._pos = n._pos),
                    (t._pannerAttr = n._pannerAttr),
                    t._stereo
                      ? n.stereo(t._stereo)
                      : t._pos
                        ? n.pos(t._pos[0], t._pos[1], t._pos[2], t._id)
                        : t._panner &&
                          (t._panner.disconnect(0),
                          (t._panner = void 0),
                          n._refreshBuffer(t)),
                    e.call(this)
                  );
                };
              })(Sound.prototype.reset)));
            var e = function (e, t) {
              ((t = t || "spatial"),
                "spatial" === t
                  ? ((e._panner = Howler.ctx.createPanner()),
                    (e._panner.coneInnerAngle = e._pannerAttr.coneInnerAngle),
                    (e._panner.coneOuterAngle = e._pannerAttr.coneOuterAngle),
                    (e._panner.coneOuterGain = e._pannerAttr.coneOuterGain),
                    (e._panner.distanceModel = e._pannerAttr.distanceModel),
                    (e._panner.maxDistance = e._pannerAttr.maxDistance),
                    (e._panner.refDistance = e._pannerAttr.refDistance),
                    (e._panner.rolloffFactor = e._pannerAttr.rolloffFactor),
                    (e._panner.panningModel = e._pannerAttr.panningModel),
                    "undefined" !== typeof e._panner.positionX
                      ? (e._panner.positionX.setValueAtTime(
                          e._pos[0],
                          Howler.ctx.currentTime,
                        ),
                        e._panner.positionY.setValueAtTime(
                          e._pos[1],
                          Howler.ctx.currentTime,
                        ),
                        e._panner.positionZ.setValueAtTime(
                          e._pos[2],
                          Howler.ctx.currentTime,
                        ))
                      : e._panner.setPosition(e._pos[0], e._pos[1], e._pos[2]),
                    "undefined" !== typeof e._panner.orientationX
                      ? (e._panner.orientationX.setValueAtTime(
                          e._orientation[0],
                          Howler.ctx.currentTime,
                        ),
                        e._panner.orientationY.setValueAtTime(
                          e._orientation[1],
                          Howler.ctx.currentTime,
                        ),
                        e._panner.orientationZ.setValueAtTime(
                          e._orientation[2],
                          Howler.ctx.currentTime,
                        ))
                      : e._panner.setOrientation(
                          e._orientation[0],
                          e._orientation[1],
                          e._orientation[2],
                        ))
                  : ((e._panner = Howler.ctx.createStereoPanner()),
                    e._panner.pan.setValueAtTime(
                      e._stereo,
                      Howler.ctx.currentTime,
                    )),
                e._panner.connect(e._node),
                e._paused || e._parent.pause(e._id, !0).play(e._id, !0));
            };
          })());
      }).call(this, n("c8ba"));
    },
    "1ff6": function (e, t, n) {
      var r = n("5155"),
        i = n("b760");
      e.exports = function (e) {
        return function () {
          if (r(this) != e) throw TypeError(e + "#toJSON isn't generic");
          return i(this);
        };
      };
    },
    "202e": function (e, t, n) {
      var r = n("f083");
      r(r.S, "Math", { sign: n("7bc9") });
    },
    "206a": function (e, t, n) {
      "use strict";
      n("e681")("blink", function (e) {
        return function () {
          return e(this, "blink", "", "");
        };
      });
    },
    2132: function (e, t, n) {
      "use strict";
      n.d(t, "a", function () {
        return i;
      });
      (n("907a"), n("3c5d"), n("fa9e"), n("77d9"));
      var r = n("5a89"),
        i = function (e) {
          (r["l"].call(this, e), (this.type = r["Db"]));
        };
      i.prototype = Object.assign(Object.create(r["l"].prototype), {
        constructor: i,
        parse: function (e) {
          var t = -1,
            n = 1,
            i = 2,
            A = 3,
            o = 4,
            a = function (e, r) {
              switch (e) {
                case n:
                  console.log("RGBELoader Read Error: " + (r || ""));
                  break;
                case i:
                  console.log("RGBELoader Write Error: " + (r || ""));
                  break;
                case A:
                  console.log("RGBELoader Bad File Format: " + (r || ""));
                  break;
                default:
                case o:
                  console.log("RGBELoader: Error: " + (r || ""));
              }
              return t;
            },
            s = 1,
            c = 2,
            u = 4,
            l = "\n",
            h = function (e, t, n) {
              t = t || 1024;
              var r = e.pos,
                i = -1,
                A = 0,
                o = "",
                a = 128,
                s = String.fromCharCode.apply(
                  null,
                  new Uint16Array(e.subarray(r, r + a)),
                );
              while (0 > (i = s.indexOf(l)) && A < t && r < e.byteLength)
                ((o += s),
                  (A += s.length),
                  (r += a),
                  (s += String.fromCharCode.apply(
                    null,
                    new Uint16Array(e.subarray(r, r + a)),
                  )));
              return (
                -1 < i && (!1 !== n && (e.pos += A + i + 1), o + s.slice(0, i))
              );
            },
            f = function (e) {
              var t,
                r,
                i = /^#\?(\S+)$/,
                o = /^\s*GAMMA\s*=\s*(\d+(\.\d+)?)\s*$/,
                l = /^\s*EXPOSURE\s*=\s*(\d+(\.\d+)?)\s*$/,
                f = /^\s*FORMAT=(\S+)\s*$/,
                d = /^\s*\-Y\s+(\d+)\s+\+X\s+(\d+)\s*$/,
                p = {
                  valid: 0,
                  string: "",
                  comments: "",
                  programtype: "RGBE",
                  format: "",
                  gamma: 1,
                  exposure: 1,
                  width: 0,
                  height: 0,
                };
              if (e.pos >= e.byteLength || !(t = h(e)))
                return a(n, "no header found");
              if (!(r = t.match(i))) return a(A, "bad initial token");
              ((p.valid |= s), (p.programtype = r[1]), (p.string += t + "\n"));
              while (1) {
                if (((t = h(e)), !1 === t)) break;
                if (((p.string += t + "\n"), "#" !== t.charAt(0))) {
                  if (
                    ((r = t.match(o)) && (p.gamma = parseFloat(r[1], 10)),
                    (r = t.match(l)) && (p.exposure = parseFloat(r[1], 10)),
                    (r = t.match(f)) && ((p.valid |= c), (p.format = r[1])),
                    (r = t.match(d)) &&
                      ((p.valid |= u),
                      (p.height = parseInt(r[1], 10)),
                      (p.width = parseInt(r[2], 10))),
                    p.valid & c && p.valid & u)
                  )
                    break;
                } else p.comments += t + "\n";
              }
              return p.valid & c
                ? p.valid & u
                  ? p
                  : a(A, "missing image size specifier")
                : a(A, "missing format specifier");
            },
            d = function (e, t, r) {
              var i,
                s,
                c,
                u,
                l,
                h,
                f,
                d,
                p,
                g,
                m,
                v,
                y,
                w = t,
                B = r;
              if (w < 8 || w > 32767 || 2 !== e[0] || 2 !== e[1] || 128 & e[2])
                return new Uint8Array(e);
              if (w !== ((e[2] << 8) | e[3]))
                return a(A, "wrong scanline width");
              if (((i = new Uint8Array(4 * t * r)), !i.length))
                return a(o, "unable to allocate buffer space");
              ((s = 0),
                (c = 0),
                (d = 4 * w),
                (y = new Uint8Array(4)),
                (h = new Uint8Array(d)));
              while (B > 0 && c < e.byteLength) {
                if (c + 4 > e.byteLength) return a(n);
                if (
                  ((y[0] = e[c++]),
                  (y[1] = e[c++]),
                  (y[2] = e[c++]),
                  (y[3] = e[c++]),
                  2 != y[0] || 2 != y[1] || ((y[2] << 8) | y[3]) != w)
                )
                  return a(A, "bad rgbe scanline format");
                f = 0;
                while (f < d && c < e.byteLength) {
                  if (
                    ((u = e[c++]),
                    (v = u > 128),
                    v && (u -= 128),
                    0 === u || f + u > d)
                  )
                    return a(A, "bad scanline data");
                  if (v) for (l = e[c++], p = 0; p < u; p++) h[f++] = l;
                  else (h.set(e.subarray(c, c + u), f), (f += u), (c += u));
                }
                for (g = w, p = 0; p < g; p++)
                  ((m = 0),
                    (i[s] = h[p + m]),
                    (m += w),
                    (i[s + 1] = h[p + m]),
                    (m += w),
                    (i[s + 2] = h[p + m]),
                    (m += w),
                    (i[s + 3] = h[p + m]),
                    (s += 4));
                B--;
              }
              return i;
            },
            p = function (e, t, n, r) {
              var i = e[t + 3],
                A = Math.pow(2, i - 128) / 255;
              ((n[r + 0] = e[t + 0] * A),
                (n[r + 1] = e[t + 1] * A),
                (n[r + 2] = e[t + 2] * A));
            },
            g = (function () {
              var e = new Float32Array(1),
                t = new Int32Array(e.buffer);
              function n(n) {
                e[0] = n;
                var r = t[0],
                  i = (r >> 16) & 32768,
                  A = (r >> 12) & 2047,
                  o = (r >> 23) & 255;
                return o < 103
                  ? i
                  : o > 142
                    ? ((i |= 31744),
                      (i |= (255 == o ? 0 : 1) && 8388607 & r),
                      i)
                    : o < 113
                      ? ((A |= 2048),
                        (i |= (A >> (114 - o)) + ((A >> (113 - o)) & 1)),
                        i)
                      : ((i |= ((o - 112) << 10) | (A >> 1)), (i += 1 & A), i);
              }
              return function (e, t, r, i) {
                var A = e[t + 3],
                  o = Math.pow(2, A - 128) / 255;
                ((r[i + 0] = n(e[t + 0] * o)),
                  (r[i + 1] = n(e[t + 1] * o)),
                  (r[i + 2] = n(e[t + 2] * o)));
              };
            })(),
            m = new Uint8Array(e);
          m.pos = 0;
          var v = f(m);
          if (t !== v) {
            var y = v.width,
              w = v.height,
              B = d(m.subarray(m.pos), y, w);
            if (t !== B) {
              switch (this.type) {
                case r["Db"]:
                  var b = B,
                    _ = r["lb"],
                    x = r["Db"];
                  break;
                case r["q"]:
                  for (
                    var C = (B.length / 4) * 3, E = new Float32Array(C), M = 0;
                    M < C;
                    M++
                  )
                    p(B, 4 * M, E, 3 * M);
                  ((b = E), (_ = r["mb"]), (x = r["q"]));
                  break;
                case r["t"]:
                  C = (B.length / 4) * 3;
                  var S = new Uint16Array(C);
                  for (M = 0; M < C; M++) g(B, 4 * M, S, 3 * M);
                  ((b = S), (_ = r["mb"]), (x = r["t"]));
                  break;
                default:
                  console.log(
                    "THREE.RGBELoader: unsupported type: ",
                    this.type,
                  );
                  break;
              }
              return {
                width: y,
                height: w,
                data: b,
                header: v.string,
                gamma: v.gamma,
                exposure: v.exposure,
                format: _,
                type: x,
              };
            }
          }
          return null;
        },
        setDataType: function (e) {
          return ((this.type = e), this);
        },
        load: function (e, t, n, i) {
          function A(e, n) {
            switch (e.type) {
              case r["Db"]:
                ((e.encoding = r["kb"]),
                  (e.minFilter = r["T"]),
                  (e.magFilter = r["T"]),
                  (e.generateMipmaps = !1),
                  (e.flipY = !0));
                break;
              case r["q"]:
                ((e.encoding = r["E"]),
                  (e.minFilter = r["F"]),
                  (e.magFilter = r["F"]),
                  (e.generateMipmaps = !1),
                  (e.flipY = !0));
                break;
              case r["t"]:
                ((e.encoding = r["E"]),
                  (e.minFilter = r["F"]),
                  (e.magFilter = r["F"]),
                  (e.generateMipmaps = !1),
                  (e.flipY = !0));
                break;
            }
            t && t(e, n);
          }
          return r["l"].prototype.load.call(this, e, A, n, i);
        },
      });
    },
    "21d0": function (e, t, n) {
      "use strict";
      var r = n("66b7"),
        i = n("fb87"),
        A = n("c053"),
        o = n("5d6f");
      ((e.exports = n("d516")(
        Array,
        "Array",
        function (e, t) {
          ((this._t = o(e)), (this._i = 0), (this._k = t));
        },
        function () {
          var e = this._t,
            t = this._k,
            n = this._i++;
          return !e || n >= e.length
            ? ((this._t = void 0), i(1))
            : i(0, "keys" == t ? n : "values" == t ? e[n] : [n, e[n]]);
        },
        "values",
      )),
        (A.Arguments = A.Array),
        r("keys"),
        r("values"),
        r("entries"));
    },
    2217: function (e, t, n) {
      "use strict";
      n("e681")("fontsize", function (e) {
        return function (t) {
          return e(this, "font", "size", t);
        };
      });
    },
    "227b": function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("42ee"),
        A = n("2ce8"),
        o = n("2761");
      n("c94e") &&
        r(r.P + n("ac60"), "Object", {
          __defineSetter__: function (e, t) {
            o.f(i(this), e, { set: A(t), enumerable: !0, configurable: !0 });
          },
        });
    },
    "23cb": function (e, t, n) {
      var r = n("5926"),
        i = Math.max,
        A = Math.min;
      e.exports = function (e, t) {
        var n = r(e);
        return n < 0 ? i(n + t, 0) : A(n, t);
      };
    },
    "23e7": function (e, t, n) {
      var r = n("da84"),
        i = n("06cf").f,
        A = n("9112"),
        o = n("cb2d"),
        a = n("6374"),
        s = n("e893"),
        c = n("94ca");
      e.exports = function (e, t) {
        var n,
          u,
          l,
          h,
          f,
          d,
          p = e.target,
          g = e.global,
          m = e.stat;
        if (((u = g ? r : m ? r[p] || a(p, {}) : (r[p] || {}).prototype), u))
          for (l in t) {
            if (
              ((f = t[l]),
              e.dontCallGetSet
                ? ((d = i(u, l)), (h = d && d.value))
                : (h = u[l]),
              (n = c(g ? l : p + (m ? "." : "#") + l, e.forced)),
              !n && void 0 !== h)
            ) {
              if (typeof f == typeof h) continue;
              s(f, h);
            }
            ((e.sham || (h && h.sham)) && A(f, "sham", !0), o(u, l, f, e));
          }
      };
    },
    "241c": function (e, t, n) {
      var r = n("ca84"),
        i = n("7839"),
        A = i.concat("length", "prototype");
      t.f =
        Object.getOwnPropertyNames ||
        function (e) {
          return r(e, A);
        };
    },
    2424: function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("453f"),
        A = "includes";
      r(r.P + r.F * n("3afb")(A), "String", {
        includes: function (e) {
          return !!~i(this, e, A).indexOf(
            e,
            arguments.length > 1 ? arguments[1] : void 0,
          );
        },
      });
    },
    "24d7": function (e, t, n) {
      "use strict";
      n("e681")("big", function (e) {
        return function () {
          return e(this, "big", "", "");
        };
      });
    },
    2584: function (e, t, n) {
      var r = n("c94e"),
        i = n("5a5d"),
        A = n("5d6f"),
        o = n("e171").f;
      e.exports = function (e) {
        return function (t) {
          var n,
            a = A(t),
            s = i(a),
            c = s.length,
            u = 0,
            l = [];
          while (c > u)
            ((n = s[u++]),
              (r && !o.call(a, n)) || l.push(e ? [n, a[n]] : a[n]));
          return l;
        };
      };
    },
    2647: function (e, t, n) {
      var r = n("9fe8"),
        i = Math.floor;
      e.exports = function (e) {
        return !r(e) && isFinite(e) && i(e) === e;
      };
    },
    "26f1": function (e, t, n) {
      "use strict";
      var r = n("ab6e"),
        i = n("798a"),
        A = "Set";
      e.exports = n("d168")(
        A,
        function (e) {
          return function () {
            return e(this, arguments.length > 0 ? arguments[0] : void 0);
          };
        },
        {
          add: function (e) {
            return r.def(i(this, A), (e = 0 === e ? 0 : e), e);
          },
        },
        r,
      );
    },
    2761: function (e, t, n) {
      var r = n("d77f"),
        i = n("f97f"),
        A = n("019f"),
        o = Object.defineProperty;
      t.f = n("c94e")
        ? Object.defineProperty
        : function (e, t, n) {
            if ((r(e), (t = A(t, !0)), r(n), i))
              try {
                return o(e, t, n);
              } catch (a) {}
            if ("get" in n || "set" in n)
              throw TypeError("Accessors not supported!");
            return ("value" in n && (e[t] = n.value), e);
          };
    },
    "27bd": function (e, t, n) {
      var r = n("2761").f,
        i = n("2fb2"),
        A = n("de24")("toStringTag");
      e.exports = function (e, t, n) {
        e &&
          !i((e = n ? e : e.prototype), A) &&
          r(e, A, { configurable: !0, value: t });
      };
    },
    "27c4": function (e, t, n) {
      var r = n("5d6f"),
        i = n("6373"),
        A = n("6fc7");
      e.exports = function (e) {
        return function (t, n, o) {
          var a,
            s = r(t),
            c = i(s.length),
            u = A(o, c);
          if (e && n != n) {
            while (c > u) if (((a = s[u++]), a != a)) return !0;
          } else
            for (; c > u; u++)
              if ((e || u in s) && s[u] === n) return e || u || 0;
          return !e && -1;
        };
      };
    },
    2877: function (e, t, n) {
      "use strict";
      function r(e, t, n, r, i, A, o, a) {
        var s,
          c = "function" === typeof e ? e.options : e;
        if (
          (t && ((c.render = t), (c.staticRenderFns = n), (c._compiled = !0)),
          r && (c.functional = !0),
          A && (c._scopeId = "data-v-" + A),
          o
            ? ((s = function (e) {
                ((e =
                  e ||
                  (this.$vnode && this.$vnode.ssrContext) ||
                  (this.parent &&
                    this.parent.$vnode &&
                    this.parent.$vnode.ssrContext)),
                  e ||
                    "undefined" === typeof __VUE_SSR_CONTEXT__ ||
                    (e = __VUE_SSR_CONTEXT__),
                  i && i.call(this, e),
                  e &&
                    e._registeredComponents &&
                    e._registeredComponents.add(o));
              }),
              (c._ssrRegister = s))
            : i &&
              (s = a
                ? function () {
                    i.call(
                      this,
                      (c.functional ? this.parent : this).$root.$options
                        .shadowRoot,
                    );
                  }
                : i),
          s)
        )
          if (c.functional) {
            c._injectStyles = s;
            var u = c.render;
            c.render = function (e, t) {
              return (s.call(t), u(e, t));
            };
          } else {
            var l = c.beforeCreate;
            c.beforeCreate = l ? [].concat(l, s) : [s];
          }
        return { exports: e, options: c };
      }
      n.d(t, "a", function () {
        return r;
      });
    },
    2985: function (e, t, n) {
      var r = n("f083"),
        i = n("8d87").f,
        A = n("d77f");
      r(r.S, "Reflect", {
        deleteProperty: function (e, t) {
          var n = i(A(e), t);
          return !(n && !n.configurable) && delete e[t];
        },
      });
    },
    "2a2d": function (e, t, n) {
      var r = n("42ee"),
        i = n("ed60");
      n("0a66")("getPrototypeOf", function () {
        return function (e) {
          return i(r(e));
        };
      });
    },
    "2a95": function (e, t, n) {
      var r = n("f083"),
        i = n("4592"),
        A = Math.exp;
      r(r.S, "Math", {
        tanh: function (e) {
          var t = i((e = +e)),
            n = i(-e);
          return t == 1 / 0 ? 1 : n == 1 / 0 ? -1 : (t - n) / (A(e) + A(-e));
        },
      });
    },
    "2aef": function (e, t, n) {
      var r = n("1c2d");
      e.exports = function (e, t) {
        if ("number" != typeof e && "Number" != r(e)) throw TypeError(t);
        return +e;
      };
    },
    "2b0e": function (e, t, n) {
      "use strict";
      (n.r(t),
        function (e) {
          (n.d(t, "EffectScope", function () {
            return Et;
          }),
            n.d(t, "computed", function () {
              return dt;
            }),
            n.d(t, "customRef", function () {
              return At;
            }),
            n.d(t, "default", function () {
              return eA;
            }),
            n.d(t, "defineAsyncComponent", function () {
              return $n;
            }),
            n.d(t, "defineComponent", function () {
              return pr;
            }),
            n.d(t, "del", function () {
              return De;
            }),
            n.d(t, "effectScope", function () {
              return Mt;
            }),
            n.d(t, "getCurrentInstance", function () {
              return ge;
            }),
            n.d(t, "getCurrentScope", function () {
              return Ft;
            }),
            n.d(t, "h", function () {
              return On;
            }),
            n.d(t, "inject", function () {
              return Lt;
            }),
            n.d(t, "isProxy", function () {
              return We;
            }),
            n.d(t, "isReactive", function () {
              return ze;
            }),
            n.d(t, "isReadonly", function () {
              return Ke;
            }),
            n.d(t, "isRef", function () {
              return qe;
            }),
            n.d(t, "isShallow", function () {
              return je;
            }),
            n.d(t, "markRaw", function () {
              return Ye;
            }),
            n.d(t, "mergeDefaults", function () {
              return bn;
            }),
            n.d(t, "nextTick", function () {
              return Jn;
            }),
            n.d(t, "onActivated", function () {
              return cr;
            }),
            n.d(t, "onBeforeMount", function () {
              return nr;
            }),
            n.d(t, "onBeforeUnmount", function () {
              return or;
            }),
            n.d(t, "onBeforeUpdate", function () {
              return ir;
            }),
            n.d(t, "onDeactivated", function () {
              return ur;
            }),
            n.d(t, "onErrorCaptured", function () {
              return sr;
            }),
            n.d(t, "onMounted", function () {
              return rr;
            }),
            n.d(t, "onRenderTracked", function () {
              return hr;
            }),
            n.d(t, "onRenderTriggered", function () {
              return fr;
            }),
            n.d(t, "onScopeDispose", function () {
              return Tt;
            }),
            n.d(t, "onServerPrefetch", function () {
              return lr;
            }),
            n.d(t, "onUnmounted", function () {
              return ar;
            }),
            n.d(t, "onUpdated", function () {
              return Ar;
            }),
            n.d(t, "provide", function () {
              return Ut;
            }),
            n.d(t, "proxyRefs", function () {
              return rt;
            }),
            n.d(t, "reactive", function () {
              return ke;
            }),
            n.d(t, "readonly", function () {
              return ut;
            }),
            n.d(t, "ref", function () {
              return Ze;
            }),
            n.d(t, "set", function () {
              return Pe;
            }),
            n.d(t, "shallowReactive", function () {
              return Ge;
            }),
            n.d(t, "shallowReadonly", function () {
              return ft;
            }),
            n.d(t, "shallowRef", function () {
              return $e;
            }),
            n.d(t, "toRaw", function () {
              return Xe;
            }),
            n.d(t, "toRef", function () {
              return at;
            }),
            n.d(t, "toRefs", function () {
              return ot;
            }),
            n.d(t, "triggerRef", function () {
              return tt;
            }),
            n.d(t, "unref", function () {
              return nt;
            }),
            n.d(t, "useAttrs", function () {
              return yn;
            }),
            n.d(t, "useCssModule", function () {
              return qn;
            }),
            n.d(t, "useCssVars", function () {
              return Zn;
            }),
            n.d(t, "useListeners", function () {
              return wn;
            }),
            n.d(t, "useSlots", function () {
              return vn;
            }),
            n.d(t, "version", function () {
              return dr;
            }),
            n.d(t, "watch", function () {
              return xt;
            }),
            n.d(t, "watchEffect", function () {
              return yt;
            }),
            n.d(t, "watchPostEffect", function () {
              return wt;
            }),
            n.d(t, "watchSyncEffect", function () {
              return Bt;
            }));
          /*!
           * Vue.js v2.7.8
           * (c) 2014-2022 Evan You
           * Released under the MIT License.
           */
          var r = Object.freeze({}),
            i = Array.isArray;
          function A(e) {
            return void 0 === e || null === e;
          }
          function o(e) {
            return void 0 !== e && null !== e;
          }
          function a(e) {
            return !0 === e;
          }
          function s(e) {
            return !1 === e;
          }
          function c(e) {
            return (
              "string" === typeof e ||
              "number" === typeof e ||
              "symbol" === typeof e ||
              "boolean" === typeof e
            );
          }
          function u(e) {
            return "function" === typeof e;
          }
          function l(e) {
            return null !== e && "object" === typeof e;
          }
          var h = Object.prototype.toString;
          function f(e) {
            return "[object Object]" === h.call(e);
          }
          function d(e) {
            return "[object RegExp]" === h.call(e);
          }
          function p(e) {
            var t = parseFloat(String(e));
            return t >= 0 && Math.floor(t) === t && isFinite(e);
          }
          function g(e) {
            return (
              o(e) &&
              "function" === typeof e.then &&
              "function" === typeof e.catch
            );
          }
          function m(e) {
            return null == e
              ? ""
              : Array.isArray(e) || (f(e) && e.toString === h)
                ? JSON.stringify(e, null, 2)
                : String(e);
          }
          function v(e) {
            var t = parseFloat(e);
            return isNaN(t) ? e : t;
          }
          function y(e, t) {
            for (
              var n = Object.create(null), r = e.split(","), i = 0;
              i < r.length;
              i++
            )
              n[r[i]] = !0;
            return t
              ? function (e) {
                  return n[e.toLowerCase()];
                }
              : function (e) {
                  return n[e];
                };
          }
          y("slot,component", !0);
          var w = y("key,ref,slot,slot-scope,is");
          function B(e, t) {
            if (e.length) {
              var n = e.indexOf(t);
              if (n > -1) return e.splice(n, 1);
            }
          }
          var b = Object.prototype.hasOwnProperty;
          function _(e, t) {
            return b.call(e, t);
          }
          function x(e) {
            var t = Object.create(null);
            return function (n) {
              var r = t[n];
              return r || (t[n] = e(n));
            };
          }
          var C = /-(\w)/g,
            E = x(function (e) {
              return e.replace(C, function (e, t) {
                return t ? t.toUpperCase() : "";
              });
            }),
            M = x(function (e) {
              return e.charAt(0).toUpperCase() + e.slice(1);
            }),
            S = /\B([A-Z])/g,
            F = x(function (e) {
              return e.replace(S, "-$1").toLowerCase();
            });
          function T(e, t) {
            function n(n) {
              var r = arguments.length;
              return r
                ? r > 1
                  ? e.apply(t, arguments)
                  : e.call(t, n)
                : e.call(t);
            }
            return ((n._length = e.length), n);
          }
          function U(e, t) {
            return e.bind(t);
          }
          var Q = Function.prototype.bind ? U : T;
          function L(e, t) {
            t = t || 0;
            var n = e.length - t,
              r = new Array(n);
            while (n--) r[n] = e[n + t];
            return r;
          }
          function I(e, t) {
            for (var n in t) e[n] = t[n];
            return e;
          }
          function H(e) {
            for (var t = {}, n = 0; n < e.length; n++) e[n] && I(t, e[n]);
            return t;
          }
          function O(e, t, n) {}
          var R = function (e, t, n) {
              return !1;
            },
            P = function (e) {
              return e;
            };
          function D(e, t) {
            if (e === t) return !0;
            var n = l(e),
              r = l(t);
            if (!n || !r) return !n && !r && String(e) === String(t);
            try {
              var i = Array.isArray(e),
                A = Array.isArray(t);
              if (i && A)
                return (
                  e.length === t.length &&
                  e.every(function (e, n) {
                    return D(e, t[n]);
                  })
                );
              if (e instanceof Date && t instanceof Date)
                return e.getTime() === t.getTime();
              if (i || A) return !1;
              var o = Object.keys(e),
                a = Object.keys(t);
              return (
                o.length === a.length &&
                o.every(function (n) {
                  return D(e[n], t[n]);
                })
              );
            } catch (s) {
              return !1;
            }
          }
          function N(e, t) {
            for (var n = 0; n < e.length; n++) if (D(e[n], t)) return n;
            return -1;
          }
          function k(e) {
            var t = !1;
            return function () {
              t || ((t = !0), e.apply(this, arguments));
            };
          }
          function G(e, t) {
            return e === t ? 0 === e && 1 / e !== 1 / t : e === e || t === t;
          }
          var V = "data-server-rendered",
            z = ["component", "directive", "filter"],
            j = [
              "beforeCreate",
              "created",
              "beforeMount",
              "mounted",
              "beforeUpdate",
              "updated",
              "beforeDestroy",
              "destroyed",
              "activated",
              "deactivated",
              "errorCaptured",
              "serverPrefetch",
              "renderTracked",
              "renderTriggered",
            ],
            K = {
              optionMergeStrategies: Object.create(null),
              silent: !1,
              productionTip: !1,
              devtools: !1,
              performance: !1,
              errorHandler: null,
              warnHandler: null,
              ignoredElements: [],
              keyCodes: Object.create(null),
              isReservedTag: R,
              isReservedAttr: R,
              isUnknownElement: R,
              getTagNamespace: O,
              parsePlatformTagName: P,
              mustUseProp: R,
              async: !0,
              _lifecycleHooks: j,
            },
            W =
              /a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/;
          function X(e) {
            var t = (e + "").charCodeAt(0);
            return 36 === t || 95 === t;
          }
          function Y(e, t, n, r) {
            Object.defineProperty(e, t, {
              value: n,
              enumerable: !!r,
              writable: !0,
              configurable: !0,
            });
          }
          var J = new RegExp("[^".concat(W.source, ".$_\\d]"));
          function q(e) {
            if (!J.test(e)) {
              var t = e.split(".");
              return function (e) {
                for (var n = 0; n < t.length; n++) {
                  if (!e) return;
                  e = e[t[n]];
                }
                return e;
              };
            }
          }
          var Z = "__proto__" in {},
            $ = "undefined" !== typeof window,
            ee = $ && window.navigator.userAgent.toLowerCase(),
            te = ee && /msie|trident/.test(ee),
            ne = ee && ee.indexOf("msie 9.0") > 0,
            re = ee && ee.indexOf("edge/") > 0;
          ee && ee.indexOf("android");
          var ie = ee && /iphone|ipad|ipod|ios/.test(ee);
          (ee && /chrome\/\d+/.test(ee), ee && /phantomjs/.test(ee));
          var Ae,
            oe = ee && ee.match(/firefox\/(\d+)/),
            ae = {}.watch,
            se = !1;
          if ($)
            try {
              var ce = {};
              (Object.defineProperty(ce, "passive", {
                get: function () {
                  se = !0;
                },
              }),
                window.addEventListener("test-passive", null, ce));
            } catch (ts) {}
          var ue = function () {
              return (
                void 0 === Ae &&
                  (Ae =
                    !$ &&
                    "undefined" !== typeof e &&
                    e["process"] &&
                    "server" === e["process"].env.VUE_ENV),
                Ae
              );
            },
            le = $ && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;
          function he(e) {
            return "function" === typeof e && /native code/.test(e.toString());
          }
          var fe,
            de =
              "undefined" !== typeof Symbol &&
              he(Symbol) &&
              "undefined" !== typeof Reflect &&
              he(Reflect.ownKeys);
          fe =
            "undefined" !== typeof Set && he(Set)
              ? Set
              : (function () {
                  function e() {
                    this.set = Object.create(null);
                  }
                  return (
                    (e.prototype.has = function (e) {
                      return !0 === this.set[e];
                    }),
                    (e.prototype.add = function (e) {
                      this.set[e] = !0;
                    }),
                    (e.prototype.clear = function () {
                      this.set = Object.create(null);
                    }),
                    e
                  );
                })();
          var pe = null;
          function ge() {
            return pe && { proxy: pe };
          }
          function me(e) {
            (void 0 === e && (e = null),
              e || (pe && pe._scope.off()),
              (pe = e),
              e && e._scope.on());
          }
          var ve = (function () {
              function e(e, t, n, r, i, A, o, a) {
                ((this.tag = e),
                  (this.data = t),
                  (this.children = n),
                  (this.text = r),
                  (this.elm = i),
                  (this.ns = void 0),
                  (this.context = A),
                  (this.fnContext = void 0),
                  (this.fnOptions = void 0),
                  (this.fnScopeId = void 0),
                  (this.key = t && t.key),
                  (this.componentOptions = o),
                  (this.componentInstance = void 0),
                  (this.parent = void 0),
                  (this.raw = !1),
                  (this.isStatic = !1),
                  (this.isRootInsert = !0),
                  (this.isComment = !1),
                  (this.isCloned = !1),
                  (this.isOnce = !1),
                  (this.asyncFactory = a),
                  (this.asyncMeta = void 0),
                  (this.isAsyncPlaceholder = !1));
              }
              return (
                Object.defineProperty(e.prototype, "child", {
                  get: function () {
                    return this.componentInstance;
                  },
                  enumerable: !1,
                  configurable: !0,
                }),
                e
              );
            })(),
            ye = function (e) {
              void 0 === e && (e = "");
              var t = new ve();
              return ((t.text = e), (t.isComment = !0), t);
            };
          function we(e) {
            return new ve(void 0, void 0, void 0, String(e));
          }
          function Be(e) {
            var t = new ve(
              e.tag,
              e.data,
              e.children && e.children.slice(),
              e.text,
              e.elm,
              e.context,
              e.componentOptions,
              e.asyncFactory,
            );
            return (
              (t.ns = e.ns),
              (t.isStatic = e.isStatic),
              (t.key = e.key),
              (t.isComment = e.isComment),
              (t.fnContext = e.fnContext),
              (t.fnOptions = e.fnOptions),
              (t.fnScopeId = e.fnScopeId),
              (t.asyncMeta = e.asyncMeta),
              (t.isCloned = !0),
              t
            );
          }
          var be = 0,
            _e = (function () {
              function e() {
                ((this.id = be++), (this.subs = []));
              }
              return (
                (e.prototype.addSub = function (e) {
                  this.subs.push(e);
                }),
                (e.prototype.removeSub = function (e) {
                  B(this.subs, e);
                }),
                (e.prototype.depend = function (t) {
                  e.target && e.target.addDep(this);
                }),
                (e.prototype.notify = function (e) {
                  var t = this.subs.slice();
                  for (var n = 0, r = t.length; n < r; n++) {
                    t[n].update();
                  }
                }),
                e
              );
            })();
          _e.target = null;
          var xe = [];
          function Ce(e) {
            (xe.push(e), (_e.target = e));
          }
          function Ee() {
            (xe.pop(), (_e.target = xe[xe.length - 1]));
          }
          var Me = Array.prototype,
            Se = Object.create(Me),
            Fe = [
              "push",
              "pop",
              "shift",
              "unshift",
              "splice",
              "sort",
              "reverse",
            ];
          Fe.forEach(function (e) {
            var t = Me[e];
            Y(Se, e, function () {
              for (var n = [], r = 0; r < arguments.length; r++)
                n[r] = arguments[r];
              var i,
                A = t.apply(this, n),
                o = this.__ob__;
              switch (e) {
                case "push":
                case "unshift":
                  i = n;
                  break;
                case "splice":
                  i = n.slice(2);
                  break;
              }
              return (i && o.observeArray(i), o.dep.notify(), A);
            });
          });
          var Te = Object.getOwnPropertyNames(Se),
            Ue = {},
            Qe = !0;
          function Le(e) {
            Qe = e;
          }
          var Ie = { notify: O, depend: O, addSub: O, removeSub: O },
            He = (function () {
              function e(e, t, n) {
                if (
                  (void 0 === t && (t = !1),
                  void 0 === n && (n = !1),
                  (this.value = e),
                  (this.shallow = t),
                  (this.mock = n),
                  (this.dep = n ? Ie : new _e()),
                  (this.vmCount = 0),
                  Y(e, "__ob__", this),
                  i(e))
                ) {
                  if (!n)
                    if (Z) e.__proto__ = Se;
                    else
                      for (var r = 0, A = Te.length; r < A; r++) {
                        var o = Te[r];
                        Y(e, o, Se[o]);
                      }
                  t || this.observeArray(e);
                } else {
                  var a = Object.keys(e);
                  for (r = 0; r < a.length; r++) {
                    o = a[r];
                    Re(e, o, Ue, void 0, t, n);
                  }
                }
              }
              return (
                (e.prototype.observeArray = function (e) {
                  for (var t = 0, n = e.length; t < n; t++)
                    Oe(e[t], !1, this.mock);
                }),
                e
              );
            })();
          function Oe(e, t, n) {
            var r;
            if (!(!l(e) || qe(e) || e instanceof ve))
              return (
                _(e, "__ob__") && e.__ob__ instanceof He
                  ? (r = e.__ob__)
                  : !Qe ||
                    (!n && ue()) ||
                    (!i(e) && !f(e)) ||
                    !Object.isExtensible(e) ||
                    e.__v_skip ||
                    (r = new He(e, t, n)),
                r
              );
          }
          function Re(e, t, n, r, A, o) {
            var a = new _e(),
              s = Object.getOwnPropertyDescriptor(e, t);
            if (!s || !1 !== s.configurable) {
              var c = s && s.get,
                u = s && s.set;
              (c && !u) || (n !== Ue && 2 !== arguments.length) || (n = e[t]);
              var l = !A && Oe(n, !1, o);
              return (
                Object.defineProperty(e, t, {
                  enumerable: !0,
                  configurable: !0,
                  get: function () {
                    var t = c ? c.call(e) : n;
                    return (
                      _e.target &&
                        (a.depend(), l && (l.dep.depend(), i(t) && Ne(t))),
                      qe(t) && !A ? t.value : t
                    );
                  },
                  set: function (t) {
                    var r = c ? c.call(e) : n;
                    if (G(r, t)) {
                      if (u) u.call(e, t);
                      else {
                        if (c) return;
                        if (!A && qe(r) && !qe(t)) return void (r.value = t);
                        n = t;
                      }
                      ((l = !A && Oe(t, !1, o)), a.notify());
                    }
                  },
                }),
                a
              );
            }
          }
          function Pe(e, t, n) {
            if (!Ke(e)) {
              var r = e.__ob__;
              return i(e) && p(t)
                ? ((e.length = Math.max(e.length, t)),
                  e.splice(t, 1, n),
                  r && !r.shallow && r.mock && Oe(n, !1, !0),
                  n)
                : t in e && !(t in Object.prototype)
                  ? ((e[t] = n), n)
                  : e._isVue || (r && r.vmCount)
                    ? n
                    : r
                      ? (Re(r.value, t, n, void 0, r.shallow, r.mock),
                        r.dep.notify(),
                        n)
                      : ((e[t] = n), n);
            }
          }
          function De(e, t) {
            if (i(e) && p(t)) e.splice(t, 1);
            else {
              var n = e.__ob__;
              e._isVue ||
                (n && n.vmCount) ||
                Ke(e) ||
                (_(e, t) && (delete e[t], n && n.dep.notify()));
            }
          }
          function Ne(e) {
            for (var t = void 0, n = 0, r = e.length; n < r; n++)
              ((t = e[n]),
                t && t.__ob__ && t.__ob__.dep.depend(),
                i(t) && Ne(t));
          }
          function ke(e) {
            return (Ve(e, !1), e);
          }
          function Ge(e) {
            return (Ve(e, !0), Y(e, "__v_isShallow", !0), e);
          }
          function Ve(e, t) {
            if (!Ke(e)) {
              Oe(e, t, ue());
              0;
            }
          }
          function ze(e) {
            return Ke(e) ? ze(e["__v_raw"]) : !(!e || !e.__ob__);
          }
          function je(e) {
            return !(!e || !e.__v_isShallow);
          }
          function Ke(e) {
            return !(!e || !e.__v_isReadonly);
          }
          function We(e) {
            return ze(e) || Ke(e);
          }
          function Xe(e) {
            var t = e && e["__v_raw"];
            return t ? Xe(t) : e;
          }
          function Ye(e) {
            return (Y(e, "__v_skip", !0), e);
          }
          var Je = "__v_isRef";
          function qe(e) {
            return !(!e || !0 !== e.__v_isRef);
          }
          function Ze(e) {
            return et(e, !1);
          }
          function $e(e) {
            return et(e, !0);
          }
          function et(e, t) {
            if (qe(e)) return e;
            var n = {};
            return (
              Y(n, Je, !0),
              Y(n, "__v_isShallow", t),
              Y(n, "dep", Re(n, "value", e, null, t, ue())),
              n
            );
          }
          function tt(e) {
            e.dep && e.dep.notify();
          }
          function nt(e) {
            return qe(e) ? e.value : e;
          }
          function rt(e) {
            if (ze(e)) return e;
            for (var t = {}, n = Object.keys(e), r = 0; r < n.length; r++)
              it(t, e, n[r]);
            return t;
          }
          function it(e, t, n) {
            Object.defineProperty(e, n, {
              enumerable: !0,
              configurable: !0,
              get: function () {
                var e = t[n];
                if (qe(e)) return e.value;
                var r = e && e.__ob__;
                return (r && r.dep.depend(), e);
              },
              set: function (e) {
                var r = t[n];
                qe(r) && !qe(e) ? (r.value = e) : (t[n] = e);
              },
            });
          }
          function At(e) {
            var t = new _e(),
              n = e(
                function () {
                  t.depend();
                },
                function () {
                  t.notify();
                },
              ),
              r = n.get,
              i = n.set,
              A = {
                get value() {
                  return r();
                },
                set value(e) {
                  i(e);
                },
              };
            return (Y(A, Je, !0), A);
          }
          function ot(e) {
            var t = i(e) ? new Array(e.length) : {};
            for (var n in e) t[n] = at(e, n);
            return t;
          }
          function at(e, t, n) {
            var r = e[t];
            if (qe(r)) return r;
            var i = {
              get value() {
                var r = e[t];
                return void 0 === r ? n : r;
              },
              set value(n) {
                e[t] = n;
              },
            };
            return (Y(i, Je, !0), i);
          }
          var st = "__v_rawToReadonly",
            ct = "__v_rawToShallowReadonly";
          function ut(e) {
            return lt(e, !1);
          }
          function lt(e, t) {
            if (!f(e)) return e;
            if (Ke(e)) return e;
            var n = t ? ct : st,
              r = e[n];
            if (r) return r;
            var i = Object.create(Object.getPrototypeOf(e));
            (Y(e, n, i),
              Y(i, "__v_isReadonly", !0),
              Y(i, "__v_raw", e),
              qe(e) && Y(i, Je, !0),
              (t || je(e)) && Y(i, "__v_isShallow", !0));
            for (var A = Object.keys(e), o = 0; o < A.length; o++)
              ht(i, e, A[o], t);
            return i;
          }
          function ht(e, t, n, r) {
            Object.defineProperty(e, n, {
              enumerable: !0,
              configurable: !0,
              get: function () {
                var e = t[n];
                return r || !f(e) ? e : ut(e);
              },
              set: function () {},
            });
          }
          function ft(e) {
            return lt(e, !0);
          }
          function dt(e, t) {
            var n,
              r,
              i = u(e);
            i ? ((n = e), (r = O)) : ((n = e.get), (r = e.set));
            var A = ue() ? null : new Br(pe, n, O, { lazy: !0 });
            var o = {
              effect: A,
              get value() {
                return A
                  ? (A.dirty && A.evaluate(), _e.target && A.depend(), A.value)
                  : n();
              },
              set value(e) {
                r(e);
              },
            };
            return (Y(o, Je, !0), Y(o, "__v_isReadonly", i), o);
          }
          var pt = "watcher",
            gt = "".concat(pt, " callback"),
            mt = "".concat(pt, " getter"),
            vt = "".concat(pt, " cleanup");
          function yt(e, t) {
            return Ct(e, null, t);
          }
          function wt(e, t) {
            return Ct(e, null, { flush: "post" });
          }
          function Bt(e, t) {
            return Ct(e, null, { flush: "sync" });
          }
          var bt,
            _t = {};
          function xt(e, t, n) {
            return Ct(e, t, n);
          }
          function Ct(e, t, n) {
            var A = void 0 === n ? r : n,
              o = A.immediate,
              a = A.deep,
              s = A.flush,
              c = void 0 === s ? "pre" : s;
            (A.onTrack, A.onTrigger);
            var l,
              h,
              f = pe,
              d = function (e, t, n) {
                return (void 0 === n && (n = null), Pn(e, null, n, f, t));
              },
              p = !1,
              g = !1;
            if (
              (qe(e)
                ? ((l = function () {
                    return e.value;
                  }),
                  (p = je(e)))
                : ze(e)
                  ? ((l = function () {
                      return (e.__ob__.dep.depend(), e);
                    }),
                    (a = !0))
                  : i(e)
                    ? ((g = !0),
                      (p = e.some(function (e) {
                        return ze(e) || je(e);
                      })),
                      (l = function () {
                        return e.map(function (e) {
                          return qe(e)
                            ? e.value
                            : ze(e)
                              ? mr(e)
                              : u(e)
                                ? d(e, mt)
                                : void 0;
                        });
                      }))
                    : (l = u(e)
                        ? t
                          ? function () {
                              return d(e, mt);
                            }
                          : function () {
                              if (!f || !f._isDestroyed)
                                return (h && h(), d(e, pt, [v]));
                            }
                        : O),
              t && a)
            ) {
              var m = l;
              l = function () {
                return mr(m());
              };
            }
            var v = function (e) {
              h = y.onStop = function () {
                d(e, vt);
              };
            };
            if (ue())
              return (
                (v = O),
                t ? o && d(t, gt, [l(), g ? [] : void 0, v]) : l(),
                O
              );
            var y = new Br(pe, l, O, { lazy: !0 });
            y.noRecurse = !t;
            var w = g ? [] : _t;
            return (
              (y.run = function () {
                if (y.active || ("pre" === c && f && f._isBeingDestroyed))
                  if (t) {
                    var e = y.get();
                    (a ||
                      p ||
                      (g
                        ? e.some(function (e, t) {
                            return G(e, w[t]);
                          })
                        : G(e, w))) &&
                      (h && h(),
                      d(t, gt, [e, w === _t ? void 0 : w, v]),
                      (w = e));
                  } else y.get();
              }),
              "sync" === c
                ? (y.update = y.run)
                : "post" === c
                  ? ((y.post = !0),
                    (y.update = function () {
                      return $r(y);
                    }))
                  : (y.update = function () {
                      if (f && f === pe && !f._isMounted) {
                        var e = f._preWatchers || (f._preWatchers = []);
                        e.indexOf(y) < 0 && e.push(y);
                      } else $r(y);
                    }),
              t
                ? o
                  ? y.run()
                  : (w = y.get())
                : "post" === c && f
                  ? f.$once("hook:mounted", function () {
                      return y.get();
                    })
                  : y.get(),
              function () {
                y.teardown();
              }
            );
          }
          var Et = (function () {
            function e(e) {
              (void 0 === e && (e = !1),
                (this.active = !0),
                (this.effects = []),
                (this.cleanups = []),
                !e &&
                  bt &&
                  ((this.parent = bt),
                  (this.index =
                    (bt.scopes || (bt.scopes = [])).push(this) - 1)));
            }
            return (
              (e.prototype.run = function (e) {
                if (this.active) {
                  var t = bt;
                  try {
                    return ((bt = this), e());
                  } finally {
                    bt = t;
                  }
                } else 0;
              }),
              (e.prototype.on = function () {
                bt = this;
              }),
              (e.prototype.off = function () {
                bt = this.parent;
              }),
              (e.prototype.stop = function (e) {
                if (this.active) {
                  var t = void 0,
                    n = void 0;
                  for (t = 0, n = this.effects.length; t < n; t++)
                    this.effects[t].teardown();
                  for (t = 0, n = this.cleanups.length; t < n; t++)
                    this.cleanups[t]();
                  if (this.scopes)
                    for (t = 0, n = this.scopes.length; t < n; t++)
                      this.scopes[t].stop(!0);
                  if (this.parent && !e) {
                    var r = this.parent.scopes.pop();
                    r &&
                      r !== this &&
                      ((this.parent.scopes[this.index] = r),
                      (r.index = this.index));
                  }
                  this.active = !1;
                }
              }),
              e
            );
          })();
          function Mt(e) {
            return new Et(e);
          }
          function St(e, t) {
            (void 0 === t && (t = bt), t && t.active && t.effects.push(e));
          }
          function Ft() {
            return bt;
          }
          function Tt(e) {
            bt && bt.cleanups.push(e);
          }
          function Ut(e, t) {
            pe && (Qt(pe)[e] = t);
          }
          function Qt(e) {
            var t = e._provided,
              n = e.$parent && e.$parent._provided;
            return n === t ? (e._provided = Object.create(n)) : t;
          }
          function Lt(e, t, n) {
            void 0 === n && (n = !1);
            var r = pe;
            if (r) {
              var i = r.$parent && r.$parent._provided;
              if (i && e in i) return i[e];
              if (arguments.length > 1) return n && u(t) ? t.call(r) : t;
            } else 0;
          }
          var It = x(function (e) {
            var t = "&" === e.charAt(0);
            e = t ? e.slice(1) : e;
            var n = "~" === e.charAt(0);
            e = n ? e.slice(1) : e;
            var r = "!" === e.charAt(0);
            return (
              (e = r ? e.slice(1) : e),
              { name: e, once: n, capture: r, passive: t }
            );
          });
          function Ht(e, t) {
            function n() {
              var e = n.fns;
              if (!i(e)) return Pn(e, null, arguments, t, "v-on handler");
              for (var r = e.slice(), A = 0; A < r.length; A++)
                Pn(r[A], null, arguments, t, "v-on handler");
            }
            return ((n.fns = e), n);
          }
          function Ot(e, t, n, r, i, o) {
            var s, c, u, l;
            for (s in e)
              ((c = e[s]),
                (u = t[s]),
                (l = It(s)),
                A(c) ||
                  (A(u)
                    ? (A(c.fns) && (c = e[s] = Ht(c, o)),
                      a(l.once) && (c = e[s] = i(l.name, c, l.capture)),
                      n(l.name, c, l.capture, l.passive, l.params))
                    : c !== u && ((u.fns = c), (e[s] = u))));
            for (s in t) A(e[s]) && ((l = It(s)), r(l.name, t[s], l.capture));
          }
          function Rt(e, t, n) {
            var r;
            e instanceof ve && (e = e.data.hook || (e.data.hook = {}));
            var i = e[t];
            function s() {
              (n.apply(this, arguments), B(r.fns, s));
            }
            (A(i)
              ? (r = Ht([s]))
              : o(i.fns) && a(i.merged)
                ? ((r = i), r.fns.push(s))
                : (r = Ht([i, s])),
              (r.merged = !0),
              (e[t] = r));
          }
          function Pt(e, t, n) {
            var r = t.options.props;
            if (!A(r)) {
              var i = {},
                a = e.attrs,
                s = e.props;
              if (o(a) || o(s))
                for (var c in r) {
                  var u = F(c);
                  Dt(i, s, c, u, !0) || Dt(i, a, c, u, !1);
                }
              return i;
            }
          }
          function Dt(e, t, n, r, i) {
            if (o(t)) {
              if (_(t, n)) return ((e[n] = t[n]), i || delete t[n], !0);
              if (_(t, r)) return ((e[n] = t[r]), i || delete t[r], !0);
            }
            return !1;
          }
          function Nt(e) {
            for (var t = 0; t < e.length; t++)
              if (i(e[t])) return Array.prototype.concat.apply([], e);
            return e;
          }
          function kt(e) {
            return c(e) ? [we(e)] : i(e) ? Vt(e) : void 0;
          }
          function Gt(e) {
            return o(e) && o(e.text) && s(e.isComment);
          }
          function Vt(e, t) {
            var n,
              r,
              s,
              u,
              l = [];
            for (n = 0; n < e.length; n++)
              ((r = e[n]),
                A(r) ||
                  "boolean" === typeof r ||
                  ((s = l.length - 1),
                  (u = l[s]),
                  i(r)
                    ? r.length > 0 &&
                      ((r = Vt(r, "".concat(t || "", "_").concat(n))),
                      Gt(r[0]) &&
                        Gt(u) &&
                        ((l[s] = we(u.text + r[0].text)), r.shift()),
                      l.push.apply(l, r))
                    : c(r)
                      ? Gt(u)
                        ? (l[s] = we(u.text + r))
                        : "" !== r && l.push(we(r))
                      : Gt(r) && Gt(u)
                        ? (l[s] = we(u.text + r.text))
                        : (a(e._isVList) &&
                            o(r.tag) &&
                            A(r.key) &&
                            o(t) &&
                            (r.key = "__vlist".concat(t, "_").concat(n, "__")),
                          l.push(r))));
            return l;
          }
          function zt(e, t) {
            var n,
              r,
              A,
              a,
              s = null;
            if (i(e) || "string" === typeof e)
              for (s = new Array(e.length), n = 0, r = e.length; n < r; n++)
                s[n] = t(e[n], n);
            else if ("number" === typeof e)
              for (s = new Array(e), n = 0; n < e; n++) s[n] = t(n + 1, n);
            else if (l(e))
              if (de && e[Symbol.iterator]) {
                s = [];
                var c = e[Symbol.iterator](),
                  u = c.next();
                while (!u.done) (s.push(t(u.value, s.length)), (u = c.next()));
              } else
                for (
                  A = Object.keys(e),
                    s = new Array(A.length),
                    n = 0,
                    r = A.length;
                  n < r;
                  n++
                )
                  ((a = A[n]), (s[n] = t(e[a], a, n)));
            return (o(s) || (s = []), (s._isVList = !0), s);
          }
          function jt(e, t, n, r) {
            var i,
              A = this.$scopedSlots[e];
            A
              ? ((n = n || {}),
                r && (n = I(I({}, r), n)),
                (i = A(n) || (u(t) ? t() : t)))
              : (i = this.$slots[e] || (u(t) ? t() : t));
            var o = n && n.slot;
            return o ? this.$createElement("template", { slot: o }, i) : i;
          }
          function Kt(e) {
            return Mi(this.$options, "filters", e, !0) || P;
          }
          function Wt(e, t) {
            return i(e) ? -1 === e.indexOf(t) : e !== t;
          }
          function Xt(e, t, n, r, i) {
            var A = K.keyCodes[t] || n;
            return i && r && !K.keyCodes[t]
              ? Wt(i, r)
              : A
                ? Wt(A, e)
                : r
                  ? F(r) !== t
                  : void 0 === e;
          }
          function Yt(e, t, n, r, A) {
            if (n)
              if (l(n)) {
                i(n) && (n = H(n));
                var o = void 0,
                  a = function (i) {
                    if ("class" === i || "style" === i || w(i)) o = e;
                    else {
                      var a = e.attrs && e.attrs.type;
                      o =
                        r || K.mustUseProp(t, a, i)
                          ? e.domProps || (e.domProps = {})
                          : e.attrs || (e.attrs = {});
                    }
                    var s = E(i),
                      c = F(i);
                    if (!(s in o) && !(c in o) && ((o[i] = n[i]), A)) {
                      var u = e.on || (e.on = {});
                      u["update:".concat(i)] = function (e) {
                        n[i] = e;
                      };
                    }
                  };
                for (var s in n) a(s);
              } else;
            return e;
          }
          function Jt(e, t) {
            var n = this._staticTrees || (this._staticTrees = []),
              r = n[e];
            return (
              (r && !t) ||
                ((r = n[e] =
                  this.$options.staticRenderFns[e].call(
                    this._renderProxy,
                    this._c,
                    this,
                  )),
                Zt(r, "__static__".concat(e), !1)),
              r
            );
          }
          function qt(e, t, n) {
            return (
              Zt(e, "__once__".concat(t).concat(n ? "_".concat(n) : ""), !0),
              e
            );
          }
          function Zt(e, t, n) {
            if (i(e))
              for (var r = 0; r < e.length; r++)
                e[r] &&
                  "string" !== typeof e[r] &&
                  $t(e[r], "".concat(t, "_").concat(r), n);
            else $t(e, t, n);
          }
          function $t(e, t, n) {
            ((e.isStatic = !0), (e.key = t), (e.isOnce = n));
          }
          function en(e, t) {
            if (t)
              if (f(t)) {
                var n = (e.on = e.on ? I({}, e.on) : {});
                for (var r in t) {
                  var i = n[r],
                    A = t[r];
                  n[r] = i ? [].concat(i, A) : A;
                }
              } else;
            return e;
          }
          function tn(e, t, n, r) {
            t = t || { $stable: !n };
            for (var A = 0; A < e.length; A++) {
              var o = e[A];
              i(o)
                ? tn(o, t, n)
                : o && (o.proxy && (o.fn.proxy = !0), (t[o.key] = o.fn));
            }
            return (r && (t.$key = r), t);
          }
          function nn(e, t) {
            for (var n = 0; n < t.length; n += 2) {
              var r = t[n];
              "string" === typeof r && r && (e[t[n]] = t[n + 1]);
            }
            return e;
          }
          function rn(e, t) {
            return "string" === typeof e ? t + e : e;
          }
          function An(e) {
            ((e._o = qt),
              (e._n = v),
              (e._s = m),
              (e._l = zt),
              (e._t = jt),
              (e._q = D),
              (e._i = N),
              (e._m = Jt),
              (e._f = Kt),
              (e._k = Xt),
              (e._b = Yt),
              (e._v = we),
              (e._e = ye),
              (e._u = tn),
              (e._g = en),
              (e._d = nn),
              (e._p = rn));
          }
          function on(e, t) {
            if (!e || !e.length) return {};
            for (var n = {}, r = 0, i = e.length; r < i; r++) {
              var A = e[r],
                o = A.data;
              if (
                (o && o.attrs && o.attrs.slot && delete o.attrs.slot,
                (A.context !== t && A.fnContext !== t) || !o || null == o.slot)
              )
                (n.default || (n.default = [])).push(A);
              else {
                var a = o.slot,
                  s = n[a] || (n[a] = []);
                "template" === A.tag
                  ? s.push.apply(s, A.children || [])
                  : s.push(A);
              }
            }
            for (var c in n) n[c].every(an) && delete n[c];
            return n;
          }
          function an(e) {
            return (e.isComment && !e.asyncFactory) || " " === e.text;
          }
          function sn(e) {
            return e.isComment && e.asyncFactory;
          }
          function cn(e, t, n, i) {
            var A,
              o = Object.keys(n).length > 0,
              a = t ? !!t.$stable : !o,
              s = t && t.$key;
            if (t) {
              if (t._normalized) return t._normalized;
              if (a && i && i !== r && s === i.$key && !o && !i.$hasNormal)
                return i;
              for (var c in ((A = {}), t))
                t[c] && "$" !== c[0] && (A[c] = un(e, n, c, t[c]));
            } else A = {};
            for (var u in n) u in A || (A[u] = ln(n, u));
            return (
              t && Object.isExtensible(t) && (t._normalized = A),
              Y(A, "$stable", a),
              Y(A, "$key", s),
              Y(A, "$hasNormal", o),
              A
            );
          }
          function un(e, t, n, r) {
            var A = function () {
              var t = pe;
              me(e);
              var n = arguments.length ? r.apply(null, arguments) : r({});
              n = n && "object" === typeof n && !i(n) ? [n] : kt(n);
              var A = n && n[0];
              return (
                me(t),
                n && (!A || (1 === n.length && A.isComment && !sn(A)))
                  ? void 0
                  : n
              );
            };
            return (
              r.proxy &&
                Object.defineProperty(t, n, {
                  get: A,
                  enumerable: !0,
                  configurable: !0,
                }),
              A
            );
          }
          function ln(e, t) {
            return function () {
              return e[t];
            };
          }
          function hn(e) {
            var t = e.$options,
              n = t.setup;
            if (n) {
              var r = (e._setupContext = fn(e));
              (me(e), Ce());
              var i = Pn(n, null, [e._props || Ge({}), r], e, "setup");
              if ((Ee(), me(), u(i))) t.render = i;
              else if (l(i))
                if (((e._setupState = i), i.__sfc)) {
                  var A = (e._setupProxy = {});
                  for (var o in i) "__sfc" !== o && it(A, i, o);
                } else for (var o in i) X(o) || it(e, i, o);
              else 0;
            }
          }
          function fn(e) {
            return {
              get attrs() {
                if (!e._attrsProxy) {
                  var t = (e._attrsProxy = {});
                  (Y(t, "_v_attr_proxy", !0), dn(t, e.$attrs, r, e, "$attrs"));
                }
                return e._attrsProxy;
              },
              get listeners() {
                if (!e._listenersProxy) {
                  var t = (e._listenersProxy = {});
                  dn(t, e.$listeners, r, e, "$listeners");
                }
                return e._listenersProxy;
              },
              get slots() {
                return gn(e);
              },
              emit: Q(e.$emit, e),
              expose: function (t) {
                t &&
                  Object.keys(t).forEach(function (n) {
                    return it(e, t, n);
                  });
              },
            };
          }
          function dn(e, t, n, r, i) {
            var A = !1;
            for (var o in t)
              o in e ? t[o] !== n[o] && (A = !0) : ((A = !0), pn(e, o, r, i));
            for (var o in e) o in t || ((A = !0), delete e[o]);
            return A;
          }
          function pn(e, t, n, r) {
            Object.defineProperty(e, t, {
              enumerable: !0,
              configurable: !0,
              get: function () {
                return n[r][t];
              },
            });
          }
          function gn(e) {
            return (
              e._slotsProxy || mn((e._slotsProxy = {}), e.$scopedSlots),
              e._slotsProxy
            );
          }
          function mn(e, t) {
            for (var n in t) e[n] = t[n];
            for (var n in e) n in t || delete e[n];
          }
          function vn() {
            return Bn().slots;
          }
          function yn() {
            return Bn().attrs;
          }
          function wn() {
            return Bn().listeners;
          }
          function Bn() {
            var e = pe;
            return e._setupContext || (e._setupContext = fn(e));
          }
          function bn(e, t) {
            var n = i(e)
              ? e.reduce(function (e, t) {
                  return ((e[t] = {}), e);
                }, {})
              : e;
            for (var r in t) {
              var A = n[r];
              A
                ? i(A) || u(A)
                  ? (n[r] = { type: A, default: t[r] })
                  : (A.default = t[r])
                : null === A && (n[r] = { default: t[r] });
            }
            return n;
          }
          function _n(e) {
            ((e._vnode = null), (e._staticTrees = null));
            var t = e.$options,
              n = (e.$vnode = t._parentVnode),
              i = n && n.context;
            ((e.$slots = on(t._renderChildren, i)),
              (e.$scopedSlots = n
                ? cn(e.$parent, n.data.scopedSlots, e.$slots)
                : r),
              (e._c = function (t, n, r, i) {
                return Qn(e, t, n, r, i, !1);
              }),
              (e.$createElement = function (t, n, r, i) {
                return Qn(e, t, n, r, i, !0);
              }));
            var A = n && n.data;
            (Re(e, "$attrs", (A && A.attrs) || r, null, !0),
              Re(e, "$listeners", t._parentListeners || r, null, !0));
          }
          var xn = null;
          function Cn(e) {
            (An(e.prototype),
              (e.prototype.$nextTick = function (e) {
                return Jn(e, this);
              }),
              (e.prototype._render = function () {
                var e,
                  t = this,
                  n = t.$options,
                  r = n.render,
                  A = n._parentVnode;
                (A &&
                  t._isMounted &&
                  ((t.$scopedSlots = cn(
                    t.$parent,
                    A.data.scopedSlots,
                    t.$slots,
                    t.$scopedSlots,
                  )),
                  t._slotsProxy && mn(t._slotsProxy, t.$scopedSlots)),
                  (t.$vnode = A));
                try {
                  (me(t),
                    (xn = t),
                    (e = r.call(t._renderProxy, t.$createElement)));
                } catch (ts) {
                  (Rn(ts, t, "render"), (e = t._vnode));
                } finally {
                  ((xn = null), me());
                }
                return (
                  i(e) && 1 === e.length && (e = e[0]),
                  e instanceof ve || (e = ye()),
                  (e.parent = A),
                  e
                );
              }));
          }
          function En(e, t) {
            return (
              (e.__esModule || (de && "Module" === e[Symbol.toStringTag])) &&
                (e = e.default),
              l(e) ? t.extend(e) : e
            );
          }
          function Mn(e, t, n, r, i) {
            var A = ye();
            return (
              (A.asyncFactory = e),
              (A.asyncMeta = { data: t, context: n, children: r, tag: i }),
              A
            );
          }
          function Sn(e, t) {
            if (a(e.error) && o(e.errorComp)) return e.errorComp;
            if (o(e.resolved)) return e.resolved;
            var n = xn;
            if (
              (n &&
                o(e.owners) &&
                -1 === e.owners.indexOf(n) &&
                e.owners.push(n),
              a(e.loading) && o(e.loadingComp))
            )
              return e.loadingComp;
            if (n && !o(e.owners)) {
              var r = (e.owners = [n]),
                i = !0,
                s = null,
                c = null;
              n.$on("hook:destroyed", function () {
                return B(r, n);
              });
              var u = function (e) {
                  for (var t = 0, n = r.length; t < n; t++) r[t].$forceUpdate();
                  e &&
                    ((r.length = 0),
                    null !== s && (clearTimeout(s), (s = null)),
                    null !== c && (clearTimeout(c), (c = null)));
                },
                h = k(function (n) {
                  ((e.resolved = En(n, t)), i ? (r.length = 0) : u(!0));
                }),
                f = k(function (t) {
                  o(e.errorComp) && ((e.error = !0), u(!0));
                }),
                d = e(h, f);
              return (
                l(d) &&
                  (g(d)
                    ? A(e.resolved) && d.then(h, f)
                    : g(d.component) &&
                      (d.component.then(h, f),
                      o(d.error) && (e.errorComp = En(d.error, t)),
                      o(d.loading) &&
                        ((e.loadingComp = En(d.loading, t)),
                        0 === d.delay
                          ? (e.loading = !0)
                          : (s = setTimeout(function () {
                              ((s = null),
                                A(e.resolved) &&
                                  A(e.error) &&
                                  ((e.loading = !0), u(!1)));
                            }, d.delay || 200))),
                      o(d.timeout) &&
                        (c = setTimeout(function () {
                          ((c = null), A(e.resolved) && f(null));
                        }, d.timeout)))),
                (i = !1),
                e.loading ? e.loadingComp : e.resolved
              );
            }
          }
          function Fn(e) {
            if (i(e))
              for (var t = 0; t < e.length; t++) {
                var n = e[t];
                if (o(n) && (o(n.componentOptions) || sn(n))) return n;
              }
          }
          var Tn = 1,
            Un = 2;
          function Qn(e, t, n, r, A, o) {
            return (
              (i(n) || c(n)) && ((A = r), (r = n), (n = void 0)),
              a(o) && (A = Un),
              Ln(e, t, n, r, A)
            );
          }
          function Ln(e, t, n, r, A) {
            if (o(n) && o(n.__ob__)) return ye();
            if ((o(n) && o(n.is) && (t = n.is), !t)) return ye();
            var a, s;
            if (
              (i(r) &&
                u(r[0]) &&
                ((n = n || {}),
                (n.scopedSlots = { default: r[0] }),
                (r.length = 0)),
              A === Un ? (r = kt(r)) : A === Tn && (r = Nt(r)),
              "string" === typeof t)
            ) {
              var c = void 0;
              ((s = (e.$vnode && e.$vnode.ns) || K.getTagNamespace(t)),
                (a = K.isReservedTag(t)
                  ? new ve(K.parsePlatformTagName(t), n, r, void 0, void 0, e)
                  : (n && n.pre) || !o((c = Mi(e.$options, "components", t)))
                    ? new ve(t, n, r, void 0, void 0, e)
                    : ui(c, n, e, r, t)));
            } else a = ui(t, n, e, r);
            return i(a)
              ? a
              : o(a)
                ? (o(s) && In(a, s), o(n) && Hn(n), a)
                : ye();
          }
          function In(e, t, n) {
            if (
              ((e.ns = t),
              "foreignObject" === e.tag && ((t = void 0), (n = !0)),
              o(e.children))
            )
              for (var r = 0, i = e.children.length; r < i; r++) {
                var s = e.children[r];
                o(s.tag) &&
                  (A(s.ns) || (a(n) && "svg" !== s.tag)) &&
                  In(s, t, n);
              }
          }
          function Hn(e) {
            (l(e.style) && mr(e.style), l(e.class) && mr(e.class));
          }
          function On(e, t, n) {
            return Qn(pe, e, t, n, 2, !0);
          }
          function Rn(e, t, n) {
            Ce();
            try {
              if (t) {
                var r = t;
                while ((r = r.$parent)) {
                  var i = r.$options.errorCaptured;
                  if (i)
                    for (var A = 0; A < i.length; A++)
                      try {
                        var o = !1 === i[A].call(r, e, t, n);
                        if (o) return;
                      } catch (ts) {
                        Dn(ts, r, "errorCaptured hook");
                      }
                }
              }
              Dn(e, t, n);
            } finally {
              Ee();
            }
          }
          function Pn(e, t, n, r, i) {
            var A;
            try {
              ((A = n ? e.apply(t, n) : e.call(t)),
                A &&
                  !A._isVue &&
                  g(A) &&
                  !A._handled &&
                  (A.catch(function (e) {
                    return Rn(e, r, i + " (Promise/async)");
                  }),
                  (A._handled = !0)));
            } catch (ts) {
              Rn(ts, r, i);
            }
            return A;
          }
          function Dn(e, t, n) {
            if (K.errorHandler)
              try {
                return K.errorHandler.call(null, e, t, n);
              } catch (ts) {
                ts !== e && Nn(ts, null, "config.errorHandler");
              }
            Nn(e, t, n);
          }
          function Nn(e, t, n) {
            if (!$ || "undefined" === typeof console) throw e;
            console.log(e);
          }
          var kn,
            Gn = !1,
            Vn = [],
            zn = !1;
          function jn() {
            zn = !1;
            var e = Vn.slice(0);
            Vn.length = 0;
            for (var t = 0; t < e.length; t++) e[t]();
          }
          if ("undefined" !== typeof Promise && he(Promise)) {
            var Kn = Promise.resolve();
            ((kn = function () {
              (Kn.then(jn), ie && setTimeout(O));
            }),
              (Gn = !0));
          } else if (
            te ||
            "undefined" === typeof MutationObserver ||
            (!he(MutationObserver) &&
              "[object MutationObserverConstructor]" !==
                MutationObserver.toString())
          )
            kn =
              "undefined" !== typeof setImmediate && he(setImmediate)
                ? function () {
                    setImmediate(jn);
                  }
                : function () {
                    setTimeout(jn, 0);
                  };
          else {
            var Wn = 1,
              Xn = new MutationObserver(jn),
              Yn = document.createTextNode(String(Wn));
            (Xn.observe(Yn, { characterData: !0 }),
              (kn = function () {
                ((Wn = (Wn + 1) % 2), (Yn.data = String(Wn)));
              }),
              (Gn = !0));
          }
          function Jn(e, t) {
            var n;
            if (
              (Vn.push(function () {
                if (e)
                  try {
                    e.call(t);
                  } catch (ts) {
                    Rn(ts, t, "nextTick");
                  }
                else n && n(t);
              }),
              zn || ((zn = !0), kn()),
              !e && "undefined" !== typeof Promise)
            )
              return new Promise(function (e) {
                n = e;
              });
          }
          function qn(e) {
            if ((void 0 === e && (e = "$style"), !pe)) return r;
            var t = pe[e];
            return t || r;
          }
          function Zn(e) {
            if ($) {
              var t = pe;
              t &&
                wt(function () {
                  var n = t.$el,
                    r = e(t, t._setupProxy);
                  if (n && 1 === n.nodeType) {
                    var i = n.style;
                    for (var A in r) i.setProperty("--".concat(A), r[A]);
                  }
                });
            }
          }
          function $n(e) {
            u(e) && (e = { loader: e });
            var t = e.loader,
              n = e.loadingComponent,
              r = e.errorComponent,
              i = e.delay,
              A = void 0 === i ? 200 : i,
              o = e.timeout,
              a = (e.suspensible, e.onError);
            var s = null,
              c = 0,
              l = function () {
                return (c++, (s = null), h());
              },
              h = function () {
                var e;
                return (
                  s ||
                  (e = s =
                    t()
                      .catch(function (e) {
                        if (
                          ((e = e instanceof Error ? e : new Error(String(e))),
                          a)
                        )
                          return new Promise(function (t, n) {
                            var r = function () {
                                return t(l());
                              },
                              i = function () {
                                return n(e);
                              };
                            a(e, r, i, c + 1);
                          });
                        throw e;
                      })
                      .then(function (t) {
                        return e !== s && s
                          ? s
                          : (t &&
                              (t.__esModule ||
                                "Module" === t[Symbol.toStringTag]) &&
                              (t = t.default),
                            t);
                      }))
                );
              };
            return function () {
              var e = h();
              return {
                component: e,
                delay: A,
                timeout: o,
                error: r,
                loading: n,
              };
            };
          }
          function er(e) {
            return function (t, n) {
              if ((void 0 === n && (n = pe), n)) return tr(n, e, t);
            };
          }
          function tr(e, t, n) {
            var r = e.$options;
            r[t] = yi(r[t], n);
          }
          var nr = er("beforeMount"),
            rr = er("mounted"),
            ir = er("beforeUpdate"),
            Ar = er("updated"),
            or = er("beforeDestroy"),
            ar = er("destroyed"),
            sr = er("errorCaptured"),
            cr = er("activated"),
            ur = er("deactivated"),
            lr = er("serverPrefetch"),
            hr = er("renderTracked"),
            fr = er("renderTriggered"),
            dr = "2.7.8";
          function pr(e) {
            return e;
          }
          var gr = new fe();
          function mr(e) {
            return (vr(e, gr), gr.clear(), e);
          }
          function vr(e, t) {
            var n,
              r,
              A = i(e);
            if (!((!A && !l(e)) || Object.isFrozen(e) || e instanceof ve)) {
              if (e.__ob__) {
                var o = e.__ob__.dep.id;
                if (t.has(o)) return;
                t.add(o);
              }
              if (A) {
                n = e.length;
                while (n--) vr(e[n], t);
              } else if (qe(e)) vr(e.value, t);
              else {
                ((r = Object.keys(e)), (n = r.length));
                while (n--) vr(e[r[n]], t);
              }
            }
          }
          var yr,
            wr = 0,
            Br = (function () {
              function e(e, t, n, r, i) {
                (St(this, bt || (e ? e._scope : void 0)),
                  (this.vm = e) && i && (e._watcher = this),
                  r
                    ? ((this.deep = !!r.deep),
                      (this.user = !!r.user),
                      (this.lazy = !!r.lazy),
                      (this.sync = !!r.sync),
                      (this.before = r.before))
                    : (this.deep = this.user = this.lazy = this.sync = !1),
                  (this.cb = n),
                  (this.id = ++wr),
                  (this.active = !0),
                  (this.post = !1),
                  (this.dirty = this.lazy),
                  (this.deps = []),
                  (this.newDeps = []),
                  (this.depIds = new fe()),
                  (this.newDepIds = new fe()),
                  (this.expression = ""),
                  u(t)
                    ? (this.getter = t)
                    : ((this.getter = q(t)), this.getter || (this.getter = O)),
                  (this.value = this.lazy ? void 0 : this.get()));
              }
              return (
                (e.prototype.get = function () {
                  var e;
                  Ce(this);
                  var t = this.vm;
                  try {
                    e = this.getter.call(t, t);
                  } catch (ts) {
                    if (!this.user) throw ts;
                    Rn(
                      ts,
                      t,
                      'getter for watcher "'.concat(this.expression, '"'),
                    );
                  } finally {
                    (this.deep && mr(e), Ee(), this.cleanupDeps());
                  }
                  return e;
                }),
                (e.prototype.addDep = function (e) {
                  var t = e.id;
                  this.newDepIds.has(t) ||
                    (this.newDepIds.add(t),
                    this.newDeps.push(e),
                    this.depIds.has(t) || e.addSub(this));
                }),
                (e.prototype.cleanupDeps = function () {
                  var e = this.deps.length;
                  while (e--) {
                    var t = this.deps[e];
                    this.newDepIds.has(t.id) || t.removeSub(this);
                  }
                  var n = this.depIds;
                  ((this.depIds = this.newDepIds),
                    (this.newDepIds = n),
                    this.newDepIds.clear(),
                    (n = this.deps),
                    (this.deps = this.newDeps),
                    (this.newDeps = n),
                    (this.newDeps.length = 0));
                }),
                (e.prototype.update = function () {
                  this.lazy
                    ? (this.dirty = !0)
                    : this.sync
                      ? this.run()
                      : $r(this);
                }),
                (e.prototype.run = function () {
                  if (this.active) {
                    var e = this.get();
                    if (e !== this.value || l(e) || this.deep) {
                      var t = this.value;
                      if (((this.value = e), this.user)) {
                        var n = 'callback for watcher "'.concat(
                          this.expression,
                          '"',
                        );
                        Pn(this.cb, this.vm, [e, t], this.vm, n);
                      } else this.cb.call(this.vm, e, t);
                    }
                  }
                }),
                (e.prototype.evaluate = function () {
                  ((this.value = this.get()), (this.dirty = !1));
                }),
                (e.prototype.depend = function () {
                  var e = this.deps.length;
                  while (e--) this.deps[e].depend();
                }),
                (e.prototype.teardown = function () {
                  if (
                    (this.vm &&
                      !this.vm._isBeingDestroyed &&
                      B(this.vm._scope.effects, this),
                    this.active)
                  ) {
                    var e = this.deps.length;
                    while (e--) this.deps[e].removeSub(this);
                    ((this.active = !1), this.onStop && this.onStop());
                  }
                }),
                e
              );
            })();
          function br(e) {
            ((e._events = Object.create(null)), (e._hasHookEvent = !1));
            var t = e.$options._parentListeners;
            t && Er(e, t);
          }
          function _r(e, t) {
            yr.$on(e, t);
          }
          function xr(e, t) {
            yr.$off(e, t);
          }
          function Cr(e, t) {
            var n = yr;
            return function r() {
              var i = t.apply(null, arguments);
              null !== i && n.$off(e, r);
            };
          }
          function Er(e, t, n) {
            ((yr = e), Ot(t, n || {}, _r, xr, Cr, e), (yr = void 0));
          }
          function Mr(e) {
            var t = /^hook:/;
            ((e.prototype.$on = function (e, n) {
              var r = this;
              if (i(e))
                for (var A = 0, o = e.length; A < o; A++) r.$on(e[A], n);
              else
                ((r._events[e] || (r._events[e] = [])).push(n),
                  t.test(e) && (r._hasHookEvent = !0));
              return r;
            }),
              (e.prototype.$once = function (e, t) {
                var n = this;
                function r() {
                  (n.$off(e, r), t.apply(n, arguments));
                }
                return ((r.fn = t), n.$on(e, r), n);
              }),
              (e.prototype.$off = function (e, t) {
                var n = this;
                if (!arguments.length)
                  return ((n._events = Object.create(null)), n);
                if (i(e)) {
                  for (var r = 0, A = e.length; r < A; r++) n.$off(e[r], t);
                  return n;
                }
                var o,
                  a = n._events[e];
                if (!a) return n;
                if (!t) return ((n._events[e] = null), n);
                var s = a.length;
                while (s--)
                  if (((o = a[s]), o === t || o.fn === t)) {
                    a.splice(s, 1);
                    break;
                  }
                return n;
              }),
              (e.prototype.$emit = function (e) {
                var t = this,
                  n = t._events[e];
                if (n) {
                  n = n.length > 1 ? L(n) : n;
                  for (
                    var r = L(arguments, 1),
                      i = 'event handler for "'.concat(e, '"'),
                      A = 0,
                      o = n.length;
                    A < o;
                    A++
                  )
                    Pn(n[A], t, r, t, i);
                }
                return t;
              }));
          }
          var Sr = null;
          function Fr(e) {
            var t = Sr;
            return (
              (Sr = e),
              function () {
                Sr = t;
              }
            );
          }
          function Tr(e) {
            var t = e.$options,
              n = t.parent;
            if (n && !t.abstract) {
              while (n.$options.abstract && n.$parent) n = n.$parent;
              n.$children.push(e);
            }
            ((e.$parent = n),
              (e.$root = n ? n.$root : e),
              (e.$children = []),
              (e.$refs = {}),
              (e._provided = n ? n._provided : Object.create(null)),
              (e._watcher = null),
              (e._inactive = null),
              (e._directInactive = !1),
              (e._isMounted = !1),
              (e._isDestroyed = !1),
              (e._isBeingDestroyed = !1));
          }
          function Ur(e) {
            ((e.prototype._update = function (e, t) {
              var n = this,
                r = n.$el,
                i = n._vnode,
                A = Fr(n);
              ((n._vnode = e),
                (n.$el = i ? n.__patch__(i, e) : n.__patch__(n.$el, e, t, !1)),
                A(),
                r && (r.__vue__ = null),
                n.$el && (n.$el.__vue__ = n),
                n.$vnode &&
                  n.$parent &&
                  n.$vnode === n.$parent._vnode &&
                  (n.$parent.$el = n.$el));
            }),
              (e.prototype.$forceUpdate = function () {
                var e = this;
                e._watcher && e._watcher.update();
              }),
              (e.prototype.$destroy = function () {
                var e = this;
                if (!e._isBeingDestroyed) {
                  (Rr(e, "beforeDestroy"), (e._isBeingDestroyed = !0));
                  var t = e.$parent;
                  (!t ||
                    t._isBeingDestroyed ||
                    e.$options.abstract ||
                    B(t.$children, e),
                    e._scope.stop(),
                    e._data.__ob__ && e._data.__ob__.vmCount--,
                    (e._isDestroyed = !0),
                    e.__patch__(e._vnode, null),
                    Rr(e, "destroyed"),
                    e.$off(),
                    e.$el && (e.$el.__vue__ = null),
                    e.$vnode && (e.$vnode.parent = null));
                }
              }));
          }
          function Qr(e, t, n) {
            var r;
            ((e.$el = t),
              e.$options.render || (e.$options.render = ye),
              Rr(e, "beforeMount"),
              (r = function () {
                e._update(e._render(), n);
              }));
            var i = {
              before: function () {
                e._isMounted && !e._isDestroyed && Rr(e, "beforeUpdate");
              },
            };
            (new Br(e, r, O, i, !0), (n = !1));
            var A = e._preWatchers;
            if (A) for (var o = 0; o < A.length; o++) A[o].run();
            return (
              null == e.$vnode && ((e._isMounted = !0), Rr(e, "mounted")),
              e
            );
          }
          function Lr(e, t, n, i, A) {
            var o = i.data.scopedSlots,
              a = e.$scopedSlots,
              s = !!(
                (o && !o.$stable) ||
                (a !== r && !a.$stable) ||
                (o && e.$scopedSlots.$key !== o.$key) ||
                (!o && e.$scopedSlots.$key)
              ),
              c = !!(A || e.$options._renderChildren || s),
              u = e.$vnode;
            ((e.$options._parentVnode = i),
              (e.$vnode = i),
              e._vnode && (e._vnode.parent = i),
              (e.$options._renderChildren = A));
            var l = i.data.attrs || r;
            (e._attrsProxy &&
              dn(
                e._attrsProxy,
                l,
                (u.data && u.data.attrs) || r,
                e,
                "$attrs",
              ) &&
              (c = !0),
              (e.$attrs = l),
              (n = n || r));
            var h = e.$options._parentListeners;
            if (
              (e._listenersProxy &&
                dn(e._listenersProxy, n, h || r, e, "$listeners"),
              (e.$listeners = e.$options._parentListeners = n),
              Er(e, n, h),
              t && e.$options.props)
            ) {
              Le(!1);
              for (
                var f = e._props, d = e.$options._propKeys || [], p = 0;
                p < d.length;
                p++
              ) {
                var g = d[p],
                  m = e.$options.props;
                f[g] = Si(g, m, t, e);
              }
              (Le(!0), (e.$options.propsData = t));
            }
            c && ((e.$slots = on(A, i.context)), e.$forceUpdate());
          }
          function Ir(e) {
            while (e && (e = e.$parent)) if (e._inactive) return !0;
            return !1;
          }
          function Hr(e, t) {
            if (t) {
              if (((e._directInactive = !1), Ir(e))) return;
            } else if (e._directInactive) return;
            if (e._inactive || null === e._inactive) {
              e._inactive = !1;
              for (var n = 0; n < e.$children.length; n++) Hr(e.$children[n]);
              Rr(e, "activated");
            }
          }
          function Or(e, t) {
            if ((!t || ((e._directInactive = !0), !Ir(e))) && !e._inactive) {
              e._inactive = !0;
              for (var n = 0; n < e.$children.length; n++) Or(e.$children[n]);
              Rr(e, "deactivated");
            }
          }
          function Rr(e, t, n, r) {
            (void 0 === r && (r = !0), Ce());
            var i = pe;
            r && me(e);
            var A = e.$options[t],
              o = "".concat(t, " hook");
            if (A)
              for (var a = 0, s = A.length; a < s; a++)
                Pn(A[a], e, n || null, e, o);
            (e._hasHookEvent && e.$emit("hook:" + t), r && me(i), Ee());
          }
          var Pr = [],
            Dr = [],
            Nr = {},
            kr = !1,
            Gr = !1,
            Vr = 0;
          function zr() {
            ((Vr = Pr.length = Dr.length = 0), (Nr = {}), (kr = Gr = !1));
          }
          var jr = 0,
            Kr = Date.now;
          if ($ && !te) {
            var Wr = window.performance;
            Wr &&
              "function" === typeof Wr.now &&
              Kr() > document.createEvent("Event").timeStamp &&
              (Kr = function () {
                return Wr.now();
              });
          }
          var Xr = function (e, t) {
            if (e.post) {
              if (!t.post) return 1;
            } else if (t.post) return -1;
            return e.id - t.id;
          };
          function Yr() {
            var e, t;
            for (jr = Kr(), Gr = !0, Pr.sort(Xr), Vr = 0; Vr < Pr.length; Vr++)
              ((e = Pr[Vr]),
                e.before && e.before(),
                (t = e.id),
                (Nr[t] = null),
                e.run());
            var n = Dr.slice(),
              r = Pr.slice();
            (zr(), Zr(n), Jr(r), le && K.devtools && le.emit("flush"));
          }
          function Jr(e) {
            var t = e.length;
            while (t--) {
              var n = e[t],
                r = n.vm;
              r &&
                r._watcher === n &&
                r._isMounted &&
                !r._isDestroyed &&
                Rr(r, "updated");
            }
          }
          function qr(e) {
            ((e._inactive = !1), Dr.push(e));
          }
          function Zr(e) {
            for (var t = 0; t < e.length; t++)
              ((e[t]._inactive = !0), Hr(e[t], !0));
          }
          function $r(e) {
            var t = e.id;
            if (null == Nr[t] && (e !== _e.target || !e.noRecurse)) {
              if (((Nr[t] = !0), Gr)) {
                var n = Pr.length - 1;
                while (n > Vr && Pr[n].id > e.id) n--;
                Pr.splice(n + 1, 0, e);
              } else Pr.push(e);
              kr || ((kr = !0), Jn(Yr));
            }
          }
          function ei(e) {
            var t = e.$options.provide;
            if (t) {
              var n = u(t) ? t.call(e) : t;
              if (!l(n)) return;
              for (
                var r = Qt(e),
                  i = de ? Reflect.ownKeys(n) : Object.keys(n),
                  A = 0;
                A < i.length;
                A++
              ) {
                var o = i[A];
                Object.defineProperty(
                  r,
                  o,
                  Object.getOwnPropertyDescriptor(n, o),
                );
              }
            }
          }
          function ti(e) {
            var t = ni(e.$options.inject, e);
            t &&
              (Le(!1),
              Object.keys(t).forEach(function (n) {
                Re(e, n, t[n]);
              }),
              Le(!0));
          }
          function ni(e, t) {
            if (e) {
              for (
                var n = Object.create(null),
                  r = de ? Reflect.ownKeys(e) : Object.keys(e),
                  i = 0;
                i < r.length;
                i++
              ) {
                var A = r[i];
                if ("__ob__" !== A) {
                  var o = e[A].from;
                  if (o in t._provided) n[A] = t._provided[o];
                  else if ("default" in e[A]) {
                    var a = e[A].default;
                    n[A] = u(a) ? a.call(t) : a;
                  } else 0;
                }
              }
              return n;
            }
          }
          function ri(e, t, n, A, o) {
            var s,
              c = this,
              u = o.options;
            _(A, "_uid")
              ? ((s = Object.create(A)), (s._original = A))
              : ((s = A), (A = A._original));
            var l = a(u._compiled),
              h = !l;
            ((this.data = e),
              (this.props = t),
              (this.children = n),
              (this.parent = A),
              (this.listeners = e.on || r),
              (this.injections = ni(u.inject, A)),
              (this.slots = function () {
                return (
                  c.$slots || cn(A, e.scopedSlots, (c.$slots = on(n, A))),
                  c.$slots
                );
              }),
              Object.defineProperty(this, "scopedSlots", {
                enumerable: !0,
                get: function () {
                  return cn(A, e.scopedSlots, this.slots());
                },
              }),
              l &&
                ((this.$options = u),
                (this.$slots = this.slots()),
                (this.$scopedSlots = cn(A, e.scopedSlots, this.$slots))),
              u._scopeId
                ? (this._c = function (e, t, n, r) {
                    var o = Qn(s, e, t, n, r, h);
                    return (
                      o &&
                        !i(o) &&
                        ((o.fnScopeId = u._scopeId), (o.fnContext = A)),
                      o
                    );
                  })
                : (this._c = function (e, t, n, r) {
                    return Qn(s, e, t, n, r, h);
                  }));
          }
          function ii(e, t, n, A, a) {
            var s = e.options,
              c = {},
              u = s.props;
            if (o(u)) for (var l in u) c[l] = Si(l, u, t || r);
            else (o(n.attrs) && oi(c, n.attrs), o(n.props) && oi(c, n.props));
            var h = new ri(n, c, a, A, e),
              f = s.render.call(null, h._c, h);
            if (f instanceof ve) return Ai(f, n, h.parent, s, h);
            if (i(f)) {
              for (
                var d = kt(f) || [], p = new Array(d.length), g = 0;
                g < d.length;
                g++
              )
                p[g] = Ai(d[g], n, h.parent, s, h);
              return p;
            }
          }
          function Ai(e, t, n, r, i) {
            var A = Be(e);
            return (
              (A.fnContext = n),
              (A.fnOptions = r),
              t.slot && ((A.data || (A.data = {})).slot = t.slot),
              A
            );
          }
          function oi(e, t) {
            for (var n in t) e[E(n)] = t[n];
          }
          function ai(e) {
            return e.name || e.__name || e._componentTag;
          }
          An(ri.prototype);
          var si = {
              init: function (e, t) {
                if (
                  e.componentInstance &&
                  !e.componentInstance._isDestroyed &&
                  e.data.keepAlive
                ) {
                  var n = e;
                  si.prepatch(n, n);
                } else {
                  var r = (e.componentInstance = li(e, Sr));
                  r.$mount(t ? e.elm : void 0, t);
                }
              },
              prepatch: function (e, t) {
                var n = t.componentOptions,
                  r = (t.componentInstance = e.componentInstance);
                Lr(r, n.propsData, n.listeners, t, n.children);
              },
              insert: function (e) {
                var t = e.context,
                  n = e.componentInstance;
                (n._isMounted || ((n._isMounted = !0), Rr(n, "mounted")),
                  e.data.keepAlive && (t._isMounted ? qr(n) : Hr(n, !0)));
              },
              destroy: function (e) {
                var t = e.componentInstance;
                t._isDestroyed || (e.data.keepAlive ? Or(t, !0) : t.$destroy());
              },
            },
            ci = Object.keys(si);
          function ui(e, t, n, r, i) {
            if (!A(e)) {
              var s = n.$options._base;
              if ((l(e) && (e = s.extend(e)), "function" === typeof e)) {
                var c;
                if (A(e.cid) && ((c = e), (e = Sn(c, s)), void 0 === e))
                  return Mn(c, t, n, r, i);
                ((t = t || {}), Zi(e), o(t.model) && di(e.options, t));
                var u = Pt(t, e, i);
                if (a(e.options.functional)) return ii(e, u, t, n, r);
                var h = t.on;
                if (((t.on = t.nativeOn), a(e.options.abstract))) {
                  var f = t.slot;
                  ((t = {}), f && (t.slot = f));
                }
                hi(t);
                var d = ai(e.options) || i,
                  p = new ve(
                    "vue-component-"
                      .concat(e.cid)
                      .concat(d ? "-".concat(d) : ""),
                    t,
                    void 0,
                    void 0,
                    void 0,
                    n,
                    {
                      Ctor: e,
                      propsData: u,
                      listeners: h,
                      tag: i,
                      children: r,
                    },
                    c,
                  );
                return p;
              }
            }
          }
          function li(e, t) {
            var n = { _isComponent: !0, _parentVnode: e, parent: t },
              r = e.data.inlineTemplate;
            return (
              o(r) &&
                ((n.render = r.render),
                (n.staticRenderFns = r.staticRenderFns)),
              new e.componentOptions.Ctor(n)
            );
          }
          function hi(e) {
            for (var t = e.hook || (e.hook = {}), n = 0; n < ci.length; n++) {
              var r = ci[n],
                i = t[r],
                A = si[r];
              i === A || (i && i._merged) || (t[r] = i ? fi(A, i) : A);
            }
          }
          function fi(e, t) {
            var n = function (n, r) {
              (e(n, r), t(n, r));
            };
            return ((n._merged = !0), n);
          }
          function di(e, t) {
            var n = (e.model && e.model.prop) || "value",
              r = (e.model && e.model.event) || "input";
            (t.attrs || (t.attrs = {}))[n] = t.model.value;
            var A = t.on || (t.on = {}),
              a = A[r],
              s = t.model.callback;
            o(a)
              ? (i(a) ? -1 === a.indexOf(s) : a !== s) && (A[r] = [s].concat(a))
              : (A[r] = s);
          }
          var pi = O,
            gi = K.optionMergeStrategies;
          function mi(e, t) {
            if (!t) return e;
            for (
              var n, r, i, A = de ? Reflect.ownKeys(t) : Object.keys(t), o = 0;
              o < A.length;
              o++
            )
              ((n = A[o]),
                "__ob__" !== n &&
                  ((r = e[n]),
                  (i = t[n]),
                  _(e, n) ? r !== i && f(r) && f(i) && mi(r, i) : Pe(e, n, i)));
            return e;
          }
          function vi(e, t, n) {
            return n
              ? function () {
                  var r = u(t) ? t.call(n, n) : t,
                    i = u(e) ? e.call(n, n) : e;
                  return r ? mi(r, i) : i;
                }
              : t
                ? e
                  ? function () {
                      return mi(
                        u(t) ? t.call(this, this) : t,
                        u(e) ? e.call(this, this) : e,
                      );
                    }
                  : t
                : e;
          }
          function yi(e, t) {
            var n = t ? (e ? e.concat(t) : i(t) ? t : [t]) : e;
            return n ? wi(n) : n;
          }
          function wi(e) {
            for (var t = [], n = 0; n < e.length; n++)
              -1 === t.indexOf(e[n]) && t.push(e[n]);
            return t;
          }
          function Bi(e, t, n, r) {
            var i = Object.create(e || null);
            return t ? I(i, t) : i;
          }
          ((gi.data = function (e, t, n) {
            return n
              ? vi(e, t, n)
              : t && "function" !== typeof t
                ? e
                : vi(e, t);
          }),
            j.forEach(function (e) {
              gi[e] = yi;
            }),
            z.forEach(function (e) {
              gi[e + "s"] = Bi;
            }),
            (gi.watch = function (e, t, n, r) {
              if ((e === ae && (e = void 0), t === ae && (t = void 0), !t))
                return Object.create(e || null);
              if (!e) return t;
              var A = {};
              for (var o in (I(A, e), t)) {
                var a = A[o],
                  s = t[o];
                (a && !i(a) && (a = [a]),
                  (A[o] = a ? a.concat(s) : i(s) ? s : [s]));
              }
              return A;
            }),
            (gi.props =
              gi.methods =
              gi.inject =
              gi.computed =
                function (e, t, n, r) {
                  if (!e) return t;
                  var i = Object.create(null);
                  return (I(i, e), t && I(i, t), i);
                }),
            (gi.provide = vi));
          var bi = function (e, t) {
            return void 0 === t ? e : t;
          };
          function _i(e, t) {
            var n = e.props;
            if (n) {
              var r,
                A,
                o,
                a = {};
              if (i(n)) {
                r = n.length;
                while (r--)
                  ((A = n[r]),
                    "string" === typeof A &&
                      ((o = E(A)), (a[o] = { type: null })));
              } else if (f(n))
                for (var s in n)
                  ((A = n[s]), (o = E(s)), (a[o] = f(A) ? A : { type: A }));
              else 0;
              e.props = a;
            }
          }
          function xi(e, t) {
            var n = e.inject;
            if (n) {
              var r = (e.inject = {});
              if (i(n))
                for (var A = 0; A < n.length; A++) r[n[A]] = { from: n[A] };
              else if (f(n))
                for (var o in n) {
                  var a = n[o];
                  r[o] = f(a) ? I({ from: o }, a) : { from: a };
                }
              else 0;
            }
          }
          function Ci(e) {
            var t = e.directives;
            if (t)
              for (var n in t) {
                var r = t[n];
                u(r) && (t[n] = { bind: r, update: r });
              }
          }
          function Ei(e, t, n) {
            if (
              (u(t) && (t = t.options),
              _i(t, n),
              xi(t, n),
              Ci(t),
              !t._base && (t.extends && (e = Ei(e, t.extends, n)), t.mixins))
            )
              for (var r = 0, i = t.mixins.length; r < i; r++)
                e = Ei(e, t.mixins[r], n);
            var A,
              o = {};
            for (A in e) a(A);
            for (A in t) _(e, A) || a(A);
            function a(r) {
              var i = gi[r] || bi;
              o[r] = i(e[r], t[r], n, r);
            }
            return o;
          }
          function Mi(e, t, n, r) {
            if ("string" === typeof n) {
              var i = e[t];
              if (_(i, n)) return i[n];
              var A = E(n);
              if (_(i, A)) return i[A];
              var o = M(A);
              if (_(i, o)) return i[o];
              var a = i[n] || i[A] || i[o];
              return a;
            }
          }
          function Si(e, t, n, r) {
            var i = t[e],
              A = !_(n, e),
              o = n[e],
              a = Li(Boolean, i.type);
            if (a > -1)
              if (A && !_(i, "default")) o = !1;
              else if ("" === o || o === F(e)) {
                var s = Li(String, i.type);
                (s < 0 || a < s) && (o = !0);
              }
            if (void 0 === o) {
              o = Fi(r, i, e);
              var c = Qe;
              (Le(!0), Oe(o), Le(c));
            }
            return o;
          }
          function Fi(e, t, n) {
            if (_(t, "default")) {
              var r = t.default;
              return e &&
                e.$options.propsData &&
                void 0 === e.$options.propsData[n] &&
                void 0 !== e._props[n]
                ? e._props[n]
                : u(r) && "Function" !== Ui(t.type)
                  ? r.call(e)
                  : r;
            }
          }
          var Ti = /^\s*function (\w+)/;
          function Ui(e) {
            var t = e && e.toString().match(Ti);
            return t ? t[1] : "";
          }
          function Qi(e, t) {
            return Ui(e) === Ui(t);
          }
          function Li(e, t) {
            if (!i(t)) return Qi(t, e) ? 0 : -1;
            for (var n = 0, r = t.length; n < r; n++) if (Qi(t[n], e)) return n;
            return -1;
          }
          var Ii = { enumerable: !0, configurable: !0, get: O, set: O };
          function Hi(e, t, n) {
            ((Ii.get = function () {
              return this[t][n];
            }),
              (Ii.set = function (e) {
                this[t][n] = e;
              }),
              Object.defineProperty(e, n, Ii));
          }
          function Oi(e) {
            var t = e.$options;
            if (
              (t.props && Ri(e, t.props),
              hn(e),
              t.methods && ji(e, t.methods),
              t.data)
            )
              Pi(e);
            else {
              var n = Oe((e._data = {}));
              n && n.vmCount++;
            }
            (t.computed && ki(e, t.computed),
              t.watch && t.watch !== ae && Ki(e, t.watch));
          }
          function Ri(e, t) {
            var n = e.$options.propsData || {},
              r = (e._props = Ge({})),
              i = (e.$options._propKeys = []),
              A = !e.$parent;
            A || Le(!1);
            var o = function (A) {
              i.push(A);
              var o = Si(A, t, n, e);
              (Re(r, A, o), A in e || Hi(e, "_props", A));
            };
            for (var a in t) o(a);
            Le(!0);
          }
          function Pi(e) {
            var t = e.$options.data;
            ((t = e._data = u(t) ? Di(t, e) : t || {}), f(t) || (t = {}));
            var n = Object.keys(t),
              r = e.$options.props,
              i = (e.$options.methods, n.length);
            while (i--) {
              var A = n[i];
              (0, (r && _(r, A)) || X(A) || Hi(e, "_data", A));
            }
            var o = Oe(t);
            o && o.vmCount++;
          }
          function Di(e, t) {
            Ce();
            try {
              return e.call(t, t);
            } catch (ts) {
              return (Rn(ts, t, "data()"), {});
            } finally {
              Ee();
            }
          }
          var Ni = { lazy: !0 };
          function ki(e, t) {
            var n = (e._computedWatchers = Object.create(null)),
              r = ue();
            for (var i in t) {
              var A = t[i],
                o = u(A) ? A : A.get;
              (0,
                r || (n[i] = new Br(e, o || O, O, Ni)),
                i in e || Gi(e, i, A));
            }
          }
          function Gi(e, t, n) {
            var r = !ue();
            (u(n)
              ? ((Ii.get = r ? Vi(t) : zi(n)), (Ii.set = O))
              : ((Ii.get = n.get
                  ? r && !1 !== n.cache
                    ? Vi(t)
                    : zi(n.get)
                  : O),
                (Ii.set = n.set || O)),
              Object.defineProperty(e, t, Ii));
          }
          function Vi(e) {
            return function () {
              var t = this._computedWatchers && this._computedWatchers[e];
              if (t)
                return (
                  t.dirty && t.evaluate(),
                  _e.target && t.depend(),
                  t.value
                );
            };
          }
          function zi(e) {
            return function () {
              return e.call(this, this);
            };
          }
          function ji(e, t) {
            e.$options.props;
            for (var n in t) e[n] = "function" !== typeof t[n] ? O : Q(t[n], e);
          }
          function Ki(e, t) {
            for (var n in t) {
              var r = t[n];
              if (i(r)) for (var A = 0; A < r.length; A++) Wi(e, n, r[A]);
              else Wi(e, n, r);
            }
          }
          function Wi(e, t, n, r) {
            return (
              f(n) && ((r = n), (n = n.handler)),
              "string" === typeof n && (n = e[n]),
              e.$watch(t, n, r)
            );
          }
          function Xi(e) {
            var t = {
                get: function () {
                  return this._data;
                },
              },
              n = {
                get: function () {
                  return this._props;
                },
              };
            (Object.defineProperty(e.prototype, "$data", t),
              Object.defineProperty(e.prototype, "$props", n),
              (e.prototype.$set = Pe),
              (e.prototype.$delete = De),
              (e.prototype.$watch = function (e, t, n) {
                var r = this;
                if (f(t)) return Wi(r, e, t, n);
                ((n = n || {}), (n.user = !0));
                var i = new Br(r, e, t, n);
                if (n.immediate) {
                  var A = 'callback for immediate watcher "'.concat(
                    i.expression,
                    '"',
                  );
                  (Ce(), Pn(t, r, [i.value], r, A), Ee());
                }
                return function () {
                  i.teardown();
                };
              }));
          }
          var Yi = 0;
          function Ji(e) {
            e.prototype._init = function (e) {
              var t = this;
              ((t._uid = Yi++),
                (t._isVue = !0),
                (t.__v_skip = !0),
                (t._scope = new Et(!0)),
                e && e._isComponent
                  ? qi(t, e)
                  : (t.$options = Ei(Zi(t.constructor), e || {}, t)),
                (t._renderProxy = t),
                (t._self = t),
                Tr(t),
                br(t),
                _n(t),
                Rr(t, "beforeCreate", void 0, !1),
                ti(t),
                Oi(t),
                ei(t),
                Rr(t, "created"),
                t.$options.el && t.$mount(t.$options.el));
            };
          }
          function qi(e, t) {
            var n = (e.$options = Object.create(e.constructor.options)),
              r = t._parentVnode;
            ((n.parent = t.parent), (n._parentVnode = r));
            var i = r.componentOptions;
            ((n.propsData = i.propsData),
              (n._parentListeners = i.listeners),
              (n._renderChildren = i.children),
              (n._componentTag = i.tag),
              t.render &&
                ((n.render = t.render),
                (n.staticRenderFns = t.staticRenderFns)));
          }
          function Zi(e) {
            var t = e.options;
            if (e.super) {
              var n = Zi(e.super),
                r = e.superOptions;
              if (n !== r) {
                e.superOptions = n;
                var i = $i(e);
                (i && I(e.extendOptions, i),
                  (t = e.options = Ei(n, e.extendOptions)),
                  t.name && (t.components[t.name] = e));
              }
            }
            return t;
          }
          function $i(e) {
            var t,
              n = e.options,
              r = e.sealedOptions;
            for (var i in n) n[i] !== r[i] && (t || (t = {}), (t[i] = n[i]));
            return t;
          }
          function eA(e) {
            this._init(e);
          }
          function tA(e) {
            e.use = function (e) {
              var t = this._installedPlugins || (this._installedPlugins = []);
              if (t.indexOf(e) > -1) return this;
              var n = L(arguments, 1);
              return (
                n.unshift(this),
                u(e.install) ? e.install.apply(e, n) : u(e) && e.apply(null, n),
                t.push(e),
                this
              );
            };
          }
          function nA(e) {
            e.mixin = function (e) {
              return ((this.options = Ei(this.options, e)), this);
            };
          }
          function rA(e) {
            e.cid = 0;
            var t = 1;
            e.extend = function (e) {
              e = e || {};
              var n = this,
                r = n.cid,
                i = e._Ctor || (e._Ctor = {});
              if (i[r]) return i[r];
              var A = ai(e) || ai(n.options);
              var o = function (e) {
                this._init(e);
              };
              return (
                (o.prototype = Object.create(n.prototype)),
                (o.prototype.constructor = o),
                (o.cid = t++),
                (o.options = Ei(n.options, e)),
                (o["super"] = n),
                o.options.props && iA(o),
                o.options.computed && AA(o),
                (o.extend = n.extend),
                (o.mixin = n.mixin),
                (o.use = n.use),
                z.forEach(function (e) {
                  o[e] = n[e];
                }),
                A && (o.options.components[A] = o),
                (o.superOptions = n.options),
                (o.extendOptions = e),
                (o.sealedOptions = I({}, o.options)),
                (i[r] = o),
                o
              );
            };
          }
          function iA(e) {
            var t = e.options.props;
            for (var n in t) Hi(e.prototype, "_props", n);
          }
          function AA(e) {
            var t = e.options.computed;
            for (var n in t) Gi(e.prototype, n, t[n]);
          }
          function oA(e) {
            z.forEach(function (t) {
              e[t] = function (e, n) {
                return n
                  ? ("component" === t &&
                      f(n) &&
                      ((n.name = n.name || e),
                      (n = this.options._base.extend(n))),
                    "directive" === t && u(n) && (n = { bind: n, update: n }),
                    (this.options[t + "s"][e] = n),
                    n)
                  : this.options[t + "s"][e];
              };
            });
          }
          function aA(e) {
            return e && (ai(e.Ctor.options) || e.tag);
          }
          function sA(e, t) {
            return i(e)
              ? e.indexOf(t) > -1
              : "string" === typeof e
                ? e.split(",").indexOf(t) > -1
                : !!d(e) && e.test(t);
          }
          function cA(e, t) {
            var n = e.cache,
              r = e.keys,
              i = e._vnode;
            for (var A in n) {
              var o = n[A];
              if (o) {
                var a = o.name;
                a && !t(a) && uA(n, A, r, i);
              }
            }
          }
          function uA(e, t, n, r) {
            var i = e[t];
            (!i || (r && i.tag === r.tag) || i.componentInstance.$destroy(),
              (e[t] = null),
              B(n, t));
          }
          (Ji(eA), Xi(eA), Mr(eA), Ur(eA), Cn(eA));
          var lA = [String, RegExp, Array],
            hA = {
              name: "keep-alive",
              abstract: !0,
              props: { include: lA, exclude: lA, max: [String, Number] },
              methods: {
                cacheVNode: function () {
                  var e = this,
                    t = e.cache,
                    n = e.keys,
                    r = e.vnodeToCache,
                    i = e.keyToCache;
                  if (r) {
                    var A = r.tag,
                      o = r.componentInstance,
                      a = r.componentOptions;
                    ((t[i] = { name: aA(a), tag: A, componentInstance: o }),
                      n.push(i),
                      this.max &&
                        n.length > parseInt(this.max) &&
                        uA(t, n[0], n, this._vnode),
                      (this.vnodeToCache = null));
                  }
                },
              },
              created: function () {
                ((this.cache = Object.create(null)), (this.keys = []));
              },
              destroyed: function () {
                for (var e in this.cache) uA(this.cache, e, this.keys);
              },
              mounted: function () {
                var e = this;
                (this.cacheVNode(),
                  this.$watch("include", function (t) {
                    cA(e, function (e) {
                      return sA(t, e);
                    });
                  }),
                  this.$watch("exclude", function (t) {
                    cA(e, function (e) {
                      return !sA(t, e);
                    });
                  }));
              },
              updated: function () {
                this.cacheVNode();
              },
              render: function () {
                var e = this.$slots.default,
                  t = Fn(e),
                  n = t && t.componentOptions;
                if (n) {
                  var r = aA(n),
                    i = this,
                    A = i.include,
                    o = i.exclude;
                  if ((A && (!r || !sA(A, r))) || (o && r && sA(o, r)))
                    return t;
                  var a = this,
                    s = a.cache,
                    c = a.keys,
                    u =
                      null == t.key
                        ? n.Ctor.cid + (n.tag ? "::".concat(n.tag) : "")
                        : t.key;
                  (s[u]
                    ? ((t.componentInstance = s[u].componentInstance),
                      B(c, u),
                      c.push(u))
                    : ((this.vnodeToCache = t), (this.keyToCache = u)),
                    (t.data.keepAlive = !0));
                }
                return t || (e && e[0]);
              },
            },
            fA = { KeepAlive: hA };
          function dA(e) {
            var t = {
              get: function () {
                return K;
              },
            };
            (Object.defineProperty(e, "config", t),
              (e.util = {
                warn: pi,
                extend: I,
                mergeOptions: Ei,
                defineReactive: Re,
              }),
              (e.set = Pe),
              (e.delete = De),
              (e.nextTick = Jn),
              (e.observable = function (e) {
                return (Oe(e), e);
              }),
              (e.options = Object.create(null)),
              z.forEach(function (t) {
                e.options[t + "s"] = Object.create(null);
              }),
              (e.options._base = e),
              I(e.options.components, fA),
              tA(e),
              nA(e),
              rA(e),
              oA(e));
          }
          (dA(eA),
            Object.defineProperty(eA.prototype, "$isServer", { get: ue }),
            Object.defineProperty(eA.prototype, "$ssrContext", {
              get: function () {
                return this.$vnode && this.$vnode.ssrContext;
              },
            }),
            Object.defineProperty(eA, "FunctionalRenderContext", { value: ri }),
            (eA.version = dr));
          var pA = y("style,class"),
            gA = y("input,textarea,option,select,progress"),
            mA = function (e, t, n) {
              return (
                ("value" === n && gA(e) && "button" !== t) ||
                ("selected" === n && "option" === e) ||
                ("checked" === n && "input" === e) ||
                ("muted" === n && "video" === e)
              );
            },
            vA = y("contenteditable,draggable,spellcheck"),
            yA = y("events,caret,typing,plaintext-only"),
            wA = function (e, t) {
              return CA(t) || "false" === t
                ? "false"
                : "contenteditable" === e && yA(t)
                  ? t
                  : "true";
            },
            BA = y(
              "allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible",
            ),
            bA = "http://www.w3.org/1999/xlink",
            _A = function (e) {
              return ":" === e.charAt(5) && "xlink" === e.slice(0, 5);
            },
            xA = function (e) {
              return _A(e) ? e.slice(6, e.length) : "";
            },
            CA = function (e) {
              return null == e || !1 === e;
            };
          function EA(e) {
            var t = e.data,
              n = e,
              r = e;
            while (o(r.componentInstance))
              ((r = r.componentInstance._vnode),
                r && r.data && (t = MA(r.data, t)));
            while (o((n = n.parent))) n && n.data && (t = MA(t, n.data));
            return SA(t.staticClass, t.class);
          }
          function MA(e, t) {
            return {
              staticClass: FA(e.staticClass, t.staticClass),
              class: o(e.class) ? [e.class, t.class] : t.class,
            };
          }
          function SA(e, t) {
            return o(e) || o(t) ? FA(e, TA(t)) : "";
          }
          function FA(e, t) {
            return e ? (t ? e + " " + t : e) : t || "";
          }
          function TA(e) {
            return Array.isArray(e)
              ? UA(e)
              : l(e)
                ? QA(e)
                : "string" === typeof e
                  ? e
                  : "";
          }
          function UA(e) {
            for (var t, n = "", r = 0, i = e.length; r < i; r++)
              o((t = TA(e[r]))) && "" !== t && (n && (n += " "), (n += t));
            return n;
          }
          function QA(e) {
            var t = "";
            for (var n in e) e[n] && (t && (t += " "), (t += n));
            return t;
          }
          var LA = {
              svg: "http://www.w3.org/2000/svg",
              math: "http://www.w3.org/1998/Math/MathML",
            },
            IA = y(
              "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot",
            ),
            HA = y(
              "svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignobject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view",
              !0,
            ),
            OA = function (e) {
              return IA(e) || HA(e);
            };
          function RA(e) {
            return HA(e) ? "svg" : "math" === e ? "math" : void 0;
          }
          var PA = Object.create(null);
          function DA(e) {
            if (!$) return !0;
            if (OA(e)) return !1;
            if (((e = e.toLowerCase()), null != PA[e])) return PA[e];
            var t = document.createElement(e);
            return e.indexOf("-") > -1
              ? (PA[e] =
                  t.constructor === window.HTMLUnknownElement ||
                  t.constructor === window.HTMLElement)
              : (PA[e] = /HTMLUnknownElement/.test(t.toString()));
          }
          var NA = y("text,number,password,search,email,tel,url");
          function kA(e) {
            if ("string" === typeof e) {
              var t = document.querySelector(e);
              return t || document.createElement("div");
            }
            return e;
          }
          function GA(e, t) {
            var n = document.createElement(e);
            return (
              "select" !== e ||
                (t.data &&
                  t.data.attrs &&
                  void 0 !== t.data.attrs.multiple &&
                  n.setAttribute("multiple", "multiple")),
              n
            );
          }
          function VA(e, t) {
            return document.createElementNS(LA[e], t);
          }
          function zA(e) {
            return document.createTextNode(e);
          }
          function jA(e) {
            return document.createComment(e);
          }
          function KA(e, t, n) {
            e.insertBefore(t, n);
          }
          function WA(e, t) {
            e.removeChild(t);
          }
          function XA(e, t) {
            e.appendChild(t);
          }
          function YA(e) {
            return e.parentNode;
          }
          function JA(e) {
            return e.nextSibling;
          }
          function qA(e) {
            return e.tagName;
          }
          function ZA(e, t) {
            e.textContent = t;
          }
          function $A(e, t) {
            e.setAttribute(t, "");
          }
          var eo = Object.freeze({
              __proto__: null,
              createElement: GA,
              createElementNS: VA,
              createTextNode: zA,
              createComment: jA,
              insertBefore: KA,
              removeChild: WA,
              appendChild: XA,
              parentNode: YA,
              nextSibling: JA,
              tagName: qA,
              setTextContent: ZA,
              setStyleScope: $A,
            }),
            to = {
              create: function (e, t) {
                no(t);
              },
              update: function (e, t) {
                e.data.ref !== t.data.ref && (no(e, !0), no(t));
              },
              destroy: function (e) {
                no(e, !0);
              },
            };
          function no(e, t) {
            var n = e.data.ref;
            if (o(n)) {
              var r = e.context,
                A = e.componentInstance || e.elm,
                a = t ? null : A,
                s = t ? void 0 : A;
              if (u(n)) Pn(n, r, [a], r, "template ref function");
              else {
                var c = e.data.refInFor,
                  l = "string" === typeof n || "number" === typeof n,
                  h = qe(n),
                  f = r.$refs;
                if (l || h)
                  if (c) {
                    var d = l ? f[n] : n.value;
                    t
                      ? i(d) && B(d, A)
                      : i(d)
                        ? d.includes(A) || d.push(A)
                        : l
                          ? ((f[n] = [A]), ro(r, n, f[n]))
                          : (n.value = [A]);
                  } else if (l) {
                    if (t && f[n] !== A) return;
                    ((f[n] = s), ro(r, n, a));
                  } else if (h) {
                    if (t && n.value !== A) return;
                    n.value = a;
                  } else 0;
              }
            }
          }
          function ro(e, t, n) {
            var r = e._setupState;
            r && _(r, t) && (qe(r[t]) ? (r[t].value = n) : (r[t] = n));
          }
          var io = new ve("", {}, []),
            Ao = ["create", "activate", "update", "remove", "destroy"];
          function oo(e, t) {
            return (
              e.key === t.key &&
              e.asyncFactory === t.asyncFactory &&
              ((e.tag === t.tag &&
                e.isComment === t.isComment &&
                o(e.data) === o(t.data) &&
                ao(e, t)) ||
                (a(e.isAsyncPlaceholder) && A(t.asyncFactory.error)))
            );
          }
          function ao(e, t) {
            if ("input" !== e.tag) return !0;
            var n,
              r = o((n = e.data)) && o((n = n.attrs)) && n.type,
              i = o((n = t.data)) && o((n = n.attrs)) && n.type;
            return r === i || (NA(r) && NA(i));
          }
          function so(e, t, n) {
            var r,
              i,
              A = {};
            for (r = t; r <= n; ++r) ((i = e[r].key), o(i) && (A[i] = r));
            return A;
          }
          function co(e) {
            var t,
              n,
              r = {},
              s = e.modules,
              u = e.nodeOps;
            for (t = 0; t < Ao.length; ++t)
              for (r[Ao[t]] = [], n = 0; n < s.length; ++n)
                o(s[n][Ao[t]]) && r[Ao[t]].push(s[n][Ao[t]]);
            function l(e) {
              return new ve(u.tagName(e).toLowerCase(), {}, [], void 0, e);
            }
            function h(e, t) {
              function n() {
                0 === --n.listeners && f(e);
              }
              return ((n.listeners = t), n);
            }
            function f(e) {
              var t = u.parentNode(e);
              o(t) && u.removeChild(t, e);
            }
            function d(e, t, n, r, i, A, s) {
              if (
                (o(e.elm) && o(A) && (e = A[s] = Be(e)),
                (e.isRootInsert = !i),
                !p(e, t, n, r))
              ) {
                var c = e.data,
                  l = e.children,
                  h = e.tag;
                o(h)
                  ? ((e.elm = e.ns
                      ? u.createElementNS(e.ns, h)
                      : u.createElement(h, e)),
                    _(e),
                    w(e, l, t),
                    o(c) && b(e, t),
                    v(n, e.elm, r))
                  : a(e.isComment)
                    ? ((e.elm = u.createComment(e.text)), v(n, e.elm, r))
                    : ((e.elm = u.createTextNode(e.text)), v(n, e.elm, r));
              }
            }
            function p(e, t, n, r) {
              var i = e.data;
              if (o(i)) {
                var A = o(e.componentInstance) && i.keepAlive;
                if (
                  (o((i = i.hook)) && o((i = i.init)) && i(e, !1),
                  o(e.componentInstance))
                )
                  return (g(e, t), v(n, e.elm, r), a(A) && m(e, t, n, r), !0);
              }
            }
            function g(e, t) {
              (o(e.data.pendingInsert) &&
                (t.push.apply(t, e.data.pendingInsert),
                (e.data.pendingInsert = null)),
                (e.elm = e.componentInstance.$el),
                B(e) ? (b(e, t), _(e)) : (no(e), t.push(e)));
            }
            function m(e, t, n, i) {
              var A,
                a = e;
              while (a.componentInstance)
                if (
                  ((a = a.componentInstance._vnode),
                  o((A = a.data)) && o((A = A.transition)))
                ) {
                  for (A = 0; A < r.activate.length; ++A) r.activate[A](io, a);
                  t.push(a);
                  break;
                }
              v(n, e.elm, i);
            }
            function v(e, t, n) {
              o(e) &&
                (o(n)
                  ? u.parentNode(n) === e && u.insertBefore(e, t, n)
                  : u.appendChild(e, t));
            }
            function w(e, t, n) {
              if (i(t)) {
                0;
                for (var r = 0; r < t.length; ++r)
                  d(t[r], n, e.elm, null, !0, t, r);
              } else
                c(e.text) &&
                  u.appendChild(e.elm, u.createTextNode(String(e.text)));
            }
            function B(e) {
              while (e.componentInstance) e = e.componentInstance._vnode;
              return o(e.tag);
            }
            function b(e, n) {
              for (var i = 0; i < r.create.length; ++i) r.create[i](io, e);
              ((t = e.data.hook),
                o(t) &&
                  (o(t.create) && t.create(io, e), o(t.insert) && n.push(e)));
            }
            function _(e) {
              var t;
              if (o((t = e.fnScopeId))) u.setStyleScope(e.elm, t);
              else {
                var n = e;
                while (n)
                  (o((t = n.context)) &&
                    o((t = t.$options._scopeId)) &&
                    u.setStyleScope(e.elm, t),
                    (n = n.parent));
              }
              o((t = Sr)) &&
                t !== e.context &&
                t !== e.fnContext &&
                o((t = t.$options._scopeId)) &&
                u.setStyleScope(e.elm, t);
            }
            function x(e, t, n, r, i, A) {
              for (; r <= i; ++r) d(n[r], A, e, t, !1, n, r);
            }
            function C(e) {
              var t,
                n,
                i = e.data;
              if (o(i))
                for (
                  o((t = i.hook)) && o((t = t.destroy)) && t(e), t = 0;
                  t < r.destroy.length;
                  ++t
                )
                  r.destroy[t](e);
              if (o((t = e.children)))
                for (n = 0; n < e.children.length; ++n) C(e.children[n]);
            }
            function E(e, t, n) {
              for (; t <= n; ++t) {
                var r = e[t];
                o(r) && (o(r.tag) ? (M(r), C(r)) : f(r.elm));
              }
            }
            function M(e, t) {
              if (o(t) || o(e.data)) {
                var n,
                  i = r.remove.length + 1;
                for (
                  o(t) ? (t.listeners += i) : (t = h(e.elm, i)),
                    o((n = e.componentInstance)) &&
                      o((n = n._vnode)) &&
                      o(n.data) &&
                      M(n, t),
                    n = 0;
                  n < r.remove.length;
                  ++n
                )
                  r.remove[n](e, t);
                o((n = e.data.hook)) && o((n = n.remove)) ? n(e, t) : t();
              } else f(e.elm);
            }
            function S(e, t, n, r, i) {
              var a,
                s,
                c,
                l,
                h = 0,
                f = 0,
                p = t.length - 1,
                g = t[0],
                m = t[p],
                v = n.length - 1,
                y = n[0],
                w = n[v],
                B = !i;
              while (h <= p && f <= v)
                A(g)
                  ? (g = t[++h])
                  : A(m)
                    ? (m = t[--p])
                    : oo(g, y)
                      ? (T(g, y, r, n, f), (g = t[++h]), (y = n[++f]))
                      : oo(m, w)
                        ? (T(m, w, r, n, v), (m = t[--p]), (w = n[--v]))
                        : oo(g, w)
                          ? (T(g, w, r, n, v),
                            B && u.insertBefore(e, g.elm, u.nextSibling(m.elm)),
                            (g = t[++h]),
                            (w = n[--v]))
                          : oo(m, y)
                            ? (T(m, y, r, n, f),
                              B && u.insertBefore(e, m.elm, g.elm),
                              (m = t[--p]),
                              (y = n[++f]))
                            : (A(a) && (a = so(t, h, p)),
                              (s = o(y.key) ? a[y.key] : F(y, t, h, p)),
                              A(s)
                                ? d(y, r, e, g.elm, !1, n, f)
                                : ((c = t[s]),
                                  oo(c, y)
                                    ? (T(c, y, r, n, f),
                                      (t[s] = void 0),
                                      B && u.insertBefore(e, c.elm, g.elm))
                                    : d(y, r, e, g.elm, !1, n, f)),
                              (y = n[++f]));
              h > p
                ? ((l = A(n[v + 1]) ? null : n[v + 1].elm), x(e, l, n, f, v, r))
                : f > v && E(t, h, p);
            }
            function F(e, t, n, r) {
              for (var i = n; i < r; i++) {
                var A = t[i];
                if (o(A) && oo(e, A)) return i;
              }
            }
            function T(e, t, n, i, s, c) {
              if (e !== t) {
                o(t.elm) && o(i) && (t = i[s] = Be(t));
                var l = (t.elm = e.elm);
                if (a(e.isAsyncPlaceholder))
                  o(t.asyncFactory.resolved)
                    ? L(e.elm, t, n)
                    : (t.isAsyncPlaceholder = !0);
                else if (
                  a(t.isStatic) &&
                  a(e.isStatic) &&
                  t.key === e.key &&
                  (a(t.isCloned) || a(t.isOnce))
                )
                  t.componentInstance = e.componentInstance;
                else {
                  var h,
                    f = t.data;
                  o(f) && o((h = f.hook)) && o((h = h.prepatch)) && h(e, t);
                  var d = e.children,
                    p = t.children;
                  if (o(f) && B(t)) {
                    for (h = 0; h < r.update.length; ++h) r.update[h](e, t);
                    o((h = f.hook)) && o((h = h.update)) && h(e, t);
                  }
                  (A(t.text)
                    ? o(d) && o(p)
                      ? d !== p && S(l, d, p, n, c)
                      : o(p)
                        ? (o(e.text) && u.setTextContent(l, ""),
                          x(l, null, p, 0, p.length - 1, n))
                        : o(d)
                          ? E(d, 0, d.length - 1)
                          : o(e.text) && u.setTextContent(l, "")
                    : e.text !== t.text && u.setTextContent(l, t.text),
                    o(f) && o((h = f.hook)) && o((h = h.postpatch)) && h(e, t));
                }
              }
            }
            function U(e, t, n) {
              if (a(n) && o(e.parent)) e.parent.data.pendingInsert = t;
              else
                for (var r = 0; r < t.length; ++r) t[r].data.hook.insert(t[r]);
            }
            var Q = y("attrs,class,staticClass,staticStyle,key");
            function L(e, t, n, r) {
              var i,
                A = t.tag,
                s = t.data,
                c = t.children;
              if (
                ((r = r || (s && s.pre)),
                (t.elm = e),
                a(t.isComment) && o(t.asyncFactory))
              )
                return ((t.isAsyncPlaceholder = !0), !0);
              if (
                o(s) &&
                (o((i = s.hook)) && o((i = i.init)) && i(t, !0),
                o((i = t.componentInstance)))
              )
                return (g(t, n), !0);
              if (o(A)) {
                if (o(c))
                  if (e.hasChildNodes())
                    if (
                      o((i = s)) &&
                      o((i = i.domProps)) &&
                      o((i = i.innerHTML))
                    ) {
                      if (i !== e.innerHTML) return !1;
                    } else {
                      for (
                        var u = !0, l = e.firstChild, h = 0;
                        h < c.length;
                        h++
                      ) {
                        if (!l || !L(l, c[h], n, r)) {
                          u = !1;
                          break;
                        }
                        l = l.nextSibling;
                      }
                      if (!u || l) return !1;
                    }
                  else w(t, c, n);
                if (o(s)) {
                  var f = !1;
                  for (var d in s)
                    if (!Q(d)) {
                      ((f = !0), b(t, n));
                      break;
                    }
                  !f && s["class"] && mr(s["class"]);
                }
              } else e.data !== t.text && (e.data = t.text);
              return !0;
            }
            return function (e, t, n, i) {
              if (!A(t)) {
                var s = !1,
                  c = [];
                if (A(e)) ((s = !0), d(t, c));
                else {
                  var h = o(e.nodeType);
                  if (!h && oo(e, t)) T(e, t, c, null, null, i);
                  else {
                    if (h) {
                      if (
                        (1 === e.nodeType &&
                          e.hasAttribute(V) &&
                          (e.removeAttribute(V), (n = !0)),
                        a(n) && L(e, t, c))
                      )
                        return (U(t, c, !0), e);
                      e = l(e);
                    }
                    var f = e.elm,
                      p = u.parentNode(f);
                    if (
                      (d(t, c, f._leaveCb ? null : p, u.nextSibling(f)),
                      o(t.parent))
                    ) {
                      var g = t.parent,
                        m = B(t);
                      while (g) {
                        for (var v = 0; v < r.destroy.length; ++v)
                          r.destroy[v](g);
                        if (((g.elm = t.elm), m)) {
                          for (var y = 0; y < r.create.length; ++y)
                            r.create[y](io, g);
                          var w = g.data.hook.insert;
                          if (w.merged)
                            for (var b = 1; b < w.fns.length; b++) w.fns[b]();
                        } else no(g);
                        g = g.parent;
                      }
                    }
                    o(p) ? E([e], 0, 0) : o(e.tag) && C(e);
                  }
                }
                return (U(t, c, s), t.elm);
              }
              o(e) && C(e);
            };
          }
          var uo = {
            create: lo,
            update: lo,
            destroy: function (e) {
              lo(e, io);
            },
          };
          function lo(e, t) {
            (e.data.directives || t.data.directives) && ho(e, t);
          }
          function ho(e, t) {
            var n,
              r,
              i,
              A = e === io,
              o = t === io,
              a = po(e.data.directives, e.context),
              s = po(t.data.directives, t.context),
              c = [],
              u = [];
            for (n in s)
              ((r = a[n]),
                (i = s[n]),
                r
                  ? ((i.oldValue = r.value),
                    (i.oldArg = r.arg),
                    mo(i, "update", t, e),
                    i.def && i.def.componentUpdated && u.push(i))
                  : (mo(i, "bind", t, e),
                    i.def && i.def.inserted && c.push(i)));
            if (c.length) {
              var l = function () {
                for (var n = 0; n < c.length; n++) mo(c[n], "inserted", t, e);
              };
              A ? Rt(t, "insert", l) : l();
            }
            if (
              (u.length &&
                Rt(t, "postpatch", function () {
                  for (var n = 0; n < u.length; n++)
                    mo(u[n], "componentUpdated", t, e);
                }),
              !A)
            )
              for (n in a) s[n] || mo(a[n], "unbind", e, e, o);
          }
          var fo = Object.create(null);
          function po(e, t) {
            var n,
              r,
              i = Object.create(null);
            if (!e) return i;
            for (n = 0; n < e.length; n++)
              ((r = e[n]),
                r.modifiers || (r.modifiers = fo),
                (i[go(r)] = r),
                t._setupState &&
                  t._setupState.__sfc &&
                  (r.def = r.def || Mi(t, "_setupState", "v-" + r.name)),
                (r.def = r.def || Mi(t.$options, "directives", r.name, !0)));
            return i;
          }
          function go(e) {
            return (
              e.rawName ||
              ""
                .concat(e.name, ".")
                .concat(Object.keys(e.modifiers || {}).join("."))
            );
          }
          function mo(e, t, n, r, i) {
            var A = e.def && e.def[t];
            if (A)
              try {
                A(n.elm, e, n, r, i);
              } catch (ts) {
                Rn(
                  ts,
                  n.context,
                  "directive ".concat(e.name, " ").concat(t, " hook"),
                );
              }
          }
          var vo = [to, uo];
          function yo(e, t) {
            var n = t.componentOptions;
            if (
              (!o(n) || !1 !== n.Ctor.options.inheritAttrs) &&
              (!A(e.data.attrs) || !A(t.data.attrs))
            ) {
              var r,
                i,
                s,
                c = t.elm,
                u = e.data.attrs || {},
                l = t.data.attrs || {};
              for (r in ((o(l.__ob__) || a(l._v_attr_proxy)) &&
                (l = t.data.attrs = I({}, l)),
              l))
                ((i = l[r]), (s = u[r]), s !== i && wo(c, r, i, t.data.pre));
              for (r in ((te || re) &&
                l.value !== u.value &&
                wo(c, "value", l.value),
              u))
                A(l[r]) &&
                  (_A(r)
                    ? c.removeAttributeNS(bA, xA(r))
                    : vA(r) || c.removeAttribute(r));
            }
          }
          function wo(e, t, n, r) {
            r || e.tagName.indexOf("-") > -1
              ? Bo(e, t, n)
              : BA(t)
                ? CA(n)
                  ? e.removeAttribute(t)
                  : ((n =
                      "allowfullscreen" === t && "EMBED" === e.tagName
                        ? "true"
                        : t),
                    e.setAttribute(t, n))
                : vA(t)
                  ? e.setAttribute(t, wA(t, n))
                  : _A(t)
                    ? CA(n)
                      ? e.removeAttributeNS(bA, xA(t))
                      : e.setAttributeNS(bA, t, n)
                    : Bo(e, t, n);
          }
          function Bo(e, t, n) {
            if (CA(n)) e.removeAttribute(t);
            else {
              if (
                te &&
                !ne &&
                "TEXTAREA" === e.tagName &&
                "placeholder" === t &&
                "" !== n &&
                !e.__ieph
              ) {
                var r = function (t) {
                  (t.stopImmediatePropagation(),
                    e.removeEventListener("input", r));
                };
                (e.addEventListener("input", r), (e.__ieph = !0));
              }
              e.setAttribute(t, n);
            }
          }
          var bo = { create: yo, update: yo };
          function _o(e, t) {
            var n = t.elm,
              r = t.data,
              i = e.data;
            if (
              !(
                A(r.staticClass) &&
                A(r.class) &&
                (A(i) || (A(i.staticClass) && A(i.class)))
              )
            ) {
              var a = EA(t),
                s = n._transitionClasses;
              (o(s) && (a = FA(a, TA(s))),
                a !== n._prevClass &&
                  (n.setAttribute("class", a), (n._prevClass = a)));
            }
          }
          var xo,
            Co = { create: _o, update: _o },
            Eo = "__r",
            Mo = "__c";
          function So(e) {
            if (o(e[Eo])) {
              var t = te ? "change" : "input";
              ((e[t] = [].concat(e[Eo], e[t] || [])), delete e[Eo]);
            }
            o(e[Mo]) &&
              ((e.change = [].concat(e[Mo], e.change || [])), delete e[Mo]);
          }
          function Fo(e, t, n) {
            var r = xo;
            return function i() {
              var A = t.apply(null, arguments);
              null !== A && Qo(e, i, n, r);
            };
          }
          var To = Gn && !(oe && Number(oe[1]) <= 53);
          function Uo(e, t, n, r) {
            if (To) {
              var i = jr,
                A = t;
              t = A._wrapper = function (e) {
                if (
                  e.target === e.currentTarget ||
                  e.timeStamp >= i ||
                  e.timeStamp <= 0 ||
                  e.target.ownerDocument !== document
                )
                  return A.apply(this, arguments);
              };
            }
            xo.addEventListener(e, t, se ? { capture: n, passive: r } : n);
          }
          function Qo(e, t, n, r) {
            (r || xo).removeEventListener(e, t._wrapper || t, n);
          }
          function Lo(e, t) {
            if (!A(e.data.on) || !A(t.data.on)) {
              var n = t.data.on || {},
                r = e.data.on || {};
              ((xo = t.elm || e.elm),
                So(n),
                Ot(n, r, Uo, Qo, Fo, t.context),
                (xo = void 0));
            }
          }
          var Io,
            Ho = {
              create: Lo,
              update: Lo,
              destroy: function (e) {
                return Lo(e, io);
              },
            };
          function Oo(e, t) {
            if (!A(e.data.domProps) || !A(t.data.domProps)) {
              var n,
                r,
                i = t.elm,
                s = e.data.domProps || {},
                c = t.data.domProps || {};
              for (n in ((o(c.__ob__) || a(c._v_attr_proxy)) &&
                (c = t.data.domProps = I({}, c)),
              s))
                n in c || (i[n] = "");
              for (n in c) {
                if (((r = c[n]), "textContent" === n || "innerHTML" === n)) {
                  if ((t.children && (t.children.length = 0), r === s[n]))
                    continue;
                  1 === i.childNodes.length && i.removeChild(i.childNodes[0]);
                }
                if ("value" === n && "PROGRESS" !== i.tagName) {
                  i._value = r;
                  var u = A(r) ? "" : String(r);
                  Ro(i, u) && (i.value = u);
                } else if (
                  "innerHTML" === n &&
                  HA(i.tagName) &&
                  A(i.innerHTML)
                ) {
                  ((Io = Io || document.createElement("div")),
                    (Io.innerHTML = "<svg>".concat(r, "</svg>")));
                  var l = Io.firstChild;
                  while (i.firstChild) i.removeChild(i.firstChild);
                  while (l.firstChild) i.appendChild(l.firstChild);
                } else if (r !== s[n])
                  try {
                    i[n] = r;
                  } catch (ts) {}
              }
            }
          }
          function Ro(e, t) {
            return (
              !e.composing && ("OPTION" === e.tagName || Po(e, t) || Do(e, t))
            );
          }
          function Po(e, t) {
            var n = !0;
            try {
              n = document.activeElement !== e;
            } catch (ts) {}
            return n && e.value !== t;
          }
          function Do(e, t) {
            var n = e.value,
              r = e._vModifiers;
            if (o(r)) {
              if (r.number) return v(n) !== v(t);
              if (r.trim) return n.trim() !== t.trim();
            }
            return n !== t;
          }
          var No = { create: Oo, update: Oo },
            ko = x(function (e) {
              var t = {},
                n = /;(?![^(]*\))/g,
                r = /:(.+)/;
              return (
                e.split(n).forEach(function (e) {
                  if (e) {
                    var n = e.split(r);
                    n.length > 1 && (t[n[0].trim()] = n[1].trim());
                  }
                }),
                t
              );
            });
          function Go(e) {
            var t = Vo(e.style);
            return e.staticStyle ? I(e.staticStyle, t) : t;
          }
          function Vo(e) {
            return Array.isArray(e) ? H(e) : "string" === typeof e ? ko(e) : e;
          }
          function zo(e, t) {
            var n,
              r = {};
            if (t) {
              var i = e;
              while (i.componentInstance)
                ((i = i.componentInstance._vnode),
                  i && i.data && (n = Go(i.data)) && I(r, n));
            }
            (n = Go(e.data)) && I(r, n);
            var A = e;
            while ((A = A.parent)) A.data && (n = Go(A.data)) && I(r, n);
            return r;
          }
          var jo,
            Ko = /^--/,
            Wo = /\s*!important$/,
            Xo = function (e, t, n) {
              if (Ko.test(t)) e.style.setProperty(t, n);
              else if (Wo.test(n))
                e.style.setProperty(F(t), n.replace(Wo, ""), "important");
              else {
                var r = Jo(t);
                if (Array.isArray(n))
                  for (var i = 0, A = n.length; i < A; i++) e.style[r] = n[i];
                else e.style[r] = n;
              }
            },
            Yo = ["Webkit", "Moz", "ms"],
            Jo = x(function (e) {
              if (
                ((jo = jo || document.createElement("div").style),
                (e = E(e)),
                "filter" !== e && e in jo)
              )
                return e;
              for (
                var t = e.charAt(0).toUpperCase() + e.slice(1), n = 0;
                n < Yo.length;
                n++
              ) {
                var r = Yo[n] + t;
                if (r in jo) return r;
              }
            });
          function qo(e, t) {
            var n = t.data,
              r = e.data;
            if (
              !(
                A(n.staticStyle) &&
                A(n.style) &&
                A(r.staticStyle) &&
                A(r.style)
              )
            ) {
              var i,
                a,
                s = t.elm,
                c = r.staticStyle,
                u = r.normalizedStyle || r.style || {},
                l = c || u,
                h = Vo(t.data.style) || {};
              t.data.normalizedStyle = o(h.__ob__) ? I({}, h) : h;
              var f = zo(t, !0);
              for (a in l) A(f[a]) && Xo(s, a, "");
              for (a in f)
                ((i = f[a]), i !== l[a] && Xo(s, a, null == i ? "" : i));
            }
          }
          var Zo = { create: qo, update: qo },
            $o = /\s+/;
          function ea(e, t) {
            if (t && (t = t.trim()))
              if (e.classList)
                t.indexOf(" ") > -1
                  ? t.split($o).forEach(function (t) {
                      return e.classList.add(t);
                    })
                  : e.classList.add(t);
              else {
                var n = " ".concat(e.getAttribute("class") || "", " ");
                n.indexOf(" " + t + " ") < 0 &&
                  e.setAttribute("class", (n + t).trim());
              }
          }
          function ta(e, t) {
            if (t && (t = t.trim()))
              if (e.classList)
                (t.indexOf(" ") > -1
                  ? t.split($o).forEach(function (t) {
                      return e.classList.remove(t);
                    })
                  : e.classList.remove(t),
                  e.classList.length || e.removeAttribute("class"));
              else {
                var n = " ".concat(e.getAttribute("class") || "", " "),
                  r = " " + t + " ";
                while (n.indexOf(r) >= 0) n = n.replace(r, " ");
                ((n = n.trim()),
                  n ? e.setAttribute("class", n) : e.removeAttribute("class"));
              }
          }
          function na(e) {
            if (e) {
              if ("object" === typeof e) {
                var t = {};
                return (!1 !== e.css && I(t, ra(e.name || "v")), I(t, e), t);
              }
              return "string" === typeof e ? ra(e) : void 0;
            }
          }
          var ra = x(function (e) {
              return {
                enterClass: "".concat(e, "-enter"),
                enterToClass: "".concat(e, "-enter-to"),
                enterActiveClass: "".concat(e, "-enter-active"),
                leaveClass: "".concat(e, "-leave"),
                leaveToClass: "".concat(e, "-leave-to"),
                leaveActiveClass: "".concat(e, "-leave-active"),
              };
            }),
            ia = $ && !ne,
            Aa = "transition",
            oa = "animation",
            aa = "transition",
            sa = "transitionend",
            ca = "animation",
            ua = "animationend";
          ia &&
            (void 0 === window.ontransitionend &&
              void 0 !== window.onwebkittransitionend &&
              ((aa = "WebkitTransition"), (sa = "webkitTransitionEnd")),
            void 0 === window.onanimationend &&
              void 0 !== window.onwebkitanimationend &&
              ((ca = "WebkitAnimation"), (ua = "webkitAnimationEnd")));
          var la = $
            ? window.requestAnimationFrame
              ? window.requestAnimationFrame.bind(window)
              : setTimeout
            : function (e) {
                return e();
              };
          function ha(e) {
            la(function () {
              la(e);
            });
          }
          function fa(e, t) {
            var n = e._transitionClasses || (e._transitionClasses = []);
            n.indexOf(t) < 0 && (n.push(t), ea(e, t));
          }
          function da(e, t) {
            (e._transitionClasses && B(e._transitionClasses, t), ta(e, t));
          }
          function pa(e, t, n) {
            var r = ma(e, t),
              i = r.type,
              A = r.timeout,
              o = r.propCount;
            if (!i) return n();
            var a = i === Aa ? sa : ua,
              s = 0,
              c = function () {
                (e.removeEventListener(a, u), n());
              },
              u = function (t) {
                t.target === e && ++s >= o && c();
              };
            (setTimeout(function () {
              s < o && c();
            }, A + 1),
              e.addEventListener(a, u));
          }
          var ga = /\b(transform|all)(,|$)/;
          function ma(e, t) {
            var n,
              r = window.getComputedStyle(e),
              i = (r[aa + "Delay"] || "").split(", "),
              A = (r[aa + "Duration"] || "").split(", "),
              o = va(i, A),
              a = (r[ca + "Delay"] || "").split(", "),
              s = (r[ca + "Duration"] || "").split(", "),
              c = va(a, s),
              u = 0,
              l = 0;
            t === Aa
              ? o > 0 && ((n = Aa), (u = o), (l = A.length))
              : t === oa
                ? c > 0 && ((n = oa), (u = c), (l = s.length))
                : ((u = Math.max(o, c)),
                  (n = u > 0 ? (o > c ? Aa : oa) : null),
                  (l = n ? (n === Aa ? A.length : s.length) : 0));
            var h = n === Aa && ga.test(r[aa + "Property"]);
            return { type: n, timeout: u, propCount: l, hasTransform: h };
          }
          function va(e, t) {
            while (e.length < t.length) e = e.concat(e);
            return Math.max.apply(
              null,
              t.map(function (t, n) {
                return ya(t) + ya(e[n]);
              }),
            );
          }
          function ya(e) {
            return 1e3 * Number(e.slice(0, -1).replace(",", "."));
          }
          function wa(e, t) {
            var n = e.elm;
            o(n._leaveCb) && ((n._leaveCb.cancelled = !0), n._leaveCb());
            var r = na(e.data.transition);
            if (!A(r) && !o(n._enterCb) && 1 === n.nodeType) {
              var i = r.css,
                a = r.type,
                s = r.enterClass,
                c = r.enterToClass,
                h = r.enterActiveClass,
                f = r.appearClass,
                d = r.appearToClass,
                p = r.appearActiveClass,
                g = r.beforeEnter,
                m = r.enter,
                y = r.afterEnter,
                w = r.enterCancelled,
                B = r.beforeAppear,
                b = r.appear,
                _ = r.afterAppear,
                x = r.appearCancelled,
                C = r.duration,
                E = Sr,
                M = Sr.$vnode;
              while (M && M.parent) ((E = M.context), (M = M.parent));
              var S = !E._isMounted || !e.isRootInsert;
              if (!S || b || "" === b) {
                var F = S && f ? f : s,
                  T = S && p ? p : h,
                  U = S && d ? d : c,
                  Q = (S && B) || g,
                  L = S && u(b) ? b : m,
                  I = (S && _) || y,
                  H = (S && x) || w,
                  O = v(l(C) ? C.enter : C);
                0;
                var R = !1 !== i && !ne,
                  P = _a(L),
                  D = (n._enterCb = k(function () {
                    (R && (da(n, U), da(n, T)),
                      D.cancelled ? (R && da(n, F), H && H(n)) : I && I(n),
                      (n._enterCb = null));
                  }));
                (e.data.show ||
                  Rt(e, "insert", function () {
                    var t = n.parentNode,
                      r = t && t._pending && t._pending[e.key];
                    (r && r.tag === e.tag && r.elm._leaveCb && r.elm._leaveCb(),
                      L && L(n, D));
                  }),
                  Q && Q(n),
                  R &&
                    (fa(n, F),
                    fa(n, T),
                    ha(function () {
                      (da(n, F),
                        D.cancelled ||
                          (fa(n, U),
                          P || (ba(O) ? setTimeout(D, O) : pa(n, a, D))));
                    })),
                  e.data.show && (t && t(), L && L(n, D)),
                  R || P || D());
              }
            }
          }
          function Ba(e, t) {
            var n = e.elm;
            o(n._enterCb) && ((n._enterCb.cancelled = !0), n._enterCb());
            var r = na(e.data.transition);
            if (A(r) || 1 !== n.nodeType) return t();
            if (!o(n._leaveCb)) {
              var i = r.css,
                a = r.type,
                s = r.leaveClass,
                c = r.leaveToClass,
                u = r.leaveActiveClass,
                h = r.beforeLeave,
                f = r.leave,
                d = r.afterLeave,
                p = r.leaveCancelled,
                g = r.delayLeave,
                m = r.duration,
                y = !1 !== i && !ne,
                w = _a(f),
                B = v(l(m) ? m.leave : m);
              0;
              var b = (n._leaveCb = k(function () {
                (n.parentNode &&
                  n.parentNode._pending &&
                  (n.parentNode._pending[e.key] = null),
                  y && (da(n, c), da(n, u)),
                  b.cancelled ? (y && da(n, s), p && p(n)) : (t(), d && d(n)),
                  (n._leaveCb = null));
              }));
              g ? g(_) : _();
            }
            function _() {
              b.cancelled ||
                (!e.data.show &&
                  n.parentNode &&
                  ((n.parentNode._pending || (n.parentNode._pending = {}))[
                    e.key
                  ] = e),
                h && h(n),
                y &&
                  (fa(n, s),
                  fa(n, u),
                  ha(function () {
                    (da(n, s),
                      b.cancelled ||
                        (fa(n, c),
                        w || (ba(B) ? setTimeout(b, B) : pa(n, a, b))));
                  })),
                f && f(n, b),
                y || w || b());
            }
          }
          function ba(e) {
            return "number" === typeof e && !isNaN(e);
          }
          function _a(e) {
            if (A(e)) return !1;
            var t = e.fns;
            return o(t)
              ? _a(Array.isArray(t) ? t[0] : t)
              : (e._length || e.length) > 1;
          }
          function xa(e, t) {
            !0 !== t.data.show && wa(t);
          }
          var Ca = $
              ? {
                  create: xa,
                  activate: xa,
                  remove: function (e, t) {
                    !0 !== e.data.show ? Ba(e, t) : t();
                  },
                }
              : {},
            Ea = [bo, Co, Ho, No, Zo, Ca],
            Ma = Ea.concat(vo),
            Sa = co({ nodeOps: eo, modules: Ma });
          ne &&
            document.addEventListener("selectionchange", function () {
              var e = document.activeElement;
              e && e.vmodel && Oa(e, "input");
            });
          var Fa = {
            inserted: function (e, t, n, r) {
              "select" === n.tag
                ? (r.elm && !r.elm._vOptions
                    ? Rt(n, "postpatch", function () {
                        Fa.componentUpdated(e, t, n);
                      })
                    : Ta(e, t, n.context),
                  (e._vOptions = [].map.call(e.options, La)))
                : ("textarea" === n.tag || NA(e.type)) &&
                  ((e._vModifiers = t.modifiers),
                  t.modifiers.lazy ||
                    (e.addEventListener("compositionstart", Ia),
                    e.addEventListener("compositionend", Ha),
                    e.addEventListener("change", Ha),
                    ne && (e.vmodel = !0)));
            },
            componentUpdated: function (e, t, n) {
              if ("select" === n.tag) {
                Ta(e, t, n.context);
                var r = e._vOptions,
                  i = (e._vOptions = [].map.call(e.options, La));
                if (
                  i.some(function (e, t) {
                    return !D(e, r[t]);
                  })
                ) {
                  var A = e.multiple
                    ? t.value.some(function (e) {
                        return Qa(e, i);
                      })
                    : t.value !== t.oldValue && Qa(t.value, i);
                  A && Oa(e, "change");
                }
              }
            },
          };
          function Ta(e, t, n) {
            (Ua(e, t, n),
              (te || re) &&
                setTimeout(function () {
                  Ua(e, t, n);
                }, 0));
          }
          function Ua(e, t, n) {
            var r = t.value,
              i = e.multiple;
            if (!i || Array.isArray(r)) {
              for (var A, o, a = 0, s = e.options.length; a < s; a++)
                if (((o = e.options[a]), i))
                  ((A = N(r, La(o)) > -1),
                    o.selected !== A && (o.selected = A));
                else if (D(La(o), r))
                  return void (e.selectedIndex !== a && (e.selectedIndex = a));
              i || (e.selectedIndex = -1);
            }
          }
          function Qa(e, t) {
            return t.every(function (t) {
              return !D(t, e);
            });
          }
          function La(e) {
            return "_value" in e ? e._value : e.value;
          }
          function Ia(e) {
            e.target.composing = !0;
          }
          function Ha(e) {
            e.target.composing &&
              ((e.target.composing = !1), Oa(e.target, "input"));
          }
          function Oa(e, t) {
            var n = document.createEvent("HTMLEvents");
            (n.initEvent(t, !0, !0), e.dispatchEvent(n));
          }
          function Ra(e) {
            return !e.componentInstance || (e.data && e.data.transition)
              ? e
              : Ra(e.componentInstance._vnode);
          }
          var Pa = {
              bind: function (e, t, n) {
                var r = t.value;
                n = Ra(n);
                var i = n.data && n.data.transition,
                  A = (e.__vOriginalDisplay =
                    "none" === e.style.display ? "" : e.style.display);
                r && i
                  ? ((n.data.show = !0),
                    wa(n, function () {
                      e.style.display = A;
                    }))
                  : (e.style.display = r ? A : "none");
              },
              update: function (e, t, n) {
                var r = t.value,
                  i = t.oldValue;
                if (!r !== !i) {
                  n = Ra(n);
                  var A = n.data && n.data.transition;
                  A
                    ? ((n.data.show = !0),
                      r
                        ? wa(n, function () {
                            e.style.display = e.__vOriginalDisplay;
                          })
                        : Ba(n, function () {
                            e.style.display = "none";
                          }))
                    : (e.style.display = r ? e.__vOriginalDisplay : "none");
                }
              },
              unbind: function (e, t, n, r, i) {
                i || (e.style.display = e.__vOriginalDisplay);
              },
            },
            Da = { model: Fa, show: Pa },
            Na = {
              name: String,
              appear: Boolean,
              css: Boolean,
              mode: String,
              type: String,
              enterClass: String,
              leaveClass: String,
              enterToClass: String,
              leaveToClass: String,
              enterActiveClass: String,
              leaveActiveClass: String,
              appearClass: String,
              appearActiveClass: String,
              appearToClass: String,
              duration: [Number, String, Object],
            };
          function ka(e) {
            var t = e && e.componentOptions;
            return t && t.Ctor.options.abstract ? ka(Fn(t.children)) : e;
          }
          function Ga(e) {
            var t = {},
              n = e.$options;
            for (var r in n.propsData) t[r] = e[r];
            var i = n._parentListeners;
            for (var r in i) t[E(r)] = i[r];
            return t;
          }
          function Va(e, t) {
            if (/\d-keep-alive$/.test(t.tag))
              return e("keep-alive", { props: t.componentOptions.propsData });
          }
          function za(e) {
            while ((e = e.parent)) if (e.data.transition) return !0;
          }
          function ja(e, t) {
            return t.key === e.key && t.tag === e.tag;
          }
          var Ka = function (e) {
              return e.tag || sn(e);
            },
            Wa = function (e) {
              return "show" === e.name;
            },
            Xa = {
              name: "transition",
              props: Na,
              abstract: !0,
              render: function (e) {
                var t = this,
                  n = this.$slots.default;
                if (n && ((n = n.filter(Ka)), n.length)) {
                  0;
                  var r = this.mode;
                  0;
                  var i = n[0];
                  if (za(this.$vnode)) return i;
                  var A = ka(i);
                  if (!A) return i;
                  if (this._leaving) return Va(e, i);
                  var o = "__transition-".concat(this._uid, "-");
                  A.key =
                    null == A.key
                      ? A.isComment
                        ? o + "comment"
                        : o + A.tag
                      : c(A.key)
                        ? 0 === String(A.key).indexOf(o)
                          ? A.key
                          : o + A.key
                        : A.key;
                  var a = ((A.data || (A.data = {})).transition = Ga(this)),
                    s = this._vnode,
                    u = ka(s);
                  if (
                    (A.data.directives &&
                      A.data.directives.some(Wa) &&
                      (A.data.show = !0),
                    u &&
                      u.data &&
                      !ja(A, u) &&
                      !sn(u) &&
                      (!u.componentInstance ||
                        !u.componentInstance._vnode.isComment))
                  ) {
                    var l = (u.data.transition = I({}, a));
                    if ("out-in" === r)
                      return (
                        (this._leaving = !0),
                        Rt(l, "afterLeave", function () {
                          ((t._leaving = !1), t.$forceUpdate());
                        }),
                        Va(e, i)
                      );
                    if ("in-out" === r) {
                      if (sn(A)) return s;
                      var h,
                        f = function () {
                          h();
                        };
                      (Rt(a, "afterEnter", f),
                        Rt(a, "enterCancelled", f),
                        Rt(l, "delayLeave", function (e) {
                          h = e;
                        }));
                    }
                  }
                  return i;
                }
              },
            },
            Ya = I({ tag: String, moveClass: String }, Na);
          delete Ya.mode;
          var Ja = {
            props: Ya,
            beforeMount: function () {
              var e = this,
                t = this._update;
              this._update = function (n, r) {
                var i = Fr(e);
                (e.__patch__(e._vnode, e.kept, !1, !0),
                  (e._vnode = e.kept),
                  i(),
                  t.call(e, n, r));
              };
            },
            render: function (e) {
              for (
                var t = this.tag || this.$vnode.data.tag || "span",
                  n = Object.create(null),
                  r = (this.prevChildren = this.children),
                  i = this.$slots.default || [],
                  A = (this.children = []),
                  o = Ga(this),
                  a = 0;
                a < i.length;
                a++
              ) {
                var s = i[a];
                if (s.tag)
                  if (null != s.key && 0 !== String(s.key).indexOf("__vlist"))
                    (A.push(s),
                      (n[s.key] = s),
                      ((s.data || (s.data = {})).transition = o));
                  else;
              }
              if (r) {
                var c = [],
                  u = [];
                for (a = 0; a < r.length; a++) {
                  s = r[a];
                  ((s.data.transition = o),
                    (s.data.pos = s.elm.getBoundingClientRect()),
                    n[s.key] ? c.push(s) : u.push(s));
                }
                ((this.kept = e(t, null, c)), (this.removed = u));
              }
              return e(t, null, A);
            },
            updated: function () {
              var e = this.prevChildren,
                t = this.moveClass || (this.name || "v") + "-move";
              e.length &&
                this.hasMove(e[0].elm, t) &&
                (e.forEach(qa),
                e.forEach(Za),
                e.forEach($a),
                (this._reflow = document.body.offsetHeight),
                e.forEach(function (e) {
                  if (e.data.moved) {
                    var n = e.elm,
                      r = n.style;
                    (fa(n, t),
                      (r.transform =
                        r.WebkitTransform =
                        r.transitionDuration =
                          ""),
                      n.addEventListener(
                        sa,
                        (n._moveCb = function e(r) {
                          (r && r.target !== n) ||
                            (r && !/transform$/.test(r.propertyName)) ||
                            (n.removeEventListener(sa, e),
                            (n._moveCb = null),
                            da(n, t));
                        }),
                      ));
                  }
                }));
            },
            methods: {
              hasMove: function (e, t) {
                if (!ia) return !1;
                if (this._hasMove) return this._hasMove;
                var n = e.cloneNode();
                (e._transitionClasses &&
                  e._transitionClasses.forEach(function (e) {
                    ta(n, e);
                  }),
                  ea(n, t),
                  (n.style.display = "none"),
                  this.$el.appendChild(n));
                var r = ma(n);
                return (
                  this.$el.removeChild(n),
                  (this._hasMove = r.hasTransform)
                );
              },
            },
          };
          function qa(e) {
            (e.elm._moveCb && e.elm._moveCb(),
              e.elm._enterCb && e.elm._enterCb());
          }
          function Za(e) {
            e.data.newPos = e.elm.getBoundingClientRect();
          }
          function $a(e) {
            var t = e.data.pos,
              n = e.data.newPos,
              r = t.left - n.left,
              i = t.top - n.top;
            if (r || i) {
              e.data.moved = !0;
              var A = e.elm.style;
              ((A.transform = A.WebkitTransform =
                "translate(".concat(r, "px,").concat(i, "px)")),
                (A.transitionDuration = "0s"));
            }
          }
          var es = { Transition: Xa, TransitionGroup: Ja };
          ((eA.config.mustUseProp = mA),
            (eA.config.isReservedTag = OA),
            (eA.config.isReservedAttr = pA),
            (eA.config.getTagNamespace = RA),
            (eA.config.isUnknownElement = DA),
            I(eA.options.directives, Da),
            I(eA.options.components, es),
            (eA.prototype.__patch__ = $ ? Sa : O),
            (eA.prototype.$mount = function (e, t) {
              return ((e = e && $ ? kA(e) : void 0), Qr(this, e, t));
            }),
            $ &&
              setTimeout(function () {
                K.devtools && le && le.emit("init", eA);
              }, 0));
        }.call(this, n("c8ba")));
    },
    "2b76": function (e, t, n) {
      var r = n("f083"),
        i = Math.abs;
      r(r.S, "Math", {
        hypot: function (e, t) {
          var n,
            r,
            A = 0,
            o = 0,
            a = arguments.length,
            s = 0;
          while (o < a)
            ((n = i(arguments[o++])),
              s < n
                ? ((r = s / n), (A = A * r * r + 1), (s = n))
                : n > 0
                  ? ((r = n / s), (A += r * r))
                  : (A += n));
          return s === 1 / 0 ? 1 / 0 : s * Math.sqrt(A);
        },
      });
    },
    "2b80": function (e, t, n) {
      var r;
      (function (i, A) {
        "use strict";
        var o = "0.7.31",
          a = "",
          s = "?",
          c = "function",
          u = "undefined",
          l = "object",
          h = "string",
          f = "major",
          d = "model",
          p = "name",
          g = "type",
          m = "vendor",
          v = "version",
          y = "architecture",
          w = "console",
          B = "mobile",
          b = "tablet",
          _ = "smarttv",
          x = "wearable",
          C = "embedded",
          E = 255,
          M = "Amazon",
          S = "Apple",
          F = "ASUS",
          T = "BlackBerry",
          U = "Browser",
          Q = "Chrome",
          L = "Edge",
          I = "Firefox",
          H = "Google",
          O = "Huawei",
          R = "LG",
          P = "Microsoft",
          D = "Motorola",
          N = "Opera",
          k = "Samsung",
          G = "Sony",
          V = "Xiaomi",
          z = "Zebra",
          j = "Facebook",
          K = function (e, t) {
            var n = {};
            for (var r in e)
              t[r] && t[r].length % 2 === 0
                ? (n[r] = t[r].concat(e[r]))
                : (n[r] = e[r]);
            return n;
          },
          W = function (e) {
            for (var t = {}, n = 0; n < e.length; n++)
              t[e[n].toUpperCase()] = e[n];
            return t;
          },
          X = function (e, t) {
            return typeof e === h && -1 !== Y(t).indexOf(Y(e));
          },
          Y = function (e) {
            return e.toLowerCase();
          },
          J = function (e) {
            return typeof e === h ? e.replace(/[^\d\.]/g, a).split(".")[0] : A;
          },
          q = function (e, t) {
            if (typeof e === h)
              return (
                (e = e.replace(/^\s\s*/, a).replace(/\s\s*$/, a)),
                typeof t === u ? e : e.substring(0, E)
              );
          },
          Z = function (e, t) {
            var n,
              r,
              i,
              o,
              a,
              s,
              u = 0;
            while (u < t.length && !a) {
              var h = t[u],
                f = t[u + 1];
              n = r = 0;
              while (n < h.length && !a)
                if (((a = h[n++].exec(e)), a))
                  for (i = 0; i < f.length; i++)
                    ((s = a[++r]),
                      (o = f[i]),
                      typeof o === l && o.length > 0
                        ? 2 === o.length
                          ? typeof o[1] == c
                            ? (this[o[0]] = o[1].call(this, s))
                            : (this[o[0]] = o[1])
                          : 3 === o.length
                            ? typeof o[1] !== c || (o[1].exec && o[1].test)
                              ? (this[o[0]] = s ? s.replace(o[1], o[2]) : A)
                              : (this[o[0]] = s ? o[1].call(this, s, o[2]) : A)
                            : 4 === o.length &&
                              (this[o[0]] = s
                                ? o[3].call(this, s.replace(o[1], o[2]))
                                : A)
                        : (this[o] = s || A));
              u += 2;
            }
          },
          $ = function (e, t) {
            for (var n in t)
              if (typeof t[n] === l && t[n].length > 0) {
                for (var r = 0; r < t[n].length; r++)
                  if (X(t[n][r], e)) return n === s ? A : n;
              } else if (X(t[n], e)) return n === s ? A : n;
            return e;
          },
          ee = {
            "1.0": "/8",
            1.2: "/1",
            1.3: "/3",
            "2.0": "/412",
            "2.0.2": "/416",
            "2.0.3": "/417",
            "2.0.4": "/419",
            "?": "/",
          },
          te = {
            ME: "4.90",
            "NT 3.11": "NT3.51",
            "NT 4.0": "NT4.0",
            2e3: "NT 5.0",
            XP: ["NT 5.1", "NT 5.2"],
            Vista: "NT 6.0",
            7: "NT 6.1",
            8: "NT 6.2",
            8.1: "NT 6.3",
            10: ["NT 6.4", "NT 10.0"],
            RT: "ARM",
          },
          ne = {
            browser: [
              [/\b(?:crmo|crios)\/([\w\.]+)/i],
              [v, [p, "Chrome"]],
              [/edg(?:e|ios|a)?\/([\w\.]+)/i],
              [v, [p, "Edge"]],
              [
                /(opera mini)\/([-\w\.]+)/i,
                /(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,
                /(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i,
              ],
              [p, v],
              [/opios[\/ ]+([\w\.]+)/i],
              [v, [p, N + " Mini"]],
              [/\bopr\/([\w\.]+)/i],
              [v, [p, N]],
              [
                /(kindle)\/([\w\.]+)/i,
                /(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i,
                /(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i,
                /(ba?idubrowser)[\/ ]?([\w\.]+)/i,
                /(?:ms|\()(ie) ([\w\.]+)/i,
                /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq)\/([-\w\.]+)/i,
                /(weibo)__([\d\.]+)/i,
              ],
              [p, v],
              [/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],
              [v, [p, "UC" + U]],
              [/\bqbcore\/([\w\.]+)/i],
              [v, [p, "WeChat(Win) Desktop"]],
              [/micromessenger\/([\w\.]+)/i],
              [v, [p, "WeChat"]],
              [/konqueror\/([\w\.]+)/i],
              [v, [p, "Konqueror"]],
              [/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],
              [v, [p, "IE"]],
              [/yabrowser\/([\w\.]+)/i],
              [v, [p, "Yandex"]],
              [/(avast|avg)\/([\w\.]+)/i],
              [[p, /(.+)/, "$1 Secure " + U], v],
              [/\bfocus\/([\w\.]+)/i],
              [v, [p, I + " Focus"]],
              [/\bopt\/([\w\.]+)/i],
              [v, [p, N + " Touch"]],
              [/coc_coc\w+\/([\w\.]+)/i],
              [v, [p, "Coc Coc"]],
              [/dolfin\/([\w\.]+)/i],
              [v, [p, "Dolphin"]],
              [/coast\/([\w\.]+)/i],
              [v, [p, N + " Coast"]],
              [/miuibrowser\/([\w\.]+)/i],
              [v, [p, "MIUI " + U]],
              [/fxios\/([-\w\.]+)/i],
              [v, [p, I]],
              [/\bqihu|(qi?ho?o?|360)browser/i],
              [[p, "360 " + U]],
              [/(oculus|samsung|sailfish)browser\/([\w\.]+)/i],
              [[p, /(.+)/, "$1 " + U], v],
              [/(comodo_dragon)\/([\w\.]+)/i],
              [[p, /_/g, " "], v],
              [
                /(electron)\/([\w\.]+) safari/i,
                /(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,
                /m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i,
              ],
              [p, v],
              [/(metasr)[\/ ]?([\w\.]+)/i, /(lbbrowser)/i],
              [p],
              [/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],
              [[p, j], v],
              [
                /safari (line)\/([\w\.]+)/i,
                /\b(line)\/([\w\.]+)\/iab/i,
                /(chromium|instagram)[\/ ]([-\w\.]+)/i,
              ],
              [p, v],
              [/\bgsa\/([\w\.]+) .*safari\//i],
              [v, [p, "GSA"]],
              [/headlesschrome(?:\/([\w\.]+)| )/i],
              [v, [p, Q + " Headless"]],
              [/ wv\).+(chrome)\/([\w\.]+)/i],
              [[p, Q + " WebView"], v],
              [/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],
              [v, [p, "Android " + U]],
              [/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],
              [p, v],
              [/version\/([\w\.]+) .*mobile\/\w+ (safari)/i],
              [v, [p, "Mobile Safari"]],
              [/version\/([\w\.]+) .*(mobile ?safari|safari)/i],
              [v, p],
              [/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],
              [p, [v, $, ee]],
              [/(webkit|khtml)\/([\w\.]+)/i],
              [p, v],
              [/(navigator|netscape\d?)\/([-\w\.]+)/i],
              [[p, "Netscape"], v],
              [/mobile vr; rv:([\w\.]+)\).+firefox/i],
              [v, [p, I + " Reality"]],
              [
                /ekiohf.+(flow)\/([\w\.]+)/i,
                /(swiftfox)/i,
                /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i,
                /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,
                /(firefox)\/([\w\.]+)/i,
                /(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,
                /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,
                /(links) \(([\w\.]+)/i,
              ],
              [p, v],
            ],
            cpu: [
              [/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i],
              [[y, "amd64"]],
              [/(ia32(?=;))/i],
              [[y, Y]],
              [/((?:i[346]|x)86)[;\)]/i],
              [[y, "ia32"]],
              [/\b(aarch64|arm(v?8e?l?|_?64))\b/i],
              [[y, "arm64"]],
              [/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],
              [[y, "armhf"]],
              [/windows (ce|mobile); ppc;/i],
              [[y, "arm"]],
              [/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],
              [[y, /ower/, a, Y]],
              [/(sun4\w)[;\)]/i],
              [[y, "sparc"]],
              [
                /((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i,
              ],
              [[y, Y]],
            ],
            device: [
              [
                /\b(sch-i[89]0\d|shw-m380s|sm-[pt]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i,
              ],
              [d, [m, k], [g, b]],
              [
                /\b((?:s[cgp]h|gt|sm)-\w+|galaxy nexus)/i,
                /samsung[- ]([-\w]+)/i,
                /sec-(sgh\w+)/i,
              ],
              [d, [m, k], [g, B]],
              [/\((ip(?:hone|od)[\w ]*);/i],
              [d, [m, S], [g, B]],
              [
                /\((ipad);[-\w\),; ]+apple/i,
                /applecoremedia\/[\w\.]+ \((ipad)/i,
                /\b(ipad)\d\d?,\d\d?[;\]].+ios/i,
              ],
              [d, [m, S], [g, b]],
              [/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],
              [d, [m, O], [g, b]],
              [
                /(?:huawei|honor)([-\w ]+)[;\)]/i,
                /\b(nexus 6p|\w{2,4}-[atu]?[ln][01259x][012359][an]?)\b(?!.+d\/s)/i,
              ],
              [d, [m, O], [g, B]],
              [
                /\b(poco[\w ]+)(?: bui|\))/i,
                /\b; (\w+) build\/hm\1/i,
                /\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,
                /\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,
                /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i,
              ],
              [
                [d, /_/g, " "],
                [m, V],
                [g, B],
              ],
              [/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],
              [
                [d, /_/g, " "],
                [m, V],
                [g, b],
              ],
              [
                /; (\w+) bui.+ oppo/i,
                /\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i,
              ],
              [d, [m, "OPPO"], [g, B]],
              [/vivo (\w+)(?: bui|\))/i, /\b(v[12]\d{3}\w?[at])(?: bui|;)/i],
              [d, [m, "Vivo"], [g, B]],
              [/\b(rmx[12]\d{3})(?: bui|;|\))/i],
              [d, [m, "Realme"], [g, B]],
              [
                /\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,
                /\bmot(?:orola)?[- ](\w*)/i,
                /((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i,
              ],
              [d, [m, D], [g, B]],
              [/\b(mz60\d|xoom[2 ]{0,2}) build\//i],
              [d, [m, D], [g, b]],
              [/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],
              [d, [m, R], [g, b]],
              [
                /(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,
                /\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,
                /\blg-?([\d\w]+) bui/i,
              ],
              [d, [m, R], [g, B]],
              [
                /(ideatab[-\w ]+)/i,
                /lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i,
              ],
              [d, [m, "Lenovo"], [g, b]],
              [/(?:maemo|nokia).*(n900|lumia \d+)/i, /nokia[-_ ]?([-\w\.]*)/i],
              [
                [d, /_/g, " "],
                [m, "Nokia"],
                [g, B],
              ],
              [/(pixel c)\b/i],
              [d, [m, H], [g, b]],
              [/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],
              [d, [m, H], [g, B]],
              [
                /droid.+ ([c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i,
              ],
              [d, [m, G], [g, B]],
              [/sony tablet [ps]/i, /\b(?:sony)?sgp\w+(?: bui|\))/i],
              [
                [d, "Xperia Tablet"],
                [m, G],
                [g, b],
              ],
              [
                / (kb2005|in20[12]5|be20[12][59])\b/i,
                /(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i,
              ],
              [d, [m, "OnePlus"], [g, B]],
              [
                /(alexa)webm/i,
                /(kf[a-z]{2}wi)( bui|\))/i,
                /(kf[a-z]+)( bui|\)).+silk\//i,
              ],
              [d, [m, M], [g, b]],
              [/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],
              [
                [d, /(.+)/g, "Fire Phone $1"],
                [m, M],
                [g, B],
              ],
              [/(playbook);[-\w\),; ]+(rim)/i],
              [d, m, [g, b]],
              [/\b((?:bb[a-f]|st[hv])100-\d)/i, /\(bb10; (\w+)/i],
              [d, [m, T], [g, B]],
              [
                /(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i,
              ],
              [d, [m, F], [g, b]],
              [/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],
              [d, [m, F], [g, B]],
              [/(nexus 9)/i],
              [d, [m, "HTC"], [g, b]],
              [
                /(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,
                /(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,
                /(alcatel|geeksphone|nexian|panasonic|sony)[-_ ]?([-\w]*)/i,
              ],
              [m, [d, /_/g, " "], [g, B]],
              [/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],
              [d, [m, "Acer"], [g, b]],
              [/droid.+; (m[1-5] note) bui/i, /\bmz-([-\w]{2,})/i],
              [d, [m, "Meizu"], [g, B]],
              [/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],
              [d, [m, "Sharp"], [g, B]],
              [
                /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i,
                /(hp) ([\w ]+\w)/i,
                /(asus)-?(\w+)/i,
                /(microsoft); (lumia[\w ]+)/i,
                /(lenovo)[-_ ]?([-\w]+)/i,
                /(jolla)/i,
                /(oppo) ?([\w ]+) bui/i,
              ],
              [m, d, [g, B]],
              [
                /(archos) (gamepad2?)/i,
                /(hp).+(touchpad(?!.+tablet)|tablet)/i,
                /(kindle)\/([\w\.]+)/i,
                /(nook)[\w ]+build\/(\w+)/i,
                /(dell) (strea[kpr\d ]*[\dko])/i,
                /(le[- ]+pan)[- ]+(\w{1,9}) bui/i,
                /(trinity)[- ]*(t\d{3}) bui/i,
                /(gigaset)[- ]+(q\w{1,9}) bui/i,
                /(vodafone) ([\w ]+)(?:\)| bui)/i,
              ],
              [m, d, [g, b]],
              [/(surface duo)/i],
              [d, [m, P], [g, b]],
              [/droid [\d\.]+; (fp\du?)(?: b|\))/i],
              [d, [m, "Fairphone"], [g, B]],
              [/(u304aa)/i],
              [d, [m, "AT&T"], [g, B]],
              [/\bsie-(\w*)/i],
              [d, [m, "Siemens"], [g, B]],
              [/\b(rct\w+) b/i],
              [d, [m, "RCA"], [g, b]],
              [/\b(venue[\d ]{2,7}) b/i],
              [d, [m, "Dell"], [g, b]],
              [/\b(q(?:mv|ta)\w+) b/i],
              [d, [m, "Verizon"], [g, b]],
              [/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],
              [d, [m, "Barnes & Noble"], [g, b]],
              [/\b(tm\d{3}\w+) b/i],
              [d, [m, "NuVision"], [g, b]],
              [/\b(k88) b/i],
              [d, [m, "ZTE"], [g, b]],
              [/\b(nx\d{3}j) b/i],
              [d, [m, "ZTE"], [g, B]],
              [/\b(gen\d{3}) b.+49h/i],
              [d, [m, "Swiss"], [g, B]],
              [/\b(zur\d{3}) b/i],
              [d, [m, "Swiss"], [g, b]],
              [/\b((zeki)?tb.*\b) b/i],
              [d, [m, "Zeki"], [g, b]],
              [/\b([yr]\d{2}) b/i, /\b(dragon[- ]+touch |dt)(\w{5}) b/i],
              [[m, "Dragon Touch"], d, [g, b]],
              [/\b(ns-?\w{0,9}) b/i],
              [d, [m, "Insignia"], [g, b]],
              [/\b((nxa|next)-?\w{0,9}) b/i],
              [d, [m, "NextBook"], [g, b]],
              [/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],
              [[m, "Voice"], d, [g, B]],
              [/\b(lvtel\-)?(v1[12]) b/i],
              [[m, "LvTel"], d, [g, B]],
              [/\b(ph-1) /i],
              [d, [m, "Essential"], [g, B]],
              [/\b(v(100md|700na|7011|917g).*\b) b/i],
              [d, [m, "Envizen"], [g, b]],
              [/\b(trio[-\w\. ]+) b/i],
              [d, [m, "MachSpeed"], [g, b]],
              [/\btu_(1491) b/i],
              [d, [m, "Rotor"], [g, b]],
              [/(shield[\w ]+) b/i],
              [d, [m, "Nvidia"], [g, b]],
              [/(sprint) (\w+)/i],
              [m, d, [g, B]],
              [/(kin\.[onetw]{3})/i],
              [
                [d, /\./g, " "],
                [m, P],
                [g, B],
              ],
              [/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],
              [d, [m, z], [g, b]],
              [/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],
              [d, [m, z], [g, B]],
              [/(ouya)/i, /(nintendo) ([wids3utch]+)/i],
              [m, d, [g, w]],
              [/droid.+; (shield) bui/i],
              [d, [m, "Nvidia"], [g, w]],
              [/(playstation [345portablevi]+)/i],
              [d, [m, G], [g, w]],
              [/\b(xbox(?: one)?(?!; xbox))[\); ]/i],
              [d, [m, P], [g, w]],
              [/smart-tv.+(samsung)/i],
              [m, [g, _]],
              [/hbbtv.+maple;(\d+)/i],
              [
                [d, /^/, "SmartTV"],
                [m, k],
                [g, _],
              ],
              [/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],
              [
                [m, R],
                [g, _],
              ],
              [/(apple) ?tv/i],
              [m, [d, S + " TV"], [g, _]],
              [/crkey/i],
              [
                [d, Q + "cast"],
                [m, H],
                [g, _],
              ],
              [/droid.+aft(\w)( bui|\))/i],
              [d, [m, M], [g, _]],
              [/\(dtv[\);].+(aquos)/i],
              [d, [m, "Sharp"], [g, _]],
              [
                /\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,
                /hbbtv\/\d+\.\d+\.\d+ +\([\w ]*; *(\w[^;]*);([^;]*)/i,
              ],
              [
                [m, q],
                [d, q],
                [g, _],
              ],
              [/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],
              [[g, _]],
              [/((pebble))app/i],
              [m, d, [g, x]],
              [/droid.+; (glass) \d/i],
              [d, [m, H], [g, x]],
              [/droid.+; (wt63?0{2,3})\)/i],
              [d, [m, z], [g, x]],
              [/(quest( 2)?)/i],
              [d, [m, j], [g, x]],
              [/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],
              [m, [g, C]],
              [/droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i],
              [d, [g, B]],
              [/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],
              [d, [g, b]],
              [/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],
              [[g, b]],
              [/(phone|mobile(?:[;\/]| safari)|pda(?=.+windows ce))/i],
              [[g, B]],
              [/(android[-\w\. ]{0,9});.+buil/i],
              [d, [m, "Generic"]],
            ],
            engine: [
              [/windows.+ edge\/([\w\.]+)/i],
              [v, [p, L + "HTML"]],
              [/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],
              [v, [p, "Blink"]],
              [
                /(presto)\/([\w\.]+)/i,
                /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,
                /ekioh(flow)\/([\w\.]+)/i,
                /(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,
                /(icab)[\/ ]([23]\.[\d\.]+)/i,
              ],
              [p, v],
              [/rv\:([\w\.]{1,9})\b.+(gecko)/i],
              [v, p],
            ],
            os: [
              [/microsoft (windows) (vista|xp)/i],
              [p, v],
              [
                /(windows) nt 6\.2; (arm)/i,
                /(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i,
                /(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i,
              ],
              [p, [v, $, te]],
              [/(win(?=3|9|n)|win 9x )([nt\d\.]+)/i],
              [
                [p, "Windows"],
                [v, $, te],
              ],
              [
                /ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,
                /cfnetwork\/.+darwin/i,
              ],
              [
                [v, /_/g, "."],
                [p, "iOS"],
              ],
              [
                /(mac os x) ?([\w\. ]*)/i,
                /(macintosh|mac_powerpc\b)(?!.+haiku)/i,
              ],
              [
                [p, "Mac OS"],
                [v, /_/g, "."],
              ],
              [/droid ([\w\.]+)\b.+(android[- ]x86)/i],
              [v, p],
              [
                /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,
                /(blackberry)\w*\/([\w\.]*)/i,
                /(tizen|kaios)[\/ ]([\w\.]+)/i,
                /\((series40);/i,
              ],
              [p, v],
              [/\(bb(10);/i],
              [v, [p, T]],
              [/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],
              [v, [p, "Symbian"]],
              [
                /mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i,
              ],
              [v, [p, I + " OS"]],
              [/web0s;.+rt(tv)/i, /\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],
              [v, [p, "webOS"]],
              [/crkey\/([\d\.]+)/i],
              [v, [p, Q + "cast"]],
              [/(cros) [\w]+ ([\w\.]+\w)/i],
              [[p, "Chromium OS"], v],
              [
                /(nintendo|playstation) ([wids345portablevuch]+)/i,
                /(xbox); +xbox ([^\);]+)/i,
                /\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,
                /(mint)[\/\(\) ]?(\w*)/i,
                /(mageia|vectorlinux)[; ]/i,
                /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,
                /(hurd|linux) ?([\w\.]*)/i,
                /(gnu) ?([\w\.]*)/i,
                /\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,
                /(haiku) (\w+)/i,
              ],
              [p, v],
              [/(sunos) ?([\w\.\d]*)/i],
              [[p, "Solaris"], v],
              [
                /((?:open)?solaris)[-\/ ]?([\w\.]*)/i,
                /(aix) ((\d)(?=\.|\)| )[\w\.])*/i,
                /\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux)/i,
                /(unix) ?([\w\.]*)/i,
              ],
              [p, v],
            ],
          },
          re = function (e, t) {
            if ((typeof e === l && ((t = e), (e = A)), !(this instanceof re)))
              return new re(e, t).getResult();
            var n =
                e ||
                (typeof i !== u && i.navigator && i.navigator.userAgent
                  ? i.navigator.userAgent
                  : a),
              r = t ? K(ne, t) : ne;
            return (
              (this.getBrowser = function () {
                var e = {};
                return (
                  (e[p] = A),
                  (e[v] = A),
                  Z.call(e, n, r.browser),
                  (e.major = J(e.version)),
                  e
                );
              }),
              (this.getCPU = function () {
                var e = {};
                return ((e[y] = A), Z.call(e, n, r.cpu), e);
              }),
              (this.getDevice = function () {
                var e = {};
                return (
                  (e[m] = A),
                  (e[d] = A),
                  (e[g] = A),
                  Z.call(e, n, r.device),
                  e
                );
              }),
              (this.getEngine = function () {
                var e = {};
                return ((e[p] = A), (e[v] = A), Z.call(e, n, r.engine), e);
              }),
              (this.getOS = function () {
                var e = {};
                return ((e[p] = A), (e[v] = A), Z.call(e, n, r.os), e);
              }),
              (this.getResult = function () {
                return {
                  ua: this.getUA(),
                  browser: this.getBrowser(),
                  engine: this.getEngine(),
                  os: this.getOS(),
                  device: this.getDevice(),
                  cpu: this.getCPU(),
                };
              }),
              (this.getUA = function () {
                return n;
              }),
              (this.setUA = function (e) {
                return (
                  (n = typeof e === h && e.length > E ? q(e, E) : e),
                  this
                );
              }),
              this.setUA(n),
              this
            );
          };
        ((re.VERSION = o),
          (re.BROWSER = W([p, v, f])),
          (re.CPU = W([y])),
          (re.DEVICE = W([d, m, g, w, B, _, b, x, C])),
          (re.ENGINE = re.OS = W([p, v])),
          typeof t !== u
            ? (typeof e !== u && e.exports && (t = e.exports = re),
              (t.UAParser = re))
            : "function" === c && n("3c35")
              ? ((r = function () {
                  return re;
                }.call(t, n, t, e)),
                r === A || (e.exports = r))
              : typeof i !== u && (i.UAParser = re));
        var ie = typeof i !== u && (i.jQuery || i.Zepto);
        if (ie && !ie.ua) {
          var Ae = new re();
          ((ie.ua = Ae.getResult()),
            (ie.ua.get = function () {
              return Ae.getUA();
            }),
            (ie.ua.set = function (e) {
              Ae.setUA(e);
              var t = Ae.getResult();
              for (var n in t) ie.ua[n] = t[n];
            }));
        }
      })("object" === typeof window ? window : this);
    },
    "2ba4": function (e, t, n) {
      var r = n("40d5"),
        i = Function.prototype,
        A = i.apply,
        o = i.call;
      e.exports =
        ("object" == typeof Reflect && Reflect.apply) ||
        (r
          ? o.bind(A)
          : function () {
              return o.apply(A, arguments);
            });
    },
    "2ccc": function (e, t, n) {
      n("1b1e")("Float32", 4, function (e) {
        return function (t, n, r) {
          return e(this, t, n, r);
        };
      });
    },
    "2ce8": function (e, t) {
      e.exports = function (e) {
        if ("function" != typeof e) throw TypeError(e + " is not a function!");
        return e;
      };
    },
    "2d00": function (e, t, n) {
      var r,
        i,
        A = n("da84"),
        o = n("342f"),
        a = A.process,
        s = A.Deno,
        c = (a && a.versions) || (s && s.version),
        u = c && c.v8;
      (u &&
        ((r = u.split(".")), (i = r[0] > 0 && r[0] < 4 ? 1 : +(r[0] + r[1]))),
        !i &&
          o &&
          ((r = o.match(/Edge\/(\d+)/)),
          (!r || r[1] >= 74) &&
            ((r = o.match(/Chrome\/(\d+)/)), r && (i = +r[1]))),
        (e.exports = i));
    },
    "2d5b": function (e, t) {
      e.exports = function (e) {
        try {
          return { e: !1, v: e() };
        } catch (t) {
          return { e: !0, v: t };
        }
      };
    },
    "2f62": function (e, t, n) {
      "use strict";
      (function (e) {
        /*!
         * vuex v3.6.2
         * (c) 2021 Evan You
         * @license MIT
         */
        function n(e) {
          var t = Number(e.version.split(".")[0]);
          if (t >= 2) e.mixin({ beforeCreate: r });
          else {
            var n = e.prototype._init;
            e.prototype._init = function (e) {
              (void 0 === e && (e = {}),
                (e.init = e.init ? [r].concat(e.init) : r),
                n.call(this, e));
            };
          }
          function r() {
            var e = this.$options;
            e.store
              ? (this.$store =
                  "function" === typeof e.store ? e.store() : e.store)
              : e.parent && e.parent.$store && (this.$store = e.parent.$store);
          }
        }
        var r =
            "undefined" !== typeof window
              ? window
              : "undefined" !== typeof e
                ? e
                : {},
          i = r.__VUE_DEVTOOLS_GLOBAL_HOOK__;
        function A(e) {
          i &&
            ((e._devtoolHook = i),
            i.emit("vuex:init", e),
            i.on("vuex:travel-to-state", function (t) {
              e.replaceState(t);
            }),
            e.subscribe(
              function (e, t) {
                i.emit("vuex:mutation", e, t);
              },
              { prepend: !0 },
            ),
            e.subscribeAction(
              function (e, t) {
                i.emit("vuex:action", e, t);
              },
              { prepend: !0 },
            ));
        }
        function o(e, t) {
          return e.filter(t)[0];
        }
        function a(e, t) {
          if ((void 0 === t && (t = []), null === e || "object" !== typeof e))
            return e;
          var n = o(t, function (t) {
            return t.original === e;
          });
          if (n) return n.copy;
          var r = Array.isArray(e) ? [] : {};
          return (
            t.push({ original: e, copy: r }),
            Object.keys(e).forEach(function (n) {
              r[n] = a(e[n], t);
            }),
            r
          );
        }
        function s(e, t) {
          Object.keys(e).forEach(function (n) {
            return t(e[n], n);
          });
        }
        function c(e) {
          return null !== e && "object" === typeof e;
        }
        function u(e) {
          return e && "function" === typeof e.then;
        }
        function l(e, t) {
          return function () {
            return e(t);
          };
        }
        var h = function (e, t) {
            ((this.runtime = t),
              (this._children = Object.create(null)),
              (this._rawModule = e));
            var n = e.state;
            this.state = ("function" === typeof n ? n() : n) || {};
          },
          f = { namespaced: { configurable: !0 } };
        ((f.namespaced.get = function () {
          return !!this._rawModule.namespaced;
        }),
          (h.prototype.addChild = function (e, t) {
            this._children[e] = t;
          }),
          (h.prototype.removeChild = function (e) {
            delete this._children[e];
          }),
          (h.prototype.getChild = function (e) {
            return this._children[e];
          }),
          (h.prototype.hasChild = function (e) {
            return e in this._children;
          }),
          (h.prototype.update = function (e) {
            ((this._rawModule.namespaced = e.namespaced),
              e.actions && (this._rawModule.actions = e.actions),
              e.mutations && (this._rawModule.mutations = e.mutations),
              e.getters && (this._rawModule.getters = e.getters));
          }),
          (h.prototype.forEachChild = function (e) {
            s(this._children, e);
          }),
          (h.prototype.forEachGetter = function (e) {
            this._rawModule.getters && s(this._rawModule.getters, e);
          }),
          (h.prototype.forEachAction = function (e) {
            this._rawModule.actions && s(this._rawModule.actions, e);
          }),
          (h.prototype.forEachMutation = function (e) {
            this._rawModule.mutations && s(this._rawModule.mutations, e);
          }),
          Object.defineProperties(h.prototype, f));
        var d = function (e) {
          this.register([], e, !1);
        };
        function p(e, t, n) {
          if ((t.update(n), n.modules))
            for (var r in n.modules) {
              if (!t.getChild(r)) return void 0;
              p(e.concat(r), t.getChild(r), n.modules[r]);
            }
        }
        ((d.prototype.get = function (e) {
          return e.reduce(function (e, t) {
            return e.getChild(t);
          }, this.root);
        }),
          (d.prototype.getNamespace = function (e) {
            var t = this.root;
            return e.reduce(function (e, n) {
              return ((t = t.getChild(n)), e + (t.namespaced ? n + "/" : ""));
            }, "");
          }),
          (d.prototype.update = function (e) {
            p([], this.root, e);
          }),
          (d.prototype.register = function (e, t, n) {
            var r = this;
            void 0 === n && (n = !0);
            var i = new h(t, n);
            if (0 === e.length) this.root = i;
            else {
              var A = this.get(e.slice(0, -1));
              A.addChild(e[e.length - 1], i);
            }
            t.modules &&
              s(t.modules, function (t, i) {
                r.register(e.concat(i), t, n);
              });
          }),
          (d.prototype.unregister = function (e) {
            var t = this.get(e.slice(0, -1)),
              n = e[e.length - 1],
              r = t.getChild(n);
            r && r.runtime && t.removeChild(n);
          }),
          (d.prototype.isRegistered = function (e) {
            var t = this.get(e.slice(0, -1)),
              n = e[e.length - 1];
            return !!t && t.hasChild(n);
          }));
        var g;
        var m = function (e) {
            var t = this;
            (void 0 === e && (e = {}),
              !g &&
                "undefined" !== typeof window &&
                window.Vue &&
                U(window.Vue));
            var n = e.plugins;
            void 0 === n && (n = []);
            var r = e.strict;
            (void 0 === r && (r = !1),
              (this._committing = !1),
              (this._actions = Object.create(null)),
              (this._actionSubscribers = []),
              (this._mutations = Object.create(null)),
              (this._wrappedGetters = Object.create(null)),
              (this._modules = new d(e)),
              (this._modulesNamespaceMap = Object.create(null)),
              (this._subscribers = []),
              (this._watcherVM = new g()),
              (this._makeLocalGettersCache = Object.create(null)));
            var i = this,
              o = this,
              a = o.dispatch,
              s = o.commit;
            ((this.dispatch = function (e, t) {
              return a.call(i, e, t);
            }),
              (this.commit = function (e, t, n) {
                return s.call(i, e, t, n);
              }),
              (this.strict = r));
            var c = this._modules.root.state;
            (b(this, c, [], this._modules.root),
              B(this, c),
              n.forEach(function (e) {
                return e(t);
              }));
            var u = void 0 !== e.devtools ? e.devtools : g.config.devtools;
            u && A(this);
          },
          v = { state: { configurable: !0 } };
        function y(e, t, n) {
          return (
            t.indexOf(e) < 0 && (n && n.prepend ? t.unshift(e) : t.push(e)),
            function () {
              var n = t.indexOf(e);
              n > -1 && t.splice(n, 1);
            }
          );
        }
        function w(e, t) {
          ((e._actions = Object.create(null)),
            (e._mutations = Object.create(null)),
            (e._wrappedGetters = Object.create(null)),
            (e._modulesNamespaceMap = Object.create(null)));
          var n = e.state;
          (b(e, n, [], e._modules.root, !0), B(e, n, t));
        }
        function B(e, t, n) {
          var r = e._vm;
          ((e.getters = {}), (e._makeLocalGettersCache = Object.create(null)));
          var i = e._wrappedGetters,
            A = {};
          s(i, function (t, n) {
            ((A[n] = l(t, e)),
              Object.defineProperty(e.getters, n, {
                get: function () {
                  return e._vm[n];
                },
                enumerable: !0,
              }));
          });
          var o = g.config.silent;
          ((g.config.silent = !0),
            (e._vm = new g({ data: { $$state: t }, computed: A })),
            (g.config.silent = o),
            e.strict && S(e),
            r &&
              (n &&
                e._withCommit(function () {
                  r._data.$$state = null;
                }),
              g.nextTick(function () {
                return r.$destroy();
              })));
        }
        function b(e, t, n, r, i) {
          var A = !n.length,
            o = e._modules.getNamespace(n);
          if (
            (r.namespaced &&
              (e._modulesNamespaceMap[o], (e._modulesNamespaceMap[o] = r)),
            !A && !i)
          ) {
            var a = F(t, n.slice(0, -1)),
              s = n[n.length - 1];
            e._withCommit(function () {
              g.set(a, s, r.state);
            });
          }
          var c = (r.context = _(e, o, n));
          (r.forEachMutation(function (t, n) {
            var r = o + n;
            C(e, r, t, c);
          }),
            r.forEachAction(function (t, n) {
              var r = t.root ? n : o + n,
                i = t.handler || t;
              E(e, r, i, c);
            }),
            r.forEachGetter(function (t, n) {
              var r = o + n;
              M(e, r, t, c);
            }),
            r.forEachChild(function (r, A) {
              b(e, t, n.concat(A), r, i);
            }));
        }
        function _(e, t, n) {
          var r = "" === t,
            i = {
              dispatch: r
                ? e.dispatch
                : function (n, r, i) {
                    var A = T(n, r, i),
                      o = A.payload,
                      a = A.options,
                      s = A.type;
                    return ((a && a.root) || (s = t + s), e.dispatch(s, o));
                  },
              commit: r
                ? e.commit
                : function (n, r, i) {
                    var A = T(n, r, i),
                      o = A.payload,
                      a = A.options,
                      s = A.type;
                    ((a && a.root) || (s = t + s), e.commit(s, o, a));
                  },
            };
          return (
            Object.defineProperties(i, {
              getters: {
                get: r
                  ? function () {
                      return e.getters;
                    }
                  : function () {
                      return x(e, t);
                    },
              },
              state: {
                get: function () {
                  return F(e.state, n);
                },
              },
            }),
            i
          );
        }
        function x(e, t) {
          if (!e._makeLocalGettersCache[t]) {
            var n = {},
              r = t.length;
            (Object.keys(e.getters).forEach(function (i) {
              if (i.slice(0, r) === t) {
                var A = i.slice(r);
                Object.defineProperty(n, A, {
                  get: function () {
                    return e.getters[i];
                  },
                  enumerable: !0,
                });
              }
            }),
              (e._makeLocalGettersCache[t] = n));
          }
          return e._makeLocalGettersCache[t];
        }
        function C(e, t, n, r) {
          var i = e._mutations[t] || (e._mutations[t] = []);
          i.push(function (t) {
            n.call(e, r.state, t);
          });
        }
        function E(e, t, n, r) {
          var i = e._actions[t] || (e._actions[t] = []);
          i.push(function (t) {
            var i = n.call(
              e,
              {
                dispatch: r.dispatch,
                commit: r.commit,
                getters: r.getters,
                state: r.state,
                rootGetters: e.getters,
                rootState: e.state,
              },
              t,
            );
            return (
              u(i) || (i = Promise.resolve(i)),
              e._devtoolHook
                ? i.catch(function (t) {
                    throw (e._devtoolHook.emit("vuex:error", t), t);
                  })
                : i
            );
          });
        }
        function M(e, t, n, r) {
          e._wrappedGetters[t] ||
            (e._wrappedGetters[t] = function (e) {
              return n(r.state, r.getters, e.state, e.getters);
            });
        }
        function S(e) {
          e._vm.$watch(
            function () {
              return this._data.$$state;
            },
            function () {
              0;
            },
            { deep: !0, sync: !0 },
          );
        }
        function F(e, t) {
          return t.reduce(function (e, t) {
            return e[t];
          }, e);
        }
        function T(e, t, n) {
          return (
            c(e) && e.type && ((n = t), (t = e), (e = e.type)),
            { type: e, payload: t, options: n }
          );
        }
        function U(e) {
          (g && e === g) || ((g = e), n(g));
        }
        ((v.state.get = function () {
          return this._vm._data.$$state;
        }),
          (v.state.set = function (e) {
            0;
          }),
          (m.prototype.commit = function (e, t, n) {
            var r = this,
              i = T(e, t, n),
              A = i.type,
              o = i.payload,
              a = (i.options, { type: A, payload: o }),
              s = this._mutations[A];
            s &&
              (this._withCommit(function () {
                s.forEach(function (e) {
                  e(o);
                });
              }),
              this._subscribers.slice().forEach(function (e) {
                return e(a, r.state);
              }));
          }),
          (m.prototype.dispatch = function (e, t) {
            var n = this,
              r = T(e, t),
              i = r.type,
              A = r.payload,
              o = { type: i, payload: A },
              a = this._actions[i];
            if (a) {
              try {
                this._actionSubscribers
                  .slice()
                  .filter(function (e) {
                    return e.before;
                  })
                  .forEach(function (e) {
                    return e.before(o, n.state);
                  });
              } catch (c) {
                0;
              }
              var s =
                a.length > 1
                  ? Promise.all(
                      a.map(function (e) {
                        return e(A);
                      }),
                    )
                  : a[0](A);
              return new Promise(function (e, t) {
                s.then(
                  function (t) {
                    try {
                      n._actionSubscribers
                        .filter(function (e) {
                          return e.after;
                        })
                        .forEach(function (e) {
                          return e.after(o, n.state);
                        });
                    } catch (c) {
                      0;
                    }
                    e(t);
                  },
                  function (e) {
                    try {
                      n._actionSubscribers
                        .filter(function (e) {
                          return e.error;
                        })
                        .forEach(function (t) {
                          return t.error(o, n.state, e);
                        });
                    } catch (c) {
                      0;
                    }
                    t(e);
                  },
                );
              });
            }
          }),
          (m.prototype.subscribe = function (e, t) {
            return y(e, this._subscribers, t);
          }),
          (m.prototype.subscribeAction = function (e, t) {
            var n = "function" === typeof e ? { before: e } : e;
            return y(n, this._actionSubscribers, t);
          }),
          (m.prototype.watch = function (e, t, n) {
            var r = this;
            return this._watcherVM.$watch(
              function () {
                return e(r.state, r.getters);
              },
              t,
              n,
            );
          }),
          (m.prototype.replaceState = function (e) {
            var t = this;
            this._withCommit(function () {
              t._vm._data.$$state = e;
            });
          }),
          (m.prototype.registerModule = function (e, t, n) {
            (void 0 === n && (n = {}),
              "string" === typeof e && (e = [e]),
              this._modules.register(e, t),
              b(this, this.state, e, this._modules.get(e), n.preserveState),
              B(this, this.state));
          }),
          (m.prototype.unregisterModule = function (e) {
            var t = this;
            ("string" === typeof e && (e = [e]),
              this._modules.unregister(e),
              this._withCommit(function () {
                var n = F(t.state, e.slice(0, -1));
                g.delete(n, e[e.length - 1]);
              }),
              w(this));
          }),
          (m.prototype.hasModule = function (e) {
            return (
              "string" === typeof e && (e = [e]),
              this._modules.isRegistered(e)
            );
          }),
          (m.prototype.hotUpdate = function (e) {
            (this._modules.update(e), w(this, !0));
          }),
          (m.prototype._withCommit = function (e) {
            var t = this._committing;
            ((this._committing = !0), e(), (this._committing = t));
          }),
          Object.defineProperties(m.prototype, v));
        var Q = D(function (e, t) {
            var n = {};
            return (
              R(t).forEach(function (t) {
                var r = t.key,
                  i = t.val;
                ((n[r] = function () {
                  var t = this.$store.state,
                    n = this.$store.getters;
                  if (e) {
                    var r = N(this.$store, "mapState", e);
                    if (!r) return;
                    ((t = r.context.state), (n = r.context.getters));
                  }
                  return "function" === typeof i ? i.call(this, t, n) : t[i];
                }),
                  (n[r].vuex = !0));
              }),
              n
            );
          }),
          L = D(function (e, t) {
            var n = {};
            return (
              R(t).forEach(function (t) {
                var r = t.key,
                  i = t.val;
                n[r] = function () {
                  var t = [],
                    n = arguments.length;
                  while (n--) t[n] = arguments[n];
                  var r = this.$store.commit;
                  if (e) {
                    var A = N(this.$store, "mapMutations", e);
                    if (!A) return;
                    r = A.context.commit;
                  }
                  return "function" === typeof i
                    ? i.apply(this, [r].concat(t))
                    : r.apply(this.$store, [i].concat(t));
                };
              }),
              n
            );
          }),
          I = D(function (e, t) {
            var n = {};
            return (
              R(t).forEach(function (t) {
                var r = t.key,
                  i = t.val;
                ((i = e + i),
                  (n[r] = function () {
                    if (!e || N(this.$store, "mapGetters", e))
                      return this.$store.getters[i];
                  }),
                  (n[r].vuex = !0));
              }),
              n
            );
          }),
          H = D(function (e, t) {
            var n = {};
            return (
              R(t).forEach(function (t) {
                var r = t.key,
                  i = t.val;
                n[r] = function () {
                  var t = [],
                    n = arguments.length;
                  while (n--) t[n] = arguments[n];
                  var r = this.$store.dispatch;
                  if (e) {
                    var A = N(this.$store, "mapActions", e);
                    if (!A) return;
                    r = A.context.dispatch;
                  }
                  return "function" === typeof i
                    ? i.apply(this, [r].concat(t))
                    : r.apply(this.$store, [i].concat(t));
                };
              }),
              n
            );
          }),
          O = function (e) {
            return {
              mapState: Q.bind(null, e),
              mapGetters: I.bind(null, e),
              mapMutations: L.bind(null, e),
              mapActions: H.bind(null, e),
            };
          };
        function R(e) {
          return P(e)
            ? Array.isArray(e)
              ? e.map(function (e) {
                  return { key: e, val: e };
                })
              : Object.keys(e).map(function (t) {
                  return { key: t, val: e[t] };
                })
            : [];
        }
        function P(e) {
          return Array.isArray(e) || c(e);
        }
        function D(e) {
          return function (t, n) {
            return (
              "string" !== typeof t
                ? ((n = t), (t = ""))
                : "/" !== t.charAt(t.length - 1) && (t += "/"),
              e(t, n)
            );
          };
        }
        function N(e, t, n) {
          var r = e._modulesNamespaceMap[n];
          return r;
        }
        function k(e) {
          void 0 === e && (e = {});
          var t = e.collapsed;
          void 0 === t && (t = !0);
          var n = e.filter;
          void 0 === n &&
            (n = function (e, t, n) {
              return !0;
            });
          var r = e.transformer;
          void 0 === r &&
            (r = function (e) {
              return e;
            });
          var i = e.mutationTransformer;
          void 0 === i &&
            (i = function (e) {
              return e;
            });
          var A = e.actionFilter;
          void 0 === A &&
            (A = function (e, t) {
              return !0;
            });
          var o = e.actionTransformer;
          void 0 === o &&
            (o = function (e) {
              return e;
            });
          var s = e.logMutations;
          void 0 === s && (s = !0);
          var c = e.logActions;
          void 0 === c && (c = !0);
          var u = e.logger;
          return (
            void 0 === u && (u = console),
            function (e) {
              var l = a(e.state);
              "undefined" !== typeof u &&
                (s &&
                  e.subscribe(function (e, A) {
                    var o = a(A);
                    if (n(e, l, o)) {
                      var s = z(),
                        c = i(e),
                        h = "mutation " + e.type + s;
                      (G(u, h, t),
                        u.log(
                          "%c prev state",
                          "color: #9E9E9E; font-weight: bold",
                          r(l),
                        ),
                        u.log(
                          "%c mutation",
                          "color: #03A9F4; font-weight: bold",
                          c,
                        ),
                        u.log(
                          "%c next state",
                          "color: #4CAF50; font-weight: bold",
                          r(o),
                        ),
                        V(u));
                    }
                    l = o;
                  }),
                c &&
                  e.subscribeAction(function (e, n) {
                    if (A(e, n)) {
                      var r = z(),
                        i = o(e),
                        a = "action " + e.type + r;
                      (G(u, a, t),
                        u.log(
                          "%c action",
                          "color: #03A9F4; font-weight: bold",
                          i,
                        ),
                        V(u));
                    }
                  }));
            }
          );
        }
        function G(e, t, n) {
          var r = n ? e.groupCollapsed : e.group;
          try {
            r.call(e, t);
          } catch (i) {
            e.log(t);
          }
        }
        function V(e) {
          try {
            e.groupEnd();
          } catch (t) {
            e.log("—— log end ——");
          }
        }
        function z() {
          var e = new Date();
          return (
            " @ " +
            K(e.getHours(), 2) +
            ":" +
            K(e.getMinutes(), 2) +
            ":" +
            K(e.getSeconds(), 2) +
            "." +
            K(e.getMilliseconds(), 3)
          );
        }
        function j(e, t) {
          return new Array(t + 1).join(e);
        }
        function K(e, t) {
          return j("0", t - e.toString().length) + e;
        }
        var W = {
          Store: m,
          install: U,
          version: "3.6.2",
          mapState: Q,
          mapMutations: L,
          mapGetters: I,
          mapActions: H,
          createNamespacedHelpers: O,
          createLogger: k,
        };
        t["a"] = W;
      }).call(this, n("c8ba"));
    },
    "2faf": function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("cffc")(5),
        A = "find",
        o = !0;
      (A in [] &&
        Array(1)[A](function () {
          o = !1;
        }),
        r(r.P + r.F * o, "Array", {
          find: function (e) {
            return i(this, e, arguments.length > 1 ? arguments[1] : void 0);
          },
        }),
        n("66b7")(A));
    },
    "2fb2": function (e, t) {
      var n = {}.hasOwnProperty;
      e.exports = function (e, t) {
        return n.call(e, t);
      };
    },
    "30de": function (e, t, n) {
      var r = n("2fb2"),
        i = n("5d6f"),
        A = n("27c4")(!1),
        o = n("964f")("IE_PROTO");
      e.exports = function (e, t) {
        var n,
          a = i(e),
          s = 0,
          c = [];
        for (n in a) n != o && r(a, n) && c.push(n);
        while (t.length > s) r(a, (n = t[s++])) && (~A(c, n) || c.push(n));
        return c;
      };
    },
    3157: function (e, t, n) {
      var r = n("8d87"),
        i = n("f083"),
        A = n("d77f");
      i(i.S, "Reflect", {
        getOwnPropertyDescriptor: function (e, t) {
          return r.f(A(e), t);
        },
      });
    },
    3168: function (e, t, n) {
      n("7bb0")("Map");
    },
    3191: function (e, t, n) {
      (function (t, n) {
        e.exports = n();
      })(0, function () {
        var e = function () {
          function t(e) {
            return (i.appendChild(e.dom), e);
          }
          function n(e) {
            for (var t = 0; t < i.children.length; t++)
              i.children[t].style.display = t === e ? "block" : "none";
            r = e;
          }
          var r = 0,
            i = document.createElement("div");
          ((i.style.cssText =
            "position:fixed;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000"),
            i.addEventListener(
              "click",
              function (e) {
                (e.preventDefault(), n(++r % i.children.length));
              },
              !1,
            ));
          var A = (performance || Date).now(),
            o = A,
            a = 0,
            s = t(new e.Panel("FPS", "#0ff", "#002")),
            c = t(new e.Panel("MS", "#0f0", "#020"));
          if (self.performance && self.performance.memory)
            var u = t(new e.Panel("MB", "#f08", "#201"));
          return (
            n(0),
            {
              REVISION: 16,
              dom: i,
              addPanel: t,
              showPanel: n,
              begin: function () {
                A = (performance || Date).now();
              },
              end: function () {
                a++;
                var e = (performance || Date).now();
                if (
                  (c.update(e - A, 200),
                  e > o + 1e3 &&
                    (s.update((1e3 * a) / (e - o), 100), (o = e), (a = 0), u))
                ) {
                  var t = performance.memory;
                  u.update(
                    t.usedJSHeapSize / 1048576,
                    t.jsHeapSizeLimit / 1048576,
                  );
                }
                return e;
              },
              update: function () {
                A = this.end();
              },
              domElement: i,
              setMode: n,
            }
          );
        };
        return (
          (e.Panel = function (e, t, n) {
            var r = 1 / 0,
              i = 0,
              A = Math.round,
              o = A(window.devicePixelRatio || 1),
              a = 80 * o,
              s = 48 * o,
              c = 3 * o,
              u = 2 * o,
              l = 3 * o,
              h = 15 * o,
              f = 74 * o,
              d = 30 * o,
              p = document.createElement("canvas");
            ((p.width = a),
              (p.height = s),
              (p.style.cssText = "width:80px;height:48px"));
            var g = p.getContext("2d");
            return (
              (g.font = "bold " + 9 * o + "px Helvetica,Arial,sans-serif"),
              (g.textBaseline = "top"),
              (g.fillStyle = n),
              g.fillRect(0, 0, a, s),
              (g.fillStyle = t),
              g.fillText(e, c, u),
              g.fillRect(l, h, f, d),
              (g.fillStyle = n),
              (g.globalAlpha = 0.9),
              g.fillRect(l, h, f, d),
              {
                dom: p,
                update: function (s, m) {
                  ((r = Math.min(r, s)),
                    (i = Math.max(i, s)),
                    (g.fillStyle = n),
                    (g.globalAlpha = 1),
                    g.fillRect(0, 0, a, h),
                    (g.fillStyle = t),
                    g.fillText(
                      A(s) + " " + e + " (" + A(r) + "-" + A(i) + ")",
                      c,
                      u,
                    ),
                    g.drawImage(p, l + o, h, f - o, d, l, h, f - o, d),
                    g.fillRect(l + f - o, h, o, d),
                    (g.fillStyle = n),
                    (g.globalAlpha = 0.9),
                    g.fillRect(l + f - o, h, o, A((1 - s / m) * d)));
                },
              }
            );
          }),
          e
        );
      });
    },
    "33d1": function (e, t, n) {
      "use strict";
      var r = n("23e7"),
        i = n("7b0b"),
        A = n("07fa"),
        o = n("5926"),
        a = n("44d2");
      (r(
        { target: "Array", proto: !0 },
        {
          at: function (e) {
            var t = i(this),
              n = A(t),
              r = o(e),
              a = r >= 0 ? r : n + r;
            return a < 0 || a >= n ? void 0 : t[a];
          },
        },
      ),
        a("at"));
    },
    "342f": function (e, t, n) {
      var r = n("d066");
      e.exports = r("navigator", "userAgent") || "";
    },
    "34ad": function (e, t, n) {
      "use strict";
      n.d(t, "a", function () {
        return i;
      });
      (n("907a"), n("3c5d"), n("fa9e"), n("77d9"), n("d9e2"));
      var r = n("5a89"),
        i = (function () {
          function e(e) {
            (r["I"].call(this, e),
              (this.dracoLoader = null),
              (this.ddsLoader = null));
          }
          function t() {
            var e = {};
            return {
              get: function (t) {
                return e[t];
              },
              add: function (t, n) {
                e[t] = n;
              },
              remove: function (t) {
                delete e[t];
              },
              removeAll: function () {
                e = {};
              },
            };
          }
          e.prototype = Object.assign(Object.create(r["I"].prototype), {
            constructor: e,
            load: function (e, t, n, i) {
              var A,
                o = this;
              ((A =
                "" !== this.resourcePath
                  ? this.resourcePath
                  : "" !== this.path
                    ? this.path
                    : r["J"].extractUrlBase(e)),
                o.manager.itemStart(e));
              var a = function (t) {
                  (i ? i(t) : console.log(t),
                    o.manager.itemError(e),
                    o.manager.itemEnd(e));
                },
                s = new r["p"](o.manager);
              (s.setPath(this.path),
                s.setResponseType("arraybuffer"),
                s.setRequestHeader(this.requestHeader),
                "use-credentials" === o.crossOrigin && s.setWithCredentials(!0),
                s.load(
                  e,
                  function (n) {
                    try {
                      o.parse(
                        n,
                        A,
                        function (n) {
                          (t(n), o.manager.itemEnd(e));
                        },
                        a,
                      );
                    } catch (r) {
                      a(r);
                    }
                  },
                  n,
                  a,
                ));
            },
            setDRACOLoader: function (e) {
              return ((this.dracoLoader = e), this);
            },
            setDDSLoader: function (e) {
              return ((this.ddsLoader = e), this);
            },
            parse: function (e, t, c, u) {
              var d,
                m = {};
              if ("string" === typeof e) d = e;
              else {
                var v = r["J"].decodeText(new Uint8Array(e, 0, 4));
                if (v === s) {
                  try {
                    m[n.KHR_BINARY_GLTF] = new l(e);
                  } catch (x) {
                    return void (u && u(x));
                  }
                  d = m[n.KHR_BINARY_GLTF].content;
                } else d = r["J"].decodeText(new Uint8Array(e));
              }
              var y = JSON.parse(d);
              if (void 0 === y.asset || y.asset.version[0] < 2)
                u &&
                  u(
                    new Error(
                      "THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.",
                    ),
                  );
              else {
                if (y.extensionsUsed)
                  for (var w = 0; w < y.extensionsUsed.length; ++w) {
                    var B = y.extensionsUsed[w],
                      b = y.extensionsRequired || [];
                    switch (B) {
                      case n.KHR_LIGHTS_PUNCTUAL:
                        m[B] = new A(y);
                        break;
                      case n.KHR_MATERIALS_CLEARCOAT:
                        m[B] = new a();
                        break;
                      case n.KHR_MATERIALS_UNLIT:
                        m[B] = new o();
                        break;
                      case n.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:
                        m[B] = new p();
                        break;
                      case n.KHR_DRACO_MESH_COMPRESSION:
                        m[B] = new h(y, this.dracoLoader);
                        break;
                      case n.MSFT_TEXTURE_DDS:
                        m[B] = new i(this.ddsLoader);
                        break;
                      case n.KHR_TEXTURE_TRANSFORM:
                        m[B] = new f();
                        break;
                      case n.KHR_MESH_QUANTIZATION:
                        m[B] = new g();
                        break;
                      default:
                        b.indexOf(B) >= 0 &&
                          console.warn(
                            'THREE.GLTFLoader: Unknown extension "' + B + '".',
                          );
                    }
                  }
                var _ = new O(y, m, {
                  path: t || this.resourcePath || "",
                  crossOrigin: this.crossOrigin,
                  manager: this.manager,
                });
                (_.fileLoader.setRequestHeader(this.requestHeader),
                  _.parse(c, u));
              }
            },
          });
          var n = {
            KHR_BINARY_GLTF: "KHR_binary_glTF",
            KHR_DRACO_MESH_COMPRESSION: "KHR_draco_mesh_compression",
            KHR_LIGHTS_PUNCTUAL: "KHR_lights_punctual",
            KHR_MATERIALS_CLEARCOAT: "KHR_materials_clearcoat",
            KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:
              "KHR_materials_pbrSpecularGlossiness",
            KHR_MATERIALS_UNLIT: "KHR_materials_unlit",
            KHR_TEXTURE_TRANSFORM: "KHR_texture_transform",
            KHR_MESH_QUANTIZATION: "KHR_mesh_quantization",
            MSFT_TEXTURE_DDS: "MSFT_texture_dds",
          };
          function i(e) {
            if (!e)
              throw new Error(
                "THREE.GLTFLoader: Attempting to load .dds texture without importing DDSLoader",
              );
            ((this.name = n.MSFT_TEXTURE_DDS), (this.ddsLoader = e));
          }
          function A(e) {
            this.name = n.KHR_LIGHTS_PUNCTUAL;
            var t = (e.extensions && e.extensions[n.KHR_LIGHTS_PUNCTUAL]) || {};
            this.lightDefs = t.lights || [];
          }
          function o() {
            this.name = n.KHR_MATERIALS_UNLIT;
          }
          function a() {
            this.name = n.KHR_MATERIALS_CLEARCOAT;
          }
          ((A.prototype.loadLight = function (e) {
            var t,
              n = this.lightDefs[e],
              i = new r["j"](16777215);
            void 0 !== n.color && i.fromArray(n.color);
            var A = void 0 !== n.range ? n.range : 0;
            switch (n.type) {
              case "directional":
                ((t = new r["m"](i)),
                  t.target.position.set(0, 0, -1),
                  t.add(t.target));
                break;
              case "point":
                ((t = new r["db"](i)), (t.distance = A));
                break;
              case "spot":
                ((t = new r["wb"](i)),
                  (t.distance = A),
                  (n.spot = n.spot || {}),
                  (n.spot.innerConeAngle =
                    void 0 !== n.spot.innerConeAngle
                      ? n.spot.innerConeAngle
                      : 0),
                  (n.spot.outerConeAngle =
                    void 0 !== n.spot.outerConeAngle
                      ? n.spot.outerConeAngle
                      : Math.PI / 4),
                  (t.angle = n.spot.outerConeAngle),
                  (t.penumbra =
                    1 - n.spot.innerConeAngle / n.spot.outerConeAngle),
                  t.target.position.set(0, 0, -1),
                  t.add(t.target));
                break;
              default:
                throw new Error(
                  'THREE.GLTFLoader: Unexpected light type, "' + n.type + '".',
                );
            }
            return (
              t.position.set(0, 0, 0),
              (t.decay = 2),
              void 0 !== n.intensity && (t.intensity = n.intensity),
              (t.name = n.name || "light_" + e),
              Promise.resolve(t)
            );
          }),
            (o.prototype.getMaterialType = function () {
              return r["P"];
            }),
            (o.prototype.extendParams = function (e, t, n) {
              var i = [];
              ((e.color = new r["j"](1, 1, 1)), (e.opacity = 1));
              var A = t.pbrMetallicRoughness;
              if (A) {
                if (Array.isArray(A.baseColorFactor)) {
                  var o = A.baseColorFactor;
                  (e.color.fromArray(o), (e.opacity = o[3]));
                }
                void 0 !== A.baseColorTexture &&
                  i.push(n.assignTexture(e, "map", A.baseColorTexture));
              }
              return Promise.all(i);
            }),
            (a.prototype.getMaterialType = function () {
              return r["Q"];
            }),
            (a.prototype.extendParams = function (e, t, n) {
              var i = [],
                A = t.extensions[this.name];
              if (
                (void 0 !== A.clearcoatFactor &&
                  (e.clearcoat = A.clearcoatFactor),
                void 0 !== A.clearcoatTexture &&
                  i.push(
                    n.assignTexture(e, "clearcoatMap", A.clearcoatTexture),
                  ),
                void 0 !== A.clearcoatRoughnessFactor &&
                  (e.clearcoatRoughness = A.clearcoatRoughnessFactor),
                void 0 !== A.clearcoatRoughnessTexture &&
                  i.push(
                    n.assignTexture(
                      e,
                      "clearcoatRoughnessMap",
                      A.clearcoatRoughnessTexture,
                    ),
                  ),
                void 0 !== A.clearcoatNormalTexture &&
                  (i.push(
                    n.assignTexture(
                      e,
                      "clearcoatNormalMap",
                      A.clearcoatNormalTexture,
                    ),
                  ),
                  void 0 !== A.clearcoatNormalTexture.scale))
              ) {
                var o = A.clearcoatNormalTexture.scale;
                e.clearcoatNormalScale = new r["Eb"](o, o);
              }
              return Promise.all(i);
            }));
          var s = "glTF",
            c = 12,
            u = { JSON: 1313821514, BIN: 5130562 };
          function l(e) {
            ((this.name = n.KHR_BINARY_GLTF),
              (this.content = null),
              (this.body = null));
            var t = new DataView(e, 0, c);
            if (
              ((this.header = {
                magic: r["J"].decodeText(new Uint8Array(e.slice(0, 4))),
                version: t.getUint32(4, !0),
                length: t.getUint32(8, !0),
              }),
              this.header.magic !== s)
            )
              throw new Error(
                "THREE.GLTFLoader: Unsupported glTF-Binary header.",
              );
            if (this.header.version < 2)
              throw new Error("THREE.GLTFLoader: Legacy binary file detected.");
            var i = new DataView(e, c),
              A = 0;
            while (A < i.byteLength) {
              var o = i.getUint32(A, !0);
              A += 4;
              var a = i.getUint32(A, !0);
              if (((A += 4), a === u.JSON)) {
                var l = new Uint8Array(e, c + A, o);
                this.content = r["J"].decodeText(l);
              } else if (a === u.BIN) {
                var h = c + A;
                this.body = e.slice(h, h + o);
              }
              A += o;
            }
            if (null === this.content)
              throw new Error("THREE.GLTFLoader: JSON content not found.");
          }
          function h(e, t) {
            if (!t)
              throw new Error(
                "THREE.GLTFLoader: No DRACOLoader instance provided.",
              );
            ((this.name = n.KHR_DRACO_MESH_COMPRESSION),
              (this.json = e),
              (this.dracoLoader = t),
              this.dracoLoader.preload());
          }
          function f() {
            this.name = n.KHR_TEXTURE_TRANSFORM;
          }
          function d(e) {
            (r["R"].call(this), (this.isGLTFSpecularGlossinessMaterial = !0));
            var t = [
                "#ifdef USE_SPECULARMAP",
                "\tuniform sampler2D specularMap;",
                "#endif",
              ].join("\n"),
              n = [
                "#ifdef USE_GLOSSINESSMAP",
                "\tuniform sampler2D glossinessMap;",
                "#endif",
              ].join("\n"),
              i = [
                "vec3 specularFactor = specular;",
                "#ifdef USE_SPECULARMAP",
                "\tvec4 texelSpecular = texture2D( specularMap, vUv );",
                "\ttexelSpecular = sRGBToLinear( texelSpecular );",
                "\t// reads channel RGB, compatible with a glTF Specular-Glossiness (RGBA) texture",
                "\tspecularFactor *= texelSpecular.rgb;",
                "#endif",
              ].join("\n"),
              A = [
                "float glossinessFactor = glossiness;",
                "#ifdef USE_GLOSSINESSMAP",
                "\tvec4 texelGlossiness = texture2D( glossinessMap, vUv );",
                "\t// reads channel A, compatible with a glTF Specular-Glossiness (RGBA) texture",
                "\tglossinessFactor *= texelGlossiness.a;",
                "#endif",
              ].join("\n"),
              o = [
                "PhysicalMaterial material;",
                "material.diffuseColor = diffuseColor.rgb;",
                "vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );",
                "float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );",
                "material.specularRoughness = max( 1.0 - glossinessFactor, 0.0525 );// 0.0525 corresponds to the base mip of a 256 cubemap.",
                "material.specularRoughness += geometryRoughness;",
                "material.specularRoughness = min( material.specularRoughness, 1.0 );",
                "material.specularColor = specularFactor.rgb;",
              ].join("\n"),
              a = {
                specular: { value: new r["j"]().setHex(16777215) },
                glossiness: { value: 1 },
                specularMap: { value: null },
                glossinessMap: { value: null },
              };
            ((this._extraUniforms = a),
              (this.onBeforeCompile = function (e) {
                for (var r in a) e.uniforms[r] = a[r];
                ((e.fragmentShader = e.fragmentShader.replace(
                  "uniform float roughness;",
                  "uniform vec3 specular;",
                )),
                  (e.fragmentShader = e.fragmentShader.replace(
                    "uniform float metalness;",
                    "uniform float glossiness;",
                  )),
                  (e.fragmentShader = e.fragmentShader.replace(
                    "#include <roughnessmap_pars_fragment>",
                    t,
                  )),
                  (e.fragmentShader = e.fragmentShader.replace(
                    "#include <metalnessmap_pars_fragment>",
                    n,
                  )),
                  (e.fragmentShader = e.fragmentShader.replace(
                    "#include <roughnessmap_fragment>",
                    i,
                  )),
                  (e.fragmentShader = e.fragmentShader.replace(
                    "#include <metalnessmap_fragment>",
                    A,
                  )),
                  (e.fragmentShader = e.fragmentShader.replace(
                    "#include <lights_physical_fragment>",
                    o,
                  )));
              }),
              Object.defineProperties(this, {
                specular: {
                  get: function () {
                    return a.specular.value;
                  },
                  set: function (e) {
                    a.specular.value = e;
                  },
                },
                specularMap: {
                  get: function () {
                    return a.specularMap.value;
                  },
                  set: function (e) {
                    a.specularMap.value = e;
                  },
                },
                glossiness: {
                  get: function () {
                    return a.glossiness.value;
                  },
                  set: function (e) {
                    a.glossiness.value = e;
                  },
                },
                glossinessMap: {
                  get: function () {
                    return a.glossinessMap.value;
                  },
                  set: function (e) {
                    ((a.glossinessMap.value = e),
                      e
                        ? ((this.defines.USE_GLOSSINESSMAP = ""),
                          (this.defines.USE_ROUGHNESSMAP = ""))
                        : (delete this.defines.USE_ROUGHNESSMAP,
                          delete this.defines.USE_GLOSSINESSMAP));
                  },
                },
              }),
              delete this.metalness,
              delete this.roughness,
              delete this.metalnessMap,
              delete this.roughnessMap,
              this.setValues(e));
          }
          function p() {
            return {
              name: n.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS,
              specularGlossinessParams: [
                "color",
                "map",
                "lightMap",
                "lightMapIntensity",
                "aoMap",
                "aoMapIntensity",
                "emissive",
                "emissiveIntensity",
                "emissiveMap",
                "bumpMap",
                "bumpScale",
                "normalMap",
                "normalMapType",
                "displacementMap",
                "displacementScale",
                "displacementBias",
                "specularMap",
                "specular",
                "glossinessMap",
                "glossiness",
                "alphaMap",
                "envMap",
                "envMapIntensity",
                "refractionRatio",
              ],
              getMaterialType: function () {
                return d;
              },
              extendParams: function (e, t, n) {
                var i = t.extensions[this.name];
                ((e.color = new r["j"](1, 1, 1)), (e.opacity = 1));
                var A = [];
                if (Array.isArray(i.diffuseFactor)) {
                  var o = i.diffuseFactor;
                  (e.color.fromArray(o), (e.opacity = o[3]));
                }
                if (
                  (void 0 !== i.diffuseTexture &&
                    A.push(n.assignTexture(e, "map", i.diffuseTexture)),
                  (e.emissive = new r["j"](0, 0, 0)),
                  (e.glossiness =
                    void 0 !== i.glossinessFactor ? i.glossinessFactor : 1),
                  (e.specular = new r["j"](1, 1, 1)),
                  Array.isArray(i.specularFactor) &&
                    e.specular.fromArray(i.specularFactor),
                  void 0 !== i.specularGlossinessTexture)
                ) {
                  var a = i.specularGlossinessTexture;
                  (A.push(n.assignTexture(e, "glossinessMap", a)),
                    A.push(n.assignTexture(e, "specularMap", a)));
                }
                return Promise.all(A);
              },
              createMaterial: function (e) {
                var t = new d(e);
                return (
                  (t.fog = !0),
                  (t.color = e.color),
                  (t.map = void 0 === e.map ? null : e.map),
                  (t.lightMap = null),
                  (t.lightMapIntensity = 1),
                  (t.aoMap = void 0 === e.aoMap ? null : e.aoMap),
                  (t.aoMapIntensity = 1),
                  (t.emissive = e.emissive),
                  (t.emissiveIntensity = 1),
                  (t.emissiveMap =
                    void 0 === e.emissiveMap ? null : e.emissiveMap),
                  (t.bumpMap = void 0 === e.bumpMap ? null : e.bumpMap),
                  (t.bumpScale = 1),
                  (t.normalMap = void 0 === e.normalMap ? null : e.normalMap),
                  (t.normalMapType = r["zb"]),
                  e.normalScale && (t.normalScale = e.normalScale),
                  (t.displacementMap = null),
                  (t.displacementScale = 1),
                  (t.displacementBias = 0),
                  (t.specularMap =
                    void 0 === e.specularMap ? null : e.specularMap),
                  (t.specular = e.specular),
                  (t.glossinessMap =
                    void 0 === e.glossinessMap ? null : e.glossinessMap),
                  (t.glossiness = e.glossiness),
                  (t.alphaMap = null),
                  (t.envMap = void 0 === e.envMap ? null : e.envMap),
                  (t.envMapIntensity = 1),
                  (t.refractionRatio = 0.98),
                  t
                );
              },
            };
          }
          function g() {
            this.name = n.KHR_MESH_QUANTIZATION;
          }
          function m(e, t, n, i) {
            r["x"].call(this, e, t, n, i);
          }
          ((h.prototype.decodePrimitive = function (e, t) {
            var n = this.json,
              r = this.dracoLoader,
              i = e.extensions[this.name].bufferView,
              A = e.extensions[this.name].attributes,
              o = {},
              a = {},
              s = {};
            for (var c in A) {
              var u = _[c] || c.toLowerCase();
              o[u] = A[c];
            }
            for (c in e.attributes) {
              u = _[c] || c.toLowerCase();
              if (void 0 !== A[c]) {
                var l = n.accessors[e.attributes[c]],
                  h = y[l.componentType];
                ((s[u] = h), (a[u] = !0 === l.normalized));
              }
            }
            return t.getDependency("bufferView", i).then(function (e) {
              return new Promise(function (t) {
                r.decodeDracoFile(
                  e,
                  function (e) {
                    for (var n in e.attributes) {
                      var r = e.attributes[n],
                        i = a[n];
                      void 0 !== i && (r.normalized = i);
                    }
                    t(e);
                  },
                  o,
                  s,
                );
              });
            });
          }),
            (f.prototype.extendTexture = function (e, t) {
              return (
                (e = e.clone()),
                void 0 !== t.offset && e.offset.fromArray(t.offset),
                void 0 !== t.rotation && (e.rotation = t.rotation),
                void 0 !== t.scale && e.repeat.fromArray(t.scale),
                void 0 !== t.texCoord &&
                  console.warn(
                    'THREE.GLTFLoader: Custom UV sets in "' +
                      this.name +
                      '" extension not yet supported.',
                  ),
                (e.needsUpdate = !0),
                e
              );
            }),
            (d.prototype = Object.create(r["R"].prototype)),
            (d.prototype.constructor = d),
            (d.prototype.copy = function (e) {
              return (
                r["R"].prototype.copy.call(this, e),
                (this.specularMap = e.specularMap),
                this.specular.copy(e.specular),
                (this.glossinessMap = e.glossinessMap),
                (this.glossiness = e.glossiness),
                delete this.metalness,
                delete this.roughness,
                delete this.metalnessMap,
                delete this.roughnessMap,
                this
              );
            }),
            (m.prototype = Object.create(r["x"].prototype)),
            (m.prototype.constructor = m),
            (m.prototype.copySampleValue_ = function (e) {
              for (
                var t = this.resultBuffer,
                  n = this.sampleValues,
                  r = this.valueSize,
                  i = e * r * 3 + r,
                  A = 0;
                A !== r;
                A++
              )
                t[A] = n[i + A];
              return t;
            }),
            (m.prototype.beforeStart_ = m.prototype.copySampleValue_),
            (m.prototype.afterEnd_ = m.prototype.copySampleValue_),
            (m.prototype.interpolate_ = function (e, t, n, r) {
              for (
                var i = this.resultBuffer,
                  A = this.sampleValues,
                  o = this.valueSize,
                  a = 2 * o,
                  s = 3 * o,
                  c = r - t,
                  u = (n - t) / c,
                  l = u * u,
                  h = l * u,
                  f = e * s,
                  d = f - s,
                  p = -2 * h + 3 * l,
                  g = h - l,
                  m = 1 - p,
                  v = g - l + u,
                  y = 0;
                y !== o;
                y++
              ) {
                var w = A[d + y + o],
                  B = A[d + y + a] * c,
                  b = A[f + y + o],
                  _ = A[f + y] * c;
                i[y] = m * w + v * B + p * b + g * _;
              }
              return i;
            }));
          var v = {
              FLOAT: 5126,
              FLOAT_MAT3: 35675,
              FLOAT_MAT4: 35676,
              FLOAT_VEC2: 35664,
              FLOAT_VEC3: 35665,
              FLOAT_VEC4: 35666,
              LINEAR: 9729,
              REPEAT: 10497,
              SAMPLER_2D: 35678,
              POINTS: 0,
              LINES: 1,
              LINE_LOOP: 2,
              LINE_STRIP: 3,
              TRIANGLES: 4,
              TRIANGLE_STRIP: 5,
              TRIANGLE_FAN: 6,
              UNSIGNED_BYTE: 5121,
              UNSIGNED_SHORT: 5123,
            },
            y = {
              5120: Int8Array,
              5121: Uint8Array,
              5122: Int16Array,
              5123: Uint16Array,
              5125: Uint32Array,
              5126: Float32Array,
            },
            w = {
              9728: r["T"],
              9729: r["F"],
              9984: r["V"],
              9985: r["H"],
              9986: r["U"],
              9987: r["G"],
            },
            B = { 33071: r["h"], 33648: r["S"], 10497: r["ob"] },
            b = {
              SCALAR: 1,
              VEC2: 2,
              VEC3: 3,
              VEC4: 4,
              MAT2: 4,
              MAT3: 9,
              MAT4: 16,
            },
            _ = {
              POSITION: "position",
              NORMAL: "normal",
              TANGENT: "tangent",
              TEXCOORD_0: "uv",
              TEXCOORD_1: "uv2",
              COLOR_0: "color",
              WEIGHTS_0: "skinWeight",
              JOINTS_0: "skinIndex",
            },
            x = {
              scale: "scale",
              translation: "position",
              rotation: "quaternion",
              weights: "morphTargetInfluences",
            },
            C = { CUBICSPLINE: void 0, LINEAR: r["z"], STEP: r["y"] },
            E = { OPAQUE: "OPAQUE", MASK: "MASK", BLEND: "BLEND" },
            M = { "image/png": r["jb"], "image/jpeg": r["mb"] };
          function S(e, t) {
            return "string" !== typeof e || "" === e
              ? ""
              : (/^https?:\/\//i.test(t) &&
                  /^\//.test(e) &&
                  (t = t.replace(/(^https?:\/\/[^\/]+).*/i, "$1")),
                /^(https?:)?\/\//i.test(e) ||
                /^data:.*,.*$/i.test(e) ||
                /^blob:.*$/i.test(e)
                  ? e
                  : t + e);
          }
          function F(e) {
            return (
              void 0 === e["DefaultMaterial"] &&
                (e["DefaultMaterial"] = new r["R"]({
                  color: 16777215,
                  emissive: 0,
                  metalness: 1,
                  roughness: 1,
                  transparent: !1,
                  depthTest: !0,
                  side: r["r"],
                })),
              e["DefaultMaterial"]
            );
          }
          function T(e, t, n) {
            for (var r in n.extensions)
              void 0 === e[r] &&
                ((t.userData.gltfExtensions = t.userData.gltfExtensions || {}),
                (t.userData.gltfExtensions[r] = n.extensions[r]));
          }
          function U(e, t) {
            void 0 !== t.extras &&
              ("object" === typeof t.extras
                ? Object.assign(e.userData, t.extras)
                : console.warn(
                    "THREE.GLTFLoader: Ignoring primitive type .extras, " +
                      t.extras,
                  ));
          }
          function Q(e, t, n) {
            for (var r = !1, i = !1, A = 0, o = t.length; A < o; A++) {
              var a = t[A];
              if (
                (void 0 !== a.POSITION && (r = !0),
                void 0 !== a.NORMAL && (i = !0),
                r && i)
              )
                break;
            }
            if (!r && !i) return Promise.resolve(e);
            var s = [],
              c = [];
            for (A = 0, o = t.length; A < o; A++) {
              a = t[A];
              if (r) {
                var u =
                  void 0 !== a.POSITION
                    ? n.getDependency("accessor", a.POSITION)
                    : e.attributes.position;
                s.push(u);
              }
              if (i) {
                u =
                  void 0 !== a.NORMAL
                    ? n.getDependency("accessor", a.NORMAL)
                    : e.attributes.normal;
                c.push(u);
              }
            }
            return Promise.all([Promise.all(s), Promise.all(c)]).then(
              function (t) {
                var n = t[0],
                  A = t[1];
                return (
                  r && (e.morphAttributes.position = n),
                  i && (e.morphAttributes.normal = A),
                  (e.morphTargetsRelative = !0),
                  e
                );
              },
            );
          }
          function L(e, t) {
            if ((e.updateMorphTargets(), void 0 !== t.weights))
              for (var n = 0, r = t.weights.length; n < r; n++)
                e.morphTargetInfluences[n] = t.weights[n];
            if (t.extras && Array.isArray(t.extras.targetNames)) {
              var i = t.extras.targetNames;
              if (e.morphTargetInfluences.length === i.length) {
                e.morphTargetDictionary = {};
                for (n = 0, r = i.length; n < r; n++)
                  e.morphTargetDictionary[i[n]] = n;
              } else
                console.warn(
                  "THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.",
                );
            }
          }
          function I(e) {
            var t,
              r = e.extensions && e.extensions[n.KHR_DRACO_MESH_COMPRESSION];
            return (
              (t = r
                ? "draco:" +
                  r.bufferView +
                  ":" +
                  r.indices +
                  ":" +
                  H(r.attributes)
                : e.indices + ":" + H(e.attributes) + ":" + e.mode),
              t
            );
          }
          function H(e) {
            for (
              var t = "", n = Object.keys(e).sort(), r = 0, i = n.length;
              r < i;
              r++
            )
              t += n[r] + ":" + e[n[r]] + ";";
            return t;
          }
          function O(e, n, i) {
            ((this.json = e || {}),
              (this.extensions = n || {}),
              (this.options = i || {}),
              (this.cache = new t()),
              (this.associations = new Map()),
              (this.primitiveCache = {}),
              (this.textureLoader = new r["Ab"](this.options.manager)),
              this.textureLoader.setCrossOrigin(this.options.crossOrigin),
              (this.fileLoader = new r["p"](this.options.manager)),
              this.fileLoader.setResponseType("arraybuffer"),
              "use-credentials" === this.options.crossOrigin &&
                this.fileLoader.setWithCredentials(!0));
          }
          function R(e, t, n) {
            var i = t.attributes,
              A = new r["e"]();
            if (void 0 !== i.POSITION) {
              var o = n.json.accessors[i.POSITION],
                a = o.min,
                s = o.max;
              if (void 0 !== a && void 0 !== s) {
                A.set(
                  new r["Fb"](a[0], a[1], a[2]),
                  new r["Fb"](s[0], s[1], s[2]),
                );
                var c = t.targets;
                if (void 0 !== c) {
                  for (
                    var u = new r["Fb"](),
                      l = new r["Fb"](),
                      h = 0,
                      f = c.length;
                    h < f;
                    h++
                  ) {
                    var d = c[h];
                    if (void 0 !== d.POSITION) {
                      ((o = n.json.accessors[d.POSITION]),
                        (a = o.min),
                        (s = o.max));
                      void 0 !== a && void 0 !== s
                        ? (l.setX(Math.max(Math.abs(a[0]), Math.abs(s[0]))),
                          l.setY(Math.max(Math.abs(a[1]), Math.abs(s[1]))),
                          l.setZ(Math.max(Math.abs(a[2]), Math.abs(s[2]))),
                          u.max(l))
                        : console.warn(
                            "THREE.GLTFLoader: Missing min/max properties for accessor POSITION.",
                          );
                    }
                  }
                  A.expandByVector(u);
                }
                e.boundingBox = A;
                var p = new r["tb"]();
                (A.getCenter(p.center),
                  (p.radius = A.min.distanceTo(A.max) / 2),
                  (e.boundingSphere = p));
              } else
                console.warn(
                  "THREE.GLTFLoader: Missing min/max properties for accessor POSITION.",
                );
            }
          }
          function P(e, t, n) {
            var r = t.attributes,
              i = [];
            function A(t, r) {
              return n.getDependency("accessor", t).then(function (t) {
                e.setAttribute(r, t);
              });
            }
            for (var o in r) {
              var a = _[o] || o.toLowerCase();
              a in e.attributes || i.push(A(r[o], a));
            }
            if (void 0 !== t.indices && !e.index) {
              var s = n.getDependency("accessor", t.indices).then(function (t) {
                e.setIndex(t);
              });
              i.push(s);
            }
            return (
              U(e, t),
              R(e, t, n),
              Promise.all(i).then(function () {
                return void 0 !== t.targets ? Q(e, t.targets, n) : e;
              })
            );
          }
          function D(e, t) {
            var n = e.getIndex();
            if (null === n) {
              var i = [],
                A = e.getAttribute("position");
              if (void 0 === A)
                return (
                  console.log(
                    "THREE.GLTFLoader.toTrianglesDrawMode(): Undefined position attribute. Processing not possible.",
                  ),
                  e
                );
              for (var o = 0; o < A.count; o++) i.push(o);
              (e.setIndex(i), (n = e.getIndex()));
            }
            var a = n.count - 2,
              s = [];
            if (t === r["Bb"])
              for (o = 1; o <= a; o++)
                (s.push(n.getX(0)), s.push(n.getX(o)), s.push(n.getX(o + 1)));
            else
              for (o = 0; o < a; o++)
                o % 2 === 0
                  ? (s.push(n.getX(o)),
                    s.push(n.getX(o + 1)),
                    s.push(n.getX(o + 2)))
                  : (s.push(n.getX(o + 2)),
                    s.push(n.getX(o + 1)),
                    s.push(n.getX(o)));
            s.length / 3 !== a &&
              console.log(
                "THREE.GLTFLoader.toTrianglesDrawMode(): Unable to generate correct amount of triangles.",
              );
            var c = e.clone();
            return (c.setIndex(s), c);
          }
          return (
            (O.prototype.parse = function (e, t) {
              var n = this,
                r = this.json,
                i = this.extensions;
              (this.cache.removeAll(),
                this.markDefs(),
                Promise.all([
                  this.getDependencies("scene"),
                  this.getDependencies("animation"),
                  this.getDependencies("camera"),
                ])
                  .then(function (t) {
                    var A = {
                      scene: t[0][r.scene || 0],
                      scenes: t[0],
                      animations: t[1],
                      cameras: t[2],
                      asset: r.asset,
                      parser: n,
                      userData: {},
                    };
                    (T(i, A, r), U(A, r), e(A));
                  })
                  .catch(t));
            }),
            (O.prototype.markDefs = function () {
              for (
                var e = this.json.nodes || [],
                  t = this.json.skins || [],
                  n = this.json.meshes || [],
                  r = {},
                  i = {},
                  A = 0,
                  o = t.length;
                A < o;
                A++
              )
                for (var a = t[A].joints, s = 0, c = a.length; s < c; s++)
                  e[a[s]].isBone = !0;
              for (var u = 0, l = e.length; u < l; u++) {
                var h = e[u];
                void 0 !== h.mesh &&
                  (void 0 === r[h.mesh] && (r[h.mesh] = i[h.mesh] = 0),
                  r[h.mesh]++,
                  void 0 !== h.skin && (n[h.mesh].isSkinnedMesh = !0));
              }
              ((this.json.meshReferences = r), (this.json.meshUses = i));
            }),
            (O.prototype.getDependency = function (e, t) {
              var r = e + ":" + t,
                i = this.cache.get(r);
              if (!i) {
                switch (e) {
                  case "scene":
                    i = this.loadScene(t);
                    break;
                  case "node":
                    i = this.loadNode(t);
                    break;
                  case "mesh":
                    i = this.loadMesh(t);
                    break;
                  case "accessor":
                    i = this.loadAccessor(t);
                    break;
                  case "bufferView":
                    i = this.loadBufferView(t);
                    break;
                  case "buffer":
                    i = this.loadBuffer(t);
                    break;
                  case "material":
                    i = this.loadMaterial(t);
                    break;
                  case "texture":
                    i = this.loadTexture(t);
                    break;
                  case "skin":
                    i = this.loadSkin(t);
                    break;
                  case "animation":
                    i = this.loadAnimation(t);
                    break;
                  case "camera":
                    i = this.loadCamera(t);
                    break;
                  case "light":
                    i = this.extensions[n.KHR_LIGHTS_PUNCTUAL].loadLight(t);
                    break;
                  default:
                    throw new Error("Unknown type: " + e);
                }
                this.cache.add(r, i);
              }
              return i;
            }),
            (O.prototype.getDependencies = function (e) {
              var t = this.cache.get(e);
              if (!t) {
                var n = this,
                  r = this.json[e + ("mesh" === e ? "es" : "s")] || [];
                ((t = Promise.all(
                  r.map(function (t, r) {
                    return n.getDependency(e, r);
                  }),
                )),
                  this.cache.add(e, t));
              }
              return t;
            }),
            (O.prototype.loadBuffer = function (e) {
              var t = this.json.buffers[e],
                r = this.fileLoader;
              if (t.type && "arraybuffer" !== t.type)
                throw new Error(
                  "THREE.GLTFLoader: " +
                    t.type +
                    " buffer type is not supported.",
                );
              if (void 0 === t.uri && 0 === e)
                return Promise.resolve(this.extensions[n.KHR_BINARY_GLTF].body);
              var i = this.options;
              return new Promise(function (e, n) {
                r.load(S(t.uri, i.path), e, void 0, function () {
                  n(
                    new Error(
                      'THREE.GLTFLoader: Failed to load buffer "' +
                        t.uri +
                        '".',
                    ),
                  );
                });
              });
            }),
            (O.prototype.loadBufferView = function (e) {
              var t = this.json.bufferViews[e];
              return this.getDependency("buffer", t.buffer).then(function (e) {
                var n = t.byteLength || 0,
                  r = t.byteOffset || 0;
                return e.slice(r, r + n);
              });
            }),
            (O.prototype.loadAccessor = function (e) {
              var t = this,
                n = this.json,
                i = this.json.accessors[e];
              if (void 0 === i.bufferView && void 0 === i.sparse)
                return Promise.resolve(null);
              var A = [];
              return (
                void 0 !== i.bufferView
                  ? A.push(this.getDependency("bufferView", i.bufferView))
                  : A.push(null),
                void 0 !== i.sparse &&
                  (A.push(
                    this.getDependency(
                      "bufferView",
                      i.sparse.indices.bufferView,
                    ),
                  ),
                  A.push(
                    this.getDependency(
                      "bufferView",
                      i.sparse.values.bufferView,
                    ),
                  )),
                Promise.all(A).then(function (e) {
                  var A,
                    o,
                    a = e[0],
                    s = b[i.type],
                    c = y[i.componentType],
                    u = c.BYTES_PER_ELEMENT,
                    l = u * s,
                    h = i.byteOffset || 0,
                    f =
                      void 0 !== i.bufferView
                        ? n.bufferViews[i.bufferView].byteStride
                        : void 0,
                    d = !0 === i.normalized;
                  if (f && f !== l) {
                    var p = Math.floor(h / f),
                      g =
                        "InterleavedBuffer:" +
                        i.bufferView +
                        ":" +
                        i.componentType +
                        ":" +
                        p +
                        ":" +
                        i.count,
                      m = t.cache.get(g);
                    (m ||
                      ((A = new c(a, p * f, (i.count * f) / u)),
                      (m = new r["v"](A, f / u)),
                      t.cache.add(g, m)),
                      (o = new r["w"](m, s, (h % f) / u, d)));
                  } else
                    ((A =
                      null === a
                        ? new c(i.count * s)
                        : new c(a, h, i.count * s)),
                      (o = new r["f"](A, s, d)));
                  if (void 0 !== i.sparse) {
                    var v = b.SCALAR,
                      w = y[i.sparse.indices.componentType],
                      B = i.sparse.indices.byteOffset || 0,
                      _ = i.sparse.values.byteOffset || 0,
                      x = new w(e[1], B, i.sparse.count * v),
                      C = new c(e[2], _, i.sparse.count * s);
                    null !== a &&
                      (o = new r["f"](
                        o.array.slice(),
                        o.itemSize,
                        o.normalized,
                      ));
                    for (var E = 0, M = x.length; E < M; E++) {
                      var S = x[E];
                      if (
                        (o.setX(S, C[E * s]),
                        s >= 2 && o.setY(S, C[E * s + 1]),
                        s >= 3 && o.setZ(S, C[E * s + 2]),
                        s >= 4 && o.setW(S, C[E * s + 3]),
                        s >= 5)
                      )
                        throw new Error(
                          "THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.",
                        );
                    }
                  }
                  return o;
                })
              );
            }),
            (O.prototype.loadTexture = function (e) {
              var t,
                i = this,
                A = this.json,
                o = this.options,
                a = this.textureLoader,
                s = self.URL || self.webkitURL,
                c = A.textures[e],
                u = c.extensions || {};
              t = u[n.MSFT_TEXTURE_DDS]
                ? A.images[u[n.MSFT_TEXTURE_DDS].source]
                : A.images[c.source];
              var l = t.uri,
                h = !1;
              return (
                void 0 !== t.bufferView &&
                  (l = i
                    .getDependency("bufferView", t.bufferView)
                    .then(function (e) {
                      h = !0;
                      var n = new Blob([e], { type: t.mimeType });
                      return ((l = s.createObjectURL(n)), l);
                    })),
                Promise.resolve(l)
                  .then(function (e) {
                    var t = o.manager.getHandler(e);
                    return (
                      t ||
                        (t = u[n.MSFT_TEXTURE_DDS]
                          ? i.extensions[n.MSFT_TEXTURE_DDS].ddsLoader
                          : a),
                      new Promise(function (n, r) {
                        t.load(S(e, o.path), n, void 0, r);
                      })
                    );
                  })
                  .then(function (n) {
                    (!0 === h && s.revokeObjectURL(l),
                      (n.flipY = !1),
                      c.name && (n.name = c.name),
                      t.mimeType in M && (n.format = M[t.mimeType]));
                    var o = A.samplers || {},
                      a = o[c.sampler] || {};
                    return (
                      (n.magFilter = w[a.magFilter] || r["F"]),
                      (n.minFilter = w[a.minFilter] || r["G"]),
                      (n.wrapS = B[a.wrapS] || r["ob"]),
                      (n.wrapT = B[a.wrapT] || r["ob"]),
                      i.associations.set(n, { type: "textures", index: e }),
                      n
                    );
                  })
              );
            }),
            (O.prototype.assignTexture = function (e, t, i) {
              var A = this;
              return this.getDependency("texture", i.index).then(function (o) {
                if (!o.isCompressedTexture)
                  switch (t) {
                    case "aoMap":
                    case "emissiveMap":
                    case "metalnessMap":
                    case "normalMap":
                    case "roughnessMap":
                      o.format = r["mb"];
                      break;
                  }
                if (
                  (void 0 === i.texCoord ||
                    0 == i.texCoord ||
                    ("aoMap" === t && 1 == i.texCoord) ||
                    console.warn(
                      "THREE.GLTFLoader: Custom UV set " +
                        i.texCoord +
                        " for texture " +
                        t +
                        " not yet supported.",
                    ),
                  A.extensions[n.KHR_TEXTURE_TRANSFORM])
                ) {
                  var a =
                    void 0 !== i.extensions
                      ? i.extensions[n.KHR_TEXTURE_TRANSFORM]
                      : void 0;
                  if (a) {
                    var s = A.associations.get(o);
                    ((o = A.extensions[n.KHR_TEXTURE_TRANSFORM].extendTexture(
                      o,
                      a,
                    )),
                      A.associations.set(o, s));
                  }
                }
                e[t] = o;
              });
            }),
            (O.prototype.assignFinalMaterial = function (e) {
              var t = e.geometry,
                n = e.material,
                i = void 0 !== t.attributes.tangent,
                A = void 0 !== t.attributes.color,
                o = void 0 === t.attributes.normal,
                a = !0 === e.isSkinnedMesh,
                s = Object.keys(t.morphAttributes).length > 0,
                c = s && void 0 !== t.morphAttributes.normal;
              if (e.isPoints) {
                var u = "PointsMaterial:" + n.uuid,
                  l = this.cache.get(u);
                (l ||
                  ((l = new r["fb"]()),
                  r["L"].prototype.copy.call(l, n),
                  l.color.copy(n.color),
                  (l.map = n.map),
                  (l.sizeAttenuation = !1),
                  this.cache.add(u, l)),
                  (n = l));
              } else if (e.isLine) {
                u = "LineBasicMaterial:" + n.uuid;
                var h = this.cache.get(u);
                (h ||
                  ((h = new r["B"]()),
                  r["L"].prototype.copy.call(h, n),
                  h.color.copy(n.color),
                  this.cache.add(u, h)),
                  (n = h));
              }
              if (i || A || o || a || s) {
                u = "ClonedMaterial:" + n.uuid + ":";
                (n.isGLTFSpecularGlossinessMaterial &&
                  (u += "specular-glossiness:"),
                  a && (u += "skinning:"),
                  i && (u += "vertex-tangents:"),
                  A && (u += "vertex-colors:"),
                  o && (u += "flat-shading:"),
                  s && (u += "morph-targets:"),
                  c && (u += "morph-normals:"));
                var f = this.cache.get(u);
                (f ||
                  ((f = n.clone()),
                  a && (f.skinning = !0),
                  i && (f.vertexTangents = !0),
                  A && (f.vertexColors = !0),
                  o && (f.flatShading = !0),
                  s && (f.morphTargets = !0),
                  c && (f.morphNormals = !0),
                  this.cache.add(u, f),
                  this.associations.set(f, this.associations.get(n))),
                  (n = f));
              }
              (n.aoMap &&
                void 0 === t.attributes.uv2 &&
                void 0 !== t.attributes.uv &&
                t.setAttribute("uv2", t.attributes.uv),
                n.normalScale && !i && (n.normalScale.y = -n.normalScale.y),
                n.clearcoatNormalScale &&
                  !i &&
                  (n.clearcoatNormalScale.y = -n.clearcoatNormalScale.y),
                (e.material = n));
            }),
            (O.prototype.loadMaterial = function (e) {
              var t,
                i = this,
                A = this.json,
                o = this.extensions,
                a = A.materials[e],
                s = {},
                c = a.extensions || {},
                u = [];
              if (c[n.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS]) {
                var l = o[n.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS];
                ((t = l.getMaterialType()), u.push(l.extendParams(s, a, i)));
              } else if (c[n.KHR_MATERIALS_UNLIT]) {
                var h = o[n.KHR_MATERIALS_UNLIT];
                ((t = h.getMaterialType()), u.push(h.extendParams(s, a, i)));
              } else {
                t = r["R"];
                var f = a.pbrMetallicRoughness || {};
                if (
                  ((s.color = new r["j"](1, 1, 1)),
                  (s.opacity = 1),
                  Array.isArray(f.baseColorFactor))
                ) {
                  var p = f.baseColorFactor;
                  (s.color.fromArray(p), (s.opacity = p[3]));
                }
                (void 0 !== f.baseColorTexture &&
                  u.push(i.assignTexture(s, "map", f.baseColorTexture)),
                  (s.metalness =
                    void 0 !== f.metallicFactor ? f.metallicFactor : 1),
                  (s.roughness =
                    void 0 !== f.roughnessFactor ? f.roughnessFactor : 1),
                  void 0 !== f.metallicRoughnessTexture &&
                    (u.push(
                      i.assignTexture(
                        s,
                        "metalnessMap",
                        f.metallicRoughnessTexture,
                      ),
                    ),
                    u.push(
                      i.assignTexture(
                        s,
                        "roughnessMap",
                        f.metallicRoughnessTexture,
                      ),
                    )));
              }
              !0 === a.doubleSided && (s.side = r["n"]);
              var g = a.alphaMode || E.OPAQUE;
              if (
                (g === E.BLEND
                  ? ((s.transparent = !0), (s.depthWrite = !1))
                  : ((s.transparent = !1),
                    g === E.MASK &&
                      (s.alphaTest =
                        void 0 !== a.alphaCutoff ? a.alphaCutoff : 0.5)),
                void 0 !== a.normalTexture &&
                  t !== r["P"] &&
                  (u.push(i.assignTexture(s, "normalMap", a.normalTexture)),
                  (s.normalScale = new r["Eb"](1, 1)),
                  void 0 !== a.normalTexture.scale &&
                    s.normalScale.set(
                      a.normalTexture.scale,
                      a.normalTexture.scale,
                    )),
                void 0 !== a.occlusionTexture &&
                  t !== r["P"] &&
                  (u.push(i.assignTexture(s, "aoMap", a.occlusionTexture)),
                  void 0 !== a.occlusionTexture.strength &&
                    (s.aoMapIntensity = a.occlusionTexture.strength)),
                void 0 !== a.emissiveFactor &&
                  t !== r["P"] &&
                  (s.emissive = new r["j"]().fromArray(a.emissiveFactor)),
                void 0 !== a.emissiveTexture &&
                  t !== r["P"] &&
                  u.push(i.assignTexture(s, "emissiveMap", a.emissiveTexture)),
                c[n.KHR_MATERIALS_CLEARCOAT])
              ) {
                var m = o[n.KHR_MATERIALS_CLEARCOAT];
                ((t = m.getMaterialType()),
                  u.push(m.extendParams(s, { extensions: c }, i)));
              }
              return Promise.all(u).then(function () {
                var A;
                return (
                  (A =
                    t === d
                      ? o[
                          n.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS
                        ].createMaterial(s)
                      : new t(s)),
                  a.name && (A.name = a.name),
                  A.map && (A.map.encoding = r["Jb"]),
                  A.emissiveMap && (A.emissiveMap.encoding = r["Jb"]),
                  U(A, a),
                  i.associations.set(A, { type: "materials", index: e }),
                  a.extensions && T(o, A, a),
                  A
                );
              });
            }),
            (O.prototype.loadGeometries = function (e) {
              var t = this,
                i = this.extensions,
                A = this.primitiveCache;
              function o(e) {
                return i[n.KHR_DRACO_MESH_COMPRESSION]
                  .decodePrimitive(e, t)
                  .then(function (n) {
                    return P(n, e, t);
                  });
              }
              for (var a = [], s = 0, c = e.length; s < c; s++) {
                var u,
                  l = e[s],
                  h = I(l),
                  f = A[h];
                if (f) a.push(f.promise);
                else
                  ((u =
                    l.extensions && l.extensions[n.KHR_DRACO_MESH_COMPRESSION]
                      ? o(l)
                      : P(new r["g"](), l, t)),
                    (A[h] = { primitive: l, promise: u }),
                    a.push(u));
              }
              return Promise.all(a);
            }),
            (O.prototype.loadMesh = function (e) {
              for (
                var t = this,
                  n = this.json,
                  i = n.meshes[e],
                  A = i.primitives,
                  o = [],
                  a = 0,
                  s = A.length;
                a < s;
                a++
              ) {
                var c =
                  void 0 === A[a].material
                    ? F(this.cache)
                    : this.getDependency("material", A[a].material);
                o.push(c);
              }
              return (
                o.push(t.loadGeometries(A)),
                Promise.all(o).then(function (n) {
                  for (
                    var o = n.slice(0, n.length - 1),
                      a = n[n.length - 1],
                      s = [],
                      c = 0,
                      u = a.length;
                    c < u;
                    c++
                  ) {
                    var l,
                      h = a[c],
                      f = A[c],
                      d = o[c];
                    if (
                      f.mode === v.TRIANGLES ||
                      f.mode === v.TRIANGLE_STRIP ||
                      f.mode === v.TRIANGLE_FAN ||
                      void 0 === f.mode
                    )
                      ((l =
                        !0 === i.isSkinnedMesh
                          ? new r["sb"](h, d)
                          : new r["O"](h, d)),
                        !0 !== l.isSkinnedMesh ||
                          l.geometry.attributes.skinWeight.normalized ||
                          l.normalizeSkinWeights(),
                        f.mode === v.TRIANGLE_STRIP
                          ? (l.geometry = D(l.geometry, r["Cb"]))
                          : f.mode === v.TRIANGLE_FAN &&
                            (l.geometry = D(l.geometry, r["Bb"])));
                    else if (f.mode === v.LINES) l = new r["D"](h, d);
                    else if (f.mode === v.LINE_STRIP) l = new r["A"](h, d);
                    else if (f.mode === v.LINE_LOOP) l = new r["C"](h, d);
                    else {
                      if (f.mode !== v.POINTS)
                        throw new Error(
                          "THREE.GLTFLoader: Primitive mode unsupported: " +
                            f.mode,
                        );
                      l = new r["eb"](h, d);
                    }
                    (Object.keys(l.geometry.morphAttributes).length > 0 &&
                      L(l, i),
                      (l.name = i.name || "mesh_" + e),
                      a.length > 1 && (l.name += "_" + c),
                      U(l, i),
                      t.assignFinalMaterial(l),
                      s.push(l));
                  }
                  if (1 === s.length) return s[0];
                  var p = new r["s"]();
                  for (c = 0, u = s.length; c < u; c++) p.add(s[c]);
                  return p;
                })
              );
            }),
            (O.prototype.loadCamera = function (e) {
              var t,
                n = this.json.cameras[e],
                i = n[n.type];
              if (i)
                return (
                  "perspective" === n.type
                    ? (t = new r["bb"](
                        r["M"].radToDeg(i.yfov),
                        i.aspectRatio || 1,
                        i.znear || 1,
                        i.zfar || 2e6,
                      ))
                    : "orthographic" === n.type &&
                      (t = new r["Z"](
                        -i.xmag,
                        i.xmag,
                        i.ymag,
                        -i.ymag,
                        i.znear,
                        i.zfar,
                      )),
                  n.name && (t.name = n.name),
                  U(t, n),
                  Promise.resolve(t)
                );
              console.warn("THREE.GLTFLoader: Missing camera parameters.");
            }),
            (O.prototype.loadSkin = function (e) {
              var t = this.json.skins[e],
                n = { joints: t.joints };
              return void 0 === t.inverseBindMatrices
                ? Promise.resolve(n)
                : this.getDependency("accessor", t.inverseBindMatrices).then(
                    function (e) {
                      return ((n.inverseBindMatrices = e), n);
                    },
                  );
            }),
            (O.prototype.loadAnimation = function (e) {
              for (
                var t = this.json,
                  n = t.animations[e],
                  i = [],
                  A = [],
                  o = [],
                  a = [],
                  s = [],
                  c = 0,
                  u = n.channels.length;
                c < u;
                c++
              ) {
                var l = n.channels[c],
                  h = n.samplers[l.sampler],
                  f = l.target,
                  d = void 0 !== f.node ? f.node : f.id,
                  p = void 0 !== n.parameters ? n.parameters[h.input] : h.input,
                  g =
                    void 0 !== n.parameters ? n.parameters[h.output] : h.output;
                (i.push(this.getDependency("node", d)),
                  A.push(this.getDependency("accessor", p)),
                  o.push(this.getDependency("accessor", g)),
                  a.push(h),
                  s.push(f));
              }
              return Promise.all([
                Promise.all(i),
                Promise.all(A),
                Promise.all(o),
                Promise.all(a),
                Promise.all(s),
              ]).then(function (t) {
                for (
                  var i = t[0],
                    A = t[1],
                    o = t[2],
                    a = t[3],
                    s = t[4],
                    c = [],
                    u = 0,
                    l = i.length;
                  u < l;
                  u++
                ) {
                  var h = i[u],
                    f = A[u],
                    d = o[u],
                    p = a[u],
                    g = s[u];
                  if (void 0 !== h) {
                    var v;
                    switch (
                      (h.updateMatrix(), (h.matrixAutoUpdate = !0), x[g.path])
                    ) {
                      case x.weights:
                        v = r["W"];
                        break;
                      case x.rotation:
                        v = r["ib"];
                        break;
                      case x.position:
                      case x.scale:
                      default:
                        v = r["Hb"];
                        break;
                    }
                    var y = h.name ? h.name : h.uuid,
                      w =
                        void 0 !== p.interpolation
                          ? C[p.interpolation]
                          : r["z"],
                      B = [];
                    x[g.path] === x.weights
                      ? h.traverse(function (e) {
                          !0 === e.isMesh &&
                            e.morphTargetInfluences &&
                            B.push(e.name ? e.name : e.uuid);
                        })
                      : B.push(y);
                    var b = d.array;
                    if (d.normalized) {
                      var _;
                      if (b.constructor === Int8Array) _ = 1 / 127;
                      else if (b.constructor === Uint8Array) _ = 1 / 255;
                      else if (b.constructor == Int16Array) _ = 1 / 32767;
                      else {
                        if (b.constructor !== Uint16Array)
                          throw new Error(
                            "THREE.GLTFLoader: Unsupported output accessor component type.",
                          );
                        _ = 1 / 65535;
                      }
                      for (
                        var E = new Float32Array(b.length), M = 0, S = b.length;
                        M < S;
                        M++
                      )
                        E[M] = b[M] * _;
                      b = E;
                    }
                    for (M = 0, S = B.length; M < S; M++) {
                      var F = new v(B[M] + "." + x[g.path], f.array, b, w);
                      ("CUBICSPLINE" === p.interpolation &&
                        ((F.createInterpolant = function (e) {
                          return new m(
                            this.times,
                            this.values,
                            this.getValueSize() / 3,
                            e,
                          );
                        }),
                        (F.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline =
                          !0)),
                        c.push(F));
                    }
                  }
                }
                var T = n.name ? n.name : "animation_" + e;
                return new r["c"](T, void 0, c);
              });
            }),
            (O.prototype.loadNode = function (e) {
              var t = this.json,
                i = this.extensions,
                A = this,
                o = t.meshReferences,
                a = t.meshUses,
                s = t.nodes[e];
              return (function () {
                var e = [];
                return (
                  void 0 !== s.mesh &&
                    e.push(
                      A.getDependency("mesh", s.mesh).then(function (e) {
                        var t;
                        if (o[s.mesh] > 1) {
                          var n = a[s.mesh]++;
                          ((t = e.clone()), (t.name += "_instance_" + n));
                        } else t = e;
                        return (
                          void 0 !== s.weights &&
                            t.traverse(function (e) {
                              if (e.isMesh)
                                for (
                                  var t = 0, n = s.weights.length;
                                  t < n;
                                  t++
                                )
                                  e.morphTargetInfluences[t] = s.weights[t];
                            }),
                          t
                        );
                      }),
                    ),
                  void 0 !== s.camera &&
                    e.push(A.getDependency("camera", s.camera)),
                  s.extensions &&
                    s.extensions[n.KHR_LIGHTS_PUNCTUAL] &&
                    void 0 !== s.extensions[n.KHR_LIGHTS_PUNCTUAL].light &&
                    e.push(
                      A.getDependency(
                        "light",
                        s.extensions[n.KHR_LIGHTS_PUNCTUAL].light,
                      ),
                    ),
                  Promise.all(e)
                );
              })().then(function (t) {
                var n;
                if (
                  ((n =
                    !0 === s.isBone
                      ? new r["d"]()
                      : t.length > 1
                        ? new r["s"]()
                        : 1 === t.length
                          ? t[0]
                          : new r["X"]()),
                  n !== t[0])
                )
                  for (var o = 0, a = t.length; o < a; o++) n.add(t[o]);
                if (
                  (s.name &&
                    ((n.userData.name = s.name),
                    (n.name = r["gb"].sanitizeNodeName(s.name))),
                  U(n, s),
                  s.extensions && T(i, n, s),
                  void 0 !== s.matrix)
                ) {
                  var c = new r["N"]();
                  (c.fromArray(s.matrix), n.applyMatrix4(c));
                } else
                  (void 0 !== s.translation &&
                    n.position.fromArray(s.translation),
                    void 0 !== s.rotation && n.quaternion.fromArray(s.rotation),
                    void 0 !== s.scale && n.scale.fromArray(s.scale));
                return (A.associations.set(n, { type: "nodes", index: e }), n);
              });
            }),
            (O.prototype.loadScene = (function () {
              function e(t, n, i, A) {
                var o = i.nodes[t];
                return A.getDependency("node", t)
                  .then(function (e) {
                    return void 0 === o.skin
                      ? e
                      : A.getDependency("skin", o.skin)
                          .then(function (e) {
                            t = e;
                            for (
                              var n = [], r = 0, i = t.joints.length;
                              r < i;
                              r++
                            )
                              n.push(A.getDependency("node", t.joints[r]));
                            return Promise.all(n);
                          })
                          .then(function (n) {
                            return (
                              e.traverse(function (e) {
                                if (e.isMesh) {
                                  for (
                                    var i = [], A = [], o = 0, a = n.length;
                                    o < a;
                                    o++
                                  ) {
                                    var s = n[o];
                                    if (s) {
                                      i.push(s);
                                      var c = new r["N"]();
                                      (void 0 !== t.inverseBindMatrices &&
                                        c.fromArray(
                                          t.inverseBindMatrices.array,
                                          16 * o,
                                        ),
                                        A.push(c));
                                    } else
                                      console.warn(
                                        'THREE.GLTFLoader: Joint "%s" could not be found.',
                                        t.joints[o],
                                      );
                                  }
                                  e.bind(new r["rb"](i, A), e.matrixWorld);
                                }
                              }),
                              e
                            );
                          });
                    var t;
                  })
                  .then(function (t) {
                    n.add(t);
                    var r = [];
                    if (o.children)
                      for (
                        var a = o.children, s = 0, c = a.length;
                        s < c;
                        s++
                      ) {
                        var u = a[s];
                        r.push(e(u, t, i, A));
                      }
                    return Promise.all(r);
                  });
              }
              return function (t) {
                var n = this.json,
                  i = this.extensions,
                  A = this.json.scenes[t],
                  o = this,
                  a = new r["s"]();
                (A.name && (a.name = A.name),
                  U(a, A),
                  A.extensions && T(i, a, A));
                for (
                  var s = A.nodes || [], c = [], u = 0, l = s.length;
                  u < l;
                  u++
                )
                  c.push(e(s[u], a, n, o));
                return Promise.all(c).then(function () {
                  return a;
                });
              };
            })()),
            e
          );
        })();
    },
    "36b7": function (e, t, n) {
      "use strict";
      var r = n("415f"),
        i = n("798a"),
        A = "WeakSet";
      n("d168")(
        A,
        function (e) {
          return function () {
            return e(this, arguments.length > 0 ? arguments[0] : void 0);
          };
        },
        {
          add: function (e) {
            return r.def(i(this, A), e, !0);
          },
        },
        r,
        !1,
        !0,
      );
    },
    "36bb": function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("cffc")(6),
        A = "findIndex",
        o = !0;
      (A in [] &&
        Array(1)[A](function () {
          o = !1;
        }),
        r(r.P + r.F * o, "Array", {
          findIndex: function (e) {
            return i(this, e, arguments.length > 1 ? arguments[1] : void 0);
          },
        }),
        n("66b7")(A));
    },
    "37a2": function (e, t, n) {
      var r = n("9fe8"),
        i = n("1c2d"),
        A = n("de24")("match");
      e.exports = function (e) {
        var t;
        return r(e) && (void 0 !== (t = e[A]) ? !!t : "RegExp" == i(e));
      };
    },
    "37c5": function (e, t, n) {
      "use strict";
      var r = n("e056");
      n("f083")(
        { target: "RegExp", proto: !0, forced: r !== /./.exec },
        { exec: r },
      );
    },
    "37e6": function (e, t, n) {
      n("1cb7")("observable");
    },
    "37e8": function (e, t, n) {
      var r = n("83ab"),
        i = n("aed9"),
        A = n("9bf2"),
        o = n("825a"),
        a = n("fc6a"),
        s = n("df75");
      t.f =
        r && !i
          ? Object.defineProperties
          : function (e, t) {
              o(e);
              var n,
                r = a(t),
                i = s(t),
                c = i.length,
                u = 0;
              while (c > u) A.f(e, (n = i[u++]), r[n]);
              return e;
            };
    },
    "395a": function (e, t, n) {
      var r = n("f083"),
        i = n("bde8")(),
        A = n("93e0").process,
        o = "process" == n("1c2d")(A);
      r(r.G, {
        asap: function (e) {
          var t = o && A.domain;
          i(t ? t.bind(e) : e);
        },
      });
    },
    "396a": function (e, t, n) {
      var r = n("f083");
      r(r.S, "Number", { isInteger: n("2647") });
    },
    "39f3": function (e, t, n) {
      var r = n("f083"),
        i = n("5d6f"),
        A = n("6373");
      r(r.S, "String", {
        raw: function (e) {
          var t = i(e.raw),
            n = A(t.length),
            r = arguments.length,
            o = [],
            a = 0;
          while (n > a)
            (o.push(String(t[a++])), a < r && o.push(String(arguments[a])));
          return o.join("");
        },
      });
    },
    "3a2f": function (e, t, n) {
      "use strict";
      var r = n("93e0"),
        i = n("2761"),
        A = n("c94e"),
        o = n("de24")("species");
      e.exports = function (e) {
        var t = r[e];
        A &&
          t &&
          !t[o] &&
          i.f(t, o, {
            configurable: !0,
            get: function () {
              return this;
            },
          });
      };
    },
    "3a9b": function (e, t, n) {
      var r = n("e330");
      e.exports = r({}.isPrototypeOf);
    },
    "3afb": function (e, t, n) {
      var r = n("de24")("match");
      e.exports = function (e) {
        var t = /./;
        try {
          "/./"[e](t);
        } catch (n) {
          try {
            return ((t[r] = !1), !"/./"[e](t));
          } catch (i) {}
        }
        return !0;
      };
    },
    "3bbe": function (e, t, n) {
      var r = n("1626"),
        i = String,
        A = TypeError;
      e.exports = function (e) {
        if ("object" == typeof e || r(e)) return e;
        throw A("Can't set " + i(e) + " as a prototype");
      };
    },
    "3c35": function (e, t) {
      (function (t) {
        e.exports = t;
      }).call(this, {});
    },
    "3c5d": function (e, t, n) {
      "use strict";
      var r = n("da84"),
        i = n("c65b"),
        A = n("ebb5"),
        o = n("07fa"),
        a = n("182d"),
        s = n("7b0b"),
        c = n("d039"),
        u = r.RangeError,
        l = r.Int8Array,
        h = l && l.prototype,
        f = h && h.set,
        d = A.aTypedArray,
        p = A.exportTypedArrayMethod,
        g = !c(function () {
          var e = new Uint8ClampedArray(2);
          return (i(f, e, { length: 1, 0: 3 }, 1), 3 !== e[1]);
        }),
        m =
          g &&
          A.NATIVE_ARRAY_BUFFER_VIEWS &&
          c(function () {
            var e = new l(2);
            return (e.set(1), e.set("2", 1), 0 !== e[0] || 2 !== e[1]);
          });
      p(
        "set",
        function (e) {
          d(this);
          var t = a(arguments.length > 1 ? arguments[1] : void 0, 1),
            n = s(e);
          if (g) return i(f, this, n, t);
          var r = this.length,
            A = o(n),
            c = 0;
          if (A + t > r) throw u("Wrong length");
          while (c < A) this[t + c] = n[c++];
        },
        !g || m,
      );
    },
    "3c77": function (e, t, n) {
      var r = n("f083");
      r(r.G, { global: n("93e0") });
    },
    "3ec6": function (e, t, n) {
      var r = n("f083");
      r(r.S, "Reflect", {
        has: function (e, t) {
          return t in e;
        },
      });
    },
    "3f84": function (e, t, n) {
      var r = n("f083");
      (r(r.P, "Array", { copyWithin: n("f945") }), n("66b7")("copyWithin"));
    },
    "3fab": function (e, t, n) {
      var r = n("f083");
      r(r.P, "String", { repeat: n("6012") });
    },
    4003: function (e, t, n) {
      var r = n("f083");
      r(r.S, "Math", { RAD_PER_DEG: 180 / Math.PI });
    },
    4098: function (e, t, n) {
      var r = n("f083"),
        i = n("67fe");
      r(r.S + r.F * (Number.parseInt != i), "Number", { parseInt: i });
    },
    "40d5": function (e, t, n) {
      var r = n("d039");
      e.exports = !r(function () {
        var e = function () {}.bind();
        return "function" != typeof e || e.hasOwnProperty("prototype");
      });
    },
    "415f": function (e, t, n) {
      "use strict";
      var r = n("c668"),
        i = n("4c8d").getWeak,
        A = n("d77f"),
        o = n("9fe8"),
        a = n("928a"),
        s = n("8fc4"),
        c = n("cffc"),
        u = n("2fb2"),
        l = n("798a"),
        h = c(5),
        f = c(6),
        d = 0,
        p = function (e) {
          return e._l || (e._l = new g());
        },
        g = function () {
          this.a = [];
        },
        m = function (e, t) {
          return h(e.a, function (e) {
            return e[0] === t;
          });
        };
      ((g.prototype = {
        get: function (e) {
          var t = m(this, e);
          if (t) return t[1];
        },
        has: function (e) {
          return !!m(this, e);
        },
        set: function (e, t) {
          var n = m(this, e);
          n ? (n[1] = t) : this.a.push([e, t]);
        },
        delete: function (e) {
          var t = f(this.a, function (t) {
            return t[0] === e;
          });
          return (~t && this.a.splice(t, 1), !!~t);
        },
      }),
        (e.exports = {
          getConstructor: function (e, t, n, A) {
            var c = e(function (e, r) {
              (a(e, c, t, "_i"),
                (e._t = t),
                (e._i = d++),
                (e._l = void 0),
                void 0 != r && s(r, n, e[A], e));
            });
            return (
              r(c.prototype, {
                delete: function (e) {
                  if (!o(e)) return !1;
                  var n = i(e);
                  return !0 === n
                    ? p(l(this, t))["delete"](e)
                    : n && u(n, this._i) && delete n[this._i];
                },
                has: function (e) {
                  if (!o(e)) return !1;
                  var n = i(e);
                  return !0 === n ? p(l(this, t)).has(e) : n && u(n, this._i);
                },
              }),
              c
            );
          },
          def: function (e, t, n) {
            var r = i(A(t), !0);
            return (!0 === r ? p(e).set(t, n) : (r[e._i] = n), e);
          },
          ufstore: p,
        }));
    },
    "418c": function (e, t, n) {
      "use strict";
      n("e9d8")(
        "trimLeft",
        function (e) {
          return function () {
            return e(this, 1);
          };
        },
        "trimStart",
      );
    },
    4282: function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("42ee"),
        A = n("019f"),
        o = n("ed60"),
        a = n("8d87").f;
      n("c94e") &&
        r(r.P + n("ac60"), "Object", {
          __lookupGetter__: function (e) {
            var t,
              n = i(this),
              r = A(e, !0);
            do {
              if ((t = a(n, r))) return t.get;
            } while ((n = o(n)));
          },
        });
    },
    "428b": function (e, t, n) {
      "use strict";
      var r = n("7f21"),
        i = n("9fe8"),
        A = n("6373"),
        o = n("911a"),
        a = n("de24")("isConcatSpreadable");
      function s(e, t, n, c, u, l, h, f) {
        var d,
          p,
          g = u,
          m = 0,
          v = !!h && o(h, f, 3);
        while (m < c) {
          if (m in n) {
            if (
              ((d = v ? v(n[m], m, t) : n[m]),
              (p = !1),
              i(d) && ((p = d[a]), (p = void 0 !== p ? !!p : r(d))),
              p && l > 0)
            )
              g = s(e, t, d, A(d.length), g, l - 1) - 1;
            else {
              if (g >= 9007199254740991) throw TypeError();
              e[g] = d;
            }
            g++;
          }
          m++;
        }
        return g;
      }
      e.exports = s;
    },
    "42b6": function (e, t, n) {
      n("0a66")("getOwnPropertyNames", function () {
        return n("532c").f;
      });
    },
    "42ee": function (e, t, n) {
      var r = n("688d");
      e.exports = function (e) {
        return Object(r(e));
      };
    },
    "44ad": function (e, t, n) {
      var r = n("e330"),
        i = n("d039"),
        A = n("c6b6"),
        o = Object,
        a = r("".split);
      e.exports = i(function () {
        return !o("z").propertyIsEnumerable(0);
      })
        ? function (e) {
            return "String" == A(e) ? a(e, "") : o(e);
          }
        : o;
    },
    "44d2": function (e, t, n) {
      var r = n("b622"),
        i = n("7c73"),
        A = n("9bf2").f,
        o = r("unscopables"),
        a = Array.prototype;
      (void 0 == a[o] && A(a, o, { configurable: !0, value: i(null) }),
        (e.exports = function (e) {
          a[o][e] = !0;
        }));
    },
    "44e8": function (e, t, n) {
      var r = n("d77f"),
        i = n("9fe8"),
        A = n("e7ff");
      e.exports = function (e, t) {
        if ((r(e), i(t) && t.constructor === e)) return t;
        var n = A.f(e),
          o = n.resolve;
        return (o(t), n.promise);
      };
    },
    "453f": function (e, t, n) {
      var r = n("37a2"),
        i = n("688d");
      e.exports = function (e, t, n) {
        if (r(t)) throw TypeError("String#" + n + " doesn't accept regex!");
        return String(i(e));
      };
    },
    4592: function (e, t) {
      var n = Math.expm1;
      e.exports =
        !n ||
        n(10) > 22025.465794806718 ||
        n(10) < 22025.465794806718 ||
        -2e-17 != n(-2e-17)
          ? function (e) {
              return 0 == (e = +e)
                ? e
                : e > -1e-6 && e < 1e-6
                  ? e + (e * e) / 2
                  : Math.exp(e) - 1;
            }
          : n;
    },
    "45bc": function (e, t, n) {
      var r = n("de24")("toPrimitive"),
        i = Date.prototype;
      r in i || n("0713")(i, r, n("5705"));
    },
    4721: function (e, t, n) {
      "use strict";
      n.d(t, "a", function () {
        return i;
      });
      var r = n("5a89"),
        i = function (e, t) {
          (void 0 === t &&
            console.warn(
              'THREE.OrbitControls: The second parameter "domElement" is now mandatory.',
            ),
            t === document &&
              console.log(
                'THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.',
              ),
            (this.object = e),
            (this.domElement = t),
            (this.enabled = !0),
            (this.target = new r["Fb"]()),
            (this.minDistance = 0),
            (this.maxDistance = 1 / 0),
            (this.minZoom = 0),
            (this.maxZoom = 1 / 0),
            (this.minPolarAngle = 0),
            (this.maxPolarAngle = Math.PI),
            (this.minAzimuthAngle = -1 / 0),
            (this.maxAzimuthAngle = 1 / 0),
            (this.enableDamping = !1),
            (this.dampingFactor = 0.05),
            (this.enableZoom = !0),
            (this.zoomSpeed = 1),
            (this.enableRotate = !0),
            (this.rotateSpeed = 1),
            (this.enablePan = !0),
            (this.panSpeed = 1),
            (this.screenSpacePanning = !1),
            (this.keyPanSpeed = 7),
            (this.autoRotate = !1),
            (this.autoRotateSpeed = 2),
            (this.enableKeys = !0),
            (this.keys = { LEFT: 37, UP: 38, RIGHT: 39, BOTTOM: 40 }),
            (this.mouseButtons = {
              LEFT: r["K"].ROTATE,
              MIDDLE: r["K"].DOLLY,
              RIGHT: r["K"].PAN,
            }),
            (this.touches = { ONE: r["yb"].ROTATE, TWO: r["yb"].DOLLY_PAN }),
            (this.target0 = this.target.clone()),
            (this.position0 = this.object.position.clone()),
            (this.zoom0 = this.object.zoom),
            (this.getPolarAngle = function () {
              return u.phi;
            }),
            (this.getAzimuthalAngle = function () {
              return u.theta;
            }),
            (this.saveState = function () {
              (n.target0.copy(n.target),
                n.position0.copy(n.object.position),
                (n.zoom0 = n.object.zoom));
            }),
            (this.reset = function () {
              (n.target.copy(n.target0),
                n.object.position.copy(n.position0),
                (n.object.zoom = n.zoom0),
                n.object.updateProjectionMatrix(),
                n.dispatchEvent(i),
                n.update(),
                (s = a.NONE));
            }),
            (this.update = (function () {
              var t = new r["Fb"](),
                A = new r["hb"]().setFromUnitVectors(
                  e.up,
                  new r["Fb"](0, 1, 0),
                ),
                o = A.clone().inverse(),
                p = new r["Fb"](),
                g = new r["hb"]();
              return function () {
                var e = n.object.position;
                return (
                  t.copy(e).sub(n.target),
                  t.applyQuaternion(A),
                  u.setFromVector3(t),
                  n.autoRotate && s === a.NONE && E(x()),
                  n.enableDamping
                    ? ((u.theta += l.theta * n.dampingFactor),
                      (u.phi += l.phi * n.dampingFactor))
                    : ((u.theta += l.theta), (u.phi += l.phi)),
                  (u.theta = Math.max(
                    n.minAzimuthAngle,
                    Math.min(n.maxAzimuthAngle, u.theta),
                  )),
                  (u.phi = Math.max(
                    n.minPolarAngle,
                    Math.min(n.maxPolarAngle, u.phi),
                  )),
                  u.makeSafe(),
                  (u.radius *= h),
                  (u.radius = Math.max(
                    n.minDistance,
                    Math.min(n.maxDistance, u.radius),
                  )),
                  !0 === n.enableDamping
                    ? n.target.addScaledVector(f, n.dampingFactor)
                    : n.target.add(f),
                  t.setFromSpherical(u),
                  t.applyQuaternion(o),
                  e.copy(n.target).add(t),
                  n.object.lookAt(n.target),
                  !0 === n.enableDamping
                    ? ((l.theta *= 1 - n.dampingFactor),
                      (l.phi *= 1 - n.dampingFactor),
                      f.multiplyScalar(1 - n.dampingFactor))
                    : (l.set(0, 0, 0), f.set(0, 0, 0)),
                  (h = 1),
                  !!(
                    d ||
                    p.distanceToSquared(n.object.position) > c ||
                    8 * (1 - g.dot(n.object.quaternion)) > c
                  ) &&
                    (n.dispatchEvent(i),
                    p.copy(n.object.position),
                    g.copy(n.object.quaternion),
                    (d = !1),
                    !0)
                );
              };
            })()),
            (this.dispose = function () {
              (n.domElement.removeEventListener("contextmenu", ae, !1),
                n.domElement.removeEventListener("mousedown", $, !1),
                n.domElement.removeEventListener("wheel", ne, !1),
                n.domElement.removeEventListener("touchstart", ie, !1),
                n.domElement.removeEventListener("touchend", oe, !1),
                n.domElement.removeEventListener("touchmove", Ae, !1),
                document.removeEventListener("mousemove", ee, !1),
                document.removeEventListener("mouseup", te, !1),
                n.domElement.removeEventListener("keydown", re, !1));
            }));
          var n = this,
            i = { type: "change" },
            A = { type: "start" },
            o = { type: "end" },
            a = {
              NONE: -1,
              ROTATE: 0,
              DOLLY: 1,
              PAN: 2,
              TOUCH_ROTATE: 3,
              TOUCH_PAN: 4,
              TOUCH_DOLLY_PAN: 5,
              TOUCH_DOLLY_ROTATE: 6,
            },
            s = a.NONE,
            c = 1e-6,
            u = new r["vb"](),
            l = new r["vb"](),
            h = 1,
            f = new r["Fb"](),
            d = !1,
            p = new r["Eb"](),
            g = new r["Eb"](),
            m = new r["Eb"](),
            v = new r["Eb"](),
            y = new r["Eb"](),
            w = new r["Eb"](),
            B = new r["Eb"](),
            b = new r["Eb"](),
            _ = new r["Eb"]();
          function x() {
            return ((2 * Math.PI) / 60 / 60) * n.autoRotateSpeed;
          }
          function C() {
            return Math.pow(0.95, n.zoomSpeed);
          }
          function E(e) {
            l.theta -= e;
          }
          function M(e) {
            l.phi -= e;
          }
          var S = (function () {
              var e = new r["Fb"]();
              return function (t, n) {
                (e.setFromMatrixColumn(n, 0), e.multiplyScalar(-t), f.add(e));
              };
            })(),
            F = (function () {
              var e = new r["Fb"]();
              return function (t, r) {
                (!0 === n.screenSpacePanning
                  ? e.setFromMatrixColumn(r, 1)
                  : (e.setFromMatrixColumn(r, 0),
                    e.crossVectors(n.object.up, e)),
                  e.multiplyScalar(t),
                  f.add(e));
              };
            })(),
            T = (function () {
              var e = new r["Fb"]();
              return function (t, r) {
                var i = n.domElement;
                if (n.object.isPerspectiveCamera) {
                  var A = n.object.position;
                  e.copy(A).sub(n.target);
                  var o = e.length();
                  ((o *= Math.tan(((n.object.fov / 2) * Math.PI) / 180)),
                    S((2 * t * o) / i.clientHeight, n.object.matrix),
                    F((2 * r * o) / i.clientHeight, n.object.matrix));
                } else
                  n.object.isOrthographicCamera
                    ? (S(
                        (t * (n.object.right - n.object.left)) /
                          n.object.zoom /
                          i.clientWidth,
                        n.object.matrix,
                      ),
                      F(
                        (r * (n.object.top - n.object.bottom)) /
                          n.object.zoom /
                          i.clientHeight,
                        n.object.matrix,
                      ))
                    : (console.warn(
                        "WARNING: OrbitControls.js encountered an unknown camera type - pan disabled.",
                      ),
                      (n.enablePan = !1));
              };
            })();
          function U(e) {
            n.object.isPerspectiveCamera
              ? (h /= e)
              : n.object.isOrthographicCamera
                ? ((n.object.zoom = Math.max(
                    n.minZoom,
                    Math.min(n.maxZoom, n.object.zoom * e),
                  )),
                  n.object.updateProjectionMatrix(),
                  (d = !0))
                : (console.warn(
                    "WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.",
                  ),
                  (n.enableZoom = !1));
          }
          function Q(e) {
            n.object.isPerspectiveCamera
              ? (h *= e)
              : n.object.isOrthographicCamera
                ? ((n.object.zoom = Math.max(
                    n.minZoom,
                    Math.min(n.maxZoom, n.object.zoom / e),
                  )),
                  n.object.updateProjectionMatrix(),
                  (d = !0))
                : (console.warn(
                    "WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.",
                  ),
                  (n.enableZoom = !1));
          }
          function L(e) {
            p.set(e.clientX, e.clientY);
          }
          function I(e) {
            B.set(e.clientX, e.clientY);
          }
          function H(e) {
            v.set(e.clientX, e.clientY);
          }
          function O(e) {
            (g.set(e.clientX, e.clientY),
              m.subVectors(g, p).multiplyScalar(n.rotateSpeed));
            var t = n.domElement;
            (E((2 * Math.PI * m.x) / t.clientHeight),
              M((2 * Math.PI * m.y) / t.clientHeight),
              p.copy(g),
              n.update());
          }
          function R(e) {
            (b.set(e.clientX, e.clientY),
              _.subVectors(b, B),
              _.y > 0 ? U(C()) : _.y < 0 && Q(C()),
              B.copy(b),
              n.update());
          }
          function P(e) {
            (y.set(e.clientX, e.clientY),
              w.subVectors(y, v).multiplyScalar(n.panSpeed),
              T(w.x, w.y),
              v.copy(y),
              n.update());
          }
          function D() {}
          function N(e) {
            (e.deltaY < 0 ? Q(C()) : e.deltaY > 0 && U(C()), n.update());
          }
          function k(e) {
            var t = !1;
            switch (e.keyCode) {
              case n.keys.UP:
                (T(0, n.keyPanSpeed), (t = !0));
                break;
              case n.keys.BOTTOM:
                (T(0, -n.keyPanSpeed), (t = !0));
                break;
              case n.keys.LEFT:
                (T(n.keyPanSpeed, 0), (t = !0));
                break;
              case n.keys.RIGHT:
                (T(-n.keyPanSpeed, 0), (t = !0));
                break;
            }
            t && (e.preventDefault(), n.update());
          }
          function G(e) {
            if (1 == e.touches.length)
              p.set(e.touches[0].pageX, e.touches[0].pageY);
            else {
              var t = 0.5 * (e.touches[0].pageX + e.touches[1].pageX),
                n = 0.5 * (e.touches[0].pageY + e.touches[1].pageY);
              p.set(t, n);
            }
          }
          function V(e) {
            if (1 == e.touches.length)
              v.set(e.touches[0].pageX, e.touches[0].pageY);
            else {
              var t = 0.5 * (e.touches[0].pageX + e.touches[1].pageX),
                n = 0.5 * (e.touches[0].pageY + e.touches[1].pageY);
              v.set(t, n);
            }
          }
          function z(e) {
            var t = e.touches[0].pageX - e.touches[1].pageX,
              n = e.touches[0].pageY - e.touches[1].pageY,
              r = Math.sqrt(t * t + n * n);
            B.set(0, r);
          }
          function j(e) {
            (n.enableZoom && z(e), n.enablePan && V(e));
          }
          function K(e) {
            (n.enableZoom && z(e), n.enableRotate && G(e));
          }
          function W(e) {
            if (1 == e.touches.length)
              g.set(e.touches[0].pageX, e.touches[0].pageY);
            else {
              var t = 0.5 * (e.touches[0].pageX + e.touches[1].pageX),
                r = 0.5 * (e.touches[0].pageY + e.touches[1].pageY);
              g.set(t, r);
            }
            m.subVectors(g, p).multiplyScalar(n.rotateSpeed);
            var i = n.domElement;
            (E((2 * Math.PI * m.x) / i.clientHeight),
              M((2 * Math.PI * m.y) / i.clientHeight),
              p.copy(g));
          }
          function X(e) {
            if (1 == e.touches.length)
              y.set(e.touches[0].pageX, e.touches[0].pageY);
            else {
              var t = 0.5 * (e.touches[0].pageX + e.touches[1].pageX),
                r = 0.5 * (e.touches[0].pageY + e.touches[1].pageY);
              y.set(t, r);
            }
            (w.subVectors(y, v).multiplyScalar(n.panSpeed),
              T(w.x, w.y),
              v.copy(y));
          }
          function Y(e) {
            var t = e.touches[0].pageX - e.touches[1].pageX,
              r = e.touches[0].pageY - e.touches[1].pageY,
              i = Math.sqrt(t * t + r * r);
            (b.set(0, i),
              _.set(0, Math.pow(b.y / B.y, n.zoomSpeed)),
              U(_.y),
              B.copy(b));
          }
          function J(e) {
            (n.enableZoom && Y(e), n.enablePan && X(e));
          }
          function q(e) {
            (n.enableZoom && Y(e), n.enableRotate && W(e));
          }
          function Z() {}
          function $(e) {
            if (!1 !== n.enabled) {
              var t;
              switch (
                (e.preventDefault(),
                n.domElement.focus ? n.domElement.focus() : window.focus(),
                e.button)
              ) {
                case 0:
                  t = n.mouseButtons.LEFT;
                  break;
                case 1:
                  t = n.mouseButtons.MIDDLE;
                  break;
                case 2:
                  t = n.mouseButtons.RIGHT;
                  break;
                default:
                  t = -1;
              }
              switch (t) {
                case r["K"].DOLLY:
                  if (!1 === n.enableZoom) return;
                  (I(e), (s = a.DOLLY));
                  break;
                case r["K"].ROTATE:
                  if (e.ctrlKey || e.metaKey || e.shiftKey) {
                    if (!1 === n.enablePan) return;
                    (H(e), (s = a.PAN));
                  } else {
                    if (!1 === n.enableRotate) return;
                    (L(e), (s = a.ROTATE));
                  }
                  break;
                case r["K"].PAN:
                  if (e.ctrlKey || e.metaKey || e.shiftKey) {
                    if (!1 === n.enableRotate) return;
                    (L(e), (s = a.ROTATE));
                  } else {
                    if (!1 === n.enablePan) return;
                    (H(e), (s = a.PAN));
                  }
                  break;
                default:
                  s = a.NONE;
              }
              s !== a.NONE &&
                (document.addEventListener("mousemove", ee, !1),
                document.addEventListener("mouseup", te, !1),
                n.dispatchEvent(A));
            }
          }
          function ee(e) {
            if (!1 !== n.enabled)
              switch ((e.preventDefault(), s)) {
                case a.ROTATE:
                  if (!1 === n.enableRotate) return;
                  O(e);
                  break;
                case a.DOLLY:
                  if (!1 === n.enableZoom) return;
                  R(e);
                  break;
                case a.PAN:
                  if (!1 === n.enablePan) return;
                  P(e);
                  break;
              }
          }
          function te(e) {
            !1 !== n.enabled &&
              (D(e),
              document.removeEventListener("mousemove", ee, !1),
              document.removeEventListener("mouseup", te, !1),
              n.dispatchEvent(o),
              (s = a.NONE));
          }
          function ne(e) {
            !1 === n.enabled ||
              !1 === n.enableZoom ||
              (s !== a.NONE && s !== a.ROTATE) ||
              (e.preventDefault(),
              e.stopPropagation(),
              n.dispatchEvent(A),
              N(e),
              n.dispatchEvent(o));
          }
          function re(e) {
            !1 !== n.enabled &&
              !1 !== n.enableKeys &&
              !1 !== n.enablePan &&
              k(e);
          }
          function ie(e) {
            if (!1 !== n.enabled) {
              switch ((e.preventDefault(), e.touches.length)) {
                case 1:
                  switch (n.touches.ONE) {
                    case r["yb"].ROTATE:
                      if (!1 === n.enableRotate) return;
                      (G(e), (s = a.TOUCH_ROTATE));
                      break;
                    case r["yb"].PAN:
                      if (!1 === n.enablePan) return;
                      (V(e), (s = a.TOUCH_PAN));
                      break;
                    default:
                      s = a.NONE;
                  }
                  break;
                case 2:
                  switch (n.touches.TWO) {
                    case r["yb"].DOLLY_PAN:
                      if (!1 === n.enableZoom && !1 === n.enablePan) return;
                      (j(e), (s = a.TOUCH_DOLLY_PAN));
                      break;
                    case r["yb"].DOLLY_ROTATE:
                      if (!1 === n.enableZoom && !1 === n.enableRotate) return;
                      (K(e), (s = a.TOUCH_DOLLY_ROTATE));
                      break;
                    default:
                      s = a.NONE;
                  }
                  break;
                default:
                  s = a.NONE;
              }
              s !== a.NONE && n.dispatchEvent(A);
            }
          }
          function Ae(e) {
            if (!1 !== n.enabled)
              switch ((e.preventDefault(), e.stopPropagation(), s)) {
                case a.TOUCH_ROTATE:
                  if (!1 === n.enableRotate) return;
                  (W(e), n.update());
                  break;
                case a.TOUCH_PAN:
                  if (!1 === n.enablePan) return;
                  (X(e), n.update());
                  break;
                case a.TOUCH_DOLLY_PAN:
                  if (!1 === n.enableZoom && !1 === n.enablePan) return;
                  (J(e), n.update());
                  break;
                case a.TOUCH_DOLLY_ROTATE:
                  if (!1 === n.enableZoom && !1 === n.enableRotate) return;
                  (q(e), n.update());
                  break;
                default:
                  s = a.NONE;
              }
          }
          function oe(e) {
            !1 !== n.enabled && (Z(e), n.dispatchEvent(o), (s = a.NONE));
          }
          function ae(e) {
            !1 !== n.enabled && e.preventDefault();
          }
          (n.domElement.addEventListener("contextmenu", ae, !1),
            n.domElement.addEventListener("mousedown", $, !1),
            n.domElement.addEventListener("wheel", ne, !1),
            n.domElement.addEventListener("touchstart", ie, !1),
            n.domElement.addEventListener("touchend", oe, !1),
            n.domElement.addEventListener("touchmove", Ae, !1),
            n.domElement.addEventListener("keydown", re, !1),
            -1 === n.domElement.tabIndex && (n.domElement.tabIndex = 0),
            this.update());
        };
      ((i.prototype = Object.create(r["o"].prototype)),
        (i.prototype.constructor = i));
      var A = function (e, t) {
        (i.call(this, e, t),
          (this.mouseButtons.LEFT = r["K"].PAN),
          (this.mouseButtons.RIGHT = r["K"].ROTATE),
          (this.touches.ONE = r["yb"].PAN),
          (this.touches.TWO = r["yb"].DOLLY_ROTATE));
      };
      ((A.prototype = Object.create(r["o"].prototype)),
        (A.prototype.constructor = A));
    },
    4759: function (e, t, n) {
      var r = n("9fe8"),
        i = n("d77f"),
        A = function (e, t) {
          if ((i(e), !r(t) && null !== t))
            throw TypeError(t + ": can't set as prototype!");
        };
      e.exports = {
        set:
          Object.setPrototypeOf ||
          ("__proto__" in {}
            ? (function (e, t, r) {
                try {
                  ((r = n("911a")(
                    Function.call,
                    n("8d87").f(Object.prototype, "__proto__").set,
                    2,
                  )),
                    r(e, []),
                    (t = !(e instanceof Array)));
                } catch (i) {
                  t = !0;
                }
                return function (e, n) {
                  return (A(e, n), t ? (e.__proto__ = n) : r(e, n), e);
                };
              })({}, !1)
            : void 0),
        check: A,
      };
    },
    "485a": function (e, t, n) {
      var r = n("c65b"),
        i = n("1626"),
        A = n("861d"),
        o = TypeError;
      e.exports = function (e, t) {
        var n, a;
        if ("string" === t && i((n = e.toString)) && !A((a = r(n, e))))
          return a;
        if (i((n = e.valueOf)) && !A((a = r(n, e)))) return a;
        if ("string" !== t && i((n = e.toString)) && !A((a = r(n, e))))
          return a;
        throw o("Can't convert object to primitive value");
      };
    },
    4930: function (e, t, n) {
      var r = n("2d00"),
        i = n("d039");
      e.exports =
        !!Object.getOwnPropertySymbols &&
        !i(function () {
          var e = Symbol();
          return (
            !String(e) ||
            !(Object(e) instanceof Symbol) ||
            (!Symbol.sham && r && r < 41)
          );
        });
    },
    "4ada": function (e, t, n) {
      var r = n("f083");
      r(r.S, "Math", {
        log2: function (e) {
          return Math.log(e) / Math.LN2;
        },
      });
    },
    "4afb": function (e, t, n) {
      var r = n("f083");
      r(r.S + r.F * !n("c94e"), "Object", { defineProperties: n("77f4") });
    },
    "4b12": function (e, t, n) {
      var r = n("f083");
      r(r.S, "Math", {
        umulh: function (e, t) {
          var n = 65535,
            r = +e,
            i = +t,
            A = r & n,
            o = i & n,
            a = r >>> 16,
            s = i >>> 16,
            c = ((a * o) >>> 0) + ((A * o) >>> 16);
          return a * s + (c >>> 16) + ((((A * s) >>> 0) + (c & n)) >>> 16);
        },
      });
    },
    "4b30": function (e, t, n) {
      var r = Date.prototype,
        i = "Invalid Date",
        A = "toString",
        o = r[A],
        a = r.getTime;
      new Date(NaN) + "" != i &&
        n("77ea")(r, A, function () {
          var e = a.call(this);
          return e === e ? o.call(this) : i;
        });
    },
    "4c8d": function (e, t, n) {
      var r = n("5689")("meta"),
        i = n("9fe8"),
        A = n("2fb2"),
        o = n("2761").f,
        a = 0,
        s =
          Object.isExtensible ||
          function () {
            return !0;
          },
        c = !n("f937")(function () {
          return s(Object.preventExtensions({}));
        }),
        u = function (e) {
          o(e, r, { value: { i: "O" + ++a, w: {} } });
        },
        l = function (e, t) {
          if (!i(e))
            return "symbol" == typeof e
              ? e
              : ("string" == typeof e ? "S" : "P") + e;
          if (!A(e, r)) {
            if (!s(e)) return "F";
            if (!t) return "E";
            u(e);
          }
          return e[r].i;
        },
        h = function (e, t) {
          if (!A(e, r)) {
            if (!s(e)) return !0;
            if (!t) return !1;
            u(e);
          }
          return e[r].w;
        },
        f = function (e) {
          return (c && d.NEED && s(e) && !A(e, r) && u(e), e);
        },
        d = (e.exports = {
          KEY: r,
          NEED: !1,
          fastKey: l,
          getWeak: h,
          onFreeze: f,
        });
    },
    "4d64": function (e, t, n) {
      var r = n("fc6a"),
        i = n("23cb"),
        A = n("07fa"),
        o = function (e) {
          return function (t, n, o) {
            var a,
              s = r(t),
              c = A(s),
              u = i(o, c);
            if (e && n != n) {
              while (c > u) if (((a = s[u++]), a != a)) return !0;
            } else
              for (; c > u; u++)
                if ((e || u in s) && s[u] === n) return e || u || 0;
            return !e && -1;
          };
        };
      e.exports = { includes: o(!0), indexOf: o(!1) };
    },
    "4ec0": function (e, t, n) {
      var r = n("9fe8");
      n("0a66")("isExtensible", function (e) {
        return function (t) {
          return !!r(t) && (!e || e(t));
        };
      });
    },
    "4fd5": function (e, t, n) {
      var r = n("1c6a"),
        i = n("d77f"),
        A = r.get,
        o = r.key;
      r.exp({
        getOwnMetadata: function (e, t) {
          return A(e, i(t), arguments.length < 3 ? void 0 : o(arguments[2]));
        },
      });
    },
    5010: function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("42ee"),
        A = n("019f"),
        o = n("ed60"),
        a = n("8d87").f;
      n("c94e") &&
        r(r.P + n("ac60"), "Object", {
          __lookupSetter__: function (e) {
            var t,
              n = i(this),
              r = A(e, !0);
            do {
              if ((t = a(n, r))) return t.set;
            } while ((n = o(n)));
          },
        });
    },
    5013: function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("f937"),
        A = n("2aef"),
        o = (1).toPrecision;
      r(
        r.P +
          r.F *
            (i(function () {
              return "1" !== o.call(1, void 0);
            }) ||
              !i(function () {
                o.call({});
              })),
        "Number",
        {
          toPrecision: function (e) {
            var t = A(this, "Number#toPrecision: incorrect invocation!");
            return void 0 === e ? o.call(t) : o.call(t, e);
          },
        },
      );
    },
    "50c4": function (e, t, n) {
      var r = n("5926"),
        i = Math.min;
      e.exports = function (e) {
        return e > 0 ? i(r(e), 9007199254740991) : 0;
      };
    },
    "50fc": function (e, t, n) {
      n("1b1e")("Int8", 1, function (e) {
        return function (t, n, r) {
          return e(this, t, n, r);
        };
      });
    },
    5147: function (e, t, n) {
      n("1b1e")(
        "Uint8",
        1,
        function (e) {
          return function (t, n, r) {
            return e(this, t, n, r);
          };
        },
        !0,
      );
    },
    5155: function (e, t, n) {
      var r = n("1c2d"),
        i = n("de24")("toStringTag"),
        A =
          "Arguments" ==
          r(
            (function () {
              return arguments;
            })(),
          ),
        o = function (e, t) {
          try {
            return e[t];
          } catch (n) {}
        };
      e.exports = function (e) {
        var t, n, a;
        return void 0 === e
          ? "Undefined"
          : null === e
            ? "Null"
            : "string" == typeof (n = o((t = Object(e)), i))
              ? n
              : A
                ? r(t)
                : "Object" == (a = r(t)) && "function" == typeof t.callee
                  ? "Arguments"
                  : a;
      };
    },
    "52d5": function (e, t, n) {
      "use strict";
      var r = n("2761"),
        i = n("fb32");
      e.exports = function (e, t, n) {
        t in e ? r.f(e, t, i(0, n)) : (e[t] = n);
      };
    },
    "532c": function (e, t, n) {
      var r = n("5d6f"),
        i = n("dbb2").f,
        A = {}.toString,
        o =
          "object" == typeof window && window && Object.getOwnPropertyNames
            ? Object.getOwnPropertyNames(window)
            : [],
        a = function (e) {
          try {
            return i(e);
          } catch (t) {
            return o.slice();
          }
        };
      e.exports.f = function (e) {
        return o && "[object Window]" == A.call(e) ? a(e) : i(r(e));
      };
    },
    5377: function (e, t, n) {
      var r = n("da84"),
        i = n("83ab"),
        A = n("edd0"),
        o = n("ad6d"),
        a = n("d039"),
        s = r.RegExp,
        c = s.prototype,
        u =
          i &&
          a(function () {
            var e = !0;
            try {
              s(".", "d");
            } catch (u) {
              e = !1;
            }
            var t = {},
              n = "",
              r = e ? "dgimsy" : "gimsy",
              i = function (e, r) {
                Object.defineProperty(t, e, {
                  get: function () {
                    return ((n += r), !0);
                  },
                });
              },
              A = {
                dotAll: "s",
                global: "g",
                ignoreCase: "i",
                multiline: "m",
                sticky: "y",
              };
            for (var o in (e && (A.hasIndices = "d"), A)) i(o, A[o]);
            var a = Object.getOwnPropertyDescriptor(c, "flags").get.call(t);
            return a !== r || n !== r;
          });
      u && A(c, "flags", { configurable: !0, get: o });
    },
    5398: function (e, t, n) {
      "use strict";
      n("e9d8")(
        "trimRight",
        function (e) {
          return function () {
            return e(this, 2);
          };
        },
        "trimEnd",
      );
    },
    "53d3": function (e, t, n) {
      var r = n("9b6f"),
        i = n("6373");
      e.exports = function (e) {
        if (void 0 === e) return 0;
        var t = r(e),
          n = i(t);
        if (t !== n) throw RangeError("Wrong length!");
        return n;
      };
    },
    5406: function (e, t, n) {
      var r = n("f083"),
        i = n("7bc9");
      r(r.S, "Math", {
        cbrt: function (e) {
          return i((e = +e)) * Math.pow(Math.abs(e), 1 / 3);
        },
      });
    },
    "55c7": function (e, t, n) {
      "use strict";
      var r = n("f937");
      e.exports = function (e, t) {
        return (
          !!e &&
          r(function () {
            t ? e.call(null, function () {}, 1) : e.call(null);
          })
        );
      };
    },
    "55c9": function (e, t, n) {
      n("7bb0")("WeakSet");
    },
    5689: function (e, t) {
      var n = 0,
        r = Math.random();
      e.exports = function (e) {
        return "Symbol(".concat(
          void 0 === e ? "" : e,
          ")_",
          (++n + r).toString(36),
        );
      };
    },
    5692: function (e, t, n) {
      var r = n("c430"),
        i = n("c6cd");
      (e.exports = function (e, t) {
        return i[e] || (i[e] = void 0 !== t ? t : {});
      })("versions", []).push({
        version: "3.24.1",
        mode: r ? "pure" : "global",
        copyright: "© 2014-2022 Denis Pushkarev (zloirock.ru)",
        license: "https://github.com/zloirock/core-js/blob/v3.24.1/LICENSE",
        source: "https://github.com/zloirock/core-js",
      });
    },
    "56ef": function (e, t, n) {
      var r = n("d066"),
        i = n("e330"),
        A = n("241c"),
        o = n("7418"),
        a = n("825a"),
        s = i([].concat);
      e.exports =
        r("Reflect", "ownKeys") ||
        function (e) {
          var t = A.f(a(e)),
            n = o.f;
          return n ? s(t, n(e)) : t;
        };
    },
    5705: function (e, t, n) {
      "use strict";
      var r = n("d77f"),
        i = n("019f"),
        A = "number";
      e.exports = function (e) {
        if ("string" !== e && e !== A && "default" !== e)
          throw TypeError("Incorrect hint");
        return i(r(this), e != A);
      };
    },
    5741: function (e, t, n) {
      var r = n("5d6f"),
        i = n("8d87").f;
      n("0a66")("getOwnPropertyDescriptor", function () {
        return function (e, t) {
          return i(r(e), t);
        };
      });
    },
    "577e": function (e, t, n) {
      var r = n("f5df"),
        i = String;
      e.exports = function (e) {
        if ("Symbol" === r(e))
          throw TypeError("Cannot convert a Symbol value to a string");
        return i(e);
      };
    },
    5926: function (e, t, n) {
      var r = n("b42e");
      e.exports = function (e) {
        var t = +e;
        return t !== t || 0 === t ? 0 : r(t);
      };
    },
    "59ad": function (e, t) {
      e.exports =
        Math.scale ||
        function (e, t, n, r, i) {
          return 0 === arguments.length ||
            e != e ||
            t != t ||
            n != n ||
            r != r ||
            i != i
            ? NaN
            : e === 1 / 0 || e === -1 / 0
              ? e
              : ((e - t) * (i - r)) / (n - t) + r;
        };
    },
    "59ed": function (e, t, n) {
      var r = n("1626"),
        i = n("0d51"),
        A = TypeError;
      e.exports = function (e) {
        if (r(e)) return e;
        throw A(i(e) + " is not a function");
      };
    },
    "5a5d": function (e, t, n) {
      var r = n("30de"),
        i = n("68ae");
      e.exports =
        Object.keys ||
        function (e) {
          return r(e, i);
        };
    },
    "5a6b": function (e, t, n) {
      var r = n("f083"),
        i = n("2584")(!1);
      r(r.S, "Object", {
        values: function (e) {
          return i(e);
        },
      });
    },
    "5a89": function (e, t, n) {
      "use strict";
      (n.d(t, "a", function () {
        return b;
      }),
        n.d(t, "b", function () {
          return Nf;
        }),
        n.d(t, "c", function () {
          return Ph;
        }),
        n.d(t, "d", function () {
          return mu;
        }),
        n.d(t, "e", function () {
          return ur;
        }),
        n.d(t, "f", function () {
          return Yr;
        }),
        n.d(t, "g", function () {
          return di;
        }),
        n.d(t, "h", function () {
          return ue;
        }),
        n.d(t, "i", function () {
          return dd;
        }),
        n.d(t, "j", function () {
          return Nr;
        }),
        n.d(t, "k", function () {
          return B;
        }),
        n.d(t, "l", function () {
          return Yh;
        }),
        n.d(t, "m", function () {
          return Df;
        }),
        n.d(t, "n", function () {
          return d;
        }),
        n.d(t, "o", function () {
          return an;
        }),
        n.d(t, "p", function () {
          return Kh;
        }),
        n.d(t, "q", function () {
          return xe;
        }),
        n.d(t, "r", function () {
          return h;
        }),
        n.d(t, "s", function () {
          return Pc;
        }),
        n.d(t, "t", function () {
          return Ce;
        }),
        n.d(t, "u", function () {
          return bu;
        }),
        n.d(t, "v", function () {
          return jc;
        }),
        n.d(t, "w", function () {
          return Xc;
        }),
        n.d(t, "x", function () {
          return Eh;
        }),
        n.d(t, "y", function () {
          return Lt;
        }),
        n.d(t, "z", function () {
          return It;
        }),
        n.d(t, "A", function () {
          return Fu;
        }),
        n.d(t, "B", function () {
          return _u;
        }),
        n.d(t, "C", function () {
          return Lu;
        }),
        n.d(t, "D", function () {
          return Qu;
        }),
        n.d(t, "E", function () {
          return zt;
        }),
        n.d(t, "F", function () {
          return pe;
        }),
        n.d(t, "G", function () {
          return me;
        }),
        n.d(t, "H", function () {
          return ge;
        }),
        n.d(t, "I", function () {
          return zh;
        }),
        n.d(t, "J", function () {
          return jf;
        }),
        n.d(t, "K", function () {
          return i;
        }),
        n.d(t, "L", function () {
          return Kr;
        }),
        n.d(t, "M", function () {
          return ln;
        }),
        n.d(t, "N", function () {
          return Un;
        }),
        n.d(t, "O", function () {
          return Qi;
        }),
        n.d(t, "P", function () {
          return Wr;
        }),
        n.d(t, "Q", function () {
          return mh;
        }),
        n.d(t, "R", function () {
          return gh;
        }),
        n.d(t, "S", function () {
          return le;
        }),
        n.d(t, "T", function () {
          return he;
        }),
        n.d(t, "U", function () {
          return de;
        }),
        n.d(t, "V", function () {
          return fe;
        }),
        n.d(t, "W", function () {
          return Lh;
        }),
        n.d(t, "X", function () {
          return Yn;
        }),
        n.d(t, "Y", function () {
          return S;
        }),
        n.d(t, "Z", function () {
          return Rf;
        }),
        n.d(t, "ab", function () {
          return Xp;
        }),
        n.d(t, "bb", function () {
          return Yi;
        }),
        n.d(t, "cb", function () {
          return aA;
        }),
        n.d(t, "db", function () {
          return Of;
        }),
        n.d(t, "eb", function () {
          return Du;
        }),
        n.d(t, "fb", function () {
          return Iu;
        }),
        n.d(t, "gb", function () {
          return Dd;
        }),
        n.d(t, "hb", function () {
          return wn;
        }),
        n.d(t, "ib", function () {
          return Hh;
        }),
        n.d(t, "jb", function () {
          return Qe;
        }),
        n.d(t, "kb", function () {
          return Wt;
        }),
        n.d(t, "lb", function () {
          return He;
        }),
        n.d(t, "mb", function () {
          return Ue;
        }),
        n.d(t, "nb", function () {
          return jd;
        }),
        n.d(t, "ob", function () {
          return ce;
        }),
        n.d(t, "pb", function () {
          return Jn;
        }),
        n.d(t, "qb", function () {
          return Wi;
        }),
        n.d(t, "rb", function () {
          return gu;
        }),
        n.d(t, "sb", function () {
          return fu;
        }),
        n.d(t, "tb", function () {
          return fr;
        }),
        n.d(t, "ub", function () {
          return Zl;
        }),
        n.d(t, "vb", function () {
          return Xd;
        }),
        n.d(t, "wb", function () {
          return If;
        }),
        n.d(t, "xb", function () {
          return U;
        }),
        n.d(t, "yb", function () {
          return A;
        }),
        n.d(t, "zb", function () {
          return en;
        }),
        n.d(t, "Ab", function () {
          return Zh;
        }),
        n.d(t, "Bb", function () {
          return Vt;
        }),
        n.d(t, "Cb", function () {
          return Gt;
        }),
        n.d(t, "Db", function () {
          return ve;
        }),
        n.d(t, "Eb", function () {
          return hn;
        }),
        n.d(t, "Fb", function () {
          return _n;
        }),
        n.d(t, "Gb", function () {
          return mn;
        }),
        n.d(t, "Hb", function () {
          return Rh;
        }),
        n.d(t, "Ib", function () {
          return Gc;
        }),
        n.d(t, "Jb", function () {
          return jt;
        }));
      (n("d9e2"),
        n("33d1"),
        n("ea98"),
        n("907a"),
        n("3c5d"),
        n("fa9e"),
        n("77d9"),
        n("b7ef"));
      (void 0 === Number.EPSILON && (Number.EPSILON = Math.pow(2, -52)),
        void 0 === Number.isInteger &&
          (Number.isInteger = function (e) {
            return "number" === typeof e && isFinite(e) && Math.floor(e) === e;
          }),
        void 0 === Math.sign &&
          (Math.sign = function (e) {
            return e < 0 ? -1 : e > 0 ? 1 : +e;
          }),
        "name" in Function.prototype === !1 &&
          Object.defineProperty(Function.prototype, "name", {
            get: function () {
              return this.toString().match(/^\s*function\s*([^\(\s]*)/)[1];
            },
          }),
        void 0 === Object.assign &&
          (Object.assign = function (e) {
            if (void 0 === e || null === e)
              throw new TypeError("Cannot convert undefined or null to object");
            const t = Object(e);
            for (let n = 1; n < arguments.length; n++) {
              const e = arguments[n];
              if (void 0 !== e && null !== e)
                for (const n in e)
                  Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
            }
            return t;
          }));
      const r = "117",
        i = { LEFT: 0, MIDDLE: 1, RIGHT: 2, ROTATE: 0, DOLLY: 1, PAN: 2 },
        A = { ROTATE: 0, PAN: 1, DOLLY_PAN: 2, DOLLY_ROTATE: 3 },
        o = 0,
        a = 1,
        s = 2,
        c = 1,
        u = 2,
        l = 3,
        h = 0,
        f = 1,
        d = 2,
        p = 1,
        g = 0,
        m = 1,
        v = 2,
        y = 3,
        w = 4,
        B = 5,
        b = 100,
        _ = 101,
        x = 102,
        C = 103,
        E = 104,
        M = 200,
        S = 201,
        F = 202,
        T = 203,
        U = 204,
        Q = 205,
        L = 206,
        I = 207,
        H = 208,
        O = 209,
        R = 210,
        P = 0,
        D = 1,
        N = 2,
        k = 3,
        G = 4,
        V = 5,
        z = 6,
        j = 7,
        K = 0,
        W = 1,
        X = 2,
        Y = 0,
        J = 1,
        q = 2,
        Z = 3,
        $ = 4,
        ee = 5,
        te = 300,
        ne = 301,
        re = 302,
        ie = 303,
        Ae = 304,
        oe = 305,
        ae = 306,
        se = 307,
        ce = 1e3,
        ue = 1001,
        le = 1002,
        he = 1003,
        fe = 1004,
        de = 1005,
        pe = 1006,
        ge = 1007,
        me = 1008,
        ve = 1009,
        ye = 1010,
        we = 1011,
        Be = 1012,
        be = 1013,
        _e = 1014,
        xe = 1015,
        Ce = 1016,
        Ee = 1017,
        Me = 1018,
        Se = 1019,
        Fe = 1020,
        Te = 1021,
        Ue = 1022,
        Qe = 1023,
        Le = 1024,
        Ie = 1025,
        He = Qe,
        Oe = 1026,
        Re = 1027,
        Pe = 1028,
        De = 1029,
        Ne = 1030,
        ke = 1031,
        Ge = 1032,
        Ve = 1033,
        ze = 33776,
        je = 33777,
        Ke = 33778,
        We = 33779,
        Xe = 35840,
        Ye = 35841,
        Je = 35842,
        qe = 35843,
        Ze = 36196,
        $e = 37492,
        et = 37496,
        tt = 37808,
        nt = 37809,
        rt = 37810,
        it = 37811,
        At = 37812,
        ot = 37813,
        at = 37814,
        st = 37815,
        ct = 37816,
        ut = 37817,
        lt = 37818,
        ht = 37819,
        ft = 37820,
        dt = 37821,
        pt = 36492,
        gt = 37840,
        mt = 37841,
        vt = 37842,
        yt = 37843,
        wt = 37844,
        Bt = 37845,
        bt = 37846,
        _t = 37847,
        xt = 37848,
        Ct = 37849,
        Et = 37850,
        Mt = 37851,
        St = 37852,
        Ft = 37853,
        Tt = 2200,
        Ut = 2201,
        Qt = 2202,
        Lt = 2300,
        It = 2301,
        Ht = 2302,
        Ot = 2400,
        Rt = 2401,
        Pt = 2402,
        Dt = 2500,
        Nt = 2501,
        kt = 0,
        Gt = 1,
        Vt = 2,
        zt = 3e3,
        jt = 3001,
        Kt = 3007,
        Wt = 3002,
        Xt = 3003,
        Yt = 3004,
        Jt = 3005,
        qt = 3006,
        Zt = 3200,
        $t = 3201,
        en = 0,
        tn = 1,
        nn = 7680,
        rn = 519,
        An = 35044,
        on = 35048;
      function an() {}
      Object.assign(an.prototype, {
        addEventListener: function (e, t) {
          void 0 === this._listeners && (this._listeners = {});
          var n = this._listeners;
          (void 0 === n[e] && (n[e] = []),
            -1 === n[e].indexOf(t) && n[e].push(t));
        },
        hasEventListener: function (e, t) {
          if (void 0 === this._listeners) return !1;
          var n = this._listeners;
          return void 0 !== n[e] && -1 !== n[e].indexOf(t);
        },
        removeEventListener: function (e, t) {
          if (void 0 !== this._listeners) {
            var n = this._listeners,
              r = n[e];
            if (void 0 !== r) {
              var i = r.indexOf(t);
              -1 !== i && r.splice(i, 1);
            }
          }
        },
        dispatchEvent: function (e) {
          if (void 0 !== this._listeners) {
            var t = this._listeners,
              n = t[e.type];
            if (void 0 !== n) {
              e.target = this;
              for (var r = n.slice(0), i = 0, A = r.length; i < A; i++)
                r[i].call(this, e);
            }
          }
        },
      });
      for (var sn = [], cn = 0; cn < 256; cn++)
        sn[cn] = (cn < 16 ? "0" : "") + cn.toString(16);
      var un,
        ln = {
          DEG2RAD: Math.PI / 180,
          RAD2DEG: 180 / Math.PI,
          generateUUID: function () {
            var e = (4294967295 * Math.random()) | 0,
              t = (4294967295 * Math.random()) | 0,
              n = (4294967295 * Math.random()) | 0,
              r = (4294967295 * Math.random()) | 0,
              i =
                sn[255 & e] +
                sn[(e >> 8) & 255] +
                sn[(e >> 16) & 255] +
                sn[(e >> 24) & 255] +
                "-" +
                sn[255 & t] +
                sn[(t >> 8) & 255] +
                "-" +
                sn[((t >> 16) & 15) | 64] +
                sn[(t >> 24) & 255] +
                "-" +
                sn[(63 & n) | 128] +
                sn[(n >> 8) & 255] +
                "-" +
                sn[(n >> 16) & 255] +
                sn[(n >> 24) & 255] +
                sn[255 & r] +
                sn[(r >> 8) & 255] +
                sn[(r >> 16) & 255] +
                sn[(r >> 24) & 255];
            return i.toUpperCase();
          },
          clamp: function (e, t, n) {
            return Math.max(t, Math.min(n, e));
          },
          euclideanModulo: function (e, t) {
            return ((e % t) + t) % t;
          },
          mapLinear: function (e, t, n, r, i) {
            return r + ((e - t) * (i - r)) / (n - t);
          },
          lerp: function (e, t, n) {
            return (1 - n) * e + n * t;
          },
          smoothstep: function (e, t, n) {
            return e <= t
              ? 0
              : e >= n
                ? 1
                : ((e = (e - t) / (n - t)), e * e * (3 - 2 * e));
          },
          smootherstep: function (e, t, n) {
            return e <= t
              ? 0
              : e >= n
                ? 1
                : ((e = (e - t) / (n - t)),
                  e * e * e * (e * (6 * e - 15) + 10));
          },
          randInt: function (e, t) {
            return e + Math.floor(Math.random() * (t - e + 1));
          },
          randFloat: function (e, t) {
            return e + Math.random() * (t - e);
          },
          randFloatSpread: function (e) {
            return e * (0.5 - Math.random());
          },
          degToRad: function (e) {
            return e * ln.DEG2RAD;
          },
          radToDeg: function (e) {
            return e * ln.RAD2DEG;
          },
          isPowerOfTwo: function (e) {
            return 0 === (e & (e - 1)) && 0 !== e;
          },
          ceilPowerOfTwo: function (e) {
            return Math.pow(2, Math.ceil(Math.log(e) / Math.LN2));
          },
          floorPowerOfTwo: function (e) {
            return Math.pow(2, Math.floor(Math.log(e) / Math.LN2));
          },
          setQuaternionFromProperEuler: function (e, t, n, r, i) {
            var A = Math.cos,
              o = Math.sin,
              a = A(n / 2),
              s = o(n / 2),
              c = A((t + r) / 2),
              u = o((t + r) / 2),
              l = A((t - r) / 2),
              h = o((t - r) / 2),
              f = A((r - t) / 2),
              d = o((r - t) / 2);
            switch (i) {
              case "XYX":
                e.set(a * u, s * l, s * h, a * c);
                break;
              case "YZY":
                e.set(s * h, a * u, s * l, a * c);
                break;
              case "ZXZ":
                e.set(s * l, s * h, a * u, a * c);
                break;
              case "XZX":
                e.set(a * u, s * d, s * f, a * c);
                break;
              case "YXY":
                e.set(s * f, a * u, s * d, a * c);
                break;
              case "ZYZ":
                e.set(s * d, s * f, a * u, a * c);
                break;
              default:
                console.warn(
                  "THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: " +
                    i,
                );
            }
          },
        };
      function hn(e, t) {
        ((this.x = e || 0), (this.y = t || 0));
      }
      function fn() {
        ((this.elements = [1, 0, 0, 0, 1, 0, 0, 0, 1]),
          arguments.length > 0 &&
            console.log(
              "THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.",
            ));
      }
      (Object.defineProperties(hn.prototype, {
        width: {
          get: function () {
            return this.x;
          },
          set: function (e) {
            this.x = e;
          },
        },
        height: {
          get: function () {
            return this.y;
          },
          set: function (e) {
            this.y = e;
          },
        },
      }),
        Object.assign(hn.prototype, {
          isVector2: !0,
          set: function (e, t) {
            return ((this.x = e), (this.y = t), this);
          },
          setScalar: function (e) {
            return ((this.x = e), (this.y = e), this);
          },
          setX: function (e) {
            return ((this.x = e), this);
          },
          setY: function (e) {
            return ((this.y = e), this);
          },
          setComponent: function (e, t) {
            switch (e) {
              case 0:
                this.x = t;
                break;
              case 1:
                this.y = t;
                break;
              default:
                throw new Error("index is out of range: " + e);
            }
            return this;
          },
          getComponent: function (e) {
            switch (e) {
              case 0:
                return this.x;
              case 1:
                return this.y;
              default:
                throw new Error("index is out of range: " + e);
            }
          },
          clone: function () {
            return new this.constructor(this.x, this.y);
          },
          copy: function (e) {
            return ((this.x = e.x), (this.y = e.y), this);
          },
          add: function (e, t) {
            return void 0 !== t
              ? (console.warn(
                  "THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead.",
                ),
                this.addVectors(e, t))
              : ((this.x += e.x), (this.y += e.y), this);
          },
          addScalar: function (e) {
            return ((this.x += e), (this.y += e), this);
          },
          addVectors: function (e, t) {
            return ((this.x = e.x + t.x), (this.y = e.y + t.y), this);
          },
          addScaledVector: function (e, t) {
            return ((this.x += e.x * t), (this.y += e.y * t), this);
          },
          sub: function (e, t) {
            return void 0 !== t
              ? (console.warn(
                  "THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.",
                ),
                this.subVectors(e, t))
              : ((this.x -= e.x), (this.y -= e.y), this);
          },
          subScalar: function (e) {
            return ((this.x -= e), (this.y -= e), this);
          },
          subVectors: function (e, t) {
            return ((this.x = e.x - t.x), (this.y = e.y - t.y), this);
          },
          multiply: function (e) {
            return ((this.x *= e.x), (this.y *= e.y), this);
          },
          multiplyScalar: function (e) {
            return ((this.x *= e), (this.y *= e), this);
          },
          divide: function (e) {
            return ((this.x /= e.x), (this.y /= e.y), this);
          },
          divideScalar: function (e) {
            return this.multiplyScalar(1 / e);
          },
          applyMatrix3: function (e) {
            var t = this.x,
              n = this.y,
              r = e.elements;
            return (
              (this.x = r[0] * t + r[3] * n + r[6]),
              (this.y = r[1] * t + r[4] * n + r[7]),
              this
            );
          },
          min: function (e) {
            return (
              (this.x = Math.min(this.x, e.x)),
              (this.y = Math.min(this.y, e.y)),
              this
            );
          },
          max: function (e) {
            return (
              (this.x = Math.max(this.x, e.x)),
              (this.y = Math.max(this.y, e.y)),
              this
            );
          },
          clamp: function (e, t) {
            return (
              (this.x = Math.max(e.x, Math.min(t.x, this.x))),
              (this.y = Math.max(e.y, Math.min(t.y, this.y))),
              this
            );
          },
          clampScalar: function (e, t) {
            return (
              (this.x = Math.max(e, Math.min(t, this.x))),
              (this.y = Math.max(e, Math.min(t, this.y))),
              this
            );
          },
          clampLength: function (e, t) {
            var n = this.length();
            return this.divideScalar(n || 1).multiplyScalar(
              Math.max(e, Math.min(t, n)),
            );
          },
          floor: function () {
            return (
              (this.x = Math.floor(this.x)),
              (this.y = Math.floor(this.y)),
              this
            );
          },
          ceil: function () {
            return (
              (this.x = Math.ceil(this.x)),
              (this.y = Math.ceil(this.y)),
              this
            );
          },
          round: function () {
            return (
              (this.x = Math.round(this.x)),
              (this.y = Math.round(this.y)),
              this
            );
          },
          roundToZero: function () {
            return (
              (this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x)),
              (this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y)),
              this
            );
          },
          negate: function () {
            return ((this.x = -this.x), (this.y = -this.y), this);
          },
          dot: function (e) {
            return this.x * e.x + this.y * e.y;
          },
          cross: function (e) {
            return this.x * e.y - this.y * e.x;
          },
          lengthSq: function () {
            return this.x * this.x + this.y * this.y;
          },
          length: function () {
            return Math.sqrt(this.x * this.x + this.y * this.y);
          },
          manhattanLength: function () {
            return Math.abs(this.x) + Math.abs(this.y);
          },
          normalize: function () {
            return this.divideScalar(this.length() || 1);
          },
          angle: function () {
            var e = Math.atan2(-this.y, -this.x) + Math.PI;
            return e;
          },
          distanceTo: function (e) {
            return Math.sqrt(this.distanceToSquared(e));
          },
          distanceToSquared: function (e) {
            var t = this.x - e.x,
              n = this.y - e.y;
            return t * t + n * n;
          },
          manhattanDistanceTo: function (e) {
            return Math.abs(this.x - e.x) + Math.abs(this.y - e.y);
          },
          setLength: function (e) {
            return this.normalize().multiplyScalar(e);
          },
          lerp: function (e, t) {
            return (
              (this.x += (e.x - this.x) * t),
              (this.y += (e.y - this.y) * t),
              this
            );
          },
          lerpVectors: function (e, t, n) {
            return (
              (this.x = e.x + (t.x - e.x) * n),
              (this.y = e.y + (t.y - e.y) * n),
              this
            );
          },
          equals: function (e) {
            return e.x === this.x && e.y === this.y;
          },
          fromArray: function (e, t) {
            return (
              void 0 === t && (t = 0),
              (this.x = e[t]),
              (this.y = e[t + 1]),
              this
            );
          },
          toArray: function (e, t) {
            return (
              void 0 === e && (e = []),
              void 0 === t && (t = 0),
              (e[t] = this.x),
              (e[t + 1] = this.y),
              e
            );
          },
          fromBufferAttribute: function (e, t, n) {
            return (
              void 0 !== n &&
                console.warn(
                  "THREE.Vector2: offset has been removed from .fromBufferAttribute().",
                ),
              (this.x = e.getX(t)),
              (this.y = e.getY(t)),
              this
            );
          },
          rotateAround: function (e, t) {
            var n = Math.cos(t),
              r = Math.sin(t),
              i = this.x - e.x,
              A = this.y - e.y;
            return (
              (this.x = i * n - A * r + e.x),
              (this.y = i * r + A * n + e.y),
              this
            );
          },
          random: function () {
            return ((this.x = Math.random()), (this.y = Math.random()), this);
          },
        }),
        Object.assign(fn.prototype, {
          isMatrix3: !0,
          set: function (e, t, n, r, i, A, o, a, s) {
            var c = this.elements;
            return (
              (c[0] = e),
              (c[1] = r),
              (c[2] = o),
              (c[3] = t),
              (c[4] = i),
              (c[5] = a),
              (c[6] = n),
              (c[7] = A),
              (c[8] = s),
              this
            );
          },
          identity: function () {
            return (this.set(1, 0, 0, 0, 1, 0, 0, 0, 1), this);
          },
          clone: function () {
            return new this.constructor().fromArray(this.elements);
          },
          copy: function (e) {
            var t = this.elements,
              n = e.elements;
            return (
              (t[0] = n[0]),
              (t[1] = n[1]),
              (t[2] = n[2]),
              (t[3] = n[3]),
              (t[4] = n[4]),
              (t[5] = n[5]),
              (t[6] = n[6]),
              (t[7] = n[7]),
              (t[8] = n[8]),
              this
            );
          },
          extractBasis: function (e, t, n) {
            return (
              e.setFromMatrix3Column(this, 0),
              t.setFromMatrix3Column(this, 1),
              n.setFromMatrix3Column(this, 2),
              this
            );
          },
          setFromMatrix4: function (e) {
            var t = e.elements;
            return (
              this.set(t[0], t[4], t[8], t[1], t[5], t[9], t[2], t[6], t[10]),
              this
            );
          },
          multiply: function (e) {
            return this.multiplyMatrices(this, e);
          },
          premultiply: function (e) {
            return this.multiplyMatrices(e, this);
          },
          multiplyMatrices: function (e, t) {
            var n = e.elements,
              r = t.elements,
              i = this.elements,
              A = n[0],
              o = n[3],
              a = n[6],
              s = n[1],
              c = n[4],
              u = n[7],
              l = n[2],
              h = n[5],
              f = n[8],
              d = r[0],
              p = r[3],
              g = r[6],
              m = r[1],
              v = r[4],
              y = r[7],
              w = r[2],
              B = r[5],
              b = r[8];
            return (
              (i[0] = A * d + o * m + a * w),
              (i[3] = A * p + o * v + a * B),
              (i[6] = A * g + o * y + a * b),
              (i[1] = s * d + c * m + u * w),
              (i[4] = s * p + c * v + u * B),
              (i[7] = s * g + c * y + u * b),
              (i[2] = l * d + h * m + f * w),
              (i[5] = l * p + h * v + f * B),
              (i[8] = l * g + h * y + f * b),
              this
            );
          },
          multiplyScalar: function (e) {
            var t = this.elements;
            return (
              (t[0] *= e),
              (t[3] *= e),
              (t[6] *= e),
              (t[1] *= e),
              (t[4] *= e),
              (t[7] *= e),
              (t[2] *= e),
              (t[5] *= e),
              (t[8] *= e),
              this
            );
          },
          determinant: function () {
            var e = this.elements,
              t = e[0],
              n = e[1],
              r = e[2],
              i = e[3],
              A = e[4],
              o = e[5],
              a = e[6],
              s = e[7],
              c = e[8];
            return (
              t * A * c -
              t * o * s -
              n * i * c +
              n * o * a +
              r * i * s -
              r * A * a
            );
          },
          getInverse: function (e, t) {
            void 0 !== t &&
              console.warn(
                "THREE.Matrix3: .getInverse() can no longer be configured to throw on degenerate.",
              );
            var n = e.elements,
              r = this.elements,
              i = n[0],
              A = n[1],
              o = n[2],
              a = n[3],
              s = n[4],
              c = n[5],
              u = n[6],
              l = n[7],
              h = n[8],
              f = h * s - c * l,
              d = c * u - h * a,
              p = l * a - s * u,
              g = i * f + A * d + o * p;
            if (0 === g) return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0);
            var m = 1 / g;
            return (
              (r[0] = f * m),
              (r[1] = (o * l - h * A) * m),
              (r[2] = (c * A - o * s) * m),
              (r[3] = d * m),
              (r[4] = (h * i - o * u) * m),
              (r[5] = (o * a - c * i) * m),
              (r[6] = p * m),
              (r[7] = (A * u - l * i) * m),
              (r[8] = (s * i - A * a) * m),
              this
            );
          },
          transpose: function () {
            var e,
              t = this.elements;
            return (
              (e = t[1]),
              (t[1] = t[3]),
              (t[3] = e),
              (e = t[2]),
              (t[2] = t[6]),
              (t[6] = e),
              (e = t[5]),
              (t[5] = t[7]),
              (t[7] = e),
              this
            );
          },
          getNormalMatrix: function (e) {
            return this.setFromMatrix4(e).getInverse(this).transpose();
          },
          transposeIntoArray: function (e) {
            var t = this.elements;
            return (
              (e[0] = t[0]),
              (e[1] = t[3]),
              (e[2] = t[6]),
              (e[3] = t[1]),
              (e[4] = t[4]),
              (e[5] = t[7]),
              (e[6] = t[2]),
              (e[7] = t[5]),
              (e[8] = t[8]),
              this
            );
          },
          setUvTransform: function (e, t, n, r, i, A, o) {
            var a = Math.cos(i),
              s = Math.sin(i);
            this.set(
              n * a,
              n * s,
              -n * (a * A + s * o) + A + e,
              -r * s,
              r * a,
              -r * (-s * A + a * o) + o + t,
              0,
              0,
              1,
            );
          },
          scale: function (e, t) {
            var n = this.elements;
            return (
              (n[0] *= e),
              (n[3] *= e),
              (n[6] *= e),
              (n[1] *= t),
              (n[4] *= t),
              (n[7] *= t),
              this
            );
          },
          rotate: function (e) {
            var t = Math.cos(e),
              n = Math.sin(e),
              r = this.elements,
              i = r[0],
              A = r[3],
              o = r[6],
              a = r[1],
              s = r[4],
              c = r[7];
            return (
              (r[0] = t * i + n * a),
              (r[3] = t * A + n * s),
              (r[6] = t * o + n * c),
              (r[1] = -n * i + t * a),
              (r[4] = -n * A + t * s),
              (r[7] = -n * o + t * c),
              this
            );
          },
          translate: function (e, t) {
            var n = this.elements;
            return (
              (n[0] += e * n[2]),
              (n[3] += e * n[5]),
              (n[6] += e * n[8]),
              (n[1] += t * n[2]),
              (n[4] += t * n[5]),
              (n[7] += t * n[8]),
              this
            );
          },
          equals: function (e) {
            for (var t = this.elements, n = e.elements, r = 0; r < 9; r++)
              if (t[r] !== n[r]) return !1;
            return !0;
          },
          fromArray: function (e, t) {
            void 0 === t && (t = 0);
            for (var n = 0; n < 9; n++) this.elements[n] = e[n + t];
            return this;
          },
          toArray: function (e, t) {
            (void 0 === e && (e = []), void 0 === t && (t = 0));
            var n = this.elements;
            return (
              (e[t] = n[0]),
              (e[t + 1] = n[1]),
              (e[t + 2] = n[2]),
              (e[t + 3] = n[3]),
              (e[t + 4] = n[4]),
              (e[t + 5] = n[5]),
              (e[t + 6] = n[6]),
              (e[t + 7] = n[7]),
              (e[t + 8] = n[8]),
              e
            );
          },
        }));
      var dn = {
          getDataURL: function (e) {
            var t;
            if ("undefined" == typeof HTMLCanvasElement) return e.src;
            if (e instanceof HTMLCanvasElement) t = e;
            else {
              (void 0 === un &&
                (un = document.createElementNS(
                  "http://www.w3.org/1999/xhtml",
                  "canvas",
                )),
                (un.width = e.width),
                (un.height = e.height));
              var n = un.getContext("2d");
              (e instanceof ImageData
                ? n.putImageData(e, 0, 0)
                : n.drawImage(e, 0, 0, e.width, e.height),
                (t = un));
            }
            return t.width > 2048 || t.height > 2048
              ? t.toDataURL("image/jpeg", 0.6)
              : t.toDataURL("image/png");
          },
        },
        pn = 0;
      function gn(e, t, n, r, i, A, o, a, s, c) {
        (Object.defineProperty(this, "id", { value: pn++ }),
          (this.uuid = ln.generateUUID()),
          (this.name = ""),
          (this.image = void 0 !== e ? e : gn.DEFAULT_IMAGE),
          (this.mipmaps = []),
          (this.mapping = void 0 !== t ? t : gn.DEFAULT_MAPPING),
          (this.wrapS = void 0 !== n ? n : ue),
          (this.wrapT = void 0 !== r ? r : ue),
          (this.magFilter = void 0 !== i ? i : pe),
          (this.minFilter = void 0 !== A ? A : me),
          (this.anisotropy = void 0 !== s ? s : 1),
          (this.format = void 0 !== o ? o : Qe),
          (this.internalFormat = null),
          (this.type = void 0 !== a ? a : ve),
          (this.offset = new hn(0, 0)),
          (this.repeat = new hn(1, 1)),
          (this.center = new hn(0, 0)),
          (this.rotation = 0),
          (this.matrixAutoUpdate = !0),
          (this.matrix = new fn()),
          (this.generateMipmaps = !0),
          (this.premultiplyAlpha = !1),
          (this.flipY = !0),
          (this.unpackAlignment = 4),
          (this.encoding = void 0 !== c ? c : zt),
          (this.version = 0),
          (this.onUpdate = null));
      }
      function mn(e, t, n, r) {
        ((this.x = e || 0),
          (this.y = t || 0),
          (this.z = n || 0),
          (this.w = void 0 !== r ? r : 1));
      }
      function vn(e, t, n) {
        ((this.width = e),
          (this.height = t),
          (this.scissor = new mn(0, 0, e, t)),
          (this.scissorTest = !1),
          (this.viewport = new mn(0, 0, e, t)),
          (n = n || {}),
          (this.texture = new gn(
            void 0,
            n.mapping,
            n.wrapS,
            n.wrapT,
            n.magFilter,
            n.minFilter,
            n.format,
            n.type,
            n.anisotropy,
            n.encoding,
          )),
          (this.texture.image = {}),
          (this.texture.image.width = e),
          (this.texture.image.height = t),
          (this.texture.generateMipmaps =
            void 0 !== n.generateMipmaps && n.generateMipmaps),
          (this.texture.minFilter = void 0 !== n.minFilter ? n.minFilter : pe),
          (this.depthBuffer = void 0 === n.depthBuffer || n.depthBuffer),
          (this.stencilBuffer = void 0 === n.stencilBuffer || n.stencilBuffer),
          (this.depthTexture =
            void 0 !== n.depthTexture ? n.depthTexture : null));
      }
      function yn(e, t, n) {
        (vn.call(this, e, t, n), (this.samples = 4));
      }
      function wn(e, t, n, r) {
        ((this._x = e || 0),
          (this._y = t || 0),
          (this._z = n || 0),
          (this._w = void 0 !== r ? r : 1));
      }
      ((gn.DEFAULT_IMAGE = void 0),
        (gn.DEFAULT_MAPPING = te),
        (gn.prototype = Object.assign(Object.create(an.prototype), {
          constructor: gn,
          isTexture: !0,
          updateMatrix: function () {
            this.matrix.setUvTransform(
              this.offset.x,
              this.offset.y,
              this.repeat.x,
              this.repeat.y,
              this.rotation,
              this.center.x,
              this.center.y,
            );
          },
          clone: function () {
            return new this.constructor().copy(this);
          },
          copy: function (e) {
            return (
              (this.name = e.name),
              (this.image = e.image),
              (this.mipmaps = e.mipmaps.slice(0)),
              (this.mapping = e.mapping),
              (this.wrapS = e.wrapS),
              (this.wrapT = e.wrapT),
              (this.magFilter = e.magFilter),
              (this.minFilter = e.minFilter),
              (this.anisotropy = e.anisotropy),
              (this.format = e.format),
              (this.internalFormat = e.internalFormat),
              (this.type = e.type),
              this.offset.copy(e.offset),
              this.repeat.copy(e.repeat),
              this.center.copy(e.center),
              (this.rotation = e.rotation),
              (this.matrixAutoUpdate = e.matrixAutoUpdate),
              this.matrix.copy(e.matrix),
              (this.generateMipmaps = e.generateMipmaps),
              (this.premultiplyAlpha = e.premultiplyAlpha),
              (this.flipY = e.flipY),
              (this.unpackAlignment = e.unpackAlignment),
              (this.encoding = e.encoding),
              this
            );
          },
          toJSON: function (e) {
            var t = void 0 === e || "string" === typeof e;
            if (!t && void 0 !== e.textures[this.uuid])
              return e.textures[this.uuid];
            var n = {
              metadata: {
                version: 4.5,
                type: "Texture",
                generator: "Texture.toJSON",
              },
              uuid: this.uuid,
              name: this.name,
              mapping: this.mapping,
              repeat: [this.repeat.x, this.repeat.y],
              offset: [this.offset.x, this.offset.y],
              center: [this.center.x, this.center.y],
              rotation: this.rotation,
              wrap: [this.wrapS, this.wrapT],
              format: this.format,
              type: this.type,
              encoding: this.encoding,
              minFilter: this.minFilter,
              magFilter: this.magFilter,
              anisotropy: this.anisotropy,
              flipY: this.flipY,
              premultiplyAlpha: this.premultiplyAlpha,
              unpackAlignment: this.unpackAlignment,
            };
            if (void 0 !== this.image) {
              var r = this.image;
              if (
                (void 0 === r.uuid && (r.uuid = ln.generateUUID()),
                !t && void 0 === e.images[r.uuid])
              ) {
                var i;
                if (Array.isArray(r)) {
                  i = [];
                  for (var A = 0, o = r.length; A < o; A++)
                    i.push(dn.getDataURL(r[A]));
                } else i = dn.getDataURL(r);
                e.images[r.uuid] = { uuid: r.uuid, url: i };
              }
              n.image = r.uuid;
            }
            return (t || (e.textures[this.uuid] = n), n);
          },
          dispose: function () {
            this.dispatchEvent({ type: "dispose" });
          },
          transformUv: function (e) {
            if (this.mapping !== te) return e;
            if ((e.applyMatrix3(this.matrix), e.x < 0 || e.x > 1))
              switch (this.wrapS) {
                case ce:
                  e.x = e.x - Math.floor(e.x);
                  break;
                case ue:
                  e.x = e.x < 0 ? 0 : 1;
                  break;
                case le:
                  1 === Math.abs(Math.floor(e.x) % 2)
                    ? (e.x = Math.ceil(e.x) - e.x)
                    : (e.x = e.x - Math.floor(e.x));
                  break;
              }
            if (e.y < 0 || e.y > 1)
              switch (this.wrapT) {
                case ce:
                  e.y = e.y - Math.floor(e.y);
                  break;
                case ue:
                  e.y = e.y < 0 ? 0 : 1;
                  break;
                case le:
                  1 === Math.abs(Math.floor(e.y) % 2)
                    ? (e.y = Math.ceil(e.y) - e.y)
                    : (e.y = e.y - Math.floor(e.y));
                  break;
              }
            return (this.flipY && (e.y = 1 - e.y), e);
          },
        })),
        Object.defineProperty(gn.prototype, "needsUpdate", {
          set: function (e) {
            !0 === e && this.version++;
          },
        }),
        Object.defineProperties(mn.prototype, {
          width: {
            get: function () {
              return this.z;
            },
            set: function (e) {
              this.z = e;
            },
          },
          height: {
            get: function () {
              return this.w;
            },
            set: function (e) {
              this.w = e;
            },
          },
        }),
        Object.assign(mn.prototype, {
          isVector4: !0,
          set: function (e, t, n, r) {
            return (
              (this.x = e),
              (this.y = t),
              (this.z = n),
              (this.w = r),
              this
            );
          },
          setScalar: function (e) {
            return (
              (this.x = e),
              (this.y = e),
              (this.z = e),
              (this.w = e),
              this
            );
          },
          setX: function (e) {
            return ((this.x = e), this);
          },
          setY: function (e) {
            return ((this.y = e), this);
          },
          setZ: function (e) {
            return ((this.z = e), this);
          },
          setW: function (e) {
            return ((this.w = e), this);
          },
          setComponent: function (e, t) {
            switch (e) {
              case 0:
                this.x = t;
                break;
              case 1:
                this.y = t;
                break;
              case 2:
                this.z = t;
                break;
              case 3:
                this.w = t;
                break;
              default:
                throw new Error("index is out of range: " + e);
            }
            return this;
          },
          getComponent: function (e) {
            switch (e) {
              case 0:
                return this.x;
              case 1:
                return this.y;
              case 2:
                return this.z;
              case 3:
                return this.w;
              default:
                throw new Error("index is out of range: " + e);
            }
          },
          clone: function () {
            return new this.constructor(this.x, this.y, this.z, this.w);
          },
          copy: function (e) {
            return (
              (this.x = e.x),
              (this.y = e.y),
              (this.z = e.z),
              (this.w = void 0 !== e.w ? e.w : 1),
              this
            );
          },
          add: function (e, t) {
            return void 0 !== t
              ? (console.warn(
                  "THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead.",
                ),
                this.addVectors(e, t))
              : ((this.x += e.x),
                (this.y += e.y),
                (this.z += e.z),
                (this.w += e.w),
                this);
          },
          addScalar: function (e) {
            return (
              (this.x += e),
              (this.y += e),
              (this.z += e),
              (this.w += e),
              this
            );
          },
          addVectors: function (e, t) {
            return (
              (this.x = e.x + t.x),
              (this.y = e.y + t.y),
              (this.z = e.z + t.z),
              (this.w = e.w + t.w),
              this
            );
          },
          addScaledVector: function (e, t) {
            return (
              (this.x += e.x * t),
              (this.y += e.y * t),
              (this.z += e.z * t),
              (this.w += e.w * t),
              this
            );
          },
          sub: function (e, t) {
            return void 0 !== t
              ? (console.warn(
                  "THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.",
                ),
                this.subVectors(e, t))
              : ((this.x -= e.x),
                (this.y -= e.y),
                (this.z -= e.z),
                (this.w -= e.w),
                this);
          },
          subScalar: function (e) {
            return (
              (this.x -= e),
              (this.y -= e),
              (this.z -= e),
              (this.w -= e),
              this
            );
          },
          subVectors: function (e, t) {
            return (
              (this.x = e.x - t.x),
              (this.y = e.y - t.y),
              (this.z = e.z - t.z),
              (this.w = e.w - t.w),
              this
            );
          },
          multiplyScalar: function (e) {
            return (
              (this.x *= e),
              (this.y *= e),
              (this.z *= e),
              (this.w *= e),
              this
            );
          },
          applyMatrix4: function (e) {
            var t = this.x,
              n = this.y,
              r = this.z,
              i = this.w,
              A = e.elements;
            return (
              (this.x = A[0] * t + A[4] * n + A[8] * r + A[12] * i),
              (this.y = A[1] * t + A[5] * n + A[9] * r + A[13] * i),
              (this.z = A[2] * t + A[6] * n + A[10] * r + A[14] * i),
              (this.w = A[3] * t + A[7] * n + A[11] * r + A[15] * i),
              this
            );
          },
          divideScalar: function (e) {
            return this.multiplyScalar(1 / e);
          },
          setAxisAngleFromQuaternion: function (e) {
            this.w = 2 * Math.acos(e.w);
            var t = Math.sqrt(1 - e.w * e.w);
            return (
              t < 1e-4
                ? ((this.x = 1), (this.y = 0), (this.z = 0))
                : ((this.x = e.x / t), (this.y = e.y / t), (this.z = e.z / t)),
              this
            );
          },
          setAxisAngleFromRotationMatrix: function (e) {
            var t,
              n,
              r,
              i,
              A = 0.01,
              o = 0.1,
              a = e.elements,
              s = a[0],
              c = a[4],
              u = a[8],
              l = a[1],
              h = a[5],
              f = a[9],
              d = a[2],
              p = a[6],
              g = a[10];
            if (
              Math.abs(c - l) < A &&
              Math.abs(u - d) < A &&
              Math.abs(f - p) < A
            ) {
              if (
                Math.abs(c + l) < o &&
                Math.abs(u + d) < o &&
                Math.abs(f + p) < o &&
                Math.abs(s + h + g - 3) < o
              )
                return (this.set(1, 0, 0, 0), this);
              t = Math.PI;
              var m = (s + 1) / 2,
                v = (h + 1) / 2,
                y = (g + 1) / 2,
                w = (c + l) / 4,
                B = (u + d) / 4,
                b = (f + p) / 4;
              return (
                m > v && m > y
                  ? m < A
                    ? ((n = 0), (r = 0.707106781), (i = 0.707106781))
                    : ((n = Math.sqrt(m)), (r = w / n), (i = B / n))
                  : v > y
                    ? v < A
                      ? ((n = 0.707106781), (r = 0), (i = 0.707106781))
                      : ((r = Math.sqrt(v)), (n = w / r), (i = b / r))
                    : y < A
                      ? ((n = 0.707106781), (r = 0.707106781), (i = 0))
                      : ((i = Math.sqrt(y)), (n = B / i), (r = b / i)),
                this.set(n, r, i, t),
                this
              );
            }
            var _ = Math.sqrt(
              (p - f) * (p - f) + (u - d) * (u - d) + (l - c) * (l - c),
            );
            return (
              Math.abs(_) < 0.001 && (_ = 1),
              (this.x = (p - f) / _),
              (this.y = (u - d) / _),
              (this.z = (l - c) / _),
              (this.w = Math.acos((s + h + g - 1) / 2)),
              this
            );
          },
          min: function (e) {
            return (
              (this.x = Math.min(this.x, e.x)),
              (this.y = Math.min(this.y, e.y)),
              (this.z = Math.min(this.z, e.z)),
              (this.w = Math.min(this.w, e.w)),
              this
            );
          },
          max: function (e) {
            return (
              (this.x = Math.max(this.x, e.x)),
              (this.y = Math.max(this.y, e.y)),
              (this.z = Math.max(this.z, e.z)),
              (this.w = Math.max(this.w, e.w)),
              this
            );
          },
          clamp: function (e, t) {
            return (
              (this.x = Math.max(e.x, Math.min(t.x, this.x))),
              (this.y = Math.max(e.y, Math.min(t.y, this.y))),
              (this.z = Math.max(e.z, Math.min(t.z, this.z))),
              (this.w = Math.max(e.w, Math.min(t.w, this.w))),
              this
            );
          },
          clampScalar: function (e, t) {
            return (
              (this.x = Math.max(e, Math.min(t, this.x))),
              (this.y = Math.max(e, Math.min(t, this.y))),
              (this.z = Math.max(e, Math.min(t, this.z))),
              (this.w = Math.max(e, Math.min(t, this.w))),
              this
            );
          },
          clampLength: function (e, t) {
            var n = this.length();
            return this.divideScalar(n || 1).multiplyScalar(
              Math.max(e, Math.min(t, n)),
            );
          },
          floor: function () {
            return (
              (this.x = Math.floor(this.x)),
              (this.y = Math.floor(this.y)),
              (this.z = Math.floor(this.z)),
              (this.w = Math.floor(this.w)),
              this
            );
          },
          ceil: function () {
            return (
              (this.x = Math.ceil(this.x)),
              (this.y = Math.ceil(this.y)),
              (this.z = Math.ceil(this.z)),
              (this.w = Math.ceil(this.w)),
              this
            );
          },
          round: function () {
            return (
              (this.x = Math.round(this.x)),
              (this.y = Math.round(this.y)),
              (this.z = Math.round(this.z)),
              (this.w = Math.round(this.w)),
              this
            );
          },
          roundToZero: function () {
            return (
              (this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x)),
              (this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y)),
              (this.z = this.z < 0 ? Math.ceil(this.z) : Math.floor(this.z)),
              (this.w = this.w < 0 ? Math.ceil(this.w) : Math.floor(this.w)),
              this
            );
          },
          negate: function () {
            return (
              (this.x = -this.x),
              (this.y = -this.y),
              (this.z = -this.z),
              (this.w = -this.w),
              this
            );
          },
          dot: function (e) {
            return this.x * e.x + this.y * e.y + this.z * e.z + this.w * e.w;
          },
          lengthSq: function () {
            return (
              this.x * this.x +
              this.y * this.y +
              this.z * this.z +
              this.w * this.w
            );
          },
          length: function () {
            return Math.sqrt(
              this.x * this.x +
                this.y * this.y +
                this.z * this.z +
                this.w * this.w,
            );
          },
          manhattanLength: function () {
            return (
              Math.abs(this.x) +
              Math.abs(this.y) +
              Math.abs(this.z) +
              Math.abs(this.w)
            );
          },
          normalize: function () {
            return this.divideScalar(this.length() || 1);
          },
          setLength: function (e) {
            return this.normalize().multiplyScalar(e);
          },
          lerp: function (e, t) {
            return (
              (this.x += (e.x - this.x) * t),
              (this.y += (e.y - this.y) * t),
              (this.z += (e.z - this.z) * t),
              (this.w += (e.w - this.w) * t),
              this
            );
          },
          lerpVectors: function (e, t, n) {
            return (
              (this.x = e.x + (t.x - e.x) * n),
              (this.y = e.y + (t.y - e.y) * n),
              (this.z = e.z + (t.z - e.z) * n),
              (this.w = e.w + (t.w - e.w) * n),
              this
            );
          },
          equals: function (e) {
            return (
              e.x === this.x &&
              e.y === this.y &&
              e.z === this.z &&
              e.w === this.w
            );
          },
          fromArray: function (e, t) {
            return (
              void 0 === t && (t = 0),
              (this.x = e[t]),
              (this.y = e[t + 1]),
              (this.z = e[t + 2]),
              (this.w = e[t + 3]),
              this
            );
          },
          toArray: function (e, t) {
            return (
              void 0 === e && (e = []),
              void 0 === t && (t = 0),
              (e[t] = this.x),
              (e[t + 1] = this.y),
              (e[t + 2] = this.z),
              (e[t + 3] = this.w),
              e
            );
          },
          fromBufferAttribute: function (e, t, n) {
            return (
              void 0 !== n &&
                console.warn(
                  "THREE.Vector4: offset has been removed from .fromBufferAttribute().",
                ),
              (this.x = e.getX(t)),
              (this.y = e.getY(t)),
              (this.z = e.getZ(t)),
              (this.w = e.getW(t)),
              this
            );
          },
          random: function () {
            return (
              (this.x = Math.random()),
              (this.y = Math.random()),
              (this.z = Math.random()),
              (this.w = Math.random()),
              this
            );
          },
        }),
        (vn.prototype = Object.assign(Object.create(an.prototype), {
          constructor: vn,
          isWebGLRenderTarget: !0,
          setSize: function (e, t) {
            ((this.width === e && this.height === t) ||
              ((this.width = e),
              (this.height = t),
              (this.texture.image.width = e),
              (this.texture.image.height = t),
              this.dispose()),
              this.viewport.set(0, 0, e, t),
              this.scissor.set(0, 0, e, t));
          },
          clone: function () {
            return new this.constructor().copy(this);
          },
          copy: function (e) {
            return (
              (this.width = e.width),
              (this.height = e.height),
              this.viewport.copy(e.viewport),
              (this.texture = e.texture.clone()),
              (this.depthBuffer = e.depthBuffer),
              (this.stencilBuffer = e.stencilBuffer),
              (this.depthTexture = e.depthTexture),
              this
            );
          },
          dispose: function () {
            this.dispatchEvent({ type: "dispose" });
          },
        })),
        (yn.prototype = Object.assign(Object.create(vn.prototype), {
          constructor: yn,
          isWebGLMultisampleRenderTarget: !0,
          copy: function (e) {
            return (
              vn.prototype.copy.call(this, e),
              (this.samples = e.samples),
              this
            );
          },
        })),
        Object.assign(wn, {
          slerp: function (e, t, n, r) {
            return n.copy(e).slerp(t, r);
          },
          slerpFlat: function (e, t, n, r, i, A, o) {
            var a = n[r + 0],
              s = n[r + 1],
              c = n[r + 2],
              u = n[r + 3],
              l = i[A + 0],
              h = i[A + 1],
              f = i[A + 2],
              d = i[A + 3];
            if (u !== d || a !== l || s !== h || c !== f) {
              var p = 1 - o,
                g = a * l + s * h + c * f + u * d,
                m = g >= 0 ? 1 : -1,
                v = 1 - g * g;
              if (v > Number.EPSILON) {
                var y = Math.sqrt(v),
                  w = Math.atan2(y, g * m);
                ((p = Math.sin(p * w) / y), (o = Math.sin(o * w) / y));
              }
              var B = o * m;
              if (
                ((a = a * p + l * B),
                (s = s * p + h * B),
                (c = c * p + f * B),
                (u = u * p + d * B),
                p === 1 - o)
              ) {
                var b = 1 / Math.sqrt(a * a + s * s + c * c + u * u);
                ((a *= b), (s *= b), (c *= b), (u *= b));
              }
            }
            ((e[t] = a), (e[t + 1] = s), (e[t + 2] = c), (e[t + 3] = u));
          },
          multiplyQuaternionsFlat: function (e, t, n, r, i, A) {
            var o = n[r],
              a = n[r + 1],
              s = n[r + 2],
              c = n[r + 3],
              u = i[A],
              l = i[A + 1],
              h = i[A + 2],
              f = i[A + 3];
            return (
              (e[t] = o * f + c * u + a * h - s * l),
              (e[t + 1] = a * f + c * l + s * u - o * h),
              (e[t + 2] = s * f + c * h + o * l - a * u),
              (e[t + 3] = c * f - o * u - a * l - s * h),
              e
            );
          },
        }),
        Object.defineProperties(wn.prototype, {
          x: {
            get: function () {
              return this._x;
            },
            set: function (e) {
              ((this._x = e), this._onChangeCallback());
            },
          },
          y: {
            get: function () {
              return this._y;
            },
            set: function (e) {
              ((this._y = e), this._onChangeCallback());
            },
          },
          z: {
            get: function () {
              return this._z;
            },
            set: function (e) {
              ((this._z = e), this._onChangeCallback());
            },
          },
          w: {
            get: function () {
              return this._w;
            },
            set: function (e) {
              ((this._w = e), this._onChangeCallback());
            },
          },
        }),
        Object.assign(wn.prototype, {
          isQuaternion: !0,
          set: function (e, t, n, r) {
            return (
              (this._x = e),
              (this._y = t),
              (this._z = n),
              (this._w = r),
              this._onChangeCallback(),
              this
            );
          },
          clone: function () {
            return new this.constructor(this._x, this._y, this._z, this._w);
          },
          copy: function (e) {
            return (
              (this._x = e.x),
              (this._y = e.y),
              (this._z = e.z),
              (this._w = e.w),
              this._onChangeCallback(),
              this
            );
          },
          setFromEuler: function (e, t) {
            if (!e || !e.isEuler)
              throw new Error(
                "THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.",
              );
            var n = e._x,
              r = e._y,
              i = e._z,
              A = e.order,
              o = Math.cos,
              a = Math.sin,
              s = o(n / 2),
              c = o(r / 2),
              u = o(i / 2),
              l = a(n / 2),
              h = a(r / 2),
              f = a(i / 2);
            switch (A) {
              case "XYZ":
                ((this._x = l * c * u + s * h * f),
                  (this._y = s * h * u - l * c * f),
                  (this._z = s * c * f + l * h * u),
                  (this._w = s * c * u - l * h * f));
                break;
              case "YXZ":
                ((this._x = l * c * u + s * h * f),
                  (this._y = s * h * u - l * c * f),
                  (this._z = s * c * f - l * h * u),
                  (this._w = s * c * u + l * h * f));
                break;
              case "ZXY":
                ((this._x = l * c * u - s * h * f),
                  (this._y = s * h * u + l * c * f),
                  (this._z = s * c * f + l * h * u),
                  (this._w = s * c * u - l * h * f));
                break;
              case "ZYX":
                ((this._x = l * c * u - s * h * f),
                  (this._y = s * h * u + l * c * f),
                  (this._z = s * c * f - l * h * u),
                  (this._w = s * c * u + l * h * f));
                break;
              case "YZX":
                ((this._x = l * c * u + s * h * f),
                  (this._y = s * h * u + l * c * f),
                  (this._z = s * c * f - l * h * u),
                  (this._w = s * c * u - l * h * f));
                break;
              case "XZY":
                ((this._x = l * c * u - s * h * f),
                  (this._y = s * h * u - l * c * f),
                  (this._z = s * c * f + l * h * u),
                  (this._w = s * c * u + l * h * f));
                break;
              default:
                console.warn(
                  "THREE.Quaternion: .setFromEuler() encountered an unknown order: " +
                    A,
                );
            }
            return (!1 !== t && this._onChangeCallback(), this);
          },
          setFromAxisAngle: function (e, t) {
            var n = t / 2,
              r = Math.sin(n);
            return (
              (this._x = e.x * r),
              (this._y = e.y * r),
              (this._z = e.z * r),
              (this._w = Math.cos(n)),
              this._onChangeCallback(),
              this
            );
          },
          setFromRotationMatrix: function (e) {
            var t,
              n = e.elements,
              r = n[0],
              i = n[4],
              A = n[8],
              o = n[1],
              a = n[5],
              s = n[9],
              c = n[2],
              u = n[6],
              l = n[10],
              h = r + a + l;
            return (
              h > 0
                ? ((t = 0.5 / Math.sqrt(h + 1)),
                  (this._w = 0.25 / t),
                  (this._x = (u - s) * t),
                  (this._y = (A - c) * t),
                  (this._z = (o - i) * t))
                : r > a && r > l
                  ? ((t = 2 * Math.sqrt(1 + r - a - l)),
                    (this._w = (u - s) / t),
                    (this._x = 0.25 * t),
                    (this._y = (i + o) / t),
                    (this._z = (A + c) / t))
                  : a > l
                    ? ((t = 2 * Math.sqrt(1 + a - r - l)),
                      (this._w = (A - c) / t),
                      (this._x = (i + o) / t),
                      (this._y = 0.25 * t),
                      (this._z = (s + u) / t))
                    : ((t = 2 * Math.sqrt(1 + l - r - a)),
                      (this._w = (o - i) / t),
                      (this._x = (A + c) / t),
                      (this._y = (s + u) / t),
                      (this._z = 0.25 * t)),
              this._onChangeCallback(),
              this
            );
          },
          setFromUnitVectors: function (e, t) {
            var n = 1e-6,
              r = e.dot(t) + 1;
            return (
              r < n
                ? ((r = 0),
                  Math.abs(e.x) > Math.abs(e.z)
                    ? ((this._x = -e.y),
                      (this._y = e.x),
                      (this._z = 0),
                      (this._w = r))
                    : ((this._x = 0),
                      (this._y = -e.z),
                      (this._z = e.y),
                      (this._w = r)))
                : ((this._x = e.y * t.z - e.z * t.y),
                  (this._y = e.z * t.x - e.x * t.z),
                  (this._z = e.x * t.y - e.y * t.x),
                  (this._w = r)),
              this.normalize()
            );
          },
          angleTo: function (e) {
            return 2 * Math.acos(Math.abs(ln.clamp(this.dot(e), -1, 1)));
          },
          rotateTowards: function (e, t) {
            var n = this.angleTo(e);
            if (0 === n) return this;
            var r = Math.min(1, t / n);
            return (this.slerp(e, r), this);
          },
          inverse: function () {
            return this.conjugate();
          },
          conjugate: function () {
            return (
              (this._x *= -1),
              (this._y *= -1),
              (this._z *= -1),
              this._onChangeCallback(),
              this
            );
          },
          dot: function (e) {
            return (
              this._x * e._x + this._y * e._y + this._z * e._z + this._w * e._w
            );
          },
          lengthSq: function () {
            return (
              this._x * this._x +
              this._y * this._y +
              this._z * this._z +
              this._w * this._w
            );
          },
          length: function () {
            return Math.sqrt(
              this._x * this._x +
                this._y * this._y +
                this._z * this._z +
                this._w * this._w,
            );
          },
          normalize: function () {
            var e = this.length();
            return (
              0 === e
                ? ((this._x = 0), (this._y = 0), (this._z = 0), (this._w = 1))
                : ((e = 1 / e),
                  (this._x = this._x * e),
                  (this._y = this._y * e),
                  (this._z = this._z * e),
                  (this._w = this._w * e)),
              this._onChangeCallback(),
              this
            );
          },
          multiply: function (e, t) {
            return void 0 !== t
              ? (console.warn(
                  "THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead.",
                ),
                this.multiplyQuaternions(e, t))
              : this.multiplyQuaternions(this, e);
          },
          premultiply: function (e) {
            return this.multiplyQuaternions(e, this);
          },
          multiplyQuaternions: function (e, t) {
            var n = e._x,
              r = e._y,
              i = e._z,
              A = e._w,
              o = t._x,
              a = t._y,
              s = t._z,
              c = t._w;
            return (
              (this._x = n * c + A * o + r * s - i * a),
              (this._y = r * c + A * a + i * o - n * s),
              (this._z = i * c + A * s + n * a - r * o),
              (this._w = A * c - n * o - r * a - i * s),
              this._onChangeCallback(),
              this
            );
          },
          slerp: function (e, t) {
            if (0 === t) return this;
            if (1 === t) return this.copy(e);
            var n = this._x,
              r = this._y,
              i = this._z,
              A = this._w,
              o = A * e._w + n * e._x + r * e._y + i * e._z;
            if (
              (o < 0
                ? ((this._w = -e._w),
                  (this._x = -e._x),
                  (this._y = -e._y),
                  (this._z = -e._z),
                  (o = -o))
                : this.copy(e),
              o >= 1)
            )
              return (
                (this._w = A),
                (this._x = n),
                (this._y = r),
                (this._z = i),
                this
              );
            var a = 1 - o * o;
            if (a <= Number.EPSILON) {
              var s = 1 - t;
              return (
                (this._w = s * A + t * this._w),
                (this._x = s * n + t * this._x),
                (this._y = s * r + t * this._y),
                (this._z = s * i + t * this._z),
                this.normalize(),
                this._onChangeCallback(),
                this
              );
            }
            var c = Math.sqrt(a),
              u = Math.atan2(c, o),
              l = Math.sin((1 - t) * u) / c,
              h = Math.sin(t * u) / c;
            return (
              (this._w = A * l + this._w * h),
              (this._x = n * l + this._x * h),
              (this._y = r * l + this._y * h),
              (this._z = i * l + this._z * h),
              this._onChangeCallback(),
              this
            );
          },
          equals: function (e) {
            return (
              e._x === this._x &&
              e._y === this._y &&
              e._z === this._z &&
              e._w === this._w
            );
          },
          fromArray: function (e, t) {
            return (
              void 0 === t && (t = 0),
              (this._x = e[t]),
              (this._y = e[t + 1]),
              (this._z = e[t + 2]),
              (this._w = e[t + 3]),
              this._onChangeCallback(),
              this
            );
          },
          toArray: function (e, t) {
            return (
              void 0 === e && (e = []),
              void 0 === t && (t = 0),
              (e[t] = this._x),
              (e[t + 1] = this._y),
              (e[t + 2] = this._z),
              (e[t + 3] = this._w),
              e
            );
          },
          fromBufferAttribute: function (e, t) {
            return (
              (this._x = e.getX(t)),
              (this._y = e.getY(t)),
              (this._z = e.getZ(t)),
              (this._w = e.getW(t)),
              this
            );
          },
          _onChange: function (e) {
            return ((this._onChangeCallback = e), this);
          },
          _onChangeCallback: function () {},
        }));
      var Bn = new _n(),
        bn = new wn();
      function _n(e, t, n) {
        ((this.x = e || 0), (this.y = t || 0), (this.z = n || 0));
      }
      Object.assign(_n.prototype, {
        isVector3: !0,
        set: function (e, t, n) {
          return ((this.x = e), (this.y = t), (this.z = n), this);
        },
        setScalar: function (e) {
          return ((this.x = e), (this.y = e), (this.z = e), this);
        },
        setX: function (e) {
          return ((this.x = e), this);
        },
        setY: function (e) {
          return ((this.y = e), this);
        },
        setZ: function (e) {
          return ((this.z = e), this);
        },
        setComponent: function (e, t) {
          switch (e) {
            case 0:
              this.x = t;
              break;
            case 1:
              this.y = t;
              break;
            case 2:
              this.z = t;
              break;
            default:
              throw new Error("index is out of range: " + e);
          }
          return this;
        },
        getComponent: function (e) {
          switch (e) {
            case 0:
              return this.x;
            case 1:
              return this.y;
            case 2:
              return this.z;
            default:
              throw new Error("index is out of range: " + e);
          }
        },
        clone: function () {
          return new this.constructor(this.x, this.y, this.z);
        },
        copy: function (e) {
          return ((this.x = e.x), (this.y = e.y), (this.z = e.z), this);
        },
        add: function (e, t) {
          return void 0 !== t
            ? (console.warn(
                "THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead.",
              ),
              this.addVectors(e, t))
            : ((this.x += e.x), (this.y += e.y), (this.z += e.z), this);
        },
        addScalar: function (e) {
          return ((this.x += e), (this.y += e), (this.z += e), this);
        },
        addVectors: function (e, t) {
          return (
            (this.x = e.x + t.x),
            (this.y = e.y + t.y),
            (this.z = e.z + t.z),
            this
          );
        },
        addScaledVector: function (e, t) {
          return (
            (this.x += e.x * t),
            (this.y += e.y * t),
            (this.z += e.z * t),
            this
          );
        },
        sub: function (e, t) {
          return void 0 !== t
            ? (console.warn(
                "THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.",
              ),
              this.subVectors(e, t))
            : ((this.x -= e.x), (this.y -= e.y), (this.z -= e.z), this);
        },
        subScalar: function (e) {
          return ((this.x -= e), (this.y -= e), (this.z -= e), this);
        },
        subVectors: function (e, t) {
          return (
            (this.x = e.x - t.x),
            (this.y = e.y - t.y),
            (this.z = e.z - t.z),
            this
          );
        },
        multiply: function (e, t) {
          return void 0 !== t
            ? (console.warn(
                "THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead.",
              ),
              this.multiplyVectors(e, t))
            : ((this.x *= e.x), (this.y *= e.y), (this.z *= e.z), this);
        },
        multiplyScalar: function (e) {
          return ((this.x *= e), (this.y *= e), (this.z *= e), this);
        },
        multiplyVectors: function (e, t) {
          return (
            (this.x = e.x * t.x),
            (this.y = e.y * t.y),
            (this.z = e.z * t.z),
            this
          );
        },
        applyEuler: function (e) {
          return (
            (e && e.isEuler) ||
              console.log(
                "THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.",
              ),
            this.applyQuaternion(bn.setFromEuler(e))
          );
        },
        applyAxisAngle: function (e, t) {
          return this.applyQuaternion(bn.setFromAxisAngle(e, t));
        },
        applyMatrix3: function (e) {
          var t = this.x,
            n = this.y,
            r = this.z,
            i = e.elements;
          return (
            (this.x = i[0] * t + i[3] * n + i[6] * r),
            (this.y = i[1] * t + i[4] * n + i[7] * r),
            (this.z = i[2] * t + i[5] * n + i[8] * r),
            this
          );
        },
        applyNormalMatrix: function (e) {
          return this.applyMatrix3(e).normalize();
        },
        applyMatrix4: function (e) {
          var t = this.x,
            n = this.y,
            r = this.z,
            i = e.elements,
            A = 1 / (i[3] * t + i[7] * n + i[11] * r + i[15]);
          return (
            (this.x = (i[0] * t + i[4] * n + i[8] * r + i[12]) * A),
            (this.y = (i[1] * t + i[5] * n + i[9] * r + i[13]) * A),
            (this.z = (i[2] * t + i[6] * n + i[10] * r + i[14]) * A),
            this
          );
        },
        applyQuaternion: function (e) {
          var t = this.x,
            n = this.y,
            r = this.z,
            i = e.x,
            A = e.y,
            o = e.z,
            a = e.w,
            s = a * t + A * r - o * n,
            c = a * n + o * t - i * r,
            u = a * r + i * n - A * t,
            l = -i * t - A * n - o * r;
          return (
            (this.x = s * a + l * -i + c * -o - u * -A),
            (this.y = c * a + l * -A + u * -i - s * -o),
            (this.z = u * a + l * -o + s * -A - c * -i),
            this
          );
        },
        project: function (e) {
          return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(
            e.projectionMatrix,
          );
        },
        unproject: function (e) {
          return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(
            e.matrixWorld,
          );
        },
        transformDirection: function (e) {
          var t = this.x,
            n = this.y,
            r = this.z,
            i = e.elements;
          return (
            (this.x = i[0] * t + i[4] * n + i[8] * r),
            (this.y = i[1] * t + i[5] * n + i[9] * r),
            (this.z = i[2] * t + i[6] * n + i[10] * r),
            this.normalize()
          );
        },
        divide: function (e) {
          return ((this.x /= e.x), (this.y /= e.y), (this.z /= e.z), this);
        },
        divideScalar: function (e) {
          return this.multiplyScalar(1 / e);
        },
        min: function (e) {
          return (
            (this.x = Math.min(this.x, e.x)),
            (this.y = Math.min(this.y, e.y)),
            (this.z = Math.min(this.z, e.z)),
            this
          );
        },
        max: function (e) {
          return (
            (this.x = Math.max(this.x, e.x)),
            (this.y = Math.max(this.y, e.y)),
            (this.z = Math.max(this.z, e.z)),
            this
          );
        },
        clamp: function (e, t) {
          return (
            (this.x = Math.max(e.x, Math.min(t.x, this.x))),
            (this.y = Math.max(e.y, Math.min(t.y, this.y))),
            (this.z = Math.max(e.z, Math.min(t.z, this.z))),
            this
          );
        },
        clampScalar: function (e, t) {
          return (
            (this.x = Math.max(e, Math.min(t, this.x))),
            (this.y = Math.max(e, Math.min(t, this.y))),
            (this.z = Math.max(e, Math.min(t, this.z))),
            this
          );
        },
        clampLength: function (e, t) {
          var n = this.length();
          return this.divideScalar(n || 1).multiplyScalar(
            Math.max(e, Math.min(t, n)),
          );
        },
        floor: function () {
          return (
            (this.x = Math.floor(this.x)),
            (this.y = Math.floor(this.y)),
            (this.z = Math.floor(this.z)),
            this
          );
        },
        ceil: function () {
          return (
            (this.x = Math.ceil(this.x)),
            (this.y = Math.ceil(this.y)),
            (this.z = Math.ceil(this.z)),
            this
          );
        },
        round: function () {
          return (
            (this.x = Math.round(this.x)),
            (this.y = Math.round(this.y)),
            (this.z = Math.round(this.z)),
            this
          );
        },
        roundToZero: function () {
          return (
            (this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x)),
            (this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y)),
            (this.z = this.z < 0 ? Math.ceil(this.z) : Math.floor(this.z)),
            this
          );
        },
        negate: function () {
          return (
            (this.x = -this.x),
            (this.y = -this.y),
            (this.z = -this.z),
            this
          );
        },
        dot: function (e) {
          return this.x * e.x + this.y * e.y + this.z * e.z;
        },
        lengthSq: function () {
          return this.x * this.x + this.y * this.y + this.z * this.z;
        },
        length: function () {
          return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
        },
        manhattanLength: function () {
          return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z);
        },
        normalize: function () {
          return this.divideScalar(this.length() || 1);
        },
        setLength: function (e) {
          return this.normalize().multiplyScalar(e);
        },
        lerp: function (e, t) {
          return (
            (this.x += (e.x - this.x) * t),
            (this.y += (e.y - this.y) * t),
            (this.z += (e.z - this.z) * t),
            this
          );
        },
        lerpVectors: function (e, t, n) {
          return (
            (this.x = e.x + (t.x - e.x) * n),
            (this.y = e.y + (t.y - e.y) * n),
            (this.z = e.z + (t.z - e.z) * n),
            this
          );
        },
        cross: function (e, t) {
          return void 0 !== t
            ? (console.warn(
                "THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead.",
              ),
              this.crossVectors(e, t))
            : this.crossVectors(this, e);
        },
        crossVectors: function (e, t) {
          var n = e.x,
            r = e.y,
            i = e.z,
            A = t.x,
            o = t.y,
            a = t.z;
          return (
            (this.x = r * a - i * o),
            (this.y = i * A - n * a),
            (this.z = n * o - r * A),
            this
          );
        },
        projectOnVector: function (e) {
          var t = e.lengthSq();
          if (0 === t) return this.set(0, 0, 0);
          var n = e.dot(this) / t;
          return this.copy(e).multiplyScalar(n);
        },
        projectOnPlane: function (e) {
          return (Bn.copy(this).projectOnVector(e), this.sub(Bn));
        },
        reflect: function (e) {
          return this.sub(Bn.copy(e).multiplyScalar(2 * this.dot(e)));
        },
        angleTo: function (e) {
          var t = Math.sqrt(this.lengthSq() * e.lengthSq());
          if (0 === t) return Math.PI / 2;
          var n = this.dot(e) / t;
          return Math.acos(ln.clamp(n, -1, 1));
        },
        distanceTo: function (e) {
          return Math.sqrt(this.distanceToSquared(e));
        },
        distanceToSquared: function (e) {
          var t = this.x - e.x,
            n = this.y - e.y,
            r = this.z - e.z;
          return t * t + n * n + r * r;
        },
        manhattanDistanceTo: function (e) {
          return (
            Math.abs(this.x - e.x) +
            Math.abs(this.y - e.y) +
            Math.abs(this.z - e.z)
          );
        },
        setFromSpherical: function (e) {
          return this.setFromSphericalCoords(e.radius, e.phi, e.theta);
        },
        setFromSphericalCoords: function (e, t, n) {
          var r = Math.sin(t) * e;
          return (
            (this.x = r * Math.sin(n)),
            (this.y = Math.cos(t) * e),
            (this.z = r * Math.cos(n)),
            this
          );
        },
        setFromCylindrical: function (e) {
          return this.setFromCylindricalCoords(e.radius, e.theta, e.y);
        },
        setFromCylindricalCoords: function (e, t, n) {
          return (
            (this.x = e * Math.sin(t)),
            (this.y = n),
            (this.z = e * Math.cos(t)),
            this
          );
        },
        setFromMatrixPosition: function (e) {
          var t = e.elements;
          return ((this.x = t[12]), (this.y = t[13]), (this.z = t[14]), this);
        },
        setFromMatrixScale: function (e) {
          var t = this.setFromMatrixColumn(e, 0).length(),
            n = this.setFromMatrixColumn(e, 1).length(),
            r = this.setFromMatrixColumn(e, 2).length();
          return ((this.x = t), (this.y = n), (this.z = r), this);
        },
        setFromMatrixColumn: function (e, t) {
          return this.fromArray(e.elements, 4 * t);
        },
        setFromMatrix3Column: function (e, t) {
          return this.fromArray(e.elements, 3 * t);
        },
        equals: function (e) {
          return e.x === this.x && e.y === this.y && e.z === this.z;
        },
        fromArray: function (e, t) {
          return (
            void 0 === t && (t = 0),
            (this.x = e[t]),
            (this.y = e[t + 1]),
            (this.z = e[t + 2]),
            this
          );
        },
        toArray: function (e, t) {
          return (
            void 0 === e && (e = []),
            void 0 === t && (t = 0),
            (e[t] = this.x),
            (e[t + 1] = this.y),
            (e[t + 2] = this.z),
            e
          );
        },
        fromBufferAttribute: function (e, t, n) {
          return (
            void 0 !== n &&
              console.warn(
                "THREE.Vector3: offset has been removed from .fromBufferAttribute().",
              ),
            (this.x = e.getX(t)),
            (this.y = e.getY(t)),
            (this.z = e.getZ(t)),
            this
          );
        },
        random: function () {
          return (
            (this.x = Math.random()),
            (this.y = Math.random()),
            (this.z = Math.random()),
            this
          );
        },
      });
      var xn = new _n(),
        Cn = new Un(),
        En = new _n(0, 0, 0),
        Mn = new _n(1, 1, 1),
        Sn = new _n(),
        Fn = new _n(),
        Tn = new _n();
      function Un() {
        ((this.elements = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]),
          arguments.length > 0 &&
            console.log(
              "THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.",
            ));
      }
      Object.assign(Un.prototype, {
        isMatrix4: !0,
        set: function (e, t, n, r, i, A, o, a, s, c, u, l, h, f, d, p) {
          var g = this.elements;
          return (
            (g[0] = e),
            (g[4] = t),
            (g[8] = n),
            (g[12] = r),
            (g[1] = i),
            (g[5] = A),
            (g[9] = o),
            (g[13] = a),
            (g[2] = s),
            (g[6] = c),
            (g[10] = u),
            (g[14] = l),
            (g[3] = h),
            (g[7] = f),
            (g[11] = d),
            (g[15] = p),
            this
          );
        },
        identity: function () {
          return (
            this.set(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1),
            this
          );
        },
        clone: function () {
          return new Un().fromArray(this.elements);
        },
        copy: function (e) {
          var t = this.elements,
            n = e.elements;
          return (
            (t[0] = n[0]),
            (t[1] = n[1]),
            (t[2] = n[2]),
            (t[3] = n[3]),
            (t[4] = n[4]),
            (t[5] = n[5]),
            (t[6] = n[6]),
            (t[7] = n[7]),
            (t[8] = n[8]),
            (t[9] = n[9]),
            (t[10] = n[10]),
            (t[11] = n[11]),
            (t[12] = n[12]),
            (t[13] = n[13]),
            (t[14] = n[14]),
            (t[15] = n[15]),
            this
          );
        },
        copyPosition: function (e) {
          var t = this.elements,
            n = e.elements;
          return ((t[12] = n[12]), (t[13] = n[13]), (t[14] = n[14]), this);
        },
        extractBasis: function (e, t, n) {
          return (
            e.setFromMatrixColumn(this, 0),
            t.setFromMatrixColumn(this, 1),
            n.setFromMatrixColumn(this, 2),
            this
          );
        },
        makeBasis: function (e, t, n) {
          return (
            this.set(
              e.x,
              t.x,
              n.x,
              0,
              e.y,
              t.y,
              n.y,
              0,
              e.z,
              t.z,
              n.z,
              0,
              0,
              0,
              0,
              1,
            ),
            this
          );
        },
        extractRotation: function (e) {
          var t = this.elements,
            n = e.elements,
            r = 1 / xn.setFromMatrixColumn(e, 0).length(),
            i = 1 / xn.setFromMatrixColumn(e, 1).length(),
            A = 1 / xn.setFromMatrixColumn(e, 2).length();
          return (
            (t[0] = n[0] * r),
            (t[1] = n[1] * r),
            (t[2] = n[2] * r),
            (t[3] = 0),
            (t[4] = n[4] * i),
            (t[5] = n[5] * i),
            (t[6] = n[6] * i),
            (t[7] = 0),
            (t[8] = n[8] * A),
            (t[9] = n[9] * A),
            (t[10] = n[10] * A),
            (t[11] = 0),
            (t[12] = 0),
            (t[13] = 0),
            (t[14] = 0),
            (t[15] = 1),
            this
          );
        },
        makeRotationFromEuler: function (e) {
          (e && e.isEuler) ||
            console.log(
              "THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.",
            );
          var t = this.elements,
            n = e.x,
            r = e.y,
            i = e.z,
            A = Math.cos(n),
            o = Math.sin(n),
            a = Math.cos(r),
            s = Math.sin(r),
            c = Math.cos(i),
            u = Math.sin(i);
          if ("XYZ" === e.order) {
            var l = A * c,
              h = A * u,
              f = o * c,
              d = o * u;
            ((t[0] = a * c),
              (t[4] = -a * u),
              (t[8] = s),
              (t[1] = h + f * s),
              (t[5] = l - d * s),
              (t[9] = -o * a),
              (t[2] = d - l * s),
              (t[6] = f + h * s),
              (t[10] = A * a));
          } else if ("YXZ" === e.order) {
            var p = a * c,
              g = a * u,
              m = s * c,
              v = s * u;
            ((t[0] = p + v * o),
              (t[4] = m * o - g),
              (t[8] = A * s),
              (t[1] = A * u),
              (t[5] = A * c),
              (t[9] = -o),
              (t[2] = g * o - m),
              (t[6] = v + p * o),
              (t[10] = A * a));
          } else if ("ZXY" === e.order) {
            ((p = a * c), (g = a * u), (m = s * c), (v = s * u));
            ((t[0] = p - v * o),
              (t[4] = -A * u),
              (t[8] = m + g * o),
              (t[1] = g + m * o),
              (t[5] = A * c),
              (t[9] = v - p * o),
              (t[2] = -A * s),
              (t[6] = o),
              (t[10] = A * a));
          } else if ("ZYX" === e.order) {
            ((l = A * c), (h = A * u), (f = o * c), (d = o * u));
            ((t[0] = a * c),
              (t[4] = f * s - h),
              (t[8] = l * s + d),
              (t[1] = a * u),
              (t[5] = d * s + l),
              (t[9] = h * s - f),
              (t[2] = -s),
              (t[6] = o * a),
              (t[10] = A * a));
          } else if ("YZX" === e.order) {
            var y = A * a,
              w = A * s,
              B = o * a,
              b = o * s;
            ((t[0] = a * c),
              (t[4] = b - y * u),
              (t[8] = B * u + w),
              (t[1] = u),
              (t[5] = A * c),
              (t[9] = -o * c),
              (t[2] = -s * c),
              (t[6] = w * u + B),
              (t[10] = y - b * u));
          } else if ("XZY" === e.order) {
            ((y = A * a), (w = A * s), (B = o * a), (b = o * s));
            ((t[0] = a * c),
              (t[4] = -u),
              (t[8] = s * c),
              (t[1] = y * u + b),
              (t[5] = A * c),
              (t[9] = w * u - B),
              (t[2] = B * u - w),
              (t[6] = o * c),
              (t[10] = b * u + y));
          }
          return (
            (t[3] = 0),
            (t[7] = 0),
            (t[11] = 0),
            (t[12] = 0),
            (t[13] = 0),
            (t[14] = 0),
            (t[15] = 1),
            this
          );
        },
        makeRotationFromQuaternion: function (e) {
          return this.compose(En, e, Mn);
        },
        lookAt: function (e, t, n) {
          var r = this.elements;
          return (
            Tn.subVectors(e, t),
            0 === Tn.lengthSq() && (Tn.z = 1),
            Tn.normalize(),
            Sn.crossVectors(n, Tn),
            0 === Sn.lengthSq() &&
              (1 === Math.abs(n.z) ? (Tn.x += 1e-4) : (Tn.z += 1e-4),
              Tn.normalize(),
              Sn.crossVectors(n, Tn)),
            Sn.normalize(),
            Fn.crossVectors(Tn, Sn),
            (r[0] = Sn.x),
            (r[4] = Fn.x),
            (r[8] = Tn.x),
            (r[1] = Sn.y),
            (r[5] = Fn.y),
            (r[9] = Tn.y),
            (r[2] = Sn.z),
            (r[6] = Fn.z),
            (r[10] = Tn.z),
            this
          );
        },
        multiply: function (e, t) {
          return void 0 !== t
            ? (console.warn(
                "THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead.",
              ),
              this.multiplyMatrices(e, t))
            : this.multiplyMatrices(this, e);
        },
        premultiply: function (e) {
          return this.multiplyMatrices(e, this);
        },
        multiplyMatrices: function (e, t) {
          var n = e.elements,
            r = t.elements,
            i = this.elements,
            A = n[0],
            o = n[4],
            a = n[8],
            s = n[12],
            c = n[1],
            u = n[5],
            l = n[9],
            h = n[13],
            f = n[2],
            d = n[6],
            p = n[10],
            g = n[14],
            m = n[3],
            v = n[7],
            y = n[11],
            w = n[15],
            B = r[0],
            b = r[4],
            _ = r[8],
            x = r[12],
            C = r[1],
            E = r[5],
            M = r[9],
            S = r[13],
            F = r[2],
            T = r[6],
            U = r[10],
            Q = r[14],
            L = r[3],
            I = r[7],
            H = r[11],
            O = r[15];
          return (
            (i[0] = A * B + o * C + a * F + s * L),
            (i[4] = A * b + o * E + a * T + s * I),
            (i[8] = A * _ + o * M + a * U + s * H),
            (i[12] = A * x + o * S + a * Q + s * O),
            (i[1] = c * B + u * C + l * F + h * L),
            (i[5] = c * b + u * E + l * T + h * I),
            (i[9] = c * _ + u * M + l * U + h * H),
            (i[13] = c * x + u * S + l * Q + h * O),
            (i[2] = f * B + d * C + p * F + g * L),
            (i[6] = f * b + d * E + p * T + g * I),
            (i[10] = f * _ + d * M + p * U + g * H),
            (i[14] = f * x + d * S + p * Q + g * O),
            (i[3] = m * B + v * C + y * F + w * L),
            (i[7] = m * b + v * E + y * T + w * I),
            (i[11] = m * _ + v * M + y * U + w * H),
            (i[15] = m * x + v * S + y * Q + w * O),
            this
          );
        },
        multiplyScalar: function (e) {
          var t = this.elements;
          return (
            (t[0] *= e),
            (t[4] *= e),
            (t[8] *= e),
            (t[12] *= e),
            (t[1] *= e),
            (t[5] *= e),
            (t[9] *= e),
            (t[13] *= e),
            (t[2] *= e),
            (t[6] *= e),
            (t[10] *= e),
            (t[14] *= e),
            (t[3] *= e),
            (t[7] *= e),
            (t[11] *= e),
            (t[15] *= e),
            this
          );
        },
        determinant: function () {
          var e = this.elements,
            t = e[0],
            n = e[4],
            r = e[8],
            i = e[12],
            A = e[1],
            o = e[5],
            a = e[9],
            s = e[13],
            c = e[2],
            u = e[6],
            l = e[10],
            h = e[14],
            f = e[3],
            d = e[7],
            p = e[11],
            g = e[15];
          return (
            f *
              (+i * a * u -
                r * s * u -
                i * o * l +
                n * s * l +
                r * o * h -
                n * a * h) +
            d *
              (+t * a * h -
                t * s * l +
                i * A * l -
                r * A * h +
                r * s * c -
                i * a * c) +
            p *
              (+t * s * u -
                t * o * h -
                i * A * u +
                n * A * h +
                i * o * c -
                n * s * c) +
            g *
              (-r * o * c -
                t * a * u +
                t * o * l +
                r * A * u -
                n * A * l +
                n * a * c)
          );
        },
        transpose: function () {
          var e,
            t = this.elements;
          return (
            (e = t[1]),
            (t[1] = t[4]),
            (t[4] = e),
            (e = t[2]),
            (t[2] = t[8]),
            (t[8] = e),
            (e = t[6]),
            (t[6] = t[9]),
            (t[9] = e),
            (e = t[3]),
            (t[3] = t[12]),
            (t[12] = e),
            (e = t[7]),
            (t[7] = t[13]),
            (t[13] = e),
            (e = t[11]),
            (t[11] = t[14]),
            (t[14] = e),
            this
          );
        },
        setPosition: function (e, t, n) {
          var r = this.elements;
          return (
            e.isVector3
              ? ((r[12] = e.x), (r[13] = e.y), (r[14] = e.z))
              : ((r[12] = e), (r[13] = t), (r[14] = n)),
            this
          );
        },
        getInverse: function (e, t) {
          void 0 !== t &&
            console.warn(
              "THREE.Matrix4: .getInverse() can no longer be configured to throw on degenerate.",
            );
          var n = this.elements,
            r = e.elements,
            i = r[0],
            A = r[1],
            o = r[2],
            a = r[3],
            s = r[4],
            c = r[5],
            u = r[6],
            l = r[7],
            h = r[8],
            f = r[9],
            d = r[10],
            p = r[11],
            g = r[12],
            m = r[13],
            v = r[14],
            y = r[15],
            w =
              f * v * l -
              m * d * l +
              m * u * p -
              c * v * p -
              f * u * y +
              c * d * y,
            B =
              g * d * l -
              h * v * l -
              g * u * p +
              s * v * p +
              h * u * y -
              s * d * y,
            b =
              h * m * l -
              g * f * l +
              g * c * p -
              s * m * p -
              h * c * y +
              s * f * y,
            _ =
              g * f * u -
              h * m * u -
              g * c * d +
              s * m * d +
              h * c * v -
              s * f * v,
            x = i * w + A * B + o * b + a * _;
          if (0 === x)
            return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
          var C = 1 / x;
          return (
            (n[0] = w * C),
            (n[1] =
              (m * d * a -
                f * v * a -
                m * o * p +
                A * v * p +
                f * o * y -
                A * d * y) *
              C),
            (n[2] =
              (c * v * a -
                m * u * a +
                m * o * l -
                A * v * l -
                c * o * y +
                A * u * y) *
              C),
            (n[3] =
              (f * u * a -
                c * d * a -
                f * o * l +
                A * d * l +
                c * o * p -
                A * u * p) *
              C),
            (n[4] = B * C),
            (n[5] =
              (h * v * a -
                g * d * a +
                g * o * p -
                i * v * p -
                h * o * y +
                i * d * y) *
              C),
            (n[6] =
              (g * u * a -
                s * v * a -
                g * o * l +
                i * v * l +
                s * o * y -
                i * u * y) *
              C),
            (n[7] =
              (s * d * a -
                h * u * a +
                h * o * l -
                i * d * l -
                s * o * p +
                i * u * p) *
              C),
            (n[8] = b * C),
            (n[9] =
              (g * f * a -
                h * m * a -
                g * A * p +
                i * m * p +
                h * A * y -
                i * f * y) *
              C),
            (n[10] =
              (s * m * a -
                g * c * a +
                g * A * l -
                i * m * l -
                s * A * y +
                i * c * y) *
              C),
            (n[11] =
              (h * c * a -
                s * f * a -
                h * A * l +
                i * f * l +
                s * A * p -
                i * c * p) *
              C),
            (n[12] = _ * C),
            (n[13] =
              (h * m * o -
                g * f * o +
                g * A * d -
                i * m * d -
                h * A * v +
                i * f * v) *
              C),
            (n[14] =
              (g * c * o -
                s * m * o -
                g * A * u +
                i * m * u +
                s * A * v -
                i * c * v) *
              C),
            (n[15] =
              (s * f * o -
                h * c * o +
                h * A * u -
                i * f * u -
                s * A * d +
                i * c * d) *
              C),
            this
          );
        },
        scale: function (e) {
          var t = this.elements,
            n = e.x,
            r = e.y,
            i = e.z;
          return (
            (t[0] *= n),
            (t[4] *= r),
            (t[8] *= i),
            (t[1] *= n),
            (t[5] *= r),
            (t[9] *= i),
            (t[2] *= n),
            (t[6] *= r),
            (t[10] *= i),
            (t[3] *= n),
            (t[7] *= r),
            (t[11] *= i),
            this
          );
        },
        getMaxScaleOnAxis: function () {
          var e = this.elements,
            t = e[0] * e[0] + e[1] * e[1] + e[2] * e[2],
            n = e[4] * e[4] + e[5] * e[5] + e[6] * e[6],
            r = e[8] * e[8] + e[9] * e[9] + e[10] * e[10];
          return Math.sqrt(Math.max(t, n, r));
        },
        makeTranslation: function (e, t, n) {
          return (
            this.set(1, 0, 0, e, 0, 1, 0, t, 0, 0, 1, n, 0, 0, 0, 1),
            this
          );
        },
        makeRotationX: function (e) {
          var t = Math.cos(e),
            n = Math.sin(e);
          return (
            this.set(1, 0, 0, 0, 0, t, -n, 0, 0, n, t, 0, 0, 0, 0, 1),
            this
          );
        },
        makeRotationY: function (e) {
          var t = Math.cos(e),
            n = Math.sin(e);
          return (
            this.set(t, 0, n, 0, 0, 1, 0, 0, -n, 0, t, 0, 0, 0, 0, 1),
            this
          );
        },
        makeRotationZ: function (e) {
          var t = Math.cos(e),
            n = Math.sin(e);
          return (
            this.set(t, -n, 0, 0, n, t, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1),
            this
          );
        },
        makeRotationAxis: function (e, t) {
          var n = Math.cos(t),
            r = Math.sin(t),
            i = 1 - n,
            A = e.x,
            o = e.y,
            a = e.z,
            s = i * A,
            c = i * o;
          return (
            this.set(
              s * A + n,
              s * o - r * a,
              s * a + r * o,
              0,
              s * o + r * a,
              c * o + n,
              c * a - r * A,
              0,
              s * a - r * o,
              c * a + r * A,
              i * a * a + n,
              0,
              0,
              0,
              0,
              1,
            ),
            this
          );
        },
        makeScale: function (e, t, n) {
          return (
            this.set(e, 0, 0, 0, 0, t, 0, 0, 0, 0, n, 0, 0, 0, 0, 1),
            this
          );
        },
        makeShear: function (e, t, n) {
          return (
            this.set(1, t, n, 0, e, 1, n, 0, e, t, 1, 0, 0, 0, 0, 1),
            this
          );
        },
        compose: function (e, t, n) {
          var r = this.elements,
            i = t._x,
            A = t._y,
            o = t._z,
            a = t._w,
            s = i + i,
            c = A + A,
            u = o + o,
            l = i * s,
            h = i * c,
            f = i * u,
            d = A * c,
            p = A * u,
            g = o * u,
            m = a * s,
            v = a * c,
            y = a * u,
            w = n.x,
            B = n.y,
            b = n.z;
          return (
            (r[0] = (1 - (d + g)) * w),
            (r[1] = (h + y) * w),
            (r[2] = (f - v) * w),
            (r[3] = 0),
            (r[4] = (h - y) * B),
            (r[5] = (1 - (l + g)) * B),
            (r[6] = (p + m) * B),
            (r[7] = 0),
            (r[8] = (f + v) * b),
            (r[9] = (p - m) * b),
            (r[10] = (1 - (l + d)) * b),
            (r[11] = 0),
            (r[12] = e.x),
            (r[13] = e.y),
            (r[14] = e.z),
            (r[15] = 1),
            this
          );
        },
        decompose: function (e, t, n) {
          var r = this.elements,
            i = xn.set(r[0], r[1], r[2]).length(),
            A = xn.set(r[4], r[5], r[6]).length(),
            o = xn.set(r[8], r[9], r[10]).length(),
            a = this.determinant();
          (a < 0 && (i = -i),
            (e.x = r[12]),
            (e.y = r[13]),
            (e.z = r[14]),
            Cn.copy(this));
          var s = 1 / i,
            c = 1 / A,
            u = 1 / o;
          return (
            (Cn.elements[0] *= s),
            (Cn.elements[1] *= s),
            (Cn.elements[2] *= s),
            (Cn.elements[4] *= c),
            (Cn.elements[5] *= c),
            (Cn.elements[6] *= c),
            (Cn.elements[8] *= u),
            (Cn.elements[9] *= u),
            (Cn.elements[10] *= u),
            t.setFromRotationMatrix(Cn),
            (n.x = i),
            (n.y = A),
            (n.z = o),
            this
          );
        },
        makePerspective: function (e, t, n, r, i, A) {
          void 0 === A &&
            console.warn(
              "THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.",
            );
          var o = this.elements,
            a = (2 * i) / (t - e),
            s = (2 * i) / (n - r),
            c = (t + e) / (t - e),
            u = (n + r) / (n - r),
            l = -(A + i) / (A - i),
            h = (-2 * A * i) / (A - i);
          return (
            (o[0] = a),
            (o[4] = 0),
            (o[8] = c),
            (o[12] = 0),
            (o[1] = 0),
            (o[5] = s),
            (o[9] = u),
            (o[13] = 0),
            (o[2] = 0),
            (o[6] = 0),
            (o[10] = l),
            (o[14] = h),
            (o[3] = 0),
            (o[7] = 0),
            (o[11] = -1),
            (o[15] = 0),
            this
          );
        },
        makeOrthographic: function (e, t, n, r, i, A) {
          var o = this.elements,
            a = 1 / (t - e),
            s = 1 / (n - r),
            c = 1 / (A - i),
            u = (t + e) * a,
            l = (n + r) * s,
            h = (A + i) * c;
          return (
            (o[0] = 2 * a),
            (o[4] = 0),
            (o[8] = 0),
            (o[12] = -u),
            (o[1] = 0),
            (o[5] = 2 * s),
            (o[9] = 0),
            (o[13] = -l),
            (o[2] = 0),
            (o[6] = 0),
            (o[10] = -2 * c),
            (o[14] = -h),
            (o[3] = 0),
            (o[7] = 0),
            (o[11] = 0),
            (o[15] = 1),
            this
          );
        },
        equals: function (e) {
          for (var t = this.elements, n = e.elements, r = 0; r < 16; r++)
            if (t[r] !== n[r]) return !1;
          return !0;
        },
        fromArray: function (e, t) {
          void 0 === t && (t = 0);
          for (var n = 0; n < 16; n++) this.elements[n] = e[n + t];
          return this;
        },
        toArray: function (e, t) {
          (void 0 === e && (e = []), void 0 === t && (t = 0));
          var n = this.elements;
          return (
            (e[t] = n[0]),
            (e[t + 1] = n[1]),
            (e[t + 2] = n[2]),
            (e[t + 3] = n[3]),
            (e[t + 4] = n[4]),
            (e[t + 5] = n[5]),
            (e[t + 6] = n[6]),
            (e[t + 7] = n[7]),
            (e[t + 8] = n[8]),
            (e[t + 9] = n[9]),
            (e[t + 10] = n[10]),
            (e[t + 11] = n[11]),
            (e[t + 12] = n[12]),
            (e[t + 13] = n[13]),
            (e[t + 14] = n[14]),
            (e[t + 15] = n[15]),
            e
          );
        },
      });
      var Qn = new Un(),
        Ln = new wn();
      function In(e, t, n, r) {
        ((this._x = e || 0),
          (this._y = t || 0),
          (this._z = n || 0),
          (this._order = r || In.DefaultOrder));
      }
      function Hn() {
        this.mask = 1;
      }
      ((In.RotationOrders = ["XYZ", "YZX", "ZXY", "XZY", "YXZ", "ZYX"]),
        (In.DefaultOrder = "XYZ"),
        Object.defineProperties(In.prototype, {
          x: {
            get: function () {
              return this._x;
            },
            set: function (e) {
              ((this._x = e), this._onChangeCallback());
            },
          },
          y: {
            get: function () {
              return this._y;
            },
            set: function (e) {
              ((this._y = e), this._onChangeCallback());
            },
          },
          z: {
            get: function () {
              return this._z;
            },
            set: function (e) {
              ((this._z = e), this._onChangeCallback());
            },
          },
          order: {
            get: function () {
              return this._order;
            },
            set: function (e) {
              ((this._order = e), this._onChangeCallback());
            },
          },
        }),
        Object.assign(In.prototype, {
          isEuler: !0,
          set: function (e, t, n, r) {
            return (
              (this._x = e),
              (this._y = t),
              (this._z = n),
              (this._order = r || this._order),
              this._onChangeCallback(),
              this
            );
          },
          clone: function () {
            return new this.constructor(this._x, this._y, this._z, this._order);
          },
          copy: function (e) {
            return (
              (this._x = e._x),
              (this._y = e._y),
              (this._z = e._z),
              (this._order = e._order),
              this._onChangeCallback(),
              this
            );
          },
          setFromRotationMatrix: function (e, t, n) {
            var r = ln.clamp,
              i = e.elements,
              A = i[0],
              o = i[4],
              a = i[8],
              s = i[1],
              c = i[5],
              u = i[9],
              l = i[2],
              h = i[6],
              f = i[10];
            switch (((t = t || this._order), t)) {
              case "XYZ":
                ((this._y = Math.asin(r(a, -1, 1))),
                  Math.abs(a) < 0.9999999
                    ? ((this._x = Math.atan2(-u, f)),
                      (this._z = Math.atan2(-o, A)))
                    : ((this._x = Math.atan2(h, c)), (this._z = 0)));
                break;
              case "YXZ":
                ((this._x = Math.asin(-r(u, -1, 1))),
                  Math.abs(u) < 0.9999999
                    ? ((this._y = Math.atan2(a, f)),
                      (this._z = Math.atan2(s, c)))
                    : ((this._y = Math.atan2(-l, A)), (this._z = 0)));
                break;
              case "ZXY":
                ((this._x = Math.asin(r(h, -1, 1))),
                  Math.abs(h) < 0.9999999
                    ? ((this._y = Math.atan2(-l, f)),
                      (this._z = Math.atan2(-o, c)))
                    : ((this._y = 0), (this._z = Math.atan2(s, A))));
                break;
              case "ZYX":
                ((this._y = Math.asin(-r(l, -1, 1))),
                  Math.abs(l) < 0.9999999
                    ? ((this._x = Math.atan2(h, f)),
                      (this._z = Math.atan2(s, A)))
                    : ((this._x = 0), (this._z = Math.atan2(-o, c))));
                break;
              case "YZX":
                ((this._z = Math.asin(r(s, -1, 1))),
                  Math.abs(s) < 0.9999999
                    ? ((this._x = Math.atan2(-u, c)),
                      (this._y = Math.atan2(-l, A)))
                    : ((this._x = 0), (this._y = Math.atan2(a, f))));
                break;
              case "XZY":
                ((this._z = Math.asin(-r(o, -1, 1))),
                  Math.abs(o) < 0.9999999
                    ? ((this._x = Math.atan2(h, c)),
                      (this._y = Math.atan2(a, A)))
                    : ((this._x = Math.atan2(-u, f)), (this._y = 0)));
                break;
              default:
                console.warn(
                  "THREE.Euler: .setFromRotationMatrix() encountered an unknown order: " +
                    t,
                );
            }
            return (
              (this._order = t),
              !1 !== n && this._onChangeCallback(),
              this
            );
          },
          setFromQuaternion: function (e, t, n) {
            return (
              Qn.makeRotationFromQuaternion(e),
              this.setFromRotationMatrix(Qn, t, n)
            );
          },
          setFromVector3: function (e, t) {
            return this.set(e.x, e.y, e.z, t || this._order);
          },
          reorder: function (e) {
            return (Ln.setFromEuler(this), this.setFromQuaternion(Ln, e));
          },
          equals: function (e) {
            return (
              e._x === this._x &&
              e._y === this._y &&
              e._z === this._z &&
              e._order === this._order
            );
          },
          fromArray: function (e) {
            return (
              (this._x = e[0]),
              (this._y = e[1]),
              (this._z = e[2]),
              void 0 !== e[3] && (this._order = e[3]),
              this._onChangeCallback(),
              this
            );
          },
          toArray: function (e, t) {
            return (
              void 0 === e && (e = []),
              void 0 === t && (t = 0),
              (e[t] = this._x),
              (e[t + 1] = this._y),
              (e[t + 2] = this._z),
              (e[t + 3] = this._order),
              e
            );
          },
          toVector3: function (e) {
            return e
              ? e.set(this._x, this._y, this._z)
              : new _n(this._x, this._y, this._z);
          },
          _onChange: function (e) {
            return ((this._onChangeCallback = e), this);
          },
          _onChangeCallback: function () {},
        }),
        Object.assign(Hn.prototype, {
          set: function (e) {
            this.mask = (1 << e) | 0;
          },
          enable: function (e) {
            this.mask |= (1 << e) | 0;
          },
          enableAll: function () {
            this.mask = -1;
          },
          toggle: function (e) {
            this.mask ^= (1 << e) | 0;
          },
          disable: function (e) {
            this.mask &= ~((1 << e) | 0);
          },
          disableAll: function () {
            this.mask = 0;
          },
          test: function (e) {
            return 0 !== (this.mask & e.mask);
          },
        }));
      let On = 0;
      const Rn = new _n(),
        Pn = new wn(),
        Dn = new Un(),
        Nn = new _n(),
        kn = new _n(),
        Gn = new _n(),
        Vn = new wn(),
        zn = new _n(1, 0, 0),
        jn = new _n(0, 1, 0),
        Kn = new _n(0, 0, 1),
        Wn = { type: "added" },
        Xn = { type: "removed" };
      function Yn() {
        (Object.defineProperty(this, "id", { value: On++ }),
          (this.uuid = ln.generateUUID()),
          (this.name = ""),
          (this.type = "Object3D"),
          (this.parent = null),
          (this.children = []),
          (this.up = Yn.DefaultUp.clone()));
        var e = new _n(),
          t = new In(),
          n = new wn(),
          r = new _n(1, 1, 1);
        function i() {
          n.setFromEuler(t, !1);
        }
        function A() {
          t.setFromQuaternion(n, void 0, !1);
        }
        (t._onChange(i),
          n._onChange(A),
          Object.defineProperties(this, {
            position: { configurable: !0, enumerable: !0, value: e },
            rotation: { configurable: !0, enumerable: !0, value: t },
            quaternion: { configurable: !0, enumerable: !0, value: n },
            scale: { configurable: !0, enumerable: !0, value: r },
            modelViewMatrix: { value: new Un() },
            normalMatrix: { value: new fn() },
          }),
          (this.matrix = new Un()),
          (this.matrixWorld = new Un()),
          (this.matrixAutoUpdate = Yn.DefaultMatrixAutoUpdate),
          (this.matrixWorldNeedsUpdate = !1),
          (this.layers = new Hn()),
          (this.visible = !0),
          (this.castShadow = !1),
          (this.receiveShadow = !1),
          (this.frustumCulled = !0),
          (this.renderOrder = 0),
          (this.userData = {}));
      }
      function Jn() {
        (Yn.call(this),
          (this.type = "Scene"),
          (this.background = null),
          (this.environment = null),
          (this.fog = null),
          (this.overrideMaterial = null),
          (this.autoUpdate = !0),
          "undefined" !== typeof __THREE_DEVTOOLS__ &&
            __THREE_DEVTOOLS__.dispatchEvent(
              new CustomEvent("observe", { detail: this }),
            ));
      }
      ((Yn.DefaultUp = new _n(0, 1, 0)),
        (Yn.DefaultMatrixAutoUpdate = !0),
        (Yn.prototype = Object.assign(Object.create(an.prototype), {
          constructor: Yn,
          isObject3D: !0,
          onBeforeRender: function () {},
          onAfterRender: function () {},
          applyMatrix4: function (e) {
            (this.matrixAutoUpdate && this.updateMatrix(),
              this.matrix.premultiply(e),
              this.matrix.decompose(
                this.position,
                this.quaternion,
                this.scale,
              ));
          },
          applyQuaternion: function (e) {
            return (this.quaternion.premultiply(e), this);
          },
          setRotationFromAxisAngle: function (e, t) {
            this.quaternion.setFromAxisAngle(e, t);
          },
          setRotationFromEuler: function (e) {
            this.quaternion.setFromEuler(e, !0);
          },
          setRotationFromMatrix: function (e) {
            this.quaternion.setFromRotationMatrix(e);
          },
          setRotationFromQuaternion: function (e) {
            this.quaternion.copy(e);
          },
          rotateOnAxis: function (e, t) {
            return (
              Pn.setFromAxisAngle(e, t),
              this.quaternion.multiply(Pn),
              this
            );
          },
          rotateOnWorldAxis: function (e, t) {
            return (
              Pn.setFromAxisAngle(e, t),
              this.quaternion.premultiply(Pn),
              this
            );
          },
          rotateX: function (e) {
            return this.rotateOnAxis(zn, e);
          },
          rotateY: function (e) {
            return this.rotateOnAxis(jn, e);
          },
          rotateZ: function (e) {
            return this.rotateOnAxis(Kn, e);
          },
          translateOnAxis: function (e, t) {
            return (
              Rn.copy(e).applyQuaternion(this.quaternion),
              this.position.add(Rn.multiplyScalar(t)),
              this
            );
          },
          translateX: function (e) {
            return this.translateOnAxis(zn, e);
          },
          translateY: function (e) {
            return this.translateOnAxis(jn, e);
          },
          translateZ: function (e) {
            return this.translateOnAxis(Kn, e);
          },
          localToWorld: function (e) {
            return e.applyMatrix4(this.matrixWorld);
          },
          worldToLocal: function (e) {
            return e.applyMatrix4(Dn.getInverse(this.matrixWorld));
          },
          lookAt: function (e, t, n) {
            e.isVector3 ? Nn.copy(e) : Nn.set(e, t, n);
            var r = this.parent;
            (this.updateWorldMatrix(!0, !1),
              kn.setFromMatrixPosition(this.matrixWorld),
              this.isCamera || this.isLight
                ? Dn.lookAt(kn, Nn, this.up)
                : Dn.lookAt(Nn, kn, this.up),
              this.quaternion.setFromRotationMatrix(Dn),
              r &&
                (Dn.extractRotation(r.matrixWorld),
                Pn.setFromRotationMatrix(Dn),
                this.quaternion.premultiply(Pn.inverse())));
          },
          add: function (e) {
            if (arguments.length > 1) {
              for (var t = 0; t < arguments.length; t++) this.add(arguments[t]);
              return this;
            }
            return e === this
              ? (console.log(
                  "THREE.Object3D.add: object can't be added as a child of itself.",
                  e,
                ),
                this)
              : (e && e.isObject3D
                  ? (null !== e.parent && e.parent.remove(e),
                    (e.parent = this),
                    this.children.push(e),
                    e.dispatchEvent(Wn))
                  : console.log(
                      "THREE.Object3D.add: object not an instance of THREE.Object3D.",
                      e,
                    ),
                this);
          },
          remove: function (e) {
            if (arguments.length > 1) {
              for (var t = 0; t < arguments.length; t++)
                this.remove(arguments[t]);
              return this;
            }
            var n = this.children.indexOf(e);
            return (
              -1 !== n &&
                ((e.parent = null),
                this.children.splice(n, 1),
                e.dispatchEvent(Xn)),
              this
            );
          },
          attach: function (e) {
            return (
              this.updateWorldMatrix(!0, !1),
              Dn.getInverse(this.matrixWorld),
              null !== e.parent &&
                (e.parent.updateWorldMatrix(!0, !1),
                Dn.multiply(e.parent.matrixWorld)),
              e.applyMatrix4(Dn),
              e.updateWorldMatrix(!1, !1),
              this.add(e),
              this
            );
          },
          getObjectById: function (e) {
            return this.getObjectByProperty("id", e);
          },
          getObjectByName: function (e) {
            return this.getObjectByProperty("name", e);
          },
          getObjectByProperty: function (e, t) {
            if (this[e] === t) return this;
            for (var n = 0, r = this.children.length; n < r; n++) {
              var i = this.children[n],
                A = i.getObjectByProperty(e, t);
              if (void 0 !== A) return A;
            }
          },
          getWorldPosition: function (e) {
            return (
              void 0 === e &&
                (console.warn(
                  "THREE.Object3D: .getWorldPosition() target is now required",
                ),
                (e = new _n())),
              this.updateMatrixWorld(!0),
              e.setFromMatrixPosition(this.matrixWorld)
            );
          },
          getWorldQuaternion: function (e) {
            return (
              void 0 === e &&
                (console.warn(
                  "THREE.Object3D: .getWorldQuaternion() target is now required",
                ),
                (e = new wn())),
              this.updateMatrixWorld(!0),
              this.matrixWorld.decompose(kn, e, Gn),
              e
            );
          },
          getWorldScale: function (e) {
            return (
              void 0 === e &&
                (console.warn(
                  "THREE.Object3D: .getWorldScale() target is now required",
                ),
                (e = new _n())),
              this.updateMatrixWorld(!0),
              this.matrixWorld.decompose(kn, Vn, e),
              e
            );
          },
          getWorldDirection: function (e) {
            (void 0 === e &&
              (console.warn(
                "THREE.Object3D: .getWorldDirection() target is now required",
              ),
              (e = new _n())),
              this.updateMatrixWorld(!0));
            var t = this.matrixWorld.elements;
            return e.set(t[8], t[9], t[10]).normalize();
          },
          raycast: function () {},
          traverse: function (e) {
            e(this);
            for (var t = this.children, n = 0, r = t.length; n < r; n++)
              t[n].traverse(e);
          },
          traverseVisible: function (e) {
            if (!1 !== this.visible) {
              e(this);
              for (var t = this.children, n = 0, r = t.length; n < r; n++)
                t[n].traverseVisible(e);
            }
          },
          traverseAncestors: function (e) {
            var t = this.parent;
            null !== t && (e(t), t.traverseAncestors(e));
          },
          updateMatrix: function () {
            (this.matrix.compose(this.position, this.quaternion, this.scale),
              (this.matrixWorldNeedsUpdate = !0));
          },
          updateMatrixWorld: function (e) {
            (this.matrixAutoUpdate && this.updateMatrix(),
              (this.matrixWorldNeedsUpdate || e) &&
                (null === this.parent
                  ? this.matrixWorld.copy(this.matrix)
                  : this.matrixWorld.multiplyMatrices(
                      this.parent.matrixWorld,
                      this.matrix,
                    ),
                (this.matrixWorldNeedsUpdate = !1),
                (e = !0)));
            for (var t = this.children, n = 0, r = t.length; n < r; n++)
              t[n].updateMatrixWorld(e);
          },
          updateWorldMatrix: function (e, t) {
            var n = this.parent;
            if (
              (!0 === e && null !== n && n.updateWorldMatrix(!0, !1),
              this.matrixAutoUpdate && this.updateMatrix(),
              null === this.parent
                ? this.matrixWorld.copy(this.matrix)
                : this.matrixWorld.multiplyMatrices(
                    this.parent.matrixWorld,
                    this.matrix,
                  ),
              !0 === t)
            )
              for (var r = this.children, i = 0, A = r.length; i < A; i++)
                r[i].updateWorldMatrix(!1, !0);
          },
          toJSON: function (e) {
            var t = void 0 === e || "string" === typeof e,
              n = {};
            t &&
              ((e = {
                geometries: {},
                materials: {},
                textures: {},
                images: {},
                shapes: {},
              }),
              (n.metadata = {
                version: 4.5,
                type: "Object",
                generator: "Object3D.toJSON",
              }));
            var r = {};
            function i(t, n) {
              return (
                void 0 === t[n.uuid] && (t[n.uuid] = n.toJSON(e)),
                n.uuid
              );
            }
            if (
              ((r.uuid = this.uuid),
              (r.type = this.type),
              "" !== this.name && (r.name = this.name),
              !0 === this.castShadow && (r.castShadow = !0),
              !0 === this.receiveShadow && (r.receiveShadow = !0),
              !1 === this.visible && (r.visible = !1),
              !1 === this.frustumCulled && (r.frustumCulled = !1),
              0 !== this.renderOrder && (r.renderOrder = this.renderOrder),
              "{}" !== JSON.stringify(this.userData) &&
                (r.userData = this.userData),
              (r.layers = this.layers.mask),
              (r.matrix = this.matrix.toArray()),
              !1 === this.matrixAutoUpdate && (r.matrixAutoUpdate = !1),
              this.isInstancedMesh &&
                ((r.type = "InstancedMesh"),
                (r.count = this.count),
                (r.instanceMatrix = this.instanceMatrix.toJSON())),
              this.isMesh || this.isLine || this.isPoints)
            ) {
              r.geometry = i(e.geometries, this.geometry);
              var A = this.geometry.parameters;
              if (void 0 !== A && void 0 !== A.shapes) {
                var o = A.shapes;
                if (Array.isArray(o))
                  for (var a = 0, s = o.length; a < s; a++) {
                    var c = o[a];
                    i(e.shapes, c);
                  }
                else i(e.shapes, o);
              }
            }
            if (void 0 !== this.material)
              if (Array.isArray(this.material)) {
                var u = [];
                for (a = 0, s = this.material.length; a < s; a++)
                  u.push(i(e.materials, this.material[a]));
                r.material = u;
              } else r.material = i(e.materials, this.material);
            if (this.children.length > 0) {
              r.children = [];
              for (a = 0; a < this.children.length; a++)
                r.children.push(this.children[a].toJSON(e).object);
            }
            if (t) {
              var l = p(e.geometries),
                h = p(e.materials),
                f = p(e.textures),
                d = p(e.images);
              o = p(e.shapes);
              (l.length > 0 && (n.geometries = l),
                h.length > 0 && (n.materials = h),
                f.length > 0 && (n.textures = f),
                d.length > 0 && (n.images = d),
                o.length > 0 && (n.shapes = o));
            }
            return ((n.object = r), n);
            function p(e) {
              var t = [];
              for (var n in e) {
                var r = e[n];
                (delete r.metadata, t.push(r));
              }
              return t;
            }
          },
          clone: function (e) {
            return new this.constructor().copy(this, e);
          },
          copy: function (e, t) {
            if (
              (void 0 === t && (t = !0),
              (this.name = e.name),
              this.up.copy(e.up),
              this.position.copy(e.position),
              this.quaternion.copy(e.quaternion),
              this.scale.copy(e.scale),
              this.matrix.copy(e.matrix),
              this.matrixWorld.copy(e.matrixWorld),
              (this.matrixAutoUpdate = e.matrixAutoUpdate),
              (this.matrixWorldNeedsUpdate = e.matrixWorldNeedsUpdate),
              (this.layers.mask = e.layers.mask),
              (this.visible = e.visible),
              (this.castShadow = e.castShadow),
              (this.receiveShadow = e.receiveShadow),
              (this.frustumCulled = e.frustumCulled),
              (this.renderOrder = e.renderOrder),
              (this.userData = JSON.parse(JSON.stringify(e.userData))),
              !0 === t)
            )
              for (var n = 0; n < e.children.length; n++) {
                var r = e.children[n];
                this.add(r.clone());
              }
            return this;
          },
        })),
        (Jn.prototype = Object.assign(Object.create(Yn.prototype), {
          constructor: Jn,
          isScene: !0,
          copy: function (e, t) {
            return (
              Yn.prototype.copy.call(this, e, t),
              null !== e.background && (this.background = e.background.clone()),
              null !== e.environment &&
                (this.environment = e.environment.clone()),
              null !== e.fog && (this.fog = e.fog.clone()),
              null !== e.overrideMaterial &&
                (this.overrideMaterial = e.overrideMaterial.clone()),
              (this.autoUpdate = e.autoUpdate),
              (this.matrixAutoUpdate = e.matrixAutoUpdate),
              this
            );
          },
          toJSON: function (e) {
            var t = Yn.prototype.toJSON.call(this, e);
            return (
              null !== this.background &&
                (t.object.background = this.background.toJSON(e)),
              null !== this.environment &&
                (t.object.environment = this.environment.toJSON(e)),
              null !== this.fog && (t.object.fog = this.fog.toJSON()),
              t
            );
          },
          dispose: function () {
            this.dispatchEvent({ type: "dispose" });
          },
        })));
      var qn = [
          new _n(),
          new _n(),
          new _n(),
          new _n(),
          new _n(),
          new _n(),
          new _n(),
          new _n(),
        ],
        Zn = new _n(),
        $n = new ur(),
        er = new _n(),
        tr = new _n(),
        nr = new _n(),
        rr = new _n(),
        ir = new _n(),
        Ar = new _n(),
        or = new _n(),
        ar = new _n(),
        sr = new _n(),
        cr = new _n();
      function ur(e, t) {
        ((this.min = void 0 !== e ? e : new _n(1 / 0, 1 / 0, 1 / 0)),
          (this.max = void 0 !== t ? t : new _n(-1 / 0, -1 / 0, -1 / 0)));
      }
      function lr(e, t, n, r, i) {
        var A, o;
        for (A = 0, o = e.length - 3; A <= o; A += 3) {
          cr.fromArray(e, A);
          var a =
              i.x * Math.abs(cr.x) +
              i.y * Math.abs(cr.y) +
              i.z * Math.abs(cr.z),
            s = t.dot(cr),
            c = n.dot(cr),
            u = r.dot(cr);
          if (Math.max(-Math.max(s, c, u), Math.min(s, c, u)) > a) return !1;
        }
        return !0;
      }
      Object.assign(ur.prototype, {
        isBox3: !0,
        set: function (e, t) {
          return (this.min.copy(e), this.max.copy(t), this);
        },
        setFromArray: function (e) {
          for (
            var t = 1 / 0,
              n = 1 / 0,
              r = 1 / 0,
              i = -1 / 0,
              A = -1 / 0,
              o = -1 / 0,
              a = 0,
              s = e.length;
            a < s;
            a += 3
          ) {
            var c = e[a],
              u = e[a + 1],
              l = e[a + 2];
            (c < t && (t = c),
              u < n && (n = u),
              l < r && (r = l),
              c > i && (i = c),
              u > A && (A = u),
              l > o && (o = l));
          }
          return (this.min.set(t, n, r), this.max.set(i, A, o), this);
        },
        setFromBufferAttribute: function (e) {
          for (
            var t = 1 / 0,
              n = 1 / 0,
              r = 1 / 0,
              i = -1 / 0,
              A = -1 / 0,
              o = -1 / 0,
              a = 0,
              s = e.count;
            a < s;
            a++
          ) {
            var c = e.getX(a),
              u = e.getY(a),
              l = e.getZ(a);
            (c < t && (t = c),
              u < n && (n = u),
              l < r && (r = l),
              c > i && (i = c),
              u > A && (A = u),
              l > o && (o = l));
          }
          return (this.min.set(t, n, r), this.max.set(i, A, o), this);
        },
        setFromPoints: function (e) {
          this.makeEmpty();
          for (var t = 0, n = e.length; t < n; t++) this.expandByPoint(e[t]);
          return this;
        },
        setFromCenterAndSize: function (e, t) {
          var n = Zn.copy(t).multiplyScalar(0.5);
          return (this.min.copy(e).sub(n), this.max.copy(e).add(n), this);
        },
        setFromObject: function (e) {
          return (this.makeEmpty(), this.expandByObject(e));
        },
        clone: function () {
          return new this.constructor().copy(this);
        },
        copy: function (e) {
          return (this.min.copy(e.min), this.max.copy(e.max), this);
        },
        makeEmpty: function () {
          return (
            (this.min.x = this.min.y = this.min.z = 1 / 0),
            (this.max.x = this.max.y = this.max.z = -1 / 0),
            this
          );
        },
        isEmpty: function () {
          return (
            this.max.x < this.min.x ||
            this.max.y < this.min.y ||
            this.max.z < this.min.z
          );
        },
        getCenter: function (e) {
          return (
            void 0 === e &&
              (console.warn("THREE.Box3: .getCenter() target is now required"),
              (e = new _n())),
            this.isEmpty()
              ? e.set(0, 0, 0)
              : e.addVectors(this.min, this.max).multiplyScalar(0.5)
          );
        },
        getSize: function (e) {
          return (
            void 0 === e &&
              (console.warn("THREE.Box3: .getSize() target is now required"),
              (e = new _n())),
            this.isEmpty() ? e.set(0, 0, 0) : e.subVectors(this.max, this.min)
          );
        },
        expandByPoint: function (e) {
          return (this.min.min(e), this.max.max(e), this);
        },
        expandByVector: function (e) {
          return (this.min.sub(e), this.max.add(e), this);
        },
        expandByScalar: function (e) {
          return (this.min.addScalar(-e), this.max.addScalar(e), this);
        },
        expandByObject: function (e) {
          e.updateWorldMatrix(!1, !1);
          var t = e.geometry;
          void 0 !== t &&
            (null === t.boundingBox && t.computeBoundingBox(),
            $n.copy(t.boundingBox),
            $n.applyMatrix4(e.matrixWorld),
            this.union($n));
          for (var n = e.children, r = 0, i = n.length; r < i; r++)
            this.expandByObject(n[r]);
          return this;
        },
        containsPoint: function (e) {
          return !(
            e.x < this.min.x ||
            e.x > this.max.x ||
            e.y < this.min.y ||
            e.y > this.max.y ||
            e.z < this.min.z ||
            e.z > this.max.z
          );
        },
        containsBox: function (e) {
          return (
            this.min.x <= e.min.x &&
            e.max.x <= this.max.x &&
            this.min.y <= e.min.y &&
            e.max.y <= this.max.y &&
            this.min.z <= e.min.z &&
            e.max.z <= this.max.z
          );
        },
        getParameter: function (e, t) {
          return (
            void 0 === t &&
              (console.warn(
                "THREE.Box3: .getParameter() target is now required",
              ),
              (t = new _n())),
            t.set(
              (e.x - this.min.x) / (this.max.x - this.min.x),
              (e.y - this.min.y) / (this.max.y - this.min.y),
              (e.z - this.min.z) / (this.max.z - this.min.z),
            )
          );
        },
        intersectsBox: function (e) {
          return !(
            e.max.x < this.min.x ||
            e.min.x > this.max.x ||
            e.max.y < this.min.y ||
            e.min.y > this.max.y ||
            e.max.z < this.min.z ||
            e.min.z > this.max.z
          );
        },
        intersectsSphere: function (e) {
          return (
            this.clampPoint(e.center, Zn),
            Zn.distanceToSquared(e.center) <= e.radius * e.radius
          );
        },
        intersectsPlane: function (e) {
          var t, n;
          return (
            e.normal.x > 0
              ? ((t = e.normal.x * this.min.x), (n = e.normal.x * this.max.x))
              : ((t = e.normal.x * this.max.x), (n = e.normal.x * this.min.x)),
            e.normal.y > 0
              ? ((t += e.normal.y * this.min.y), (n += e.normal.y * this.max.y))
              : ((t += e.normal.y * this.max.y),
                (n += e.normal.y * this.min.y)),
            e.normal.z > 0
              ? ((t += e.normal.z * this.min.z), (n += e.normal.z * this.max.z))
              : ((t += e.normal.z * this.max.z),
                (n += e.normal.z * this.min.z)),
            t <= -e.constant && n >= -e.constant
          );
        },
        intersectsTriangle: function (e) {
          if (this.isEmpty()) return !1;
          (this.getCenter(or),
            ar.subVectors(this.max, or),
            er.subVectors(e.a, or),
            tr.subVectors(e.b, or),
            nr.subVectors(e.c, or),
            rr.subVectors(tr, er),
            ir.subVectors(nr, tr),
            Ar.subVectors(er, nr));
          var t = [
            0,
            -rr.z,
            rr.y,
            0,
            -ir.z,
            ir.y,
            0,
            -Ar.z,
            Ar.y,
            rr.z,
            0,
            -rr.x,
            ir.z,
            0,
            -ir.x,
            Ar.z,
            0,
            -Ar.x,
            -rr.y,
            rr.x,
            0,
            -ir.y,
            ir.x,
            0,
            -Ar.y,
            Ar.x,
            0,
          ];
          return (
            !!lr(t, er, tr, nr, ar) &&
            ((t = [1, 0, 0, 0, 1, 0, 0, 0, 1]),
            !!lr(t, er, tr, nr, ar) &&
              (sr.crossVectors(rr, ir),
              (t = [sr.x, sr.y, sr.z]),
              lr(t, er, tr, nr, ar)))
          );
        },
        clampPoint: function (e, t) {
          return (
            void 0 === t &&
              (console.warn("THREE.Box3: .clampPoint() target is now required"),
              (t = new _n())),
            t.copy(e).clamp(this.min, this.max)
          );
        },
        distanceToPoint: function (e) {
          var t = Zn.copy(e).clamp(this.min, this.max);
          return t.sub(e).length();
        },
        getBoundingSphere: function (e) {
          return (
            void 0 === e &&
              console.log(
                "THREE.Box3: .getBoundingSphere() target is now required",
              ),
            this.getCenter(e.center),
            (e.radius = 0.5 * this.getSize(Zn).length()),
            e
          );
        },
        intersect: function (e) {
          return (
            this.min.max(e.min),
            this.max.min(e.max),
            this.isEmpty() && this.makeEmpty(),
            this
          );
        },
        union: function (e) {
          return (this.min.min(e.min), this.max.max(e.max), this);
        },
        applyMatrix4: function (e) {
          return (
            this.isEmpty() ||
              (qn[0].set(this.min.x, this.min.y, this.min.z).applyMatrix4(e),
              qn[1].set(this.min.x, this.min.y, this.max.z).applyMatrix4(e),
              qn[2].set(this.min.x, this.max.y, this.min.z).applyMatrix4(e),
              qn[3].set(this.min.x, this.max.y, this.max.z).applyMatrix4(e),
              qn[4].set(this.max.x, this.min.y, this.min.z).applyMatrix4(e),
              qn[5].set(this.max.x, this.min.y, this.max.z).applyMatrix4(e),
              qn[6].set(this.max.x, this.max.y, this.min.z).applyMatrix4(e),
              qn[7].set(this.max.x, this.max.y, this.max.z).applyMatrix4(e),
              this.setFromPoints(qn)),
            this
          );
        },
        translate: function (e) {
          return (this.min.add(e), this.max.add(e), this);
        },
        equals: function (e) {
          return e.min.equals(this.min) && e.max.equals(this.max);
        },
      });
      var hr = new ur();
      function fr(e, t) {
        ((this.center = void 0 !== e ? e : new _n()),
          (this.radius = void 0 !== t ? t : -1));
      }
      Object.assign(fr.prototype, {
        set: function (e, t) {
          return (this.center.copy(e), (this.radius = t), this);
        },
        setFromPoints: function (e, t) {
          var n = this.center;
          void 0 !== t ? n.copy(t) : hr.setFromPoints(e).getCenter(n);
          for (var r = 0, i = 0, A = e.length; i < A; i++)
            r = Math.max(r, n.distanceToSquared(e[i]));
          return ((this.radius = Math.sqrt(r)), this);
        },
        clone: function () {
          return new this.constructor().copy(this);
        },
        copy: function (e) {
          return (this.center.copy(e.center), (this.radius = e.radius), this);
        },
        isEmpty: function () {
          return this.radius < 0;
        },
        makeEmpty: function () {
          return (this.center.set(0, 0, 0), (this.radius = -1), this);
        },
        containsPoint: function (e) {
          return e.distanceToSquared(this.center) <= this.radius * this.radius;
        },
        distanceToPoint: function (e) {
          return e.distanceTo(this.center) - this.radius;
        },
        intersectsSphere: function (e) {
          var t = this.radius + e.radius;
          return e.center.distanceToSquared(this.center) <= t * t;
        },
        intersectsBox: function (e) {
          return e.intersectsSphere(this);
        },
        intersectsPlane: function (e) {
          return Math.abs(e.distanceToPoint(this.center)) <= this.radius;
        },
        clampPoint: function (e, t) {
          var n = this.center.distanceToSquared(e);
          return (
            void 0 === t &&
              (console.warn(
                "THREE.Sphere: .clampPoint() target is now required",
              ),
              (t = new _n())),
            t.copy(e),
            n > this.radius * this.radius &&
              (t.sub(this.center).normalize(),
              t.multiplyScalar(this.radius).add(this.center)),
            t
          );
        },
        getBoundingBox: function (e) {
          return (
            void 0 === e &&
              (console.warn(
                "THREE.Sphere: .getBoundingBox() target is now required",
              ),
              (e = new ur())),
            this.isEmpty()
              ? (e.makeEmpty(), e)
              : (e.set(this.center, this.center),
                e.expandByScalar(this.radius),
                e)
          );
        },
        applyMatrix4: function (e) {
          return (
            this.center.applyMatrix4(e),
            (this.radius = this.radius * e.getMaxScaleOnAxis()),
            this
          );
        },
        translate: function (e) {
          return (this.center.add(e), this);
        },
        equals: function (e) {
          return e.center.equals(this.center) && e.radius === this.radius;
        },
      });
      var dr = new _n(),
        pr = new _n(),
        gr = new _n(),
        mr = new _n(),
        vr = new _n(),
        yr = new _n(),
        wr = new _n();
      function Br(e, t) {
        ((this.origin = void 0 !== e ? e : new _n()),
          (this.direction = void 0 !== t ? t : new _n(0, 0, -1)));
      }
      Object.assign(Br.prototype, {
        set: function (e, t) {
          return (this.origin.copy(e), this.direction.copy(t), this);
        },
        clone: function () {
          return new this.constructor().copy(this);
        },
        copy: function (e) {
          return (
            this.origin.copy(e.origin),
            this.direction.copy(e.direction),
            this
          );
        },
        at: function (e, t) {
          return (
            void 0 === t &&
              (console.warn("THREE.Ray: .at() target is now required"),
              (t = new _n())),
            t.copy(this.direction).multiplyScalar(e).add(this.origin)
          );
        },
        lookAt: function (e) {
          return (this.direction.copy(e).sub(this.origin).normalize(), this);
        },
        recast: function (e) {
          return (this.origin.copy(this.at(e, dr)), this);
        },
        closestPointToPoint: function (e, t) {
          (void 0 === t &&
            (console.warn(
              "THREE.Ray: .closestPointToPoint() target is now required",
            ),
            (t = new _n())),
            t.subVectors(e, this.origin));
          var n = t.dot(this.direction);
          return n < 0
            ? t.copy(this.origin)
            : t.copy(this.direction).multiplyScalar(n).add(this.origin);
        },
        distanceToPoint: function (e) {
          return Math.sqrt(this.distanceSqToPoint(e));
        },
        distanceSqToPoint: function (e) {
          var t = dr.subVectors(e, this.origin).dot(this.direction);
          return t < 0
            ? this.origin.distanceToSquared(e)
            : (dr.copy(this.direction).multiplyScalar(t).add(this.origin),
              dr.distanceToSquared(e));
        },
        distanceSqToSegment: function (e, t, n, r) {
          (pr.copy(e).add(t).multiplyScalar(0.5),
            gr.copy(t).sub(e).normalize(),
            mr.copy(this.origin).sub(pr));
          var i,
            A,
            o,
            a,
            s = 0.5 * e.distanceTo(t),
            c = -this.direction.dot(gr),
            u = mr.dot(this.direction),
            l = -mr.dot(gr),
            h = mr.lengthSq(),
            f = Math.abs(1 - c * c);
          if (f > 0)
            if (((i = c * l - u), (A = c * u - l), (a = s * f), i >= 0))
              if (A >= -a)
                if (A <= a) {
                  var d = 1 / f;
                  ((i *= d),
                    (A *= d),
                    (o =
                      i * (i + c * A + 2 * u) + A * (c * i + A + 2 * l) + h));
                } else
                  ((A = s),
                    (i = Math.max(0, -(c * A + u))),
                    (o = -i * i + A * (A + 2 * l) + h));
              else
                ((A = -s),
                  (i = Math.max(0, -(c * A + u))),
                  (o = -i * i + A * (A + 2 * l) + h));
            else
              A <= -a
                ? ((i = Math.max(0, -(-c * s + u))),
                  (A = i > 0 ? -s : Math.min(Math.max(-s, -l), s)),
                  (o = -i * i + A * (A + 2 * l) + h))
                : A <= a
                  ? ((i = 0),
                    (A = Math.min(Math.max(-s, -l), s)),
                    (o = A * (A + 2 * l) + h))
                  : ((i = Math.max(0, -(c * s + u))),
                    (A = i > 0 ? s : Math.min(Math.max(-s, -l), s)),
                    (o = -i * i + A * (A + 2 * l) + h));
          else
            ((A = c > 0 ? -s : s),
              (i = Math.max(0, -(c * A + u))),
              (o = -i * i + A * (A + 2 * l) + h));
          return (
            n && n.copy(this.direction).multiplyScalar(i).add(this.origin),
            r && r.copy(gr).multiplyScalar(A).add(pr),
            o
          );
        },
        intersectSphere: function (e, t) {
          dr.subVectors(e.center, this.origin);
          var n = dr.dot(this.direction),
            r = dr.dot(dr) - n * n,
            i = e.radius * e.radius;
          if (r > i) return null;
          var A = Math.sqrt(i - r),
            o = n - A,
            a = n + A;
          return o < 0 && a < 0 ? null : o < 0 ? this.at(a, t) : this.at(o, t);
        },
        intersectsSphere: function (e) {
          return this.distanceSqToPoint(e.center) <= e.radius * e.radius;
        },
        distanceToPlane: function (e) {
          var t = e.normal.dot(this.direction);
          if (0 === t) return 0 === e.distanceToPoint(this.origin) ? 0 : null;
          var n = -(this.origin.dot(e.normal) + e.constant) / t;
          return n >= 0 ? n : null;
        },
        intersectPlane: function (e, t) {
          var n = this.distanceToPlane(e);
          return null === n ? null : this.at(n, t);
        },
        intersectsPlane: function (e) {
          var t = e.distanceToPoint(this.origin);
          if (0 === t) return !0;
          var n = e.normal.dot(this.direction);
          return n * t < 0;
        },
        intersectBox: function (e, t) {
          var n,
            r,
            i,
            A,
            o,
            a,
            s = 1 / this.direction.x,
            c = 1 / this.direction.y,
            u = 1 / this.direction.z,
            l = this.origin;
          return (
            s >= 0
              ? ((n = (e.min.x - l.x) * s), (r = (e.max.x - l.x) * s))
              : ((n = (e.max.x - l.x) * s), (r = (e.min.x - l.x) * s)),
            c >= 0
              ? ((i = (e.min.y - l.y) * c), (A = (e.max.y - l.y) * c))
              : ((i = (e.max.y - l.y) * c), (A = (e.min.y - l.y) * c)),
            n > A || i > r
              ? null
              : ((i > n || n !== n) && (n = i),
                (A < r || r !== r) && (r = A),
                u >= 0
                  ? ((o = (e.min.z - l.z) * u), (a = (e.max.z - l.z) * u))
                  : ((o = (e.max.z - l.z) * u), (a = (e.min.z - l.z) * u)),
                n > a || o > r
                  ? null
                  : ((o > n || n !== n) && (n = o),
                    (a < r || r !== r) && (r = a),
                    r < 0 ? null : this.at(n >= 0 ? n : r, t)))
          );
        },
        intersectsBox: function (e) {
          return null !== this.intersectBox(e, dr);
        },
        intersectTriangle: function (e, t, n, r, i) {
          (vr.subVectors(t, e), yr.subVectors(n, e), wr.crossVectors(vr, yr));
          var A,
            o = this.direction.dot(wr);
          if (o > 0) {
            if (r) return null;
            A = 1;
          } else {
            if (!(o < 0)) return null;
            ((A = -1), (o = -o));
          }
          mr.subVectors(this.origin, e);
          var a = A * this.direction.dot(yr.crossVectors(mr, yr));
          if (a < 0) return null;
          var s = A * this.direction.dot(vr.cross(mr));
          if (s < 0) return null;
          if (a + s > o) return null;
          var c = -A * mr.dot(wr);
          return c < 0 ? null : this.at(c / o, i);
        },
        applyMatrix4: function (e) {
          return (
            this.origin.applyMatrix4(e),
            this.direction.transformDirection(e),
            this
          );
        },
        equals: function (e) {
          return (
            e.origin.equals(this.origin) && e.direction.equals(this.direction)
          );
        },
      });
      var br = new _n(),
        _r = new _n(),
        xr = new fn();
      function Cr(e, t) {
        ((this.normal = void 0 !== e ? e : new _n(1, 0, 0)),
          (this.constant = void 0 !== t ? t : 0));
      }
      Object.assign(Cr.prototype, {
        isPlane: !0,
        set: function (e, t) {
          return (this.normal.copy(e), (this.constant = t), this);
        },
        setComponents: function (e, t, n, r) {
          return (this.normal.set(e, t, n), (this.constant = r), this);
        },
        setFromNormalAndCoplanarPoint: function (e, t) {
          return (
            this.normal.copy(e),
            (this.constant = -t.dot(this.normal)),
            this
          );
        },
        setFromCoplanarPoints: function (e, t, n) {
          var r = br.subVectors(n, t).cross(_r.subVectors(e, t)).normalize();
          return (this.setFromNormalAndCoplanarPoint(r, e), this);
        },
        clone: function () {
          return new this.constructor().copy(this);
        },
        copy: function (e) {
          return (
            this.normal.copy(e.normal),
            (this.constant = e.constant),
            this
          );
        },
        normalize: function () {
          var e = 1 / this.normal.length();
          return (this.normal.multiplyScalar(e), (this.constant *= e), this);
        },
        negate: function () {
          return ((this.constant *= -1), this.normal.negate(), this);
        },
        distanceToPoint: function (e) {
          return this.normal.dot(e) + this.constant;
        },
        distanceToSphere: function (e) {
          return this.distanceToPoint(e.center) - e.radius;
        },
        projectPoint: function (e, t) {
          return (
            void 0 === t &&
              (console.warn(
                "THREE.Plane: .projectPoint() target is now required",
              ),
              (t = new _n())),
            t.copy(this.normal).multiplyScalar(-this.distanceToPoint(e)).add(e)
          );
        },
        intersectLine: function (e, t) {
          void 0 === t &&
            (console.warn(
              "THREE.Plane: .intersectLine() target is now required",
            ),
            (t = new _n()));
          var n = e.delta(br),
            r = this.normal.dot(n);
          if (0 === r)
            return 0 === this.distanceToPoint(e.start)
              ? t.copy(e.start)
              : void 0;
          var i = -(e.start.dot(this.normal) + this.constant) / r;
          return i < 0 || i > 1
            ? void 0
            : t.copy(n).multiplyScalar(i).add(e.start);
        },
        intersectsLine: function (e) {
          var t = this.distanceToPoint(e.start),
            n = this.distanceToPoint(e.end);
          return (t < 0 && n > 0) || (n < 0 && t > 0);
        },
        intersectsBox: function (e) {
          return e.intersectsPlane(this);
        },
        intersectsSphere: function (e) {
          return e.intersectsPlane(this);
        },
        coplanarPoint: function (e) {
          return (
            void 0 === e &&
              (console.warn(
                "THREE.Plane: .coplanarPoint() target is now required",
              ),
              (e = new _n())),
            e.copy(this.normal).multiplyScalar(-this.constant)
          );
        },
        applyMatrix4: function (e, t) {
          var n = t || xr.getNormalMatrix(e),
            r = this.coplanarPoint(br).applyMatrix4(e),
            i = this.normal.applyMatrix3(n).normalize();
          return ((this.constant = -r.dot(i)), this);
        },
        translate: function (e) {
          return ((this.constant -= e.dot(this.normal)), this);
        },
        equals: function (e) {
          return e.normal.equals(this.normal) && e.constant === this.constant;
        },
      });
      var Er = new _n(),
        Mr = new _n(),
        Sr = new _n(),
        Fr = new _n(),
        Tr = new _n(),
        Ur = new _n(),
        Qr = new _n(),
        Lr = new _n(),
        Ir = new _n(),
        Hr = new _n();
      function Or(e, t, n) {
        ((this.a = void 0 !== e ? e : new _n()),
          (this.b = void 0 !== t ? t : new _n()),
          (this.c = void 0 !== n ? n : new _n()));
      }
      (Object.assign(Or, {
        getNormal: function (e, t, n, r) {
          (void 0 === r &&
            (console.warn(
              "THREE.Triangle: .getNormal() target is now required",
            ),
            (r = new _n())),
            r.subVectors(n, t),
            Er.subVectors(e, t),
            r.cross(Er));
          var i = r.lengthSq();
          return i > 0 ? r.multiplyScalar(1 / Math.sqrt(i)) : r.set(0, 0, 0);
        },
        getBarycoord: function (e, t, n, r, i) {
          (Er.subVectors(r, t), Mr.subVectors(n, t), Sr.subVectors(e, t));
          var A = Er.dot(Er),
            o = Er.dot(Mr),
            a = Er.dot(Sr),
            s = Mr.dot(Mr),
            c = Mr.dot(Sr),
            u = A * s - o * o;
          if (
            (void 0 === i &&
              (console.warn(
                "THREE.Triangle: .getBarycoord() target is now required",
              ),
              (i = new _n())),
            0 === u)
          )
            return i.set(-2, -1, -1);
          var l = 1 / u,
            h = (s * a - o * c) * l,
            f = (A * c - o * a) * l;
          return i.set(1 - h - f, f, h);
        },
        containsPoint: function (e, t, n, r) {
          return (
            Or.getBarycoord(e, t, n, r, Fr),
            Fr.x >= 0 && Fr.y >= 0 && Fr.x + Fr.y <= 1
          );
        },
        getUV: function (e, t, n, r, i, A, o, a) {
          return (
            this.getBarycoord(e, t, n, r, Fr),
            a.set(0, 0),
            a.addScaledVector(i, Fr.x),
            a.addScaledVector(A, Fr.y),
            a.addScaledVector(o, Fr.z),
            a
          );
        },
        isFrontFacing: function (e, t, n, r) {
          return (
            Er.subVectors(n, t),
            Mr.subVectors(e, t),
            Er.cross(Mr).dot(r) < 0
          );
        },
      }),
        Object.assign(Or.prototype, {
          set: function (e, t, n) {
            return (this.a.copy(e), this.b.copy(t), this.c.copy(n), this);
          },
          setFromPointsAndIndices: function (e, t, n, r) {
            return (
              this.a.copy(e[t]),
              this.b.copy(e[n]),
              this.c.copy(e[r]),
              this
            );
          },
          clone: function () {
            return new this.constructor().copy(this);
          },
          copy: function (e) {
            return (this.a.copy(e.a), this.b.copy(e.b), this.c.copy(e.c), this);
          },
          getArea: function () {
            return (
              Er.subVectors(this.c, this.b),
              Mr.subVectors(this.a, this.b),
              0.5 * Er.cross(Mr).length()
            );
          },
          getMidpoint: function (e) {
            return (
              void 0 === e &&
                (console.warn(
                  "THREE.Triangle: .getMidpoint() target is now required",
                ),
                (e = new _n())),
              e
                .addVectors(this.a, this.b)
                .add(this.c)
                .multiplyScalar(1 / 3)
            );
          },
          getNormal: function (e) {
            return Or.getNormal(this.a, this.b, this.c, e);
          },
          getPlane: function (e) {
            return (
              void 0 === e &&
                (console.warn(
                  "THREE.Triangle: .getPlane() target is now required",
                ),
                (e = new Cr())),
              e.setFromCoplanarPoints(this.a, this.b, this.c)
            );
          },
          getBarycoord: function (e, t) {
            return Or.getBarycoord(e, this.a, this.b, this.c, t);
          },
          getUV: function (e, t, n, r, i) {
            return Or.getUV(e, this.a, this.b, this.c, t, n, r, i);
          },
          containsPoint: function (e) {
            return Or.containsPoint(e, this.a, this.b, this.c);
          },
          isFrontFacing: function (e) {
            return Or.isFrontFacing(this.a, this.b, this.c, e);
          },
          intersectsBox: function (e) {
            return e.intersectsTriangle(this);
          },
          closestPointToPoint: function (e, t) {
            void 0 === t &&
              (console.warn(
                "THREE.Triangle: .closestPointToPoint() target is now required",
              ),
              (t = new _n()));
            var n,
              r,
              i = this.a,
              A = this.b,
              o = this.c;
            (Tr.subVectors(A, i), Ur.subVectors(o, i), Lr.subVectors(e, i));
            var a = Tr.dot(Lr),
              s = Ur.dot(Lr);
            if (a <= 0 && s <= 0) return t.copy(i);
            Ir.subVectors(e, A);
            var c = Tr.dot(Ir),
              u = Ur.dot(Ir);
            if (c >= 0 && u <= c) return t.copy(A);
            var l = a * u - c * s;
            if (l <= 0 && a >= 0 && c <= 0)
              return ((n = a / (a - c)), t.copy(i).addScaledVector(Tr, n));
            Hr.subVectors(e, o);
            var h = Tr.dot(Hr),
              f = Ur.dot(Hr);
            if (f >= 0 && h <= f) return t.copy(o);
            var d = h * s - a * f;
            if (d <= 0 && s >= 0 && f <= 0)
              return ((r = s / (s - f)), t.copy(i).addScaledVector(Ur, r));
            var p = c * f - h * u;
            if (p <= 0 && u - c >= 0 && h - f >= 0)
              return (
                Qr.subVectors(o, A),
                (r = (u - c) / (u - c + (h - f))),
                t.copy(A).addScaledVector(Qr, r)
              );
            var g = 1 / (p + d + l);
            return (
              (n = d * g),
              (r = l * g),
              t.copy(i).addScaledVector(Tr, n).addScaledVector(Ur, r)
            );
          },
          equals: function (e) {
            return (
              e.a.equals(this.a) && e.b.equals(this.b) && e.c.equals(this.c)
            );
          },
        }));
      var Rr = {
          aliceblue: 15792383,
          antiquewhite: 16444375,
          aqua: 65535,
          aquamarine: 8388564,
          azure: 15794175,
          beige: 16119260,
          bisque: 16770244,
          black: 0,
          blanchedalmond: 16772045,
          blue: 255,
          blueviolet: 9055202,
          brown: 10824234,
          burlywood: 14596231,
          cadetblue: 6266528,
          chartreuse: 8388352,
          chocolate: 13789470,
          coral: 16744272,
          cornflowerblue: 6591981,
          cornsilk: 16775388,
          crimson: 14423100,
          cyan: 65535,
          darkblue: 139,
          darkcyan: 35723,
          darkgoldenrod: 12092939,
          darkgray: 11119017,
          darkgreen: 25600,
          darkgrey: 11119017,
          darkkhaki: 12433259,
          darkmagenta: 9109643,
          darkolivegreen: 5597999,
          darkorange: 16747520,
          darkorchid: 10040012,
          darkred: 9109504,
          darksalmon: 15308410,
          darkseagreen: 9419919,
          darkslateblue: 4734347,
          darkslategray: 3100495,
          darkslategrey: 3100495,
          darkturquoise: 52945,
          darkviolet: 9699539,
          deeppink: 16716947,
          deepskyblue: 49151,
          dimgray: 6908265,
          dimgrey: 6908265,
          dodgerblue: 2003199,
          firebrick: 11674146,
          floralwhite: 16775920,
          forestgreen: 2263842,
          fuchsia: 16711935,
          gainsboro: 14474460,
          ghostwhite: 16316671,
          gold: 16766720,
          goldenrod: 14329120,
          gray: 8421504,
          green: 32768,
          greenyellow: 11403055,
          grey: 8421504,
          honeydew: 15794160,
          hotpink: 16738740,
          indianred: 13458524,
          indigo: 4915330,
          ivory: 16777200,
          khaki: 15787660,
          lavender: 15132410,
          lavenderblush: 16773365,
          lawngreen: 8190976,
          lemonchiffon: 16775885,
          lightblue: 11393254,
          lightcoral: 15761536,
          lightcyan: 14745599,
          lightgoldenrodyellow: 16448210,
          lightgray: 13882323,
          lightgreen: 9498256,
          lightgrey: 13882323,
          lightpink: 16758465,
          lightsalmon: 16752762,
          lightseagreen: 2142890,
          lightskyblue: 8900346,
          lightslategray: 7833753,
          lightslategrey: 7833753,
          lightsteelblue: 11584734,
          lightyellow: 16777184,
          lime: 65280,
          limegreen: 3329330,
          linen: 16445670,
          magenta: 16711935,
          maroon: 8388608,
          mediumaquamarine: 6737322,
          mediumblue: 205,
          mediumorchid: 12211667,
          mediumpurple: 9662683,
          mediumseagreen: 3978097,
          mediumslateblue: 8087790,
          mediumspringgreen: 64154,
          mediumturquoise: 4772300,
          mediumvioletred: 13047173,
          midnightblue: 1644912,
          mintcream: 16121850,
          mistyrose: 16770273,
          moccasin: 16770229,
          navajowhite: 16768685,
          navy: 128,
          oldlace: 16643558,
          olive: 8421376,
          olivedrab: 7048739,
          orange: 16753920,
          orangered: 16729344,
          orchid: 14315734,
          palegoldenrod: 15657130,
          palegreen: 10025880,
          paleturquoise: 11529966,
          palevioletred: 14381203,
          papayawhip: 16773077,
          peachpuff: 16767673,
          peru: 13468991,
          pink: 16761035,
          plum: 14524637,
          powderblue: 11591910,
          purple: 8388736,
          rebeccapurple: 6697881,
          red: 16711680,
          rosybrown: 12357519,
          royalblue: 4286945,
          saddlebrown: 9127187,
          salmon: 16416882,
          sandybrown: 16032864,
          seagreen: 3050327,
          seashell: 16774638,
          sienna: 10506797,
          silver: 12632256,
          skyblue: 8900331,
          slateblue: 6970061,
          slategray: 7372944,
          slategrey: 7372944,
          snow: 16775930,
          springgreen: 65407,
          steelblue: 4620980,
          tan: 13808780,
          teal: 32896,
          thistle: 14204888,
          tomato: 16737095,
          turquoise: 4251856,
          violet: 15631086,
          wheat: 16113331,
          white: 16777215,
          whitesmoke: 16119285,
          yellow: 16776960,
          yellowgreen: 10145074,
        },
        Pr = { h: 0, s: 0, l: 0 },
        Dr = { h: 0, s: 0, l: 0 };
      function Nr(e, t, n) {
        return void 0 === t && void 0 === n
          ? this.set(e)
          : this.setRGB(e, t, n);
      }
      function kr(e, t, n) {
        return (
          n < 0 && (n += 1),
          n > 1 && (n -= 1),
          n < 1 / 6
            ? e + 6 * (t - e) * n
            : n < 0.5
              ? t
              : n < 2 / 3
                ? e + 6 * (t - e) * (2 / 3 - n)
                : e
        );
      }
      function Gr(e) {
        return e < 0.04045
          ? 0.0773993808 * e
          : Math.pow(0.9478672986 * e + 0.0521327014, 2.4);
      }
      function Vr(e) {
        return e < 0.0031308 ? 12.92 * e : 1.055 * Math.pow(e, 0.41666) - 0.055;
      }
      function zr(e, t, n, r, i, A) {
        ((this.a = e),
          (this.b = t),
          (this.c = n),
          (this.normal = r && r.isVector3 ? r : new _n()),
          (this.vertexNormals = Array.isArray(r) ? r : []),
          (this.color = i && i.isColor ? i : new Nr()),
          (this.vertexColors = Array.isArray(i) ? i : []),
          (this.materialIndex = void 0 !== A ? A : 0));
      }
      (Object.assign(Nr.prototype, {
        isColor: !0,
        r: 1,
        g: 1,
        b: 1,
        set: function (e) {
          return (
            e && e.isColor
              ? this.copy(e)
              : "number" === typeof e
                ? this.setHex(e)
                : "string" === typeof e && this.setStyle(e),
            this
          );
        },
        setScalar: function (e) {
          return ((this.r = e), (this.g = e), (this.b = e), this);
        },
        setHex: function (e) {
          return (
            (e = Math.floor(e)),
            (this.r = ((e >> 16) & 255) / 255),
            (this.g = ((e >> 8) & 255) / 255),
            (this.b = (255 & e) / 255),
            this
          );
        },
        setRGB: function (e, t, n) {
          return ((this.r = e), (this.g = t), (this.b = n), this);
        },
        setHSL: function (e, t, n) {
          if (
            ((e = ln.euclideanModulo(e, 1)),
            (t = ln.clamp(t, 0, 1)),
            (n = ln.clamp(n, 0, 1)),
            0 === t)
          )
            this.r = this.g = this.b = n;
          else {
            var r = n <= 0.5 ? n * (1 + t) : n + t - n * t,
              i = 2 * n - r;
            ((this.r = kr(i, r, e + 1 / 3)),
              (this.g = kr(i, r, e)),
              (this.b = kr(i, r, e - 1 / 3)));
          }
          return this;
        },
        setStyle: function (e) {
          function t(t) {
            void 0 !== t &&
              parseFloat(t) < 1 &&
              console.warn(
                "THREE.Color: Alpha component of " + e + " will be ignored.",
              );
          }
          var n;
          if ((n = /^((?:rgb|hsl)a?)\(\s*([^\)]*)\)/.exec(e))) {
            var r,
              i = n[1],
              A = n[2];
            switch (i) {
              case "rgb":
              case "rgba":
                if (
                  (r =
                    /^(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(
                      A,
                    ))
                )
                  return (
                    (this.r = Math.min(255, parseInt(r[1], 10)) / 255),
                    (this.g = Math.min(255, parseInt(r[2], 10)) / 255),
                    (this.b = Math.min(255, parseInt(r[3], 10)) / 255),
                    t(r[5]),
                    this
                  );
                if (
                  (r =
                    /^(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(
                      A,
                    ))
                )
                  return (
                    (this.r = Math.min(100, parseInt(r[1], 10)) / 100),
                    (this.g = Math.min(100, parseInt(r[2], 10)) / 100),
                    (this.b = Math.min(100, parseInt(r[3], 10)) / 100),
                    t(r[5]),
                    this
                  );
                break;
              case "hsl":
              case "hsla":
                if (
                  (r =
                    /^([0-9]*\.?[0-9]+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(
                      A,
                    ))
                ) {
                  var o = parseFloat(r[1]) / 360,
                    a = parseInt(r[2], 10) / 100,
                    s = parseInt(r[3], 10) / 100;
                  return (t(r[5]), this.setHSL(o, a, s));
                }
                break;
            }
          } else if ((n = /^\#([A-Fa-f0-9]+)$/.exec(e))) {
            var c = n[1],
              u = c.length;
            if (3 === u)
              return (
                (this.r = parseInt(c.charAt(0) + c.charAt(0), 16) / 255),
                (this.g = parseInt(c.charAt(1) + c.charAt(1), 16) / 255),
                (this.b = parseInt(c.charAt(2) + c.charAt(2), 16) / 255),
                this
              );
            if (6 === u)
              return (
                (this.r = parseInt(c.charAt(0) + c.charAt(1), 16) / 255),
                (this.g = parseInt(c.charAt(2) + c.charAt(3), 16) / 255),
                (this.b = parseInt(c.charAt(4) + c.charAt(5), 16) / 255),
                this
              );
          }
          return e && e.length > 0 ? this.setColorName(e) : this;
        },
        setColorName: function (e) {
          var t = Rr[e];
          return (
            void 0 !== t
              ? this.setHex(t)
              : console.warn("THREE.Color: Unknown color " + e),
            this
          );
        },
        clone: function () {
          return new this.constructor(this.r, this.g, this.b);
        },
        copy: function (e) {
          return ((this.r = e.r), (this.g = e.g), (this.b = e.b), this);
        },
        copyGammaToLinear: function (e, t) {
          return (
            void 0 === t && (t = 2),
            (this.r = Math.pow(e.r, t)),
            (this.g = Math.pow(e.g, t)),
            (this.b = Math.pow(e.b, t)),
            this
          );
        },
        copyLinearToGamma: function (e, t) {
          void 0 === t && (t = 2);
          var n = t > 0 ? 1 / t : 1;
          return (
            (this.r = Math.pow(e.r, n)),
            (this.g = Math.pow(e.g, n)),
            (this.b = Math.pow(e.b, n)),
            this
          );
        },
        convertGammaToLinear: function (e) {
          return (this.copyGammaToLinear(this, e), this);
        },
        convertLinearToGamma: function (e) {
          return (this.copyLinearToGamma(this, e), this);
        },
        copySRGBToLinear: function (e) {
          return (
            (this.r = Gr(e.r)),
            (this.g = Gr(e.g)),
            (this.b = Gr(e.b)),
            this
          );
        },
        copyLinearToSRGB: function (e) {
          return (
            (this.r = Vr(e.r)),
            (this.g = Vr(e.g)),
            (this.b = Vr(e.b)),
            this
          );
        },
        convertSRGBToLinear: function () {
          return (this.copySRGBToLinear(this), this);
        },
        convertLinearToSRGB: function () {
          return (this.copyLinearToSRGB(this), this);
        },
        getHex: function () {
          return (
            ((255 * this.r) << 16) ^
            ((255 * this.g) << 8) ^
            ((255 * this.b) << 0)
          );
        },
        getHexString: function () {
          return ("000000" + this.getHex().toString(16)).slice(-6);
        },
        getHSL: function (e) {
          void 0 === e &&
            (console.warn("THREE.Color: .getHSL() target is now required"),
            (e = { h: 0, s: 0, l: 0 }));
          var t,
            n,
            r = this.r,
            i = this.g,
            A = this.b,
            o = Math.max(r, i, A),
            a = Math.min(r, i, A),
            s = (a + o) / 2;
          if (a === o) ((t = 0), (n = 0));
          else {
            var c = o - a;
            switch (((n = s <= 0.5 ? c / (o + a) : c / (2 - o - a)), o)) {
              case r:
                t = (i - A) / c + (i < A ? 6 : 0);
                break;
              case i:
                t = (A - r) / c + 2;
                break;
              case A:
                t = (r - i) / c + 4;
                break;
            }
            t /= 6;
          }
          return ((e.h = t), (e.s = n), (e.l = s), e);
        },
        getStyle: function () {
          return (
            "rgb(" +
            ((255 * this.r) | 0) +
            "," +
            ((255 * this.g) | 0) +
            "," +
            ((255 * this.b) | 0) +
            ")"
          );
        },
        offsetHSL: function (e, t, n) {
          return (
            this.getHSL(Pr),
            (Pr.h += e),
            (Pr.s += t),
            (Pr.l += n),
            this.setHSL(Pr.h, Pr.s, Pr.l),
            this
          );
        },
        add: function (e) {
          return ((this.r += e.r), (this.g += e.g), (this.b += e.b), this);
        },
        addColors: function (e, t) {
          return (
            (this.r = e.r + t.r),
            (this.g = e.g + t.g),
            (this.b = e.b + t.b),
            this
          );
        },
        addScalar: function (e) {
          return ((this.r += e), (this.g += e), (this.b += e), this);
        },
        sub: function (e) {
          return (
            (this.r = Math.max(0, this.r - e.r)),
            (this.g = Math.max(0, this.g - e.g)),
            (this.b = Math.max(0, this.b - e.b)),
            this
          );
        },
        multiply: function (e) {
          return ((this.r *= e.r), (this.g *= e.g), (this.b *= e.b), this);
        },
        multiplyScalar: function (e) {
          return ((this.r *= e), (this.g *= e), (this.b *= e), this);
        },
        lerp: function (e, t) {
          return (
            (this.r += (e.r - this.r) * t),
            (this.g += (e.g - this.g) * t),
            (this.b += (e.b - this.b) * t),
            this
          );
        },
        lerpHSL: function (e, t) {
          (this.getHSL(Pr), e.getHSL(Dr));
          var n = ln.lerp(Pr.h, Dr.h, t),
            r = ln.lerp(Pr.s, Dr.s, t),
            i = ln.lerp(Pr.l, Dr.l, t);
          return (this.setHSL(n, r, i), this);
        },
        equals: function (e) {
          return e.r === this.r && e.g === this.g && e.b === this.b;
        },
        fromArray: function (e, t) {
          return (
            void 0 === t && (t = 0),
            (this.r = e[t]),
            (this.g = e[t + 1]),
            (this.b = e[t + 2]),
            this
          );
        },
        toArray: function (e, t) {
          return (
            void 0 === e && (e = []),
            void 0 === t && (t = 0),
            (e[t] = this.r),
            (e[t + 1] = this.g),
            (e[t + 2] = this.b),
            e
          );
        },
        toJSON: function () {
          return this.getHex();
        },
      }),
        (Nr.NAMES = Rr),
        Object.assign(zr.prototype, {
          clone: function () {
            return new this.constructor().copy(this);
          },
          copy: function (e) {
            ((this.a = e.a),
              (this.b = e.b),
              (this.c = e.c),
              this.normal.copy(e.normal),
              this.color.copy(e.color),
              (this.materialIndex = e.materialIndex));
            for (var t = 0, n = e.vertexNormals.length; t < n; t++)
              this.vertexNormals[t] = e.vertexNormals[t].clone();
            for (t = 0, n = e.vertexColors.length; t < n; t++)
              this.vertexColors[t] = e.vertexColors[t].clone();
            return this;
          },
        }));
      var jr = 0;
      function Kr() {
        (Object.defineProperty(this, "id", { value: jr++ }),
          (this.uuid = ln.generateUUID()),
          (this.name = ""),
          (this.type = "Material"),
          (this.fog = !0),
          (this.blending = m),
          (this.side = h),
          (this.flatShading = !1),
          (this.vertexColors = !1),
          (this.opacity = 1),
          (this.transparent = !1),
          (this.blendSrc = U),
          (this.blendDst = Q),
          (this.blendEquation = b),
          (this.blendSrcAlpha = null),
          (this.blendDstAlpha = null),
          (this.blendEquationAlpha = null),
          (this.depthFunc = k),
          (this.depthTest = !0),
          (this.depthWrite = !0),
          (this.stencilWriteMask = 255),
          (this.stencilFunc = rn),
          (this.stencilRef = 0),
          (this.stencilFuncMask = 255),
          (this.stencilFail = nn),
          (this.stencilZFail = nn),
          (this.stencilZPass = nn),
          (this.stencilWrite = !1),
          (this.clippingPlanes = null),
          (this.clipIntersection = !1),
          (this.clipShadows = !1),
          (this.shadowSide = null),
          (this.colorWrite = !0),
          (this.precision = null),
          (this.polygonOffset = !1),
          (this.polygonOffsetFactor = 0),
          (this.polygonOffsetUnits = 0),
          (this.dithering = !1),
          (this.alphaTest = 0),
          (this.premultipliedAlpha = !1),
          (this.visible = !0),
          (this.toneMapped = !0),
          (this.userData = {}),
          (this.version = 0));
      }
      function Wr(e) {
        (Kr.call(this),
          (this.type = "MeshBasicMaterial"),
          (this.color = new Nr(16777215)),
          (this.map = null),
          (this.lightMap = null),
          (this.lightMapIntensity = 1),
          (this.aoMap = null),
          (this.aoMapIntensity = 1),
          (this.specularMap = null),
          (this.alphaMap = null),
          (this.envMap = null),
          (this.combine = K),
          (this.reflectivity = 1),
          (this.refractionRatio = 0.98),
          (this.wireframe = !1),
          (this.wireframeLinewidth = 1),
          (this.wireframeLinecap = "round"),
          (this.wireframeLinejoin = "round"),
          (this.skinning = !1),
          (this.morphTargets = !1),
          this.setValues(e));
      }
      ((Kr.prototype = Object.assign(Object.create(an.prototype), {
        constructor: Kr,
        isMaterial: !0,
        onBeforeCompile: function () {},
        setValues: function (e) {
          if (void 0 !== e)
            for (var t in e) {
              var n = e[t];
              if (void 0 !== n)
                if ("shading" !== t) {
                  var r = this[t];
                  void 0 !== r
                    ? r && r.isColor
                      ? r.set(n)
                      : r && r.isVector3 && n && n.isVector3
                        ? r.copy(n)
                        : (this[t] = n)
                    : console.warn(
                        "THREE." +
                          this.type +
                          ": '" +
                          t +
                          "' is not a property of this material.",
                      );
                } else
                  (console.warn(
                    "THREE." +
                      this.type +
                      ": .shading has been removed. Use the boolean .flatShading instead.",
                  ),
                    (this.flatShading = n === p));
              else
                console.warn(
                  "THREE.Material: '" + t + "' parameter is undefined.",
                );
            }
        },
        toJSON: function (e) {
          var t = void 0 === e || "string" === typeof e;
          t && (e = { textures: {}, images: {} });
          var n = {
            metadata: {
              version: 4.5,
              type: "Material",
              generator: "Material.toJSON",
            },
          };
          function r(e) {
            var t = [];
            for (var n in e) {
              var r = e[n];
              (delete r.metadata, t.push(r));
            }
            return t;
          }
          if (
            ((n.uuid = this.uuid),
            (n.type = this.type),
            "" !== this.name && (n.name = this.name),
            this.color && this.color.isColor && (n.color = this.color.getHex()),
            void 0 !== this.roughness && (n.roughness = this.roughness),
            void 0 !== this.metalness && (n.metalness = this.metalness),
            this.sheen && this.sheen.isColor && (n.sheen = this.sheen.getHex()),
            this.emissive &&
              this.emissive.isColor &&
              (n.emissive = this.emissive.getHex()),
            this.emissiveIntensity &&
              1 !== this.emissiveIntensity &&
              (n.emissiveIntensity = this.emissiveIntensity),
            this.specular &&
              this.specular.isColor &&
              (n.specular = this.specular.getHex()),
            void 0 !== this.shininess && (n.shininess = this.shininess),
            void 0 !== this.clearcoat && (n.clearcoat = this.clearcoat),
            void 0 !== this.clearcoatRoughness &&
              (n.clearcoatRoughness = this.clearcoatRoughness),
            this.clearcoatMap &&
              this.clearcoatMap.isTexture &&
              (n.clearcoatMap = this.clearcoatMap.toJSON(e).uuid),
            this.clearcoatRoughnessMap &&
              this.clearcoatRoughnessMap.isTexture &&
              (n.clearcoatRoughnessMap =
                this.clearcoatRoughnessMap.toJSON(e).uuid),
            this.clearcoatNormalMap &&
              this.clearcoatNormalMap.isTexture &&
              ((n.clearcoatNormalMap = this.clearcoatNormalMap.toJSON(e).uuid),
              (n.clearcoatNormalScale = this.clearcoatNormalScale.toArray())),
            this.map && this.map.isTexture && (n.map = this.map.toJSON(e).uuid),
            this.matcap &&
              this.matcap.isTexture &&
              (n.matcap = this.matcap.toJSON(e).uuid),
            this.alphaMap &&
              this.alphaMap.isTexture &&
              (n.alphaMap = this.alphaMap.toJSON(e).uuid),
            this.lightMap &&
              this.lightMap.isTexture &&
              (n.lightMap = this.lightMap.toJSON(e).uuid),
            this.aoMap &&
              this.aoMap.isTexture &&
              ((n.aoMap = this.aoMap.toJSON(e).uuid),
              (n.aoMapIntensity = this.aoMapIntensity)),
            this.bumpMap &&
              this.bumpMap.isTexture &&
              ((n.bumpMap = this.bumpMap.toJSON(e).uuid),
              (n.bumpScale = this.bumpScale)),
            this.normalMap &&
              this.normalMap.isTexture &&
              ((n.normalMap = this.normalMap.toJSON(e).uuid),
              (n.normalMapType = this.normalMapType),
              (n.normalScale = this.normalScale.toArray())),
            this.displacementMap &&
              this.displacementMap.isTexture &&
              ((n.displacementMap = this.displacementMap.toJSON(e).uuid),
              (n.displacementScale = this.displacementScale),
              (n.displacementBias = this.displacementBias)),
            this.roughnessMap &&
              this.roughnessMap.isTexture &&
              (n.roughnessMap = this.roughnessMap.toJSON(e).uuid),
            this.metalnessMap &&
              this.metalnessMap.isTexture &&
              (n.metalnessMap = this.metalnessMap.toJSON(e).uuid),
            this.emissiveMap &&
              this.emissiveMap.isTexture &&
              (n.emissiveMap = this.emissiveMap.toJSON(e).uuid),
            this.specularMap &&
              this.specularMap.isTexture &&
              (n.specularMap = this.specularMap.toJSON(e).uuid),
            this.envMap &&
              this.envMap.isTexture &&
              ((n.envMap = this.envMap.toJSON(e).uuid),
              (n.reflectivity = this.reflectivity),
              (n.refractionRatio = this.refractionRatio),
              void 0 !== this.combine && (n.combine = this.combine),
              void 0 !== this.envMapIntensity &&
                (n.envMapIntensity = this.envMapIntensity)),
            this.gradientMap &&
              this.gradientMap.isTexture &&
              (n.gradientMap = this.gradientMap.toJSON(e).uuid),
            void 0 !== this.size && (n.size = this.size),
            void 0 !== this.sizeAttenuation &&
              (n.sizeAttenuation = this.sizeAttenuation),
            this.blending !== m && (n.blending = this.blending),
            !0 === this.flatShading && (n.flatShading = this.flatShading),
            this.side !== h && (n.side = this.side),
            this.vertexColors && (n.vertexColors = !0),
            this.opacity < 1 && (n.opacity = this.opacity),
            !0 === this.transparent && (n.transparent = this.transparent),
            (n.depthFunc = this.depthFunc),
            (n.depthTest = this.depthTest),
            (n.depthWrite = this.depthWrite),
            (n.stencilWrite = this.stencilWrite),
            (n.stencilWriteMask = this.stencilWriteMask),
            (n.stencilFunc = this.stencilFunc),
            (n.stencilRef = this.stencilRef),
            (n.stencilFuncMask = this.stencilFuncMask),
            (n.stencilFail = this.stencilFail),
            (n.stencilZFail = this.stencilZFail),
            (n.stencilZPass = this.stencilZPass),
            this.rotation &&
              0 !== this.rotation &&
              (n.rotation = this.rotation),
            !0 === this.polygonOffset && (n.polygonOffset = !0),
            0 !== this.polygonOffsetFactor &&
              (n.polygonOffsetFactor = this.polygonOffsetFactor),
            0 !== this.polygonOffsetUnits &&
              (n.polygonOffsetUnits = this.polygonOffsetUnits),
            this.linewidth &&
              1 !== this.linewidth &&
              (n.linewidth = this.linewidth),
            void 0 !== this.dashSize && (n.dashSize = this.dashSize),
            void 0 !== this.gapSize && (n.gapSize = this.gapSize),
            void 0 !== this.scale && (n.scale = this.scale),
            !0 === this.dithering && (n.dithering = !0),
            this.alphaTest > 0 && (n.alphaTest = this.alphaTest),
            !0 === this.premultipliedAlpha &&
              (n.premultipliedAlpha = this.premultipliedAlpha),
            !0 === this.wireframe && (n.wireframe = this.wireframe),
            this.wireframeLinewidth > 1 &&
              (n.wireframeLinewidth = this.wireframeLinewidth),
            "round" !== this.wireframeLinecap &&
              (n.wireframeLinecap = this.wireframeLinecap),
            "round" !== this.wireframeLinejoin &&
              (n.wireframeLinejoin = this.wireframeLinejoin),
            !0 === this.morphTargets && (n.morphTargets = !0),
            !0 === this.morphNormals && (n.morphNormals = !0),
            !0 === this.skinning && (n.skinning = !0),
            !1 === this.visible && (n.visible = !1),
            !1 === this.toneMapped && (n.toneMapped = !1),
            "{}" !== JSON.stringify(this.userData) &&
              (n.userData = this.userData),
            t)
          ) {
            var i = r(e.textures),
              A = r(e.images);
            (i.length > 0 && (n.textures = i), A.length > 0 && (n.images = A));
          }
          return n;
        },
        clone: function () {
          return new this.constructor().copy(this);
        },
        copy: function (e) {
          ((this.name = e.name),
            (this.fog = e.fog),
            (this.blending = e.blending),
            (this.side = e.side),
            (this.flatShading = e.flatShading),
            (this.vertexColors = e.vertexColors),
            (this.opacity = e.opacity),
            (this.transparent = e.transparent),
            (this.blendSrc = e.blendSrc),
            (this.blendDst = e.blendDst),
            (this.blendEquation = e.blendEquation),
            (this.blendSrcAlpha = e.blendSrcAlpha),
            (this.blendDstAlpha = e.blendDstAlpha),
            (this.blendEquationAlpha = e.blendEquationAlpha),
            (this.depthFunc = e.depthFunc),
            (this.depthTest = e.depthTest),
            (this.depthWrite = e.depthWrite),
            (this.stencilWriteMask = e.stencilWriteMask),
            (this.stencilFunc = e.stencilFunc),
            (this.stencilRef = e.stencilRef),
            (this.stencilFuncMask = e.stencilFuncMask),
            (this.stencilFail = e.stencilFail),
            (this.stencilZFail = e.stencilZFail),
            (this.stencilZPass = e.stencilZPass),
            (this.stencilWrite = e.stencilWrite));
          var t = e.clippingPlanes,
            n = null;
          if (null !== t) {
            var r = t.length;
            n = new Array(r);
            for (var i = 0; i !== r; ++i) n[i] = t[i].clone();
          }
          return (
            (this.clippingPlanes = n),
            (this.clipIntersection = e.clipIntersection),
            (this.clipShadows = e.clipShadows),
            (this.shadowSide = e.shadowSide),
            (this.colorWrite = e.colorWrite),
            (this.precision = e.precision),
            (this.polygonOffset = e.polygonOffset),
            (this.polygonOffsetFactor = e.polygonOffsetFactor),
            (this.polygonOffsetUnits = e.polygonOffsetUnits),
            (this.dithering = e.dithering),
            (this.alphaTest = e.alphaTest),
            (this.premultipliedAlpha = e.premultipliedAlpha),
            (this.visible = e.visible),
            (this.toneMapped = e.toneMapped),
            (this.userData = JSON.parse(JSON.stringify(e.userData))),
            this
          );
        },
        dispose: function () {
          this.dispatchEvent({ type: "dispose" });
        },
      })),
        Object.defineProperty(Kr.prototype, "needsUpdate", {
          set: function (e) {
            !0 === e && this.version++;
          },
        }),
        (Wr.prototype = Object.create(Kr.prototype)),
        (Wr.prototype.constructor = Wr),
        (Wr.prototype.isMeshBasicMaterial = !0),
        (Wr.prototype.copy = function (e) {
          return (
            Kr.prototype.copy.call(this, e),
            this.color.copy(e.color),
            (this.map = e.map),
            (this.lightMap = e.lightMap),
            (this.lightMapIntensity = e.lightMapIntensity),
            (this.aoMap = e.aoMap),
            (this.aoMapIntensity = e.aoMapIntensity),
            (this.specularMap = e.specularMap),
            (this.alphaMap = e.alphaMap),
            (this.envMap = e.envMap),
            (this.combine = e.combine),
            (this.reflectivity = e.reflectivity),
            (this.refractionRatio = e.refractionRatio),
            (this.wireframe = e.wireframe),
            (this.wireframeLinewidth = e.wireframeLinewidth),
            (this.wireframeLinecap = e.wireframeLinecap),
            (this.wireframeLinejoin = e.wireframeLinejoin),
            (this.skinning = e.skinning),
            (this.morphTargets = e.morphTargets),
            this
          );
        }));
      var Xr = new _n();
      function Yr(e, t, n) {
        if (Array.isArray(e))
          throw new TypeError(
            "THREE.BufferAttribute: array should be a Typed Array.",
          );
        ((this.name = ""),
          (this.array = e),
          (this.itemSize = t),
          (this.count = void 0 !== e ? e.length / t : 0),
          (this.normalized = !0 === n),
          (this.usage = An),
          (this.updateRange = { offset: 0, count: -1 }),
          (this.version = 0));
      }
      function Jr(e, t, n) {
        Yr.call(this, new Int8Array(e), t, n);
      }
      function qr(e, t, n) {
        Yr.call(this, new Uint8Array(e), t, n);
      }
      function Zr(e, t, n) {
        Yr.call(this, new Uint8ClampedArray(e), t, n);
      }
      function $r(e, t, n) {
        Yr.call(this, new Int16Array(e), t, n);
      }
      function ei(e, t, n) {
        Yr.call(this, new Uint16Array(e), t, n);
      }
      function ti(e, t, n) {
        Yr.call(this, new Int32Array(e), t, n);
      }
      function ni(e, t, n) {
        Yr.call(this, new Uint32Array(e), t, n);
      }
      function ri(e, t, n) {
        Yr.call(this, new Float32Array(e), t, n);
      }
      function ii(e, t, n) {
        Yr.call(this, new Float64Array(e), t, n);
      }
      function Ai() {
        ((this.vertices = []),
          (this.normals = []),
          (this.colors = []),
          (this.uvs = []),
          (this.uvs2 = []),
          (this.groups = []),
          (this.morphTargets = {}),
          (this.skinWeights = []),
          (this.skinIndices = []),
          (this.boundingBox = null),
          (this.boundingSphere = null),
          (this.verticesNeedUpdate = !1),
          (this.normalsNeedUpdate = !1),
          (this.colorsNeedUpdate = !1),
          (this.uvsNeedUpdate = !1),
          (this.groupsNeedUpdate = !1));
      }
      function oi(e) {
        if (0 === e.length) return -1 / 0;
        let t = e[0];
        for (let n = 1, r = e.length; n < r; ++n) e[n] > t && (t = e[n]);
        return t;
      }
      (Object.defineProperty(Yr.prototype, "needsUpdate", {
        set: function (e) {
          !0 === e && this.version++;
        },
      }),
        Object.assign(Yr.prototype, {
          isBufferAttribute: !0,
          onUploadCallback: function () {},
          setUsage: function (e) {
            return ((this.usage = e), this);
          },
          copy: function (e) {
            return (
              (this.name = e.name),
              (this.array = new e.array.constructor(e.array)),
              (this.itemSize = e.itemSize),
              (this.count = e.count),
              (this.normalized = e.normalized),
              (this.usage = e.usage),
              this
            );
          },
          copyAt: function (e, t, n) {
            ((e *= this.itemSize), (n *= t.itemSize));
            for (var r = 0, i = this.itemSize; r < i; r++)
              this.array[e + r] = t.array[n + r];
            return this;
          },
          copyArray: function (e) {
            return (this.array.set(e), this);
          },
          copyColorsArray: function (e) {
            for (var t = this.array, n = 0, r = 0, i = e.length; r < i; r++) {
              var A = e[r];
              (void 0 === A &&
                (console.warn(
                  "THREE.BufferAttribute.copyColorsArray(): color is undefined",
                  r,
                ),
                (A = new Nr())),
                (t[n++] = A.r),
                (t[n++] = A.g),
                (t[n++] = A.b));
            }
            return this;
          },
          copyVector2sArray: function (e) {
            for (var t = this.array, n = 0, r = 0, i = e.length; r < i; r++) {
              var A = e[r];
              (void 0 === A &&
                (console.warn(
                  "THREE.BufferAttribute.copyVector2sArray(): vector is undefined",
                  r,
                ),
                (A = new hn())),
                (t[n++] = A.x),
                (t[n++] = A.y));
            }
            return this;
          },
          copyVector3sArray: function (e) {
            for (var t = this.array, n = 0, r = 0, i = e.length; r < i; r++) {
              var A = e[r];
              (void 0 === A &&
                (console.warn(
                  "THREE.BufferAttribute.copyVector3sArray(): vector is undefined",
                  r,
                ),
                (A = new _n())),
                (t[n++] = A.x),
                (t[n++] = A.y),
                (t[n++] = A.z));
            }
            return this;
          },
          copyVector4sArray: function (e) {
            for (var t = this.array, n = 0, r = 0, i = e.length; r < i; r++) {
              var A = e[r];
              (void 0 === A &&
                (console.warn(
                  "THREE.BufferAttribute.copyVector4sArray(): vector is undefined",
                  r,
                ),
                (A = new mn())),
                (t[n++] = A.x),
                (t[n++] = A.y),
                (t[n++] = A.z),
                (t[n++] = A.w));
            }
            return this;
          },
          applyMatrix3: function (e) {
            for (var t = 0, n = this.count; t < n; t++)
              ((Xr.x = this.getX(t)),
                (Xr.y = this.getY(t)),
                (Xr.z = this.getZ(t)),
                Xr.applyMatrix3(e),
                this.setXYZ(t, Xr.x, Xr.y, Xr.z));
            return this;
          },
          applyMatrix4: function (e) {
            for (var t = 0, n = this.count; t < n; t++)
              ((Xr.x = this.getX(t)),
                (Xr.y = this.getY(t)),
                (Xr.z = this.getZ(t)),
                Xr.applyMatrix4(e),
                this.setXYZ(t, Xr.x, Xr.y, Xr.z));
            return this;
          },
          applyNormalMatrix: function (e) {
            for (var t = 0, n = this.count; t < n; t++)
              ((Xr.x = this.getX(t)),
                (Xr.y = this.getY(t)),
                (Xr.z = this.getZ(t)),
                Xr.applyNormalMatrix(e),
                this.setXYZ(t, Xr.x, Xr.y, Xr.z));
            return this;
          },
          transformDirection: function (e) {
            for (var t = 0, n = this.count; t < n; t++)
              ((Xr.x = this.getX(t)),
                (Xr.y = this.getY(t)),
                (Xr.z = this.getZ(t)),
                Xr.transformDirection(e),
                this.setXYZ(t, Xr.x, Xr.y, Xr.z));
            return this;
          },
          set: function (e, t) {
            return (void 0 === t && (t = 0), this.array.set(e, t), this);
          },
          getX: function (e) {
            return this.array[e * this.itemSize];
          },
          setX: function (e, t) {
            return ((this.array[e * this.itemSize] = t), this);
          },
          getY: function (e) {
            return this.array[e * this.itemSize + 1];
          },
          setY: function (e, t) {
            return ((this.array[e * this.itemSize + 1] = t), this);
          },
          getZ: function (e) {
            return this.array[e * this.itemSize + 2];
          },
          setZ: function (e, t) {
            return ((this.array[e * this.itemSize + 2] = t), this);
          },
          getW: function (e) {
            return this.array[e * this.itemSize + 3];
          },
          setW: function (e, t) {
            return ((this.array[e * this.itemSize + 3] = t), this);
          },
          setXY: function (e, t, n) {
            return (
              (e *= this.itemSize),
              (this.array[e + 0] = t),
              (this.array[e + 1] = n),
              this
            );
          },
          setXYZ: function (e, t, n, r) {
            return (
              (e *= this.itemSize),
              (this.array[e + 0] = t),
              (this.array[e + 1] = n),
              (this.array[e + 2] = r),
              this
            );
          },
          setXYZW: function (e, t, n, r, i) {
            return (
              (e *= this.itemSize),
              (this.array[e + 0] = t),
              (this.array[e + 1] = n),
              (this.array[e + 2] = r),
              (this.array[e + 3] = i),
              this
            );
          },
          onUpload: function (e) {
            return ((this.onUploadCallback = e), this);
          },
          clone: function () {
            return new this.constructor(this.array, this.itemSize).copy(this);
          },
          toJSON: function () {
            return {
              itemSize: this.itemSize,
              type: this.array.constructor.name,
              array: Array.prototype.slice.call(this.array),
              normalized: this.normalized,
            };
          },
        }),
        (Jr.prototype = Object.create(Yr.prototype)),
        (Jr.prototype.constructor = Jr),
        (qr.prototype = Object.create(Yr.prototype)),
        (qr.prototype.constructor = qr),
        (Zr.prototype = Object.create(Yr.prototype)),
        (Zr.prototype.constructor = Zr),
        ($r.prototype = Object.create(Yr.prototype)),
        ($r.prototype.constructor = $r),
        (ei.prototype = Object.create(Yr.prototype)),
        (ei.prototype.constructor = ei),
        (ti.prototype = Object.create(Yr.prototype)),
        (ti.prototype.constructor = ti),
        (ni.prototype = Object.create(Yr.prototype)),
        (ni.prototype.constructor = ni),
        (ri.prototype = Object.create(Yr.prototype)),
        (ri.prototype.constructor = ri),
        (ii.prototype = Object.create(Yr.prototype)),
        (ii.prototype.constructor = ii),
        Object.assign(Ai.prototype, {
          computeGroups: function (e) {
            for (
              var t, n = [], r = void 0, i = e.faces, A = 0;
              A < i.length;
              A++
            ) {
              var o = i[A];
              o.materialIndex !== r &&
                ((r = o.materialIndex),
                void 0 !== t && ((t.count = 3 * A - t.start), n.push(t)),
                (t = { start: 3 * A, materialIndex: r }));
            }
            (void 0 !== t && ((t.count = 3 * A - t.start), n.push(t)),
              (this.groups = n));
          },
          fromGeometry: function (e) {
            var t,
              n = e.faces,
              r = e.vertices,
              i = e.faceVertexUvs,
              A = i[0] && i[0].length > 0,
              o = i[1] && i[1].length > 0,
              a = e.morphTargets,
              s = a.length;
            if (s > 0) {
              t = [];
              for (var c = 0; c < s; c++) t[c] = { name: a[c].name, data: [] };
              this.morphTargets.position = t;
            }
            var u,
              l = e.morphNormals,
              h = l.length;
            if (h > 0) {
              u = [];
              for (c = 0; c < h; c++) u[c] = { name: l[c].name, data: [] };
              this.morphTargets.normal = u;
            }
            var f = e.skinIndices,
              d = e.skinWeights,
              p = f.length === r.length,
              g = d.length === r.length;
            r.length > 0 &&
              0 === n.length &&
              console.log(
                "THREE.DirectGeometry: Faceless geometries are not supported.",
              );
            for (c = 0; c < n.length; c++) {
              var m = n[c];
              this.vertices.push(r[m.a], r[m.b], r[m.c]);
              var v = m.vertexNormals;
              if (3 === v.length) this.normals.push(v[0], v[1], v[2]);
              else {
                var y = m.normal;
                this.normals.push(y, y, y);
              }
              var w = m.vertexColors;
              if (3 === w.length) this.colors.push(w[0], w[1], w[2]);
              else {
                var B = m.color;
                this.colors.push(B, B, B);
              }
              if (!0 === A) {
                var b = i[0][c];
                void 0 !== b
                  ? this.uvs.push(b[0], b[1], b[2])
                  : (console.warn(
                      "THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",
                      c,
                    ),
                    this.uvs.push(new hn(), new hn(), new hn()));
              }
              if (!0 === o) {
                b = i[1][c];
                void 0 !== b
                  ? this.uvs2.push(b[0], b[1], b[2])
                  : (console.warn(
                      "THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",
                      c,
                    ),
                    this.uvs2.push(new hn(), new hn(), new hn()));
              }
              for (var _ = 0; _ < s; _++) {
                var x = a[_].vertices;
                t[_].data.push(x[m.a], x[m.b], x[m.c]);
              }
              for (_ = 0; _ < h; _++) {
                var C = l[_].vertexNormals[c];
                u[_].data.push(C.a, C.b, C.c);
              }
              (p && this.skinIndices.push(f[m.a], f[m.b], f[m.c]),
                g && this.skinWeights.push(d[m.a], d[m.b], d[m.c]));
            }
            return (
              this.computeGroups(e),
              (this.verticesNeedUpdate = e.verticesNeedUpdate),
              (this.normalsNeedUpdate = e.normalsNeedUpdate),
              (this.colorsNeedUpdate = e.colorsNeedUpdate),
              (this.uvsNeedUpdate = e.uvsNeedUpdate),
              (this.groupsNeedUpdate = e.groupsNeedUpdate),
              null !== e.boundingSphere &&
                (this.boundingSphere = e.boundingSphere.clone()),
              null !== e.boundingBox &&
                (this.boundingBox = e.boundingBox.clone()),
              this
            );
          },
        }));
      var ai = 1,
        si = new Un(),
        ci = new Yn(),
        ui = new _n(),
        li = new ur(),
        hi = new ur(),
        fi = new _n();
      function di() {
        (Object.defineProperty(this, "id", { value: (ai += 2) }),
          (this.uuid = ln.generateUUID()),
          (this.name = ""),
          (this.type = "BufferGeometry"),
          (this.index = null),
          (this.attributes = {}),
          (this.morphAttributes = {}),
          (this.morphTargetsRelative = !1),
          (this.groups = []),
          (this.boundingBox = null),
          (this.boundingSphere = null),
          (this.drawRange = { start: 0, count: 1 / 0 }),
          (this.userData = {}));
      }
      di.prototype = Object.assign(Object.create(an.prototype), {
        constructor: di,
        isBufferGeometry: !0,
        getIndex: function () {
          return this.index;
        },
        setIndex: function (e) {
          Array.isArray(e)
            ? (this.index = new (oi(e) > 65535 ? ni : ei)(e, 1))
            : (this.index = e);
        },
        getAttribute: function (e) {
          return this.attributes[e];
        },
        setAttribute: function (e, t) {
          return ((this.attributes[e] = t), this);
        },
        deleteAttribute: function (e) {
          return (delete this.attributes[e], this);
        },
        addGroup: function (e, t, n) {
          this.groups.push({
            start: e,
            count: t,
            materialIndex: void 0 !== n ? n : 0,
          });
        },
        clearGroups: function () {
          this.groups = [];
        },
        setDrawRange: function (e, t) {
          ((this.drawRange.start = e), (this.drawRange.count = t));
        },
        applyMatrix4: function (e) {
          var t = this.attributes.position;
          void 0 !== t && (t.applyMatrix4(e), (t.needsUpdate = !0));
          var n = this.attributes.normal;
          if (void 0 !== n) {
            var r = new fn().getNormalMatrix(e);
            (n.applyNormalMatrix(r), (n.needsUpdate = !0));
          }
          var i = this.attributes.tangent;
          return (
            void 0 !== i && (i.transformDirection(e), (i.needsUpdate = !0)),
            null !== this.boundingBox && this.computeBoundingBox(),
            null !== this.boundingSphere && this.computeBoundingSphere(),
            this
          );
        },
        rotateX: function (e) {
          return (si.makeRotationX(e), this.applyMatrix4(si), this);
        },
        rotateY: function (e) {
          return (si.makeRotationY(e), this.applyMatrix4(si), this);
        },
        rotateZ: function (e) {
          return (si.makeRotationZ(e), this.applyMatrix4(si), this);
        },
        translate: function (e, t, n) {
          return (si.makeTranslation(e, t, n), this.applyMatrix4(si), this);
        },
        scale: function (e, t, n) {
          return (si.makeScale(e, t, n), this.applyMatrix4(si), this);
        },
        lookAt: function (e) {
          return (
            ci.lookAt(e),
            ci.updateMatrix(),
            this.applyMatrix4(ci.matrix),
            this
          );
        },
        center: function () {
          return (
            this.computeBoundingBox(),
            this.boundingBox.getCenter(ui).negate(),
            this.translate(ui.x, ui.y, ui.z),
            this
          );
        },
        setFromObject: function (e) {
          var t = e.geometry;
          if (e.isPoints || e.isLine) {
            var n = new ri(3 * t.vertices.length, 3),
              r = new ri(3 * t.colors.length, 3);
            if (
              (this.setAttribute("position", n.copyVector3sArray(t.vertices)),
              this.setAttribute("color", r.copyColorsArray(t.colors)),
              t.lineDistances && t.lineDistances.length === t.vertices.length)
            ) {
              var i = new ri(t.lineDistances.length, 1);
              this.setAttribute("lineDistance", i.copyArray(t.lineDistances));
            }
            (null !== t.boundingSphere &&
              (this.boundingSphere = t.boundingSphere.clone()),
              null !== t.boundingBox &&
                (this.boundingBox = t.boundingBox.clone()));
          } else e.isMesh && t && t.isGeometry && this.fromGeometry(t);
          return this;
        },
        setFromPoints: function (e) {
          for (var t = [], n = 0, r = e.length; n < r; n++) {
            var i = e[n];
            t.push(i.x, i.y, i.z || 0);
          }
          return (this.setAttribute("position", new ri(t, 3)), this);
        },
        updateFromObject: function (e) {
          var t,
            n = e.geometry;
          if (e.isMesh) {
            var r = n.__directGeometry;
            if (
              (!0 === n.elementsNeedUpdate &&
                ((r = void 0), (n.elementsNeedUpdate = !1)),
              void 0 === r)
            )
              return this.fromGeometry(n);
            ((r.verticesNeedUpdate = n.verticesNeedUpdate),
              (r.normalsNeedUpdate = n.normalsNeedUpdate),
              (r.colorsNeedUpdate = n.colorsNeedUpdate),
              (r.uvsNeedUpdate = n.uvsNeedUpdate),
              (r.groupsNeedUpdate = n.groupsNeedUpdate),
              (n.verticesNeedUpdate = !1),
              (n.normalsNeedUpdate = !1),
              (n.colorsNeedUpdate = !1),
              (n.uvsNeedUpdate = !1),
              (n.groupsNeedUpdate = !1),
              (n = r));
          }
          return (
            !0 === n.verticesNeedUpdate &&
              ((t = this.attributes.position),
              void 0 !== t &&
                (t.copyVector3sArray(n.vertices), (t.needsUpdate = !0)),
              (n.verticesNeedUpdate = !1)),
            !0 === n.normalsNeedUpdate &&
              ((t = this.attributes.normal),
              void 0 !== t &&
                (t.copyVector3sArray(n.normals), (t.needsUpdate = !0)),
              (n.normalsNeedUpdate = !1)),
            !0 === n.colorsNeedUpdate &&
              ((t = this.attributes.color),
              void 0 !== t &&
                (t.copyColorsArray(n.colors), (t.needsUpdate = !0)),
              (n.colorsNeedUpdate = !1)),
            n.uvsNeedUpdate &&
              ((t = this.attributes.uv),
              void 0 !== t &&
                (t.copyVector2sArray(n.uvs), (t.needsUpdate = !0)),
              (n.uvsNeedUpdate = !1)),
            n.lineDistancesNeedUpdate &&
              ((t = this.attributes.lineDistance),
              void 0 !== t &&
                (t.copyArray(n.lineDistances), (t.needsUpdate = !0)),
              (n.lineDistancesNeedUpdate = !1)),
            n.groupsNeedUpdate &&
              (n.computeGroups(e.geometry),
              (this.groups = n.groups),
              (n.groupsNeedUpdate = !1)),
            this
          );
        },
        fromGeometry: function (e) {
          return (
            (e.__directGeometry = new Ai().fromGeometry(e)),
            this.fromDirectGeometry(e.__directGeometry)
          );
        },
        fromDirectGeometry: function (e) {
          var t = new Float32Array(3 * e.vertices.length);
          if (
            (this.setAttribute(
              "position",
              new Yr(t, 3).copyVector3sArray(e.vertices),
            ),
            e.normals.length > 0)
          ) {
            var n = new Float32Array(3 * e.normals.length);
            this.setAttribute(
              "normal",
              new Yr(n, 3).copyVector3sArray(e.normals),
            );
          }
          if (e.colors.length > 0) {
            var r = new Float32Array(3 * e.colors.length);
            this.setAttribute("color", new Yr(r, 3).copyColorsArray(e.colors));
          }
          if (e.uvs.length > 0) {
            var i = new Float32Array(2 * e.uvs.length);
            this.setAttribute("uv", new Yr(i, 2).copyVector2sArray(e.uvs));
          }
          if (e.uvs2.length > 0) {
            var A = new Float32Array(2 * e.uvs2.length);
            this.setAttribute("uv2", new Yr(A, 2).copyVector2sArray(e.uvs2));
          }
          for (var o in ((this.groups = e.groups), e.morphTargets)) {
            for (
              var a = [], s = e.morphTargets[o], c = 0, u = s.length;
              c < u;
              c++
            ) {
              var l = s[c],
                h = new ri(3 * l.data.length, 3);
              ((h.name = l.name), a.push(h.copyVector3sArray(l.data)));
            }
            this.morphAttributes[o] = a;
          }
          if (e.skinIndices.length > 0) {
            var f = new ri(4 * e.skinIndices.length, 4);
            this.setAttribute("skinIndex", f.copyVector4sArray(e.skinIndices));
          }
          if (e.skinWeights.length > 0) {
            var d = new ri(4 * e.skinWeights.length, 4);
            this.setAttribute("skinWeight", d.copyVector4sArray(e.skinWeights));
          }
          return (
            null !== e.boundingSphere &&
              (this.boundingSphere = e.boundingSphere.clone()),
            null !== e.boundingBox &&
              (this.boundingBox = e.boundingBox.clone()),
            this
          );
        },
        computeBoundingBox: function () {
          null === this.boundingBox && (this.boundingBox = new ur());
          var e = this.attributes.position,
            t = this.morphAttributes.position;
          if (void 0 !== e) {
            if ((this.boundingBox.setFromBufferAttribute(e), t))
              for (var n = 0, r = t.length; n < r; n++) {
                var i = t[n];
                (li.setFromBufferAttribute(i),
                  this.morphTargetsRelative
                    ? (fi.addVectors(this.boundingBox.min, li.min),
                      this.boundingBox.expandByPoint(fi),
                      fi.addVectors(this.boundingBox.max, li.max),
                      this.boundingBox.expandByPoint(fi))
                    : (this.boundingBox.expandByPoint(li.min),
                      this.boundingBox.expandByPoint(li.max)));
              }
          } else this.boundingBox.makeEmpty();
          (isNaN(this.boundingBox.min.x) ||
            isNaN(this.boundingBox.min.y) ||
            isNaN(this.boundingBox.min.z)) &&
            console.log(
              'THREE.BufferGeometry.computeBoundingBox: Computed min/max have NaN values. The "position" attribute is likely to have NaN values.',
              this,
            );
        },
        computeBoundingSphere: function () {
          null === this.boundingSphere && (this.boundingSphere = new fr());
          var e = this.attributes.position,
            t = this.morphAttributes.position;
          if (e) {
            var n = this.boundingSphere.center;
            if ((li.setFromBufferAttribute(e), t))
              for (var r = 0, i = t.length; r < i; r++) {
                var A = t[r];
                (hi.setFromBufferAttribute(A),
                  this.morphTargetsRelative
                    ? (fi.addVectors(li.min, hi.min),
                      li.expandByPoint(fi),
                      fi.addVectors(li.max, hi.max),
                      li.expandByPoint(fi))
                    : (li.expandByPoint(hi.min), li.expandByPoint(hi.max)));
              }
            li.getCenter(n);
            var o = 0;
            for (r = 0, i = e.count; r < i; r++)
              (fi.fromBufferAttribute(e, r),
                (o = Math.max(o, n.distanceToSquared(fi))));
            if (t)
              for (r = 0, i = t.length; r < i; r++) {
                A = t[r];
                for (
                  var a = this.morphTargetsRelative, s = 0, c = A.count;
                  s < c;
                  s++
                )
                  (fi.fromBufferAttribute(A, s),
                    a && (ui.fromBufferAttribute(e, s), fi.add(ui)),
                    (o = Math.max(o, n.distanceToSquared(fi))));
              }
            ((this.boundingSphere.radius = Math.sqrt(o)),
              isNaN(this.boundingSphere.radius) &&
                console.log(
                  'THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',
                  this,
                ));
          }
        },
        computeFaceNormals: function () {},
        computeVertexNormals: function () {
          var e = this.index,
            t = this.attributes;
          if (t.position) {
            var n = t.position.array;
            if (void 0 === t.normal)
              this.setAttribute(
                "normal",
                new Yr(new Float32Array(n.length), 3),
              );
            else
              for (var r = t.normal.array, i = 0, A = r.length; i < A; i++)
                r[i] = 0;
            var o,
              a,
              s,
              c = t.normal.array,
              u = new _n(),
              l = new _n(),
              h = new _n(),
              f = new _n(),
              d = new _n();
            if (e) {
              var p = e.array;
              for (i = 0, A = e.count; i < A; i += 3)
                ((o = 3 * p[i + 0]),
                  (a = 3 * p[i + 1]),
                  (s = 3 * p[i + 2]),
                  u.fromArray(n, o),
                  l.fromArray(n, a),
                  h.fromArray(n, s),
                  f.subVectors(h, l),
                  d.subVectors(u, l),
                  f.cross(d),
                  (c[o] += f.x),
                  (c[o + 1] += f.y),
                  (c[o + 2] += f.z),
                  (c[a] += f.x),
                  (c[a + 1] += f.y),
                  (c[a + 2] += f.z),
                  (c[s] += f.x),
                  (c[s + 1] += f.y),
                  (c[s + 2] += f.z));
            } else
              for (i = 0, A = n.length; i < A; i += 9)
                (u.fromArray(n, i),
                  l.fromArray(n, i + 3),
                  h.fromArray(n, i + 6),
                  f.subVectors(h, l),
                  d.subVectors(u, l),
                  f.cross(d),
                  (c[i] = f.x),
                  (c[i + 1] = f.y),
                  (c[i + 2] = f.z),
                  (c[i + 3] = f.x),
                  (c[i + 4] = f.y),
                  (c[i + 5] = f.z),
                  (c[i + 6] = f.x),
                  (c[i + 7] = f.y),
                  (c[i + 8] = f.z));
            (this.normalizeNormals(), (t.normal.needsUpdate = !0));
          }
        },
        merge: function (e, t) {
          if (e && e.isBufferGeometry) {
            void 0 === t &&
              ((t = 0),
              console.warn(
                "THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge.",
              ));
            var n = this.attributes;
            for (var r in n)
              if (void 0 !== e.attributes[r])
                for (
                  var i = n[r],
                    A = i.array,
                    o = e.attributes[r],
                    a = o.array,
                    s = o.itemSize * t,
                    c = Math.min(a.length, A.length - s),
                    u = 0,
                    l = s;
                  u < c;
                  u++, l++
                )
                  A[l] = a[u];
            return this;
          }
          console.log(
            "THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.",
            e,
          );
        },
        normalizeNormals: function () {
          for (var e = this.attributes.normal, t = 0, n = e.count; t < n; t++)
            ((fi.x = e.getX(t)),
              (fi.y = e.getY(t)),
              (fi.z = e.getZ(t)),
              fi.normalize(),
              e.setXYZ(t, fi.x, fi.y, fi.z));
        },
        toNonIndexed: function () {
          function e(e, t) {
            for (
              var n = e.array,
                r = e.itemSize,
                i = e.normalized,
                A = new n.constructor(t.length * r),
                o = 0,
                a = 0,
                s = 0,
                c = t.length;
              s < c;
              s++
            ) {
              o = t[s] * r;
              for (var u = 0; u < r; u++) A[a++] = n[o++];
            }
            return new Yr(A, r, i);
          }
          if (null === this.index)
            return (
              console.warn(
                "THREE.BufferGeometry.toNonIndexed(): Geometry is already non-indexed.",
              ),
              this
            );
          var t = new di(),
            n = this.index.array,
            r = this.attributes;
          for (var i in r) {
            var A = r[i],
              o = e(A, n);
            t.setAttribute(i, o);
          }
          var a = this.morphAttributes;
          for (i in a) {
            for (var s = [], c = a[i], u = 0, l = c.length; u < l; u++) {
              ((A = c[u]), (o = e(A, n)));
              s.push(o);
            }
            t.morphAttributes[i] = s;
          }
          t.morphTargetsRelative = this.morphTargetsRelative;
          for (var h = this.groups, f = ((u = 0), h.length); u < f; u++) {
            var d = h[u];
            t.addGroup(d.start, d.count, d.materialIndex);
          }
          return t;
        },
        toJSON: function () {
          var e = {
            metadata: {
              version: 4.5,
              type: "BufferGeometry",
              generator: "BufferGeometry.toJSON",
            },
          };
          if (
            ((e.uuid = this.uuid),
            (e.type = this.type),
            "" !== this.name && (e.name = this.name),
            Object.keys(this.userData).length > 0 &&
              (e.userData = this.userData),
            void 0 !== this.parameters)
          ) {
            var t = this.parameters;
            for (var n in t) void 0 !== t[n] && (e[n] = t[n]);
            return e;
          }
          e.data = { attributes: {} };
          var r = this.index;
          null !== r &&
            (e.data.index = {
              type: r.array.constructor.name,
              array: Array.prototype.slice.call(r.array),
            });
          var i = this.attributes;
          for (var n in i) {
            var A = i[n],
              o = A.toJSON();
            ("" !== A.name && (o.name = A.name), (e.data.attributes[n] = o));
          }
          var a = {},
            s = !1;
          for (var n in this.morphAttributes) {
            for (
              var c = this.morphAttributes[n], u = [], l = 0, h = c.length;
              l < h;
              l++
            ) {
              ((A = c[l]), (o = A.toJSON()));
              ("" !== A.name && (o.name = A.name), u.push(o));
            }
            u.length > 0 && ((a[n] = u), (s = !0));
          }
          s &&
            ((e.data.morphAttributes = a),
            (e.data.morphTargetsRelative = this.morphTargetsRelative));
          var f = this.groups;
          f.length > 0 && (e.data.groups = JSON.parse(JSON.stringify(f)));
          var d = this.boundingSphere;
          return (
            null !== d &&
              (e.data.boundingSphere = {
                center: d.center.toArray(),
                radius: d.radius,
              }),
            e
          );
        },
        clone: function () {
          return new di().copy(this);
        },
        copy: function (e) {
          var t, n, r;
          ((this.index = null),
            (this.attributes = {}),
            (this.morphAttributes = {}),
            (this.groups = []),
            (this.boundingBox = null),
            (this.boundingSphere = null),
            (this.name = e.name));
          var i = e.index;
          null !== i && this.setIndex(i.clone());
          var A = e.attributes;
          for (t in A) {
            var o = A[t];
            this.setAttribute(t, o.clone());
          }
          var a = e.morphAttributes;
          for (t in a) {
            var s = [],
              c = a[t];
            for (n = 0, r = c.length; n < r; n++) s.push(c[n].clone());
            this.morphAttributes[t] = s;
          }
          this.morphTargetsRelative = e.morphTargetsRelative;
          var u = e.groups;
          for (n = 0, r = u.length; n < r; n++) {
            var l = u[n];
            this.addGroup(l.start, l.count, l.materialIndex);
          }
          var h = e.boundingBox;
          null !== h && (this.boundingBox = h.clone());
          var f = e.boundingSphere;
          return (
            null !== f && (this.boundingSphere = f.clone()),
            (this.drawRange.start = e.drawRange.start),
            (this.drawRange.count = e.drawRange.count),
            (this.userData = e.userData),
            this
          );
        },
        dispose: function () {
          this.dispatchEvent({ type: "dispose" });
        },
      });
      var pi = new Un(),
        gi = new Br(),
        mi = new fr(),
        vi = new _n(),
        yi = new _n(),
        wi = new _n(),
        Bi = new _n(),
        bi = new _n(),
        _i = new _n(),
        xi = new _n(),
        Ci = new _n(),
        Ei = new _n(),
        Mi = new hn(),
        Si = new hn(),
        Fi = new hn(),
        Ti = new _n(),
        Ui = new _n();
      function Qi(e, t) {
        (Yn.call(this),
          (this.type = "Mesh"),
          (this.geometry = void 0 !== e ? e : new di()),
          (this.material = void 0 !== t ? t : new Wr()),
          this.updateMorphTargets());
      }
      function Li(e, t, n, r, i, A, o, a) {
        var s;
        if (
          ((s =
            t.side === f
              ? r.intersectTriangle(o, A, i, !0, a)
              : r.intersectTriangle(i, A, o, t.side !== d, a)),
          null === s)
        )
          return null;
        (Ui.copy(a), Ui.applyMatrix4(e.matrixWorld));
        var c = n.ray.origin.distanceTo(Ui);
        return c < n.near || c > n.far
          ? null
          : { distance: c, point: Ui.clone(), object: e };
      }
      function Ii(e, t, n, r, i, A, o, a, s, c, u, l) {
        (vi.fromBufferAttribute(i, c),
          yi.fromBufferAttribute(i, u),
          wi.fromBufferAttribute(i, l));
        var h = e.morphTargetInfluences;
        if (t.morphTargets && A && h) {
          (xi.set(0, 0, 0), Ci.set(0, 0, 0), Ei.set(0, 0, 0));
          for (var f = 0, d = A.length; f < d; f++) {
            var p = h[f],
              g = A[f];
            0 !== p &&
              (Bi.fromBufferAttribute(g, c),
              bi.fromBufferAttribute(g, u),
              _i.fromBufferAttribute(g, l),
              o
                ? (xi.addScaledVector(Bi, p),
                  Ci.addScaledVector(bi, p),
                  Ei.addScaledVector(_i, p))
                : (xi.addScaledVector(Bi.sub(vi), p),
                  Ci.addScaledVector(bi.sub(yi), p),
                  Ei.addScaledVector(_i.sub(wi), p)));
          }
          (vi.add(xi), yi.add(Ci), wi.add(Ei));
        }
        e.isSkinnedMesh &&
          (e.boneTransform(c, vi),
          e.boneTransform(u, yi),
          e.boneTransform(l, wi));
        var m = Li(e, t, n, r, vi, yi, wi, Ti);
        if (m) {
          (a &&
            (Mi.fromBufferAttribute(a, c),
            Si.fromBufferAttribute(a, u),
            Fi.fromBufferAttribute(a, l),
            (m.uv = Or.getUV(Ti, vi, yi, wi, Mi, Si, Fi, new hn()))),
            s &&
              (Mi.fromBufferAttribute(s, c),
              Si.fromBufferAttribute(s, u),
              Fi.fromBufferAttribute(s, l),
              (m.uv2 = Or.getUV(Ti, vi, yi, wi, Mi, Si, Fi, new hn()))));
          var v = new zr(c, u, l);
          (Or.getNormal(vi, yi, wi, v.normal), (m.face = v));
        }
        return m;
      }
      Qi.prototype = Object.assign(Object.create(Yn.prototype), {
        constructor: Qi,
        isMesh: !0,
        copy: function (e) {
          return (
            Yn.prototype.copy.call(this, e),
            void 0 !== e.morphTargetInfluences &&
              (this.morphTargetInfluences = e.morphTargetInfluences.slice()),
            void 0 !== e.morphTargetDictionary &&
              (this.morphTargetDictionary = Object.assign(
                {},
                e.morphTargetDictionary,
              )),
            this
          );
        },
        updateMorphTargets: function () {
          var e,
            t,
            n,
            r = this.geometry;
          if (r.isBufferGeometry) {
            var i = r.morphAttributes,
              A = Object.keys(i);
            if (A.length > 0) {
              var o = i[A[0]];
              if (void 0 !== o)
                for (
                  this.morphTargetInfluences = [],
                    this.morphTargetDictionary = {},
                    e = 0,
                    t = o.length;
                  e < t;
                  e++
                )
                  ((n = o[e].name || String(e)),
                    this.morphTargetInfluences.push(0),
                    (this.morphTargetDictionary[n] = e));
            }
          } else {
            var a = r.morphTargets;
            void 0 !== a &&
              a.length > 0 &&
              console.log(
                "THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.",
              );
          }
        },
        raycast: function (e, t) {
          var n,
            r = this.geometry,
            i = this.material,
            A = this.matrixWorld;
          if (
            void 0 !== i &&
            (null === r.boundingSphere && r.computeBoundingSphere(),
            mi.copy(r.boundingSphere),
            mi.applyMatrix4(A),
            !1 !== e.ray.intersectsSphere(mi) &&
              (pi.getInverse(A),
              gi.copy(e.ray).applyMatrix4(pi),
              null === r.boundingBox || !1 !== gi.intersectsBox(r.boundingBox)))
          )
            if (r.isBufferGeometry) {
              var o,
                a,
                s,
                c,
                u,
                l,
                h,
                f,
                d,
                p,
                g,
                m = r.index,
                v = r.attributes.position,
                y = r.morphAttributes.position,
                w = r.morphTargetsRelative,
                B = r.attributes.uv,
                b = r.attributes.uv2,
                _ = r.groups,
                x = r.drawRange;
              if (null !== m)
                if (Array.isArray(i))
                  for (c = 0, l = _.length; c < l; c++)
                    for (
                      f = _[c],
                        d = i[f.materialIndex],
                        p = Math.max(f.start, x.start),
                        g = Math.min(f.start + f.count, x.start + x.count),
                        u = p,
                        h = g;
                      u < h;
                      u += 3
                    )
                      ((o = m.getX(u)),
                        (a = m.getX(u + 1)),
                        (s = m.getX(u + 2)),
                        (n = Ii(this, d, e, gi, v, y, w, B, b, o, a, s)),
                        n &&
                          ((n.faceIndex = Math.floor(u / 3)),
                          (n.face.materialIndex = f.materialIndex),
                          t.push(n)));
                else
                  for (
                    p = Math.max(0, x.start),
                      g = Math.min(m.count, x.start + x.count),
                      c = p,
                      l = g;
                    c < l;
                    c += 3
                  )
                    ((o = m.getX(c)),
                      (a = m.getX(c + 1)),
                      (s = m.getX(c + 2)),
                      (n = Ii(this, i, e, gi, v, y, w, B, b, o, a, s)),
                      n && ((n.faceIndex = Math.floor(c / 3)), t.push(n)));
              else if (void 0 !== v)
                if (Array.isArray(i))
                  for (c = 0, l = _.length; c < l; c++)
                    for (
                      f = _[c],
                        d = i[f.materialIndex],
                        p = Math.max(f.start, x.start),
                        g = Math.min(f.start + f.count, x.start + x.count),
                        u = p,
                        h = g;
                      u < h;
                      u += 3
                    )
                      ((o = u),
                        (a = u + 1),
                        (s = u + 2),
                        (n = Ii(this, d, e, gi, v, y, w, B, b, o, a, s)),
                        n &&
                          ((n.faceIndex = Math.floor(u / 3)),
                          (n.face.materialIndex = f.materialIndex),
                          t.push(n)));
                else
                  for (
                    p = Math.max(0, x.start),
                      g = Math.min(v.count, x.start + x.count),
                      c = p,
                      l = g;
                    c < l;
                    c += 3
                  )
                    ((o = c),
                      (a = c + 1),
                      (s = c + 2),
                      (n = Ii(this, i, e, gi, v, y, w, B, b, o, a, s)),
                      n && ((n.faceIndex = Math.floor(c / 3)), t.push(n)));
            } else if (r.isGeometry) {
              var C,
                E,
                M,
                S,
                F = Array.isArray(i),
                T = r.vertices,
                U = r.faces,
                Q = r.faceVertexUvs[0];
              Q.length > 0 && (S = Q);
              for (var L = 0, I = U.length; L < I; L++) {
                var H = U[L],
                  O = F ? i[H.materialIndex] : i;
                if (
                  void 0 !== O &&
                  ((C = T[H.a]),
                  (E = T[H.b]),
                  (M = T[H.c]),
                  (n = Li(this, O, e, gi, C, E, M, Ti)),
                  n)
                ) {
                  if (S && S[L]) {
                    var R = S[L];
                    (Mi.copy(R[0]),
                      Si.copy(R[1]),
                      Fi.copy(R[2]),
                      (n.uv = Or.getUV(Ti, C, E, M, Mi, Si, Fi, new hn())));
                  }
                  ((n.face = H), (n.faceIndex = L), t.push(n));
                }
              }
            }
        },
        clone: function () {
          return new this.constructor(this.geometry, this.material).copy(this);
        },
      });
      var Hi = 0,
        Oi = new Un(),
        Ri = new Yn(),
        Pi = new _n();
      function Di() {
        (Object.defineProperty(this, "id", { value: (Hi += 2) }),
          (this.uuid = ln.generateUUID()),
          (this.name = ""),
          (this.type = "Geometry"),
          (this.vertices = []),
          (this.colors = []),
          (this.faces = []),
          (this.faceVertexUvs = [[]]),
          (this.morphTargets = []),
          (this.morphNormals = []),
          (this.skinWeights = []),
          (this.skinIndices = []),
          (this.lineDistances = []),
          (this.boundingBox = null),
          (this.boundingSphere = null),
          (this.elementsNeedUpdate = !1),
          (this.verticesNeedUpdate = !1),
          (this.uvsNeedUpdate = !1),
          (this.normalsNeedUpdate = !1),
          (this.colorsNeedUpdate = !1),
          (this.lineDistancesNeedUpdate = !1),
          (this.groupsNeedUpdate = !1));
      }
      Di.prototype = Object.assign(Object.create(an.prototype), {
        constructor: Di,
        isGeometry: !0,
        applyMatrix4: function (e) {
          for (
            var t = new fn().getNormalMatrix(e),
              n = 0,
              r = this.vertices.length;
            n < r;
            n++
          ) {
            var i = this.vertices[n];
            i.applyMatrix4(e);
          }
          for (n = 0, r = this.faces.length; n < r; n++) {
            var A = this.faces[n];
            A.normal.applyMatrix3(t).normalize();
            for (var o = 0, a = A.vertexNormals.length; o < a; o++)
              A.vertexNormals[o].applyMatrix3(t).normalize();
          }
          return (
            null !== this.boundingBox && this.computeBoundingBox(),
            null !== this.boundingSphere && this.computeBoundingSphere(),
            (this.verticesNeedUpdate = !0),
            (this.normalsNeedUpdate = !0),
            this
          );
        },
        rotateX: function (e) {
          return (Oi.makeRotationX(e), this.applyMatrix4(Oi), this);
        },
        rotateY: function (e) {
          return (Oi.makeRotationY(e), this.applyMatrix4(Oi), this);
        },
        rotateZ: function (e) {
          return (Oi.makeRotationZ(e), this.applyMatrix4(Oi), this);
        },
        translate: function (e, t, n) {
          return (Oi.makeTranslation(e, t, n), this.applyMatrix4(Oi), this);
        },
        scale: function (e, t, n) {
          return (Oi.makeScale(e, t, n), this.applyMatrix4(Oi), this);
        },
        lookAt: function (e) {
          return (
            Ri.lookAt(e),
            Ri.updateMatrix(),
            this.applyMatrix4(Ri.matrix),
            this
          );
        },
        fromBufferGeometry: function (e) {
          var t = this,
            n = null !== e.index ? e.index.array : void 0,
            r = e.attributes;
          if (void 0 === r.position)
            return (
              console.log(
                "THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion.",
              ),
              this
            );
          var i = r.position.array,
            A = void 0 !== r.normal ? r.normal.array : void 0,
            o = void 0 !== r.color ? r.color.array : void 0,
            a = void 0 !== r.uv ? r.uv.array : void 0,
            s = void 0 !== r.uv2 ? r.uv2.array : void 0;
          void 0 !== s && (this.faceVertexUvs[1] = []);
          for (var c = 0; c < i.length; c += 3)
            (t.vertices.push(new _n().fromArray(i, c)),
              void 0 !== o && t.colors.push(new Nr().fromArray(o, c)));
          function u(e, n, r, i) {
            var c =
                void 0 === o
                  ? []
                  : [
                      t.colors[e].clone(),
                      t.colors[n].clone(),
                      t.colors[r].clone(),
                    ],
              u =
                void 0 === A
                  ? []
                  : [
                      new _n().fromArray(A, 3 * e),
                      new _n().fromArray(A, 3 * n),
                      new _n().fromArray(A, 3 * r),
                    ],
              l = new zr(e, n, r, u, c, i);
            (t.faces.push(l),
              void 0 !== a &&
                t.faceVertexUvs[0].push([
                  new hn().fromArray(a, 2 * e),
                  new hn().fromArray(a, 2 * n),
                  new hn().fromArray(a, 2 * r),
                ]),
              void 0 !== s &&
                t.faceVertexUvs[1].push([
                  new hn().fromArray(s, 2 * e),
                  new hn().fromArray(s, 2 * n),
                  new hn().fromArray(s, 2 * r),
                ]));
          }
          var l = e.groups;
          if (l.length > 0)
            for (c = 0; c < l.length; c++)
              for (
                var h = l[c], f = h.start, d = h.count, p = f, g = f + d;
                p < g;
                p += 3
              )
                void 0 !== n
                  ? u(n[p], n[p + 1], n[p + 2], h.materialIndex)
                  : u(p, p + 1, p + 2, h.materialIndex);
          else if (void 0 !== n)
            for (c = 0; c < n.length; c += 3) u(n[c], n[c + 1], n[c + 2]);
          else for (c = 0; c < i.length / 3; c += 3) u(c, c + 1, c + 2);
          return (
            this.computeFaceNormals(),
            null !== e.boundingBox &&
              (this.boundingBox = e.boundingBox.clone()),
            null !== e.boundingSphere &&
              (this.boundingSphere = e.boundingSphere.clone()),
            this
          );
        },
        center: function () {
          return (
            this.computeBoundingBox(),
            this.boundingBox.getCenter(Pi).negate(),
            this.translate(Pi.x, Pi.y, Pi.z),
            this
          );
        },
        normalize: function () {
          this.computeBoundingSphere();
          var e = this.boundingSphere.center,
            t = this.boundingSphere.radius,
            n = 0 === t ? 1 : 1 / t,
            r = new Un();
          return (
            r.set(
              n,
              0,
              0,
              -n * e.x,
              0,
              n,
              0,
              -n * e.y,
              0,
              0,
              n,
              -n * e.z,
              0,
              0,
              0,
              1,
            ),
            this.applyMatrix4(r),
            this
          );
        },
        computeFaceNormals: function () {
          for (
            var e = new _n(), t = new _n(), n = 0, r = this.faces.length;
            n < r;
            n++
          ) {
            var i = this.faces[n],
              A = this.vertices[i.a],
              o = this.vertices[i.b],
              a = this.vertices[i.c];
            (e.subVectors(a, o),
              t.subVectors(A, o),
              e.cross(t),
              e.normalize(),
              i.normal.copy(e));
          }
        },
        computeVertexNormals: function (e) {
          var t, n, r, i, A, o;
          for (
            void 0 === e && (e = !0),
              o = new Array(this.vertices.length),
              t = 0,
              n = this.vertices.length;
            t < n;
            t++
          )
            o[t] = new _n();
          if (e) {
            var a,
              s,
              c,
              u = new _n(),
              l = new _n();
            for (r = 0, i = this.faces.length; r < i; r++)
              ((A = this.faces[r]),
                (a = this.vertices[A.a]),
                (s = this.vertices[A.b]),
                (c = this.vertices[A.c]),
                u.subVectors(c, s),
                l.subVectors(a, s),
                u.cross(l),
                o[A.a].add(u),
                o[A.b].add(u),
                o[A.c].add(u));
          } else
            for (
              this.computeFaceNormals(), r = 0, i = this.faces.length;
              r < i;
              r++
            )
              ((A = this.faces[r]),
                o[A.a].add(A.normal),
                o[A.b].add(A.normal),
                o[A.c].add(A.normal));
          for (t = 0, n = this.vertices.length; t < n; t++) o[t].normalize();
          for (r = 0, i = this.faces.length; r < i; r++) {
            A = this.faces[r];
            var h = A.vertexNormals;
            3 === h.length
              ? (h[0].copy(o[A.a]), h[1].copy(o[A.b]), h[2].copy(o[A.c]))
              : ((h[0] = o[A.a].clone()),
                (h[1] = o[A.b].clone()),
                (h[2] = o[A.c].clone()));
          }
          this.faces.length > 0 && (this.normalsNeedUpdate = !0);
        },
        computeFlatVertexNormals: function () {
          var e, t, n;
          for (
            this.computeFaceNormals(), e = 0, t = this.faces.length;
            e < t;
            e++
          ) {
            n = this.faces[e];
            var r = n.vertexNormals;
            3 === r.length
              ? (r[0].copy(n.normal), r[1].copy(n.normal), r[2].copy(n.normal))
              : ((r[0] = n.normal.clone()),
                (r[1] = n.normal.clone()),
                (r[2] = n.normal.clone()));
          }
          this.faces.length > 0 && (this.normalsNeedUpdate = !0);
        },
        computeMorphNormals: function () {
          var e, t, n, r, i;
          for (n = 0, r = this.faces.length; n < r; n++)
            for (
              i = this.faces[n],
                i.__originalFaceNormal
                  ? i.__originalFaceNormal.copy(i.normal)
                  : (i.__originalFaceNormal = i.normal.clone()),
                i.__originalVertexNormals || (i.__originalVertexNormals = []),
                e = 0,
                t = i.vertexNormals.length;
              e < t;
              e++
            )
              i.__originalVertexNormals[e]
                ? i.__originalVertexNormals[e].copy(i.vertexNormals[e])
                : (i.__originalVertexNormals[e] = i.vertexNormals[e].clone());
          var A = new Di();
          for (
            A.faces = this.faces, e = 0, t = this.morphTargets.length;
            e < t;
            e++
          ) {
            if (!this.morphNormals[e]) {
              ((this.morphNormals[e] = {}),
                (this.morphNormals[e].faceNormals = []),
                (this.morphNormals[e].vertexNormals = []));
              var o = this.morphNormals[e].faceNormals,
                a = this.morphNormals[e].vertexNormals;
              for (n = 0, r = this.faces.length; n < r; n++)
                ((s = new _n()),
                  (c = { a: new _n(), b: new _n(), c: new _n() }),
                  o.push(s),
                  a.push(c));
            }
            var s,
              c,
              u = this.morphNormals[e];
            for (
              A.vertices = this.morphTargets[e].vertices,
                A.computeFaceNormals(),
                A.computeVertexNormals(),
                n = 0,
                r = this.faces.length;
              n < r;
              n++
            )
              ((i = this.faces[n]),
                (s = u.faceNormals[n]),
                (c = u.vertexNormals[n]),
                s.copy(i.normal),
                c.a.copy(i.vertexNormals[0]),
                c.b.copy(i.vertexNormals[1]),
                c.c.copy(i.vertexNormals[2]));
          }
          for (n = 0, r = this.faces.length; n < r; n++)
            ((i = this.faces[n]),
              (i.normal = i.__originalFaceNormal),
              (i.vertexNormals = i.__originalVertexNormals));
        },
        computeBoundingBox: function () {
          (null === this.boundingBox && (this.boundingBox = new ur()),
            this.boundingBox.setFromPoints(this.vertices));
        },
        computeBoundingSphere: function () {
          (null === this.boundingSphere && (this.boundingSphere = new fr()),
            this.boundingSphere.setFromPoints(this.vertices));
        },
        merge: function (e, t, n) {
          if (e && e.isGeometry) {
            var r,
              i = this.vertices.length,
              A = this.vertices,
              o = e.vertices,
              a = this.faces,
              s = e.faces,
              c = this.colors,
              u = e.colors;
            (void 0 === n && (n = 0),
              void 0 !== t && (r = new fn().getNormalMatrix(t)));
            for (var l = 0, h = o.length; l < h; l++) {
              var f = o[l],
                d = f.clone();
              (void 0 !== t && d.applyMatrix4(t), A.push(d));
            }
            for (l = 0, h = u.length; l < h; l++) c.push(u[l].clone());
            for (l = 0, h = s.length; l < h; l++) {
              var p,
                g,
                m,
                v = s[l],
                y = v.vertexNormals,
                w = v.vertexColors;
              ((p = new zr(v.a + i, v.b + i, v.c + i)),
                p.normal.copy(v.normal),
                void 0 !== r && p.normal.applyMatrix3(r).normalize());
              for (var B = 0, b = y.length; B < b; B++)
                ((g = y[B].clone()),
                  void 0 !== r && g.applyMatrix3(r).normalize(),
                  p.vertexNormals.push(g));
              p.color.copy(v.color);
              for (B = 0, b = w.length; B < b; B++)
                ((m = w[B]), p.vertexColors.push(m.clone()));
              ((p.materialIndex = v.materialIndex + n), a.push(p));
            }
            for (l = 0, h = e.faceVertexUvs.length; l < h; l++) {
              var _ = e.faceVertexUvs[l];
              void 0 === this.faceVertexUvs[l] && (this.faceVertexUvs[l] = []);
              for (B = 0, b = _.length; B < b; B++) {
                for (var x = _[B], C = [], E = 0, M = x.length; E < M; E++)
                  C.push(x[E].clone());
                this.faceVertexUvs[l].push(C);
              }
            }
          } else
            console.log(
              "THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",
              e,
            );
        },
        mergeMesh: function (e) {
          e && e.isMesh
            ? (e.matrixAutoUpdate && e.updateMatrix(),
              this.merge(e.geometry, e.matrix))
            : console.log(
                "THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",
                e,
              );
        },
        mergeVertices: function () {
          var e,
            t,
            n,
            r,
            i,
            A,
            o,
            a,
            s = {},
            c = [],
            u = [],
            l = 4,
            h = Math.pow(10, l);
          for (n = 0, r = this.vertices.length; n < r; n++)
            ((e = this.vertices[n]),
              (t =
                Math.round(e.x * h) +
                "_" +
                Math.round(e.y * h) +
                "_" +
                Math.round(e.z * h)),
              void 0 === s[t]
                ? ((s[t] = n), c.push(this.vertices[n]), (u[n] = c.length - 1))
                : (u[n] = u[s[t]]));
          var f = [];
          for (n = 0, r = this.faces.length; n < r; n++) {
            ((i = this.faces[n]),
              (i.a = u[i.a]),
              (i.b = u[i.b]),
              (i.c = u[i.c]),
              (A = [i.a, i.b, i.c]));
            for (var d = 0; d < 3; d++)
              if (A[d] === A[(d + 1) % 3]) {
                f.push(n);
                break;
              }
          }
          for (n = f.length - 1; n >= 0; n--) {
            var p = f[n];
            for (
              this.faces.splice(p, 1), o = 0, a = this.faceVertexUvs.length;
              o < a;
              o++
            )
              this.faceVertexUvs[o].splice(p, 1);
          }
          var g = this.vertices.length - c.length;
          return ((this.vertices = c), g);
        },
        setFromPoints: function (e) {
          this.vertices = [];
          for (var t = 0, n = e.length; t < n; t++) {
            var r = e[t];
            this.vertices.push(new _n(r.x, r.y, r.z || 0));
          }
          return this;
        },
        sortFacesByMaterialIndex: function () {
          for (var e = this.faces, t = e.length, n = 0; n < t; n++)
            e[n]._id = n;
          function r(e, t) {
            return e.materialIndex - t.materialIndex;
          }
          e.sort(r);
          var i,
            A,
            o = this.faceVertexUvs[0],
            a = this.faceVertexUvs[1];
          (o && o.length === t && (i = []), a && a.length === t && (A = []));
          for (n = 0; n < t; n++) {
            var s = e[n]._id;
            (i && i.push(o[s]), A && A.push(a[s]));
          }
          (i && (this.faceVertexUvs[0] = i), A && (this.faceVertexUvs[1] = A));
        },
        toJSON: function () {
          var e = {
            metadata: {
              version: 4.5,
              type: "Geometry",
              generator: "Geometry.toJSON",
            },
          };
          if (
            ((e.uuid = this.uuid),
            (e.type = this.type),
            "" !== this.name && (e.name = this.name),
            void 0 !== this.parameters)
          ) {
            var t = this.parameters;
            for (var n in t) void 0 !== t[n] && (e[n] = t[n]);
            return e;
          }
          for (var r = [], i = 0; i < this.vertices.length; i++) {
            var A = this.vertices[i];
            r.push(A.x, A.y, A.z);
          }
          var o = [],
            a = [],
            s = {},
            c = [],
            u = {},
            l = [],
            h = {};
          for (i = 0; i < this.faces.length; i++) {
            var f = this.faces[i],
              d = !0,
              p = !1,
              g = void 0 !== this.faceVertexUvs[0][i],
              m = f.normal.length() > 0,
              v = f.vertexNormals.length > 0,
              y = 1 !== f.color.r || 1 !== f.color.g || 1 !== f.color.b,
              w = f.vertexColors.length > 0,
              B = 0;
            if (
              ((B = C(B, 0, 0)),
              (B = C(B, 1, d)),
              (B = C(B, 2, p)),
              (B = C(B, 3, g)),
              (B = C(B, 4, m)),
              (B = C(B, 5, v)),
              (B = C(B, 6, y)),
              (B = C(B, 7, w)),
              o.push(B),
              o.push(f.a, f.b, f.c),
              o.push(f.materialIndex),
              g)
            ) {
              var b = this.faceVertexUvs[0][i];
              o.push(S(b[0]), S(b[1]), S(b[2]));
            }
            if ((m && o.push(E(f.normal)), v)) {
              var _ = f.vertexNormals;
              o.push(E(_[0]), E(_[1]), E(_[2]));
            }
            if ((y && o.push(M(f.color)), w)) {
              var x = f.vertexColors;
              o.push(M(x[0]), M(x[1]), M(x[2]));
            }
          }
          function C(e, t, n) {
            return n ? e | (1 << t) : e & ~(1 << t);
          }
          function E(e) {
            var t = e.x.toString() + e.y.toString() + e.z.toString();
            return (
              void 0 !== s[t] || ((s[t] = a.length / 3), a.push(e.x, e.y, e.z)),
              s[t]
            );
          }
          function M(e) {
            var t = e.r.toString() + e.g.toString() + e.b.toString();
            return (
              void 0 !== u[t] || ((u[t] = c.length), c.push(e.getHex())),
              u[t]
            );
          }
          function S(e) {
            var t = e.x.toString() + e.y.toString();
            return (
              void 0 !== h[t] || ((h[t] = l.length / 2), l.push(e.x, e.y)),
              h[t]
            );
          }
          return (
            (e.data = {}),
            (e.data.vertices = r),
            (e.data.normals = a),
            c.length > 0 && (e.data.colors = c),
            l.length > 0 && (e.data.uvs = [l]),
            (e.data.faces = o),
            e
          );
        },
        clone: function () {
          return new Di().copy(this);
        },
        copy: function (e) {
          var t, n, r, i, A, o;
          ((this.vertices = []),
            (this.colors = []),
            (this.faces = []),
            (this.faceVertexUvs = [[]]),
            (this.morphTargets = []),
            (this.morphNormals = []),
            (this.skinWeights = []),
            (this.skinIndices = []),
            (this.lineDistances = []),
            (this.boundingBox = null),
            (this.boundingSphere = null),
            (this.name = e.name));
          var a = e.vertices;
          for (t = 0, n = a.length; t < n; t++)
            this.vertices.push(a[t].clone());
          var s = e.colors;
          for (t = 0, n = s.length; t < n; t++) this.colors.push(s[t].clone());
          var c = e.faces;
          for (t = 0, n = c.length; t < n; t++) this.faces.push(c[t].clone());
          for (t = 0, n = e.faceVertexUvs.length; t < n; t++) {
            var u = e.faceVertexUvs[t];
            for (
              void 0 === this.faceVertexUvs[t] && (this.faceVertexUvs[t] = []),
                r = 0,
                i = u.length;
              r < i;
              r++
            ) {
              var l = u[r],
                h = [];
              for (A = 0, o = l.length; A < o; A++) {
                var f = l[A];
                h.push(f.clone());
              }
              this.faceVertexUvs[t].push(h);
            }
          }
          var d = e.morphTargets;
          for (t = 0, n = d.length; t < n; t++) {
            var p = {};
            if (((p.name = d[t].name), void 0 !== d[t].vertices))
              for (p.vertices = [], r = 0, i = d[t].vertices.length; r < i; r++)
                p.vertices.push(d[t].vertices[r].clone());
            if (void 0 !== d[t].normals)
              for (p.normals = [], r = 0, i = d[t].normals.length; r < i; r++)
                p.normals.push(d[t].normals[r].clone());
            this.morphTargets.push(p);
          }
          var g = e.morphNormals;
          for (t = 0, n = g.length; t < n; t++) {
            var m = {};
            if (void 0 !== g[t].vertexNormals)
              for (
                m.vertexNormals = [], r = 0, i = g[t].vertexNormals.length;
                r < i;
                r++
              ) {
                var v = g[t].vertexNormals[r],
                  y = {};
                ((y.a = v.a.clone()),
                  (y.b = v.b.clone()),
                  (y.c = v.c.clone()),
                  m.vertexNormals.push(y));
              }
            if (void 0 !== g[t].faceNormals)
              for (
                m.faceNormals = [], r = 0, i = g[t].faceNormals.length;
                r < i;
                r++
              )
                m.faceNormals.push(g[t].faceNormals[r].clone());
            this.morphNormals.push(m);
          }
          var w = e.skinWeights;
          for (t = 0, n = w.length; t < n; t++)
            this.skinWeights.push(w[t].clone());
          var B = e.skinIndices;
          for (t = 0, n = B.length; t < n; t++)
            this.skinIndices.push(B[t].clone());
          var b = e.lineDistances;
          for (t = 0, n = b.length; t < n; t++) this.lineDistances.push(b[t]);
          var _ = e.boundingBox;
          null !== _ && (this.boundingBox = _.clone());
          var x = e.boundingSphere;
          return (
            null !== x && (this.boundingSphere = x.clone()),
            (this.elementsNeedUpdate = e.elementsNeedUpdate),
            (this.verticesNeedUpdate = e.verticesNeedUpdate),
            (this.uvsNeedUpdate = e.uvsNeedUpdate),
            (this.normalsNeedUpdate = e.normalsNeedUpdate),
            (this.colorsNeedUpdate = e.colorsNeedUpdate),
            (this.lineDistancesNeedUpdate = e.lineDistancesNeedUpdate),
            (this.groupsNeedUpdate = e.groupsNeedUpdate),
            this
          );
        },
        dispose: function () {
          this.dispatchEvent({ type: "dispose" });
        },
      });
      class Ni extends Di {
        constructor(e, t, n, r, i, A) {
          (super(),
            (this.type = "BoxGeometry"),
            (this.parameters = {
              width: e,
              height: t,
              depth: n,
              widthSegments: r,
              heightSegments: i,
              depthSegments: A,
            }),
            this.fromBufferGeometry(new ki(e, t, n, r, i, A)),
            this.mergeVertices());
        }
      }
      class ki extends di {
        constructor(e, t, n, r, i, A) {
          (super(),
            (this.type = "BoxBufferGeometry"),
            (this.parameters = {
              width: e,
              height: t,
              depth: n,
              widthSegments: r,
              heightSegments: i,
              depthSegments: A,
            }));
          const o = this;
          ((e = e || 1),
            (t = t || 1),
            (n = n || 1),
            (r = Math.floor(r) || 1),
            (i = Math.floor(i) || 1),
            (A = Math.floor(A) || 1));
          const a = [],
            s = [],
            c = [],
            u = [];
          let l = 0,
            h = 0;
          function f(e, t, n, r, i, A, f, d, p, g, m) {
            const v = A / p,
              y = f / g,
              w = A / 2,
              B = f / 2,
              b = d / 2,
              _ = p + 1,
              x = g + 1;
            let C = 0,
              E = 0;
            const M = new _n();
            for (let o = 0; o < x; o++) {
              const A = o * y - B;
              for (let a = 0; a < _; a++) {
                const l = a * v - w;
                ((M[e] = l * r),
                  (M[t] = A * i),
                  (M[n] = b),
                  s.push(M.x, M.y, M.z),
                  (M[e] = 0),
                  (M[t] = 0),
                  (M[n] = d > 0 ? 1 : -1),
                  c.push(M.x, M.y, M.z),
                  u.push(a / p),
                  u.push(1 - o / g),
                  (C += 1));
              }
            }
            for (let o = 0; o < g; o++)
              for (let e = 0; e < p; e++) {
                const t = l + e + _ * o,
                  n = l + e + _ * (o + 1),
                  r = l + (e + 1) + _ * (o + 1),
                  i = l + (e + 1) + _ * o;
                (a.push(t, n, i), a.push(n, r, i), (E += 6));
              }
            (o.addGroup(h, E, m), (h += E), (l += C));
          }
          (f("z", "y", "x", -1, -1, n, t, e, A, i, 0),
            f("z", "y", "x", 1, -1, n, t, -e, A, i, 1),
            f("x", "z", "y", 1, 1, e, n, t, r, A, 2),
            f("x", "z", "y", 1, -1, e, n, -t, r, A, 3),
            f("x", "y", "z", 1, -1, e, t, n, r, i, 4),
            f("x", "y", "z", -1, -1, e, t, -n, r, i, 5),
            this.setIndex(a),
            this.setAttribute("position", new ri(s, 3)),
            this.setAttribute("normal", new ri(c, 3)),
            this.setAttribute("uv", new ri(u, 2)));
        }
      }
      function Gi(e) {
        var t = {};
        for (var n in e)
          for (var r in ((t[n] = {}), e[n])) {
            var i = e[n][r];
            i &&
            (i.isColor ||
              i.isMatrix3 ||
              i.isMatrix4 ||
              i.isVector2 ||
              i.isVector3 ||
              i.isVector4 ||
              i.isTexture)
              ? (t[n][r] = i.clone())
              : Array.isArray(i)
                ? (t[n][r] = i.slice())
                : (t[n][r] = i);
          }
        return t;
      }
      function Vi(e) {
        for (var t = {}, n = 0; n < e.length; n++) {
          var r = Gi(e[n]);
          for (var i in r) t[i] = r[i];
        }
        return t;
      }
      var zi = { clone: Gi, merge: Vi },
        ji =
          "void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}",
        Ki = "void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}";
      function Wi(e) {
        (Kr.call(this),
          (this.type = "ShaderMaterial"),
          (this.defines = {}),
          (this.uniforms = {}),
          (this.vertexShader = ji),
          (this.fragmentShader = Ki),
          (this.linewidth = 1),
          (this.wireframe = !1),
          (this.wireframeLinewidth = 1),
          (this.fog = !1),
          (this.lights = !1),
          (this.clipping = !1),
          (this.skinning = !1),
          (this.morphTargets = !1),
          (this.morphNormals = !1),
          (this.extensions = {
            derivatives: !1,
            fragDepth: !1,
            drawBuffers: !1,
            shaderTextureLOD: !1,
          }),
          (this.defaultAttributeValues = {
            color: [1, 1, 1],
            uv: [0, 0],
            uv2: [0, 0],
          }),
          (this.index0AttributeName = void 0),
          (this.uniformsNeedUpdate = !1),
          void 0 !== e &&
            (void 0 !== e.attributes &&
              console.log(
                "THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead.",
              ),
            this.setValues(e)));
      }
      function Xi() {
        (Yn.call(this),
          (this.type = "Camera"),
          (this.matrixWorldInverse = new Un()),
          (this.projectionMatrix = new Un()),
          (this.projectionMatrixInverse = new Un()));
      }
      function Yi(e, t, n, r) {
        (Xi.call(this),
          (this.type = "PerspectiveCamera"),
          (this.fov = void 0 !== e ? e : 50),
          (this.zoom = 1),
          (this.near = void 0 !== n ? n : 0.1),
          (this.far = void 0 !== r ? r : 2e3),
          (this.focus = 10),
          (this.aspect = void 0 !== t ? t : 1),
          (this.view = null),
          (this.filmGauge = 35),
          (this.filmOffset = 0),
          this.updateProjectionMatrix());
      }
      ((Wi.prototype = Object.create(Kr.prototype)),
        (Wi.prototype.constructor = Wi),
        (Wi.prototype.isShaderMaterial = !0),
        (Wi.prototype.copy = function (e) {
          return (
            Kr.prototype.copy.call(this, e),
            (this.fragmentShader = e.fragmentShader),
            (this.vertexShader = e.vertexShader),
            (this.uniforms = Gi(e.uniforms)),
            (this.defines = Object.assign({}, e.defines)),
            (this.wireframe = e.wireframe),
            (this.wireframeLinewidth = e.wireframeLinewidth),
            (this.lights = e.lights),
            (this.clipping = e.clipping),
            (this.skinning = e.skinning),
            (this.morphTargets = e.morphTargets),
            (this.morphNormals = e.morphNormals),
            (this.extensions = Object.assign({}, e.extensions)),
            this
          );
        }),
        (Wi.prototype.toJSON = function (e) {
          var t = Kr.prototype.toJSON.call(this, e);
          for (var n in ((t.uniforms = {}), this.uniforms)) {
            var r = this.uniforms[n],
              i = r.value;
            i && i.isTexture
              ? (t.uniforms[n] = { type: "t", value: i.toJSON(e).uuid })
              : i && i.isColor
                ? (t.uniforms[n] = { type: "c", value: i.getHex() })
                : i && i.isVector2
                  ? (t.uniforms[n] = { type: "v2", value: i.toArray() })
                  : i && i.isVector3
                    ? (t.uniforms[n] = { type: "v3", value: i.toArray() })
                    : i && i.isVector4
                      ? (t.uniforms[n] = { type: "v4", value: i.toArray() })
                      : i && i.isMatrix3
                        ? (t.uniforms[n] = { type: "m3", value: i.toArray() })
                        : i && i.isMatrix4
                          ? (t.uniforms[n] = { type: "m4", value: i.toArray() })
                          : (t.uniforms[n] = { value: i });
          }
          (Object.keys(this.defines).length > 0 && (t.defines = this.defines),
            (t.vertexShader = this.vertexShader),
            (t.fragmentShader = this.fragmentShader));
          var A = {};
          for (var o in this.extensions)
            !0 === this.extensions[o] && (A[o] = !0);
          return (Object.keys(A).length > 0 && (t.extensions = A), t);
        }),
        (Xi.prototype = Object.assign(Object.create(Yn.prototype), {
          constructor: Xi,
          isCamera: !0,
          copy: function (e, t) {
            return (
              Yn.prototype.copy.call(this, e, t),
              this.matrixWorldInverse.copy(e.matrixWorldInverse),
              this.projectionMatrix.copy(e.projectionMatrix),
              this.projectionMatrixInverse.copy(e.projectionMatrixInverse),
              this
            );
          },
          getWorldDirection: function (e) {
            (void 0 === e &&
              (console.warn(
                "THREE.Camera: .getWorldDirection() target is now required",
              ),
              (e = new _n())),
              this.updateMatrixWorld(!0));
            var t = this.matrixWorld.elements;
            return e.set(-t[8], -t[9], -t[10]).normalize();
          },
          updateMatrixWorld: function (e) {
            (Yn.prototype.updateMatrixWorld.call(this, e),
              this.matrixWorldInverse.getInverse(this.matrixWorld));
          },
          updateWorldMatrix: function (e, t) {
            (Yn.prototype.updateWorldMatrix.call(this, e, t),
              this.matrixWorldInverse.getInverse(this.matrixWorld));
          },
          clone: function () {
            return new this.constructor().copy(this);
          },
        })),
        (Yi.prototype = Object.assign(Object.create(Xi.prototype), {
          constructor: Yi,
          isPerspectiveCamera: !0,
          copy: function (e, t) {
            return (
              Xi.prototype.copy.call(this, e, t),
              (this.fov = e.fov),
              (this.zoom = e.zoom),
              (this.near = e.near),
              (this.far = e.far),
              (this.focus = e.focus),
              (this.aspect = e.aspect),
              (this.view = null === e.view ? null : Object.assign({}, e.view)),
              (this.filmGauge = e.filmGauge),
              (this.filmOffset = e.filmOffset),
              this
            );
          },
          setFocalLength: function (e) {
            var t = (0.5 * this.getFilmHeight()) / e;
            ((this.fov = 2 * ln.RAD2DEG * Math.atan(t)),
              this.updateProjectionMatrix());
          },
          getFocalLength: function () {
            var e = Math.tan(0.5 * ln.DEG2RAD * this.fov);
            return (0.5 * this.getFilmHeight()) / e;
          },
          getEffectiveFOV: function () {
            return (
              2 *
              ln.RAD2DEG *
              Math.atan(Math.tan(0.5 * ln.DEG2RAD * this.fov) / this.zoom)
            );
          },
          getFilmWidth: function () {
            return this.filmGauge * Math.min(this.aspect, 1);
          },
          getFilmHeight: function () {
            return this.filmGauge / Math.max(this.aspect, 1);
          },
          setViewOffset: function (e, t, n, r, i, A) {
            ((this.aspect = e / t),
              null === this.view &&
                (this.view = {
                  enabled: !0,
                  fullWidth: 1,
                  fullHeight: 1,
                  offsetX: 0,
                  offsetY: 0,
                  width: 1,
                  height: 1,
                }),
              (this.view.enabled = !0),
              (this.view.fullWidth = e),
              (this.view.fullHeight = t),
              (this.view.offsetX = n),
              (this.view.offsetY = r),
              (this.view.width = i),
              (this.view.height = A),
              this.updateProjectionMatrix());
          },
          clearViewOffset: function () {
            (null !== this.view && (this.view.enabled = !1),
              this.updateProjectionMatrix());
          },
          updateProjectionMatrix: function () {
            var e = this.near,
              t = (e * Math.tan(0.5 * ln.DEG2RAD * this.fov)) / this.zoom,
              n = 2 * t,
              r = this.aspect * n,
              i = -0.5 * r,
              A = this.view;
            if (null !== this.view && this.view.enabled) {
              var o = A.fullWidth,
                a = A.fullHeight;
              ((i += (A.offsetX * r) / o),
                (t -= (A.offsetY * n) / a),
                (r *= A.width / o),
                (n *= A.height / a));
            }
            var s = this.filmOffset;
            (0 !== s && (i += (e * s) / this.getFilmWidth()),
              this.projectionMatrix.makePerspective(
                i,
                i + r,
                t,
                t - n,
                e,
                this.far,
              ),
              this.projectionMatrixInverse.getInverse(this.projectionMatrix));
          },
          toJSON: function (e) {
            var t = Yn.prototype.toJSON.call(this, e);
            return (
              (t.object.fov = this.fov),
              (t.object.zoom = this.zoom),
              (t.object.near = this.near),
              (t.object.far = this.far),
              (t.object.focus = this.focus),
              (t.object.aspect = this.aspect),
              null !== this.view &&
                (t.object.view = Object.assign({}, this.view)),
              (t.object.filmGauge = this.filmGauge),
              (t.object.filmOffset = this.filmOffset),
              t
            );
          },
        })));
      var Ji = 90,
        qi = 1;
      function Zi(e, t, n) {
        if (
          (Yn.call(this),
          (this.type = "CubeCamera"),
          !0 === n.isWebGLCubeRenderTarget)
        ) {
          this.renderTarget = n;
          var r = new Yi(Ji, qi, e, t);
          ((r.layers = this.layers),
            r.up.set(0, -1, 0),
            r.lookAt(new _n(1, 0, 0)),
            this.add(r));
          var i = new Yi(Ji, qi, e, t);
          ((i.layers = this.layers),
            i.up.set(0, -1, 0),
            i.lookAt(new _n(-1, 0, 0)),
            this.add(i));
          var A = new Yi(Ji, qi, e, t);
          ((A.layers = this.layers),
            A.up.set(0, 0, 1),
            A.lookAt(new _n(0, 1, 0)),
            this.add(A));
          var o = new Yi(Ji, qi, e, t);
          ((o.layers = this.layers),
            o.up.set(0, 0, -1),
            o.lookAt(new _n(0, -1, 0)),
            this.add(o));
          var a = new Yi(Ji, qi, e, t);
          ((a.layers = this.layers),
            a.up.set(0, -1, 0),
            a.lookAt(new _n(0, 0, 1)),
            this.add(a));
          var s = new Yi(Ji, qi, e, t);
          ((s.layers = this.layers),
            s.up.set(0, -1, 0),
            s.lookAt(new _n(0, 0, -1)),
            this.add(s),
            (this.update = function (e, t) {
              null === this.parent && this.updateMatrixWorld();
              var c = e.xr.enabled,
                u = e.getRenderTarget();
              e.xr.enabled = !1;
              var l = n.texture.generateMipmaps;
              ((n.texture.generateMipmaps = !1),
                e.setRenderTarget(n, 0),
                e.render(t, r),
                e.setRenderTarget(n, 1),
                e.render(t, i),
                e.setRenderTarget(n, 2),
                e.render(t, A),
                e.setRenderTarget(n, 3),
                e.render(t, o),
                e.setRenderTarget(n, 4),
                e.render(t, a),
                (n.texture.generateMipmaps = l),
                e.setRenderTarget(n, 5),
                e.render(t, s),
                e.setRenderTarget(u),
                (e.xr.enabled = c));
            }),
            (this.clear = function (e, t, r, i) {
              for (var A = e.getRenderTarget(), o = 0; o < 6; o++)
                (e.setRenderTarget(n, o), e.clear(t, r, i));
              e.setRenderTarget(A);
            }));
        } else
          console.log(
            "THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.",
          );
      }
      function $i(e, t, n) {
        (Number.isInteger(t) &&
          (console.warn(
            "THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )",
          ),
          (t = n)),
          vn.call(this, e, e, t));
      }
      function eA(e, t, n, r, i, A, o, a, s, c, u, l) {
        (gn.call(this, null, A, o, a, s, c, r, i, u, l),
          (this.image = { data: e || null, width: t || 1, height: n || 1 }),
          (this.magFilter = void 0 !== s ? s : he),
          (this.minFilter = void 0 !== c ? c : he),
          (this.generateMipmaps = !1),
          (this.flipY = !1),
          (this.unpackAlignment = 1),
          (this.needsUpdate = !0));
      }
      ((Zi.prototype = Object.create(Yn.prototype)),
        (Zi.prototype.constructor = Zi),
        ($i.prototype = Object.create(vn.prototype)),
        ($i.prototype.constructor = $i),
        ($i.prototype.isWebGLCubeRenderTarget = !0),
        ($i.prototype.fromEquirectangularTexture = function (e, t) {
          ((this.texture.type = t.type),
            (this.texture.format = t.format),
            (this.texture.encoding = t.encoding));
          var n = new Jn(),
            r = {
              uniforms: { tEquirect: { value: null } },
              vertexShader: [
                "varying vec3 vWorldDirection;",
                "vec3 transformDirection( in vec3 dir, in mat4 matrix ) {",
                "\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );",
                "}",
                "void main() {",
                "\tvWorldDirection = transformDirection( position, modelMatrix );",
                "\t#include <begin_vertex>",
                "\t#include <project_vertex>",
                "}",
              ].join("\n"),
              fragmentShader: [
                "uniform sampler2D tEquirect;",
                "varying vec3 vWorldDirection;",
                "#include <common>",
                "void main() {",
                "\tvec3 direction = normalize( vWorldDirection );",
                "\tvec2 sampleUV = equirectUv( direction );",
                "\tgl_FragColor = texture2D( tEquirect, sampleUV );",
                "}",
              ].join("\n"),
            },
            i = new Wi({
              type: "CubemapFromEquirect",
              uniforms: Gi(r.uniforms),
              vertexShader: r.vertexShader,
              fragmentShader: r.fragmentShader,
              side: f,
              blending: g,
            });
          i.uniforms.tEquirect.value = t;
          var A = new Qi(new ki(5, 5, 5), i);
          n.add(A);
          var o = new Zi(1, 10, this);
          return (
            o.update(e, n),
            A.geometry.dispose(),
            A.material.dispose(),
            this
          );
        }),
        (eA.prototype = Object.create(gn.prototype)),
        (eA.prototype.constructor = eA),
        (eA.prototype.isDataTexture = !0));
      var tA = new fr(),
        nA = new _n();
      function rA(e, t, n, r, i, A) {
        this.planes = [
          void 0 !== e ? e : new Cr(),
          void 0 !== t ? t : new Cr(),
          void 0 !== n ? n : new Cr(),
          void 0 !== r ? r : new Cr(),
          void 0 !== i ? i : new Cr(),
          void 0 !== A ? A : new Cr(),
        ];
      }
      Object.assign(rA.prototype, {
        set: function (e, t, n, r, i, A) {
          var o = this.planes;
          return (
            o[0].copy(e),
            o[1].copy(t),
            o[2].copy(n),
            o[3].copy(r),
            o[4].copy(i),
            o[5].copy(A),
            this
          );
        },
        clone: function () {
          return new this.constructor().copy(this);
        },
        copy: function (e) {
          for (var t = this.planes, n = 0; n < 6; n++) t[n].copy(e.planes[n]);
          return this;
        },
        setFromProjectionMatrix: function (e) {
          var t = this.planes,
            n = e.elements,
            r = n[0],
            i = n[1],
            A = n[2],
            o = n[3],
            a = n[4],
            s = n[5],
            c = n[6],
            u = n[7],
            l = n[8],
            h = n[9],
            f = n[10],
            d = n[11],
            p = n[12],
            g = n[13],
            m = n[14],
            v = n[15];
          return (
            t[0].setComponents(o - r, u - a, d - l, v - p).normalize(),
            t[1].setComponents(o + r, u + a, d + l, v + p).normalize(),
            t[2].setComponents(o + i, u + s, d + h, v + g).normalize(),
            t[3].setComponents(o - i, u - s, d - h, v - g).normalize(),
            t[4].setComponents(o - A, u - c, d - f, v - m).normalize(),
            t[5].setComponents(o + A, u + c, d + f, v + m).normalize(),
            this
          );
        },
        intersectsObject: function (e) {
          var t = e.geometry;
          return (
            null === t.boundingSphere && t.computeBoundingSphere(),
            tA.copy(t.boundingSphere).applyMatrix4(e.matrixWorld),
            this.intersectsSphere(tA)
          );
        },
        intersectsSprite: function (e) {
          return (
            tA.center.set(0, 0, 0),
            (tA.radius = 0.7071067811865476),
            tA.applyMatrix4(e.matrixWorld),
            this.intersectsSphere(tA)
          );
        },
        intersectsSphere: function (e) {
          for (
            var t = this.planes, n = e.center, r = -e.radius, i = 0;
            i < 6;
            i++
          ) {
            var A = t[i].distanceToPoint(n);
            if (A < r) return !1;
          }
          return !0;
        },
        intersectsBox: function (e) {
          for (var t = this.planes, n = 0; n < 6; n++) {
            var r = t[n];
            if (
              ((nA.x = r.normal.x > 0 ? e.max.x : e.min.x),
              (nA.y = r.normal.y > 0 ? e.max.y : e.min.y),
              (nA.z = r.normal.z > 0 ? e.max.z : e.min.z),
              r.distanceToPoint(nA) < 0)
            )
              return !1;
          }
          return !0;
        },
        containsPoint: function (e) {
          for (var t = this.planes, n = 0; n < 6; n++)
            if (t[n].distanceToPoint(e) < 0) return !1;
          return !0;
        },
      });
      var iA = {
        common: {
          diffuse: { value: new Nr(15658734) },
          opacity: { value: 1 },
          map: { value: null },
          uvTransform: { value: new fn() },
          uv2Transform: { value: new fn() },
          alphaMap: { value: null },
        },
        specularmap: { specularMap: { value: null } },
        envmap: {
          envMap: { value: null },
          flipEnvMap: { value: -1 },
          reflectivity: { value: 1 },
          refractionRatio: { value: 0.98 },
          maxMipLevel: { value: 0 },
        },
        aomap: { aoMap: { value: null }, aoMapIntensity: { value: 1 } },
        lightmap: {
          lightMap: { value: null },
          lightMapIntensity: { value: 1 },
        },
        emissivemap: { emissiveMap: { value: null } },
        bumpmap: { bumpMap: { value: null }, bumpScale: { value: 1 } },
        normalmap: {
          normalMap: { value: null },
          normalScale: { value: new hn(1, 1) },
        },
        displacementmap: {
          displacementMap: { value: null },
          displacementScale: { value: 1 },
          displacementBias: { value: 0 },
        },
        roughnessmap: { roughnessMap: { value: null } },
        metalnessmap: { metalnessMap: { value: null } },
        gradientmap: { gradientMap: { value: null } },
        fog: {
          fogDensity: { value: 25e-5 },
          fogNear: { value: 1 },
          fogFar: { value: 2e3 },
          fogColor: { value: new Nr(16777215) },
        },
        lights: {
          ambientLightColor: { value: [] },
          lightProbe: { value: [] },
          directionalLights: {
            value: [],
            properties: { direction: {}, color: {} },
          },
          directionalLightShadows: {
            value: [],
            properties: { shadowBias: {}, shadowRadius: {}, shadowMapSize: {} },
          },
          directionalShadowMap: { value: [] },
          directionalShadowMatrix: { value: [] },
          spotLights: {
            value: [],
            properties: {
              color: {},
              position: {},
              direction: {},
              distance: {},
              coneCos: {},
              penumbraCos: {},
              decay: {},
            },
          },
          spotLightShadows: {
            value: [],
            properties: { shadowBias: {}, shadowRadius: {}, shadowMapSize: {} },
          },
          spotShadowMap: { value: [] },
          spotShadowMatrix: { value: [] },
          pointLights: {
            value: [],
            properties: { color: {}, position: {}, decay: {}, distance: {} },
          },
          pointLightShadows: {
            value: [],
            properties: {
              shadowBias: {},
              shadowRadius: {},
              shadowMapSize: {},
              shadowCameraNear: {},
              shadowCameraFar: {},
            },
          },
          pointShadowMap: { value: [] },
          pointShadowMatrix: { value: [] },
          hemisphereLights: {
            value: [],
            properties: { direction: {}, skyColor: {}, groundColor: {} },
          },
          rectAreaLights: {
            value: [],
            properties: { color: {}, position: {}, width: {}, height: {} },
          },
        },
        points: {
          diffuse: { value: new Nr(15658734) },
          opacity: { value: 1 },
          size: { value: 1 },
          scale: { value: 1 },
          map: { value: null },
          alphaMap: { value: null },
          uvTransform: { value: new fn() },
        },
        sprite: {
          diffuse: { value: new Nr(15658734) },
          opacity: { value: 1 },
          center: { value: new hn(0.5, 0.5) },
          rotation: { value: 0 },
          map: { value: null },
          alphaMap: { value: null },
          uvTransform: { value: new fn() },
        },
      };
      function AA() {
        var e = null,
          t = !1,
          n = null;
        function r(i, A) {
          !1 !== t && (n(i, A), e.requestAnimationFrame(r));
        }
        return {
          start: function () {
            !0 !== t && null !== n && (e.requestAnimationFrame(r), (t = !0));
          },
          stop: function () {
            t = !1;
          },
          setAnimationLoop: function (e) {
            n = e;
          },
          setContext: function (t) {
            e = t;
          },
        };
      }
      function oA(e, t) {
        var n = t.isWebGL2,
          r = new WeakMap();
        function i(t, n) {
          var r = t.array,
            i = t.usage,
            A = e.createBuffer();
          (e.bindBuffer(n, A), e.bufferData(n, r, i), t.onUploadCallback());
          var o = 5126;
          return (
            r instanceof Float32Array
              ? (o = 5126)
              : r instanceof Float64Array
                ? console.warn(
                    "THREE.WebGLAttributes: Unsupported data buffer format: Float64Array.",
                  )
                : r instanceof Uint16Array
                  ? (o = 5123)
                  : r instanceof Int16Array
                    ? (o = 5122)
                    : r instanceof Uint32Array
                      ? (o = 5125)
                      : r instanceof Int32Array
                        ? (o = 5124)
                        : r instanceof Int8Array
                          ? (o = 5120)
                          : r instanceof Uint8Array && (o = 5121),
            {
              buffer: A,
              type: o,
              bytesPerElement: r.BYTES_PER_ELEMENT,
              version: t.version,
            }
          );
        }
        function A(t, r, i) {
          var A = r.array,
            o = r.updateRange;
          (e.bindBuffer(i, t),
            -1 === o.count
              ? e.bufferSubData(i, 0, A)
              : (n
                  ? e.bufferSubData(
                      i,
                      o.offset * A.BYTES_PER_ELEMENT,
                      A,
                      o.offset,
                      o.count,
                    )
                  : e.bufferSubData(
                      i,
                      o.offset * A.BYTES_PER_ELEMENT,
                      A.subarray(o.offset, o.offset + o.count),
                    ),
                (o.count = -1)));
        }
        function o(e) {
          return (e.isInterleavedBufferAttribute && (e = e.data), r.get(e));
        }
        function a(t) {
          t.isInterleavedBufferAttribute && (t = t.data);
          var n = r.get(t);
          n && (e.deleteBuffer(n.buffer), r.delete(t));
        }
        function s(e, t) {
          e.isInterleavedBufferAttribute && (e = e.data);
          var n = r.get(e);
          void 0 === n
            ? r.set(e, i(e, t))
            : n.version < e.version &&
              (A(n.buffer, e, t), (n.version = e.version));
        }
        return { get: o, remove: a, update: s };
      }
      function aA(e, t, n, r) {
        (Di.call(this),
          (this.type = "PlaneGeometry"),
          (this.parameters = {
            width: e,
            height: t,
            widthSegments: n,
            heightSegments: r,
          }),
          this.fromBufferGeometry(new sA(e, t, n, r)),
          this.mergeVertices());
      }
      function sA(e, t, n, r) {
        (di.call(this),
          (this.type = "PlaneBufferGeometry"),
          (this.parameters = {
            width: e,
            height: t,
            widthSegments: n,
            heightSegments: r,
          }),
          (e = e || 1),
          (t = t || 1));
        var i,
          A,
          o = e / 2,
          a = t / 2,
          s = Math.floor(n) || 1,
          c = Math.floor(r) || 1,
          u = s + 1,
          l = c + 1,
          h = e / s,
          f = t / c,
          d = [],
          p = [],
          g = [],
          m = [];
        for (A = 0; A < l; A++) {
          var v = A * f - a;
          for (i = 0; i < u; i++) {
            var y = i * h - o;
            (p.push(y, -v, 0),
              g.push(0, 0, 1),
              m.push(i / s),
              m.push(1 - A / c));
          }
        }
        for (A = 0; A < c; A++)
          for (i = 0; i < s; i++) {
            var w = i + u * A,
              B = i + u * (A + 1),
              b = i + 1 + u * (A + 1),
              _ = i + 1 + u * A;
            (d.push(w, B, _), d.push(B, b, _));
          }
        (this.setIndex(d),
          this.setAttribute("position", new ri(p, 3)),
          this.setAttribute("normal", new ri(g, 3)),
          this.setAttribute("uv", new ri(m, 2)));
      }
      ((aA.prototype = Object.create(Di.prototype)),
        (aA.prototype.constructor = aA),
        (sA.prototype = Object.create(di.prototype)),
        (sA.prototype.constructor = sA));
      var cA =
          "#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\n#endif",
        uA = "#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",
        lA =
          "#ifdef ALPHATEST\n\tif ( diffuseColor.a < ALPHATEST ) discard;\n#endif",
        hA =
          "#ifdef USE_AOMAP\n\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\n\treflectedLight.indirectDiffuse *= ambientOcclusion;\n\t#if defined( USE_ENVMAP ) && defined( STANDARD )\n\t\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.specularRoughness );\n\t#endif\n#endif",
        fA =
          "#ifdef USE_AOMAP\n\tuniform sampler2D aoMap;\n\tuniform float aoMapIntensity;\n#endif",
        dA = "vec3 transformed = vec3( position );",
        pA =
          "vec3 objectNormal = vec3( normal );\n#ifdef USE_TANGENT\n\tvec3 objectTangent = vec3( tangent.xyz );\n#endif",
        gA =
          "vec2 integrateSpecularBRDF( const in float dotNV, const in float roughness ) {\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\treturn vec2( -1.04, 1.04 ) * a004 + r.zw;\n}\nfloat punctualLightIntensityToIrradianceFactor( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\n\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\tif( cutoffDistance > 0.0 ) {\n\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t}\n\treturn distanceFalloff;\n#else\n\tif( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t}\n\treturn 1.0;\n#endif\n}\nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 specularColor, const in float dotLH ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );\n\treturn ( 1.0 - specularColor ) * fresnel + specularColor;\n}\nvec3 F_Schlick_RoughnessDependent( const in vec3 F0, const in float dotNV, const in float roughness ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotNV - 6.98316 ) * dotNV );\n\tvec3 Fr = max( vec3( 1.0 - roughness ), F0 ) - F0;\n\treturn Fr * fresnel + F0;\n}\nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\tfloat gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\treturn 1.0 / ( gl * gv );\n}\nfloat G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( incidentLight.direction + viewDir );\n\tfloat dotNL = saturate( dot( normal, incidentLight.direction ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( G * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE  = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS  = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\nvec3 BRDF_Specular_GGX_Environment( const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\n\treturn specularColor * brdf.x + brdf.y;\n}\nvoid BRDF_Specular_Multiscattering_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\tvec3 F = F_Schlick_RoughnessDependent( specularColor, dotNV, roughness );\n\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\n\tvec3 FssEss = F * brdf.x + brdf.y;\n\tfloat Ess = brdf.x + brdf.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = specularColor + ( 1.0 - specularColor ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\nfloat G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\n\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n}\nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\n\treturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );\n}\nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {\n\treturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie(float roughness, float NoH) {\n\tfloat invAlpha  = 1.0 / roughness;\n\tfloat cos2h = NoH * NoH;\n\tfloat sin2h = max(1.0 - cos2h, 0.0078125);\treturn (2.0 + invAlpha) * pow(sin2h, invAlpha * 0.5) / (2.0 * PI);\n}\nfloat V_Neubelt(float NoV, float NoL) {\n\treturn saturate(1.0 / (4.0 * (NoL + NoV - NoL * NoV)));\n}\nvec3 BRDF_Specular_Sheen( const in float roughness, const in vec3 L, const in GeometricContext geometry, vec3 specularColor ) {\n\tvec3 N = geometry.normal;\n\tvec3 V = geometry.viewDir;\n\tvec3 H = normalize( V + L );\n\tfloat dotNH = saturate( dot( N, H ) );\n\treturn specularColor * D_Charlie( roughness, dotNH ) * V_Neubelt( dot(N, V), dot(N, L) );\n}\n#endif",
        mA =
          "#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vUv );\n\t\tvec2 dSTdy = dFdy( vUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {\n\t\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\n\t\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 );\n\t\tfDet *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif",
        vA =
          "#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif",
        yA =
          "#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",
        wA =
          "#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",
        BA =
          "#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",
        bA = "#ifdef USE_COLOR\n\tdiffuseColor.rgb *= vColor;\n#endif",
        _A = "#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif",
        xA = "#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif",
        CA = "#ifdef USE_COLOR\n\tvColor.xyz = color.xyz;\n#endif",
        EA =
          "#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI_HALF 1.5707963267949\n#define RECIPROCAL_PI 0.31830988618\n#define RECIPROCAL_PI2 0.15915494\n#define LOG2 1.442695\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate(a) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement(a) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract(sin(sn) * c);\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat max3( vec3 v ) { return max( max( v.x, v.y ), v.z ); }\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\tfloat distance = dot( planeNormal, point - pointOnPlane );\n\treturn - distance * planeNormal + point;\n}\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn sign( dot( point - pointOnPlane, planeNormal ) );\n}\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat linearToRelativeLuminance( const in vec3 color ) {\n\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\n\treturn dot( weights, color.rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n  return m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}",
        MA =
          "#ifdef ENVMAP_TYPE_CUBE_UV\n#define cubeUV_maxMipLevel 8.0\n#define cubeUV_minMipLevel 4.0\n#define cubeUV_maxTileSize 256.0\n#define cubeUV_minTileSize 16.0\nfloat getFace(vec3 direction) {\n    vec3 absDirection = abs(direction);\n    float face = -1.0;\n    if (absDirection.x > absDirection.z) {\n      if (absDirection.x > absDirection.y)\n        face = direction.x > 0.0 ? 0.0 : 3.0;\n      else\n        face = direction.y > 0.0 ? 1.0 : 4.0;\n    } else {\n      if (absDirection.z > absDirection.y)\n        face = direction.z > 0.0 ? 2.0 : 5.0;\n      else\n        face = direction.y > 0.0 ? 1.0 : 4.0;\n    }\n    return face;\n}\nvec2 getUV(vec3 direction, float face) {\n    vec2 uv;\n    if (face == 0.0) {\n      uv = vec2(direction.z, direction.y) / abs(direction.x);    } else if (face == 1.0) {\n      uv = vec2(-direction.x, -direction.z) / abs(direction.y);    } else if (face == 2.0) {\n      uv = vec2(-direction.x, direction.y) / abs(direction.z);    } else if (face == 3.0) {\n      uv = vec2(-direction.z, direction.y) / abs(direction.x);    } else if (face == 4.0) {\n      uv = vec2(-direction.x, direction.z) / abs(direction.y);    } else {\n      uv = vec2(direction.x, direction.y) / abs(direction.z);    }\n    return 0.5 * (uv + 1.0);\n}\nvec3 bilinearCubeUV(sampler2D envMap, vec3 direction, float mipInt) {\n  float face = getFace(direction);\n  float filterInt = max(cubeUV_minMipLevel - mipInt, 0.0);\n  mipInt = max(mipInt, cubeUV_minMipLevel);\n  float faceSize = exp2(mipInt);\n  float texelSize = 1.0 / (3.0 * cubeUV_maxTileSize);\n  vec2 uv = getUV(direction, face) * (faceSize - 1.0);\n  vec2 f = fract(uv);\n  uv += 0.5 - f;\n  if (face > 2.0) {\n    uv.y += faceSize;\n    face -= 3.0;\n  }\n  uv.x += face * faceSize;\n  if(mipInt < cubeUV_maxMipLevel){\n    uv.y += 2.0 * cubeUV_maxTileSize;\n  }\n  uv.y += filterInt * 2.0 * cubeUV_minTileSize;\n  uv.x += 3.0 * max(0.0, cubeUV_maxTileSize - 2.0 * faceSize);\n  uv *= texelSize;\n  vec3 tl = envMapTexelToLinear(texture2D(envMap, uv)).rgb;\n  uv.x += texelSize;\n  vec3 tr = envMapTexelToLinear(texture2D(envMap, uv)).rgb;\n  uv.y += texelSize;\n  vec3 br = envMapTexelToLinear(texture2D(envMap, uv)).rgb;\n  uv.x -= texelSize;\n  vec3 bl = envMapTexelToLinear(texture2D(envMap, uv)).rgb;\n  vec3 tm = mix(tl, tr, f.x);\n  vec3 bm = mix(bl, br, f.x);\n  return mix(tm, bm, f.y);\n}\n#define r0 1.0\n#define v0 0.339\n#define m0 -2.0\n#define r1 0.8\n#define v1 0.276\n#define m1 -1.0\n#define r4 0.4\n#define v4 0.046\n#define m4 2.0\n#define r5 0.305\n#define v5 0.016\n#define m5 3.0\n#define r6 0.21\n#define v6 0.0038\n#define m6 4.0\nfloat roughnessToMip(float roughness) {\n  float mip = 0.0;\n  if (roughness >= r1) {\n    mip = (r0 - roughness) * (m1 - m0) / (r0 - r1) + m0;\n  } else if (roughness >= r4) {\n    mip = (r1 - roughness) * (m4 - m1) / (r1 - r4) + m1;\n  } else if (roughness >= r5) {\n    mip = (r4 - roughness) * (m5 - m4) / (r4 - r5) + m4;\n  } else if (roughness >= r6) {\n    mip = (r5 - roughness) * (m6 - m5) / (r5 - r6) + m5;\n  } else {\n    mip = -2.0 * log2(1.16 * roughness);  }\n  return mip;\n}\nvec4 textureCubeUV(sampler2D envMap, vec3 sampleDir, float roughness) {\n  float mip = clamp(roughnessToMip(roughness), m0, cubeUV_maxMipLevel);\n  float mipF = fract(mip);\n  float mipInt = floor(mip);\n  vec3 color0 = bilinearCubeUV(envMap, sampleDir, mipInt);\n  if (mipF == 0.0) {\n    return vec4(color0, 1.0);\n  } else {\n    vec3 color1 = bilinearCubeUV(envMap, sampleDir, mipInt + 1.0);\n    return vec4(mix(color0, color1, mipF), 1.0);\n  }\n}\n#endif",
        SA =
          "vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",
        FA =
          "#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",
        TA =
          "#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\n#endif",
        UA =
          "#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\n\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",
        QA = "#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",
        LA = "gl_FragColor = linearToOutputTexel( gl_FragColor );",
        IA =
          "\nvec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.rgb, vec3( gammaFactor ) ), value.a );\n}\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.rgb, vec3( 1.0 / gammaFactor ) ), value.a );\n}\nvec4 sRGBToLinear( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}\nvec4 RGBEToLinear( in vec4 value ) {\n\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\n}\nvec4 LinearToRGBE( in vec4 value ) {\n\tfloat maxComponent = max( max( value.r, value.g ), value.b );\n\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\n\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\n}\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * value.a * maxRange, 1.0 );\n}\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\n\tfloat M = clamp( maxRGB / maxRange, 0.0, 1.0 );\n\tM = ceil( M * 255.0 ) / 255.0;\n\treturn vec4( value.rgb / ( M * maxRange ), M );\n}\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\n}\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\n\tfloat D = max( maxRange / maxRGB, 1.0 );\n\tD = clamp( floor( D ) / 255.0, 0.0, 1.0 );\n\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\n}\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\nvec4 LinearToLogLuv( in vec4 value )  {\n\tvec3 Xp_Y_XYZp = cLogLuvM * value.rgb;\n\tXp_Y_XYZp = max( Xp_Y_XYZp, vec3( 1e-6, 1e-6, 1e-6 ) );\n\tvec4 vResult;\n\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\n\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\n\tvResult.w = fract( Le );\n\tvResult.z = ( Le - ( floor( vResult.w * 255.0 ) ) / 255.0 ) / 255.0;\n\treturn vResult;\n}\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\nvec4 LogLuvToLinear( in vec4 value ) {\n\tfloat Le = value.z * 255.0 + value.w;\n\tvec3 Xp_Y_XYZp;\n\tXp_Y_XYZp.y = exp2( ( Le - 127.0 ) / 2.0 );\n\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\n\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\n\tvec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;\n\treturn vec4( max( vRGB, 0.0 ), 1.0 );\n}",
        HA =
          "#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\t\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t}  else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 );\n\t#elif defined( ENVMAP_TYPE_EQUIREC )\n\t\treflectVec = normalize( reflectVec );\n\t\tvec2 sampleUV = equirectUv( reflectVec );\n\t\tvec4 envColor = texture2D( envMap, sampleUV );\n\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\treflectVec = normalize( reflectVec );\n\t\tvec3 reflectView = normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) );\n\t\tvec4 envColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5 );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifndef ENVMAP_TYPE_CUBE_UV\n\t\tenvColor = envMapTexelToLinear( envColor );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",
        OA =
          "#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\tuniform int maxMipLevel;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",
        RA =
          "#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",
        PA =
          "#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",
        DA =
          "#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) { \n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",
        NA = "#ifdef USE_FOG\n\tfogDepth = -mvPosition.z;\n#endif",
        kA = "#ifdef USE_FOG\n\tvarying float fogDepth;\n#endif",
        GA =
          "#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * fogDepth * fogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, fogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",
        VA =
          "#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float fogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",
        zA =
          "#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn texture2D( gradientMap, coord ).rgb;\n\t#else\n\t\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\n\t#endif\n}",
        jA =
          "#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\treflectedLight.indirectDiffuse += PI * lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n#endif",
        KA =
          "#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",
        WA =
          "vec3 diffuse = vec3( 1.0 );\nGeometricContext geometry;\ngeometry.position = mvPosition.xyz;\ngeometry.normal = normalize( transformedNormal );\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );\nGeometricContext backGeometry;\nbackGeometry.position = geometry.position;\nbackGeometry.normal = -geometry.normal;\nbackGeometry.viewDir = geometry.viewDir;\nvLightFront = vec3( 0.0 );\nvIndirectFront = vec3( 0.0 );\n#ifdef DOUBLE_SIDED\n\tvLightBack = vec3( 0.0 );\n\tvIndirectBack = vec3( 0.0 );\n#endif\nIncidentLight directLight;\nfloat dotNL;\nvec3 directLightColor_Diffuse;\nvIndirectFront += getAmbientLightIrradiance( ambientLightColor );\nvIndirectFront += getLightProbeIrradiance( lightProbe, geometry );\n#ifdef DOUBLE_SIDED\n\tvIndirectBack += getAmbientLightIrradiance( ambientLightColor );\n\tvIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry );\n#endif\n#if NUM_POINT_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_DIR_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\tvIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif",
        XA =
          "uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in GeometricContext geometry ) {\n\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treturn irradiance;\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\tvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tdirectLight.color = directionalLight.color;\n\t\tdirectLight.direction = directionalLight.direction;\n\t\tdirectLight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tvoid getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tdirectLight.color = pointLight.color;\n\t\tdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\n\t\tdirectLight.visible = ( directLight.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\tvoid getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight  ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tfloat angleCos = dot( directLight.direction, spotLight.direction );\n\t\tif ( angleCos > spotLight.coneCos ) {\n\t\t\tfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\t\tdirectLight.color = spotLight.color;\n\t\t\tdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tdirectLight.visible = true;\n\t\t} else {\n\t\t\tdirectLight.color = vec3( 0.0 );\n\t\t\tdirectLight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {\n\t\tfloat dotNL = dot( geometry.normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tirradiance *= PI;\n\t\t#endif\n\t\treturn irradiance;\n\t}\n#endif",
        YA =
          "#if defined( USE_ENVMAP )\n\t#ifdef ENVMAP_MODE_REFRACTION\n\t\tuniform float refractionRatio;\n\t#endif\n\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\n\t\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t#else\n\t\t\tvec4 envMapColor = vec4( 0.0 );\n\t\t#endif\n\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t}\n\tfloat getSpecularMIPLevel( const in float roughness, const in int maxMIPLevel ) {\n\t\tfloat maxMIPLevelScalar = float( maxMIPLevel );\n\t\tfloat sigma = PI * roughness * roughness / ( 1.0 + roughness );\n\t\tfloat desiredMIPLevel = maxMIPLevelScalar + log2( sigma );\n\t\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\n\t}\n\tvec3 getLightProbeIndirectRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in int maxMIPLevel ) {\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t  vec3 reflectVec = reflect( -viewDir, normal );\n\t\t  reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t#else\n\t\t  vec3 reflectVec = refract( -viewDir, normal, refractionRatio );\n\t\t#endif\n\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\tfloat specularMIPLevel = getSpecularMIPLevel( roughness, maxMIPLevel );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t#elif defined( ENVMAP_TYPE_EQUIREC )\n\t\t\tvec2 sampleUV = equirectUv( reflectVec );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = texture2DLodEXT( envMap, sampleUV, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = texture2D( envMap, sampleUV, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\t\tvec3 reflectView = normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0,0.0,1.0 ) );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = texture2DLodEXT( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#endif\n\t\treturn envMapColor.rgb * envMapIntensity;\n\t}\n#endif",
        JA =
          "ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",
        qA =
          "varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\nstruct ToonMaterial {\n\tvec3\tdiffuseColor;\n\tvec3\tspecularColor;\n\tfloat\tspecularShininess;\n\tfloat\tspecularStrength;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon\n#define Material_LightProbeLOD( material )\t(0)",
        ZA =
          "BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",
        $A =
          "varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\nstruct BlinnPhongMaterial {\n\tvec3\tdiffuseColor;\n\tvec3\tspecularColor;\n\tfloat\tspecularShininess;\n\tfloat\tspecularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong\n#define Material_LightProbeLOD( material )\t(0)",
        eo =
          "PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.specularRoughness = max( roughnessFactor, 0.0525 );material.specularRoughness += geometryRoughness;\nmaterial.specularRoughness = min( material.specularRoughness, 1.0 );\n#ifdef REFLECTIVITY\n\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\n#endif\n#ifdef CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheen;\n#endif",
        to =
          "struct PhysicalMaterial {\n\tvec3\tdiffuseColor;\n\tfloat\tspecularRoughness;\n\tvec3\tspecularColor;\n#ifdef CLEARCOAT\n\tfloat clearcoat;\n\tfloat clearcoatRoughness;\n#endif\n#ifdef USE_SHEEN\n\tvec3 sheenColor;\n#endif\n};\n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16\n#define DEFAULT_SPECULAR_COEFFICIENT 0.04\nfloat clearcoatDHRApprox( const in float roughness, const in float dotNL ) {\n\treturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.specularRoughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3(    0, 1,    0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\t#ifdef CLEARCOAT\n\t\tfloat ccDotNL = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = ccDotNL * directLight.color;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tccIrradiance *= PI;\n\t\t#endif\n\t\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\n\t\treflectedLight.directSpecular += ccIrradiance * material.clearcoat * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\n\t#else\n\t\tfloat clearcoatDHR = 0.0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_Sheen(\n\t\t\tmaterial.specularRoughness,\n\t\t\tdirectLight.direction,\n\t\t\tgeometry,\n\t\t\tmaterial.sheenColor\n\t\t);\n\t#else\n\t\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.normal, material.specularColor, material.specularRoughness);\n\t#endif\n\treflectedLight.directDiffuse += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef CLEARCOAT\n\t\tfloat ccDotNV = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular += clearcoatRadiance * material.clearcoat * BRDF_Specular_GGX_Environment( geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\n\t\tfloat ccDotNL = ccDotNV;\n\t\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\n\t#else\n\t\tfloat clearcoatDHR = 0.0;\n\t#endif\n\tfloat clearcoatInv = 1.0 - clearcoatDHR;\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\tBRDF_Specular_Multiscattering_Environment( geometry, material.specularColor, material.specularRoughness, singleScattering, multiScattering );\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) );\n\treflectedLight.indirectSpecular += clearcoatInv * radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",
        no =
          "\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",
        ro =
          "#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\t\tvec3 lightMapIrradiance = lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tlightMapIrradiance *= PI;\n\t\t#endif\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getLightProbeIndirectIrradiance( geometry, maxMipLevel );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.normal, material.specularRoughness, maxMipLevel );\n\t#ifdef CLEARCOAT\n\t\tclearcoatRadiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness, maxMipLevel );\n\t#endif\n#endif",
        io =
          "#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif",
        Ao =
          "#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",
        oo =
          "#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",
        ao =
          "#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif",
        so =
          "#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif",
        co =
          "#ifdef USE_MAP\n\tvec4 texelColor = texture2D( map, vUv );\n\ttexelColor = mapTexelToLinear( texelColor );\n\tdiffuseColor *= texelColor;\n#endif",
        uo = "#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",
        lo =
          "#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n#endif\n#ifdef USE_MAP\n\tvec4 mapTexel = texture2D( map, uv );\n\tdiffuseColor *= mapTexelToLinear( mapTexel );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",
        ho =
          "#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tuniform mat3 uvTransform;\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",
        fo =
          "float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",
        po =
          "#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",
        go =
          "#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n#endif",
        mo =
          "#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifndef USE_MORPHNORMALS\n\tuniform float morphTargetInfluences[ 8 ];\n\t#else\n\tuniform float morphTargetInfluences[ 4 ];\n\t#endif\n#endif",
        vo =
          "#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t#ifndef USE_MORPHNORMALS\n\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t#endif\n#endif",
        yo =
          "#ifdef FLAT_SHADED\n\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\n\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t#endif\n\t#ifdef USE_TANGENT\n\t\tvec3 tangent = normalize( vTangent );\n\t\tvec3 bitangent = normalize( vBitangent );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\ttangent = tangent * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\t\tbitangent = bitangent * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\t#endif\n\t\t#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tmat3 vTBN = mat3( tangent, bitangent, normal );\n\t\t#endif\n\t#endif\n#endif\nvec3 geometryNormal = normal;",
        wo =
          "#ifdef OBJECTSPACE_NORMALMAP\n\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( TANGENTSPACE_NORMALMAP )\n\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\t#ifdef USE_TANGENT\n\t\tnormal = normalize( vTBN * mapN );\n\t#else\n\t\tnormal = perturbNormal2Arb( -vViewPosition, normal, mapN );\n\t#endif\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\n#endif",
        Bo =
          "#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN ) {\n\t\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\n\t\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\n\t\tvec2 st0 = dFdx( vUv.st );\n\t\tvec2 st1 = dFdy( vUv.st );\n\t\tfloat scale = sign( st1.t * st0.s - st0.t * st1.s );\n\t\tvec3 S = normalize( ( q0 * st1.t - q1 * st0.t ) * scale );\n\t\tvec3 T = normalize( ( - q0 * st1.s + q1 * st0.s ) * scale );\n\t\tvec3 N = normalize( surf_norm );\n\t\tmat3 tsn = mat3( S, T, N );\n\t\tmapN.xy *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\treturn normalize( tsn * mapN );\n\t}\n#endif",
        bo =
          "#ifdef CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif",
        _o =
          "#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\t#ifdef USE_TANGENT\n\t\tclearcoatNormal = normalize( vTBN * clearcoatMapN );\n\t#else\n\t\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN );\n\t#endif\n#endif",
        xo =
          "#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif",
        Co =
          "vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256.,  256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ));\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w);\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\n\treturn linearClipZ * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn (( near + viewZ ) * far ) / (( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\n}",
        Eo =
          "#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",
        Mo =
          "vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",
        So =
          "#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",
        Fo =
          "#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",
        To =
          "float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",
        Uo =
          "#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",
        Qo =
          "#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\n\t\tbool inFrustum = all( inFrustumVec );\n\t\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\n\t\tbool frustumTest = all( frustumTestVec );\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), \n\t\t\t\t\t\t  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t  f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), \n\t\t\t\t\t\t  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t  f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif",
        Lo =
          "#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",
        Io =
          "#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * worldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * worldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * worldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n#endif",
        Ho =
          "float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",
        Oo =
          "#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",
        Ro =
          "#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\t#ifdef BONE_TEXTURE\n\t\tuniform highp sampler2D boneTexture;\n\t\tuniform int boneTextureSize;\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tfloat j = i * 4.0;\n\t\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\t\ty = dy * ( y + 0.5 );\n\t\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\t\treturn bone;\n\t\t}\n\t#else\n\t\tuniform mat4 boneMatrices[ MAX_BONES ];\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tmat4 bone = boneMatrices[ int(i) ];\n\t\t\treturn bone;\n\t\t}\n\t#endif\n#endif",
        Po =
          "#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",
        Do =
          "#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix  = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",
        No =
          "float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",
        ko = "#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",
        Go =
          "#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",
        Vo =
          "#ifndef saturate\n#define saturate(a) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nuniform float toneMappingWhitePoint;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\n#define Uncharted2Helper( x ) max( ( ( x * ( 0.15 * x + 0.10 * 0.50 ) + 0.20 * 0.02 ) / ( x * ( 0.15 * x + 0.50 ) + 0.20 * 0.30 ) ) - 0.02 / 0.30, vec3( 0.0 ) )\nvec3 Uncharted2ToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( Uncharted2Helper( color ) / Uncharted2Helper( vec3( toneMappingWhitePoint ) ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( ( color * ( 2.51 * color + 0.03 ) ) / ( color * ( 2.43 * color + 0.59 ) + 0.14 ) );\n}",
        zo =
          "#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\n\tvarying vec2 vUv;\n#endif",
        jo =
          "#ifdef USE_UV\n\t#ifdef UVS_VERTEX_ONLY\n\t\tvec2 vUv;\n\t#else\n\t\tvarying vec2 vUv;\n\t#endif\n\tuniform mat3 uvTransform;\n#endif",
        Ko =
          "#ifdef USE_UV\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n#endif",
        Wo =
          "#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvarying vec2 vUv2;\n#endif",
        Xo =
          "#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tattribute vec2 uv2;\n\tvarying vec2 vUv2;\n\tuniform mat3 uv2Transform;\n#endif",
        Yo =
          "#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\n#endif",
        Jo =
          "#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP )\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif",
        qo =
          "uniform sampler2D t2D;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\tgl_FragColor = mapTexelToLinear( texColor );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n}",
        Zo =
          "varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",
        $o =
          "#include <envmap_common_pars_fragment>\nuniform float opacity;\nvarying vec3 vWorldDirection;\n#include <cube_uv_reflection_fragment>\nvoid main() {\n\tvec3 vReflect = vWorldDirection;\n\t#include <envmap_fragment>\n\tgl_FragColor = envColor;\n\tgl_FragColor.a *= opacity;\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n}",
        ea =
          "varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\tgl_Position.z = gl_Position.w;\n}",
        ta =
          "#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <logdepthbuf_fragment>\n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}",
        na =
          "#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvHighPrecisionZW = gl_Position.zw;\n}",
        ra =
          "#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main () {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",
        ia =
          "#define DISTANCE\nvarying vec3 vWorldPosition;\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\tvWorldPosition = worldPosition.xyz;\n}",
        Aa =
          "uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tvec4 texColor = texture2D( tEquirect, sampleUV );\n\tgl_FragColor = mapTexelToLinear( texColor );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n}",
        oa =
          "varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n}",
        aa =
          "uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <color_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}",
        sa =
          "uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include <color_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}",
        ca =
          "uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <fog_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\n\t\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\t\treflectedLight.indirectDiffuse += lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include <aomap_fragment>\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",
        ua =
          "#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_ENVMAP\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <envmap_vertex>\n\t#include <fog_vertex>\n}",
        la =
          "uniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <fog_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\t#include <emissivemap_fragment>\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack;\n\t#else\n\t\treflectedLight.indirectDiffuse += vIndirectFront;\n\t#endif\n\t#include <lightmap_fragment>\n\treflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\n\t#else\n\t\treflectedLight.directDiffuse = vLightFront;\n\t#endif\n\treflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",
        ha =
          "#define LAMBERT\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <lights_lambert_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",
        fa =
          "#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t\tmatcapColor = matcapTexelToLinear( matcapColor );\n\t#else\n\t\tvec4 matcapColor = vec4( 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",
        da =
          "#define MATCAP\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <color_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#ifndef FLAT_SHADED\n\t\tvNormal = normalize( transformedNormal );\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n\tvViewPosition = - mvPosition.xyz;\n}",
        pa =
          "#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <gradientmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <lights_toon_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_toon_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",
        ga =
          "#define TOON\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",
        ma =
          "#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <lights_phong_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_phong_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",
        va =
          "#define PHONG\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",
        ya =
          "#define STANDARD\n#ifdef PHYSICAL\n\t#define REFLECTIVITY\n\t#define CLEARCOAT\n\t#define TRANSPARENCY\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef TRANSPARENCY\n\tuniform float transparency;\n#endif\n#ifdef REFLECTIVITY\n\tuniform float reflectivity;\n#endif\n#ifdef CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheen;\n#endif\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <bsdfs>\n#include <cube_uv_reflection_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_physical_pars_fragment>\n#include <fog_pars_fragment>\n#include <lights_pars_begin>\n#include <lights_physical_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <clearcoat_pars_fragment>\n#include <roughnessmap_pars_fragment>\n#include <metalnessmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <roughnessmap_fragment>\n\t#include <metalnessmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <clearcoat_normal_fragment_begin>\n\t#include <clearcoat_normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_physical_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#ifdef TRANSPARENCY\n\t\tdiffuseColor.a *= saturate( 1. - transparency + linearToRelativeLuminance( reflectedLight.directSpecular + reflectedLight.indirectSpecular ) );\n\t#endif\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",
        wa =
          "#define STANDARD\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",
        Ba =
          "#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include <packing>\n#include <uv_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\t#include <logdepthbuf_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n}",
        ba =
          "#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",
        _a =
          "uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <color_pars_fragment>\n#include <map_particle_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_particle_fragment>\n\t#include <color_fragment>\n\t#include <alphatest_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}",
        xa =
          "uniform float size;\nuniform float scale;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <color_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <project_vertex>\n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <fog_vertex>\n}",
        Ca =
          "uniform vec3 color;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\nvoid main() {\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}",
        Ea =
          "#include <fog_pars_vertex>\n#include <shadowmap_pars_vertex>\nvoid main() {\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",
        Ma =
          "uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}",
        Sa =
          "uniform float rotation;\nuniform vec2 center;\n#include <common>\n#include <uv_pars_vertex>\n#include <fog_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}",
        Fa = {
          alphamap_fragment: cA,
          alphamap_pars_fragment: uA,
          alphatest_fragment: lA,
          aomap_fragment: hA,
          aomap_pars_fragment: fA,
          begin_vertex: dA,
          beginnormal_vertex: pA,
          bsdfs: gA,
          bumpmap_pars_fragment: mA,
          clipping_planes_fragment: vA,
          clipping_planes_pars_fragment: yA,
          clipping_planes_pars_vertex: wA,
          clipping_planes_vertex: BA,
          color_fragment: bA,
          color_pars_fragment: _A,
          color_pars_vertex: xA,
          color_vertex: CA,
          common: EA,
          cube_uv_reflection_fragment: MA,
          defaultnormal_vertex: SA,
          displacementmap_pars_vertex: FA,
          displacementmap_vertex: TA,
          emissivemap_fragment: UA,
          emissivemap_pars_fragment: QA,
          encodings_fragment: LA,
          encodings_pars_fragment: IA,
          envmap_fragment: HA,
          envmap_common_pars_fragment: OA,
          envmap_pars_fragment: RA,
          envmap_pars_vertex: PA,
          envmap_physical_pars_fragment: YA,
          envmap_vertex: DA,
          fog_vertex: NA,
          fog_pars_vertex: kA,
          fog_fragment: GA,
          fog_pars_fragment: VA,
          gradientmap_pars_fragment: zA,
          lightmap_fragment: jA,
          lightmap_pars_fragment: KA,
          lights_lambert_vertex: WA,
          lights_pars_begin: XA,
          lights_toon_fragment: JA,
          lights_toon_pars_fragment: qA,
          lights_phong_fragment: ZA,
          lights_phong_pars_fragment: $A,
          lights_physical_fragment: eo,
          lights_physical_pars_fragment: to,
          lights_fragment_begin: no,
          lights_fragment_maps: ro,
          lights_fragment_end: io,
          logdepthbuf_fragment: Ao,
          logdepthbuf_pars_fragment: oo,
          logdepthbuf_pars_vertex: ao,
          logdepthbuf_vertex: so,
          map_fragment: co,
          map_pars_fragment: uo,
          map_particle_fragment: lo,
          map_particle_pars_fragment: ho,
          metalnessmap_fragment: fo,
          metalnessmap_pars_fragment: po,
          morphnormal_vertex: go,
          morphtarget_pars_vertex: mo,
          morphtarget_vertex: vo,
          normal_fragment_begin: yo,
          normal_fragment_maps: wo,
          normalmap_pars_fragment: Bo,
          clearcoat_normal_fragment_begin: bo,
          clearcoat_normal_fragment_maps: _o,
          clearcoat_pars_fragment: xo,
          packing: Co,
          premultiplied_alpha_fragment: Eo,
          project_vertex: Mo,
          dithering_fragment: So,
          dithering_pars_fragment: Fo,
          roughnessmap_fragment: To,
          roughnessmap_pars_fragment: Uo,
          shadowmap_pars_fragment: Qo,
          shadowmap_pars_vertex: Lo,
          shadowmap_vertex: Io,
          shadowmask_pars_fragment: Ho,
          skinbase_vertex: Oo,
          skinning_pars_vertex: Ro,
          skinning_vertex: Po,
          skinnormal_vertex: Do,
          specularmap_fragment: No,
          specularmap_pars_fragment: ko,
          tonemapping_fragment: Go,
          tonemapping_pars_fragment: Vo,
          uv_pars_fragment: zo,
          uv_pars_vertex: jo,
          uv_vertex: Ko,
          uv2_pars_fragment: Wo,
          uv2_pars_vertex: Xo,
          uv2_vertex: Yo,
          worldpos_vertex: Jo,
          background_frag: qo,
          background_vert: Zo,
          cube_frag: $o,
          cube_vert: ea,
          depth_frag: ta,
          depth_vert: na,
          distanceRGBA_frag: ra,
          distanceRGBA_vert: ia,
          equirect_frag: Aa,
          equirect_vert: oa,
          linedashed_frag: aa,
          linedashed_vert: sa,
          meshbasic_frag: ca,
          meshbasic_vert: ua,
          meshlambert_frag: la,
          meshlambert_vert: ha,
          meshmatcap_frag: fa,
          meshmatcap_vert: da,
          meshtoon_frag: pa,
          meshtoon_vert: ga,
          meshphong_frag: ma,
          meshphong_vert: va,
          meshphysical_frag: ya,
          meshphysical_vert: wa,
          normal_frag: Ba,
          normal_vert: ba,
          points_frag: _a,
          points_vert: xa,
          shadow_frag: Ca,
          shadow_vert: Ea,
          sprite_frag: Ma,
          sprite_vert: Sa,
        },
        Ta = {
          basic: {
            uniforms: Vi([
              iA.common,
              iA.specularmap,
              iA.envmap,
              iA.aomap,
              iA.lightmap,
              iA.fog,
            ]),
            vertexShader: Fa.meshbasic_vert,
            fragmentShader: Fa.meshbasic_frag,
          },
          lambert: {
            uniforms: Vi([
              iA.common,
              iA.specularmap,
              iA.envmap,
              iA.aomap,
              iA.lightmap,
              iA.emissivemap,
              iA.fog,
              iA.lights,
              { emissive: { value: new Nr(0) } },
            ]),
            vertexShader: Fa.meshlambert_vert,
            fragmentShader: Fa.meshlambert_frag,
          },
          phong: {
            uniforms: Vi([
              iA.common,
              iA.specularmap,
              iA.envmap,
              iA.aomap,
              iA.lightmap,
              iA.emissivemap,
              iA.bumpmap,
              iA.normalmap,
              iA.displacementmap,
              iA.fog,
              iA.lights,
              {
                emissive: { value: new Nr(0) },
                specular: { value: new Nr(1118481) },
                shininess: { value: 30 },
              },
            ]),
            vertexShader: Fa.meshphong_vert,
            fragmentShader: Fa.meshphong_frag,
          },
          standard: {
            uniforms: Vi([
              iA.common,
              iA.envmap,
              iA.aomap,
              iA.lightmap,
              iA.emissivemap,
              iA.bumpmap,
              iA.normalmap,
              iA.displacementmap,
              iA.roughnessmap,
              iA.metalnessmap,
              iA.fog,
              iA.lights,
              {
                emissive: { value: new Nr(0) },
                roughness: { value: 1 },
                metalness: { value: 0 },
                envMapIntensity: { value: 1 },
              },
            ]),
            vertexShader: Fa.meshphysical_vert,
            fragmentShader: Fa.meshphysical_frag,
          },
          toon: {
            uniforms: Vi([
              iA.common,
              iA.specularmap,
              iA.aomap,
              iA.lightmap,
              iA.emissivemap,
              iA.bumpmap,
              iA.normalmap,
              iA.displacementmap,
              iA.gradientmap,
              iA.fog,
              iA.lights,
              {
                emissive: { value: new Nr(0) },
                specular: { value: new Nr(1118481) },
                shininess: { value: 30 },
              },
            ]),
            vertexShader: Fa.meshtoon_vert,
            fragmentShader: Fa.meshtoon_frag,
          },
          matcap: {
            uniforms: Vi([
              iA.common,
              iA.bumpmap,
              iA.normalmap,
              iA.displacementmap,
              iA.fog,
              { matcap: { value: null } },
            ]),
            vertexShader: Fa.meshmatcap_vert,
            fragmentShader: Fa.meshmatcap_frag,
          },
          points: {
            uniforms: Vi([iA.points, iA.fog]),
            vertexShader: Fa.points_vert,
            fragmentShader: Fa.points_frag,
          },
          dashed: {
            uniforms: Vi([
              iA.common,
              iA.fog,
              {
                scale: { value: 1 },
                dashSize: { value: 1 },
                totalSize: { value: 2 },
              },
            ]),
            vertexShader: Fa.linedashed_vert,
            fragmentShader: Fa.linedashed_frag,
          },
          depth: {
            uniforms: Vi([iA.common, iA.displacementmap]),
            vertexShader: Fa.depth_vert,
            fragmentShader: Fa.depth_frag,
          },
          normal: {
            uniforms: Vi([
              iA.common,
              iA.bumpmap,
              iA.normalmap,
              iA.displacementmap,
              { opacity: { value: 1 } },
            ]),
            vertexShader: Fa.normal_vert,
            fragmentShader: Fa.normal_frag,
          },
          sprite: {
            uniforms: Vi([iA.sprite, iA.fog]),
            vertexShader: Fa.sprite_vert,
            fragmentShader: Fa.sprite_frag,
          },
          background: {
            uniforms: {
              uvTransform: { value: new fn() },
              t2D: { value: null },
            },
            vertexShader: Fa.background_vert,
            fragmentShader: Fa.background_frag,
          },
          cube: {
            uniforms: Vi([iA.envmap, { opacity: { value: 1 } }]),
            vertexShader: Fa.cube_vert,
            fragmentShader: Fa.cube_frag,
          },
          equirect: {
            uniforms: { tEquirect: { value: null } },
            vertexShader: Fa.equirect_vert,
            fragmentShader: Fa.equirect_frag,
          },
          distanceRGBA: {
            uniforms: Vi([
              iA.common,
              iA.displacementmap,
              {
                referencePosition: { value: new _n() },
                nearDistance: { value: 1 },
                farDistance: { value: 1e3 },
              },
            ]),
            vertexShader: Fa.distanceRGBA_vert,
            fragmentShader: Fa.distanceRGBA_frag,
          },
          shadow: {
            uniforms: Vi([
              iA.lights,
              iA.fog,
              { color: { value: new Nr(0) }, opacity: { value: 1 } },
            ]),
            vertexShader: Fa.shadow_vert,
            fragmentShader: Fa.shadow_frag,
          },
        };
      function Ua(e, t, n, r) {
        var i,
          A,
          o = new Nr(0),
          a = 0,
          s = null,
          c = 0,
          u = null;
        function l(t, r, l, p) {
          var g = r.background,
            m = e.xr,
            v = m.getSession && m.getSession();
          if (
            (v && "additive" === v.environmentBlendMode && (g = null),
            null === g ? d(o, a) : g && g.isColor && (d(g, 1), (p = !0)),
            (e.autoClear || p) &&
              e.clear(e.autoClearColor, e.autoClearDepth, e.autoClearStencil),
            g &&
              (g.isCubeTexture ||
                g.isWebGLCubeRenderTarget ||
                g.mapping === ae))
          ) {
            void 0 === A &&
              ((A = new Qi(
                new ki(1, 1, 1),
                new Wi({
                  type: "BackgroundCubeMaterial",
                  uniforms: Gi(Ta.cube.uniforms),
                  vertexShader: Ta.cube.vertexShader,
                  fragmentShader: Ta.cube.fragmentShader,
                  side: f,
                  depthTest: !1,
                  depthWrite: !1,
                  fog: !1,
                }),
              )),
              A.geometry.deleteAttribute("normal"),
              A.geometry.deleteAttribute("uv"),
              (A.onBeforeRender = function (e, t, n) {
                this.matrixWorld.copyPosition(n.matrixWorld);
              }),
              Object.defineProperty(A.material, "envMap", {
                get: function () {
                  return this.uniforms.envMap.value;
                },
              }),
              n.update(A));
            var y = g.isWebGLCubeRenderTarget ? g.texture : g;
            ((A.material.uniforms.envMap.value = y),
              (A.material.uniforms.flipEnvMap.value = y.isCubeTexture ? -1 : 1),
              (s === g && c === y.version && u === e.toneMapping) ||
                ((A.material.needsUpdate = !0),
                (s = g),
                (c = y.version),
                (u = e.toneMapping)),
              t.unshift(A, A.geometry, A.material, 0, 0, null));
          } else
            g &&
              g.isTexture &&
              (void 0 === i &&
                ((i = new Qi(
                  new sA(2, 2),
                  new Wi({
                    type: "BackgroundMaterial",
                    uniforms: Gi(Ta.background.uniforms),
                    vertexShader: Ta.background.vertexShader,
                    fragmentShader: Ta.background.fragmentShader,
                    side: h,
                    depthTest: !1,
                    depthWrite: !1,
                    fog: !1,
                  }),
                )),
                i.geometry.deleteAttribute("normal"),
                Object.defineProperty(i.material, "map", {
                  get: function () {
                    return this.uniforms.t2D.value;
                  },
                }),
                n.update(i)),
              (i.material.uniforms.t2D.value = g),
              !0 === g.matrixAutoUpdate && g.updateMatrix(),
              i.material.uniforms.uvTransform.value.copy(g.matrix),
              (s === g && c === g.version && u === e.toneMapping) ||
                ((i.material.needsUpdate = !0),
                (s = g),
                (c = g.version),
                (u = e.toneMapping)),
              t.unshift(i, i.geometry, i.material, 0, 0, null));
        }
        function d(e, n) {
          t.buffers.color.setClear(e.r, e.g, e.b, n, r);
        }
        return {
          getClearColor: function () {
            return o;
          },
          setClearColor: function (e, t) {
            (o.set(e), (a = void 0 !== t ? t : 1), d(o, a));
          },
          getClearAlpha: function () {
            return a;
          },
          setClearAlpha: function (e) {
            ((a = e), d(o, a));
          },
          render: l,
        };
      }
      function Qa(e, t, n, r) {
        var i,
          A = r.isWebGL2;
        function o(e) {
          i = e;
        }
        function a(t, r) {
          (e.drawArrays(i, t, r), n.update(r, i));
        }
        function s(r, o, a, s) {
          if (0 !== s) {
            var c, u;
            if (A) ((c = e), (u = "drawArraysInstanced"));
            else if (
              ((c = t.get("ANGLE_instanced_arrays")),
              (u = "drawArraysInstancedANGLE"),
              null === c)
            )
              return void console.log(
                "THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.",
              );
            (c[u](i, o, a, s), n.update(a, i, s));
          }
        }
        ((this.setMode = o), (this.render = a), (this.renderInstances = s));
      }
      function La(e, t, n) {
        var r;
        function i() {
          if (void 0 !== r) return r;
          var n = t.get("EXT_texture_filter_anisotropic");
          return (
            (r =
              null !== n
                ? e.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)
                : 0),
            r
          );
        }
        function A(t) {
          if ("highp" === t) {
            if (
              e.getShaderPrecisionFormat(35633, 36338).precision > 0 &&
              e.getShaderPrecisionFormat(35632, 36338).precision > 0
            )
              return "highp";
            t = "mediump";
          }
          return "mediump" === t &&
            e.getShaderPrecisionFormat(35633, 36337).precision > 0 &&
            e.getShaderPrecisionFormat(35632, 36337).precision > 0
            ? "mediump"
            : "lowp";
        }
        var o =
            ("undefined" !== typeof WebGL2RenderingContext &&
              e instanceof WebGL2RenderingContext) ||
            ("undefined" !== typeof WebGL2ComputeRenderingContext &&
              e instanceof WebGL2ComputeRenderingContext),
          a = void 0 !== n.precision ? n.precision : "highp",
          s = A(a);
        s !== a &&
          (console.warn(
            "THREE.WebGLRenderer:",
            a,
            "not supported, using",
            s,
            "instead.",
          ),
          (a = s));
        var c = !0 === n.logarithmicDepthBuffer,
          u = e.getParameter(34930),
          l = e.getParameter(35660),
          h = e.getParameter(3379),
          f = e.getParameter(34076),
          d = e.getParameter(34921),
          p = e.getParameter(36347),
          g = e.getParameter(36348),
          m = e.getParameter(36349),
          v = l > 0,
          y = o || !!t.get("OES_texture_float"),
          w = v && y,
          B = o ? e.getParameter(36183) : 0;
        return {
          isWebGL2: o,
          getMaxAnisotropy: i,
          getMaxPrecision: A,
          precision: a,
          logarithmicDepthBuffer: c,
          maxTextures: u,
          maxVertexTextures: l,
          maxTextureSize: h,
          maxCubemapSize: f,
          maxAttributes: d,
          maxVertexUniforms: p,
          maxVaryings: g,
          maxFragmentUniforms: m,
          vertexTextures: v,
          floatFragmentTextures: y,
          floatVertexTextures: w,
          maxSamples: B,
        };
      }
      function Ia() {
        var e = this,
          t = null,
          n = 0,
          r = !1,
          i = !1,
          A = new Cr(),
          o = new fn(),
          a = { value: null, needsUpdate: !1 };
        function s() {
          (a.value !== t && ((a.value = t), (a.needsUpdate = n > 0)),
            (e.numPlanes = n),
            (e.numIntersection = 0));
        }
        function c(t, n, r, i) {
          var s = null !== t ? t.length : 0,
            c = null;
          if (0 !== s) {
            if (((c = a.value), !0 !== i || null === c)) {
              var u = r + 4 * s,
                l = n.matrixWorldInverse;
              (o.getNormalMatrix(l),
                (null === c || c.length < u) && (c = new Float32Array(u)));
              for (var h = 0, f = r; h !== s; ++h, f += 4)
                (A.copy(t[h]).applyMatrix4(l, o),
                  A.normal.toArray(c, f),
                  (c[f + 3] = A.constant));
            }
            ((a.value = c), (a.needsUpdate = !0));
          }
          return ((e.numPlanes = s), (e.numIntersection = 0), c);
        }
        ((this.uniform = a),
          (this.numPlanes = 0),
          (this.numIntersection = 0),
          (this.init = function (e, i, A) {
            var o = 0 !== e.length || i || 0 !== n || r;
            return ((r = i), (t = c(e, A, 0)), (n = e.length), o);
          }),
          (this.beginShadows = function () {
            ((i = !0), c(null));
          }),
          (this.endShadows = function () {
            ((i = !1), s());
          }),
          (this.setState = function (e, A, o, u, l, h) {
            if (!r || null === e || 0 === e.length || (i && !o))
              i ? c(null) : s();
            else {
              var f = i ? 0 : n,
                d = 4 * f,
                p = l.clippingState || null;
              ((a.value = p), (p = c(e, u, d, h)));
              for (var g = 0; g !== d; ++g) p[g] = t[g];
              ((l.clippingState = p),
                (this.numIntersection = A ? this.numPlanes : 0),
                (this.numPlanes += f));
            }
          }));
      }
      function Ha(e) {
        var t = {};
        return {
          get: function (n) {
            if (void 0 !== t[n]) return t[n];
            var r;
            switch (n) {
              case "WEBGL_depth_texture":
                r =
                  e.getExtension("WEBGL_depth_texture") ||
                  e.getExtension("MOZ_WEBGL_depth_texture") ||
                  e.getExtension("WEBKIT_WEBGL_depth_texture");
                break;
              case "EXT_texture_filter_anisotropic":
                r =
                  e.getExtension("EXT_texture_filter_anisotropic") ||
                  e.getExtension("MOZ_EXT_texture_filter_anisotropic") ||
                  e.getExtension("WEBKIT_EXT_texture_filter_anisotropic");
                break;
              case "WEBGL_compressed_texture_s3tc":
                r =
                  e.getExtension("WEBGL_compressed_texture_s3tc") ||
                  e.getExtension("MOZ_WEBGL_compressed_texture_s3tc") ||
                  e.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");
                break;
              case "WEBGL_compressed_texture_pvrtc":
                r =
                  e.getExtension("WEBGL_compressed_texture_pvrtc") ||
                  e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");
                break;
              default:
                r = e.getExtension(n);
            }
            return (
              null === r &&
                console.warn(
                  "THREE.WebGLRenderer: " + n + " extension not supported.",
                ),
              (t[n] = r),
              r
            );
          },
        };
      }
      function Oa(e, t, n) {
        var r = new WeakMap(),
          i = new WeakMap();
        function A(e) {
          var o = e.target,
            a = r.get(o);
          for (var s in (null !== a.index && t.remove(a.index), a.attributes))
            t.remove(a.attributes[s]);
          (o.removeEventListener("dispose", A), r.delete(o));
          var c = i.get(a);
          (c && (t.remove(c), i.delete(a)), n.memory.geometries--);
        }
        function o(e, t) {
          var i = r.get(t);
          return (
            i ||
            (t.addEventListener("dispose", A),
            t.isBufferGeometry
              ? (i = t)
              : t.isGeometry &&
                (void 0 === t._bufferGeometry &&
                  (t._bufferGeometry = new di().setFromObject(e)),
                (i = t._bufferGeometry)),
            r.set(t, i),
            n.memory.geometries++,
            i)
          );
        }
        function a(e) {
          var n = e.index,
            r = e.attributes;
          for (var i in (null !== n && t.update(n, 34963), r))
            t.update(r[i], 34962);
          var A = e.morphAttributes;
          for (var i in A)
            for (var o = A[i], a = 0, s = o.length; a < s; a++)
              t.update(o[a], 34962);
        }
        function s(e) {
          var n = [],
            r = e.index,
            A = e.attributes.position,
            o = 0;
          if (null !== r) {
            var a = r.array;
            o = r.version;
            for (var s = 0, c = a.length; s < c; s += 3) {
              var u = a[s + 0],
                l = a[s + 1],
                h = a[s + 2];
              n.push(u, l, l, h, h, u);
            }
          } else {
            a = A.array;
            o = A.version;
            for (s = 0, c = a.length / 3 - 1; s < c; s += 3) {
              ((u = s + 0), (l = s + 1), (h = s + 2));
              n.push(u, l, l, h, h, u);
            }
          }
          var f = new (oi(n) > 65535 ? ni : ei)(n, 1);
          ((f.version = o), t.update(f, 34963));
          var d = i.get(e);
          (d && t.remove(d), i.set(e, f));
        }
        function c(e) {
          var t = i.get(e);
          if (t) {
            var n = e.index;
            null !== n && t.version < n.version && s(e);
          } else s(e);
          return i.get(e);
        }
        return { get: o, update: a, getWireframeAttribute: c };
      }
      function Ra(e, t, n, r) {
        var i,
          A,
          o,
          a = r.isWebGL2;
        function s(e) {
          i = e;
        }
        function c(e) {
          ((A = e.type), (o = e.bytesPerElement));
        }
        function u(t, r) {
          (e.drawElements(i, r, A, t * o), n.update(r, i));
        }
        function l(r, s, c, u) {
          if (0 !== u) {
            var l, h;
            if (a) ((l = e), (h = "drawElementsInstanced"));
            else if (
              ((l = t.get("ANGLE_instanced_arrays")),
              (h = "drawElementsInstancedANGLE"),
              null === l)
            )
              return void console.log(
                "THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.",
              );
            (l[h](i, c, A, s * o, u), n.update(c, i, u));
          }
        }
        ((this.setMode = s),
          (this.setIndex = c),
          (this.render = u),
          (this.renderInstances = l));
      }
      function Pa(e) {
        var t = { geometries: 0, textures: 0 },
          n = { frame: 0, calls: 0, triangles: 0, points: 0, lines: 0 };
        function r(e, t, r) {
          switch (((r = r || 1), n.calls++, t)) {
            case 4:
              n.triangles += r * (e / 3);
              break;
            case 1:
              n.lines += r * (e / 2);
              break;
            case 3:
              n.lines += r * (e - 1);
              break;
            case 2:
              n.lines += r * e;
              break;
            case 0:
              n.points += r * e;
              break;
            default:
              console.log("THREE.WebGLInfo: Unknown draw mode:", t);
              break;
          }
        }
        function i() {
          (n.frame++,
            (n.calls = 0),
            (n.triangles = 0),
            (n.points = 0),
            (n.lines = 0));
        }
        return {
          memory: t,
          render: n,
          programs: null,
          autoReset: !0,
          reset: i,
          update: r,
        };
      }
      function Da(e, t) {
        return Math.abs(t[1]) - Math.abs(e[1]);
      }
      function Na(e) {
        var t = {},
          n = new Float32Array(8);
        function r(r, i, A, o) {
          var a = r.morphTargetInfluences,
            s = void 0 === a ? 0 : a.length,
            c = t[i.id];
          if (void 0 === c) {
            c = [];
            for (var u = 0; u < s; u++) c[u] = [u, 0];
            t[i.id] = c;
          }
          var l = A.morphTargets && i.morphAttributes.position,
            h = A.morphNormals && i.morphAttributes.normal;
          for (u = 0; u < s; u++) {
            var f = c[u];
            0 !== f[1] &&
              (l && i.deleteAttribute("morphTarget" + u),
              h && i.deleteAttribute("morphNormal" + u));
          }
          for (u = 0; u < s; u++) {
            f = c[u];
            ((f[0] = u), (f[1] = a[u]));
          }
          c.sort(Da);
          var d = 0;
          for (u = 0; u < 8; u++) {
            f = c[u];
            if (f) {
              var p = f[0],
                g = f[1];
              if (g) {
                (l && i.setAttribute("morphTarget" + u, l[p]),
                  h && i.setAttribute("morphNormal" + u, h[p]),
                  (n[u] = g),
                  (d += g));
                continue;
              }
            }
            n[u] = 0;
          }
          var m = i.morphTargetsRelative ? 1 : 1 - d;
          (o.getUniforms().setValue(e, "morphTargetBaseInfluence", m),
            o.getUniforms().setValue(e, "morphTargetInfluences", n));
        }
        return { update: r };
      }
      function ka(e, t, n, r) {
        var i = new WeakMap();
        function A(e) {
          var A = r.render.frame,
            o = e.geometry,
            a = t.get(e, o);
          return (
            i.get(a) !== A &&
              (o.isGeometry && a.updateFromObject(e), t.update(a), i.set(a, A)),
            e.isInstancedMesh && n.update(e.instanceMatrix, 34962),
            a
          );
        }
        function o() {
          i = new WeakMap();
        }
        return { update: A, dispose: o };
      }
      function Ga(e, t, n, r, i, A, o, a, s, c) {
        ((e = void 0 !== e ? e : []),
          (t = void 0 !== t ? t : ne),
          (o = void 0 !== o ? o : Ue),
          gn.call(this, e, t, n, r, i, A, o, a, s, c),
          (this.flipY = !1));
      }
      function Va(e, t, n, r) {
        (gn.call(this, null),
          (this.image = {
            data: e || null,
            width: t || 1,
            height: n || 1,
            depth: r || 1,
          }),
          (this.magFilter = he),
          (this.minFilter = he),
          (this.wrapR = ue),
          (this.generateMipmaps = !1),
          (this.flipY = !1),
          (this.needsUpdate = !0));
      }
      function za(e, t, n, r) {
        (gn.call(this, null),
          (this.image = {
            data: e || null,
            width: t || 1,
            height: n || 1,
            depth: r || 1,
          }),
          (this.magFilter = he),
          (this.minFilter = he),
          (this.wrapR = ue),
          (this.generateMipmaps = !1),
          (this.flipY = !1),
          (this.needsUpdate = !0));
      }
      ((Ta.physical = {
        uniforms: Vi([
          Ta.standard.uniforms,
          {
            clearcoat: { value: 0 },
            clearcoatMap: { value: null },
            clearcoatRoughness: { value: 0 },
            clearcoatRoughnessMap: { value: null },
            clearcoatNormalScale: { value: new hn(1, 1) },
            clearcoatNormalMap: { value: null },
            sheen: { value: new Nr(0) },
            transparency: { value: 0 },
          },
        ]),
        vertexShader: Fa.meshphysical_vert,
        fragmentShader: Fa.meshphysical_frag,
      }),
        (Ga.prototype = Object.create(gn.prototype)),
        (Ga.prototype.constructor = Ga),
        (Ga.prototype.isCubeTexture = !0),
        Object.defineProperty(Ga.prototype, "images", {
          get: function () {
            return this.image;
          },
          set: function (e) {
            this.image = e;
          },
        }),
        (Va.prototype = Object.create(gn.prototype)),
        (Va.prototype.constructor = Va),
        (Va.prototype.isDataTexture2DArray = !0),
        (za.prototype = Object.create(gn.prototype)),
        (za.prototype.constructor = za),
        (za.prototype.isDataTexture3D = !0));
      var ja = new gn(),
        Ka = new Va(),
        Wa = new za(),
        Xa = new Ga(),
        Ya = [],
        Ja = [],
        qa = new Float32Array(16),
        Za = new Float32Array(9),
        $a = new Float32Array(4);
      function es(e, t, n) {
        var r = e[0];
        if (r <= 0 || r > 0) return e;
        var i = t * n,
          A = Ya[i];
        if (
          (void 0 === A && ((A = new Float32Array(i)), (Ya[i] = A)), 0 !== t)
        ) {
          r.toArray(A, 0);
          for (var o = 1, a = 0; o !== t; ++o) ((a += n), e[o].toArray(A, a));
        }
        return A;
      }
      function ts(e, t) {
        if (e.length !== t.length) return !1;
        for (var n = 0, r = e.length; n < r; n++) if (e[n] !== t[n]) return !1;
        return !0;
      }
      function ns(e, t) {
        for (var n = 0, r = t.length; n < r; n++) e[n] = t[n];
      }
      function rs(e, t) {
        var n = Ja[t];
        void 0 === n && ((n = new Int32Array(t)), (Ja[t] = n));
        for (var r = 0; r !== t; ++r) n[r] = e.allocateTextureUnit();
        return n;
      }
      function is(e, t) {
        var n = this.cache;
        n[0] !== t && (e.uniform1f(this.addr, t), (n[0] = t));
      }
      function As(e, t) {
        var n = this.cache;
        if (void 0 !== t.x)
          (n[0] === t.x && n[1] === t.y) ||
            (e.uniform2f(this.addr, t.x, t.y), (n[0] = t.x), (n[1] = t.y));
        else {
          if (ts(n, t)) return;
          (e.uniform2fv(this.addr, t), ns(n, t));
        }
      }
      function os(e, t) {
        var n = this.cache;
        if (void 0 !== t.x)
          (n[0] === t.x && n[1] === t.y && n[2] === t.z) ||
            (e.uniform3f(this.addr, t.x, t.y, t.z),
            (n[0] = t.x),
            (n[1] = t.y),
            (n[2] = t.z));
        else if (void 0 !== t.r)
          (n[0] === t.r && n[1] === t.g && n[2] === t.b) ||
            (e.uniform3f(this.addr, t.r, t.g, t.b),
            (n[0] = t.r),
            (n[1] = t.g),
            (n[2] = t.b));
        else {
          if (ts(n, t)) return;
          (e.uniform3fv(this.addr, t), ns(n, t));
        }
      }
      function as(e, t) {
        var n = this.cache;
        if (void 0 !== t.x)
          (n[0] === t.x && n[1] === t.y && n[2] === t.z && n[3] === t.w) ||
            (e.uniform4f(this.addr, t.x, t.y, t.z, t.w),
            (n[0] = t.x),
            (n[1] = t.y),
            (n[2] = t.z),
            (n[3] = t.w));
        else {
          if (ts(n, t)) return;
          (e.uniform4fv(this.addr, t), ns(n, t));
        }
      }
      function ss(e, t) {
        var n = this.cache,
          r = t.elements;
        if (void 0 === r) {
          if (ts(n, t)) return;
          (e.uniformMatrix2fv(this.addr, !1, t), ns(n, t));
        } else {
          if (ts(n, r)) return;
          ($a.set(r), e.uniformMatrix2fv(this.addr, !1, $a), ns(n, r));
        }
      }
      function cs(e, t) {
        var n = this.cache,
          r = t.elements;
        if (void 0 === r) {
          if (ts(n, t)) return;
          (e.uniformMatrix3fv(this.addr, !1, t), ns(n, t));
        } else {
          if (ts(n, r)) return;
          (Za.set(r), e.uniformMatrix3fv(this.addr, !1, Za), ns(n, r));
        }
      }
      function us(e, t) {
        var n = this.cache,
          r = t.elements;
        if (void 0 === r) {
          if (ts(n, t)) return;
          (e.uniformMatrix4fv(this.addr, !1, t), ns(n, t));
        } else {
          if (ts(n, r)) return;
          (qa.set(r), e.uniformMatrix4fv(this.addr, !1, qa), ns(n, r));
        }
      }
      function ls(e, t, n) {
        var r = this.cache,
          i = n.allocateTextureUnit();
        (r[0] !== i && (e.uniform1i(this.addr, i), (r[0] = i)),
          n.safeSetTexture2D(t || ja, i));
      }
      function hs(e, t, n) {
        var r = this.cache,
          i = n.allocateTextureUnit();
        (r[0] !== i && (e.uniform1i(this.addr, i), (r[0] = i)),
          n.setTexture2DArray(t || Ka, i));
      }
      function fs(e, t, n) {
        var r = this.cache,
          i = n.allocateTextureUnit();
        (r[0] !== i && (e.uniform1i(this.addr, i), (r[0] = i)),
          n.setTexture3D(t || Wa, i));
      }
      function ds(e, t, n) {
        var r = this.cache,
          i = n.allocateTextureUnit();
        (r[0] !== i && (e.uniform1i(this.addr, i), (r[0] = i)),
          n.safeSetTextureCube(t || Xa, i));
      }
      function ps(e, t) {
        var n = this.cache;
        n[0] !== t && (e.uniform1i(this.addr, t), (n[0] = t));
      }
      function gs(e, t) {
        var n = this.cache;
        ts(n, t) || (e.uniform2iv(this.addr, t), ns(n, t));
      }
      function ms(e, t) {
        var n = this.cache;
        ts(n, t) || (e.uniform3iv(this.addr, t), ns(n, t));
      }
      function vs(e, t) {
        var n = this.cache;
        ts(n, t) || (e.uniform4iv(this.addr, t), ns(n, t));
      }
      function ys(e, t) {
        var n = this.cache;
        n[0] !== t && (e.uniform1ui(this.addr, t), (n[0] = t));
      }
      function ws(e) {
        switch (e) {
          case 5126:
            return is;
          case 35664:
            return As;
          case 35665:
            return os;
          case 35666:
            return as;
          case 35674:
            return ss;
          case 35675:
            return cs;
          case 35676:
            return us;
          case 5124:
          case 35670:
            return ps;
          case 35667:
          case 35671:
            return gs;
          case 35668:
          case 35672:
            return ms;
          case 35669:
          case 35673:
            return vs;
          case 5125:
            return ys;
          case 35678:
          case 36198:
          case 36298:
          case 36306:
          case 35682:
            return ls;
          case 35679:
          case 36299:
          case 36307:
            return fs;
          case 35680:
          case 36300:
          case 36308:
          case 36293:
            return ds;
          case 36289:
          case 36303:
          case 36311:
          case 36292:
            return hs;
        }
      }
      function Bs(e, t) {
        e.uniform1fv(this.addr, t);
      }
      function bs(e, t) {
        e.uniform1iv(this.addr, t);
      }
      function _s(e, t) {
        e.uniform2iv(this.addr, t);
      }
      function xs(e, t) {
        e.uniform3iv(this.addr, t);
      }
      function Cs(e, t) {
        e.uniform4iv(this.addr, t);
      }
      function Es(e, t) {
        var n = es(t, this.size, 2);
        e.uniform2fv(this.addr, n);
      }
      function Ms(e, t) {
        var n = es(t, this.size, 3);
        e.uniform3fv(this.addr, n);
      }
      function Ss(e, t) {
        var n = es(t, this.size, 4);
        e.uniform4fv(this.addr, n);
      }
      function Fs(e, t) {
        var n = es(t, this.size, 4);
        e.uniformMatrix2fv(this.addr, !1, n);
      }
      function Ts(e, t) {
        var n = es(t, this.size, 9);
        e.uniformMatrix3fv(this.addr, !1, n);
      }
      function Us(e, t) {
        var n = es(t, this.size, 16);
        e.uniformMatrix4fv(this.addr, !1, n);
      }
      function Qs(e, t, n) {
        var r = t.length,
          i = rs(n, r);
        e.uniform1iv(this.addr, i);
        for (var A = 0; A !== r; ++A) n.safeSetTexture2D(t[A] || ja, i[A]);
      }
      function Ls(e, t, n) {
        var r = t.length,
          i = rs(n, r);
        e.uniform1iv(this.addr, i);
        for (var A = 0; A !== r; ++A) n.safeSetTextureCube(t[A] || Xa, i[A]);
      }
      function Is(e) {
        switch (e) {
          case 5126:
            return Bs;
          case 35664:
            return Es;
          case 35665:
            return Ms;
          case 35666:
            return Ss;
          case 35674:
            return Fs;
          case 35675:
            return Ts;
          case 35676:
            return Us;
          case 5124:
          case 35670:
            return bs;
          case 35667:
          case 35671:
            return _s;
          case 35668:
          case 35672:
            return xs;
          case 35669:
          case 35673:
            return Cs;
          case 35678:
          case 36198:
          case 36298:
          case 36306:
          case 35682:
            return Qs;
          case 35680:
          case 36300:
          case 36308:
          case 36293:
            return Ls;
        }
      }
      function Hs(e, t, n) {
        ((this.id = e),
          (this.addr = n),
          (this.cache = []),
          (this.setValue = ws(t.type)));
      }
      function Os(e, t, n) {
        ((this.id = e),
          (this.addr = n),
          (this.cache = []),
          (this.size = t.size),
          (this.setValue = Is(t.type)));
      }
      function Rs(e) {
        ((this.id = e), (this.seq = []), (this.map = {}));
      }
      ((Os.prototype.updateCache = function (e) {
        var t = this.cache;
        (e instanceof Float32Array &&
          t.length !== e.length &&
          (this.cache = new Float32Array(e.length)),
          ns(t, e));
      }),
        (Rs.prototype.setValue = function (e, t, n) {
          for (var r = this.seq, i = 0, A = r.length; i !== A; ++i) {
            var o = r[i];
            o.setValue(e, t[o.id], n);
          }
        }));
      var Ps = /([\w\d_]+)(\])?(\[|\.)?/g;
      function Ds(e, t) {
        (e.seq.push(t), (e.map[t.id] = t));
      }
      function Ns(e, t, n) {
        var r = e.name,
          i = r.length;
        Ps.lastIndex = 0;
        while (1) {
          var A = Ps.exec(r),
            o = Ps.lastIndex,
            a = A[1],
            s = "]" === A[2],
            c = A[3];
          if ((s && (a |= 0), void 0 === c || ("[" === c && o + 2 === i))) {
            Ds(n, void 0 === c ? new Hs(a, e, t) : new Os(a, e, t));
            break;
          }
          var u = n.map,
            l = u[a];
          (void 0 === l && ((l = new Rs(a)), Ds(n, l)), (n = l));
        }
      }
      function ks(e, t) {
        ((this.seq = []), (this.map = {}));
        for (var n = e.getProgramParameter(t, 35718), r = 0; r < n; ++r) {
          var i = e.getActiveUniform(t, r),
            A = e.getUniformLocation(t, i.name);
          Ns(i, A, this);
        }
      }
      function Gs(e, t, n) {
        var r = e.createShader(t);
        return (e.shaderSource(r, n), e.compileShader(r), r);
      }
      ((ks.prototype.setValue = function (e, t, n, r) {
        var i = this.map[t];
        void 0 !== i && i.setValue(e, n, r);
      }),
        (ks.prototype.setOptional = function (e, t, n) {
          var r = t[n];
          void 0 !== r && this.setValue(e, n, r);
        }),
        (ks.upload = function (e, t, n, r) {
          for (var i = 0, A = t.length; i !== A; ++i) {
            var o = t[i],
              a = n[o.id];
            !1 !== a.needsUpdate && o.setValue(e, a.value, r);
          }
        }),
        (ks.seqWithValue = function (e, t) {
          for (var n = [], r = 0, i = e.length; r !== i; ++r) {
            var A = e[r];
            A.id in t && n.push(A);
          }
          return n;
        }));
      var Vs = 0;
      function zs(e) {
        for (var t = e.split("\n"), n = 0; n < t.length; n++)
          t[n] = n + 1 + ": " + t[n];
        return t.join("\n");
      }
      function js(e) {
        switch (e) {
          case zt:
            return ["Linear", "( value )"];
          case jt:
            return ["sRGB", "( value )"];
          case Wt:
            return ["RGBE", "( value )"];
          case Yt:
            return ["RGBM", "( value, 7.0 )"];
          case Jt:
            return ["RGBM", "( value, 16.0 )"];
          case qt:
            return ["RGBD", "( value, 256.0 )"];
          case Kt:
            return ["Gamma", "( value, float( GAMMA_FACTOR ) )"];
          case Xt:
            return ["LogLuv", "( value )"];
          default:
            throw new Error("unsupported encoding: " + e);
        }
      }
      function Ks(e, t, n) {
        var r = e.getShaderParameter(t, 35713),
          i = e.getShaderInfoLog(t).trim();
        if (r && "" === i) return "";
        var A = e.getShaderSource(t);
        return (
          "THREE.WebGLShader: gl.getShaderInfoLog() " + n + "\n" + i + zs(A)
        );
      }
      function Ws(e, t) {
        var n = js(t);
        return (
          "vec4 " +
          e +
          "( vec4 value ) { return " +
          n[0] +
          "ToLinear" +
          n[1] +
          "; }"
        );
      }
      function Xs(e, t) {
        var n = js(t);
        return (
          "vec4 " + e + "( vec4 value ) { return LinearTo" + n[0] + n[1] + "; }"
        );
      }
      function Ys(e, t) {
        var n;
        switch (t) {
          case J:
            n = "Linear";
            break;
          case q:
            n = "Reinhard";
            break;
          case Z:
            n = "Uncharted2";
            break;
          case $:
            n = "OptimizedCineon";
            break;
          case ee:
            n = "ACESFilmic";
            break;
          default:
            throw new Error("unsupported toneMapping: " + t);
        }
        return (
          "vec3 " +
          e +
          "( vec3 color ) { return " +
          n +
          "ToneMapping( color ); }"
        );
      }
      function Js(e) {
        var t = [
          e.extensionDerivatives ||
          e.envMapCubeUV ||
          e.bumpMap ||
          e.tangentSpaceNormalMap ||
          e.clearcoatNormalMap ||
          e.flatShading ||
          "physical" === e.shaderID
            ? "#extension GL_OES_standard_derivatives : enable"
            : "",
          (e.extensionFragDepth || e.logarithmicDepthBuffer) &&
          e.rendererExtensionFragDepth
            ? "#extension GL_EXT_frag_depth : enable"
            : "",
          e.extensionDrawBuffers && e.rendererExtensionDrawBuffers
            ? "#extension GL_EXT_draw_buffers : require"
            : "",
          (e.extensionShaderTextureLOD || e.envMap) &&
          e.rendererExtensionShaderTextureLod
            ? "#extension GL_EXT_shader_texture_lod : enable"
            : "",
        ];
        return t.filter($s).join("\n");
      }
      function qs(e) {
        var t = [];
        for (var n in e) {
          var r = e[n];
          !1 !== r && t.push("#define " + n + " " + r);
        }
        return t.join("\n");
      }
      function Zs(e, t) {
        for (
          var n = {}, r = e.getProgramParameter(t, 35721), i = 0;
          i < r;
          i++
        ) {
          var A = e.getActiveAttrib(t, i),
            o = A.name;
          n[o] = e.getAttribLocation(t, o);
        }
        return n;
      }
      function $s(e) {
        return "" !== e;
      }
      function ec(e, t) {
        return e
          .replace(/NUM_DIR_LIGHTS/g, t.numDirLights)
          .replace(/NUM_SPOT_LIGHTS/g, t.numSpotLights)
          .replace(/NUM_RECT_AREA_LIGHTS/g, t.numRectAreaLights)
          .replace(/NUM_POINT_LIGHTS/g, t.numPointLights)
          .replace(/NUM_HEMI_LIGHTS/g, t.numHemiLights)
          .replace(/NUM_DIR_LIGHT_SHADOWS/g, t.numDirLightShadows)
          .replace(/NUM_SPOT_LIGHT_SHADOWS/g, t.numSpotLightShadows)
          .replace(/NUM_POINT_LIGHT_SHADOWS/g, t.numPointLightShadows);
      }
      function tc(e, t) {
        return e
          .replace(/NUM_CLIPPING_PLANES/g, t.numClippingPlanes)
          .replace(
            /UNION_CLIPPING_PLANES/g,
            t.numClippingPlanes - t.numClipIntersection,
          );
      }
      var nc = /^[ \t]*#include +<([\w\d./]+)>/gm;
      function rc(e) {
        return e.replace(nc, ic);
      }
      function ic(e, t) {
        var n = Fa[t];
        if (void 0 === n)
          throw new Error("Can not resolve #include <" + t + ">");
        return rc(n);
      }
      var Ac =
          /#pragma unroll_loop[\s]+?for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g,
        oc =
          /#pragma unroll_loop_start[\s]+?for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}[\s]+?#pragma unroll_loop_end/g;
      function ac(e) {
        return e.replace(oc, cc).replace(Ac, sc);
      }
      function sc(e, t, n, r) {
        return (
          console.warn(
            "WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead.",
          ),
          cc(e, t, n, r)
        );
      }
      function cc(e, t, n, r) {
        for (var i = "", A = parseInt(t); A < parseInt(n); A++)
          i += r
            .replace(/\[ i \]/g, "[ " + A + " ]")
            .replace(/UNROLLED_LOOP_INDEX/g, A);
        return i;
      }
      function uc(e) {
        var t =
          "precision " +
          e.precision +
          " float;\nprecision " +
          e.precision +
          " int;";
        return (
          "highp" === e.precision
            ? (t += "\n#define HIGH_PRECISION")
            : "mediump" === e.precision
              ? (t += "\n#define MEDIUM_PRECISION")
              : "lowp" === e.precision && (t += "\n#define LOW_PRECISION"),
          t
        );
      }
      function lc(e) {
        var t = "SHADOWMAP_TYPE_BASIC";
        return (
          e.shadowMapType === c
            ? (t = "SHADOWMAP_TYPE_PCF")
            : e.shadowMapType === u
              ? (t = "SHADOWMAP_TYPE_PCF_SOFT")
              : e.shadowMapType === l && (t = "SHADOWMAP_TYPE_VSM"),
          t
        );
      }
      function hc(e) {
        var t = "ENVMAP_TYPE_CUBE";
        if (e.envMap)
          switch (e.envMapMode) {
            case ne:
            case re:
              t = "ENVMAP_TYPE_CUBE";
              break;
            case ae:
            case se:
              t = "ENVMAP_TYPE_CUBE_UV";
              break;
            case ie:
            case Ae:
              t = "ENVMAP_TYPE_EQUIREC";
              break;
            case oe:
              t = "ENVMAP_TYPE_SPHERE";
              break;
          }
        return t;
      }
      function fc(e) {
        var t = "ENVMAP_MODE_REFLECTION";
        if (e.envMap)
          switch (e.envMapMode) {
            case re:
            case Ae:
              t = "ENVMAP_MODE_REFRACTION";
              break;
          }
        return t;
      }
      function dc(e) {
        var t = "ENVMAP_BLENDING_NONE";
        if (e.envMap)
          switch (e.combine) {
            case K:
              t = "ENVMAP_BLENDING_MULTIPLY";
              break;
            case W:
              t = "ENVMAP_BLENDING_MIX";
              break;
            case X:
              t = "ENVMAP_BLENDING_ADD";
              break;
          }
        return t;
      }
      function pc(e, t, n) {
        var r,
          i,
          A = e.getContext(),
          o = n.defines,
          a = n.vertexShader,
          s = n.fragmentShader,
          c = lc(n),
          u = hc(n),
          l = fc(n),
          h = dc(n),
          f = e.gammaFactor > 0 ? e.gammaFactor : 1,
          d = n.isWebGL2 ? "" : Js(n),
          p = qs(o),
          g = A.createProgram();
        if (
          (n.isRawShaderMaterial
            ? ((r = [p].filter($s).join("\n")),
              r.length > 0 && (r += "\n"),
              (i = [d, p].filter($s).join("\n")),
              i.length > 0 && (i += "\n"))
            : ((r = [
                uc(n),
                "#define SHADER_NAME " + n.shaderName,
                p,
                n.instancing ? "#define USE_INSTANCING" : "",
                n.supportsVertexTextures ? "#define VERTEX_TEXTURES" : "",
                "#define GAMMA_FACTOR " + f,
                "#define MAX_BONES " + n.maxBones,
                n.useFog && n.fog ? "#define USE_FOG" : "",
                n.useFog && n.fogExp2 ? "#define FOG_EXP2" : "",
                n.map ? "#define USE_MAP" : "",
                n.envMap ? "#define USE_ENVMAP" : "",
                n.envMap ? "#define " + l : "",
                n.lightMap ? "#define USE_LIGHTMAP" : "",
                n.aoMap ? "#define USE_AOMAP" : "",
                n.emissiveMap ? "#define USE_EMISSIVEMAP" : "",
                n.bumpMap ? "#define USE_BUMPMAP" : "",
                n.normalMap ? "#define USE_NORMALMAP" : "",
                n.normalMap && n.objectSpaceNormalMap
                  ? "#define OBJECTSPACE_NORMALMAP"
                  : "",
                n.normalMap && n.tangentSpaceNormalMap
                  ? "#define TANGENTSPACE_NORMALMAP"
                  : "",
                n.clearcoatMap ? "#define USE_CLEARCOATMAP" : "",
                n.clearcoatRoughnessMap
                  ? "#define USE_CLEARCOAT_ROUGHNESSMAP"
                  : "",
                n.clearcoatNormalMap ? "#define USE_CLEARCOAT_NORMALMAP" : "",
                n.displacementMap && n.supportsVertexTextures
                  ? "#define USE_DISPLACEMENTMAP"
                  : "",
                n.specularMap ? "#define USE_SPECULARMAP" : "",
                n.roughnessMap ? "#define USE_ROUGHNESSMAP" : "",
                n.metalnessMap ? "#define USE_METALNESSMAP" : "",
                n.alphaMap ? "#define USE_ALPHAMAP" : "",
                n.vertexTangents ? "#define USE_TANGENT" : "",
                n.vertexColors ? "#define USE_COLOR" : "",
                n.vertexUvs ? "#define USE_UV" : "",
                n.uvsVertexOnly ? "#define UVS_VERTEX_ONLY" : "",
                n.flatShading ? "#define FLAT_SHADED" : "",
                n.skinning ? "#define USE_SKINNING" : "",
                n.useVertexTexture ? "#define BONE_TEXTURE" : "",
                n.morphTargets ? "#define USE_MORPHTARGETS" : "",
                n.morphNormals && !1 === n.flatShading
                  ? "#define USE_MORPHNORMALS"
                  : "",
                n.doubleSided ? "#define DOUBLE_SIDED" : "",
                n.flipSided ? "#define FLIP_SIDED" : "",
                n.shadowMapEnabled ? "#define USE_SHADOWMAP" : "",
                n.shadowMapEnabled ? "#define " + c : "",
                n.sizeAttenuation ? "#define USE_SIZEATTENUATION" : "",
                n.logarithmicDepthBuffer ? "#define USE_LOGDEPTHBUF" : "",
                n.logarithmicDepthBuffer && n.rendererExtensionFragDepth
                  ? "#define USE_LOGDEPTHBUF_EXT"
                  : "",
                "uniform mat4 modelMatrix;",
                "uniform mat4 modelViewMatrix;",
                "uniform mat4 projectionMatrix;",
                "uniform mat4 viewMatrix;",
                "uniform mat3 normalMatrix;",
                "uniform vec3 cameraPosition;",
                "uniform bool isOrthographic;",
                "#ifdef USE_INSTANCING",
                " attribute mat4 instanceMatrix;",
                "#endif",
                "attribute vec3 position;",
                "attribute vec3 normal;",
                "attribute vec2 uv;",
                "#ifdef USE_TANGENT",
                "\tattribute vec4 tangent;",
                "#endif",
                "#ifdef USE_COLOR",
                "\tattribute vec3 color;",
                "#endif",
                "#ifdef USE_MORPHTARGETS",
                "\tattribute vec3 morphTarget0;",
                "\tattribute vec3 morphTarget1;",
                "\tattribute vec3 morphTarget2;",
                "\tattribute vec3 morphTarget3;",
                "\t#ifdef USE_MORPHNORMALS",
                "\t\tattribute vec3 morphNormal0;",
                "\t\tattribute vec3 morphNormal1;",
                "\t\tattribute vec3 morphNormal2;",
                "\t\tattribute vec3 morphNormal3;",
                "\t#else",
                "\t\tattribute vec3 morphTarget4;",
                "\t\tattribute vec3 morphTarget5;",
                "\t\tattribute vec3 morphTarget6;",
                "\t\tattribute vec3 morphTarget7;",
                "\t#endif",
                "#endif",
                "#ifdef USE_SKINNING",
                "\tattribute vec4 skinIndex;",
                "\tattribute vec4 skinWeight;",
                "#endif",
                "\n",
              ]
                .filter($s)
                .join("\n")),
              (i = [
                d,
                uc(n),
                "#define SHADER_NAME " + n.shaderName,
                p,
                n.alphaTest
                  ? "#define ALPHATEST " +
                    n.alphaTest +
                    (n.alphaTest % 1 ? "" : ".0")
                  : "",
                "#define GAMMA_FACTOR " + f,
                n.useFog && n.fog ? "#define USE_FOG" : "",
                n.useFog && n.fogExp2 ? "#define FOG_EXP2" : "",
                n.map ? "#define USE_MAP" : "",
                n.matcap ? "#define USE_MATCAP" : "",
                n.envMap ? "#define USE_ENVMAP" : "",
                n.envMap ? "#define " + u : "",
                n.envMap ? "#define " + l : "",
                n.envMap ? "#define " + h : "",
                n.lightMap ? "#define USE_LIGHTMAP" : "",
                n.aoMap ? "#define USE_AOMAP" : "",
                n.emissiveMap ? "#define USE_EMISSIVEMAP" : "",
                n.bumpMap ? "#define USE_BUMPMAP" : "",
                n.normalMap ? "#define USE_NORMALMAP" : "",
                n.normalMap && n.objectSpaceNormalMap
                  ? "#define OBJECTSPACE_NORMALMAP"
                  : "",
                n.normalMap && n.tangentSpaceNormalMap
                  ? "#define TANGENTSPACE_NORMALMAP"
                  : "",
                n.clearcoatMap ? "#define USE_CLEARCOATMAP" : "",
                n.clearcoatRoughnessMap
                  ? "#define USE_CLEARCOAT_ROUGHNESSMAP"
                  : "",
                n.clearcoatNormalMap ? "#define USE_CLEARCOAT_NORMALMAP" : "",
                n.specularMap ? "#define USE_SPECULARMAP" : "",
                n.roughnessMap ? "#define USE_ROUGHNESSMAP" : "",
                n.metalnessMap ? "#define USE_METALNESSMAP" : "",
                n.alphaMap ? "#define USE_ALPHAMAP" : "",
                n.sheen ? "#define USE_SHEEN" : "",
                n.vertexTangents ? "#define USE_TANGENT" : "",
                n.vertexColors ? "#define USE_COLOR" : "",
                n.vertexUvs ? "#define USE_UV" : "",
                n.uvsVertexOnly ? "#define UVS_VERTEX_ONLY" : "",
                n.gradientMap ? "#define USE_GRADIENTMAP" : "",
                n.flatShading ? "#define FLAT_SHADED" : "",
                n.doubleSided ? "#define DOUBLE_SIDED" : "",
                n.flipSided ? "#define FLIP_SIDED" : "",
                n.shadowMapEnabled ? "#define USE_SHADOWMAP" : "",
                n.shadowMapEnabled ? "#define " + c : "",
                n.premultipliedAlpha ? "#define PREMULTIPLIED_ALPHA" : "",
                n.physicallyCorrectLights
                  ? "#define PHYSICALLY_CORRECT_LIGHTS"
                  : "",
                n.logarithmicDepthBuffer ? "#define USE_LOGDEPTHBUF" : "",
                n.logarithmicDepthBuffer && n.rendererExtensionFragDepth
                  ? "#define USE_LOGDEPTHBUF_EXT"
                  : "",
                (n.extensionShaderTextureLOD || n.envMap) &&
                n.rendererExtensionShaderTextureLod
                  ? "#define TEXTURE_LOD_EXT"
                  : "",
                "uniform mat4 viewMatrix;",
                "uniform vec3 cameraPosition;",
                "uniform bool isOrthographic;",
                n.toneMapping !== Y ? "#define TONE_MAPPING" : "",
                n.toneMapping !== Y ? Fa["tonemapping_pars_fragment"] : "",
                n.toneMapping !== Y ? Ys("toneMapping", n.toneMapping) : "",
                n.dithering ? "#define DITHERING" : "",
                n.outputEncoding ||
                n.mapEncoding ||
                n.matcapEncoding ||
                n.envMapEncoding ||
                n.emissiveMapEncoding ||
                n.lightMapEncoding
                  ? Fa["encodings_pars_fragment"]
                  : "",
                n.mapEncoding ? Ws("mapTexelToLinear", n.mapEncoding) : "",
                n.matcapEncoding
                  ? Ws("matcapTexelToLinear", n.matcapEncoding)
                  : "",
                n.envMapEncoding
                  ? Ws("envMapTexelToLinear", n.envMapEncoding)
                  : "",
                n.emissiveMapEncoding
                  ? Ws("emissiveMapTexelToLinear", n.emissiveMapEncoding)
                  : "",
                n.lightMapEncoding
                  ? Ws("lightMapTexelToLinear", n.lightMapEncoding)
                  : "",
                n.outputEncoding
                  ? Xs("linearToOutputTexel", n.outputEncoding)
                  : "",
                n.depthPacking ? "#define DEPTH_PACKING " + n.depthPacking : "",
                "\n",
              ]
                .filter($s)
                .join("\n"))),
          (a = rc(a)),
          (a = ec(a, n)),
          (a = tc(a, n)),
          (s = rc(s)),
          (s = ec(s, n)),
          (s = tc(s, n)),
          (a = ac(a)),
          (s = ac(s)),
          n.isWebGL2 && !n.isRawShaderMaterial)
        ) {
          var m = !1,
            v = /^\s*#version\s+300\s+es\s*\n/;
          (n.isShaderMaterial &&
            null !== a.match(v) &&
            null !== s.match(v) &&
            ((m = !0), (a = a.replace(v, "")), (s = s.replace(v, ""))),
            (r =
              [
                "#version 300 es\n",
                "#define attribute in",
                "#define varying out",
                "#define texture2D texture",
              ].join("\n") +
              "\n" +
              r),
            (i =
              [
                "#version 300 es\n",
                "#define varying in",
                m ? "" : "out highp vec4 pc_fragColor;",
                m ? "" : "#define gl_FragColor pc_fragColor",
                "#define gl_FragDepthEXT gl_FragDepth",
                "#define texture2D texture",
                "#define textureCube texture",
                "#define texture2DProj textureProj",
                "#define texture2DLodEXT textureLod",
                "#define texture2DProjLodEXT textureProjLod",
                "#define textureCubeLodEXT textureLod",
                "#define texture2DGradEXT textureGrad",
                "#define texture2DProjGradEXT textureProjGrad",
                "#define textureCubeGradEXT textureGrad",
              ].join("\n") +
              "\n" +
              i));
        }
        var y,
          w,
          B = r + a,
          b = i + s,
          _ = Gs(A, 35633, B),
          x = Gs(A, 35632, b);
        if (
          (A.attachShader(g, _),
          A.attachShader(g, x),
          void 0 !== n.index0AttributeName
            ? A.bindAttribLocation(g, 0, n.index0AttributeName)
            : !0 === n.morphTargets && A.bindAttribLocation(g, 0, "position"),
          A.linkProgram(g),
          e.debug.checkShaderErrors)
        ) {
          var C = A.getProgramInfoLog(g).trim(),
            E = A.getShaderInfoLog(_).trim(),
            M = A.getShaderInfoLog(x).trim(),
            S = !0,
            F = !0;
          if (!1 === A.getProgramParameter(g, 35714)) {
            S = !1;
            var T = Ks(A, _, "vertex"),
              U = Ks(A, x, "fragment");
            console.log(
              "THREE.WebGLProgram: shader error: ",
              A.getError(),
              "35715",
              A.getProgramParameter(g, 35715),
              "gl.getProgramInfoLog",
              C,
              T,
              U,
            );
          } else
            "" !== C
              ? console.warn("THREE.WebGLProgram: gl.getProgramInfoLog()", C)
              : ("" !== E && "" !== M) || (F = !1);
          F &&
            (this.diagnostics = {
              runnable: S,
              programLog: C,
              vertexShader: { log: E, prefix: r },
              fragmentShader: { log: M, prefix: i },
            });
        }
        return (
          A.deleteShader(_),
          A.deleteShader(x),
          (this.getUniforms = function () {
            return (void 0 === y && (y = new ks(A, g)), y);
          }),
          (this.getAttributes = function () {
            return (void 0 === w && (w = Zs(A, g)), w);
          }),
          (this.destroy = function () {
            (A.deleteProgram(g), (this.program = void 0));
          }),
          (this.name = n.shaderName),
          (this.id = Vs++),
          (this.cacheKey = t),
          (this.usedTimes = 1),
          (this.program = g),
          (this.vertexShader = _),
          (this.fragmentShader = x),
          this
        );
      }
      function gc(e, t, n) {
        var r = [],
          i = n.isWebGL2,
          A = n.logarithmicDepthBuffer,
          o = n.floatVertexTextures,
          a = n.precision,
          s = n.maxVertexUniforms,
          c = n.vertexTextures,
          u = {
            MeshDepthMaterial: "depth",
            MeshDistanceMaterial: "distanceRGBA",
            MeshNormalMaterial: "normal",
            MeshBasicMaterial: "basic",
            MeshLambertMaterial: "lambert",
            MeshPhongMaterial: "phong",
            MeshToonMaterial: "toon",
            MeshStandardMaterial: "physical",
            MeshPhysicalMaterial: "physical",
            MeshMatcapMaterial: "matcap",
            LineBasicMaterial: "basic",
            LineDashedMaterial: "dashed",
            PointsMaterial: "points",
            ShadowMaterial: "shadow",
            SpriteMaterial: "sprite",
          },
          l = [
            "precision",
            "isWebGL2",
            "supportsVertexTextures",
            "outputEncoding",
            "instancing",
            "map",
            "mapEncoding",
            "matcap",
            "matcapEncoding",
            "envMap",
            "envMapMode",
            "envMapEncoding",
            "envMapCubeUV",
            "lightMap",
            "lightMapEncoding",
            "aoMap",
            "emissiveMap",
            "emissiveMapEncoding",
            "bumpMap",
            "normalMap",
            "objectSpaceNormalMap",
            "tangentSpaceNormalMap",
            "clearcoatMap",
            "clearcoatRoughnessMap",
            "clearcoatNormalMap",
            "displacementMap",
            "specularMap",
            "roughnessMap",
            "metalnessMap",
            "gradientMap",
            "alphaMap",
            "combine",
            "vertexColors",
            "vertexTangents",
            "vertexUvs",
            "uvsVertexOnly",
            "fog",
            "useFog",
            "fogExp2",
            "flatShading",
            "sizeAttenuation",
            "logarithmicDepthBuffer",
            "skinning",
            "maxBones",
            "useVertexTexture",
            "morphTargets",
            "morphNormals",
            "maxMorphTargets",
            "maxMorphNormals",
            "premultipliedAlpha",
            "numDirLights",
            "numPointLights",
            "numSpotLights",
            "numHemiLights",
            "numRectAreaLights",
            "numDirLightShadows",
            "numPointLightShadows",
            "numSpotLightShadows",
            "shadowMapEnabled",
            "shadowMapType",
            "toneMapping",
            "physicallyCorrectLights",
            "alphaTest",
            "doubleSided",
            "flipSided",
            "numClippingPlanes",
            "numClipIntersection",
            "depthPacking",
            "dithering",
            "sheen",
          ];
        function h(e, t) {
          var n;
          if (t) {
            var r = Ta[t];
            n = {
              name: e.type,
              uniforms: zi.clone(r.uniforms),
              vertexShader: r.vertexShader,
              fragmentShader: r.fragmentShader,
            };
          } else
            n = {
              name: e.type,
              uniforms: e.uniforms,
              vertexShader: e.vertexShader,
              fragmentShader: e.fragmentShader,
            };
          return n;
        }
        function p(e) {
          var t = e.skeleton,
            n = t.bones;
          if (o) return 1024;
          var r = s,
            i = Math.floor((r - 20) / 4),
            A = Math.min(i, n.length);
          return A < n.length
            ? (console.warn(
                "THREE.WebGLRenderer: Skeleton has " +
                  n.length +
                  " bones. This GPU supports " +
                  A +
                  ".",
              ),
              0)
            : A;
        }
        function g(e) {
          var t;
          return (
            e
              ? e.isTexture
                ? (t = e.encoding)
                : e.isWebGLRenderTarget &&
                  (console.warn(
                    "THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead.",
                  ),
                  (t = e.texture.encoding))
              : (t = zt),
            t
          );
        }
        ((this.getParameters = function (r, s, l, m, v, y, w) {
          var B = m.fog,
            b = r.isMeshStandardMaterial ? m.environment : null,
            _ = r.envMap || b,
            x = u[r.type],
            C = w.isSkinnedMesh ? p(w) : 0;
          null !== r.precision &&
            ((a = n.getMaxPrecision(r.precision)),
            a !== r.precision &&
              console.warn(
                "THREE.WebGLProgram.getParameters:",
                r.precision,
                "not supported, using",
                a,
                "instead.",
              ));
          var E = h(r, x);
          r.onBeforeCompile(E, e);
          var M = e.getRenderTarget(),
            S = {
              isWebGL2: i,
              shaderID: x,
              shaderName: E.name,
              uniforms: E.uniforms,
              vertexShader: E.vertexShader,
              fragmentShader: E.fragmentShader,
              defines: r.defines,
              isRawShaderMaterial: r.isRawShaderMaterial,
              isShaderMaterial: r.isShaderMaterial,
              precision: a,
              instancing: !0 === w.isInstancedMesh,
              supportsVertexTextures: c,
              outputEncoding: null !== M ? g(M.texture) : e.outputEncoding,
              map: !!r.map,
              mapEncoding: g(r.map),
              matcap: !!r.matcap,
              matcapEncoding: g(r.matcap),
              envMap: !!_,
              envMapMode: _ && _.mapping,
              envMapEncoding: g(_),
              envMapCubeUV: !!_ && (_.mapping === ae || _.mapping === se),
              lightMap: !!r.lightMap,
              lightMapEncoding: g(r.lightMap),
              aoMap: !!r.aoMap,
              emissiveMap: !!r.emissiveMap,
              emissiveMapEncoding: g(r.emissiveMap),
              bumpMap: !!r.bumpMap,
              normalMap: !!r.normalMap,
              objectSpaceNormalMap: r.normalMapType === tn,
              tangentSpaceNormalMap: r.normalMapType === en,
              clearcoatMap: !!r.clearcoatMap,
              clearcoatRoughnessMap: !!r.clearcoatRoughnessMap,
              clearcoatNormalMap: !!r.clearcoatNormalMap,
              displacementMap: !!r.displacementMap,
              roughnessMap: !!r.roughnessMap,
              metalnessMap: !!r.metalnessMap,
              specularMap: !!r.specularMap,
              alphaMap: !!r.alphaMap,
              gradientMap: !!r.gradientMap,
              sheen: !!r.sheen,
              combine: r.combine,
              vertexTangents: r.normalMap && r.vertexTangents,
              vertexColors: r.vertexColors,
              vertexUvs:
                !!r.map ||
                !!r.bumpMap ||
                !!r.normalMap ||
                !!r.specularMap ||
                !!r.alphaMap ||
                !!r.emissiveMap ||
                !!r.roughnessMap ||
                !!r.metalnessMap ||
                !!r.clearcoatMap ||
                !!r.clearcoatRoughnessMap ||
                !!r.clearcoatNormalMap ||
                !!r.displacementMap,
              uvsVertexOnly:
                !(
                  r.map ||
                  r.bumpMap ||
                  r.normalMap ||
                  r.specularMap ||
                  r.alphaMap ||
                  r.emissiveMap ||
                  r.roughnessMap ||
                  r.metalnessMap ||
                  r.clearcoatNormalMap
                ) && !!r.displacementMap,
              fog: !!B,
              useFog: r.fog,
              fogExp2: B && B.isFogExp2,
              flatShading: r.flatShading,
              sizeAttenuation: r.sizeAttenuation,
              logarithmicDepthBuffer: A,
              skinning: r.skinning && C > 0,
              maxBones: C,
              useVertexTexture: o,
              morphTargets: r.morphTargets,
              morphNormals: r.morphNormals,
              maxMorphTargets: e.maxMorphTargets,
              maxMorphNormals: e.maxMorphNormals,
              numDirLights: s.directional.length,
              numPointLights: s.point.length,
              numSpotLights: s.spot.length,
              numRectAreaLights: s.rectArea.length,
              numHemiLights: s.hemi.length,
              numDirLightShadows: s.directionalShadowMap.length,
              numPointLightShadows: s.pointShadowMap.length,
              numSpotLightShadows: s.spotShadowMap.length,
              numClippingPlanes: v,
              numClipIntersection: y,
              dithering: r.dithering,
              shadowMapEnabled: e.shadowMap.enabled && l.length > 0,
              shadowMapType: e.shadowMap.type,
              toneMapping: r.toneMapped ? e.toneMapping : Y,
              physicallyCorrectLights: e.physicallyCorrectLights,
              premultipliedAlpha: r.premultipliedAlpha,
              alphaTest: r.alphaTest,
              doubleSided: r.side === d,
              flipSided: r.side === f,
              depthPacking: void 0 !== r.depthPacking && r.depthPacking,
              index0AttributeName: r.index0AttributeName,
              extensionDerivatives: r.extensions && r.extensions.derivatives,
              extensionFragDepth: r.extensions && r.extensions.fragDepth,
              extensionDrawBuffers: r.extensions && r.extensions.drawBuffers,
              extensionShaderTextureLOD:
                r.extensions && r.extensions.shaderTextureLOD,
              rendererExtensionFragDepth: i || null !== t.get("EXT_frag_depth"),
              rendererExtensionDrawBuffers:
                i || null !== t.get("WEBGL_draw_buffers"),
              rendererExtensionShaderTextureLod:
                i || null !== t.get("EXT_shader_texture_lod"),
              onBeforeCompile: r.onBeforeCompile,
            };
          return S;
        }),
          (this.getProgramCacheKey = function (t) {
            var n = [];
            if (
              (t.shaderID
                ? n.push(t.shaderID)
                : (n.push(t.fragmentShader), n.push(t.vertexShader)),
              void 0 !== t.defines)
            )
              for (var r in t.defines) (n.push(r), n.push(t.defines[r]));
            if (void 0 === t.isRawShaderMaterial) {
              for (var i = 0; i < l.length; i++) n.push(t[l[i]]);
              (n.push(e.outputEncoding), n.push(e.gammaFactor));
            }
            return (n.push(t.onBeforeCompile.toString()), n.join());
          }),
          (this.acquireProgram = function (t, n) {
            for (var i, A = 0, o = r.length; A < o; A++) {
              var a = r[A];
              if (a.cacheKey === n) {
                ((i = a), ++i.usedTimes);
                break;
              }
            }
            return (void 0 === i && ((i = new pc(e, n, t)), r.push(i)), i);
          }),
          (this.releaseProgram = function (e) {
            if (0 === --e.usedTimes) {
              var t = r.indexOf(e);
              ((r[t] = r[r.length - 1]), r.pop(), e.destroy());
            }
          }),
          (this.programs = r));
      }
      function mc() {
        var e = new WeakMap();
        function t(t) {
          var n = e.get(t);
          return (void 0 === n && ((n = {}), e.set(t, n)), n);
        }
        function n(t) {
          e.delete(t);
        }
        function r(t, n, r) {
          e.get(t)[n] = r;
        }
        function i() {
          e = new WeakMap();
        }
        return { get: t, remove: n, update: r, dispose: i };
      }
      function vc(e, t) {
        return e.groupOrder !== t.groupOrder
          ? e.groupOrder - t.groupOrder
          : e.renderOrder !== t.renderOrder
            ? e.renderOrder - t.renderOrder
            : e.program !== t.program
              ? e.program.id - t.program.id
              : e.material.id !== t.material.id
                ? e.material.id - t.material.id
                : e.z !== t.z
                  ? e.z - t.z
                  : e.id - t.id;
      }
      function yc(e, t) {
        return e.groupOrder !== t.groupOrder
          ? e.groupOrder - t.groupOrder
          : e.renderOrder !== t.renderOrder
            ? e.renderOrder - t.renderOrder
            : e.z !== t.z
              ? t.z - e.z
              : e.id - t.id;
      }
      function wc() {
        var e = [],
          t = 0,
          n = [],
          r = [],
          i = { id: -1 };
        function A() {
          ((t = 0), (n.length = 0), (r.length = 0));
        }
        function o(n, r, A, o, a, s) {
          var c = e[t];
          return (
            void 0 === c
              ? ((c = {
                  id: n.id,
                  object: n,
                  geometry: r,
                  material: A,
                  program: A.program || i,
                  groupOrder: o,
                  renderOrder: n.renderOrder,
                  z: a,
                  group: s,
                }),
                (e[t] = c))
              : ((c.id = n.id),
                (c.object = n),
                (c.geometry = r),
                (c.material = A),
                (c.program = A.program || i),
                (c.groupOrder = o),
                (c.renderOrder = n.renderOrder),
                (c.z = a),
                (c.group = s)),
            t++,
            c
          );
        }
        function a(e, t, i, A, a, s) {
          var c = o(e, t, i, A, a, s);
          (!0 === i.transparent ? r : n).push(c);
        }
        function s(e, t, i, A, a, s) {
          var c = o(e, t, i, A, a, s);
          (!0 === i.transparent ? r : n).unshift(c);
        }
        function c(e, t) {
          (n.length > 1 && n.sort(e || vc), r.length > 1 && r.sort(t || yc));
        }
        function u() {
          for (var n = t, r = e.length; n < r; n++) {
            var i = e[n];
            if (null === i.id) break;
            ((i.id = null),
              (i.object = null),
              (i.geometry = null),
              (i.material = null),
              (i.program = null),
              (i.group = null));
          }
        }
        return {
          opaque: n,
          transparent: r,
          init: A,
          push: a,
          unshift: s,
          finish: u,
          sort: c,
        };
      }
      function Bc() {
        var e = new WeakMap();
        function t(n) {
          var r = n.target;
          (r.removeEventListener("dispose", t), e.delete(r));
        }
        function n(n, r) {
          var i,
            A = e.get(n);
          return (
            void 0 === A
              ? ((i = new wc()),
                e.set(n, new WeakMap()),
                e.get(n).set(r, i),
                n.addEventListener("dispose", t))
              : ((i = A.get(r)), void 0 === i && ((i = new wc()), A.set(r, i))),
            i
          );
        }
        function r() {
          e = new WeakMap();
        }
        return { get: n, dispose: r };
      }
      function bc() {
        var e = {};
        return {
          get: function (t) {
            if (void 0 !== e[t.id]) return e[t.id];
            var n;
            switch (t.type) {
              case "DirectionalLight":
                n = { direction: new _n(), color: new Nr() };
                break;
              case "SpotLight":
                n = {
                  position: new _n(),
                  direction: new _n(),
                  color: new Nr(),
                  distance: 0,
                  coneCos: 0,
                  penumbraCos: 0,
                  decay: 0,
                };
                break;
              case "PointLight":
                n = {
                  position: new _n(),
                  color: new Nr(),
                  distance: 0,
                  decay: 0,
                };
                break;
              case "HemisphereLight":
                n = {
                  direction: new _n(),
                  skyColor: new Nr(),
                  groundColor: new Nr(),
                };
                break;
              case "RectAreaLight":
                n = {
                  color: new Nr(),
                  position: new _n(),
                  halfWidth: new _n(),
                  halfHeight: new _n(),
                };
                break;
            }
            return ((e[t.id] = n), n);
          },
        };
      }
      function _c() {
        var e = {};
        return {
          get: function (t) {
            if (void 0 !== e[t.id]) return e[t.id];
            var n;
            switch (t.type) {
              case "DirectionalLight":
                n = { shadowBias: 0, shadowRadius: 1, shadowMapSize: new hn() };
                break;
              case "SpotLight":
                n = { shadowBias: 0, shadowRadius: 1, shadowMapSize: new hn() };
                break;
              case "PointLight":
                n = {
                  shadowBias: 0,
                  shadowRadius: 1,
                  shadowMapSize: new hn(),
                  shadowCameraNear: 1,
                  shadowCameraFar: 1e3,
                };
                break;
            }
            return ((e[t.id] = n), n);
          },
        };
      }
      var xc = 0;
      function Cc(e, t) {
        return (t.castShadow ? 1 : 0) - (e.castShadow ? 1 : 0);
      }
      function Ec() {
        for (
          var e = new bc(),
            t = _c(),
            n = {
              version: 0,
              hash: {
                directionalLength: -1,
                pointLength: -1,
                spotLength: -1,
                rectAreaLength: -1,
                hemiLength: -1,
                numDirectionalShadows: -1,
                numPointShadows: -1,
                numSpotShadows: -1,
              },
              ambient: [0, 0, 0],
              probe: [],
              directional: [],
              directionalShadow: [],
              directionalShadowMap: [],
              directionalShadowMatrix: [],
              spot: [],
              spotShadow: [],
              spotShadowMap: [],
              spotShadowMatrix: [],
              rectArea: [],
              point: [],
              pointShadow: [],
              pointShadowMap: [],
              pointShadowMatrix: [],
              hemi: [],
            },
            r = 0;
          r < 9;
          r++
        )
          n.probe.push(new _n());
        var i = new _n(),
          A = new Un(),
          o = new Un();
        function a(r, a, s) {
          for (var c = 0, u = 0, l = 0, h = 0; h < 9; h++)
            n.probe[h].set(0, 0, 0);
          var f = 0,
            d = 0,
            p = 0,
            g = 0,
            m = 0,
            v = 0,
            y = 0,
            w = 0,
            B = s.matrixWorldInverse;
          r.sort(Cc);
          h = 0;
          for (var b = r.length; h < b; h++) {
            var _ = r[h],
              x = _.color,
              C = _.intensity,
              E = _.distance,
              M = _.shadow && _.shadow.map ? _.shadow.map.texture : null;
            if (_.isAmbientLight)
              ((c += x.r * C), (u += x.g * C), (l += x.b * C));
            else if (_.isLightProbe)
              for (var S = 0; S < 9; S++)
                n.probe[S].addScaledVector(_.sh.coefficients[S], C);
            else if (_.isDirectionalLight) {
              var F = e.get(_);
              if (
                (F.color.copy(_.color).multiplyScalar(_.intensity),
                F.direction.setFromMatrixPosition(_.matrixWorld),
                i.setFromMatrixPosition(_.target.matrixWorld),
                F.direction.sub(i),
                F.direction.transformDirection(B),
                _.castShadow)
              ) {
                var T = _.shadow,
                  U = t.get(_);
                ((U.shadowBias = T.bias),
                  (U.shadowRadius = T.radius),
                  (U.shadowMapSize = T.mapSize),
                  (n.directionalShadow[f] = U),
                  (n.directionalShadowMap[f] = M),
                  (n.directionalShadowMatrix[f] = _.shadow.matrix),
                  v++);
              }
              ((n.directional[f] = F), f++);
            } else if (_.isSpotLight) {
              F = e.get(_);
              if (
                (F.position.setFromMatrixPosition(_.matrixWorld),
                F.position.applyMatrix4(B),
                F.color.copy(x).multiplyScalar(C),
                (F.distance = E),
                F.direction.setFromMatrixPosition(_.matrixWorld),
                i.setFromMatrixPosition(_.target.matrixWorld),
                F.direction.sub(i),
                F.direction.transformDirection(B),
                (F.coneCos = Math.cos(_.angle)),
                (F.penumbraCos = Math.cos(_.angle * (1 - _.penumbra))),
                (F.decay = _.decay),
                _.castShadow)
              ) {
                ((T = _.shadow), (U = t.get(_)));
                ((U.shadowBias = T.bias),
                  (U.shadowRadius = T.radius),
                  (U.shadowMapSize = T.mapSize),
                  (n.spotShadow[p] = U),
                  (n.spotShadowMap[p] = M),
                  (n.spotShadowMatrix[p] = _.shadow.matrix),
                  w++);
              }
              ((n.spot[p] = F), p++);
            } else if (_.isRectAreaLight) {
              F = e.get(_);
              (F.color.copy(x).multiplyScalar(C),
                F.position.setFromMatrixPosition(_.matrixWorld),
                F.position.applyMatrix4(B),
                o.identity(),
                A.copy(_.matrixWorld),
                A.premultiply(B),
                o.extractRotation(A),
                F.halfWidth.set(0.5 * _.width, 0, 0),
                F.halfHeight.set(0, 0.5 * _.height, 0),
                F.halfWidth.applyMatrix4(o),
                F.halfHeight.applyMatrix4(o),
                (n.rectArea[g] = F),
                g++);
            } else if (_.isPointLight) {
              F = e.get(_);
              if (
                (F.position.setFromMatrixPosition(_.matrixWorld),
                F.position.applyMatrix4(B),
                F.color.copy(_.color).multiplyScalar(_.intensity),
                (F.distance = _.distance),
                (F.decay = _.decay),
                _.castShadow)
              ) {
                ((T = _.shadow), (U = t.get(_)));
                ((U.shadowBias = T.bias),
                  (U.shadowRadius = T.radius),
                  (U.shadowMapSize = T.mapSize),
                  (U.shadowCameraNear = T.camera.near),
                  (U.shadowCameraFar = T.camera.far),
                  (n.pointShadow[d] = U),
                  (n.pointShadowMap[d] = M),
                  (n.pointShadowMatrix[d] = _.shadow.matrix),
                  y++);
              }
              ((n.point[d] = F), d++);
            } else if (_.isHemisphereLight) {
              F = e.get(_);
              (F.direction.setFromMatrixPosition(_.matrixWorld),
                F.direction.transformDirection(B),
                F.direction.normalize(),
                F.skyColor.copy(_.color).multiplyScalar(C),
                F.groundColor.copy(_.groundColor).multiplyScalar(C),
                (n.hemi[m] = F),
                m++);
            }
          }
          ((n.ambient[0] = c), (n.ambient[1] = u), (n.ambient[2] = l));
          var Q = n.hash;
          (Q.directionalLength === f &&
            Q.pointLength === d &&
            Q.spotLength === p &&
            Q.rectAreaLength === g &&
            Q.hemiLength === m &&
            Q.numDirectionalShadows === v &&
            Q.numPointShadows === y &&
            Q.numSpotShadows === w) ||
            ((n.directional.length = f),
            (n.spot.length = p),
            (n.rectArea.length = g),
            (n.point.length = d),
            (n.hemi.length = m),
            (n.directionalShadow.length = v),
            (n.directionalShadowMap.length = v),
            (n.pointShadow.length = y),
            (n.pointShadowMap.length = y),
            (n.spotShadow.length = w),
            (n.spotShadowMap.length = w),
            (n.directionalShadowMatrix.length = v),
            (n.pointShadowMatrix.length = y),
            (n.spotShadowMatrix.length = w),
            (Q.directionalLength = f),
            (Q.pointLength = d),
            (Q.spotLength = p),
            (Q.rectAreaLength = g),
            (Q.hemiLength = m),
            (Q.numDirectionalShadows = v),
            (Q.numPointShadows = y),
            (Q.numSpotShadows = w),
            (n.version = xc++));
        }
        return { setup: a, state: n };
      }
      function Mc() {
        var e = new Ec(),
          t = [],
          n = [];
        function r() {
          ((t.length = 0), (n.length = 0));
        }
        function i(e) {
          t.push(e);
        }
        function A(e) {
          n.push(e);
        }
        function o(r) {
          e.setup(t, n, r);
        }
        var a = { lightsArray: t, shadowsArray: n, lights: e };
        return {
          init: r,
          state: a,
          setupLights: o,
          pushLight: i,
          pushShadow: A,
        };
      }
      function Sc() {
        var e = new WeakMap();
        function t(n) {
          var r = n.target;
          (r.removeEventListener("dispose", t), e.delete(r));
        }
        function n(n, r) {
          var i;
          return (
            !1 === e.has(n)
              ? ((i = new Mc()),
                e.set(n, new WeakMap()),
                e.get(n).set(r, i),
                n.addEventListener("dispose", t))
              : !1 === e.get(n).has(r)
                ? ((i = new Mc()), e.get(n).set(r, i))
                : (i = e.get(n).get(r)),
            i
          );
        }
        function r() {
          e = new WeakMap();
        }
        return { get: n, dispose: r };
      }
      function Fc(e) {
        (Kr.call(this),
          (this.type = "MeshDepthMaterial"),
          (this.depthPacking = Zt),
          (this.skinning = !1),
          (this.morphTargets = !1),
          (this.map = null),
          (this.alphaMap = null),
          (this.displacementMap = null),
          (this.displacementScale = 1),
          (this.displacementBias = 0),
          (this.wireframe = !1),
          (this.wireframeLinewidth = 1),
          (this.fog = !1),
          this.setValues(e));
      }
      function Tc(e) {
        (Kr.call(this),
          (this.type = "MeshDistanceMaterial"),
          (this.referencePosition = new _n()),
          (this.nearDistance = 1),
          (this.farDistance = 1e3),
          (this.skinning = !1),
          (this.morphTargets = !1),
          (this.map = null),
          (this.alphaMap = null),
          (this.displacementMap = null),
          (this.displacementScale = 1),
          (this.displacementBias = 0),
          (this.fog = !1),
          this.setValues(e));
      }
      ((Fc.prototype = Object.create(Kr.prototype)),
        (Fc.prototype.constructor = Fc),
        (Fc.prototype.isMeshDepthMaterial = !0),
        (Fc.prototype.copy = function (e) {
          return (
            Kr.prototype.copy.call(this, e),
            (this.depthPacking = e.depthPacking),
            (this.skinning = e.skinning),
            (this.morphTargets = e.morphTargets),
            (this.map = e.map),
            (this.alphaMap = e.alphaMap),
            (this.displacementMap = e.displacementMap),
            (this.displacementScale = e.displacementScale),
            (this.displacementBias = e.displacementBias),
            (this.wireframe = e.wireframe),
            (this.wireframeLinewidth = e.wireframeLinewidth),
            this
          );
        }),
        (Tc.prototype = Object.create(Kr.prototype)),
        (Tc.prototype.constructor = Tc),
        (Tc.prototype.isMeshDistanceMaterial = !0),
        (Tc.prototype.copy = function (e) {
          return (
            Kr.prototype.copy.call(this, e),
            this.referencePosition.copy(e.referencePosition),
            (this.nearDistance = e.nearDistance),
            (this.farDistance = e.farDistance),
            (this.skinning = e.skinning),
            (this.morphTargets = e.morphTargets),
            (this.map = e.map),
            (this.alphaMap = e.alphaMap),
            (this.displacementMap = e.displacementMap),
            (this.displacementScale = e.displacementScale),
            (this.displacementBias = e.displacementBias),
            this
          );
        }));
      var Uc =
          "uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include <packing>\nvoid main() {\n  float mean = 0.0;\n  float squared_mean = 0.0;\n\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy  ) / resolution ) );\n  for ( float i = -1.0; i < 1.0 ; i += SAMPLE_RATE) {\n    #ifdef HORIZONAL_PASS\n      vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( i, 0.0 ) * radius ) / resolution ) );\n      mean += distribution.x;\n      squared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n    #else\n      float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0,  i )  * radius ) / resolution ) );\n      mean += depth;\n      squared_mean += depth * depth;\n    #endif\n  }\n  mean = mean * HALF_SAMPLE_RATE;\n  squared_mean = squared_mean * HALF_SAMPLE_RATE;\n  float std_dev = sqrt( squared_mean - mean * mean );\n  gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}",
        Qc = "void main() {\n\tgl_Position = vec4( position, 1.0 );\n}";
      function Lc(e, t, n) {
        var r = new rA(),
          i = new hn(),
          A = new hn(),
          o = new mn(),
          a = [],
          s = [],
          u = {},
          p = { 0: f, 1: h, 2: d },
          m = new Wi({
            defines: { SAMPLE_RATE: 2 / 8, HALF_SAMPLE_RATE: 1 / 8 },
            uniforms: {
              shadow_pass: { value: null },
              resolution: { value: new hn() },
              radius: { value: 4 },
            },
            vertexShader: Qc,
            fragmentShader: Uc,
          }),
          v = m.clone();
        v.defines.HORIZONAL_PASS = 1;
        var y = new di();
        y.setAttribute(
          "position",
          new Yr(new Float32Array([-1, -1, 0.5, 3, -1, 0.5, -1, 3, 0.5]), 3),
        );
        var w = new Qi(y, m),
          B = this;
        function b(n, r) {
          var i = t.update(w);
          ((m.uniforms.shadow_pass.value = n.map.texture),
            (m.uniforms.resolution.value = n.mapSize),
            (m.uniforms.radius.value = n.radius),
            e.setRenderTarget(n.mapPass),
            e.clear(),
            e.renderBufferDirect(r, null, i, m, w, null),
            (v.uniforms.shadow_pass.value = n.mapPass.texture),
            (v.uniforms.resolution.value = n.mapSize),
            (v.uniforms.radius.value = n.radius),
            e.setRenderTarget(n.map),
            e.clear(),
            e.renderBufferDirect(r, null, i, v, w, null));
        }
        function _(e, t, n) {
          var r = (e << 0) | (t << 1) | (n << 2),
            i = a[r];
          return (
            void 0 === i &&
              ((i = new Fc({ depthPacking: $t, morphTargets: e, skinning: t })),
              (a[r] = i)),
            i
          );
        }
        function x(e, t, n) {
          var r = (e << 0) | (t << 1) | (n << 2),
            i = s[r];
          return (
            void 0 === i &&
              ((i = new Tc({ morphTargets: e, skinning: t })), (s[r] = i)),
            i
          );
        }
        function C(t, n, r, i, A, o, a) {
          var s = null,
            c = _,
            h = t.customDepthMaterial;
          if (
            (!0 === i.isPointLight && ((c = x), (h = t.customDistanceMaterial)),
            void 0 === h)
          ) {
            var f = !1;
            !0 === r.morphTargets &&
              (f =
                n.morphAttributes &&
                n.morphAttributes.position &&
                n.morphAttributes.position.length > 0);
            var d = !1;
            !0 === t.isSkinnedMesh &&
              (!0 === r.skinning
                ? (d = !0)
                : console.warn(
                    "THREE.WebGLShadowMap: THREE.SkinnedMesh with material.skinning set to false:",
                    t,
                  ));
            var g = !0 === t.isInstancedMesh;
            s = c(f, d, g);
          } else s = h;
          if (
            e.localClippingEnabled &&
            !0 === r.clipShadows &&
            0 !== r.clippingPlanes.length
          ) {
            var m = s.uuid,
              v = r.uuid,
              y = u[m];
            void 0 === y && ((y = {}), (u[m] = y));
            var w = y[v];
            (void 0 === w && ((w = s.clone()), (y[v] = w)), (s = w));
          }
          return (
            (s.visible = r.visible),
            (s.wireframe = r.wireframe),
            (s.side =
              a === l
                ? null !== r.shadowSide
                  ? r.shadowSide
                  : r.side
                : null !== r.shadowSide
                  ? r.shadowSide
                  : p[r.side]),
            (s.clipShadows = r.clipShadows),
            (s.clippingPlanes = r.clippingPlanes),
            (s.clipIntersection = r.clipIntersection),
            (s.wireframeLinewidth = r.wireframeLinewidth),
            (s.linewidth = r.linewidth),
            !0 === i.isPointLight &&
              !0 === s.isMeshDistanceMaterial &&
              (s.referencePosition.setFromMatrixPosition(i.matrixWorld),
              (s.nearDistance = A),
              (s.farDistance = o)),
            s
          );
        }
        function E(n, i, A, o, a) {
          if (!1 !== n.visible) {
            var s = n.layers.test(i.layers);
            if (
              s &&
              (n.isMesh || n.isLine || n.isPoints) &&
              (n.castShadow || (n.receiveShadow && a === l)) &&
              (!n.frustumCulled || r.intersectsObject(n))
            ) {
              n.modelViewMatrix.multiplyMatrices(
                A.matrixWorldInverse,
                n.matrixWorld,
              );
              var c = t.update(n),
                u = n.material;
              if (Array.isArray(u))
                for (var h = c.groups, f = 0, d = h.length; f < d; f++) {
                  var p = h[f],
                    g = u[p.materialIndex];
                  if (g && g.visible) {
                    var m = C(n, c, g, o, A.near, A.far, a);
                    e.renderBufferDirect(A, null, c, m, n, p);
                  }
                }
              else if (u.visible) {
                m = C(n, c, u, o, A.near, A.far, a);
                e.renderBufferDirect(A, null, c, m, n, null);
              }
            }
            for (var v = n.children, y = 0, w = v.length; y < w; y++)
              E(v[y], i, A, o, a);
          }
        }
        ((this.enabled = !1),
          (this.autoUpdate = !0),
          (this.needsUpdate = !1),
          (this.type = c),
          (this.render = function (t, a, s) {
            if (
              !1 !== B.enabled &&
              (!1 !== B.autoUpdate || !1 !== B.needsUpdate) &&
              0 !== t.length
            ) {
              var c = e.getRenderTarget(),
                u = e.getActiveCubeFace(),
                h = e.getActiveMipmapLevel(),
                f = e.state;
              (f.setBlending(g),
                f.buffers.color.setClear(1, 1, 1, 1),
                f.buffers.depth.setTest(!0),
                f.setScissorTest(!1));
              for (var d = 0, p = t.length; d < p; d++) {
                var m = t[d],
                  v = m.shadow;
                if (void 0 !== v) {
                  i.copy(v.mapSize);
                  var y = v.getFrameExtents();
                  if (
                    (i.multiply(y),
                    A.copy(v.mapSize),
                    (i.x > n || i.y > n) &&
                      (i.x > n &&
                        ((A.x = Math.floor(n / y.x)),
                        (i.x = A.x * y.x),
                        (v.mapSize.x = A.x)),
                      i.y > n &&
                        ((A.y = Math.floor(n / y.y)),
                        (i.y = A.y * y.y),
                        (v.mapSize.y = A.y))),
                    null === v.map && !v.isPointLightShadow && this.type === l)
                  ) {
                    var w = { minFilter: pe, magFilter: pe, format: Qe };
                    ((v.map = new vn(i.x, i.y, w)),
                      (v.map.texture.name = m.name + ".shadowMap"),
                      (v.mapPass = new vn(i.x, i.y, w)),
                      v.camera.updateProjectionMatrix());
                  }
                  if (null === v.map) {
                    w = { minFilter: he, magFilter: he, format: Qe };
                    ((v.map = new vn(i.x, i.y, w)),
                      (v.map.texture.name = m.name + ".shadowMap"),
                      v.camera.updateProjectionMatrix());
                  }
                  (e.setRenderTarget(v.map), e.clear());
                  for (var _ = v.getViewportCount(), x = 0; x < _; x++) {
                    var C = v.getViewport(x);
                    (o.set(A.x * C.x, A.y * C.y, A.x * C.z, A.y * C.w),
                      f.viewport(o),
                      v.updateMatrices(m, x),
                      (r = v.getFrustum()),
                      E(a, s, v.camera, m, this.type));
                  }
                  v.isPointLightShadow || this.type !== l || b(v, s);
                } else
                  console.warn("THREE.WebGLShadowMap:", m, "has no shadow.");
              }
              ((B.needsUpdate = !1), e.setRenderTarget(c, u, h));
            }
          }));
      }
      function Ic(e, t, n) {
        var r = n.isWebGL2;
        function i() {
          var t = !1,
            n = new mn(),
            r = null,
            i = new mn(0, 0, 0, 0);
          return {
            setMask: function (n) {
              r === n || t || (e.colorMask(n, n, n, n), (r = n));
            },
            setLocked: function (e) {
              t = e;
            },
            setClear: function (t, r, A, o, a) {
              (!0 === a && ((t *= o), (r *= o), (A *= o)),
                n.set(t, r, A, o),
                !1 === i.equals(n) && (e.clearColor(t, r, A, o), i.copy(n)));
            },
            reset: function () {
              ((t = !1), (r = null), i.set(-1, 0, 0, 0));
            },
          };
        }
        function A() {
          var t = !1,
            n = null,
            r = null,
            i = null;
          return {
            setTest: function (e) {
              e ? Ee(2929) : Me(2929);
            },
            setMask: function (r) {
              n === r || t || (e.depthMask(r), (n = r));
            },
            setFunc: function (t) {
              if (r !== t) {
                if (t)
                  switch (t) {
                    case P:
                      e.depthFunc(512);
                      break;
                    case D:
                      e.depthFunc(519);
                      break;
                    case N:
                      e.depthFunc(513);
                      break;
                    case k:
                      e.depthFunc(515);
                      break;
                    case G:
                      e.depthFunc(514);
                      break;
                    case V:
                      e.depthFunc(518);
                      break;
                    case z:
                      e.depthFunc(516);
                      break;
                    case j:
                      e.depthFunc(517);
                      break;
                    default:
                      e.depthFunc(515);
                  }
                else e.depthFunc(515);
                r = t;
              }
            },
            setLocked: function (e) {
              t = e;
            },
            setClear: function (t) {
              i !== t && (e.clearDepth(t), (i = t));
            },
            reset: function () {
              ((t = !1), (n = null), (r = null), (i = null));
            },
          };
        }
        function c() {
          var t = !1,
            n = null,
            r = null,
            i = null,
            A = null,
            o = null,
            a = null,
            s = null,
            c = null;
          return {
            setTest: function (e) {
              t || (e ? Ee(2960) : Me(2960));
            },
            setMask: function (r) {
              n === r || t || (e.stencilMask(r), (n = r));
            },
            setFunc: function (t, n, o) {
              (r === t && i === n && A === o) ||
                (e.stencilFunc(t, n, o), (r = t), (i = n), (A = o));
            },
            setOp: function (t, n, r) {
              (o === t && a === n && s === r) ||
                (e.stencilOp(t, n, r), (o = t), (a = n), (s = r));
            },
            setLocked: function (e) {
              t = e;
            },
            setClear: function (t) {
              c !== t && (e.clearStencil(t), (c = t));
            },
            reset: function () {
              ((t = !1),
                (n = null),
                (r = null),
                (i = null),
                (A = null),
                (o = null),
                (a = null),
                (s = null),
                (c = null));
            },
          };
        }
        var u = new i(),
          l = new A(),
          h = new c(),
          p = e.getParameter(34921),
          K = new Uint8Array(p),
          W = new Uint8Array(p),
          X = new Uint8Array(p),
          Y = {},
          J = null,
          q = null,
          Z = null,
          $ = null,
          ee = null,
          te = null,
          ne = null,
          re = null,
          ie = null,
          Ae = !1,
          oe = null,
          ae = null,
          se = null,
          ce = null,
          ue = null,
          le = e.getParameter(35661),
          he = !1,
          fe = 0,
          de = e.getParameter(7938);
        -1 !== de.indexOf("WebGL")
          ? ((fe = parseFloat(/^WebGL\ ([0-9])/.exec(de)[1])), (he = fe >= 1))
          : -1 !== de.indexOf("OpenGL ES") &&
            ((fe = parseFloat(/^OpenGL\ ES\ ([0-9])/.exec(de)[1])),
            (he = fe >= 2));
        var pe = null,
          ge = {},
          me = new mn(),
          ve = new mn();
        function ye(t, n, r) {
          var i = new Uint8Array(4),
            A = e.createTexture();
          (e.bindTexture(t, A),
            e.texParameteri(t, 10241, 9728),
            e.texParameteri(t, 10240, 9728));
          for (var o = 0; o < r; o++)
            e.texImage2D(n + o, 0, 6408, 1, 1, 0, 6408, 5121, i);
          return A;
        }
        var we = {};
        function Be() {
          for (var e = 0, t = K.length; e < t; e++) K[e] = 0;
        }
        function be(e) {
          _e(e, 0);
        }
        function _e(n, i) {
          if (
            ((K[n] = 1),
            0 === W[n] && (e.enableVertexAttribArray(n), (W[n] = 1)),
            X[n] !== i)
          ) {
            var A = r ? e : t.get("ANGLE_instanced_arrays");
            (A[r ? "vertexAttribDivisor" : "vertexAttribDivisorANGLE"](n, i),
              (X[n] = i));
          }
        }
        function xe() {
          for (var t = 0, n = W.length; t !== n; ++t)
            W[t] !== K[t] && (e.disableVertexAttribArray(t), (W[t] = 0));
        }
        function Ce(t, n, i, A, o, a) {
          !0 !== r || (5124 !== i && 5125 !== i)
            ? e.vertexAttribPointer(t, n, i, A, o, a)
            : e.vertexAttribIPointer(t, n, i, A, o, a);
        }
        function Ee(t) {
          !0 !== Y[t] && (e.enable(t), (Y[t] = !0));
        }
        function Me(t) {
          !1 !== Y[t] && (e.disable(t), (Y[t] = !1));
        }
        function Se(t) {
          return J !== t && (e.useProgram(t), (J = t), !0);
        }
        ((we[3553] = ye(3553, 3553, 1)),
          (we[34067] = ye(34067, 34069, 6)),
          u.setClear(0, 0, 0, 1),
          l.setClear(1),
          h.setClear(0),
          Ee(2929),
          l.setFunc(k),
          Ie(!1),
          He(a),
          Ee(2884),
          Qe(g));
        var Fe = { [b]: 32774, [_]: 32778, [x]: 32779 };
        if (r) ((Fe[C] = 32775), (Fe[E] = 32776));
        else {
          var Te = t.get("EXT_blend_minmax");
          null !== Te && ((Fe[C] = Te.MIN_EXT), (Fe[E] = Te.MAX_EXT));
        }
        var Ue = {
          [M]: 0,
          [S]: 1,
          [F]: 768,
          [U]: 770,
          [R]: 776,
          [H]: 774,
          [L]: 772,
          [T]: 769,
          [Q]: 771,
          [O]: 775,
          [I]: 773,
        };
        function Qe(t, n, r, i, A, o, a, s) {
          if (t !== g) {
            if ((q || (Ee(3042), (q = !0)), t === B))
              ((A = A || n),
                (o = o || r),
                (a = a || i),
                (n === $ && A === ne) ||
                  (e.blendEquationSeparate(Fe[n], Fe[A]), ($ = n), (ne = A)),
                (r === ee && i === te && o === re && a === ie) ||
                  (e.blendFuncSeparate(Ue[r], Ue[i], Ue[o], Ue[a]),
                  (ee = r),
                  (te = i),
                  (re = o),
                  (ie = a)),
                (Z = t),
                (Ae = null));
            else if (t !== Z || s !== Ae) {
              if (
                (($ === b && ne === b) ||
                  (e.blendEquation(32774), ($ = b), (ne = b)),
                s)
              )
                switch (t) {
                  case m:
                    e.blendFuncSeparate(1, 771, 1, 771);
                    break;
                  case v:
                    e.blendFunc(1, 1);
                    break;
                  case y:
                    e.blendFuncSeparate(0, 0, 769, 771);
                    break;
                  case w:
                    e.blendFuncSeparate(0, 768, 0, 770);
                    break;
                  default:
                    console.log("THREE.WebGLState: Invalid blending: ", t);
                    break;
                }
              else
                switch (t) {
                  case m:
                    e.blendFuncSeparate(770, 771, 1, 771);
                    break;
                  case v:
                    e.blendFunc(770, 1);
                    break;
                  case y:
                    e.blendFunc(0, 769);
                    break;
                  case w:
                    e.blendFunc(0, 768);
                    break;
                  default:
                    console.log("THREE.WebGLState: Invalid blending: ", t);
                    break;
                }
              ((ee = null),
                (te = null),
                (re = null),
                (ie = null),
                (Z = t),
                (Ae = s));
            }
          } else q && (Me(3042), (q = !1));
        }
        function Le(e, t) {
          e.side === d ? Me(2884) : Ee(2884);
          var n = e.side === f;
          (t && (n = !n),
            Ie(n),
            e.blending === m && !1 === e.transparent
              ? Qe(g)
              : Qe(
                  e.blending,
                  e.blendEquation,
                  e.blendSrc,
                  e.blendDst,
                  e.blendEquationAlpha,
                  e.blendSrcAlpha,
                  e.blendDstAlpha,
                  e.premultipliedAlpha,
                ),
            l.setFunc(e.depthFunc),
            l.setTest(e.depthTest),
            l.setMask(e.depthWrite),
            u.setMask(e.colorWrite));
          var r = e.stencilWrite;
          (h.setTest(r),
            r &&
              (h.setMask(e.stencilWriteMask),
              h.setFunc(e.stencilFunc, e.stencilRef, e.stencilFuncMask),
              h.setOp(e.stencilFail, e.stencilZFail, e.stencilZPass)),
            Re(e.polygonOffset, e.polygonOffsetFactor, e.polygonOffsetUnits));
        }
        function Ie(t) {
          oe !== t && (t ? e.frontFace(2304) : e.frontFace(2305), (oe = t));
        }
        function He(t) {
          (t !== o
            ? (Ee(2884),
              t !== ae &&
                (t === a
                  ? e.cullFace(1029)
                  : t === s
                    ? e.cullFace(1028)
                    : e.cullFace(1032)))
            : Me(2884),
            (ae = t));
        }
        function Oe(t) {
          t !== se && (he && e.lineWidth(t), (se = t));
        }
        function Re(t, n, r) {
          t
            ? (Ee(32823),
              (ce === n && ue === r) ||
                (e.polygonOffset(n, r), (ce = n), (ue = r)))
            : Me(32823);
        }
        function Pe(e) {
          e ? Ee(3089) : Me(3089);
        }
        function De(t) {
          (void 0 === t && (t = 33984 + le - 1),
            pe !== t && (e.activeTexture(t), (pe = t)));
        }
        function Ne(t, n) {
          null === pe && De();
          var r = ge[pe];
          (void 0 === r &&
            ((r = { type: void 0, texture: void 0 }), (ge[pe] = r)),
            (r.type === t && r.texture === n) ||
              (e.bindTexture(t, n || we[t]), (r.type = t), (r.texture = n)));
        }
        function ke() {
          var t = ge[pe];
          void 0 !== t &&
            void 0 !== t.type &&
            (e.bindTexture(t.type, null),
            (t.type = void 0),
            (t.texture = void 0));
        }
        function Ge() {
          try {
            e.compressedTexImage2D.apply(e, arguments);
          } catch (t) {
            console.log("THREE.WebGLState:", t);
          }
        }
        function Ve() {
          try {
            e.texImage2D.apply(e, arguments);
          } catch (t) {
            console.log("THREE.WebGLState:", t);
          }
        }
        function ze() {
          try {
            e.texImage3D.apply(e, arguments);
          } catch (t) {
            console.log("THREE.WebGLState:", t);
          }
        }
        function je(t) {
          !1 === me.equals(t) && (e.scissor(t.x, t.y, t.z, t.w), me.copy(t));
        }
        function Ke(t) {
          !1 === ve.equals(t) && (e.viewport(t.x, t.y, t.z, t.w), ve.copy(t));
        }
        function We() {
          for (var t = 0; t < W.length; t++)
            1 === W[t] && (e.disableVertexAttribArray(t), (W[t] = 0));
          ((Y = {}),
            (pe = null),
            (ge = {}),
            (J = null),
            (Z = null),
            (oe = null),
            (ae = null),
            u.reset(),
            l.reset(),
            h.reset());
        }
        return {
          buffers: { color: u, depth: l, stencil: h },
          initAttributes: Be,
          enableAttribute: be,
          enableAttributeAndDivisor: _e,
          disableUnusedAttributes: xe,
          vertexAttribPointer: Ce,
          enable: Ee,
          disable: Me,
          useProgram: Se,
          setBlending: Qe,
          setMaterial: Le,
          setFlipSided: Ie,
          setCullFace: He,
          setLineWidth: Oe,
          setPolygonOffset: Re,
          setScissorTest: Pe,
          activeTexture: De,
          bindTexture: Ne,
          unbindTexture: ke,
          compressedTexImage2D: Ge,
          texImage2D: Ve,
          texImage3D: ze,
          scissor: je,
          viewport: Ke,
          reset: We,
        };
      }
      function Hc(e, t, n, r, i, A, o) {
        var a,
          s = i.isWebGL2,
          c = i.maxTextures,
          u = i.maxCubemapSize,
          l = i.maxTextureSize,
          h = i.maxSamples,
          f = new WeakMap(),
          d = !1;
        try {
          d =
            "undefined" !== typeof OffscreenCanvas &&
            null !== new OffscreenCanvas(1, 1).getContext("2d");
        } catch ($) {}
        function p(e, t) {
          return d
            ? new OffscreenCanvas(e, t)
            : document.createElementNS(
                "http://www.w3.org/1999/xhtml",
                "canvas",
              );
        }
        function g(e, t, n, r) {
          var i = 1;
          if (
            ((e.width > r || e.height > r) &&
              (i = r / Math.max(e.width, e.height)),
            i < 1 || !0 === t)
          ) {
            if (
              ("undefined" !== typeof HTMLImageElement &&
                e instanceof HTMLImageElement) ||
              ("undefined" !== typeof HTMLCanvasElement &&
                e instanceof HTMLCanvasElement) ||
              ("undefined" !== typeof ImageBitmap && e instanceof ImageBitmap)
            ) {
              var A = t ? ln.floorPowerOfTwo : Math.floor,
                o = A(i * e.width),
                s = A(i * e.height);
              void 0 === a && (a = p(o, s));
              var c = n ? p(o, s) : a;
              ((c.width = o), (c.height = s));
              var u = c.getContext("2d");
              return (
                u.drawImage(e, 0, 0, o, s),
                console.warn(
                  "THREE.WebGLRenderer: Texture has been resized from (" +
                    e.width +
                    "x" +
                    e.height +
                    ") to (" +
                    o +
                    "x" +
                    s +
                    ").",
                ),
                c
              );
            }
            return (
              "data" in e &&
                console.warn(
                  "THREE.WebGLRenderer: Image in DataTexture is too big (" +
                    e.width +
                    "x" +
                    e.height +
                    ").",
                ),
              e
            );
          }
          return e;
        }
        function m(e) {
          return ln.isPowerOfTwo(e.width) && ln.isPowerOfTwo(e.height);
        }
        function v(e) {
          return (
            !s &&
            (e.wrapS !== ue ||
              e.wrapT !== ue ||
              (e.minFilter !== he && e.minFilter !== pe))
          );
        }
        function y(e, t) {
          return (
            e.generateMipmaps && t && e.minFilter !== he && e.minFilter !== pe
          );
        }
        function w(t, n, i, A) {
          e.generateMipmap(t);
          var o = r.get(n);
          o.__maxMipLevel = Math.log(Math.max(i, A)) * Math.LOG2E;
        }
        function B(n, r, i) {
          if (!1 === s) return r;
          if (null !== n) {
            if (void 0 !== e[n]) return e[n];
            console.warn(
              "THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '" +
                n +
                "'",
            );
          }
          var A = r;
          return (
            6403 === r &&
              (5126 === i && (A = 33326),
              5131 === i && (A = 33325),
              5121 === i && (A = 33321)),
            6407 === r &&
              (5126 === i && (A = 34837),
              5131 === i && (A = 34843),
              5121 === i && (A = 32849)),
            6408 === r &&
              (5126 === i && (A = 34836),
              5131 === i && (A = 34842),
              5121 === i && (A = 32856)),
            (33325 !== A && 33326 !== A && 34842 !== A && 34836 !== A) ||
              t.get("EXT_color_buffer_float"),
            A
          );
        }
        function b(e) {
          return e === he || e === fe || e === de ? 9728 : 9729;
        }
        function _(e) {
          var t = e.target;
          (t.removeEventListener("dispose", _),
            C(t),
            t.isVideoTexture && f.delete(t),
            o.memory.textures--);
        }
        function x(e) {
          var t = e.target;
          (t.removeEventListener("dispose", x), E(t), o.memory.textures--);
        }
        function C(t) {
          var n = r.get(t);
          void 0 !== n.__webglInit &&
            (e.deleteTexture(n.__webglTexture), r.remove(t));
        }
        function E(t) {
          var n = r.get(t),
            i = r.get(t.texture);
          if (t) {
            if (
              (void 0 !== i.__webglTexture && e.deleteTexture(i.__webglTexture),
              t.depthTexture && t.depthTexture.dispose(),
              t.isWebGLCubeRenderTarget)
            )
              for (var A = 0; A < 6; A++)
                (e.deleteFramebuffer(n.__webglFramebuffer[A]),
                  n.__webglDepthbuffer &&
                    e.deleteRenderbuffer(n.__webglDepthbuffer[A]));
            else
              (e.deleteFramebuffer(n.__webglFramebuffer),
                n.__webglDepthbuffer &&
                  e.deleteRenderbuffer(n.__webglDepthbuffer),
                n.__webglMultisampledFramebuffer &&
                  e.deleteFramebuffer(n.__webglMultisampledFramebuffer),
                n.__webglColorRenderbuffer &&
                  e.deleteRenderbuffer(n.__webglColorRenderbuffer),
                n.__webglDepthRenderbuffer &&
                  e.deleteRenderbuffer(n.__webglDepthRenderbuffer));
            (r.remove(t.texture), r.remove(t));
          }
        }
        var M = 0;
        function S() {
          M = 0;
        }
        function F() {
          var e = M;
          return (
            e >= c &&
              console.warn(
                "THREE.WebGLTextures: Trying to use " +
                  e +
                  " texture units while this GPU supports only " +
                  c,
              ),
            (M += 1),
            e
          );
        }
        function T(e, t) {
          var i = r.get(e);
          if (
            (e.isVideoTexture && X(e),
            e.version > 0 && i.__version !== e.version)
          ) {
            var A = e.image;
            if (void 0 === A)
              console.warn(
                "THREE.WebGLRenderer: Texture marked for update but image is undefined",
              );
            else {
              if (!1 !== A.complete) return void D(i, e, t);
              console.warn(
                "THREE.WebGLRenderer: Texture marked for update but image is incomplete",
              );
            }
          }
          (n.activeTexture(33984 + t), n.bindTexture(3553, i.__webglTexture));
        }
        function U(e, t) {
          var i = r.get(e);
          e.version > 0 && i.__version !== e.version
            ? D(i, e, t)
            : (n.activeTexture(33984 + t),
              n.bindTexture(35866, i.__webglTexture));
        }
        function Q(e, t) {
          var i = r.get(e);
          e.version > 0 && i.__version !== e.version
            ? D(i, e, t)
            : (n.activeTexture(33984 + t),
              n.bindTexture(32879, i.__webglTexture));
        }
        function L(t, i) {
          if (6 === t.image.length) {
            var o = r.get(t);
            if (t.version > 0 && o.__version !== t.version) {
              (P(o, t),
                n.activeTexture(33984 + i),
                n.bindTexture(34067, o.__webglTexture),
                e.pixelStorei(37440, t.flipY));
              for (
                var a =
                    t &&
                    (t.isCompressedTexture || t.image[0].isCompressedTexture),
                  c = t.image[0] && t.image[0].isDataTexture,
                  l = [],
                  h = 0;
                h < 6;
                h++
              )
                l[h] =
                  a || c
                    ? c
                      ? t.image[h].image
                      : t.image[h]
                    : g(t.image[h], !1, !0, u);
              var f,
                d = l[0],
                p = m(d) || s,
                v = A.convert(t.format),
                b = A.convert(t.type),
                _ = B(t.internalFormat, v, b);
              if ((R(34067, t, p), a)) {
                for (h = 0; h < 6; h++) {
                  f = l[h].mipmaps;
                  for (var x = 0; x < f.length; x++) {
                    var C = f[x];
                    t.format !== Qe && t.format !== Ue
                      ? null !== v
                        ? n.compressedTexImage2D(
                            34069 + h,
                            x,
                            _,
                            C.width,
                            C.height,
                            0,
                            C.data,
                          )
                        : console.warn(
                            "THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()",
                          )
                      : n.texImage2D(
                          34069 + h,
                          x,
                          _,
                          C.width,
                          C.height,
                          0,
                          v,
                          b,
                          C.data,
                        );
                  }
                }
                o.__maxMipLevel = f.length - 1;
              } else {
                f = t.mipmaps;
                for (h = 0; h < 6; h++)
                  if (c) {
                    n.texImage2D(
                      34069 + h,
                      0,
                      _,
                      l[h].width,
                      l[h].height,
                      0,
                      v,
                      b,
                      l[h].data,
                    );
                    for (x = 0; x < f.length; x++) {
                      C = f[x];
                      var E = C.image[h].image;
                      n.texImage2D(
                        34069 + h,
                        x + 1,
                        _,
                        E.width,
                        E.height,
                        0,
                        v,
                        b,
                        E.data,
                      );
                    }
                  } else {
                    n.texImage2D(34069 + h, 0, _, v, b, l[h]);
                    for (x = 0; x < f.length; x++) {
                      C = f[x];
                      n.texImage2D(34069 + h, x + 1, _, v, b, C.image[h]);
                    }
                  }
                o.__maxMipLevel = f.length;
              }
              (y(t, p) && w(34067, t, d.width, d.height),
                (o.__version = t.version),
                t.onUpdate && t.onUpdate(t));
            } else
              (n.activeTexture(33984 + i),
                n.bindTexture(34067, o.__webglTexture));
          }
        }
        function I(e, t) {
          (n.activeTexture(33984 + t),
            n.bindTexture(34067, r.get(e).__webglTexture));
        }
        var H = { [ce]: 10497, [ue]: 33071, [le]: 33648 },
          O = {
            [he]: 9728,
            [fe]: 9984,
            [de]: 9986,
            [pe]: 9729,
            [ge]: 9985,
            [me]: 9987,
          };
        function R(n, A, o) {
          o
            ? (e.texParameteri(n, 10242, H[A.wrapS]),
              e.texParameteri(n, 10243, H[A.wrapT]),
              (32879 !== n && 35866 !== n) ||
                e.texParameteri(n, 32882, H[A.wrapR]),
              e.texParameteri(n, 10240, O[A.magFilter]),
              e.texParameteri(n, 10241, O[A.minFilter]))
            : (e.texParameteri(n, 10242, 33071),
              e.texParameteri(n, 10243, 33071),
              (32879 !== n && 35866 !== n) || e.texParameteri(n, 32882, 33071),
              (A.wrapS === ue && A.wrapT === ue) ||
                console.warn(
                  "THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping.",
                ),
              e.texParameteri(n, 10240, b(A.magFilter)),
              e.texParameteri(n, 10241, b(A.minFilter)),
              A.minFilter !== he &&
                A.minFilter !== pe &&
                console.warn(
                  "THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.",
                ));
          var a = t.get("EXT_texture_filter_anisotropic");
          if (a) {
            if (A.type === xe && null === t.get("OES_texture_float_linear"))
              return;
            if (
              A.type === Ce &&
              null === (s || t.get("OES_texture_half_float_linear"))
            )
              return;
            (A.anisotropy > 1 || r.get(A).__currentAnisotropy) &&
              (e.texParameterf(
                n,
                a.TEXTURE_MAX_ANISOTROPY_EXT,
                Math.min(A.anisotropy, i.getMaxAnisotropy()),
              ),
              (r.get(A).__currentAnisotropy = A.anisotropy));
          }
        }
        function P(t, n) {
          void 0 === t.__webglInit &&
            ((t.__webglInit = !0),
            n.addEventListener("dispose", _),
            (t.__webglTexture = e.createTexture()),
            o.memory.textures++);
        }
        function D(t, r, i) {
          var o = 3553;
          (r.isDataTexture2DArray && (o = 35866),
            r.isDataTexture3D && (o = 32879),
            P(t, r),
            n.activeTexture(33984 + i),
            n.bindTexture(o, t.__webglTexture),
            e.pixelStorei(37440, r.flipY),
            e.pixelStorei(37441, r.premultiplyAlpha),
            e.pixelStorei(3317, r.unpackAlignment));
          var a = v(r) && !1 === m(r.image),
            c = g(r.image, a, !1, l),
            u = m(c) || s,
            h = A.convert(r.format),
            f = A.convert(r.type),
            d = B(r.internalFormat, h, f);
          R(o, r, u);
          var p,
            b = r.mipmaps;
          if (r.isDepthTexture)
            ((d = 6402),
              s
                ? (d =
                    r.type === xe
                      ? 36012
                      : r.type === _e
                        ? 33190
                        : r.type === Fe
                          ? 35056
                          : 33189)
                : r.type === xe &&
                  console.log(
                    "WebGLRenderer: Floating point depth texture requires WebGL2.",
                  ),
              r.format === Oe &&
                6402 === d &&
                r.type !== Be &&
                r.type !== _e &&
                (console.warn(
                  "THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture.",
                ),
                (r.type = Be),
                (f = A.convert(r.type))),
              r.format === Re &&
                6402 === d &&
                ((d = 34041),
                r.type !== Fe &&
                  (console.warn(
                    "THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture.",
                  ),
                  (r.type = Fe),
                  (f = A.convert(r.type)))),
              n.texImage2D(3553, 0, d, c.width, c.height, 0, h, f, null));
          else if (r.isDataTexture)
            if (b.length > 0 && u) {
              for (var _ = 0, x = b.length; _ < x; _++)
                ((p = b[_]),
                  n.texImage2D(3553, _, d, p.width, p.height, 0, h, f, p.data));
              ((r.generateMipmaps = !1), (t.__maxMipLevel = b.length - 1));
            } else
              (n.texImage2D(3553, 0, d, c.width, c.height, 0, h, f, c.data),
                (t.__maxMipLevel = 0));
          else if (r.isCompressedTexture) {
            for (_ = 0, x = b.length; _ < x; _++)
              ((p = b[_]),
                r.format !== Qe && r.format !== Ue
                  ? null !== h
                    ? n.compressedTexImage2D(
                        3553,
                        _,
                        d,
                        p.width,
                        p.height,
                        0,
                        p.data,
                      )
                    : console.warn(
                        "THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()",
                      )
                  : n.texImage2D(
                      3553,
                      _,
                      d,
                      p.width,
                      p.height,
                      0,
                      h,
                      f,
                      p.data,
                    ));
            t.__maxMipLevel = b.length - 1;
          } else if (r.isDataTexture2DArray)
            (n.texImage3D(
              35866,
              0,
              d,
              c.width,
              c.height,
              c.depth,
              0,
              h,
              f,
              c.data,
            ),
              (t.__maxMipLevel = 0));
          else if (r.isDataTexture3D)
            (n.texImage3D(
              32879,
              0,
              d,
              c.width,
              c.height,
              c.depth,
              0,
              h,
              f,
              c.data,
            ),
              (t.__maxMipLevel = 0));
          else if (b.length > 0 && u) {
            for (_ = 0, x = b.length; _ < x; _++)
              ((p = b[_]), n.texImage2D(3553, _, d, h, f, p));
            ((r.generateMipmaps = !1), (t.__maxMipLevel = b.length - 1));
          } else (n.texImage2D(3553, 0, d, h, f, c), (t.__maxMipLevel = 0));
          (y(r, u) && w(o, r, c.width, c.height),
            (t.__version = r.version),
            r.onUpdate && r.onUpdate(r));
        }
        function N(t, i, o, a) {
          var s = A.convert(i.texture.format),
            c = A.convert(i.texture.type),
            u = B(i.texture.internalFormat, s, c);
          (n.texImage2D(a, 0, u, i.width, i.height, 0, s, c, null),
            e.bindFramebuffer(36160, t),
            e.framebufferTexture2D(
              36160,
              o,
              a,
              r.get(i.texture).__webglTexture,
              0,
            ),
            e.bindFramebuffer(36160, null));
        }
        function k(t, n, r) {
          if (
            (e.bindRenderbuffer(36161, t), n.depthBuffer && !n.stencilBuffer)
          ) {
            var i = 33189;
            if (r) {
              var o = n.depthTexture;
              o &&
                o.isDepthTexture &&
                (o.type === xe ? (i = 36012) : o.type === _e && (i = 33190));
              var a = W(n);
              e.renderbufferStorageMultisample(36161, a, i, n.width, n.height);
            } else e.renderbufferStorage(36161, i, n.width, n.height);
            e.framebufferRenderbuffer(36160, 36096, 36161, t);
          } else if (n.depthBuffer && n.stencilBuffer) {
            if (r) {
              a = W(n);
              e.renderbufferStorageMultisample(
                36161,
                a,
                35056,
                n.width,
                n.height,
              );
            } else e.renderbufferStorage(36161, 34041, n.width, n.height);
            e.framebufferRenderbuffer(36160, 33306, 36161, t);
          } else {
            var s = A.convert(n.texture.format),
              c = A.convert(n.texture.type);
            i = B(n.texture.internalFormat, s, c);
            if (r) {
              a = W(n);
              e.renderbufferStorageMultisample(36161, a, i, n.width, n.height);
            } else e.renderbufferStorage(36161, i, n.width, n.height);
          }
          e.bindRenderbuffer(36161, null);
        }
        function G(t, n) {
          var i = n && n.isWebGLCubeRenderTarget;
          if (i)
            throw new Error(
              "Depth Texture with cube render targets is not supported",
            );
          if (
            (e.bindFramebuffer(36160, t),
            !n.depthTexture || !n.depthTexture.isDepthTexture)
          )
            throw new Error(
              "renderTarget.depthTexture must be an instance of THREE.DepthTexture",
            );
          ((r.get(n.depthTexture).__webglTexture &&
            n.depthTexture.image.width === n.width &&
            n.depthTexture.image.height === n.height) ||
            ((n.depthTexture.image.width = n.width),
            (n.depthTexture.image.height = n.height),
            (n.depthTexture.needsUpdate = !0)),
            T(n.depthTexture, 0));
          var A = r.get(n.depthTexture).__webglTexture;
          if (n.depthTexture.format === Oe)
            e.framebufferTexture2D(36160, 36096, 3553, A, 0);
          else {
            if (n.depthTexture.format !== Re)
              throw new Error("Unknown depthTexture format");
            e.framebufferTexture2D(36160, 33306, 3553, A, 0);
          }
        }
        function V(t) {
          var n = r.get(t),
            i = !0 === t.isWebGLCubeRenderTarget;
          if (t.depthTexture) {
            if (i)
              throw new Error(
                "target.depthTexture not supported in Cube render targets",
              );
            G(n.__webglFramebuffer, t);
          } else if (i) {
            n.__webglDepthbuffer = [];
            for (var A = 0; A < 6; A++)
              (e.bindFramebuffer(36160, n.__webglFramebuffer[A]),
                (n.__webglDepthbuffer[A] = e.createRenderbuffer()),
                k(n.__webglDepthbuffer[A], t, !1));
          } else
            (e.bindFramebuffer(36160, n.__webglFramebuffer),
              (n.__webglDepthbuffer = e.createRenderbuffer()),
              k(n.__webglDepthbuffer, t, !1));
          e.bindFramebuffer(36160, null);
        }
        function z(t) {
          var i = r.get(t),
            a = r.get(t.texture);
          (t.addEventListener("dispose", x),
            (a.__webglTexture = e.createTexture()),
            o.memory.textures++);
          var c = !0 === t.isWebGLCubeRenderTarget,
            u = !0 === t.isWebGLMultisampleRenderTarget,
            l = m(t) || s;
          if (
            (!s ||
              t.texture.format !== Ue ||
              (t.texture.type !== xe && t.texture.type !== Ce) ||
              ((t.texture.format = Qe),
              console.warn(
                "THREE.WebGLRenderer: Rendering to textures with RGB format is not supported. Using RGBA format instead.",
              )),
            c)
          ) {
            i.__webglFramebuffer = [];
            for (var h = 0; h < 6; h++)
              i.__webglFramebuffer[h] = e.createFramebuffer();
          } else if (((i.__webglFramebuffer = e.createFramebuffer()), u))
            if (s) {
              ((i.__webglMultisampledFramebuffer = e.createFramebuffer()),
                (i.__webglColorRenderbuffer = e.createRenderbuffer()),
                e.bindRenderbuffer(36161, i.__webglColorRenderbuffer));
              var f = A.convert(t.texture.format),
                d = A.convert(t.texture.type),
                p = B(t.texture.internalFormat, f, d),
                g = W(t);
              (e.renderbufferStorageMultisample(36161, g, p, t.width, t.height),
                e.bindFramebuffer(36160, i.__webglMultisampledFramebuffer),
                e.framebufferRenderbuffer(
                  36160,
                  36064,
                  36161,
                  i.__webglColorRenderbuffer,
                ),
                e.bindRenderbuffer(36161, null),
                t.depthBuffer &&
                  ((i.__webglDepthRenderbuffer = e.createRenderbuffer()),
                  k(i.__webglDepthRenderbuffer, t, !0)),
                e.bindFramebuffer(36160, null));
            } else
              console.warn(
                "THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.",
              );
          if (c) {
            (n.bindTexture(34067, a.__webglTexture), R(34067, t.texture, l));
            for (h = 0; h < 6; h++)
              N(i.__webglFramebuffer[h], t, 36064, 34069 + h);
            (y(t.texture, l) && w(34067, t.texture, t.width, t.height),
              n.bindTexture(34067, null));
          } else
            (n.bindTexture(3553, a.__webglTexture),
              R(3553, t.texture, l),
              N(i.__webglFramebuffer, t, 36064, 3553),
              y(t.texture, l) && w(3553, t.texture, t.width, t.height),
              n.bindTexture(3553, null));
          t.depthBuffer && V(t);
        }
        function j(e) {
          var t = e.texture,
            i = m(e) || s;
          if (y(t, i)) {
            var A = e.isWebGLCubeRenderTarget ? 34067 : 3553,
              o = r.get(t).__webglTexture;
            (n.bindTexture(A, o),
              w(A, t, e.width, e.height),
              n.bindTexture(A, null));
          }
        }
        function K(t) {
          if (t.isWebGLMultisampleRenderTarget)
            if (s) {
              var n = r.get(t);
              (e.bindFramebuffer(36008, n.__webglMultisampledFramebuffer),
                e.bindFramebuffer(36009, n.__webglFramebuffer));
              var i = t.width,
                A = t.height,
                o = 16384;
              (t.depthBuffer && (o |= 256),
                t.stencilBuffer && (o |= 1024),
                e.blitFramebuffer(0, 0, i, A, 0, 0, i, A, o, 9728),
                e.bindFramebuffer(36160, n.__webglMultisampledFramebuffer));
            } else
              console.warn(
                "THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.",
              );
        }
        function W(e) {
          return s && e.isWebGLMultisampleRenderTarget
            ? Math.min(h, e.samples)
            : 0;
        }
        function X(e) {
          var t = o.render.frame;
          f.get(e) !== t && (f.set(e, t), e.update());
        }
        var Y = !1,
          J = !1;
        function q(e, t) {
          (e &&
            e.isWebGLRenderTarget &&
            (!1 === Y &&
              (console.warn(
                "THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead.",
              ),
              (Y = !0)),
            (e = e.texture)),
            T(e, t));
        }
        function Z(e, t) {
          (e &&
            e.isWebGLCubeRenderTarget &&
            (!1 === J &&
              (console.warn(
                "THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead.",
              ),
              (J = !0)),
            (e = e.texture)),
            (e && e.isCubeTexture) ||
            (Array.isArray(e.image) && 6 === e.image.length)
              ? L(e, t)
              : I(e, t));
        }
        ((this.allocateTextureUnit = F),
          (this.resetTextureUnits = S),
          (this.setTexture2D = T),
          (this.setTexture2DArray = U),
          (this.setTexture3D = Q),
          (this.setTextureCube = L),
          (this.setTextureCubeDynamic = I),
          (this.setupRenderTarget = z),
          (this.updateRenderTargetMipmap = j),
          (this.updateMultisampleRenderTarget = K),
          (this.safeSetTexture2D = q),
          (this.safeSetTextureCube = Z));
      }
      function Oc(e, t, n) {
        var r = n.isWebGL2;
        function i(e) {
          var n;
          if (e === ve) return 5121;
          if (e === Ee) return 32819;
          if (e === Me) return 32820;
          if (e === Se) return 33635;
          if (e === ye) return 5120;
          if (e === we) return 5122;
          if (e === Be) return 5123;
          if (e === be) return 5124;
          if (e === _e) return 5125;
          if (e === xe) return 5126;
          if (e === Ce)
            return r
              ? 5131
              : ((n = t.get("OES_texture_half_float")),
                null !== n ? n.HALF_FLOAT_OES : null);
          if (e === Te) return 6406;
          if (e === Ue) return 6407;
          if (e === Qe) return 6408;
          if (e === Le) return 6409;
          if (e === Ie) return 6410;
          if (e === Oe) return 6402;
          if (e === Re) return 34041;
          if (e === Pe) return 6403;
          if (e === De) return 36244;
          if (e === Ne) return 33319;
          if (e === ke) return 33320;
          if (e === Ge) return 36248;
          if (e === Ve) return 36249;
          if (e === ze || e === je || e === Ke || e === We) {
            if (((n = t.get("WEBGL_compressed_texture_s3tc")), null === n))
              return null;
            if (e === ze) return n.COMPRESSED_RGB_S3TC_DXT1_EXT;
            if (e === je) return n.COMPRESSED_RGBA_S3TC_DXT1_EXT;
            if (e === Ke) return n.COMPRESSED_RGBA_S3TC_DXT3_EXT;
            if (e === We) return n.COMPRESSED_RGBA_S3TC_DXT5_EXT;
          }
          if (e === Xe || e === Ye || e === Je || e === qe) {
            if (((n = t.get("WEBGL_compressed_texture_pvrtc")), null === n))
              return null;
            if (e === Xe) return n.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;
            if (e === Ye) return n.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;
            if (e === Je) return n.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;
            if (e === qe) return n.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG;
          }
          if (e === Ze)
            return (
              (n = t.get("WEBGL_compressed_texture_etc1")),
              null !== n ? n.COMPRESSED_RGB_ETC1_WEBGL : null
            );
          if (
            (e === $e || e === et) &&
            ((n = t.get("WEBGL_compressed_texture_etc")), null !== n)
          ) {
            if (e === $e) return n.COMPRESSED_RGB8_ETC2;
            if (e === et) return n.COMPRESSED_RGBA8_ETC2_EAC;
          }
          return e === tt ||
            e === nt ||
            e === rt ||
            e === it ||
            e === At ||
            e === ot ||
            e === at ||
            e === st ||
            e === ct ||
            e === ut ||
            e === lt ||
            e === ht ||
            e === ft ||
            e === dt ||
            e === gt ||
            e === mt ||
            e === vt ||
            e === yt ||
            e === wt ||
            e === Bt ||
            e === bt ||
            e === _t ||
            e === xt ||
            e === Ct ||
            e === Et ||
            e === Mt ||
            e === St ||
            e === Ft
            ? ((n = t.get("WEBGL_compressed_texture_astc")),
              null !== n ? e : null)
            : e === pt
              ? ((n = t.get("EXT_texture_compression_bptc")),
                null !== n ? e : null)
              : e === Fe
                ? r
                  ? 34042
                  : ((n = t.get("WEBGL_depth_texture")),
                    null !== n ? n.UNSIGNED_INT_24_8_WEBGL : null)
                : void 0;
        }
        return { convert: i };
      }
      function Rc(e) {
        (Yi.call(this), (this.cameras = e || []));
      }
      function Pc() {
        (Yn.call(this), (this.type = "Group"));
      }
      function Dc() {
        ((this._targetRay = null), (this._grip = null));
      }
      function Nc(e, t) {
        var n = this,
          r = null,
          i = 1,
          A = null,
          o = "local-floor",
          a = null,
          s = [],
          c = new Map(),
          u = new Yi();
        (u.layers.enable(1), (u.viewport = new mn()));
        var l = new Yi();
        (l.layers.enable(2), (l.viewport = new mn()));
        var h = [u, l],
          f = new Rc();
        (f.layers.enable(1), f.layers.enable(2));
        var d = null,
          p = null;
        function g(e) {
          var t = c.get(e.inputSource);
          t && t.dispatchEvent({ type: e.type });
        }
        function m() {
          (c.forEach(function (e, t) {
            e.disconnect(t);
          }),
            c.clear(),
            e.setFramebuffer(null),
            e.setRenderTarget(e.getRenderTarget()),
            E.stop(),
            (n.isPresenting = !1),
            n.dispatchEvent({ type: "sessionend" }));
        }
        function v(e) {
          ((A = e),
            E.setContext(r),
            E.start(),
            (n.isPresenting = !0),
            n.dispatchEvent({ type: "sessionstart" }));
        }
        function y(e) {
          for (var t = r.inputSources, n = 0; n < s.length; n++)
            c.set(t[n], s[n]);
          for (n = 0; n < e.removed.length; n++) {
            var i = e.removed[n],
              A = c.get(i);
            A &&
              (A.dispatchEvent({ type: "disconnected", data: i }), c.delete(i));
          }
          for (n = 0; n < e.added.length; n++) {
            ((i = e.added[n]), (A = c.get(i)));
            A && A.dispatchEvent({ type: "connected", data: i });
          }
        }
        ((this.enabled = !1),
          (this.isPresenting = !1),
          (this.getController = function (e) {
            var t = s[e];
            return (
              void 0 === t && ((t = new Dc()), (s[e] = t)),
              t.getTargetRaySpace()
            );
          }),
          (this.getControllerGrip = function (e) {
            var t = s[e];
            return (
              void 0 === t && ((t = new Dc()), (s[e] = t)),
              t.getGripSpace()
            );
          }),
          (this.setFramebufferScaleFactor = function (e) {
            ((i = e),
              !0 === n.isPresenting &&
                console.warn(
                  "THREE.WebXRManager: Cannot change framebuffer scale while presenting.",
                ));
          }),
          (this.setReferenceSpaceType = function (e) {
            ((o = e),
              !0 === n.isPresenting &&
                console.warn(
                  "THREE.WebXRManager: Cannot change reference space type while presenting.",
                ));
          }),
          (this.getReferenceSpace = function () {
            return A;
          }),
          (this.getSession = function () {
            return r;
          }),
          (this.setSession = function (e) {
            if (((r = e), null !== r)) {
              (r.addEventListener("select", g),
                r.addEventListener("selectstart", g),
                r.addEventListener("selectend", g),
                r.addEventListener("squeeze", g),
                r.addEventListener("squeezestart", g),
                r.addEventListener("squeezeend", g),
                r.addEventListener("end", m));
              var n = t.getContextAttributes();
              !0 !== n.xrCompatible && t.makeXRCompatible();
              var A = {
                  antialias: n.antialias,
                  alpha: n.alpha,
                  depth: n.depth,
                  stencil: n.stencil,
                  framebufferScaleFactor: i,
                },
                a = new XRWebGLLayer(r, t, A);
              (r.updateRenderState({ baseLayer: a }),
                r.requestReferenceSpace(o).then(v),
                r.addEventListener("inputsourceschange", y));
            }
          }));
        var w = new _n(),
          B = new _n();
        function b(e, t, n) {
          (w.setFromMatrixPosition(t.matrixWorld),
            B.setFromMatrixPosition(n.matrixWorld));
          var r = w.distanceTo(B),
            i = t.projectionMatrix.elements,
            A = n.projectionMatrix.elements,
            o = i[14] / (i[10] - 1),
            a = i[14] / (i[10] + 1),
            s = (i[9] + 1) / i[5],
            c = (i[9] - 1) / i[5],
            u = (i[8] - 1) / i[0],
            l = (A[8] + 1) / A[0],
            h = o * u,
            f = o * l,
            d = r / (-u + l),
            p = d * -u;
          (t.matrixWorld.decompose(e.position, e.quaternion, e.scale),
            e.translateX(p),
            e.translateZ(d),
            e.matrixWorld.compose(e.position, e.quaternion, e.scale),
            e.matrixWorldInverse.getInverse(e.matrixWorld));
          var g = o + d,
            m = a + d,
            v = h - p,
            y = f + (r - p),
            b = ((s * a) / m) * g,
            _ = ((c * a) / m) * g;
          e.projectionMatrix.makePerspective(v, y, b, _, g, m);
        }
        function _(e, t) {
          (null === t
            ? e.matrixWorld.copy(e.matrix)
            : e.matrixWorld.multiplyMatrices(t.matrixWorld, e.matrix),
            e.matrixWorldInverse.getInverse(e.matrixWorld));
        }
        this.getCamera = function (e) {
          ((f.near = l.near = u.near = e.near),
            (f.far = l.far = u.far = e.far),
            (d === f.near && p === f.far) ||
              (r.updateRenderState({ depthNear: f.near, depthFar: f.far }),
              (d = f.near),
              (p = f.far)));
          var t = e.parent,
            n = f.cameras;
          _(f, t);
          for (var i = 0; i < n.length; i++) _(n[i], t);
          e.matrixWorld.copy(f.matrixWorld);
          for (var A = e.children, o = ((i = 0), A.length); i < o; i++)
            A[i].updateMatrixWorld(!0);
          return (
            2 === n.length
              ? b(f, u, l)
              : f.projectionMatrix.copy(u.projectionMatrix),
            f
          );
        };
        var x = null;
        function C(t, n) {
          if (((a = n.getViewerPose(A)), null !== a)) {
            var i = a.views,
              o = r.renderState.baseLayer;
            e.setFramebuffer(o.framebuffer);
            var c = !1;
            i.length !== f.cameras.length && ((f.cameras.length = 0), (c = !0));
            for (var u = 0; u < i.length; u++) {
              var l = i[u],
                d = o.getViewport(l),
                p = h[u];
              (p.matrix.fromArray(l.transform.matrix),
                p.projectionMatrix.fromArray(l.projectionMatrix),
                p.viewport.set(d.x, d.y, d.width, d.height),
                0 === u && f.matrix.copy(p.matrix),
                !0 === c && f.cameras.push(p));
            }
          }
          var g = r.inputSources;
          for (u = 0; u < s.length; u++) {
            var m = s[u],
              v = g[u];
            m.update(v, n, A);
          }
          x && x(t, n);
        }
        var E = new AA();
        (E.setAnimationLoop(C),
          (this.setAnimationLoop = function (e) {
            x = e;
          }),
          (this.dispose = function () {}));
      }
      function kc(e) {
        function t(e, t) {
          (e.fogColor.value.copy(t.color),
            t.isFog
              ? ((e.fogNear.value = t.near), (e.fogFar.value = t.far))
              : t.isFogExp2 && (e.fogDensity.value = t.density));
        }
        function n(e, t, n, f, v) {
          t.isMeshBasicMaterial
            ? r(e, t)
            : t.isMeshLambertMaterial
              ? (r(e, t), s(e, t))
              : t.isMeshToonMaterial
                ? (r(e, t), u(e, t))
                : t.isMeshPhongMaterial
                  ? (r(e, t), c(e, t))
                  : t.isMeshStandardMaterial
                    ? (r(e, t, n),
                      t.isMeshPhysicalMaterial ? h(e, t, n) : l(e, t, n))
                    : t.isMeshMatcapMaterial
                      ? (r(e, t), d(e, t))
                      : t.isMeshDepthMaterial
                        ? (r(e, t), p(e, t))
                        : t.isMeshDistanceMaterial
                          ? (r(e, t), g(e, t))
                          : t.isMeshNormalMaterial
                            ? (r(e, t), m(e, t))
                            : t.isLineBasicMaterial
                              ? (i(e, t), t.isLineDashedMaterial && A(e, t))
                              : t.isPointsMaterial
                                ? o(e, t, f, v)
                                : t.isSpriteMaterial
                                  ? a(e, t)
                                  : t.isShadowMaterial
                                    ? (e.color.value.copy(t.color),
                                      (e.opacity.value = t.opacity))
                                    : t.isShaderMaterial &&
                                      (t.uniformsNeedUpdate = !1);
        }
        function r(t, n, r) {
          ((t.opacity.value = n.opacity),
            n.color && t.diffuse.value.copy(n.color),
            n.emissive &&
              t.emissive.value
                .copy(n.emissive)
                .multiplyScalar(n.emissiveIntensity),
            n.map && (t.map.value = n.map),
            n.alphaMap && (t.alphaMap.value = n.alphaMap),
            n.specularMap && (t.specularMap.value = n.specularMap));
          var i,
            A,
            o = n.envMap || r;
          (o &&
            ((t.envMap.value = o),
            (t.flipEnvMap.value = o.isCubeTexture ? -1 : 1),
            (t.reflectivity.value = n.reflectivity),
            (t.refractionRatio.value = n.refractionRatio),
            (t.maxMipLevel.value = e.get(o).__maxMipLevel)),
            n.lightMap &&
              ((t.lightMap.value = n.lightMap),
              (t.lightMapIntensity.value = n.lightMapIntensity)),
            n.aoMap &&
              ((t.aoMap.value = n.aoMap),
              (t.aoMapIntensity.value = n.aoMapIntensity)),
            n.map
              ? (i = n.map)
              : n.specularMap
                ? (i = n.specularMap)
                : n.displacementMap
                  ? (i = n.displacementMap)
                  : n.normalMap
                    ? (i = n.normalMap)
                    : n.bumpMap
                      ? (i = n.bumpMap)
                      : n.roughnessMap
                        ? (i = n.roughnessMap)
                        : n.metalnessMap
                          ? (i = n.metalnessMap)
                          : n.alphaMap
                            ? (i = n.alphaMap)
                            : n.emissiveMap && (i = n.emissiveMap),
            void 0 !== i &&
              (i.isWebGLRenderTarget && (i = i.texture),
              !0 === i.matrixAutoUpdate && i.updateMatrix(),
              t.uvTransform.value.copy(i.matrix)),
            n.aoMap ? (A = n.aoMap) : n.lightMap && (A = n.lightMap),
            void 0 !== A &&
              (A.isWebGLRenderTarget && (A = A.texture),
              !0 === A.matrixAutoUpdate && A.updateMatrix(),
              t.uv2Transform.value.copy(A.matrix)));
        }
        function i(e, t) {
          (e.diffuse.value.copy(t.color), (e.opacity.value = t.opacity));
        }
        function A(e, t) {
          ((e.dashSize.value = t.dashSize),
            (e.totalSize.value = t.dashSize + t.gapSize),
            (e.scale.value = t.scale));
        }
        function o(e, t, n, r) {
          var i;
          (e.diffuse.value.copy(t.color),
            (e.opacity.value = t.opacity),
            (e.size.value = t.size * n),
            (e.scale.value = 0.5 * r),
            t.map && (e.map.value = t.map),
            t.alphaMap && (e.alphaMap.value = t.alphaMap),
            t.map ? (i = t.map) : t.alphaMap && (i = t.alphaMap),
            void 0 !== i &&
              (!0 === i.matrixAutoUpdate && i.updateMatrix(),
              e.uvTransform.value.copy(i.matrix)));
        }
        function a(e, t) {
          var n;
          (e.diffuse.value.copy(t.color),
            (e.opacity.value = t.opacity),
            (e.rotation.value = t.rotation),
            t.map && (e.map.value = t.map),
            t.alphaMap && (e.alphaMap.value = t.alphaMap),
            t.map ? (n = t.map) : t.alphaMap && (n = t.alphaMap),
            void 0 !== n &&
              (!0 === n.matrixAutoUpdate && n.updateMatrix(),
              e.uvTransform.value.copy(n.matrix)));
        }
        function s(e, t) {
          t.emissiveMap && (e.emissiveMap.value = t.emissiveMap);
        }
        function c(e, t) {
          (e.specular.value.copy(t.specular),
            (e.shininess.value = Math.max(t.shininess, 1e-4)),
            t.emissiveMap && (e.emissiveMap.value = t.emissiveMap),
            t.bumpMap &&
              ((e.bumpMap.value = t.bumpMap),
              (e.bumpScale.value = t.bumpScale),
              t.side === f && (e.bumpScale.value *= -1)),
            t.normalMap &&
              ((e.normalMap.value = t.normalMap),
              e.normalScale.value.copy(t.normalScale),
              t.side === f && e.normalScale.value.negate()),
            t.displacementMap &&
              ((e.displacementMap.value = t.displacementMap),
              (e.displacementScale.value = t.displacementScale),
              (e.displacementBias.value = t.displacementBias)));
        }
        function u(e, t) {
          (e.specular.value.copy(t.specular),
            (e.shininess.value = Math.max(t.shininess, 1e-4)),
            t.gradientMap && (e.gradientMap.value = t.gradientMap),
            t.emissiveMap && (e.emissiveMap.value = t.emissiveMap),
            t.bumpMap &&
              ((e.bumpMap.value = t.bumpMap),
              (e.bumpScale.value = t.bumpScale),
              t.side === f && (e.bumpScale.value *= -1)),
            t.normalMap &&
              ((e.normalMap.value = t.normalMap),
              e.normalScale.value.copy(t.normalScale),
              t.side === f && e.normalScale.value.negate()),
            t.displacementMap &&
              ((e.displacementMap.value = t.displacementMap),
              (e.displacementScale.value = t.displacementScale),
              (e.displacementBias.value = t.displacementBias)));
        }
        function l(e, t, n) {
          ((e.roughness.value = t.roughness),
            (e.metalness.value = t.metalness),
            t.roughnessMap && (e.roughnessMap.value = t.roughnessMap),
            t.metalnessMap && (e.metalnessMap.value = t.metalnessMap),
            t.emissiveMap && (e.emissiveMap.value = t.emissiveMap),
            t.bumpMap &&
              ((e.bumpMap.value = t.bumpMap),
              (e.bumpScale.value = t.bumpScale),
              t.side === f && (e.bumpScale.value *= -1)),
            t.normalMap &&
              ((e.normalMap.value = t.normalMap),
              e.normalScale.value.copy(t.normalScale),
              t.side === f && e.normalScale.value.negate()),
            t.displacementMap &&
              ((e.displacementMap.value = t.displacementMap),
              (e.displacementScale.value = t.displacementScale),
              (e.displacementBias.value = t.displacementBias)),
            (t.envMap || n) && (e.envMapIntensity.value = t.envMapIntensity));
        }
        function h(e, t, n) {
          (l(e, t, n),
            (e.reflectivity.value = t.reflectivity),
            (e.clearcoat.value = t.clearcoat),
            (e.clearcoatRoughness.value = t.clearcoatRoughness),
            t.sheen && e.sheen.value.copy(t.sheen),
            t.clearcoatMap && (e.clearcoatMap.value = t.clearcoatMap),
            t.clearcoatRoughnessMap &&
              (e.clearcoatRoughnessMap.value = t.clearcoatRoughnessMap),
            t.clearcoatNormalMap &&
              (e.clearcoatNormalScale.value.copy(t.clearcoatNormalScale),
              (e.clearcoatNormalMap.value = t.clearcoatNormalMap),
              t.side === f && e.clearcoatNormalScale.value.negate()),
            (e.transparency.value = t.transparency));
        }
        function d(e, t) {
          (t.matcap && (e.matcap.value = t.matcap),
            t.bumpMap &&
              ((e.bumpMap.value = t.bumpMap),
              (e.bumpScale.value = t.bumpScale),
              t.side === f && (e.bumpScale.value *= -1)),
            t.normalMap &&
              ((e.normalMap.value = t.normalMap),
              e.normalScale.value.copy(t.normalScale),
              t.side === f && e.normalScale.value.negate()),
            t.displacementMap &&
              ((e.displacementMap.value = t.displacementMap),
              (e.displacementScale.value = t.displacementScale),
              (e.displacementBias.value = t.displacementBias)));
        }
        function p(e, t) {
          t.displacementMap &&
            ((e.displacementMap.value = t.displacementMap),
            (e.displacementScale.value = t.displacementScale),
            (e.displacementBias.value = t.displacementBias));
        }
        function g(e, t) {
          (t.displacementMap &&
            ((e.displacementMap.value = t.displacementMap),
            (e.displacementScale.value = t.displacementScale),
            (e.displacementBias.value = t.displacementBias)),
            e.referencePosition.value.copy(t.referencePosition),
            (e.nearDistance.value = t.nearDistance),
            (e.farDistance.value = t.farDistance));
        }
        function m(e, t) {
          (t.bumpMap &&
            ((e.bumpMap.value = t.bumpMap),
            (e.bumpScale.value = t.bumpScale),
            t.side === f && (e.bumpScale.value *= -1)),
            t.normalMap &&
              ((e.normalMap.value = t.normalMap),
              e.normalScale.value.copy(t.normalScale),
              t.side === f && e.normalScale.value.negate()),
            t.displacementMap &&
              ((e.displacementMap.value = t.displacementMap),
              (e.displacementScale.value = t.displacementScale),
              (e.displacementBias.value = t.displacementBias)));
        }
        return { refreshFogUniforms: t, refreshMaterialUniforms: n };
      }
      function Gc(e) {
        e = e || {};
        var t =
            void 0 !== e.canvas
              ? e.canvas
              : document.createElementNS(
                  "http://www.w3.org/1999/xhtml",
                  "canvas",
                ),
          n = void 0 !== e.context ? e.context : null,
          r = void 0 !== e.alpha && e.alpha,
          i = void 0 === e.depth || e.depth,
          A = void 0 === e.stencil || e.stencil,
          o = void 0 !== e.antialias && e.antialias,
          a = void 0 === e.premultipliedAlpha || e.premultipliedAlpha,
          s = void 0 !== e.preserveDrawingBuffer && e.preserveDrawingBuffer,
          c = void 0 !== e.powerPreference ? e.powerPreference : "default",
          u =
            void 0 !== e.failIfMajorPerformanceCaveat &&
            e.failIfMajorPerformanceCaveat,
          l = null,
          h = null;
        ((this.domElement = t),
          (this.debug = { checkShaderErrors: !0 }),
          (this.autoClear = !0),
          (this.autoClearColor = !0),
          (this.autoClearDepth = !0),
          (this.autoClearStencil = !0),
          (this.sortObjects = !0),
          (this.clippingPlanes = []),
          (this.localClippingEnabled = !1),
          (this.gammaFactor = 2),
          (this.outputEncoding = zt),
          (this.physicallyCorrectLights = !1),
          (this.toneMapping = Y),
          (this.toneMappingExposure = 1),
          (this.toneMappingWhitePoint = 1),
          (this.maxMorphTargets = 8),
          (this.maxMorphNormals = 4));
        var f,
          d,
          p,
          g,
          m,
          v,
          y,
          w,
          B,
          b,
          _,
          x,
          C,
          E,
          M,
          S,
          F,
          T,
          U,
          Q = this,
          L = !1,
          I = null,
          H = 0,
          O = 0,
          R = null,
          P = null,
          D = -1,
          N = { geometry: null, program: null, wireframe: !1 },
          k = null,
          G = null,
          V = new mn(),
          z = new mn(),
          j = null,
          K = t.width,
          W = t.height,
          X = 1,
          J = null,
          q = null,
          Z = new mn(0, 0, K, W),
          $ = new mn(0, 0, K, W),
          ee = !1,
          te = new rA(),
          ne = new Ia(),
          re = !1,
          ie = !1,
          Ae = new Un(),
          oe = new _n();
        function ae() {
          return null === R ? X : 1;
        }
        try {
          var se = {
            alpha: r,
            depth: i,
            stencil: A,
            antialias: o,
            premultipliedAlpha: a,
            preserveDrawingBuffer: s,
            powerPreference: c,
            failIfMajorPerformanceCaveat: u,
          };
          if (
            (t.addEventListener("webglcontextlost", he, !1),
            t.addEventListener("webglcontextrestored", fe, !1),
            (f =
              n ||
              t.getContext("webgl", se) ||
              t.getContext("experimental-webgl", se)),
            null === f)
          )
            throw null !== t.getContext("webgl")
              ? new Error(
                  "Error creating WebGL context with your selected attributes.",
                )
              : new Error("Error creating WebGL context.");
          void 0 === f.getShaderPrecisionFormat &&
            (f.getShaderPrecisionFormat = function () {
              return { rangeMin: 1, rangeMax: 1, precision: 1 };
            });
        } catch (Ie) {
          throw (console.log("THREE.WebGLRenderer: " + Ie.message), Ie);
        }
        function ce() {
          ((d = new Ha(f)),
            (p = new La(f, d, e)),
            !1 === p.isWebGL2 &&
              (d.get("WEBGL_depth_texture"),
              d.get("OES_texture_float"),
              d.get("OES_texture_half_float"),
              d.get("OES_texture_half_float_linear"),
              d.get("OES_standard_derivatives"),
              d.get("OES_element_index_uint"),
              d.get("ANGLE_instanced_arrays")),
            d.get("OES_texture_float_linear"),
            (U = new Oc(f, d, p)),
            (g = new Ic(f, d, p)),
            g.scissor(z.copy($).multiplyScalar(X).floor()),
            g.viewport(V.copy(Z).multiplyScalar(X).floor()),
            (m = new Pa(f)),
            (v = new mc()),
            (y = new Hc(f, d, g, v, p, U, m)),
            (w = new oA(f, p)),
            (B = new Oa(f, w, m)),
            (b = new ka(f, B, w, m)),
            (S = new Na(f)),
            (_ = new gc(Q, d, p)),
            (x = new kc(v)),
            (C = new Bc()),
            (E = new Sc()),
            (M = new Ua(Q, g, b, a)),
            (F = new Qa(f, d, m, p)),
            (T = new Ra(f, d, m, p)),
            (m.programs = _.programs),
            (Q.capabilities = p),
            (Q.extensions = d),
            (Q.properties = v),
            (Q.renderLists = C),
            (Q.state = g),
            (Q.info = m));
        }
        ce();
        var ue = new Nc(Q, f);
        this.xr = ue;
        var le = new Lc(Q, b, p.maxTextureSize);
        function he(e) {
          (e.preventDefault(),
            console.log("THREE.WebGLRenderer: Context Lost."),
            (L = !0));
        }
        function fe() {
          (console.log("THREE.WebGLRenderer: Context Restored."),
            (L = !1),
            ce());
        }
        function de(e) {
          var t = e.target;
          (t.removeEventListener("dispose", de), pe(t));
        }
        function pe(e) {
          (ge(e), v.remove(e));
        }
        function ge(e) {
          var t = v.get(e).program;
          ((e.program = void 0), void 0 !== t && _.releaseProgram(t));
        }
        function me(e, t) {
          e.render(function (e) {
            Q.renderBufferImmediate(e, t);
          });
        }
        ((this.shadowMap = le),
          (this.getContext = function () {
            return f;
          }),
          (this.getContextAttributes = function () {
            return f.getContextAttributes();
          }),
          (this.forceContextLoss = function () {
            var e = d.get("WEBGL_lose_context");
            e && e.loseContext();
          }),
          (this.forceContextRestore = function () {
            var e = d.get("WEBGL_lose_context");
            e && e.restoreContext();
          }),
          (this.getPixelRatio = function () {
            return X;
          }),
          (this.setPixelRatio = function (e) {
            void 0 !== e && ((X = e), this.setSize(K, W, !1));
          }),
          (this.getSize = function (e) {
            return (
              void 0 === e &&
                (console.warn(
                  "WebGLRenderer: .getsize() now requires a Vector2 as an argument",
                ),
                (e = new hn())),
              e.set(K, W)
            );
          }),
          (this.setSize = function (e, n, r) {
            ue.isPresenting
              ? console.warn(
                  "THREE.WebGLRenderer: Can't change size while VR device is presenting.",
                )
              : ((K = e),
                (W = n),
                (t.width = Math.floor(e * X)),
                (t.height = Math.floor(n * X)),
                !1 !== r &&
                  ((t.style.width = e + "px"), (t.style.height = n + "px")),
                this.setViewport(0, 0, e, n));
          }),
          (this.getDrawingBufferSize = function (e) {
            return (
              void 0 === e &&
                (console.warn(
                  "WebGLRenderer: .getdrawingBufferSize() now requires a Vector2 as an argument",
                ),
                (e = new hn())),
              e.set(K * X, W * X).floor()
            );
          }),
          (this.setDrawingBufferSize = function (e, n, r) {
            ((K = e),
              (W = n),
              (X = r),
              (t.width = Math.floor(e * r)),
              (t.height = Math.floor(n * r)),
              this.setViewport(0, 0, e, n));
          }),
          (this.getCurrentViewport = function (e) {
            return (
              void 0 === e &&
                (console.warn(
                  "WebGLRenderer: .getCurrentViewport() now requires a Vector4 as an argument",
                ),
                (e = new mn())),
              e.copy(V)
            );
          }),
          (this.getViewport = function (e) {
            return e.copy(Z);
          }),
          (this.setViewport = function (e, t, n, r) {
            (e.isVector4 ? Z.set(e.x, e.y, e.z, e.w) : Z.set(e, t, n, r),
              g.viewport(V.copy(Z).multiplyScalar(X).floor()));
          }),
          (this.getScissor = function (e) {
            return e.copy($);
          }),
          (this.setScissor = function (e, t, n, r) {
            (e.isVector4 ? $.set(e.x, e.y, e.z, e.w) : $.set(e, t, n, r),
              g.scissor(z.copy($).multiplyScalar(X).floor()));
          }),
          (this.getScissorTest = function () {
            return ee;
          }),
          (this.setScissorTest = function (e) {
            g.setScissorTest((ee = e));
          }),
          (this.setOpaqueSort = function (e) {
            J = e;
          }),
          (this.setTransparentSort = function (e) {
            q = e;
          }),
          (this.getClearColor = function () {
            return M.getClearColor();
          }),
          (this.setClearColor = function () {
            M.setClearColor.apply(M, arguments);
          }),
          (this.getClearAlpha = function () {
            return M.getClearAlpha();
          }),
          (this.setClearAlpha = function () {
            M.setClearAlpha.apply(M, arguments);
          }),
          (this.clear = function (e, t, n) {
            var r = 0;
            ((void 0 === e || e) && (r |= 16384),
              (void 0 === t || t) && (r |= 256),
              (void 0 === n || n) && (r |= 1024),
              f.clear(r));
          }),
          (this.clearColor = function () {
            this.clear(!0, !1, !1);
          }),
          (this.clearDepth = function () {
            this.clear(!1, !0, !1);
          }),
          (this.clearStencil = function () {
            this.clear(!1, !1, !0);
          }),
          (this.dispose = function () {
            (t.removeEventListener("webglcontextlost", he, !1),
              t.removeEventListener("webglcontextrestored", fe, !1),
              C.dispose(),
              E.dispose(),
              v.dispose(),
              b.dispose(),
              ue.dispose(),
              _e.stop());
          }),
          (this.renderBufferImmediate = function (e, t) {
            g.initAttributes();
            var n = v.get(e);
            (e.hasPositions && !n.position && (n.position = f.createBuffer()),
              e.hasNormals && !n.normal && (n.normal = f.createBuffer()),
              e.hasUvs && !n.uv && (n.uv = f.createBuffer()),
              e.hasColors && !n.color && (n.color = f.createBuffer()));
            var r = t.getAttributes();
            (e.hasPositions &&
              (f.bindBuffer(34962, n.position),
              f.bufferData(34962, e.positionArray, 35048),
              g.enableAttribute(r.position),
              f.vertexAttribPointer(r.position, 3, 5126, !1, 0, 0)),
              e.hasNormals &&
                (f.bindBuffer(34962, n.normal),
                f.bufferData(34962, e.normalArray, 35048),
                g.enableAttribute(r.normal),
                f.vertexAttribPointer(r.normal, 3, 5126, !1, 0, 0)),
              e.hasUvs &&
                (f.bindBuffer(34962, n.uv),
                f.bufferData(34962, e.uvArray, 35048),
                g.enableAttribute(r.uv),
                f.vertexAttribPointer(r.uv, 2, 5126, !1, 0, 0)),
              e.hasColors &&
                (f.bindBuffer(34962, n.color),
                f.bufferData(34962, e.colorArray, 35048),
                g.enableAttribute(r.color),
                f.vertexAttribPointer(r.color, 3, 5126, !1, 0, 0)),
              g.disableUnusedAttributes(),
              f.drawArrays(4, 0, e.count),
              (e.count = 0));
          }));
        var ye = new Jn();
        function we(e, t, n, r) {
          if (
            !1 !== p.isWebGL2 ||
            (!e.isInstancedMesh && !t.isInstancedBufferGeometry) ||
            null !== d.get("ANGLE_instanced_arrays")
          ) {
            g.initAttributes();
            var i = t.attributes,
              A = r.getAttributes(),
              o = n.defaultAttributeValues;
            for (var a in A) {
              var s = A[a];
              if (s >= 0) {
                var c = i[a];
                if (void 0 !== c) {
                  var u = c.normalized,
                    l = c.itemSize,
                    h = w.get(c);
                  if (void 0 === h) continue;
                  var m = h.buffer,
                    v = h.type,
                    y = h.bytesPerElement;
                  if (c.isInterleavedBufferAttribute) {
                    var B = c.data,
                      b = B.stride,
                      _ = c.offset;
                    (B && B.isInstancedInterleavedBuffer
                      ? (g.enableAttributeAndDivisor(s, B.meshPerAttribute),
                        void 0 === t._maxInstanceCount &&
                          (t._maxInstanceCount = B.meshPerAttribute * B.count))
                      : g.enableAttribute(s),
                      f.bindBuffer(34962, m),
                      g.vertexAttribPointer(s, l, v, u, b * y, _ * y));
                  } else
                    (c.isInstancedBufferAttribute
                      ? (g.enableAttributeAndDivisor(s, c.meshPerAttribute),
                        void 0 === t._maxInstanceCount &&
                          (t._maxInstanceCount = c.meshPerAttribute * c.count))
                      : g.enableAttribute(s),
                      f.bindBuffer(34962, m),
                      g.vertexAttribPointer(s, l, v, u, 0, 0));
                } else if ("instanceMatrix" === a) {
                  h = w.get(e.instanceMatrix);
                  if (void 0 === h) continue;
                  ((m = h.buffer), (v = h.type));
                  (g.enableAttributeAndDivisor(s + 0, 1),
                    g.enableAttributeAndDivisor(s + 1, 1),
                    g.enableAttributeAndDivisor(s + 2, 1),
                    g.enableAttributeAndDivisor(s + 3, 1),
                    f.bindBuffer(34962, m),
                    f.vertexAttribPointer(s + 0, 4, v, !1, 64, 0),
                    f.vertexAttribPointer(s + 1, 4, v, !1, 64, 16),
                    f.vertexAttribPointer(s + 2, 4, v, !1, 64, 32),
                    f.vertexAttribPointer(s + 3, 4, v, !1, 64, 48));
                } else if (void 0 !== o) {
                  var x = o[a];
                  if (void 0 !== x)
                    switch (x.length) {
                      case 2:
                        f.vertexAttrib2fv(s, x);
                        break;
                      case 3:
                        f.vertexAttrib3fv(s, x);
                        break;
                      case 4:
                        f.vertexAttrib4fv(s, x);
                        break;
                      default:
                        f.vertexAttrib1fv(s, x);
                    }
                }
              }
            }
            g.disableUnusedAttributes();
          }
        }
        ((this.renderBufferDirect = function (e, t, n, r, i, A) {
          null === t && (t = ye);
          var o = i.isMesh && i.matrixWorld.determinant() < 0,
            a = Te(e, t, r, i);
          g.setMaterial(r, o);
          var s = !1;
          ((N.geometry === n.id &&
            N.program === a.id &&
            N.wireframe === (!0 === r.wireframe)) ||
            ((N.geometry = n.id),
            (N.program = a.id),
            (N.wireframe = !0 === r.wireframe),
            (s = !0)),
            (r.morphTargets || r.morphNormals) &&
              (S.update(i, n, r, a), (s = !0)),
            !0 === i.isInstancedMesh && (s = !0));
          var c = n.index,
            u = n.attributes.position;
          if (null === c) {
            if (void 0 === u || 0 === u.count) return;
          } else if (0 === c.count) return;
          var l,
            h = 1;
          !0 === r.wireframe && ((c = B.getWireframeAttribute(n)), (h = 2));
          var d = F;
          (null !== c && ((l = w.get(c)), (d = T), d.setIndex(l)),
            s && (we(i, n, r, a), null !== c && f.bindBuffer(34963, l.buffer)));
          var p = null !== c ? c.count : u.count,
            m = n.drawRange.start * h,
            v = n.drawRange.count * h,
            y = null !== A ? A.start * h : 0,
            b = null !== A ? A.count * h : 1 / 0,
            _ = Math.max(m, y),
            x = Math.min(p, m + v, y + b) - 1,
            C = Math.max(0, x - _ + 1);
          if (0 !== C) {
            if (i.isMesh)
              !0 === r.wireframe
                ? (g.setLineWidth(r.wireframeLinewidth * ae()), d.setMode(1))
                : d.setMode(4);
            else if (i.isLine) {
              var E = r.linewidth;
              (void 0 === E && (E = 1),
                g.setLineWidth(E * ae()),
                i.isLineSegments
                  ? d.setMode(1)
                  : i.isLineLoop
                    ? d.setMode(2)
                    : d.setMode(3));
            } else i.isPoints ? d.setMode(0) : i.isSprite && d.setMode(4);
            if (i.isInstancedMesh) d.renderInstances(n, _, C, i.count);
            else if (n.isInstancedBufferGeometry) {
              var M = Math.min(n.instanceCount, n._maxInstanceCount);
              d.renderInstances(n, _, C, M);
            } else d.render(_, C);
          }
        }),
          (this.compile = function (e, t) {
            ((h = E.get(e, t)),
              h.init(),
              e.traverse(function (e) {
                e.isLight && (h.pushLight(e), e.castShadow && h.pushShadow(e));
              }),
              h.setupLights(t));
            const n = {};
            e.traverse(function (t) {
              let r = t.material;
              if (r)
                if (Array.isArray(r))
                  for (let i = 0; i < r.length; i++) {
                    let A = r[i];
                    A.uuid in n === !1 && (Fe(A, e, t), (n[A.uuid] = !0));
                  }
                else r.uuid in n === !1 && (Fe(r, e, t), (n[r.uuid] = !0));
            });
          }));
        var Be = null;
        function be(e) {
          ue.isPresenting || (Be && Be(e));
        }
        var _e = new AA();
        function Ee(e, t, n, r) {
          if (!1 !== e.visible) {
            var i = e.layers.test(t.layers);
            if (i)
              if (e.isGroup) n = e.renderOrder;
              else if (e.isLOD) !0 === e.autoUpdate && e.update(t);
              else if (e.isLight)
                (h.pushLight(e), e.castShadow && h.pushShadow(e));
              else if (e.isSprite) {
                if (!e.frustumCulled || te.intersectsSprite(e)) {
                  r && oe.setFromMatrixPosition(e.matrixWorld).applyMatrix4(Ae);
                  var A = b.update(e),
                    o = e.material;
                  o.visible && l.push(e, A, o, n, oe.z, null);
                }
              } else if (e.isImmediateRenderObject)
                (r && oe.setFromMatrixPosition(e.matrixWorld).applyMatrix4(Ae),
                  l.push(e, null, e.material, n, oe.z, null));
              else if (
                (e.isMesh || e.isLine || e.isPoints) &&
                (e.isSkinnedMesh &&
                  e.skeleton.frame !== m.render.frame &&
                  (e.skeleton.update(), (e.skeleton.frame = m.render.frame)),
                !e.frustumCulled || te.intersectsObject(e))
              ) {
                r && oe.setFromMatrixPosition(e.matrixWorld).applyMatrix4(Ae);
                ((A = b.update(e)), (o = e.material));
                if (Array.isArray(o))
                  for (var a = A.groups, s = 0, c = a.length; s < c; s++) {
                    var u = a[s],
                      f = o[u.materialIndex];
                    f && f.visible && l.push(e, A, f, n, oe.z, u);
                  }
                else o.visible && l.push(e, A, o, n, oe.z, null);
              }
            var d = e.children;
            for (s = 0, c = d.length; s < c; s++) Ee(d[s], t, n, r);
          }
        }
        function Me(e, t, n, r) {
          for (var i = 0, A = e.length; i < A; i++) {
            var o = e[i],
              a = o.object,
              s = o.geometry,
              c = void 0 === r ? o.material : r,
              u = o.group;
            if (n.isArrayCamera) {
              G = n;
              for (var l = n.cameras, f = 0, d = l.length; f < d; f++) {
                var p = l[f];
                a.layers.test(p.layers) &&
                  (g.viewport(V.copy(p.viewport)),
                  h.setupLights(p),
                  Se(a, t, p, s, c, u));
              }
            } else ((G = null), Se(a, t, n, s, c, u));
          }
        }
        function Se(e, t, n, r, i, A) {
          if (
            (e.onBeforeRender(Q, t, n, r, i, A),
            (h = E.get(t, G || n)),
            e.modelViewMatrix.multiplyMatrices(
              n.matrixWorldInverse,
              e.matrixWorld,
            ),
            e.normalMatrix.getNormalMatrix(e.modelViewMatrix),
            e.isImmediateRenderObject)
          ) {
            var o = Te(n, t, i, e);
            (g.setMaterial(i),
              (N.geometry = null),
              (N.program = null),
              (N.wireframe = !1),
              me(e, o));
          } else Q.renderBufferDirect(n, t, r, i, e, A);
          (e.onAfterRender(Q, t, n, r, i, A), (h = E.get(t, G || n)));
        }
        function Fe(e, t, n) {
          var r = v.get(e),
            i = h.state.lights,
            A = h.state.shadowsArray,
            o = i.state.version,
            a = _.getParameters(
              e,
              i.state,
              A,
              t,
              ne.numPlanes,
              ne.numIntersection,
              n,
            ),
            s = _.getProgramCacheKey(a),
            c = r.program,
            u = !0;
          if (void 0 === c) e.addEventListener("dispose", de);
          else if (c.cacheKey !== s) ge(e);
          else if (r.lightsStateVersion !== o)
            ((r.lightsStateVersion = o), (u = !1));
          else {
            if (void 0 !== a.shaderID) return;
            u = !1;
          }
          u &&
            ((c = _.acquireProgram(a, s)),
            (r.program = c),
            (r.uniforms = a.uniforms),
            (r.outputEncoding = a.outputEncoding),
            (e.program = c));
          var l = c.getAttributes();
          if (e.morphTargets) {
            e.numSupportedMorphTargets = 0;
            for (var f = 0; f < Q.maxMorphTargets; f++)
              l["morphTarget" + f] >= 0 && e.numSupportedMorphTargets++;
          }
          if (e.morphNormals) {
            e.numSupportedMorphNormals = 0;
            for (f = 0; f < Q.maxMorphNormals; f++)
              l["morphNormal" + f] >= 0 && e.numSupportedMorphNormals++;
          }
          var d = r.uniforms;
          (((e.isShaderMaterial || e.isRawShaderMaterial) &&
            !0 !== e.clipping) ||
            ((r.numClippingPlanes = ne.numPlanes),
            (r.numIntersection = ne.numIntersection),
            (d.clippingPlanes = ne.uniform)),
            (r.environment = e.isMeshStandardMaterial ? t.environment : null),
            (r.fog = t.fog),
            (r.needsLights = Le(e)),
            (r.lightsStateVersion = o),
            r.needsLights &&
              ((d.ambientLightColor.value = i.state.ambient),
              (d.lightProbe.value = i.state.probe),
              (d.directionalLights.value = i.state.directional),
              (d.directionalLightShadows.value = i.state.directionalShadow),
              (d.spotLights.value = i.state.spot),
              (d.spotLightShadows.value = i.state.spotShadow),
              (d.rectAreaLights.value = i.state.rectArea),
              (d.pointLights.value = i.state.point),
              (d.pointLightShadows.value = i.state.pointShadow),
              (d.hemisphereLights.value = i.state.hemi),
              (d.directionalShadowMap.value = i.state.directionalShadowMap),
              (d.directionalShadowMatrix.value =
                i.state.directionalShadowMatrix),
              (d.spotShadowMap.value = i.state.spotShadowMap),
              (d.spotShadowMatrix.value = i.state.spotShadowMatrix),
              (d.pointShadowMap.value = i.state.pointShadowMap),
              (d.pointShadowMatrix.value = i.state.pointShadowMatrix)));
          var p = r.program.getUniforms(),
            g = ks.seqWithValue(p.seq, d);
          r.uniformsList = g;
        }
        function Te(e, t, n, r) {
          y.resetTextureUnits();
          var i = t.fog,
            A = n.isMeshStandardMaterial ? t.environment : null,
            o = null === R ? Q.outputEncoding : R.texture.encoding,
            a = v.get(n),
            s = h.state.lights;
          if (re && (ie || e !== k)) {
            var c = e === k && n.id === D;
            ne.setState(
              n.clippingPlanes,
              n.clipIntersection,
              n.clipShadows,
              e,
              a,
              c,
            );
          }
          n.version === a.__version
            ? void 0 === a.program ||
              (n.fog && a.fog !== i) ||
              a.environment !== A ||
              (a.needsLights && a.lightsStateVersion !== s.state.version)
              ? Fe(n, t, r)
              : void 0 === a.numClippingPlanes ||
                  (a.numClippingPlanes === ne.numPlanes &&
                    a.numIntersection === ne.numIntersection)
                ? a.outputEncoding !== o && Fe(n, t, r)
                : Fe(n, t, r)
            : (Fe(n, t, r), (a.__version = n.version));
          var u = !1,
            l = !1,
            d = !1,
            m = a.program,
            w = m.getUniforms(),
            B = a.uniforms;
          if (
            (g.useProgram(m.program) && ((u = !0), (l = !0), (d = !0)),
            n.id !== D && ((D = n.id), (l = !0)),
            u || k !== e)
          ) {
            if (
              (w.setValue(f, "projectionMatrix", e.projectionMatrix),
              p.logarithmicDepthBuffer &&
                w.setValue(
                  f,
                  "logDepthBufFC",
                  2 / (Math.log(e.far + 1) / Math.LN2),
                ),
              k !== e && ((k = e), (l = !0), (d = !0)),
              n.isShaderMaterial ||
                n.isMeshPhongMaterial ||
                n.isMeshToonMaterial ||
                n.isMeshStandardMaterial ||
                n.envMap)
            ) {
              var b = w.map.cameraPosition;
              void 0 !== b &&
                b.setValue(f, oe.setFromMatrixPosition(e.matrixWorld));
            }
            ((n.isMeshPhongMaterial ||
              n.isMeshToonMaterial ||
              n.isMeshLambertMaterial ||
              n.isMeshBasicMaterial ||
              n.isMeshStandardMaterial ||
              n.isShaderMaterial) &&
              w.setValue(f, "isOrthographic", !0 === e.isOrthographicCamera),
              (n.isMeshPhongMaterial ||
                n.isMeshToonMaterial ||
                n.isMeshLambertMaterial ||
                n.isMeshBasicMaterial ||
                n.isMeshStandardMaterial ||
                n.isShaderMaterial ||
                n.skinning) &&
                w.setValue(f, "viewMatrix", e.matrixWorldInverse));
          }
          if (n.skinning) {
            (w.setOptional(f, r, "bindMatrix"),
              w.setOptional(f, r, "bindMatrixInverse"));
            var _ = r.skeleton;
            if (_) {
              var C = _.bones;
              if (p.floatVertexTextures) {
                if (void 0 === _.boneTexture) {
                  var E = Math.sqrt(4 * C.length);
                  ((E = ln.ceilPowerOfTwo(E)), (E = Math.max(E, 4)));
                  var M = new Float32Array(E * E * 4);
                  M.set(_.boneMatrices);
                  var S = new eA(M, E, E, Qe, xe);
                  ((_.boneMatrices = M),
                    (_.boneTexture = S),
                    (_.boneTextureSize = E));
                }
                (w.setValue(f, "boneTexture", _.boneTexture, y),
                  w.setValue(f, "boneTextureSize", _.boneTextureSize));
              } else w.setOptional(f, _, "boneMatrices");
            }
          }
          return (
            (l || a.receiveShadow !== r.receiveShadow) &&
              ((a.receiveShadow = r.receiveShadow),
              w.setValue(f, "receiveShadow", r.receiveShadow)),
            l &&
              (w.setValue(f, "toneMappingExposure", Q.toneMappingExposure),
              w.setValue(f, "toneMappingWhitePoint", Q.toneMappingWhitePoint),
              a.needsLights && Ue(B, d),
              i && n.fog && x.refreshFogUniforms(B, i),
              x.refreshMaterialUniforms(B, n, A, X, W),
              void 0 !== B.ltc_1 && (B.ltc_1.value = iA.LTC_1),
              void 0 !== B.ltc_2 && (B.ltc_2.value = iA.LTC_2),
              ks.upload(f, a.uniformsList, B, y)),
            n.isShaderMaterial &&
              !0 === n.uniformsNeedUpdate &&
              (ks.upload(f, a.uniformsList, B, y), (n.uniformsNeedUpdate = !1)),
            n.isSpriteMaterial && w.setValue(f, "center", r.center),
            w.setValue(f, "modelViewMatrix", r.modelViewMatrix),
            w.setValue(f, "normalMatrix", r.normalMatrix),
            w.setValue(f, "modelMatrix", r.matrixWorld),
            m
          );
        }
        function Ue(e, t) {
          ((e.ambientLightColor.needsUpdate = t),
            (e.lightProbe.needsUpdate = t),
            (e.directionalLights.needsUpdate = t),
            (e.directionalLightShadows.needsUpdate = t),
            (e.pointLights.needsUpdate = t),
            (e.pointLightShadows.needsUpdate = t),
            (e.spotLights.needsUpdate = t),
            (e.spotLightShadows.needsUpdate = t),
            (e.rectAreaLights.needsUpdate = t),
            (e.hemisphereLights.needsUpdate = t));
        }
        function Le(e) {
          return (
            e.isMeshLambertMaterial ||
            e.isMeshToonMaterial ||
            e.isMeshPhongMaterial ||
            e.isMeshStandardMaterial ||
            e.isShadowMaterial ||
            (e.isShaderMaterial && !0 === e.lights)
          );
        }
        (_e.setAnimationLoop(be),
          "undefined" !== typeof window && _e.setContext(window),
          (this.setAnimationLoop = function (e) {
            ((Be = e), ue.setAnimationLoop(e), _e.start());
          }),
          (this.render = function (e, t) {
            var n, r;
            if (
              (void 0 !== arguments[2] &&
                (console.warn(
                  "THREE.WebGLRenderer.render(): the renderTarget argument has been removed. Use .setRenderTarget() instead.",
                ),
                (n = arguments[2])),
              void 0 !== arguments[3] &&
                (console.warn(
                  "THREE.WebGLRenderer.render(): the forceClear argument has been removed. Use .clear() instead.",
                ),
                (r = arguments[3])),
              t && t.isCamera)
            ) {
              if (!L) {
                ((N.geometry = null),
                  (N.program = null),
                  (N.wireframe = !1),
                  (D = -1),
                  (k = null),
                  !0 === e.autoUpdate && e.updateMatrixWorld(),
                  null === t.parent && t.updateMatrixWorld(),
                  ue.enabled && ue.isPresenting && (t = ue.getCamera(t)),
                  e.onBeforeRender(Q, e, t, n || R),
                  (h = E.get(e, t)),
                  h.init(),
                  Ae.multiplyMatrices(t.projectionMatrix, t.matrixWorldInverse),
                  te.setFromProjectionMatrix(Ae),
                  (ie = this.localClippingEnabled),
                  (re = ne.init(this.clippingPlanes, ie, t)),
                  (l = C.get(e, t)),
                  l.init(),
                  Ee(e, t, 0, Q.sortObjects),
                  l.finish(),
                  !0 === Q.sortObjects && l.sort(J, q),
                  re && ne.beginShadows());
                var i = h.state.shadowsArray;
                (le.render(i, e, t),
                  h.setupLights(t),
                  re && ne.endShadows(),
                  this.info.autoReset && this.info.reset(),
                  void 0 !== n && this.setRenderTarget(n),
                  M.render(l, e, t, r));
                var A = l.opaque,
                  o = l.transparent;
                if (e.overrideMaterial) {
                  var a = e.overrideMaterial;
                  (A.length && Me(A, e, t, a), o.length && Me(o, e, t, a));
                } else (A.length && Me(A, e, t), o.length && Me(o, e, t));
                (e.onAfterRender(Q, e, t),
                  null !== R &&
                    (y.updateRenderTargetMipmap(R),
                    y.updateMultisampleRenderTarget(R)),
                  g.buffers.depth.setTest(!0),
                  g.buffers.depth.setMask(!0),
                  g.buffers.color.setMask(!0),
                  g.setPolygonOffset(!1),
                  (l = null),
                  (h = null));
              }
            } else
              console.log(
                "THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.",
              );
          }),
          (this.setFramebuffer = function (e) {
            (I !== e && null === R && f.bindFramebuffer(36160, e), (I = e));
          }),
          (this.getActiveCubeFace = function () {
            return H;
          }),
          (this.getActiveMipmapLevel = function () {
            return O;
          }),
          (this.getRenderTarget = function () {
            return R;
          }),
          (this.setRenderTarget = function (e, t, n) {
            ((R = e),
              (H = t),
              (O = n),
              e &&
                void 0 === v.get(e).__webglFramebuffer &&
                y.setupRenderTarget(e));
            var r = I,
              i = !1;
            if (e) {
              var A = v.get(e).__webglFramebuffer;
              (e.isWebGLCubeRenderTarget
                ? ((r = A[t || 0]), (i = !0))
                : (r = e.isWebGLMultisampleRenderTarget
                    ? v.get(e).__webglMultisampledFramebuffer
                    : A),
                V.copy(e.viewport),
                z.copy(e.scissor),
                (j = e.scissorTest));
            } else
              (V.copy(Z).multiplyScalar(X).floor(),
                z.copy($).multiplyScalar(X).floor(),
                (j = ee));
            if (
              (P !== r && (f.bindFramebuffer(36160, r), (P = r)),
              g.viewport(V),
              g.scissor(z),
              g.setScissorTest(j),
              i)
            ) {
              var o = v.get(e.texture);
              f.framebufferTexture2D(
                36160,
                36064,
                34069 + (t || 0),
                o.__webglTexture,
                n || 0,
              );
            }
          }),
          (this.readRenderTargetPixels = function (e, t, n, r, i, A, o) {
            if (e && e.isWebGLRenderTarget) {
              var a = v.get(e).__webglFramebuffer;
              if (
                (e.isWebGLCubeRenderTarget && void 0 !== o && (a = a[o]), a)
              ) {
                var s = !1;
                a !== P && (f.bindFramebuffer(36160, a), (s = !0));
                try {
                  var c = e.texture,
                    u = c.format,
                    l = c.type;
                  if (u !== Qe && U.convert(u) !== f.getParameter(35739))
                    return void console.log(
                      "THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.",
                    );
                  if (
                    l !== ve &&
                    U.convert(l) !== f.getParameter(35738) &&
                    (l !== xe ||
                      !(
                        p.isWebGL2 ||
                        d.get("OES_texture_float") ||
                        d.get("WEBGL_color_buffer_float")
                      )) &&
                    (l !== Ce ||
                      !(p.isWebGL2
                        ? d.get("EXT_color_buffer_float")
                        : d.get("EXT_color_buffer_half_float")))
                  )
                    return void console.log(
                      "THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.",
                    );
                  36053 === f.checkFramebufferStatus(36160)
                    ? t >= 0 &&
                      t <= e.width - r &&
                      n >= 0 &&
                      n <= e.height - i &&
                      f.readPixels(t, n, r, i, U.convert(u), U.convert(l), A)
                    : console.log(
                        "THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.",
                      );
                } finally {
                  s && f.bindFramebuffer(36160, P);
                }
              }
            } else
              console.log(
                "THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.",
              );
          }),
          (this.copyFramebufferToTexture = function (e, t, n) {
            void 0 === n && (n = 0);
            var r = Math.pow(2, -n),
              i = Math.floor(t.image.width * r),
              A = Math.floor(t.image.height * r),
              o = U.convert(t.format);
            (y.setTexture2D(t, 0),
              f.copyTexImage2D(3553, n, o, e.x, e.y, i, A, 0),
              g.unbindTexture());
          }),
          (this.copyTextureToTexture = function (e, t, n, r) {
            void 0 === r && (r = 0);
            var i = t.image.width,
              A = t.image.height,
              o = U.convert(n.format),
              a = U.convert(n.type);
            (y.setTexture2D(n, 0),
              t.isDataTexture
                ? f.texSubImage2D(3553, r, e.x, e.y, i, A, o, a, t.image.data)
                : t.isCompressedTexture
                  ? f.compressedTexSubImage2D(
                      3553,
                      r,
                      e.x,
                      e.y,
                      t.mipmaps[0].width,
                      t.mipmaps[0].height,
                      o,
                      t.mipmaps[0].data,
                    )
                  : f.texSubImage2D(3553, r, e.x, e.y, o, a, t.image),
              0 === r && n.generateMipmaps && f.generateMipmap(3553),
              g.unbindTexture());
          }),
          (this.initTexture = function (e) {
            (y.setTexture2D(e, 0), g.unbindTexture());
          }),
          "undefined" !== typeof __THREE_DEVTOOLS__ &&
            __THREE_DEVTOOLS__.dispatchEvent(
              new CustomEvent("observe", { detail: this }),
            ));
      }
      function Vc(e, t) {
        ((this.name = ""),
          (this.color = new Nr(e)),
          (this.density = void 0 !== t ? t : 25e-5));
      }
      function zc(e, t, n) {
        ((this.name = ""),
          (this.color = new Nr(e)),
          (this.near = void 0 !== t ? t : 1),
          (this.far = void 0 !== n ? n : 1e3));
      }
      function jc(e, t) {
        ((this.array = e),
          (this.stride = t),
          (this.count = void 0 !== e ? e.length / t : 0),
          (this.usage = An),
          (this.updateRange = { offset: 0, count: -1 }),
          (this.version = 0));
      }
      ((Rc.prototype = Object.assign(Object.create(Yi.prototype), {
        constructor: Rc,
        isArrayCamera: !0,
      })),
        (Pc.prototype = Object.assign(Object.create(Yn.prototype), {
          constructor: Pc,
          isGroup: !0,
        })),
        Object.assign(Dc.prototype, {
          constructor: Dc,
          getTargetRaySpace: function () {
            return (
              null === this._targetRay &&
                ((this._targetRay = new Pc()),
                (this._targetRay.matrixAutoUpdate = !1),
                (this._targetRay.visible = !1)),
              this._targetRay
            );
          },
          getGripSpace: function () {
            return (
              null === this._grip &&
                ((this._grip = new Pc()),
                (this._grip.matrixAutoUpdate = !1),
                (this._grip.visible = !1)),
              this._grip
            );
          },
          dispatchEvent: function (e) {
            return (
              null !== this._targetRay && this._targetRay.dispatchEvent(e),
              null !== this._grip && this._grip.dispatchEvent(e),
              this
            );
          },
          disconnect: function (e) {
            return (
              this.dispatchEvent({ type: "disconnected", data: e }),
              null !== this._targetRay && (this._targetRay.visible = !1),
              null !== this._grip && (this._grip.visible = !1),
              this
            );
          },
          update: function (e, t, n) {
            var r = null,
              i = null,
              A = this._targetRay,
              o = this._grip;
            return (
              e &&
                (null !== A &&
                  ((r = t.getPose(e.targetRaySpace, n)),
                  null !== r &&
                    (A.matrix.fromArray(r.transform.matrix),
                    A.matrix.decompose(A.position, A.rotation, A.scale))),
                null !== o &&
                  e.gripSpace &&
                  ((i = t.getPose(e.gripSpace, n)),
                  null !== i &&
                    (o.matrix.fromArray(i.transform.matrix),
                    o.matrix.decompose(o.position, o.rotation, o.scale)))),
              null !== A && (A.visible = null !== r),
              null !== o && (o.visible = null !== i),
              this
            );
          },
        }),
        Object.assign(Nc.prototype, an.prototype),
        Object.assign(Vc.prototype, {
          isFogExp2: !0,
          clone: function () {
            return new Vc(this.color, this.density);
          },
          toJSON: function () {
            return {
              type: "FogExp2",
              color: this.color.getHex(),
              density: this.density,
            };
          },
        }),
        Object.assign(zc.prototype, {
          isFog: !0,
          clone: function () {
            return new zc(this.color, this.near, this.far);
          },
          toJSON: function () {
            return {
              type: "Fog",
              color: this.color.getHex(),
              near: this.near,
              far: this.far,
            };
          },
        }),
        Object.defineProperty(jc.prototype, "needsUpdate", {
          set: function (e) {
            !0 === e && this.version++;
          },
        }),
        Object.assign(jc.prototype, {
          isInterleavedBuffer: !0,
          onUploadCallback: function () {},
          setUsage: function (e) {
            return ((this.usage = e), this);
          },
          copy: function (e) {
            return (
              (this.array = new e.array.constructor(e.array)),
              (this.count = e.count),
              (this.stride = e.stride),
              (this.usage = e.usage),
              this
            );
          },
          copyAt: function (e, t, n) {
            ((e *= this.stride), (n *= t.stride));
            for (var r = 0, i = this.stride; r < i; r++)
              this.array[e + r] = t.array[n + r];
            return this;
          },
          set: function (e, t) {
            return (void 0 === t && (t = 0), this.array.set(e, t), this);
          },
          clone: function () {
            return new this.constructor().copy(this);
          },
          onUpload: function (e) {
            return ((this.onUploadCallback = e), this);
          },
        }));
      var Kc,
        Wc = new _n();
      function Xc(e, t, n, r) {
        ((this.name = ""),
          (this.data = e),
          (this.itemSize = t),
          (this.offset = n),
          (this.normalized = !0 === r));
      }
      function Yc(e) {
        (Kr.call(this),
          (this.type = "SpriteMaterial"),
          (this.color = new Nr(16777215)),
          (this.map = null),
          (this.alphaMap = null),
          (this.rotation = 0),
          (this.sizeAttenuation = !0),
          (this.transparent = !0),
          this.setValues(e));
      }
      (Object.defineProperties(Xc.prototype, {
        count: {
          get: function () {
            return this.data.count;
          },
        },
        array: {
          get: function () {
            return this.data.array;
          },
        },
      }),
        Object.assign(Xc.prototype, {
          isInterleavedBufferAttribute: !0,
          applyMatrix4: function (e) {
            for (var t = 0, n = this.data.count; t < n; t++)
              ((Wc.x = this.getX(t)),
                (Wc.y = this.getY(t)),
                (Wc.z = this.getZ(t)),
                Wc.applyMatrix4(e),
                this.setXYZ(t, Wc.x, Wc.y, Wc.z));
            return this;
          },
          setX: function (e, t) {
            return (
              (this.data.array[e * this.data.stride + this.offset] = t),
              this
            );
          },
          setY: function (e, t) {
            return (
              (this.data.array[e * this.data.stride + this.offset + 1] = t),
              this
            );
          },
          setZ: function (e, t) {
            return (
              (this.data.array[e * this.data.stride + this.offset + 2] = t),
              this
            );
          },
          setW: function (e, t) {
            return (
              (this.data.array[e * this.data.stride + this.offset + 3] = t),
              this
            );
          },
          getX: function (e) {
            return this.data.array[e * this.data.stride + this.offset];
          },
          getY: function (e) {
            return this.data.array[e * this.data.stride + this.offset + 1];
          },
          getZ: function (e) {
            return this.data.array[e * this.data.stride + this.offset + 2];
          },
          getW: function (e) {
            return this.data.array[e * this.data.stride + this.offset + 3];
          },
          setXY: function (e, t, n) {
            return (
              (e = e * this.data.stride + this.offset),
              (this.data.array[e + 0] = t),
              (this.data.array[e + 1] = n),
              this
            );
          },
          setXYZ: function (e, t, n, r) {
            return (
              (e = e * this.data.stride + this.offset),
              (this.data.array[e + 0] = t),
              (this.data.array[e + 1] = n),
              (this.data.array[e + 2] = r),
              this
            );
          },
          setXYZW: function (e, t, n, r, i) {
            return (
              (e = e * this.data.stride + this.offset),
              (this.data.array[e + 0] = t),
              (this.data.array[e + 1] = n),
              (this.data.array[e + 2] = r),
              (this.data.array[e + 3] = i),
              this
            );
          },
          clone: function () {
            console.log(
              "THREE.InterleavedBufferAttribute.clone(): Cloning an interlaved buffer attribute will deinterleave buffer data.",
            );
            for (var e = [], t = 0; t < this.count; t++)
              for (
                var n = t * this.data.stride + this.offset, r = 0;
                r < this.itemSize;
                r++
              )
                e.push(this.data.array[n + r]);
            return new Yr(
              new this.array.constructor(e),
              this.itemSize,
              this.normalized,
            );
          },
          toJSON: function () {
            console.log(
              "THREE.InterleavedBufferAttribute.toJSON(): Serializing an interlaved buffer attribute will deinterleave buffer data.",
            );
            for (var e = [], t = 0; t < this.count; t++)
              for (
                var n = t * this.data.stride + this.offset, r = 0;
                r < this.itemSize;
                r++
              )
                e.push(this.data.array[n + r]);
            return {
              itemSize: this.itemSize,
              type: this.array.constructor.name,
              array: e,
              normalized: this.normalized,
            };
          },
        }),
        (Yc.prototype = Object.create(Kr.prototype)),
        (Yc.prototype.constructor = Yc),
        (Yc.prototype.isSpriteMaterial = !0),
        (Yc.prototype.copy = function (e) {
          return (
            Kr.prototype.copy.call(this, e),
            this.color.copy(e.color),
            (this.map = e.map),
            (this.alphaMap = e.alphaMap),
            (this.rotation = e.rotation),
            (this.sizeAttenuation = e.sizeAttenuation),
            this
          );
        }));
      var Jc = new _n(),
        qc = new _n(),
        Zc = new _n(),
        $c = new hn(),
        eu = new hn(),
        tu = new Un(),
        nu = new _n(),
        ru = new _n(),
        iu = new _n(),
        Au = new hn(),
        ou = new hn(),
        au = new hn();
      function su(e) {
        if ((Yn.call(this), (this.type = "Sprite"), void 0 === Kc)) {
          Kc = new di();
          var t = new Float32Array([
              -0.5, -0.5, 0, 0, 0, 0.5, -0.5, 0, 1, 0, 0.5, 0.5, 0, 1, 1, -0.5,
              0.5, 0, 0, 1,
            ]),
            n = new jc(t, 5);
          (Kc.setIndex([0, 1, 2, 0, 2, 3]),
            Kc.setAttribute("position", new Xc(n, 3, 0, !1)),
            Kc.setAttribute("uv", new Xc(n, 2, 3, !1)));
        }
        ((this.geometry = Kc),
          (this.material = void 0 !== e ? e : new Yc()),
          (this.center = new hn(0.5, 0.5)));
      }
      function cu(e, t, n, r, i, A) {
        ($c.subVectors(e, n).addScalar(0.5).multiply(r),
          void 0 !== i
            ? ((eu.x = A * $c.x - i * $c.y), (eu.y = i * $c.x + A * $c.y))
            : eu.copy($c),
          e.copy(t),
          (e.x += eu.x),
          (e.y += eu.y),
          e.applyMatrix4(tu));
      }
      su.prototype = Object.assign(Object.create(Yn.prototype), {
        constructor: su,
        isSprite: !0,
        raycast: function (e, t) {
          (null === e.camera &&
            console.log(
              'THREE.Sprite: "Raycaster.camera" needs to be set in order to raycast against sprites.',
            ),
            qc.setFromMatrixScale(this.matrixWorld),
            tu.copy(e.camera.matrixWorld),
            this.modelViewMatrix.multiplyMatrices(
              e.camera.matrixWorldInverse,
              this.matrixWorld,
            ),
            Zc.setFromMatrixPosition(this.modelViewMatrix),
            e.camera.isPerspectiveCamera &&
              !1 === this.material.sizeAttenuation &&
              qc.multiplyScalar(-Zc.z));
          var n,
            r,
            i = this.material.rotation;
          0 !== i && ((r = Math.cos(i)), (n = Math.sin(i)));
          var A = this.center;
          (cu(nu.set(-0.5, -0.5, 0), Zc, A, qc, n, r),
            cu(ru.set(0.5, -0.5, 0), Zc, A, qc, n, r),
            cu(iu.set(0.5, 0.5, 0), Zc, A, qc, n, r),
            Au.set(0, 0),
            ou.set(1, 0),
            au.set(1, 1));
          var o = e.ray.intersectTriangle(nu, ru, iu, !1, Jc);
          if (
            null !== o ||
            (cu(ru.set(-0.5, 0.5, 0), Zc, A, qc, n, r),
            ou.set(0, 1),
            (o = e.ray.intersectTriangle(nu, iu, ru, !1, Jc)),
            null !== o)
          ) {
            var a = e.ray.origin.distanceTo(Jc);
            a < e.near ||
              a > e.far ||
              t.push({
                distance: a,
                point: Jc.clone(),
                uv: Or.getUV(Jc, nu, ru, iu, Au, ou, au, new hn()),
                face: null,
                object: this,
              });
          }
        },
        clone: function () {
          return new this.constructor(this.material).copy(this);
        },
        copy: function (e) {
          return (
            Yn.prototype.copy.call(this, e),
            void 0 !== e.center && this.center.copy(e.center),
            this
          );
        },
      });
      var uu = new _n(),
        lu = new _n();
      function hu() {
        (Yn.call(this),
          (this._currentLevel = 0),
          (this.type = "LOD"),
          Object.defineProperties(this, {
            levels: { enumerable: !0, value: [] },
          }),
          (this.autoUpdate = !0));
      }
      function fu(e, t) {
        (e &&
          e.isGeometry &&
          console.log(
            "THREE.SkinnedMesh no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.",
          ),
          Qi.call(this, e, t),
          (this.type = "SkinnedMesh"),
          (this.bindMode = "attached"),
          (this.bindMatrix = new Un()),
          (this.bindMatrixInverse = new Un()));
      }
      ((hu.prototype = Object.assign(Object.create(Yn.prototype), {
        constructor: hu,
        isLOD: !0,
        copy: function (e) {
          Yn.prototype.copy.call(this, e, !1);
          for (var t = e.levels, n = 0, r = t.length; n < r; n++) {
            var i = t[n];
            this.addLevel(i.object.clone(), i.distance);
          }
          return ((this.autoUpdate = e.autoUpdate), this);
        },
        addLevel: function (e, t) {
          (void 0 === t && (t = 0), (t = Math.abs(t)));
          for (var n = this.levels, r = 0; r < n.length; r++)
            if (t < n[r].distance) break;
          return (
            n.splice(r, 0, { distance: t, object: e }),
            this.add(e),
            this
          );
        },
        getCurrentLevel: function () {
          return this._currentLevel;
        },
        getObjectForDistance: function (e) {
          var t = this.levels;
          if (t.length > 0) {
            for (var n = 1, r = t.length; n < r; n++)
              if (e < t[n].distance) break;
            return t[n - 1].object;
          }
          return null;
        },
        raycast: function (e, t) {
          var n = this.levels;
          if (n.length > 0) {
            uu.setFromMatrixPosition(this.matrixWorld);
            var r = e.ray.origin.distanceTo(uu);
            this.getObjectForDistance(r).raycast(e, t);
          }
        },
        update: function (e) {
          var t = this.levels;
          if (t.length > 1) {
            (uu.setFromMatrixPosition(e.matrixWorld),
              lu.setFromMatrixPosition(this.matrixWorld));
            var n = uu.distanceTo(lu) / e.zoom;
            t[0].object.visible = !0;
            for (var r = 1, i = t.length; r < i; r++) {
              if (!(n >= t[r].distance)) break;
              ((t[r - 1].object.visible = !1), (t[r].object.visible = !0));
            }
            for (this._currentLevel = r - 1; r < i; r++)
              t[r].object.visible = !1;
          }
        },
        toJSON: function (e) {
          var t = Yn.prototype.toJSON.call(this, e);
          (!1 === this.autoUpdate && (t.object.autoUpdate = !1),
            (t.object.levels = []));
          for (var n = this.levels, r = 0, i = n.length; r < i; r++) {
            var A = n[r];
            t.object.levels.push({
              object: A.object.uuid,
              distance: A.distance,
            });
          }
          return t;
        },
      })),
        (fu.prototype = Object.assign(Object.create(Qi.prototype), {
          constructor: fu,
          isSkinnedMesh: !0,
          bind: function (e, t) {
            ((this.skeleton = e),
              void 0 === t &&
                (this.updateMatrixWorld(!0),
                this.skeleton.calculateInverses(),
                (t = this.matrixWorld)),
              this.bindMatrix.copy(t),
              this.bindMatrixInverse.getInverse(t));
          },
          pose: function () {
            this.skeleton.pose();
          },
          normalizeSkinWeights: function () {
            for (
              var e = new mn(),
                t = this.geometry.attributes.skinWeight,
                n = 0,
                r = t.count;
              n < r;
              n++
            ) {
              ((e.x = t.getX(n)),
                (e.y = t.getY(n)),
                (e.z = t.getZ(n)),
                (e.w = t.getW(n)));
              var i = 1 / e.manhattanLength();
              (i !== 1 / 0 ? e.multiplyScalar(i) : e.set(1, 0, 0, 0),
                t.setXYZW(n, e.x, e.y, e.z, e.w));
            }
          },
          updateMatrixWorld: function (e) {
            (Qi.prototype.updateMatrixWorld.call(this, e),
              "attached" === this.bindMode
                ? this.bindMatrixInverse.getInverse(this.matrixWorld)
                : "detached" === this.bindMode
                  ? this.bindMatrixInverse.getInverse(this.bindMatrix)
                  : console.warn(
                      "THREE.SkinnedMesh: Unrecognized bindMode: " +
                        this.bindMode,
                    ));
          },
          clone: function () {
            return new this.constructor(this.geometry, this.material).copy(
              this,
            );
          },
          boneTransform: (function () {
            var e = new _n(),
              t = new mn(),
              n = new mn(),
              r = new _n(),
              i = new Un();
            return function (A, o) {
              var a = this.skeleton,
                s = this.geometry;
              (t.fromBufferAttribute(s.attributes.skinIndex, A),
                n.fromBufferAttribute(s.attributes.skinWeight, A),
                e
                  .fromBufferAttribute(s.attributes.position, A)
                  .applyMatrix4(this.bindMatrix),
                o.set(0, 0, 0));
              for (var c = 0; c < 4; c++) {
                var u = n.getComponent(c);
                if (0 !== u) {
                  var l = t.getComponent(c);
                  (i.multiplyMatrices(
                    a.bones[l].matrixWorld,
                    a.boneInverses[l],
                  ),
                    o.addScaledVector(r.copy(e).applyMatrix4(i), u));
                }
              }
              return o.applyMatrix4(this.bindMatrixInverse);
            };
          })(),
        })));
      var du = new Un(),
        pu = new Un();
      function gu(e, t) {
        if (
          ((e = e || []),
          (this.bones = e.slice(0)),
          (this.boneMatrices = new Float32Array(16 * this.bones.length)),
          (this.frame = -1),
          void 0 === t)
        )
          this.calculateInverses();
        else if (this.bones.length === t.length) this.boneInverses = t.slice(0);
        else {
          (console.warn("THREE.Skeleton boneInverses is the wrong length."),
            (this.boneInverses = []));
          for (var n = 0, r = this.bones.length; n < r; n++)
            this.boneInverses.push(new Un());
        }
      }
      function mu() {
        (Yn.call(this), (this.type = "Bone"));
      }
      (Object.assign(gu.prototype, {
        calculateInverses: function () {
          this.boneInverses = [];
          for (var e = 0, t = this.bones.length; e < t; e++) {
            var n = new Un();
            (this.bones[e] && n.getInverse(this.bones[e].matrixWorld),
              this.boneInverses.push(n));
          }
        },
        pose: function () {
          var e, t, n;
          for (t = 0, n = this.bones.length; t < n; t++)
            ((e = this.bones[t]),
              e && e.matrixWorld.getInverse(this.boneInverses[t]));
          for (t = 0, n = this.bones.length; t < n; t++)
            ((e = this.bones[t]),
              e &&
                (e.parent && e.parent.isBone
                  ? (e.matrix.getInverse(e.parent.matrixWorld),
                    e.matrix.multiply(e.matrixWorld))
                  : e.matrix.copy(e.matrixWorld),
                e.matrix.decompose(e.position, e.quaternion, e.scale)));
        },
        update: function () {
          for (
            var e = this.bones,
              t = this.boneInverses,
              n = this.boneMatrices,
              r = this.boneTexture,
              i = 0,
              A = e.length;
            i < A;
            i++
          ) {
            var o = e[i] ? e[i].matrixWorld : pu;
            (du.multiplyMatrices(o, t[i]), du.toArray(n, 16 * i));
          }
          void 0 !== r && (r.needsUpdate = !0);
        },
        clone: function () {
          return new gu(this.bones, this.boneInverses);
        },
        getBoneByName: function (e) {
          for (var t = 0, n = this.bones.length; t < n; t++) {
            var r = this.bones[t];
            if (r.name === e) return r;
          }
        },
        dispose: function () {
          this.boneTexture &&
            (this.boneTexture.dispose(), (this.boneTexture = void 0));
        },
      }),
        (mu.prototype = Object.assign(Object.create(Yn.prototype), {
          constructor: mu,
          isBone: !0,
        })));
      var vu = new Un(),
        yu = new Un(),
        wu = [],
        Bu = new Qi();
      function bu(e, t, n) {
        (Qi.call(this, e, t),
          (this.instanceMatrix = new Yr(new Float32Array(16 * n), 16)),
          (this.count = n),
          (this.frustumCulled = !1));
      }
      function _u(e) {
        (Kr.call(this),
          (this.type = "LineBasicMaterial"),
          (this.color = new Nr(16777215)),
          (this.linewidth = 1),
          (this.linecap = "round"),
          (this.linejoin = "round"),
          (this.morphTargets = !1),
          this.setValues(e));
      }
      ((bu.prototype = Object.assign(Object.create(Qi.prototype), {
        constructor: bu,
        isInstancedMesh: !0,
        getMatrixAt: function (e, t) {
          t.fromArray(this.instanceMatrix.array, 16 * e);
        },
        raycast: function (e, t) {
          var n = this.matrixWorld,
            r = this.count;
          if (
            ((Bu.geometry = this.geometry),
            (Bu.material = this.material),
            void 0 !== Bu.material)
          )
            for (var i = 0; i < r; i++) {
              (this.getMatrixAt(i, vu),
                yu.multiplyMatrices(n, vu),
                (Bu.matrixWorld = yu),
                Bu.raycast(e, wu));
              for (var A = 0, o = wu.length; A < o; A++) {
                var a = wu[A];
                ((a.instanceId = i), (a.object = this), t.push(a));
              }
              wu.length = 0;
            }
        },
        setMatrixAt: function (e, t) {
          t.toArray(this.instanceMatrix.array, 16 * e);
        },
        updateMorphTargets: function () {},
      })),
        (_u.prototype = Object.create(Kr.prototype)),
        (_u.prototype.constructor = _u),
        (_u.prototype.isLineBasicMaterial = !0),
        (_u.prototype.copy = function (e) {
          return (
            Kr.prototype.copy.call(this, e),
            this.color.copy(e.color),
            (this.linewidth = e.linewidth),
            (this.linecap = e.linecap),
            (this.linejoin = e.linejoin),
            (this.morphTargets = e.morphTargets),
            this
          );
        }));
      var xu = new _n(),
        Cu = new _n(),
        Eu = new Un(),
        Mu = new Br(),
        Su = new fr();
      function Fu(e, t, n) {
        (1 === n &&
          console.log(
            "THREE.Line: parameter THREE.LinePieces no longer supported. Use THREE.LineSegments instead.",
          ),
          Yn.call(this),
          (this.type = "Line"),
          (this.geometry = void 0 !== e ? e : new di()),
          (this.material = void 0 !== t ? t : new _u()),
          this.updateMorphTargets());
      }
      Fu.prototype = Object.assign(Object.create(Yn.prototype), {
        constructor: Fu,
        isLine: !0,
        computeLineDistances: function () {
          var e = this.geometry;
          if (e.isBufferGeometry)
            if (null === e.index) {
              for (
                var t = e.attributes.position, n = [0], r = 1, i = t.count;
                r < i;
                r++
              )
                (xu.fromBufferAttribute(t, r - 1),
                  Cu.fromBufferAttribute(t, r),
                  (n[r] = n[r - 1]),
                  (n[r] += xu.distanceTo(Cu)));
              e.setAttribute("lineDistance", new ri(n, 1));
            } else
              console.warn(
                "THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.",
              );
          else if (e.isGeometry) {
            var A = e.vertices;
            n = e.lineDistances;
            n[0] = 0;
            for (r = 1, i = A.length; r < i; r++)
              ((n[r] = n[r - 1]), (n[r] += A[r - 1].distanceTo(A[r])));
          }
          return this;
        },
        raycast: function (e, t) {
          var n = this.geometry,
            r = this.matrixWorld,
            i = e.params.Line.threshold;
          if (
            (null === n.boundingSphere && n.computeBoundingSphere(),
            Su.copy(n.boundingSphere),
            Su.applyMatrix4(r),
            (Su.radius += i),
            !1 !== e.ray.intersectsSphere(Su))
          ) {
            (Eu.getInverse(r), Mu.copy(e.ray).applyMatrix4(Eu));
            var A = i / ((this.scale.x + this.scale.y + this.scale.z) / 3),
              o = A * A,
              a = new _n(),
              s = new _n(),
              c = new _n(),
              u = new _n(),
              l = this && this.isLineSegments ? 2 : 1;
            if (n.isBufferGeometry) {
              var h = n.index,
                f = n.attributes,
                d = f.position.array;
              if (null !== h)
                for (var p = h.array, g = 0, m = p.length - 1; g < m; g += l) {
                  var v = p[g],
                    y = p[g + 1];
                  (a.fromArray(d, 3 * v), s.fromArray(d, 3 * y));
                  var w = Mu.distanceSqToSegment(a, s, u, c);
                  if (!(w > o)) {
                    u.applyMatrix4(this.matrixWorld);
                    var B = e.ray.origin.distanceTo(u);
                    B < e.near ||
                      B > e.far ||
                      t.push({
                        distance: B,
                        point: c.clone().applyMatrix4(this.matrixWorld),
                        index: g,
                        face: null,
                        faceIndex: null,
                        object: this,
                      });
                  }
                }
              else
                for (g = 0, m = d.length / 3 - 1; g < m; g += l) {
                  (a.fromArray(d, 3 * g), s.fromArray(d, 3 * g + 3));
                  w = Mu.distanceSqToSegment(a, s, u, c);
                  if (!(w > o)) {
                    u.applyMatrix4(this.matrixWorld);
                    B = e.ray.origin.distanceTo(u);
                    B < e.near ||
                      B > e.far ||
                      t.push({
                        distance: B,
                        point: c.clone().applyMatrix4(this.matrixWorld),
                        index: g,
                        face: null,
                        faceIndex: null,
                        object: this,
                      });
                  }
                }
            } else if (n.isGeometry) {
              var b = n.vertices,
                _ = b.length;
              for (g = 0; g < _ - 1; g += l) {
                w = Mu.distanceSqToSegment(b[g], b[g + 1], u, c);
                if (!(w > o)) {
                  u.applyMatrix4(this.matrixWorld);
                  B = e.ray.origin.distanceTo(u);
                  B < e.near ||
                    B > e.far ||
                    t.push({
                      distance: B,
                      point: c.clone().applyMatrix4(this.matrixWorld),
                      index: g,
                      face: null,
                      faceIndex: null,
                      object: this,
                    });
                }
              }
            }
          }
        },
        updateMorphTargets: function () {
          var e,
            t,
            n,
            r = this.geometry;
          if (r.isBufferGeometry) {
            var i = r.morphAttributes,
              A = Object.keys(i);
            if (A.length > 0) {
              var o = i[A[0]];
              if (void 0 !== o)
                for (
                  this.morphTargetInfluences = [],
                    this.morphTargetDictionary = {},
                    e = 0,
                    t = o.length;
                  e < t;
                  e++
                )
                  ((n = o[e].name || String(e)),
                    this.morphTargetInfluences.push(0),
                    (this.morphTargetDictionary[n] = e));
            }
          } else {
            var a = r.morphTargets;
            void 0 !== a &&
              a.length > 0 &&
              console.log(
                "THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.",
              );
          }
        },
        clone: function () {
          return new this.constructor(this.geometry, this.material).copy(this);
        },
      });
      var Tu = new _n(),
        Uu = new _n();
      function Qu(e, t) {
        (Fu.call(this, e, t), (this.type = "LineSegments"));
      }
      function Lu(e, t) {
        (Fu.call(this, e, t), (this.type = "LineLoop"));
      }
      function Iu(e) {
        (Kr.call(this),
          (this.type = "PointsMaterial"),
          (this.color = new Nr(16777215)),
          (this.map = null),
          (this.alphaMap = null),
          (this.size = 1),
          (this.sizeAttenuation = !0),
          (this.morphTargets = !1),
          this.setValues(e));
      }
      ((Qu.prototype = Object.assign(Object.create(Fu.prototype), {
        constructor: Qu,
        isLineSegments: !0,
        computeLineDistances: function () {
          var e = this.geometry;
          if (e.isBufferGeometry)
            if (null === e.index) {
              for (
                var t = e.attributes.position, n = [], r = 0, i = t.count;
                r < i;
                r += 2
              )
                (Tu.fromBufferAttribute(t, r),
                  Uu.fromBufferAttribute(t, r + 1),
                  (n[r] = 0 === r ? 0 : n[r - 1]),
                  (n[r + 1] = n[r] + Tu.distanceTo(Uu)));
              e.setAttribute("lineDistance", new ri(n, 1));
            } else
              console.warn(
                "THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.",
              );
          else if (e.isGeometry) {
            var A = e.vertices;
            for (n = e.lineDistances, r = 0, i = A.length; r < i; r += 2)
              (Tu.copy(A[r]),
                Uu.copy(A[r + 1]),
                (n[r] = 0 === r ? 0 : n[r - 1]),
                (n[r + 1] = n[r] + Tu.distanceTo(Uu)));
          }
          return this;
        },
      })),
        (Lu.prototype = Object.assign(Object.create(Fu.prototype), {
          constructor: Lu,
          isLineLoop: !0,
        })),
        (Iu.prototype = Object.create(Kr.prototype)),
        (Iu.prototype.constructor = Iu),
        (Iu.prototype.isPointsMaterial = !0),
        (Iu.prototype.copy = function (e) {
          return (
            Kr.prototype.copy.call(this, e),
            this.color.copy(e.color),
            (this.map = e.map),
            (this.alphaMap = e.alphaMap),
            (this.size = e.size),
            (this.sizeAttenuation = e.sizeAttenuation),
            (this.morphTargets = e.morphTargets),
            this
          );
        }));
      var Hu = new Un(),
        Ou = new Br(),
        Ru = new fr(),
        Pu = new _n();
      function Du(e, t) {
        (Yn.call(this),
          (this.type = "Points"),
          (this.geometry = void 0 !== e ? e : new di()),
          (this.material = void 0 !== t ? t : new Iu()),
          this.updateMorphTargets());
      }
      function Nu(e, t, n, r, i, A, o) {
        var a = Ou.distanceSqToPoint(e);
        if (a < n) {
          var s = new _n();
          (Ou.closestPointToPoint(e, s), s.applyMatrix4(r));
          var c = i.ray.origin.distanceTo(s);
          if (c < i.near || c > i.far) return;
          A.push({
            distance: c,
            distanceToRay: Math.sqrt(a),
            point: s,
            index: t,
            face: null,
            object: o,
          });
        }
      }
      function ku(e, t, n, r, i, A, o, a, s) {
        (gn.call(this, e, t, n, r, i, A, o, a, s),
          (this.format = void 0 !== o ? o : Ue),
          (this.minFilter = void 0 !== A ? A : pe),
          (this.magFilter = void 0 !== i ? i : pe),
          (this.generateMipmaps = !1));
      }
      function Gu(e, t, n, r, i, A, o, a, s, c, u, l) {
        (gn.call(this, null, A, o, a, s, c, r, i, u, l),
          (this.image = { width: t, height: n }),
          (this.mipmaps = e),
          (this.flipY = !1),
          (this.generateMipmaps = !1));
      }
      function Vu(e, t, n, r, i, A, o, a, s) {
        (gn.call(this, e, t, n, r, i, A, o, a, s), (this.needsUpdate = !0));
      }
      function zu(e, t, n, r, i, A, o, a, s, c) {
        if (((c = void 0 !== c ? c : Oe), c !== Oe && c !== Re))
          throw new Error(
            "DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat",
          );
        (void 0 === n && c === Oe && (n = Be),
          void 0 === n && c === Re && (n = Fe),
          gn.call(this, null, r, i, A, o, a, c, n, s),
          (this.image = { width: e, height: t }),
          (this.magFilter = void 0 !== o ? o : he),
          (this.minFilter = void 0 !== a ? a : he),
          (this.flipY = !1),
          (this.generateMipmaps = !1));
      }
      function ju(e) {
        (di.call(this), (this.type = "WireframeGeometry"));
        var t,
          n,
          r,
          i,
          A,
          o,
          a,
          s,
          c,
          u,
          l = [],
          h = [0, 0],
          f = {},
          d = ["a", "b", "c"];
        if (e && e.isGeometry) {
          var p = e.faces;
          for (t = 0, r = p.length; t < r; t++) {
            var g = p[t];
            for (n = 0; n < 3; n++)
              ((a = g[d[n]]),
                (s = g[d[(n + 1) % 3]]),
                (h[0] = Math.min(a, s)),
                (h[1] = Math.max(a, s)),
                (c = h[0] + "," + h[1]),
                void 0 === f[c] && (f[c] = { index1: h[0], index2: h[1] }));
          }
          for (c in f)
            ((o = f[c]),
              (u = e.vertices[o.index1]),
              l.push(u.x, u.y, u.z),
              (u = e.vertices[o.index2]),
              l.push(u.x, u.y, u.z));
        } else if (e && e.isBufferGeometry) {
          var m, v, y, w, B, b, _, x;
          if (((u = new _n()), null !== e.index)) {
            for (
              m = e.attributes.position,
                v = e.index,
                y = e.groups,
                0 === y.length &&
                  (y = [{ start: 0, count: v.count, materialIndex: 0 }]),
                i = 0,
                A = y.length;
              i < A;
              ++i
            )
              for (
                w = y[i], B = w.start, b = w.count, t = B, r = B + b;
                t < r;
                t += 3
              )
                for (n = 0; n < 3; n++)
                  ((a = v.getX(t + n)),
                    (s = v.getX(t + ((n + 1) % 3))),
                    (h[0] = Math.min(a, s)),
                    (h[1] = Math.max(a, s)),
                    (c = h[0] + "," + h[1]),
                    void 0 === f[c] && (f[c] = { index1: h[0], index2: h[1] }));
            for (c in f)
              ((o = f[c]),
                u.fromBufferAttribute(m, o.index1),
                l.push(u.x, u.y, u.z),
                u.fromBufferAttribute(m, o.index2),
                l.push(u.x, u.y, u.z));
          } else
            for (m = e.attributes.position, t = 0, r = m.count / 3; t < r; t++)
              for (n = 0; n < 3; n++)
                ((_ = 3 * t + n),
                  u.fromBufferAttribute(m, _),
                  l.push(u.x, u.y, u.z),
                  (x = 3 * t + ((n + 1) % 3)),
                  u.fromBufferAttribute(m, x),
                  l.push(u.x, u.y, u.z));
        }
        this.setAttribute("position", new ri(l, 3));
      }
      function Ku(e, t, n) {
        (Di.call(this),
          (this.type = "ParametricGeometry"),
          (this.parameters = { func: e, slices: t, stacks: n }),
          this.fromBufferGeometry(new Wu(e, t, n)),
          this.mergeVertices());
      }
      function Wu(e, t, n) {
        (di.call(this),
          (this.type = "ParametricBufferGeometry"),
          (this.parameters = { func: e, slices: t, stacks: n }));
        var r,
          i,
          A = [],
          o = [],
          a = [],
          s = [],
          c = 1e-5,
          u = new _n(),
          l = new _n(),
          h = new _n(),
          f = new _n(),
          d = new _n();
        e.length < 3 &&
          console.log(
            "THREE.ParametricGeometry: Function must now modify a Vector3 as third parameter.",
          );
        var p = t + 1;
        for (r = 0; r <= n; r++) {
          var g = r / n;
          for (i = 0; i <= t; i++) {
            var m = i / t;
            (e(m, g, l),
              o.push(l.x, l.y, l.z),
              m - c >= 0
                ? (e(m - c, g, h), f.subVectors(l, h))
                : (e(m + c, g, h), f.subVectors(h, l)),
              g - c >= 0
                ? (e(m, g - c, h), d.subVectors(l, h))
                : (e(m, g + c, h), d.subVectors(h, l)),
              u.crossVectors(f, d).normalize(),
              a.push(u.x, u.y, u.z),
              s.push(m, g));
          }
        }
        for (r = 0; r < n; r++)
          for (i = 0; i < t; i++) {
            var v = r * p + i,
              y = r * p + i + 1,
              w = (r + 1) * p + i + 1,
              B = (r + 1) * p + i;
            (A.push(v, y, B), A.push(y, w, B));
          }
        (this.setIndex(A),
          this.setAttribute("position", new ri(o, 3)),
          this.setAttribute("normal", new ri(a, 3)),
          this.setAttribute("uv", new ri(s, 2)));
      }
      function Xu(e, t, n, r) {
        (Di.call(this),
          (this.type = "PolyhedronGeometry"),
          (this.parameters = { vertices: e, indices: t, radius: n, detail: r }),
          this.fromBufferGeometry(new Yu(e, t, n, r)),
          this.mergeVertices());
      }
      function Yu(e, t, n, r) {
        (di.call(this),
          (this.type = "PolyhedronBufferGeometry"),
          (this.parameters = { vertices: e, indices: t, radius: n, detail: r }),
          (n = n || 1),
          (r = r || 0));
        var i = [],
          A = [];
        function o(e) {
          for (
            var n = new _n(), r = new _n(), i = new _n(), A = 0;
            A < t.length;
            A += 3
          )
            (h(t[A + 0], n), h(t[A + 1], r), h(t[A + 2], i), a(n, r, i, e));
        }
        function a(e, t, n, r) {
          var i,
            A,
            o = Math.pow(2, r),
            a = [];
          for (i = 0; i <= o; i++) {
            a[i] = [];
            var s = e.clone().lerp(n, i / o),
              c = t.clone().lerp(n, i / o),
              u = o - i;
            for (A = 0; A <= u; A++)
              a[i][A] = 0 === A && i === o ? s : s.clone().lerp(c, A / u);
          }
          for (i = 0; i < o; i++)
            for (A = 0; A < 2 * (o - i) - 1; A++) {
              var h = Math.floor(A / 2);
              A % 2 === 0
                ? (l(a[i][h + 1]), l(a[i + 1][h]), l(a[i][h]))
                : (l(a[i][h + 1]), l(a[i + 1][h + 1]), l(a[i + 1][h]));
            }
        }
        function s(e) {
          for (var t = new _n(), n = 0; n < i.length; n += 3)
            ((t.x = i[n + 0]),
              (t.y = i[n + 1]),
              (t.z = i[n + 2]),
              t.normalize().multiplyScalar(e),
              (i[n + 0] = t.x),
              (i[n + 1] = t.y),
              (i[n + 2] = t.z));
        }
        function c() {
          for (var e = new _n(), t = 0; t < i.length; t += 3) {
            ((e.x = i[t + 0]), (e.y = i[t + 1]), (e.z = i[t + 2]));
            var n = p(e) / 2 / Math.PI + 0.5,
              r = g(e) / Math.PI + 0.5;
            A.push(n, 1 - r);
          }
          (f(), u());
        }
        function u() {
          for (var e = 0; e < A.length; e += 6) {
            var t = A[e + 0],
              n = A[e + 2],
              r = A[e + 4],
              i = Math.max(t, n, r),
              o = Math.min(t, n, r);
            i > 0.9 &&
              o < 0.1 &&
              (t < 0.2 && (A[e + 0] += 1),
              n < 0.2 && (A[e + 2] += 1),
              r < 0.2 && (A[e + 4] += 1));
          }
        }
        function l(e) {
          i.push(e.x, e.y, e.z);
        }
        function h(t, n) {
          var r = 3 * t;
          ((n.x = e[r + 0]), (n.y = e[r + 1]), (n.z = e[r + 2]));
        }
        function f() {
          for (
            var e = new _n(),
              t = new _n(),
              n = new _n(),
              r = new _n(),
              o = new hn(),
              a = new hn(),
              s = new hn(),
              c = 0,
              u = 0;
            c < i.length;
            c += 9, u += 6
          ) {
            (e.set(i[c + 0], i[c + 1], i[c + 2]),
              t.set(i[c + 3], i[c + 4], i[c + 5]),
              n.set(i[c + 6], i[c + 7], i[c + 8]),
              o.set(A[u + 0], A[u + 1]),
              a.set(A[u + 2], A[u + 3]),
              s.set(A[u + 4], A[u + 5]),
              r.copy(e).add(t).add(n).divideScalar(3));
            var l = p(r);
            (d(o, u + 0, e, l), d(a, u + 2, t, l), d(s, u + 4, n, l));
          }
        }
        function d(e, t, n, r) {
          (r < 0 && 1 === e.x && (A[t] = e.x - 1),
            0 === n.x && 0 === n.z && (A[t] = r / 2 / Math.PI + 0.5));
        }
        function p(e) {
          return Math.atan2(e.z, -e.x);
        }
        function g(e) {
          return Math.atan2(-e.y, Math.sqrt(e.x * e.x + e.z * e.z));
        }
        (o(r),
          s(n),
          c(),
          this.setAttribute("position", new ri(i, 3)),
          this.setAttribute("normal", new ri(i.slice(), 3)),
          this.setAttribute("uv", new ri(A, 2)),
          0 === r ? this.computeVertexNormals() : this.normalizeNormals());
      }
      function Ju(e, t) {
        (Di.call(this),
          (this.type = "TetrahedronGeometry"),
          (this.parameters = { radius: e, detail: t }),
          this.fromBufferGeometry(new qu(e, t)),
          this.mergeVertices());
      }
      function qu(e, t) {
        var n = [1, 1, 1, -1, -1, 1, -1, 1, -1, 1, -1, -1],
          r = [2, 1, 0, 0, 3, 2, 1, 3, 0, 2, 3, 1];
        (Yu.call(this, n, r, e, t),
          (this.type = "TetrahedronBufferGeometry"),
          (this.parameters = { radius: e, detail: t }));
      }
      function Zu(e, t) {
        (Di.call(this),
          (this.type = "OctahedronGeometry"),
          (this.parameters = { radius: e, detail: t }),
          this.fromBufferGeometry(new $u(e, t)),
          this.mergeVertices());
      }
      function $u(e, t) {
        var n = [1, 0, 0, -1, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 1, 0, 0, -1],
          r = [
            0, 2, 4, 0, 4, 3, 0, 3, 5, 0, 5, 2, 1, 2, 5, 1, 5, 3, 1, 3, 4, 1, 4,
            2,
          ];
        (Yu.call(this, n, r, e, t),
          (this.type = "OctahedronBufferGeometry"),
          (this.parameters = { radius: e, detail: t }));
      }
      function el(e, t) {
        (Di.call(this),
          (this.type = "IcosahedronGeometry"),
          (this.parameters = { radius: e, detail: t }),
          this.fromBufferGeometry(new tl(e, t)),
          this.mergeVertices());
      }
      function tl(e, t) {
        var n = (1 + Math.sqrt(5)) / 2,
          r = [
            -1,
            n,
            0,
            1,
            n,
            0,
            -1,
            -n,
            0,
            1,
            -n,
            0,
            0,
            -1,
            n,
            0,
            1,
            n,
            0,
            -1,
            -n,
            0,
            1,
            -n,
            n,
            0,
            -1,
            n,
            0,
            1,
            -n,
            0,
            -1,
            -n,
            0,
            1,
          ],
          i = [
            0, 11, 5, 0, 5, 1, 0, 1, 7, 0, 7, 10, 0, 10, 11, 1, 5, 9, 5, 11, 4,
            11, 10, 2, 10, 7, 6, 7, 1, 8, 3, 9, 4, 3, 4, 2, 3, 2, 6, 3, 6, 8, 3,
            8, 9, 4, 9, 5, 2, 4, 11, 6, 2, 10, 8, 6, 7, 9, 8, 1,
          ];
        (Yu.call(this, r, i, e, t),
          (this.type = "IcosahedronBufferGeometry"),
          (this.parameters = { radius: e, detail: t }));
      }
      function nl(e, t) {
        (Di.call(this),
          (this.type = "DodecahedronGeometry"),
          (this.parameters = { radius: e, detail: t }),
          this.fromBufferGeometry(new rl(e, t)),
          this.mergeVertices());
      }
      function rl(e, t) {
        var n = (1 + Math.sqrt(5)) / 2,
          r = 1 / n,
          i = [
            -1,
            -1,
            -1,
            -1,
            -1,
            1,
            -1,
            1,
            -1,
            -1,
            1,
            1,
            1,
            -1,
            -1,
            1,
            -1,
            1,
            1,
            1,
            -1,
            1,
            1,
            1,
            0,
            -r,
            -n,
            0,
            -r,
            n,
            0,
            r,
            -n,
            0,
            r,
            n,
            -r,
            -n,
            0,
            -r,
            n,
            0,
            r,
            -n,
            0,
            r,
            n,
            0,
            -n,
            0,
            -r,
            n,
            0,
            -r,
            -n,
            0,
            r,
            n,
            0,
            r,
          ],
          A = [
            3, 11, 7, 3, 7, 15, 3, 15, 13, 7, 19, 17, 7, 17, 6, 7, 6, 15, 17, 4,
            8, 17, 8, 10, 17, 10, 6, 8, 0, 16, 8, 16, 2, 8, 2, 10, 0, 12, 1, 0,
            1, 18, 0, 18, 16, 6, 10, 2, 6, 2, 13, 6, 13, 15, 2, 16, 18, 2, 18,
            3, 2, 3, 13, 18, 1, 9, 18, 9, 11, 18, 11, 3, 4, 14, 12, 4, 12, 0, 4,
            0, 8, 11, 9, 5, 11, 5, 19, 11, 19, 7, 19, 5, 14, 19, 14, 4, 19, 4,
            17, 1, 12, 14, 1, 14, 5, 1, 5, 9,
          ];
        (Yu.call(this, i, A, e, t),
          (this.type = "DodecahedronBufferGeometry"),
          (this.parameters = { radius: e, detail: t }));
      }
      function il(e, t, n, r, i, A) {
        (Di.call(this),
          (this.type = "TubeGeometry"),
          (this.parameters = {
            path: e,
            tubularSegments: t,
            radius: n,
            radialSegments: r,
            closed: i,
          }),
          void 0 !== A &&
            console.warn("THREE.TubeGeometry: taper has been removed."));
        var o = new Al(e, t, n, r, i);
        ((this.tangents = o.tangents),
          (this.normals = o.normals),
          (this.binormals = o.binormals),
          this.fromBufferGeometry(o),
          this.mergeVertices());
      }
      function Al(e, t, n, r, i) {
        (di.call(this),
          (this.type = "TubeBufferGeometry"),
          (this.parameters = {
            path: e,
            tubularSegments: t,
            radius: n,
            radialSegments: r,
            closed: i,
          }),
          (t = t || 64),
          (n = n || 1),
          (r = r || 8),
          (i = i || !1));
        var A = e.computeFrenetFrames(t, i);
        ((this.tangents = A.tangents),
          (this.normals = A.normals),
          (this.binormals = A.binormals));
        var o,
          a,
          s = new _n(),
          c = new _n(),
          u = new hn(),
          l = new _n(),
          h = [],
          f = [],
          d = [],
          p = [];
        function g() {
          for (o = 0; o < t; o++) m(o);
          (m(!1 === i ? t : 0), y(), v());
        }
        function m(i) {
          l = e.getPointAt(i / t, l);
          var o = A.normals[i],
            u = A.binormals[i];
          for (a = 0; a <= r; a++) {
            var d = (a / r) * Math.PI * 2,
              p = Math.sin(d),
              g = -Math.cos(d);
            ((c.x = g * o.x + p * u.x),
              (c.y = g * o.y + p * u.y),
              (c.z = g * o.z + p * u.z),
              c.normalize(),
              f.push(c.x, c.y, c.z),
              (s.x = l.x + n * c.x),
              (s.y = l.y + n * c.y),
              (s.z = l.z + n * c.z),
              h.push(s.x, s.y, s.z));
          }
        }
        function v() {
          for (a = 1; a <= t; a++)
            for (o = 1; o <= r; o++) {
              var e = (r + 1) * (a - 1) + (o - 1),
                n = (r + 1) * a + (o - 1),
                i = (r + 1) * a + o,
                A = (r + 1) * (a - 1) + o;
              (p.push(e, n, A), p.push(n, i, A));
            }
        }
        function y() {
          for (o = 0; o <= t; o++)
            for (a = 0; a <= r; a++)
              ((u.x = o / t), (u.y = a / r), d.push(u.x, u.y));
        }
        (g(),
          this.setIndex(p),
          this.setAttribute("position", new ri(h, 3)),
          this.setAttribute("normal", new ri(f, 3)),
          this.setAttribute("uv", new ri(d, 2)));
      }
      function ol(e, t, n, r, i, A, o) {
        (Di.call(this),
          (this.type = "TorusKnotGeometry"),
          (this.parameters = {
            radius: e,
            tube: t,
            tubularSegments: n,
            radialSegments: r,
            p: i,
            q: A,
          }),
          void 0 !== o &&
            console.warn(
              "THREE.TorusKnotGeometry: heightScale has been deprecated. Use .scale( x, y, z ) instead.",
            ),
          this.fromBufferGeometry(new al(e, t, n, r, i, A)),
          this.mergeVertices());
      }
      function al(e, t, n, r, i, A) {
        (di.call(this),
          (this.type = "TorusKnotBufferGeometry"),
          (this.parameters = {
            radius: e,
            tube: t,
            tubularSegments: n,
            radialSegments: r,
            p: i,
            q: A,
          }),
          (e = e || 1),
          (t = t || 0.4),
          (n = Math.floor(n) || 64),
          (r = Math.floor(r) || 8),
          (i = i || 2),
          (A = A || 3));
        var o,
          a,
          s = [],
          c = [],
          u = [],
          l = [],
          h = new _n(),
          f = new _n(),
          d = new _n(),
          p = new _n(),
          g = new _n(),
          m = new _n(),
          v = new _n();
        for (o = 0; o <= n; ++o) {
          var y = (o / n) * i * Math.PI * 2;
          for (
            M(y, i, A, e, d),
              M(y + 0.01, i, A, e, p),
              m.subVectors(p, d),
              v.addVectors(p, d),
              g.crossVectors(m, v),
              v.crossVectors(g, m),
              g.normalize(),
              v.normalize(),
              a = 0;
            a <= r;
            ++a
          ) {
            var w = (a / r) * Math.PI * 2,
              B = -t * Math.cos(w),
              b = t * Math.sin(w);
            ((h.x = d.x + (B * v.x + b * g.x)),
              (h.y = d.y + (B * v.y + b * g.y)),
              (h.z = d.z + (B * v.z + b * g.z)),
              c.push(h.x, h.y, h.z),
              f.subVectors(h, d).normalize(),
              u.push(f.x, f.y, f.z),
              l.push(o / n),
              l.push(a / r));
          }
        }
        for (a = 1; a <= n; a++)
          for (o = 1; o <= r; o++) {
            var _ = (r + 1) * (a - 1) + (o - 1),
              x = (r + 1) * a + (o - 1),
              C = (r + 1) * a + o,
              E = (r + 1) * (a - 1) + o;
            (s.push(_, x, E), s.push(x, C, E));
          }
        function M(e, t, n, r, i) {
          var A = Math.cos(e),
            o = Math.sin(e),
            a = (n / t) * e,
            s = Math.cos(a);
          ((i.x = r * (2 + s) * 0.5 * A),
            (i.y = r * (2 + s) * o * 0.5),
            (i.z = r * Math.sin(a) * 0.5));
        }
        (this.setIndex(s),
          this.setAttribute("position", new ri(c, 3)),
          this.setAttribute("normal", new ri(u, 3)),
          this.setAttribute("uv", new ri(l, 2)));
      }
      function sl(e, t, n, r, i) {
        (Di.call(this),
          (this.type = "TorusGeometry"),
          (this.parameters = {
            radius: e,
            tube: t,
            radialSegments: n,
            tubularSegments: r,
            arc: i,
          }),
          this.fromBufferGeometry(new cl(e, t, n, r, i)),
          this.mergeVertices());
      }
      function cl(e, t, n, r, i) {
        (di.call(this),
          (this.type = "TorusBufferGeometry"),
          (this.parameters = {
            radius: e,
            tube: t,
            radialSegments: n,
            tubularSegments: r,
            arc: i,
          }),
          (e = e || 1),
          (t = t || 0.4),
          (n = Math.floor(n) || 8),
          (r = Math.floor(r) || 6),
          (i = i || 2 * Math.PI));
        var A,
          o,
          a = [],
          s = [],
          c = [],
          u = [],
          l = new _n(),
          h = new _n(),
          f = new _n();
        for (A = 0; A <= n; A++)
          for (o = 0; o <= r; o++) {
            var d = (o / r) * i,
              p = (A / n) * Math.PI * 2;
            ((h.x = (e + t * Math.cos(p)) * Math.cos(d)),
              (h.y = (e + t * Math.cos(p)) * Math.sin(d)),
              (h.z = t * Math.sin(p)),
              s.push(h.x, h.y, h.z),
              (l.x = e * Math.cos(d)),
              (l.y = e * Math.sin(d)),
              f.subVectors(h, l).normalize(),
              c.push(f.x, f.y, f.z),
              u.push(o / r),
              u.push(A / n));
          }
        for (A = 1; A <= n; A++)
          for (o = 1; o <= r; o++) {
            var g = (r + 1) * A + o - 1,
              m = (r + 1) * (A - 1) + o - 1,
              v = (r + 1) * (A - 1) + o,
              y = (r + 1) * A + o;
            (a.push(g, m, y), a.push(m, v, y));
          }
        (this.setIndex(a),
          this.setAttribute("position", new ri(s, 3)),
          this.setAttribute("normal", new ri(c, 3)),
          this.setAttribute("uv", new ri(u, 2)));
      }
      ((Du.prototype = Object.assign(Object.create(Yn.prototype), {
        constructor: Du,
        isPoints: !0,
        raycast: function (e, t) {
          var n = this.geometry,
            r = this.matrixWorld,
            i = e.params.Points.threshold;
          if (
            (null === n.boundingSphere && n.computeBoundingSphere(),
            Ru.copy(n.boundingSphere),
            Ru.applyMatrix4(r),
            (Ru.radius += i),
            !1 !== e.ray.intersectsSphere(Ru))
          ) {
            (Hu.getInverse(r), Ou.copy(e.ray).applyMatrix4(Hu));
            var A = i / ((this.scale.x + this.scale.y + this.scale.z) / 3),
              o = A * A;
            if (n.isBufferGeometry) {
              var a = n.index,
                s = n.attributes,
                c = s.position.array;
              if (null !== a)
                for (var u = a.array, l = 0, h = u.length; l < h; l++) {
                  var f = u[l];
                  (Pu.fromArray(c, 3 * f), Nu(Pu, f, o, r, e, t, this));
                }
              else {
                l = 0;
                for (var d = c.length / 3; l < d; l++)
                  (Pu.fromArray(c, 3 * l), Nu(Pu, l, o, r, e, t, this));
              }
            } else {
              var p = n.vertices;
              for (l = 0, d = p.length; l < d; l++)
                Nu(p[l], l, o, r, e, t, this);
            }
          }
        },
        updateMorphTargets: function () {
          var e,
            t,
            n,
            r = this.geometry;
          if (r.isBufferGeometry) {
            var i = r.morphAttributes,
              A = Object.keys(i);
            if (A.length > 0) {
              var o = i[A[0]];
              if (void 0 !== o)
                for (
                  this.morphTargetInfluences = [],
                    this.morphTargetDictionary = {},
                    e = 0,
                    t = o.length;
                  e < t;
                  e++
                )
                  ((n = o[e].name || String(e)),
                    this.morphTargetInfluences.push(0),
                    (this.morphTargetDictionary[n] = e));
            }
          } else {
            var a = r.morphTargets;
            void 0 !== a &&
              a.length > 0 &&
              console.log(
                "THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.",
              );
          }
        },
        clone: function () {
          return new this.constructor(this.geometry, this.material).copy(this);
        },
      })),
        (ku.prototype = Object.assign(Object.create(gn.prototype), {
          constructor: ku,
          isVideoTexture: !0,
          update: function () {
            var e = this.image;
            e.readyState >= e.HAVE_CURRENT_DATA && (this.needsUpdate = !0);
          },
        })),
        (Gu.prototype = Object.create(gn.prototype)),
        (Gu.prototype.constructor = Gu),
        (Gu.prototype.isCompressedTexture = !0),
        (Vu.prototype = Object.create(gn.prototype)),
        (Vu.prototype.constructor = Vu),
        (Vu.prototype.isCanvasTexture = !0),
        (zu.prototype = Object.create(gn.prototype)),
        (zu.prototype.constructor = zu),
        (zu.prototype.isDepthTexture = !0),
        (ju.prototype = Object.create(di.prototype)),
        (ju.prototype.constructor = ju),
        (Ku.prototype = Object.create(Di.prototype)),
        (Ku.prototype.constructor = Ku),
        (Wu.prototype = Object.create(di.prototype)),
        (Wu.prototype.constructor = Wu),
        (Xu.prototype = Object.create(Di.prototype)),
        (Xu.prototype.constructor = Xu),
        (Yu.prototype = Object.create(di.prototype)),
        (Yu.prototype.constructor = Yu),
        (Ju.prototype = Object.create(Di.prototype)),
        (Ju.prototype.constructor = Ju),
        (qu.prototype = Object.create(Yu.prototype)),
        (qu.prototype.constructor = qu),
        (Zu.prototype = Object.create(Di.prototype)),
        (Zu.prototype.constructor = Zu),
        ($u.prototype = Object.create(Yu.prototype)),
        ($u.prototype.constructor = $u),
        (el.prototype = Object.create(Di.prototype)),
        (el.prototype.constructor = el),
        (tl.prototype = Object.create(Yu.prototype)),
        (tl.prototype.constructor = tl),
        (nl.prototype = Object.create(Di.prototype)),
        (nl.prototype.constructor = nl),
        (rl.prototype = Object.create(Yu.prototype)),
        (rl.prototype.constructor = rl),
        (il.prototype = Object.create(Di.prototype)),
        (il.prototype.constructor = il),
        (Al.prototype = Object.create(di.prototype)),
        (Al.prototype.constructor = Al),
        (Al.prototype.toJSON = function () {
          var e = di.prototype.toJSON.call(this);
          return ((e.path = this.parameters.path.toJSON()), e);
        }),
        (ol.prototype = Object.create(Di.prototype)),
        (ol.prototype.constructor = ol),
        (al.prototype = Object.create(di.prototype)),
        (al.prototype.constructor = al),
        (sl.prototype = Object.create(Di.prototype)),
        (sl.prototype.constructor = sl),
        (cl.prototype = Object.create(di.prototype)),
        (cl.prototype.constructor = cl));
      var ul = {
        triangulate: function (e, t, n) {
          n = n || 2;
          var r,
            i,
            A,
            o,
            a,
            s,
            c,
            u = t && t.length,
            l = u ? t[0] * n : e.length,
            h = ll(e, 0, l, n, !0),
            f = [];
          if (!h || h.next === h.prev) return f;
          if ((u && (h = vl(e, t, h, n)), e.length > 80 * n)) {
            ((r = A = e[0]), (i = o = e[1]));
            for (var d = n; d < l; d += n)
              ((a = e[d]),
                (s = e[d + 1]),
                a < r && (r = a),
                s < i && (i = s),
                a > A && (A = a),
                s > o && (o = s));
            ((c = Math.max(A - r, o - i)), (c = 0 !== c ? 1 / c : 0));
          }
          return (fl(h, f, n, r, i, c), f);
        },
      };
      function ll(e, t, n, r, i) {
        var A, o;
        if (i === kl(e, t, n, r) > 0)
          for (A = t; A < n; A += r) o = Pl(A, e[A], e[A + 1], o);
        else for (A = n - r; A >= t; A -= r) o = Pl(A, e[A], e[A + 1], o);
        return (o && Tl(o, o.next) && (Dl(o), (o = o.next)), o);
      }
      function hl(e, t) {
        if (!e) return e;
        t || (t = e);
        var n,
          r = e;
        do {
          if (
            ((n = !1),
            r.steiner || (!Tl(r, r.next) && 0 !== Fl(r.prev, r, r.next)))
          )
            r = r.next;
          else {
            if ((Dl(r), (r = t = r.prev), r === r.next)) break;
            n = !0;
          }
        } while (n || r !== t);
        return t;
      }
      function fl(e, t, n, r, i, A, o) {
        if (e) {
          !o && A && _l(e, r, i, A);
          var a,
            s,
            c = e;
          while (e.prev !== e.next)
            if (((a = e.prev), (s = e.next), A ? pl(e, r, i, A) : dl(e)))
              (t.push(a.i / n),
                t.push(e.i / n),
                t.push(s.i / n),
                Dl(e),
                (e = s.next),
                (c = s.next));
            else if (((e = s), e === c)) {
              o
                ? 1 === o
                  ? ((e = gl(hl(e), t, n)), fl(e, t, n, r, i, A, 2))
                  : 2 === o && ml(e, t, n, r, i, A)
                : fl(hl(e), t, n, r, i, A, 1);
              break;
            }
        }
      }
      function dl(e) {
        var t = e.prev,
          n = e,
          r = e.next;
        if (Fl(t, n, r) >= 0) return !1;
        var i = e.next.next;
        while (i !== e.prev) {
          if (
            Ml(t.x, t.y, n.x, n.y, r.x, r.y, i.x, i.y) &&
            Fl(i.prev, i, i.next) >= 0
          )
            return !1;
          i = i.next;
        }
        return !0;
      }
      function pl(e, t, n, r) {
        var i = e.prev,
          A = e,
          o = e.next;
        if (Fl(i, A, o) >= 0) return !1;
        var a = i.x < A.x ? (i.x < o.x ? i.x : o.x) : A.x < o.x ? A.x : o.x,
          s = i.y < A.y ? (i.y < o.y ? i.y : o.y) : A.y < o.y ? A.y : o.y,
          c = i.x > A.x ? (i.x > o.x ? i.x : o.x) : A.x > o.x ? A.x : o.x,
          u = i.y > A.y ? (i.y > o.y ? i.y : o.y) : A.y > o.y ? A.y : o.y,
          l = Cl(a, s, t, n, r),
          h = Cl(c, u, t, n, r),
          f = e.prevZ,
          d = e.nextZ;
        while (f && f.z >= l && d && d.z <= h) {
          if (
            f !== e.prev &&
            f !== e.next &&
            Ml(i.x, i.y, A.x, A.y, o.x, o.y, f.x, f.y) &&
            Fl(f.prev, f, f.next) >= 0
          )
            return !1;
          if (
            ((f = f.prevZ),
            d !== e.prev &&
              d !== e.next &&
              Ml(i.x, i.y, A.x, A.y, o.x, o.y, d.x, d.y) &&
              Fl(d.prev, d, d.next) >= 0)
          )
            return !1;
          d = d.nextZ;
        }
        while (f && f.z >= l) {
          if (
            f !== e.prev &&
            f !== e.next &&
            Ml(i.x, i.y, A.x, A.y, o.x, o.y, f.x, f.y) &&
            Fl(f.prev, f, f.next) >= 0
          )
            return !1;
          f = f.prevZ;
        }
        while (d && d.z <= h) {
          if (
            d !== e.prev &&
            d !== e.next &&
            Ml(i.x, i.y, A.x, A.y, o.x, o.y, d.x, d.y) &&
            Fl(d.prev, d, d.next) >= 0
          )
            return !1;
          d = d.nextZ;
        }
        return !0;
      }
      function gl(e, t, n) {
        var r = e;
        do {
          var i = r.prev,
            A = r.next.next;
          (!Tl(i, A) &&
            Ul(i, r, r.next, A) &&
            Hl(i, A) &&
            Hl(A, i) &&
            (t.push(i.i / n),
            t.push(r.i / n),
            t.push(A.i / n),
            Dl(r),
            Dl(r.next),
            (r = e = A)),
            (r = r.next));
        } while (r !== e);
        return hl(r);
      }
      function ml(e, t, n, r, i, A) {
        var o = e;
        do {
          var a = o.next.next;
          while (a !== o.prev) {
            if (o.i !== a.i && Sl(o, a)) {
              var s = Rl(o, a);
              return (
                (o = hl(o, o.next)),
                (s = hl(s, s.next)),
                fl(o, t, n, r, i, A),
                void fl(s, t, n, r, i, A)
              );
            }
            a = a.next;
          }
          o = o.next;
        } while (o !== e);
      }
      function vl(e, t, n, r) {
        var i,
          A,
          o,
          a,
          s,
          c = [];
        for (i = 0, A = t.length; i < A; i++)
          ((o = t[i] * r),
            (a = i < A - 1 ? t[i + 1] * r : e.length),
            (s = ll(e, o, a, r, !1)),
            s === s.next && (s.steiner = !0),
            c.push(El(s)));
        for (c.sort(yl), i = 0; i < c.length; i++)
          (wl(c[i], n), (n = hl(n, n.next)));
        return n;
      }
      function yl(e, t) {
        return e.x - t.x;
      }
      function wl(e, t) {
        if (((t = Bl(e, t)), t)) {
          var n = Rl(t, e);
          (hl(t, t.next), hl(n, n.next));
        }
      }
      function Bl(e, t) {
        var n,
          r = t,
          i = e.x,
          A = e.y,
          o = -1 / 0;
        do {
          if (A <= r.y && A >= r.next.y && r.next.y !== r.y) {
            var a = r.x + ((A - r.y) * (r.next.x - r.x)) / (r.next.y - r.y);
            if (a <= i && a > o) {
              if (((o = a), a === i)) {
                if (A === r.y) return r;
                if (A === r.next.y) return r.next;
              }
              n = r.x < r.next.x ? r : r.next;
            }
          }
          r = r.next;
        } while (r !== t);
        if (!n) return null;
        if (i === o) return n;
        var s,
          c = n,
          u = n.x,
          l = n.y,
          h = 1 / 0;
        r = n;
        do {
          (i >= r.x &&
            r.x >= u &&
            i !== r.x &&
            Ml(A < l ? i : o, A, u, l, A < l ? o : i, A, r.x, r.y) &&
            ((s = Math.abs(A - r.y) / (i - r.x)),
            Hl(r, e) &&
              (s < h ||
                (s === h && (r.x > n.x || (r.x === n.x && bl(n, r))))) &&
              ((n = r), (h = s))),
            (r = r.next));
        } while (r !== c);
        return n;
      }
      function bl(e, t) {
        return Fl(e.prev, e, t.prev) < 0 && Fl(t.next, e, e.next) < 0;
      }
      function _l(e, t, n, r) {
        var i = e;
        do {
          (null === i.z && (i.z = Cl(i.x, i.y, t, n, r)),
            (i.prevZ = i.prev),
            (i.nextZ = i.next),
            (i = i.next));
        } while (i !== e);
        ((i.prevZ.nextZ = null), (i.prevZ = null), xl(i));
      }
      function xl(e) {
        var t,
          n,
          r,
          i,
          A,
          o,
          a,
          s,
          c = 1;
        do {
          ((n = e), (e = null), (A = null), (o = 0));
          while (n) {
            for (o++, r = n, a = 0, t = 0; t < c; t++)
              if ((a++, (r = r.nextZ), !r)) break;
            s = c;
            while (a > 0 || (s > 0 && r))
              (0 !== a && (0 === s || !r || n.z <= r.z)
                ? ((i = n), (n = n.nextZ), a--)
                : ((i = r), (r = r.nextZ), s--),
                A ? (A.nextZ = i) : (e = i),
                (i.prevZ = A),
                (A = i));
            n = r;
          }
          ((A.nextZ = null), (c *= 2));
        } while (o > 1);
        return e;
      }
      function Cl(e, t, n, r, i) {
        return (
          (e = 32767 * (e - n) * i),
          (t = 32767 * (t - r) * i),
          (e = 16711935 & (e | (e << 8))),
          (e = 252645135 & (e | (e << 4))),
          (e = 858993459 & (e | (e << 2))),
          (e = 1431655765 & (e | (e << 1))),
          (t = 16711935 & (t | (t << 8))),
          (t = 252645135 & (t | (t << 4))),
          (t = 858993459 & (t | (t << 2))),
          (t = 1431655765 & (t | (t << 1))),
          e | (t << 1)
        );
      }
      function El(e) {
        var t = e,
          n = e;
        do {
          ((t.x < n.x || (t.x === n.x && t.y < n.y)) && (n = t), (t = t.next));
        } while (t !== e);
        return n;
      }
      function Ml(e, t, n, r, i, A, o, a) {
        return (
          (i - o) * (t - a) - (e - o) * (A - a) >= 0 &&
          (e - o) * (r - a) - (n - o) * (t - a) >= 0 &&
          (n - o) * (A - a) - (i - o) * (r - a) >= 0
        );
      }
      function Sl(e, t) {
        return (
          e.next.i !== t.i &&
          e.prev.i !== t.i &&
          !Il(e, t) &&
          ((Hl(e, t) &&
            Hl(t, e) &&
            Ol(e, t) &&
            (Fl(e.prev, e, t.prev) || Fl(e, t.prev, t))) ||
            (Tl(e, t) &&
              Fl(e.prev, e, e.next) > 0 &&
              Fl(t.prev, t, t.next) > 0))
        );
      }
      function Fl(e, t, n) {
        return (t.y - e.y) * (n.x - t.x) - (t.x - e.x) * (n.y - t.y);
      }
      function Tl(e, t) {
        return e.x === t.x && e.y === t.y;
      }
      function Ul(e, t, n, r) {
        var i = Ll(Fl(e, t, n)),
          A = Ll(Fl(e, t, r)),
          o = Ll(Fl(n, r, e)),
          a = Ll(Fl(n, r, t));
        return (
          (i !== A && o !== a) ||
          !(0 !== i || !Ql(e, n, t)) ||
          !(0 !== A || !Ql(e, r, t)) ||
          !(0 !== o || !Ql(n, e, r)) ||
          !(0 !== a || !Ql(n, t, r))
        );
      }
      function Ql(e, t, n) {
        return (
          t.x <= Math.max(e.x, n.x) &&
          t.x >= Math.min(e.x, n.x) &&
          t.y <= Math.max(e.y, n.y) &&
          t.y >= Math.min(e.y, n.y)
        );
      }
      function Ll(e) {
        return e > 0 ? 1 : e < 0 ? -1 : 0;
      }
      function Il(e, t) {
        var n = e;
        do {
          if (
            n.i !== e.i &&
            n.next.i !== e.i &&
            n.i !== t.i &&
            n.next.i !== t.i &&
            Ul(n, n.next, e, t)
          )
            return !0;
          n = n.next;
        } while (n !== e);
        return !1;
      }
      function Hl(e, t) {
        return Fl(e.prev, e, e.next) < 0
          ? Fl(e, t, e.next) >= 0 && Fl(e, e.prev, t) >= 0
          : Fl(e, t, e.prev) < 0 || Fl(e, e.next, t) < 0;
      }
      function Ol(e, t) {
        var n = e,
          r = !1,
          i = (e.x + t.x) / 2,
          A = (e.y + t.y) / 2;
        do {
          (n.y > A !== n.next.y > A &&
            n.next.y !== n.y &&
            i < ((n.next.x - n.x) * (A - n.y)) / (n.next.y - n.y) + n.x &&
            (r = !r),
            (n = n.next));
        } while (n !== e);
        return r;
      }
      function Rl(e, t) {
        var n = new Nl(e.i, e.x, e.y),
          r = new Nl(t.i, t.x, t.y),
          i = e.next,
          A = t.prev;
        return (
          (e.next = t),
          (t.prev = e),
          (n.next = i),
          (i.prev = n),
          (r.next = n),
          (n.prev = r),
          (A.next = r),
          (r.prev = A),
          r
        );
      }
      function Pl(e, t, n, r) {
        var i = new Nl(e, t, n);
        return (
          r
            ? ((i.next = r.next), (i.prev = r), (r.next.prev = i), (r.next = i))
            : ((i.prev = i), (i.next = i)),
          i
        );
      }
      function Dl(e) {
        ((e.next.prev = e.prev),
          (e.prev.next = e.next),
          e.prevZ && (e.prevZ.nextZ = e.nextZ),
          e.nextZ && (e.nextZ.prevZ = e.prevZ));
      }
      function Nl(e, t, n) {
        ((this.i = e),
          (this.x = t),
          (this.y = n),
          (this.prev = null),
          (this.next = null),
          (this.z = null),
          (this.prevZ = null),
          (this.nextZ = null),
          (this.steiner = !1));
      }
      function kl(e, t, n, r) {
        for (var i = 0, A = t, o = n - r; A < n; A += r)
          ((i += (e[o] - e[A]) * (e[A + 1] + e[o + 1])), (o = A));
        return i;
      }
      var Gl = {
        area: function (e) {
          for (var t = e.length, n = 0, r = t - 1, i = 0; i < t; r = i++)
            n += e[r].x * e[i].y - e[i].x * e[r].y;
          return 0.5 * n;
        },
        isClockWise: function (e) {
          return Gl.area(e) < 0;
        },
        triangulateShape: function (e, t) {
          var n = [],
            r = [],
            i = [];
          (Vl(e), zl(n, e));
          var A = e.length;
          t.forEach(Vl);
          for (var o = 0; o < t.length; o++)
            (r.push(A), (A += t[o].length), zl(n, t[o]));
          var a = ul.triangulate(n, r);
          for (o = 0; o < a.length; o += 3) i.push(a.slice(o, o + 3));
          return i;
        },
      };
      function Vl(e) {
        var t = e.length;
        t > 2 && e[t - 1].equals(e[0]) && e.pop();
      }
      function zl(e, t) {
        for (var n = 0; n < t.length; n++) (e.push(t[n].x), e.push(t[n].y));
      }
      function jl(e, t) {
        (Di.call(this),
          (this.type = "ExtrudeGeometry"),
          (this.parameters = { shapes: e, options: t }),
          this.fromBufferGeometry(new Kl(e, t)),
          this.mergeVertices());
      }
      function Kl(e, t) {
        (di.call(this),
          (this.type = "ExtrudeBufferGeometry"),
          (this.parameters = { shapes: e, options: t }),
          (e = Array.isArray(e) ? e : [e]));
        for (var n = this, r = [], i = [], A = 0, o = e.length; A < o; A++) {
          var a = e[A];
          s(a);
        }
        function s(e) {
          var A = [],
            o = void 0 !== t.curveSegments ? t.curveSegments : 12,
            a = void 0 !== t.steps ? t.steps : 1,
            s = void 0 !== t.depth ? t.depth : 100,
            c = void 0 === t.bevelEnabled || t.bevelEnabled,
            u = void 0 !== t.bevelThickness ? t.bevelThickness : 6,
            l = void 0 !== t.bevelSize ? t.bevelSize : u - 2,
            h = void 0 !== t.bevelOffset ? t.bevelOffset : 0,
            f = void 0 !== t.bevelSegments ? t.bevelSegments : 3,
            d = t.extrudePath,
            p = void 0 !== t.UVGenerator ? t.UVGenerator : Wl;
          void 0 !== t.amount &&
            (console.warn(
              "THREE.ExtrudeBufferGeometry: amount has been renamed to depth.",
            ),
            (s = t.amount));
          var g,
            m,
            v,
            y,
            w,
            B,
            b,
            _,
            x = !1;
          (d &&
            ((g = d.getSpacedPoints(a)),
            (x = !0),
            (c = !1),
            (m = d.computeFrenetFrames(a, !1)),
            (v = new _n()),
            (y = new _n()),
            (w = new _n())),
            c || ((f = 0), (u = 0), (l = 0), (h = 0)));
          var C = e.extractPoints(o),
            E = C.shape,
            M = C.holes,
            S = !Gl.isClockWise(E);
          if (S)
            for (E = E.reverse(), b = 0, _ = M.length; b < _; b++)
              ((B = M[b]), Gl.isClockWise(B) && (M[b] = B.reverse()));
          var F = Gl.triangulateShape(E, M),
            T = E;
          for (b = 0, _ = M.length; b < _; b++) ((B = M[b]), (E = E.concat(B)));
          function U(e, t, n) {
            return (
              t || console.log("THREE.ExtrudeGeometry: vec does not exist"),
              t.clone().multiplyScalar(n).add(e)
            );
          }
          var Q,
            L,
            I,
            H,
            O,
            R,
            P = E.length,
            D = F.length;
          function N(e, t, n) {
            var r,
              i,
              A,
              o = e.x - t.x,
              a = e.y - t.y,
              s = n.x - e.x,
              c = n.y - e.y,
              u = o * o + a * a,
              l = o * c - a * s;
            if (Math.abs(l) > Number.EPSILON) {
              var h = Math.sqrt(u),
                f = Math.sqrt(s * s + c * c),
                d = t.x - a / h,
                p = t.y + o / h,
                g = n.x - c / f,
                m = n.y + s / f,
                v = ((g - d) * c - (m - p) * s) / (o * c - a * s);
              ((r = d + o * v - e.x), (i = p + a * v - e.y));
              var y = r * r + i * i;
              if (y <= 2) return new hn(r, i);
              A = Math.sqrt(y / 2);
            } else {
              var w = !1;
              (o > Number.EPSILON
                ? s > Number.EPSILON && (w = !0)
                : o < -Number.EPSILON
                  ? s < -Number.EPSILON && (w = !0)
                  : Math.sign(a) === Math.sign(c) && (w = !0),
                w
                  ? ((r = -a), (i = o), (A = Math.sqrt(u)))
                  : ((r = o), (i = a), (A = Math.sqrt(u / 2))));
            }
            return new hn(r / A, i / A);
          }
          for (
            var k = [], G = 0, V = T.length, z = V - 1, j = G + 1;
            G < V;
            G++, z++, j++
          )
            (z === V && (z = 0),
              j === V && (j = 0),
              (k[G] = N(T[G], T[z], T[j])));
          var K,
            W,
            X = [],
            Y = k.concat();
          for (b = 0, _ = M.length; b < _; b++) {
            for (
              B = M[b], K = [], G = 0, V = B.length, z = V - 1, j = G + 1;
              G < V;
              G++, z++, j++
            )
              (z === V && (z = 0),
                j === V && (j = 0),
                (K[G] = N(B[G], B[z], B[j])));
            (X.push(K), (Y = Y.concat(K)));
          }
          for (Q = 0; Q < f; Q++) {
            for (
              I = Q / f,
                H = u * Math.cos((I * Math.PI) / 2),
                L = l * Math.sin((I * Math.PI) / 2) + h,
                G = 0,
                V = T.length;
              G < V;
              G++
            )
              ((O = U(T[G], k[G], L)), $(O.x, O.y, -H));
            for (b = 0, _ = M.length; b < _; b++)
              for (B = M[b], K = X[b], G = 0, V = B.length; G < V; G++)
                ((O = U(B[G], K[G], L)), $(O.x, O.y, -H));
          }
          for (L = l + h, G = 0; G < P; G++)
            ((O = c ? U(E[G], Y[G], L) : E[G]),
              x
                ? (y.copy(m.normals[0]).multiplyScalar(O.x),
                  v.copy(m.binormals[0]).multiplyScalar(O.y),
                  w.copy(g[0]).add(y).add(v),
                  $(w.x, w.y, w.z))
                : $(O.x, O.y, 0));
          for (W = 1; W <= a; W++)
            for (G = 0; G < P; G++)
              ((O = c ? U(E[G], Y[G], L) : E[G]),
                x
                  ? (y.copy(m.normals[W]).multiplyScalar(O.x),
                    v.copy(m.binormals[W]).multiplyScalar(O.y),
                    w.copy(g[W]).add(y).add(v),
                    $(w.x, w.y, w.z))
                  : $(O.x, O.y, (s / a) * W));
          for (Q = f - 1; Q >= 0; Q--) {
            for (
              I = Q / f,
                H = u * Math.cos((I * Math.PI) / 2),
                L = l * Math.sin((I * Math.PI) / 2) + h,
                G = 0,
                V = T.length;
              G < V;
              G++
            )
              ((O = U(T[G], k[G], L)), $(O.x, O.y, s + H));
            for (b = 0, _ = M.length; b < _; b++)
              for (B = M[b], K = X[b], G = 0, V = B.length; G < V; G++)
                ((O = U(B[G], K[G], L)),
                  x
                    ? $(O.x, O.y + g[a - 1].y, g[a - 1].x + H)
                    : $(O.x, O.y, s + H));
          }
          function J() {
            var e = r.length / 3;
            if (c) {
              var t = 0,
                i = P * t;
              for (G = 0; G < D; G++)
                ((R = F[G]), ee(R[2] + i, R[1] + i, R[0] + i));
              for (t = a + 2 * f, i = P * t, G = 0; G < D; G++)
                ((R = F[G]), ee(R[0] + i, R[1] + i, R[2] + i));
            } else {
              for (G = 0; G < D; G++) ((R = F[G]), ee(R[2], R[1], R[0]));
              for (G = 0; G < D; G++)
                ((R = F[G]), ee(R[0] + P * a, R[1] + P * a, R[2] + P * a));
            }
            n.addGroup(e, r.length / 3 - e, 0);
          }
          function q() {
            var e = r.length / 3,
              t = 0;
            for (Z(T, t), t += T.length, b = 0, _ = M.length; b < _; b++)
              ((B = M[b]), Z(B, t), (t += B.length));
            n.addGroup(e, r.length / 3 - e, 1);
          }
          function Z(e, t) {
            var n, r;
            G = e.length;
            while (--G >= 0) {
              ((n = G), (r = G - 1), r < 0 && (r = e.length - 1));
              var i = 0,
                A = a + 2 * f;
              for (i = 0; i < A; i++) {
                var o = P * i,
                  s = P * (i + 1),
                  c = t + n + o,
                  u = t + r + o,
                  l = t + r + s,
                  h = t + n + s;
                te(c, u, l, h);
              }
            }
          }
          function $(e, t, n) {
            (A.push(e), A.push(t), A.push(n));
          }
          function ee(e, t, i) {
            (ne(e), ne(t), ne(i));
            var A = r.length / 3,
              o = p.generateTopUV(n, r, A - 3, A - 2, A - 1);
            (re(o[0]), re(o[1]), re(o[2]));
          }
          function te(e, t, i, A) {
            (ne(e), ne(t), ne(A), ne(t), ne(i), ne(A));
            var o = r.length / 3,
              a = p.generateSideWallUV(n, r, o - 6, o - 3, o - 2, o - 1);
            (re(a[0]), re(a[1]), re(a[3]), re(a[1]), re(a[2]), re(a[3]));
          }
          function ne(e) {
            (r.push(A[3 * e + 0]), r.push(A[3 * e + 1]), r.push(A[3 * e + 2]));
          }
          function re(e) {
            (i.push(e.x), i.push(e.y));
          }
          (J(), q());
        }
        (this.setAttribute("position", new ri(r, 3)),
          this.setAttribute("uv", new ri(i, 2)),
          this.computeVertexNormals());
      }
      ((jl.prototype = Object.create(Di.prototype)),
        (jl.prototype.constructor = jl),
        (jl.prototype.toJSON = function () {
          var e = Di.prototype.toJSON.call(this),
            t = this.parameters.shapes,
            n = this.parameters.options;
          return Xl(t, n, e);
        }),
        (Kl.prototype = Object.create(di.prototype)),
        (Kl.prototype.constructor = Kl),
        (Kl.prototype.toJSON = function () {
          var e = di.prototype.toJSON.call(this),
            t = this.parameters.shapes,
            n = this.parameters.options;
          return Xl(t, n, e);
        }));
      var Wl = {
        generateTopUV: function (e, t, n, r, i) {
          var A = t[3 * n],
            o = t[3 * n + 1],
            a = t[3 * r],
            s = t[3 * r + 1],
            c = t[3 * i],
            u = t[3 * i + 1];
          return [new hn(A, o), new hn(a, s), new hn(c, u)];
        },
        generateSideWallUV: function (e, t, n, r, i, A) {
          var o = t[3 * n],
            a = t[3 * n + 1],
            s = t[3 * n + 2],
            c = t[3 * r],
            u = t[3 * r + 1],
            l = t[3 * r + 2],
            h = t[3 * i],
            f = t[3 * i + 1],
            d = t[3 * i + 2],
            p = t[3 * A],
            g = t[3 * A + 1],
            m = t[3 * A + 2];
          return Math.abs(a - u) < 0.01
            ? [
                new hn(o, 1 - s),
                new hn(c, 1 - l),
                new hn(h, 1 - d),
                new hn(p, 1 - m),
              ]
            : [
                new hn(a, 1 - s),
                new hn(u, 1 - l),
                new hn(f, 1 - d),
                new hn(g, 1 - m),
              ];
        },
      };
      function Xl(e, t, n) {
        if (((n.shapes = []), Array.isArray(e)))
          for (var r = 0, i = e.length; r < i; r++) {
            var A = e[r];
            n.shapes.push(A.uuid);
          }
        else n.shapes.push(e.uuid);
        return (
          void 0 !== t.extrudePath &&
            (n.options.extrudePath = t.extrudePath.toJSON()),
          n
        );
      }
      function Yl(e, t) {
        (Di.call(this),
          (this.type = "TextGeometry"),
          (this.parameters = { text: e, parameters: t }),
          this.fromBufferGeometry(new Jl(e, t)),
          this.mergeVertices());
      }
      function Jl(e, t) {
        t = t || {};
        var n = t.font;
        if (!n || !n.isFont)
          return (
            console.log(
              "THREE.TextGeometry: font parameter is not an instance of THREE.Font.",
            ),
            new Di()
          );
        var r = n.generateShapes(e, t.size);
        ((t.depth = void 0 !== t.height ? t.height : 50),
          void 0 === t.bevelThickness && (t.bevelThickness = 10),
          void 0 === t.bevelSize && (t.bevelSize = 8),
          void 0 === t.bevelEnabled && (t.bevelEnabled = !1),
          Kl.call(this, r, t),
          (this.type = "TextBufferGeometry"));
      }
      function ql(e, t, n, r, i, A, o) {
        (Di.call(this),
          (this.type = "SphereGeometry"),
          (this.parameters = {
            radius: e,
            widthSegments: t,
            heightSegments: n,
            phiStart: r,
            phiLength: i,
            thetaStart: A,
            thetaLength: o,
          }),
          this.fromBufferGeometry(new Zl(e, t, n, r, i, A, o)),
          this.mergeVertices());
      }
      function Zl(e, t, n, r, i, A, o) {
        (di.call(this),
          (this.type = "SphereBufferGeometry"),
          (this.parameters = {
            radius: e,
            widthSegments: t,
            heightSegments: n,
            phiStart: r,
            phiLength: i,
            thetaStart: A,
            thetaLength: o,
          }),
          (e = e || 1),
          (t = Math.max(3, Math.floor(t) || 8)),
          (n = Math.max(2, Math.floor(n) || 6)),
          (r = void 0 !== r ? r : 0),
          (i = void 0 !== i ? i : 2 * Math.PI),
          (A = void 0 !== A ? A : 0),
          (o = void 0 !== o ? o : Math.PI));
        var a,
          s,
          c = Math.min(A + o, Math.PI),
          u = 0,
          l = [],
          h = new _n(),
          f = new _n(),
          d = [],
          p = [],
          g = [],
          m = [];
        for (s = 0; s <= n; s++) {
          var v = [],
            y = s / n,
            w = 0;
          for (
            0 == s && 0 == A
              ? (w = 0.5 / t)
              : s == n && c == Math.PI && (w = -0.5 / t),
              a = 0;
            a <= t;
            a++
          ) {
            var B = a / t;
            ((h.x = -e * Math.cos(r + B * i) * Math.sin(A + y * o)),
              (h.y = e * Math.cos(A + y * o)),
              (h.z = e * Math.sin(r + B * i) * Math.sin(A + y * o)),
              p.push(h.x, h.y, h.z),
              f.copy(h).normalize(),
              g.push(f.x, f.y, f.z),
              m.push(B + w, 1 - y),
              v.push(u++));
          }
          l.push(v);
        }
        for (s = 0; s < n; s++)
          for (a = 0; a < t; a++) {
            var b = l[s][a + 1],
              _ = l[s][a],
              x = l[s + 1][a],
              C = l[s + 1][a + 1];
            ((0 !== s || A > 0) && d.push(b, _, C),
              (s !== n - 1 || c < Math.PI) && d.push(_, x, C));
          }
        (this.setIndex(d),
          this.setAttribute("position", new ri(p, 3)),
          this.setAttribute("normal", new ri(g, 3)),
          this.setAttribute("uv", new ri(m, 2)));
      }
      function $l(e, t, n, r, i, A) {
        (Di.call(this),
          (this.type = "RingGeometry"),
          (this.parameters = {
            innerRadius: e,
            outerRadius: t,
            thetaSegments: n,
            phiSegments: r,
            thetaStart: i,
            thetaLength: A,
          }),
          this.fromBufferGeometry(new eh(e, t, n, r, i, A)),
          this.mergeVertices());
      }
      function eh(e, t, n, r, i, A) {
        (di.call(this),
          (this.type = "RingBufferGeometry"),
          (this.parameters = {
            innerRadius: e,
            outerRadius: t,
            thetaSegments: n,
            phiSegments: r,
            thetaStart: i,
            thetaLength: A,
          }),
          (e = e || 0.5),
          (t = t || 1),
          (i = void 0 !== i ? i : 0),
          (A = void 0 !== A ? A : 2 * Math.PI),
          (n = void 0 !== n ? Math.max(3, n) : 8),
          (r = void 0 !== r ? Math.max(1, r) : 1));
        var o,
          a,
          s,
          c = [],
          u = [],
          l = [],
          h = [],
          f = e,
          d = (t - e) / r,
          p = new _n(),
          g = new hn();
        for (a = 0; a <= r; a++) {
          for (s = 0; s <= n; s++)
            ((o = i + (s / n) * A),
              (p.x = f * Math.cos(o)),
              (p.y = f * Math.sin(o)),
              u.push(p.x, p.y, p.z),
              l.push(0, 0, 1),
              (g.x = (p.x / t + 1) / 2),
              (g.y = (p.y / t + 1) / 2),
              h.push(g.x, g.y));
          f += d;
        }
        for (a = 0; a < r; a++) {
          var m = a * (n + 1);
          for (s = 0; s < n; s++) {
            o = s + m;
            var v = o,
              y = o + n + 1,
              w = o + n + 2,
              B = o + 1;
            (c.push(v, y, B), c.push(y, w, B));
          }
        }
        (this.setIndex(c),
          this.setAttribute("position", new ri(u, 3)),
          this.setAttribute("normal", new ri(l, 3)),
          this.setAttribute("uv", new ri(h, 2)));
      }
      function th(e, t, n, r) {
        (Di.call(this),
          (this.type = "LatheGeometry"),
          (this.parameters = {
            points: e,
            segments: t,
            phiStart: n,
            phiLength: r,
          }),
          this.fromBufferGeometry(new nh(e, t, n, r)),
          this.mergeVertices());
      }
      function nh(e, t, n, r) {
        (di.call(this),
          (this.type = "LatheBufferGeometry"),
          (this.parameters = {
            points: e,
            segments: t,
            phiStart: n,
            phiLength: r,
          }),
          (t = Math.floor(t) || 12),
          (n = n || 0),
          (r = r || 2 * Math.PI),
          (r = ln.clamp(r, 0, 2 * Math.PI)));
        var i,
          A,
          o,
          a = [],
          s = [],
          c = [],
          u = 1 / t,
          l = new _n(),
          h = new hn();
        for (A = 0; A <= t; A++) {
          var f = n + A * u * r,
            d = Math.sin(f),
            p = Math.cos(f);
          for (o = 0; o <= e.length - 1; o++)
            ((l.x = e[o].x * d),
              (l.y = e[o].y),
              (l.z = e[o].x * p),
              s.push(l.x, l.y, l.z),
              (h.x = A / t),
              (h.y = o / (e.length - 1)),
              c.push(h.x, h.y));
        }
        for (A = 0; A < t; A++)
          for (o = 0; o < e.length - 1; o++) {
            i = o + A * e.length;
            var g = i,
              m = i + e.length,
              v = i + e.length + 1,
              y = i + 1;
            (a.push(g, m, y), a.push(m, v, y));
          }
        if (
          (this.setIndex(a),
          this.setAttribute("position", new ri(s, 3)),
          this.setAttribute("uv", new ri(c, 2)),
          this.computeVertexNormals(),
          r === 2 * Math.PI)
        ) {
          var w = this.attributes.normal.array,
            B = new _n(),
            b = new _n(),
            _ = new _n();
          for (i = t * e.length * 3, A = 0, o = 0; A < e.length; A++, o += 3)
            ((B.x = w[o + 0]),
              (B.y = w[o + 1]),
              (B.z = w[o + 2]),
              (b.x = w[i + o + 0]),
              (b.y = w[i + o + 1]),
              (b.z = w[i + o + 2]),
              _.addVectors(B, b).normalize(),
              (w[o + 0] = w[i + o + 0] = _.x),
              (w[o + 1] = w[i + o + 1] = _.y),
              (w[o + 2] = w[i + o + 2] = _.z));
        }
      }
      function rh(e, t) {
        (Di.call(this),
          (this.type = "ShapeGeometry"),
          "object" === typeof t &&
            (console.warn(
              "THREE.ShapeGeometry: Options parameter has been removed.",
            ),
            (t = t.curveSegments)),
          (this.parameters = { shapes: e, curveSegments: t }),
          this.fromBufferGeometry(new ih(e, t)),
          this.mergeVertices());
      }
      function ih(e, t) {
        (di.call(this),
          (this.type = "ShapeBufferGeometry"),
          (this.parameters = { shapes: e, curveSegments: t }),
          (t = t || 12));
        var n = [],
          r = [],
          i = [],
          A = [],
          o = 0,
          a = 0;
        if (!1 === Array.isArray(e)) c(e);
        else
          for (var s = 0; s < e.length; s++)
            (c(e[s]), this.addGroup(o, a, s), (o += a), (a = 0));
        function c(e) {
          var o,
            s,
            c,
            u = r.length / 3,
            l = e.extractPoints(t),
            h = l.shape,
            f = l.holes;
          for (
            !1 === Gl.isClockWise(h) && (h = h.reverse()), o = 0, s = f.length;
            o < s;
            o++
          )
            ((c = f[o]), !0 === Gl.isClockWise(c) && (f[o] = c.reverse()));
          var d = Gl.triangulateShape(h, f);
          for (o = 0, s = f.length; o < s; o++) ((c = f[o]), (h = h.concat(c)));
          for (o = 0, s = h.length; o < s; o++) {
            var p = h[o];
            (r.push(p.x, p.y, 0), i.push(0, 0, 1), A.push(p.x, p.y));
          }
          for (o = 0, s = d.length; o < s; o++) {
            var g = d[o],
              m = g[0] + u,
              v = g[1] + u,
              y = g[2] + u;
            (n.push(m, v, y), (a += 3));
          }
        }
        (this.setIndex(n),
          this.setAttribute("position", new ri(r, 3)),
          this.setAttribute("normal", new ri(i, 3)),
          this.setAttribute("uv", new ri(A, 2)));
      }
      function Ah(e, t) {
        if (((t.shapes = []), Array.isArray(e)))
          for (var n = 0, r = e.length; n < r; n++) {
            var i = e[n];
            t.shapes.push(i.uuid);
          }
        else t.shapes.push(e.uuid);
        return t;
      }
      function oh(e, t) {
        (di.call(this),
          (this.type = "EdgesGeometry"),
          (this.parameters = { thresholdAngle: t }),
          (t = void 0 !== t ? t : 1));
        var n,
          r,
          i,
          A,
          o = [],
          a = Math.cos(ln.DEG2RAD * t),
          s = [0, 0],
          c = {},
          u = ["a", "b", "c"];
        (e.isBufferGeometry
          ? ((A = new Di()), A.fromBufferGeometry(e))
          : (A = e.clone()),
          A.mergeVertices(),
          A.computeFaceNormals());
        for (var l = A.vertices, h = A.faces, f = 0, d = h.length; f < d; f++)
          for (var p = h[f], g = 0; g < 3; g++)
            ((n = p[u[g]]),
              (r = p[u[(g + 1) % 3]]),
              (s[0] = Math.min(n, r)),
              (s[1] = Math.max(n, r)),
              (i = s[0] + "," + s[1]),
              void 0 === c[i]
                ? (c[i] = {
                    index1: s[0],
                    index2: s[1],
                    face1: f,
                    face2: void 0,
                  })
                : (c[i].face2 = f));
        for (i in c) {
          var m = c[i];
          if (
            void 0 === m.face2 ||
            h[m.face1].normal.dot(h[m.face2].normal) <= a
          ) {
            var v = l[m.index1];
            (o.push(v.x, v.y, v.z), (v = l[m.index2]), o.push(v.x, v.y, v.z));
          }
        }
        this.setAttribute("position", new ri(o, 3));
      }
      function ah(e, t, n, r, i, A, o, a) {
        (Di.call(this),
          (this.type = "CylinderGeometry"),
          (this.parameters = {
            radiusTop: e,
            radiusBottom: t,
            height: n,
            radialSegments: r,
            heightSegments: i,
            openEnded: A,
            thetaStart: o,
            thetaLength: a,
          }),
          this.fromBufferGeometry(new sh(e, t, n, r, i, A, o, a)),
          this.mergeVertices());
      }
      function sh(e, t, n, r, i, A, o, a) {
        (di.call(this),
          (this.type = "CylinderBufferGeometry"),
          (this.parameters = {
            radiusTop: e,
            radiusBottom: t,
            height: n,
            radialSegments: r,
            heightSegments: i,
            openEnded: A,
            thetaStart: o,
            thetaLength: a,
          }));
        var s = this;
        ((e = void 0 !== e ? e : 1),
          (t = void 0 !== t ? t : 1),
          (n = n || 1),
          (r = Math.floor(r) || 8),
          (i = Math.floor(i) || 1),
          (A = void 0 !== A && A),
          (o = void 0 !== o ? o : 0),
          (a = void 0 !== a ? a : 2 * Math.PI));
        var c = [],
          u = [],
          l = [],
          h = [],
          f = 0,
          d = [],
          p = n / 2,
          g = 0;
        function m() {
          var A,
            m,
            v = new _n(),
            y = new _n(),
            w = 0,
            B = (t - e) / n;
          for (m = 0; m <= i; m++) {
            var b = [],
              _ = m / i,
              x = _ * (t - e) + e;
            for (A = 0; A <= r; A++) {
              var C = A / r,
                E = C * a + o,
                M = Math.sin(E),
                S = Math.cos(E);
              ((y.x = x * M),
                (y.y = -_ * n + p),
                (y.z = x * S),
                u.push(y.x, y.y, y.z),
                v.set(M, B, S).normalize(),
                l.push(v.x, v.y, v.z),
                h.push(C, 1 - _),
                b.push(f++));
            }
            d.push(b);
          }
          for (A = 0; A < r; A++)
            for (m = 0; m < i; m++) {
              var F = d[m][A],
                T = d[m + 1][A],
                U = d[m + 1][A + 1],
                Q = d[m][A + 1];
              (c.push(F, T, Q), c.push(T, U, Q), (w += 6));
            }
          (s.addGroup(g, w, 0), (g += w));
        }
        function v(n) {
          var i,
            A,
            d,
            m = new hn(),
            v = new _n(),
            y = 0,
            w = !0 === n ? e : t,
            B = !0 === n ? 1 : -1;
          for (A = f, i = 1; i <= r; i++)
            (u.push(0, p * B, 0), l.push(0, B, 0), h.push(0.5, 0.5), f++);
          for (d = f, i = 0; i <= r; i++) {
            var b = i / r,
              _ = b * a + o,
              x = Math.cos(_),
              C = Math.sin(_);
            ((v.x = w * C),
              (v.y = p * B),
              (v.z = w * x),
              u.push(v.x, v.y, v.z),
              l.push(0, B, 0),
              (m.x = 0.5 * x + 0.5),
              (m.y = 0.5 * C * B + 0.5),
              h.push(m.x, m.y),
              f++);
          }
          for (i = 0; i < r; i++) {
            var E = A + i,
              M = d + i;
            (!0 === n ? c.push(M, M + 1, E) : c.push(M + 1, M, E), (y += 3));
          }
          (s.addGroup(g, y, !0 === n ? 1 : 2), (g += y));
        }
        (m(),
          !1 === A && (e > 0 && v(!0), t > 0 && v(!1)),
          this.setIndex(c),
          this.setAttribute("position", new ri(u, 3)),
          this.setAttribute("normal", new ri(l, 3)),
          this.setAttribute("uv", new ri(h, 2)));
      }
      function ch(e, t, n, r, i, A, o) {
        (ah.call(this, 0, e, t, n, r, i, A, o),
          (this.type = "ConeGeometry"),
          (this.parameters = {
            radius: e,
            height: t,
            radialSegments: n,
            heightSegments: r,
            openEnded: i,
            thetaStart: A,
            thetaLength: o,
          }));
      }
      function uh(e, t, n, r, i, A, o) {
        (sh.call(this, 0, e, t, n, r, i, A, o),
          (this.type = "ConeBufferGeometry"),
          (this.parameters = {
            radius: e,
            height: t,
            radialSegments: n,
            heightSegments: r,
            openEnded: i,
            thetaStart: A,
            thetaLength: o,
          }));
      }
      function lh(e, t, n, r) {
        (Di.call(this),
          (this.type = "CircleGeometry"),
          (this.parameters = {
            radius: e,
            segments: t,
            thetaStart: n,
            thetaLength: r,
          }),
          this.fromBufferGeometry(new hh(e, t, n, r)),
          this.mergeVertices());
      }
      function hh(e, t, n, r) {
        (di.call(this),
          (this.type = "CircleBufferGeometry"),
          (this.parameters = {
            radius: e,
            segments: t,
            thetaStart: n,
            thetaLength: r,
          }),
          (e = e || 1),
          (t = void 0 !== t ? Math.max(3, t) : 8),
          (n = void 0 !== n ? n : 0),
          (r = void 0 !== r ? r : 2 * Math.PI));
        var i,
          A,
          o = [],
          a = [],
          s = [],
          c = [],
          u = new _n(),
          l = new hn();
        for (
          a.push(0, 0, 0), s.push(0, 0, 1), c.push(0.5, 0.5), A = 0, i = 3;
          A <= t;
          A++, i += 3
        ) {
          var h = n + (A / t) * r;
          ((u.x = e * Math.cos(h)),
            (u.y = e * Math.sin(h)),
            a.push(u.x, u.y, u.z),
            s.push(0, 0, 1),
            (l.x = (a[i] / e + 1) / 2),
            (l.y = (a[i + 1] / e + 1) / 2),
            c.push(l.x, l.y));
        }
        for (i = 1; i <= t; i++) o.push(i, i + 1, 0);
        (this.setIndex(o),
          this.setAttribute("position", new ri(a, 3)),
          this.setAttribute("normal", new ri(s, 3)),
          this.setAttribute("uv", new ri(c, 2)));
      }
      ((Yl.prototype = Object.create(Di.prototype)),
        (Yl.prototype.constructor = Yl),
        (Jl.prototype = Object.create(Kl.prototype)),
        (Jl.prototype.constructor = Jl),
        (ql.prototype = Object.create(Di.prototype)),
        (ql.prototype.constructor = ql),
        (Zl.prototype = Object.create(di.prototype)),
        (Zl.prototype.constructor = Zl),
        ($l.prototype = Object.create(Di.prototype)),
        ($l.prototype.constructor = $l),
        (eh.prototype = Object.create(di.prototype)),
        (eh.prototype.constructor = eh),
        (th.prototype = Object.create(Di.prototype)),
        (th.prototype.constructor = th),
        (nh.prototype = Object.create(di.prototype)),
        (nh.prototype.constructor = nh),
        (rh.prototype = Object.create(Di.prototype)),
        (rh.prototype.constructor = rh),
        (rh.prototype.toJSON = function () {
          var e = Di.prototype.toJSON.call(this),
            t = this.parameters.shapes;
          return Ah(t, e);
        }),
        (ih.prototype = Object.create(di.prototype)),
        (ih.prototype.constructor = ih),
        (ih.prototype.toJSON = function () {
          var e = di.prototype.toJSON.call(this),
            t = this.parameters.shapes;
          return Ah(t, e);
        }),
        (oh.prototype = Object.create(di.prototype)),
        (oh.prototype.constructor = oh),
        (ah.prototype = Object.create(Di.prototype)),
        (ah.prototype.constructor = ah),
        (sh.prototype = Object.create(di.prototype)),
        (sh.prototype.constructor = sh),
        (ch.prototype = Object.create(ah.prototype)),
        (ch.prototype.constructor = ch),
        (uh.prototype = Object.create(sh.prototype)),
        (uh.prototype.constructor = uh),
        (lh.prototype = Object.create(Di.prototype)),
        (lh.prototype.constructor = lh),
        (hh.prototype = Object.create(di.prototype)),
        (hh.prototype.constructor = hh));
      var fh = Object.freeze({
        __proto__: null,
        WireframeGeometry: ju,
        ParametricGeometry: Ku,
        ParametricBufferGeometry: Wu,
        TetrahedronGeometry: Ju,
        TetrahedronBufferGeometry: qu,
        OctahedronGeometry: Zu,
        OctahedronBufferGeometry: $u,
        IcosahedronGeometry: el,
        IcosahedronBufferGeometry: tl,
        DodecahedronGeometry: nl,
        DodecahedronBufferGeometry: rl,
        PolyhedronGeometry: Xu,
        PolyhedronBufferGeometry: Yu,
        TubeGeometry: il,
        TubeBufferGeometry: Al,
        TorusKnotGeometry: ol,
        TorusKnotBufferGeometry: al,
        TorusGeometry: sl,
        TorusBufferGeometry: cl,
        TextGeometry: Yl,
        TextBufferGeometry: Jl,
        SphereGeometry: ql,
        SphereBufferGeometry: Zl,
        RingGeometry: $l,
        RingBufferGeometry: eh,
        PlaneGeometry: aA,
        PlaneBufferGeometry: sA,
        LatheGeometry: th,
        LatheBufferGeometry: nh,
        ShapeGeometry: rh,
        ShapeBufferGeometry: ih,
        ExtrudeGeometry: jl,
        ExtrudeBufferGeometry: Kl,
        EdgesGeometry: oh,
        ConeGeometry: ch,
        ConeBufferGeometry: uh,
        CylinderGeometry: ah,
        CylinderBufferGeometry: sh,
        CircleGeometry: lh,
        CircleBufferGeometry: hh,
        BoxGeometry: Ni,
        BoxBufferGeometry: ki,
      });
      function dh(e) {
        (Kr.call(this),
          (this.type = "ShadowMaterial"),
          (this.color = new Nr(0)),
          (this.transparent = !0),
          this.setValues(e));
      }
      function ph(e) {
        (Wi.call(this, e), (this.type = "RawShaderMaterial"));
      }
      function gh(e) {
        (Kr.call(this),
          (this.defines = { STANDARD: "" }),
          (this.type = "MeshStandardMaterial"),
          (this.color = new Nr(16777215)),
          (this.roughness = 1),
          (this.metalness = 0),
          (this.map = null),
          (this.lightMap = null),
          (this.lightMapIntensity = 1),
          (this.aoMap = null),
          (this.aoMapIntensity = 1),
          (this.emissive = new Nr(0)),
          (this.emissiveIntensity = 1),
          (this.emissiveMap = null),
          (this.bumpMap = null),
          (this.bumpScale = 1),
          (this.normalMap = null),
          (this.normalMapType = en),
          (this.normalScale = new hn(1, 1)),
          (this.displacementMap = null),
          (this.displacementScale = 1),
          (this.displacementBias = 0),
          (this.roughnessMap = null),
          (this.metalnessMap = null),
          (this.alphaMap = null),
          (this.envMap = null),
          (this.envMapIntensity = 1),
          (this.refractionRatio = 0.98),
          (this.wireframe = !1),
          (this.wireframeLinewidth = 1),
          (this.wireframeLinecap = "round"),
          (this.wireframeLinejoin = "round"),
          (this.skinning = !1),
          (this.morphTargets = !1),
          (this.morphNormals = !1),
          (this.vertexTangents = !1),
          this.setValues(e));
      }
      function mh(e) {
        (gh.call(this),
          (this.defines = { STANDARD: "", PHYSICAL: "" }),
          (this.type = "MeshPhysicalMaterial"),
          (this.clearcoat = 0),
          (this.clearcoatMap = null),
          (this.clearcoatRoughness = 0),
          (this.clearcoatRoughnessMap = null),
          (this.clearcoatNormalScale = new hn(1, 1)),
          (this.clearcoatNormalMap = null),
          (this.reflectivity = 0.5),
          (this.sheen = null),
          (this.transparency = 0),
          this.setValues(e));
      }
      function vh(e) {
        (Kr.call(this),
          (this.type = "MeshPhongMaterial"),
          (this.color = new Nr(16777215)),
          (this.specular = new Nr(1118481)),
          (this.shininess = 30),
          (this.map = null),
          (this.lightMap = null),
          (this.lightMapIntensity = 1),
          (this.aoMap = null),
          (this.aoMapIntensity = 1),
          (this.emissive = new Nr(0)),
          (this.emissiveIntensity = 1),
          (this.emissiveMap = null),
          (this.bumpMap = null),
          (this.bumpScale = 1),
          (this.normalMap = null),
          (this.normalMapType = en),
          (this.normalScale = new hn(1, 1)),
          (this.displacementMap = null),
          (this.displacementScale = 1),
          (this.displacementBias = 0),
          (this.specularMap = null),
          (this.alphaMap = null),
          (this.envMap = null),
          (this.combine = K),
          (this.reflectivity = 1),
          (this.refractionRatio = 0.98),
          (this.wireframe = !1),
          (this.wireframeLinewidth = 1),
          (this.wireframeLinecap = "round"),
          (this.wireframeLinejoin = "round"),
          (this.skinning = !1),
          (this.morphTargets = !1),
          (this.morphNormals = !1),
          this.setValues(e));
      }
      function yh(e) {
        (Kr.call(this),
          (this.defines = { TOON: "" }),
          (this.type = "MeshToonMaterial"),
          (this.color = new Nr(16777215)),
          (this.specular = new Nr(1118481)),
          (this.shininess = 30),
          (this.map = null),
          (this.gradientMap = null),
          (this.lightMap = null),
          (this.lightMapIntensity = 1),
          (this.aoMap = null),
          (this.aoMapIntensity = 1),
          (this.emissive = new Nr(0)),
          (this.emissiveIntensity = 1),
          (this.emissiveMap = null),
          (this.bumpMap = null),
          (this.bumpScale = 1),
          (this.normalMap = null),
          (this.normalMapType = en),
          (this.normalScale = new hn(1, 1)),
          (this.displacementMap = null),
          (this.displacementScale = 1),
          (this.displacementBias = 0),
          (this.specularMap = null),
          (this.alphaMap = null),
          (this.wireframe = !1),
          (this.wireframeLinewidth = 1),
          (this.wireframeLinecap = "round"),
          (this.wireframeLinejoin = "round"),
          (this.skinning = !1),
          (this.morphTargets = !1),
          (this.morphNormals = !1),
          this.setValues(e));
      }
      function wh(e) {
        (Kr.call(this),
          (this.type = "MeshNormalMaterial"),
          (this.bumpMap = null),
          (this.bumpScale = 1),
          (this.normalMap = null),
          (this.normalMapType = en),
          (this.normalScale = new hn(1, 1)),
          (this.displacementMap = null),
          (this.displacementScale = 1),
          (this.displacementBias = 0),
          (this.wireframe = !1),
          (this.wireframeLinewidth = 1),
          (this.fog = !1),
          (this.skinning = !1),
          (this.morphTargets = !1),
          (this.morphNormals = !1),
          this.setValues(e));
      }
      function Bh(e) {
        (Kr.call(this),
          (this.type = "MeshLambertMaterial"),
          (this.color = new Nr(16777215)),
          (this.map = null),
          (this.lightMap = null),
          (this.lightMapIntensity = 1),
          (this.aoMap = null),
          (this.aoMapIntensity = 1),
          (this.emissive = new Nr(0)),
          (this.emissiveIntensity = 1),
          (this.emissiveMap = null),
          (this.specularMap = null),
          (this.alphaMap = null),
          (this.envMap = null),
          (this.combine = K),
          (this.reflectivity = 1),
          (this.refractionRatio = 0.98),
          (this.wireframe = !1),
          (this.wireframeLinewidth = 1),
          (this.wireframeLinecap = "round"),
          (this.wireframeLinejoin = "round"),
          (this.skinning = !1),
          (this.morphTargets = !1),
          (this.morphNormals = !1),
          this.setValues(e));
      }
      function bh(e) {
        (Kr.call(this),
          (this.defines = { MATCAP: "" }),
          (this.type = "MeshMatcapMaterial"),
          (this.color = new Nr(16777215)),
          (this.matcap = null),
          (this.map = null),
          (this.bumpMap = null),
          (this.bumpScale = 1),
          (this.normalMap = null),
          (this.normalMapType = en),
          (this.normalScale = new hn(1, 1)),
          (this.displacementMap = null),
          (this.displacementScale = 1),
          (this.displacementBias = 0),
          (this.alphaMap = null),
          (this.skinning = !1),
          (this.morphTargets = !1),
          (this.morphNormals = !1),
          this.setValues(e));
      }
      function _h(e) {
        (_u.call(this),
          (this.type = "LineDashedMaterial"),
          (this.scale = 1),
          (this.dashSize = 3),
          (this.gapSize = 1),
          this.setValues(e));
      }
      ((dh.prototype = Object.create(Kr.prototype)),
        (dh.prototype.constructor = dh),
        (dh.prototype.isShadowMaterial = !0),
        (dh.prototype.copy = function (e) {
          return (
            Kr.prototype.copy.call(this, e),
            this.color.copy(e.color),
            this
          );
        }),
        (ph.prototype = Object.create(Wi.prototype)),
        (ph.prototype.constructor = ph),
        (ph.prototype.isRawShaderMaterial = !0),
        (gh.prototype = Object.create(Kr.prototype)),
        (gh.prototype.constructor = gh),
        (gh.prototype.isMeshStandardMaterial = !0),
        (gh.prototype.copy = function (e) {
          return (
            Kr.prototype.copy.call(this, e),
            (this.defines = { STANDARD: "" }),
            this.color.copy(e.color),
            (this.roughness = e.roughness),
            (this.metalness = e.metalness),
            (this.map = e.map),
            (this.lightMap = e.lightMap),
            (this.lightMapIntensity = e.lightMapIntensity),
            (this.aoMap = e.aoMap),
            (this.aoMapIntensity = e.aoMapIntensity),
            this.emissive.copy(e.emissive),
            (this.emissiveMap = e.emissiveMap),
            (this.emissiveIntensity = e.emissiveIntensity),
            (this.bumpMap = e.bumpMap),
            (this.bumpScale = e.bumpScale),
            (this.normalMap = e.normalMap),
            (this.normalMapType = e.normalMapType),
            this.normalScale.copy(e.normalScale),
            (this.displacementMap = e.displacementMap),
            (this.displacementScale = e.displacementScale),
            (this.displacementBias = e.displacementBias),
            (this.roughnessMap = e.roughnessMap),
            (this.metalnessMap = e.metalnessMap),
            (this.alphaMap = e.alphaMap),
            (this.envMap = e.envMap),
            (this.envMapIntensity = e.envMapIntensity),
            (this.refractionRatio = e.refractionRatio),
            (this.wireframe = e.wireframe),
            (this.wireframeLinewidth = e.wireframeLinewidth),
            (this.wireframeLinecap = e.wireframeLinecap),
            (this.wireframeLinejoin = e.wireframeLinejoin),
            (this.skinning = e.skinning),
            (this.morphTargets = e.morphTargets),
            (this.morphNormals = e.morphNormals),
            (this.vertexTangents = e.vertexTangents),
            this
          );
        }),
        (mh.prototype = Object.create(gh.prototype)),
        (mh.prototype.constructor = mh),
        (mh.prototype.isMeshPhysicalMaterial = !0),
        (mh.prototype.copy = function (e) {
          return (
            gh.prototype.copy.call(this, e),
            (this.defines = { STANDARD: "", PHYSICAL: "" }),
            (this.clearcoat = e.clearcoat),
            (this.clearcoatMap = e.clearcoatMap),
            (this.clearcoatRoughness = e.clearcoatRoughness),
            (this.clearcoatRoughnessMap = e.clearcoatRoughnessMap),
            (this.clearcoatNormalMap = e.clearcoatNormalMap),
            this.clearcoatNormalScale.copy(e.clearcoatNormalScale),
            (this.reflectivity = e.reflectivity),
            e.sheen
              ? (this.sheen = (this.sheen || new Nr()).copy(e.sheen))
              : (this.sheen = null),
            (this.transparency = e.transparency),
            this
          );
        }),
        (vh.prototype = Object.create(Kr.prototype)),
        (vh.prototype.constructor = vh),
        (vh.prototype.isMeshPhongMaterial = !0),
        (vh.prototype.copy = function (e) {
          return (
            Kr.prototype.copy.call(this, e),
            this.color.copy(e.color),
            this.specular.copy(e.specular),
            (this.shininess = e.shininess),
            (this.map = e.map),
            (this.lightMap = e.lightMap),
            (this.lightMapIntensity = e.lightMapIntensity),
            (this.aoMap = e.aoMap),
            (this.aoMapIntensity = e.aoMapIntensity),
            this.emissive.copy(e.emissive),
            (this.emissiveMap = e.emissiveMap),
            (this.emissiveIntensity = e.emissiveIntensity),
            (this.bumpMap = e.bumpMap),
            (this.bumpScale = e.bumpScale),
            (this.normalMap = e.normalMap),
            (this.normalMapType = e.normalMapType),
            this.normalScale.copy(e.normalScale),
            (this.displacementMap = e.displacementMap),
            (this.displacementScale = e.displacementScale),
            (this.displacementBias = e.displacementBias),
            (this.specularMap = e.specularMap),
            (this.alphaMap = e.alphaMap),
            (this.envMap = e.envMap),
            (this.combine = e.combine),
            (this.reflectivity = e.reflectivity),
            (this.refractionRatio = e.refractionRatio),
            (this.wireframe = e.wireframe),
            (this.wireframeLinewidth = e.wireframeLinewidth),
            (this.wireframeLinecap = e.wireframeLinecap),
            (this.wireframeLinejoin = e.wireframeLinejoin),
            (this.skinning = e.skinning),
            (this.morphTargets = e.morphTargets),
            (this.morphNormals = e.morphNormals),
            this
          );
        }),
        (yh.prototype = Object.create(Kr.prototype)),
        (yh.prototype.constructor = yh),
        (yh.prototype.isMeshToonMaterial = !0),
        (yh.prototype.copy = function (e) {
          return (
            Kr.prototype.copy.call(this, e),
            this.color.copy(e.color),
            this.specular.copy(e.specular),
            (this.shininess = e.shininess),
            (this.map = e.map),
            (this.gradientMap = e.gradientMap),
            (this.lightMap = e.lightMap),
            (this.lightMapIntensity = e.lightMapIntensity),
            (this.aoMap = e.aoMap),
            (this.aoMapIntensity = e.aoMapIntensity),
            this.emissive.copy(e.emissive),
            (this.emissiveMap = e.emissiveMap),
            (this.emissiveIntensity = e.emissiveIntensity),
            (this.bumpMap = e.bumpMap),
            (this.bumpScale = e.bumpScale),
            (this.normalMap = e.normalMap),
            (this.normalMapType = e.normalMapType),
            this.normalScale.copy(e.normalScale),
            (this.displacementMap = e.displacementMap),
            (this.displacementScale = e.displacementScale),
            (this.displacementBias = e.displacementBias),
            (this.specularMap = e.specularMap),
            (this.alphaMap = e.alphaMap),
            (this.wireframe = e.wireframe),
            (this.wireframeLinewidth = e.wireframeLinewidth),
            (this.wireframeLinecap = e.wireframeLinecap),
            (this.wireframeLinejoin = e.wireframeLinejoin),
            (this.skinning = e.skinning),
            (this.morphTargets = e.morphTargets),
            (this.morphNormals = e.morphNormals),
            this
          );
        }),
        (wh.prototype = Object.create(Kr.prototype)),
        (wh.prototype.constructor = wh),
        (wh.prototype.isMeshNormalMaterial = !0),
        (wh.prototype.copy = function (e) {
          return (
            Kr.prototype.copy.call(this, e),
            (this.bumpMap = e.bumpMap),
            (this.bumpScale = e.bumpScale),
            (this.normalMap = e.normalMap),
            (this.normalMapType = e.normalMapType),
            this.normalScale.copy(e.normalScale),
            (this.displacementMap = e.displacementMap),
            (this.displacementScale = e.displacementScale),
            (this.displacementBias = e.displacementBias),
            (this.wireframe = e.wireframe),
            (this.wireframeLinewidth = e.wireframeLinewidth),
            (this.skinning = e.skinning),
            (this.morphTargets = e.morphTargets),
            (this.morphNormals = e.morphNormals),
            this
          );
        }),
        (Bh.prototype = Object.create(Kr.prototype)),
        (Bh.prototype.constructor = Bh),
        (Bh.prototype.isMeshLambertMaterial = !0),
        (Bh.prototype.copy = function (e) {
          return (
            Kr.prototype.copy.call(this, e),
            this.color.copy(e.color),
            (this.map = e.map),
            (this.lightMap = e.lightMap),
            (this.lightMapIntensity = e.lightMapIntensity),
            (this.aoMap = e.aoMap),
            (this.aoMapIntensity = e.aoMapIntensity),
            this.emissive.copy(e.emissive),
            (this.emissiveMap = e.emissiveMap),
            (this.emissiveIntensity = e.emissiveIntensity),
            (this.specularMap = e.specularMap),
            (this.alphaMap = e.alphaMap),
            (this.envMap = e.envMap),
            (this.combine = e.combine),
            (this.reflectivity = e.reflectivity),
            (this.refractionRatio = e.refractionRatio),
            (this.wireframe = e.wireframe),
            (this.wireframeLinewidth = e.wireframeLinewidth),
            (this.wireframeLinecap = e.wireframeLinecap),
            (this.wireframeLinejoin = e.wireframeLinejoin),
            (this.skinning = e.skinning),
            (this.morphTargets = e.morphTargets),
            (this.morphNormals = e.morphNormals),
            this
          );
        }),
        (bh.prototype = Object.create(Kr.prototype)),
        (bh.prototype.constructor = bh),
        (bh.prototype.isMeshMatcapMaterial = !0),
        (bh.prototype.copy = function (e) {
          return (
            Kr.prototype.copy.call(this, e),
            (this.defines = { MATCAP: "" }),
            this.color.copy(e.color),
            (this.matcap = e.matcap),
            (this.map = e.map),
            (this.bumpMap = e.bumpMap),
            (this.bumpScale = e.bumpScale),
            (this.normalMap = e.normalMap),
            (this.normalMapType = e.normalMapType),
            this.normalScale.copy(e.normalScale),
            (this.displacementMap = e.displacementMap),
            (this.displacementScale = e.displacementScale),
            (this.displacementBias = e.displacementBias),
            (this.alphaMap = e.alphaMap),
            (this.skinning = e.skinning),
            (this.morphTargets = e.morphTargets),
            (this.morphNormals = e.morphNormals),
            this
          );
        }),
        (_h.prototype = Object.create(_u.prototype)),
        (_h.prototype.constructor = _h),
        (_h.prototype.isLineDashedMaterial = !0),
        (_h.prototype.copy = function (e) {
          return (
            _u.prototype.copy.call(this, e),
            (this.scale = e.scale),
            (this.dashSize = e.dashSize),
            (this.gapSize = e.gapSize),
            this
          );
        }));
      var xh = Object.freeze({
          __proto__: null,
          ShadowMaterial: dh,
          SpriteMaterial: Yc,
          RawShaderMaterial: ph,
          ShaderMaterial: Wi,
          PointsMaterial: Iu,
          MeshPhysicalMaterial: mh,
          MeshStandardMaterial: gh,
          MeshPhongMaterial: vh,
          MeshToonMaterial: yh,
          MeshNormalMaterial: wh,
          MeshLambertMaterial: Bh,
          MeshDepthMaterial: Fc,
          MeshDistanceMaterial: Tc,
          MeshBasicMaterial: Wr,
          MeshMatcapMaterial: bh,
          LineDashedMaterial: _h,
          LineBasicMaterial: _u,
          Material: Kr,
        }),
        Ch = {
          arraySlice: function (e, t, n) {
            return Ch.isTypedArray(e)
              ? new e.constructor(e.subarray(t, void 0 !== n ? n : e.length))
              : e.slice(t, n);
          },
          convertArray: function (e, t, n) {
            return !e || (!n && e.constructor === t)
              ? e
              : "number" === typeof t.BYTES_PER_ELEMENT
                ? new t(e)
                : Array.prototype.slice.call(e);
          },
          isTypedArray: function (e) {
            return ArrayBuffer.isView(e) && !(e instanceof DataView);
          },
          getKeyframeOrder: function (e) {
            function t(t, n) {
              return e[t] - e[n];
            }
            for (var n = e.length, r = new Array(n), i = 0; i !== n; ++i)
              r[i] = i;
            return (r.sort(t), r);
          },
          sortedArray: function (e, t, n) {
            for (
              var r = e.length, i = new e.constructor(r), A = 0, o = 0;
              o !== r;
              ++A
            )
              for (var a = n[A] * t, s = 0; s !== t; ++s) i[o++] = e[a + s];
            return i;
          },
          flattenJSON: function (e, t, n, r) {
            var i = 1,
              A = e[0];
            while (void 0 !== A && void 0 === A[r]) A = e[i++];
            if (void 0 !== A) {
              var o = A[r];
              if (void 0 !== o)
                if (Array.isArray(o))
                  do {
                    ((o = A[r]),
                      void 0 !== o && (t.push(A.time), n.push.apply(n, o)),
                      (A = e[i++]));
                  } while (void 0 !== A);
                else if (void 0 !== o.toArray)
                  do {
                    ((o = A[r]),
                      void 0 !== o && (t.push(A.time), o.toArray(n, n.length)),
                      (A = e[i++]));
                  } while (void 0 !== A);
                else
                  do {
                    ((o = A[r]),
                      void 0 !== o && (t.push(A.time), n.push(o)),
                      (A = e[i++]));
                  } while (void 0 !== A);
            }
          },
          subclip: function (e, t, n, r, i) {
            i = i || 30;
            var A = e.clone();
            A.name = t;
            for (var o = [], a = 0; a < A.tracks.length; ++a) {
              for (
                var s = A.tracks[a],
                  c = s.getValueSize(),
                  u = [],
                  l = [],
                  h = 0;
                h < s.times.length;
                ++h
              ) {
                var f = s.times[h] * i;
                if (!(f < n || f >= r)) {
                  u.push(s.times[h]);
                  for (var d = 0; d < c; ++d) l.push(s.values[h * c + d]);
                }
              }
              0 !== u.length &&
                ((s.times = Ch.convertArray(u, s.times.constructor)),
                (s.values = Ch.convertArray(l, s.values.constructor)),
                o.push(s));
            }
            A.tracks = o;
            var p = 1 / 0;
            for (a = 0; a < A.tracks.length; ++a)
              p > A.tracks[a].times[0] && (p = A.tracks[a].times[0]);
            for (a = 0; a < A.tracks.length; ++a) A.tracks[a].shift(-1 * p);
            return (A.resetDuration(), A);
          },
          makeClipAdditive: function (e, t, n, r) {
            (void 0 === t && (t = 0),
              void 0 === n && (n = e),
              (void 0 === r || r <= 0) && (r = 30));
            for (var i = e.tracks.length, A = t / r, o = 0; o < i; ++o) {
              var a = n.tracks[o],
                s = a.ValueTypeName;
              if ("bool" !== s && "string" !== s) {
                var c = e.tracks.find(function (e) {
                  return e.name === a.name && e.ValueTypeName === s;
                });
                if (void 0 !== c) {
                  var u,
                    l = a.getValueSize(),
                    h = a.times.length - 1;
                  if (A <= a.times[0])
                    u = Ch.arraySlice(a.values, 0, a.valueSize);
                  else if (A >= a.times[h]) {
                    var f = h * l;
                    u = Ch.arraySlice(a.values, f);
                  } else {
                    var d = a.createInterpolant();
                    (d.evaluate(A), (u = d.resultBuffer));
                  }
                  if ("quaternion" === s) {
                    var p = new wn(u[0], u[1], u[2], u[3])
                      .normalize()
                      .conjugate();
                    p.toArray(u);
                  }
                  for (var g = c.times.length, m = 0; m < g; ++m) {
                    var v = m * l;
                    if ("quaternion" === s)
                      wn.multiplyQuaternionsFlat(
                        c.values,
                        v,
                        u,
                        0,
                        c.values,
                        v,
                      );
                    else for (var y = 0; y < l; ++y) c.values[v + y] -= u[y];
                  }
                }
              }
            }
            return ((e.blendMode = Nt), e);
          },
        };
      function Eh(e, t, n, r) {
        ((this.parameterPositions = e),
          (this._cachedIndex = 0),
          (this.resultBuffer = void 0 !== r ? r : new t.constructor(n)),
          (this.sampleValues = t),
          (this.valueSize = n));
      }
      function Mh(e, t, n, r) {
        (Eh.call(this, e, t, n, r),
          (this._weightPrev = -0),
          (this._offsetPrev = -0),
          (this._weightNext = -0),
          (this._offsetNext = -0));
      }
      function Sh(e, t, n, r) {
        Eh.call(this, e, t, n, r);
      }
      function Fh(e, t, n, r) {
        Eh.call(this, e, t, n, r);
      }
      function Th(e, t, n, r) {
        if (void 0 === e)
          throw new Error("THREE.KeyframeTrack: track name is undefined");
        if (void 0 === t || 0 === t.length)
          throw new Error(
            "THREE.KeyframeTrack: no keyframes in track named " + e,
          );
        ((this.name = e),
          (this.times = Ch.convertArray(t, this.TimeBufferType)),
          (this.values = Ch.convertArray(n, this.ValueBufferType)),
          this.setInterpolation(r || this.DefaultInterpolation));
      }
      function Uh(e, t, n) {
        Th.call(this, e, t, n);
      }
      function Qh(e, t, n, r) {
        Th.call(this, e, t, n, r);
      }
      function Lh(e, t, n, r) {
        Th.call(this, e, t, n, r);
      }
      function Ih(e, t, n, r) {
        Eh.call(this, e, t, n, r);
      }
      function Hh(e, t, n, r) {
        Th.call(this, e, t, n, r);
      }
      function Oh(e, t, n, r) {
        Th.call(this, e, t, n, r);
      }
      function Rh(e, t, n, r) {
        Th.call(this, e, t, n, r);
      }
      function Ph(e, t, n, r) {
        ((this.name = e),
          (this.tracks = n),
          (this.duration = void 0 !== t ? t : -1),
          (this.blendMode = void 0 !== r ? r : Dt),
          (this.uuid = ln.generateUUID()),
          this.duration < 0 && this.resetDuration());
      }
      function Dh(e) {
        switch (e.toLowerCase()) {
          case "scalar":
          case "double":
          case "float":
          case "number":
          case "integer":
            return Lh;
          case "vector":
          case "vector2":
          case "vector3":
          case "vector4":
            return Rh;
          case "color":
            return Qh;
          case "quaternion":
            return Hh;
          case "bool":
          case "boolean":
            return Uh;
          case "string":
            return Oh;
        }
        throw new Error("THREE.KeyframeTrack: Unsupported typeName: " + e);
      }
      function Nh(e) {
        if (void 0 === e.type)
          throw new Error(
            "THREE.KeyframeTrack: track type undefined, can not parse",
          );
        var t = Dh(e.type);
        if (void 0 === e.times) {
          var n = [],
            r = [];
          (Ch.flattenJSON(e.keys, n, r, "value"),
            (e.times = n),
            (e.values = r));
        }
        return void 0 !== t.parse
          ? t.parse(e)
          : new t(e.name, e.times, e.values, e.interpolation);
      }
      (Object.assign(Eh.prototype, {
        evaluate: function (e) {
          var t = this.parameterPositions,
            n = this._cachedIndex,
            r = t[n],
            i = t[n - 1];
          e: {
            t: {
              var A;
              n: {
                r: if (!(e < r)) {
                  for (var o = n + 2; ; ) {
                    if (void 0 === r) {
                      if (e < i) break r;
                      return (
                        (n = t.length),
                        (this._cachedIndex = n),
                        this.afterEnd_(n - 1, e, i)
                      );
                    }
                    if (n === o) break;
                    if (((i = r), (r = t[++n]), e < r)) break t;
                  }
                  A = t.length;
                  break n;
                }
                if (e >= i) break e;
                var a = t[1];
                e < a && ((n = 2), (i = a));
                for (o = n - 2; ; ) {
                  if (void 0 === i)
                    return (
                      (this._cachedIndex = 0),
                      this.beforeStart_(0, e, r)
                    );
                  if (n === o) break;
                  if (((r = i), (i = t[--n - 1]), e >= i)) break t;
                }
                ((A = n), (n = 0));
              }
              while (n < A) {
                var s = (n + A) >>> 1;
                e < t[s] ? (A = s) : (n = s + 1);
              }
              if (((r = t[n]), (i = t[n - 1]), void 0 === i))
                return ((this._cachedIndex = 0), this.beforeStart_(0, e, r));
              if (void 0 === r)
                return (
                  (n = t.length),
                  (this._cachedIndex = n),
                  this.afterEnd_(n - 1, i, e)
                );
            }
            ((this._cachedIndex = n), this.intervalChanged_(n, i, r));
          }
          return this.interpolate_(n, i, e, r);
        },
        settings: null,
        DefaultSettings_: {},
        getSettings_: function () {
          return this.settings || this.DefaultSettings_;
        },
        copySampleValue_: function (e) {
          for (
            var t = this.resultBuffer,
              n = this.sampleValues,
              r = this.valueSize,
              i = e * r,
              A = 0;
            A !== r;
            ++A
          )
            t[A] = n[i + A];
          return t;
        },
        interpolate_: function () {
          throw new Error("call to abstract method");
        },
        intervalChanged_: function () {},
      }),
        Object.assign(Eh.prototype, {
          beforeStart_: Eh.prototype.copySampleValue_,
          afterEnd_: Eh.prototype.copySampleValue_,
        }),
        (Mh.prototype = Object.assign(Object.create(Eh.prototype), {
          constructor: Mh,
          DefaultSettings_: { endingStart: Ot, endingEnd: Ot },
          intervalChanged_: function (e, t, n) {
            var r = this.parameterPositions,
              i = e - 2,
              A = e + 1,
              o = r[i],
              a = r[A];
            if (void 0 === o)
              switch (this.getSettings_().endingStart) {
                case Rt:
                  ((i = e), (o = 2 * t - n));
                  break;
                case Pt:
                  ((i = r.length - 2), (o = t + r[i] - r[i + 1]));
                  break;
                default:
                  ((i = e), (o = n));
              }
            if (void 0 === a)
              switch (this.getSettings_().endingEnd) {
                case Rt:
                  ((A = e), (a = 2 * n - t));
                  break;
                case Pt:
                  ((A = 1), (a = n + r[1] - r[0]));
                  break;
                default:
                  ((A = e - 1), (a = t));
              }
            var s = 0.5 * (n - t),
              c = this.valueSize;
            ((this._weightPrev = s / (t - o)),
              (this._weightNext = s / (a - n)),
              (this._offsetPrev = i * c),
              (this._offsetNext = A * c));
          },
          interpolate_: function (e, t, n, r) {
            for (
              var i = this.resultBuffer,
                A = this.sampleValues,
                o = this.valueSize,
                a = e * o,
                s = a - o,
                c = this._offsetPrev,
                u = this._offsetNext,
                l = this._weightPrev,
                h = this._weightNext,
                f = (n - t) / (r - t),
                d = f * f,
                p = d * f,
                g = -l * p + 2 * l * d - l * f,
                m = (1 + l) * p + (-1.5 - 2 * l) * d + (-0.5 + l) * f + 1,
                v = (-1 - h) * p + (1.5 + h) * d + 0.5 * f,
                y = h * p - h * d,
                w = 0;
              w !== o;
              ++w
            )
              i[w] = g * A[c + w] + m * A[s + w] + v * A[a + w] + y * A[u + w];
            return i;
          },
        })),
        (Sh.prototype = Object.assign(Object.create(Eh.prototype), {
          constructor: Sh,
          interpolate_: function (e, t, n, r) {
            for (
              var i = this.resultBuffer,
                A = this.sampleValues,
                o = this.valueSize,
                a = e * o,
                s = a - o,
                c = (n - t) / (r - t),
                u = 1 - c,
                l = 0;
              l !== o;
              ++l
            )
              i[l] = A[s + l] * u + A[a + l] * c;
            return i;
          },
        })),
        (Fh.prototype = Object.assign(Object.create(Eh.prototype), {
          constructor: Fh,
          interpolate_: function (e) {
            return this.copySampleValue_(e - 1);
          },
        })),
        Object.assign(Th, {
          toJSON: function (e) {
            var t,
              n = e.constructor;
            if (void 0 !== n.toJSON) t = n.toJSON(e);
            else {
              t = {
                name: e.name,
                times: Ch.convertArray(e.times, Array),
                values: Ch.convertArray(e.values, Array),
              };
              var r = e.getInterpolation();
              r !== e.DefaultInterpolation && (t.interpolation = r);
            }
            return ((t.type = e.ValueTypeName), t);
          },
        }),
        Object.assign(Th.prototype, {
          constructor: Th,
          TimeBufferType: Float32Array,
          ValueBufferType: Float32Array,
          DefaultInterpolation: It,
          InterpolantFactoryMethodDiscrete: function (e) {
            return new Fh(this.times, this.values, this.getValueSize(), e);
          },
          InterpolantFactoryMethodLinear: function (e) {
            return new Sh(this.times, this.values, this.getValueSize(), e);
          },
          InterpolantFactoryMethodSmooth: function (e) {
            return new Mh(this.times, this.values, this.getValueSize(), e);
          },
          setInterpolation: function (e) {
            var t;
            switch (e) {
              case Lt:
                t = this.InterpolantFactoryMethodDiscrete;
                break;
              case It:
                t = this.InterpolantFactoryMethodLinear;
                break;
              case Ht:
                t = this.InterpolantFactoryMethodSmooth;
                break;
            }
            if (void 0 === t) {
              var n =
                "unsupported interpolation for " +
                this.ValueTypeName +
                " keyframe track named " +
                this.name;
              if (void 0 === this.createInterpolant) {
                if (e === this.DefaultInterpolation) throw new Error(n);
                this.setInterpolation(this.DefaultInterpolation);
              }
              return (console.warn("THREE.KeyframeTrack:", n), this);
            }
            return ((this.createInterpolant = t), this);
          },
          getInterpolation: function () {
            switch (this.createInterpolant) {
              case this.InterpolantFactoryMethodDiscrete:
                return Lt;
              case this.InterpolantFactoryMethodLinear:
                return It;
              case this.InterpolantFactoryMethodSmooth:
                return Ht;
            }
          },
          getValueSize: function () {
            return this.values.length / this.times.length;
          },
          shift: function (e) {
            if (0 !== e)
              for (var t = this.times, n = 0, r = t.length; n !== r; ++n)
                t[n] += e;
            return this;
          },
          scale: function (e) {
            if (1 !== e)
              for (var t = this.times, n = 0, r = t.length; n !== r; ++n)
                t[n] *= e;
            return this;
          },
          trim: function (e, t) {
            var n = this.times,
              r = n.length,
              i = 0,
              A = r - 1;
            while (i !== r && n[i] < e) ++i;
            while (-1 !== A && n[A] > t) --A;
            if ((++A, 0 !== i || A !== r)) {
              i >= A && ((A = Math.max(A, 1)), (i = A - 1));
              var o = this.getValueSize();
              ((this.times = Ch.arraySlice(n, i, A)),
                (this.values = Ch.arraySlice(this.values, i * o, A * o)));
            }
            return this;
          },
          validate: function () {
            var e = !0,
              t = this.getValueSize();
            t - Math.floor(t) !== 0 &&
              (console.log(
                "THREE.KeyframeTrack: Invalid value size in track.",
                this,
              ),
              (e = !1));
            var n = this.times,
              r = this.values,
              i = n.length;
            0 === i &&
              (console.log("THREE.KeyframeTrack: Track is empty.", this),
              (e = !1));
            for (var A = null, o = 0; o !== i; o++) {
              var a = n[o];
              if ("number" === typeof a && isNaN(a)) {
                (console.log(
                  "THREE.KeyframeTrack: Time is not a valid number.",
                  this,
                  o,
                  a,
                ),
                  (e = !1));
                break;
              }
              if (null !== A && A > a) {
                (console.log(
                  "THREE.KeyframeTrack: Out of order keys.",
                  this,
                  o,
                  a,
                  A,
                ),
                  (e = !1));
                break;
              }
              A = a;
            }
            if (void 0 !== r && Ch.isTypedArray(r)) {
              o = 0;
              for (var s = r.length; o !== s; ++o) {
                var c = r[o];
                if (isNaN(c)) {
                  (console.log(
                    "THREE.KeyframeTrack: Value is not a valid number.",
                    this,
                    o,
                    c,
                  ),
                    (e = !1));
                  break;
                }
              }
            }
            return e;
          },
          optimize: function () {
            for (
              var e = Ch.arraySlice(this.times),
                t = Ch.arraySlice(this.values),
                n = this.getValueSize(),
                r = this.getInterpolation() === Ht,
                i = 1,
                A = e.length - 1,
                o = 1;
              o < A;
              ++o
            ) {
              var a = !1,
                s = e[o],
                c = e[o + 1];
              if (s !== c && (1 !== o || s !== s[0]))
                if (r) a = !0;
                else
                  for (
                    var u = o * n, l = u - n, h = u + n, f = 0;
                    f !== n;
                    ++f
                  ) {
                    var d = t[u + f];
                    if (d !== t[l + f] || d !== t[h + f]) {
                      a = !0;
                      break;
                    }
                  }
              if (a) {
                if (o !== i) {
                  e[i] = e[o];
                  var p = o * n,
                    g = i * n;
                  for (f = 0; f !== n; ++f) t[g + f] = t[p + f];
                }
                ++i;
              }
            }
            if (A > 0) {
              e[i] = e[A];
              for (p = A * n, g = i * n, f = 0; f !== n; ++f)
                t[g + f] = t[p + f];
              ++i;
            }
            return (
              i !== e.length
                ? ((this.times = Ch.arraySlice(e, 0, i)),
                  (this.values = Ch.arraySlice(t, 0, i * n)))
                : ((this.times = e), (this.values = t)),
              this
            );
          },
          clone: function () {
            var e = Ch.arraySlice(this.times, 0),
              t = Ch.arraySlice(this.values, 0),
              n = this.constructor,
              r = new n(this.name, e, t);
            return ((r.createInterpolant = this.createInterpolant), r);
          },
        }),
        (Uh.prototype = Object.assign(Object.create(Th.prototype), {
          constructor: Uh,
          ValueTypeName: "bool",
          ValueBufferType: Array,
          DefaultInterpolation: Lt,
          InterpolantFactoryMethodLinear: void 0,
          InterpolantFactoryMethodSmooth: void 0,
        })),
        (Qh.prototype = Object.assign(Object.create(Th.prototype), {
          constructor: Qh,
          ValueTypeName: "color",
        })),
        (Lh.prototype = Object.assign(Object.create(Th.prototype), {
          constructor: Lh,
          ValueTypeName: "number",
        })),
        (Ih.prototype = Object.assign(Object.create(Eh.prototype), {
          constructor: Ih,
          interpolate_: function (e, t, n, r) {
            for (
              var i = this.resultBuffer,
                A = this.sampleValues,
                o = this.valueSize,
                a = e * o,
                s = (n - t) / (r - t),
                c = a + o;
              a !== c;
              a += 4
            )
              wn.slerpFlat(i, 0, A, a - o, A, a, s);
            return i;
          },
        })),
        (Hh.prototype = Object.assign(Object.create(Th.prototype), {
          constructor: Hh,
          ValueTypeName: "quaternion",
          DefaultInterpolation: It,
          InterpolantFactoryMethodLinear: function (e) {
            return new Ih(this.times, this.values, this.getValueSize(), e);
          },
          InterpolantFactoryMethodSmooth: void 0,
        })),
        (Oh.prototype = Object.assign(Object.create(Th.prototype), {
          constructor: Oh,
          ValueTypeName: "string",
          ValueBufferType: Array,
          DefaultInterpolation: Lt,
          InterpolantFactoryMethodLinear: void 0,
          InterpolantFactoryMethodSmooth: void 0,
        })),
        (Rh.prototype = Object.assign(Object.create(Th.prototype), {
          constructor: Rh,
          ValueTypeName: "vector",
        })),
        Object.assign(Ph, {
          parse: function (e) {
            for (
              var t = [],
                n = e.tracks,
                r = 1 / (e.fps || 1),
                i = 0,
                A = n.length;
              i !== A;
              ++i
            )
              t.push(Nh(n[i]).scale(r));
            return new Ph(e.name, e.duration, t, e.blendMode);
          },
          toJSON: function (e) {
            for (
              var t = [],
                n = e.tracks,
                r = {
                  name: e.name,
                  duration: e.duration,
                  tracks: t,
                  uuid: e.uuid,
                  blendMode: e.blendMode,
                },
                i = 0,
                A = n.length;
              i !== A;
              ++i
            )
              t.push(Th.toJSON(n[i]));
            return r;
          },
          CreateFromMorphTargetSequence: function (e, t, n, r) {
            for (var i = t.length, A = [], o = 0; o < i; o++) {
              var a = [],
                s = [];
              (a.push((o + i - 1) % i, o, (o + 1) % i), s.push(0, 1, 0));
              var c = Ch.getKeyframeOrder(a);
              ((a = Ch.sortedArray(a, 1, c)),
                (s = Ch.sortedArray(s, 1, c)),
                r || 0 !== a[0] || (a.push(i), s.push(s[0])),
                A.push(
                  new Lh(
                    ".morphTargetInfluences[" + t[o].name + "]",
                    a,
                    s,
                  ).scale(1 / n),
                ));
            }
            return new Ph(e, -1, A);
          },
          findByName: function (e, t) {
            var n = e;
            if (!Array.isArray(e)) {
              var r = e;
              n = (r.geometry && r.geometry.animations) || r.animations;
            }
            for (var i = 0; i < n.length; i++) if (n[i].name === t) return n[i];
            return null;
          },
          CreateClipsFromMorphTargetSequences: function (e, t, n) {
            for (
              var r = {}, i = /^([\w-]*?)([\d]+)$/, A = 0, o = e.length;
              A < o;
              A++
            ) {
              var a = e[A],
                s = a.name.match(i);
              if (s && s.length > 1) {
                var c = s[1],
                  u = r[c];
                (u || (r[c] = u = []), u.push(a));
              }
            }
            var l = [];
            for (var c in r)
              l.push(Ph.CreateFromMorphTargetSequence(c, r[c], t, n));
            return l;
          },
          parseAnimation: function (e, t) {
            if (!e)
              return (
                console.log(
                  "THREE.AnimationClip: No animation in JSONLoader data.",
                ),
                null
              );
            for (
              var n = function (e, t, n, r, i) {
                  if (0 !== n.length) {
                    var A = [],
                      o = [];
                    (Ch.flattenJSON(n, A, o, r),
                      0 !== A.length && i.push(new e(t, A, o)));
                  }
                },
                r = [],
                i = e.name || "default",
                A = e.length || -1,
                o = e.fps || 30,
                a = e.blendMode,
                s = e.hierarchy || [],
                c = 0;
              c < s.length;
              c++
            ) {
              var u = s[c].keys;
              if (u && 0 !== u.length)
                if (u[0].morphTargets) {
                  for (var l = {}, h = 0; h < u.length; h++)
                    if (u[h].morphTargets)
                      for (var f = 0; f < u[h].morphTargets.length; f++)
                        l[u[h].morphTargets[f]] = -1;
                  for (var d in l) {
                    var p = [],
                      g = [];
                    for (f = 0; f !== u[h].morphTargets.length; ++f) {
                      var m = u[h];
                      (p.push(m.time), g.push(m.morphTarget === d ? 1 : 0));
                    }
                    r.push(new Lh(".morphTargetInfluence[" + d + "]", p, g));
                  }
                  A = l.length * (o || 1);
                } else {
                  var v = ".bones[" + t[c].name + "]";
                  (n(Rh, v + ".position", u, "pos", r),
                    n(Hh, v + ".quaternion", u, "rot", r),
                    n(Rh, v + ".scale", u, "scl", r));
                }
            }
            if (0 === r.length) return null;
            var y = new Ph(i, A, r, a);
            return y;
          },
        }),
        Object.assign(Ph.prototype, {
          resetDuration: function () {
            for (
              var e = this.tracks, t = 0, n = 0, r = e.length;
              n !== r;
              ++n
            ) {
              var i = this.tracks[n];
              t = Math.max(t, i.times[i.times.length - 1]);
            }
            return ((this.duration = t), this);
          },
          trim: function () {
            for (var e = 0; e < this.tracks.length; e++)
              this.tracks[e].trim(0, this.duration);
            return this;
          },
          validate: function () {
            for (var e = !0, t = 0; t < this.tracks.length; t++)
              e = e && this.tracks[t].validate();
            return e;
          },
          optimize: function () {
            for (var e = 0; e < this.tracks.length; e++)
              this.tracks[e].optimize();
            return this;
          },
          clone: function () {
            for (var e = [], t = 0; t < this.tracks.length; t++)
              e.push(this.tracks[t].clone());
            return new Ph(this.name, this.duration, e, this.blendMode);
          },
        }));
      var kh = {
        enabled: !1,
        files: {},
        add: function (e, t) {
          !1 !== this.enabled && (this.files[e] = t);
        },
        get: function (e) {
          if (!1 !== this.enabled) return this.files[e];
        },
        remove: function (e) {
          delete this.files[e];
        },
        clear: function () {
          this.files = {};
        },
      };
      function Gh(e, t, n) {
        var r = this,
          i = !1,
          A = 0,
          o = 0,
          a = void 0,
          s = [];
        ((this.onStart = void 0),
          (this.onLoad = e),
          (this.onProgress = t),
          (this.onError = n),
          (this.itemStart = function (e) {
            (o++,
              !1 === i && void 0 !== r.onStart && r.onStart(e, A, o),
              (i = !0));
          }),
          (this.itemEnd = function (e) {
            (A++,
              void 0 !== r.onProgress && r.onProgress(e, A, o),
              A === o && ((i = !1), void 0 !== r.onLoad && r.onLoad()));
          }),
          (this.itemError = function (e) {
            void 0 !== r.onError && r.onError(e);
          }),
          (this.resolveURL = function (e) {
            return a ? a(e) : e;
          }),
          (this.setURLModifier = function (e) {
            return ((a = e), this);
          }),
          (this.addHandler = function (e, t) {
            return (s.push(e, t), this);
          }),
          (this.removeHandler = function (e) {
            var t = s.indexOf(e);
            return (-1 !== t && s.splice(t, 2), this);
          }),
          (this.getHandler = function (e) {
            for (var t = 0, n = s.length; t < n; t += 2) {
              var r = s[t],
                i = s[t + 1];
              if ((r.global && (r.lastIndex = 0), r.test(e))) return i;
            }
            return null;
          }));
      }
      var Vh = new Gh();
      function zh(e) {
        ((this.manager = void 0 !== e ? e : Vh),
          (this.crossOrigin = "anonymous"),
          (this.path = ""),
          (this.resourcePath = ""),
          (this.requestHeader = {}));
      }
      Object.assign(zh.prototype, {
        load: function () {},
        loadAsync: function (e, t) {
          var n = this;
          return new Promise(function (r, i) {
            n.load(e, r, t, i);
          });
        },
        parse: function () {},
        setCrossOrigin: function (e) {
          return ((this.crossOrigin = e), this);
        },
        setPath: function (e) {
          return ((this.path = e), this);
        },
        setResourcePath: function (e) {
          return ((this.resourcePath = e), this);
        },
        setRequestHeader: function (e) {
          return ((this.requestHeader = e), this);
        },
      });
      var jh = {};
      function Kh(e) {
        zh.call(this, e);
      }
      function Wh(e) {
        zh.call(this, e);
      }
      function Xh(e) {
        zh.call(this, e);
      }
      function Yh(e) {
        zh.call(this, e);
      }
      function Jh(e) {
        zh.call(this, e);
      }
      function qh(e) {
        zh.call(this, e);
      }
      function Zh(e) {
        zh.call(this, e);
      }
      function $h() {
        ((this.type = "Curve"), (this.arcLengthDivisions = 200));
      }
      function ef(e, t, n, r, i, A, o, a) {
        ($h.call(this),
          (this.type = "EllipseCurve"),
          (this.aX = e || 0),
          (this.aY = t || 0),
          (this.xRadius = n || 1),
          (this.yRadius = r || 1),
          (this.aStartAngle = i || 0),
          (this.aEndAngle = A || 2 * Math.PI),
          (this.aClockwise = o || !1),
          (this.aRotation = a || 0));
      }
      function tf(e, t, n, r, i, A) {
        (ef.call(this, e, t, n, n, r, i, A), (this.type = "ArcCurve"));
      }
      function nf() {
        var e = 0,
          t = 0,
          n = 0,
          r = 0;
        function i(i, A, o, a) {
          ((e = i),
            (t = o),
            (n = -3 * i + 3 * A - 2 * o - a),
            (r = 2 * i - 2 * A + o + a));
        }
        return {
          initCatmullRom: function (e, t, n, r, A) {
            i(t, n, A * (n - e), A * (r - t));
          },
          initNonuniformCatmullRom: function (e, t, n, r, A, o, a) {
            var s = (t - e) / A - (n - e) / (A + o) + (n - t) / o,
              c = (n - t) / o - (r - t) / (o + a) + (r - n) / a;
            ((s *= o), (c *= o), i(t, n, s, c));
          },
          calc: function (i) {
            var A = i * i,
              o = A * i;
            return e + t * i + n * A + r * o;
          },
        };
      }
      ((Kh.prototype = Object.assign(Object.create(zh.prototype), {
        constructor: Kh,
        load: function (e, t, n, r) {
          (void 0 === e && (e = ""),
            void 0 !== this.path && (e = this.path + e),
            (e = this.manager.resolveURL(e)));
          var i = this,
            A = kh.get(e);
          if (void 0 !== A)
            return (
              i.manager.itemStart(e),
              setTimeout(function () {
                (t && t(A), i.manager.itemEnd(e));
              }, 0),
              A
            );
          if (void 0 === jh[e]) {
            var o = /^data:(.*?)(;base64)?,(.*)$/,
              a = e.match(o);
            if (a) {
              var s = a[1],
                c = !!a[2],
                u = a[3];
              ((u = decodeURIComponent(u)), c && (u = atob(u)));
              try {
                var l,
                  h = (this.responseType || "").toLowerCase();
                switch (h) {
                  case "arraybuffer":
                  case "blob":
                    for (
                      var f = new Uint8Array(u.length), d = 0;
                      d < u.length;
                      d++
                    )
                      f[d] = u.charCodeAt(d);
                    l =
                      "blob" === h
                        ? new Blob([f.buffer], { type: s })
                        : f.buffer;
                    break;
                  case "document":
                    var p = new DOMParser();
                    l = p.parseFromString(u, s);
                    break;
                  case "json":
                    l = JSON.parse(u);
                    break;
                  default:
                    l = u;
                    break;
                }
                setTimeout(function () {
                  (t && t(l), i.manager.itemEnd(e));
                }, 0);
              } catch (v) {
                setTimeout(function () {
                  (r && r(v), i.manager.itemError(e), i.manager.itemEnd(e));
                }, 0);
              }
            } else {
              ((jh[e] = []),
                jh[e].push({ onLoad: t, onProgress: n, onError: r }));
              var g = new XMLHttpRequest();
              for (var m in (g.open("GET", e, !0),
              g.addEventListener(
                "load",
                function (t) {
                  var n = this.response,
                    r = jh[e];
                  if (
                    (delete jh[e], 200 === this.status || 0 === this.status)
                  ) {
                    (0 === this.status &&
                      console.warn("THREE.FileLoader: HTTP Status 0 received."),
                      kh.add(e, n));
                    for (var A = 0, o = r.length; A < o; A++) {
                      var a = r[A];
                      a.onLoad && a.onLoad(n);
                    }
                    i.manager.itemEnd(e);
                  } else {
                    for (A = 0, o = r.length; A < o; A++) {
                      a = r[A];
                      a.onError && a.onError(t);
                    }
                    (i.manager.itemError(e), i.manager.itemEnd(e));
                  }
                },
                !1,
              ),
              g.addEventListener(
                "progress",
                function (t) {
                  for (var n = jh[e], r = 0, i = n.length; r < i; r++) {
                    var A = n[r];
                    A.onProgress && A.onProgress(t);
                  }
                },
                !1,
              ),
              g.addEventListener(
                "error",
                function (t) {
                  var n = jh[e];
                  delete jh[e];
                  for (var r = 0, A = n.length; r < A; r++) {
                    var o = n[r];
                    o.onError && o.onError(t);
                  }
                  (i.manager.itemError(e), i.manager.itemEnd(e));
                },
                !1,
              ),
              g.addEventListener(
                "abort",
                function (t) {
                  var n = jh[e];
                  delete jh[e];
                  for (var r = 0, A = n.length; r < A; r++) {
                    var o = n[r];
                    o.onError && o.onError(t);
                  }
                  (i.manager.itemError(e), i.manager.itemEnd(e));
                },
                !1,
              ),
              void 0 !== this.responseType &&
                (g.responseType = this.responseType),
              void 0 !== this.withCredentials &&
                (g.withCredentials = this.withCredentials),
              g.overrideMimeType &&
                g.overrideMimeType(
                  void 0 !== this.mimeType ? this.mimeType : "text/plain",
                ),
              this.requestHeader))
                g.setRequestHeader(m, this.requestHeader[m]);
              g.send(null);
            }
            return (i.manager.itemStart(e), g);
          }
          jh[e].push({ onLoad: t, onProgress: n, onError: r });
        },
        setResponseType: function (e) {
          return ((this.responseType = e), this);
        },
        setWithCredentials: function (e) {
          return ((this.withCredentials = e), this);
        },
        setMimeType: function (e) {
          return ((this.mimeType = e), this);
        },
      })),
        (Wh.prototype = Object.assign(Object.create(zh.prototype), {
          constructor: Wh,
          load: function (e, t, n, r) {
            var i = this,
              A = new Kh(i.manager);
            (A.setPath(i.path),
              A.load(
                e,
                function (n) {
                  try {
                    t(i.parse(JSON.parse(n)));
                  } catch (A) {
                    (r ? r(A) : console.log(A), i.manager.itemError(e));
                  }
                },
                n,
                r,
              ));
          },
          parse: function (e) {
            for (var t = [], n = 0; n < e.length; n++) {
              var r = Ph.parse(e[n]);
              t.push(r);
            }
            return t;
          },
        })),
        (Xh.prototype = Object.assign(Object.create(zh.prototype), {
          constructor: Xh,
          load: function (e, t, n, r) {
            var i = this,
              A = [],
              o = new Gu();
            o.image = A;
            var a = new Kh(this.manager);
            function s(s) {
              a.load(
                e[s],
                function (e) {
                  var n = i.parse(e, !0);
                  ((A[s] = {
                    width: n.width,
                    height: n.height,
                    format: n.format,
                    mipmaps: n.mipmaps,
                  }),
                    (c += 1),
                    6 === c &&
                      (1 === n.mipmapCount && (o.minFilter = pe),
                      (o.format = n.format),
                      (o.needsUpdate = !0),
                      t && t(o)));
                },
                n,
                r,
              );
            }
            if (
              (a.setPath(this.path),
              a.setResponseType("arraybuffer"),
              Array.isArray(e))
            )
              for (var c = 0, u = 0, l = e.length; u < l; ++u) s(u);
            else
              a.load(
                e,
                function (e) {
                  var n = i.parse(e, !0);
                  if (n.isCubemap)
                    for (
                      var r = n.mipmaps.length / n.mipmapCount, a = 0;
                      a < r;
                      a++
                    ) {
                      A[a] = { mipmaps: [] };
                      for (var s = 0; s < n.mipmapCount; s++)
                        (A[a].mipmaps.push(n.mipmaps[a * n.mipmapCount + s]),
                          (A[a].format = n.format),
                          (A[a].width = n.width),
                          (A[a].height = n.height));
                    }
                  else
                    ((o.image.width = n.width),
                      (o.image.height = n.height),
                      (o.mipmaps = n.mipmaps));
                  (1 === n.mipmapCount && (o.minFilter = pe),
                    (o.format = n.format),
                    (o.needsUpdate = !0),
                    t && t(o));
                },
                n,
                r,
              );
            return o;
          },
        })),
        (Yh.prototype = Object.assign(Object.create(zh.prototype), {
          constructor: Yh,
          load: function (e, t, n, r) {
            var i = this,
              A = new eA(),
              o = new Kh(this.manager);
            return (
              o.setResponseType("arraybuffer"),
              o.setPath(this.path),
              o.load(
                e,
                function (e) {
                  var n = i.parse(e);
                  n &&
                    (void 0 !== n.image
                      ? (A.image = n.image)
                      : void 0 !== n.data &&
                        ((A.image.width = n.width),
                        (A.image.height = n.height),
                        (A.image.data = n.data)),
                    (A.wrapS = void 0 !== n.wrapS ? n.wrapS : ue),
                    (A.wrapT = void 0 !== n.wrapT ? n.wrapT : ue),
                    (A.magFilter = void 0 !== n.magFilter ? n.magFilter : pe),
                    (A.minFilter = void 0 !== n.minFilter ? n.minFilter : pe),
                    (A.anisotropy = void 0 !== n.anisotropy ? n.anisotropy : 1),
                    void 0 !== n.format && (A.format = n.format),
                    void 0 !== n.type && (A.type = n.type),
                    void 0 !== n.mipmaps &&
                      ((A.mipmaps = n.mipmaps), (A.minFilter = me)),
                    1 === n.mipmapCount && (A.minFilter = pe),
                    (A.needsUpdate = !0),
                    t && t(A, n));
                },
                n,
                r,
              ),
              A
            );
          },
        })),
        (Jh.prototype = Object.assign(Object.create(zh.prototype), {
          constructor: Jh,
          load: function (e, t, n, r) {
            (void 0 !== this.path && (e = this.path + e),
              (e = this.manager.resolveURL(e)));
            var i = this,
              A = kh.get(e);
            if (void 0 !== A)
              return (
                i.manager.itemStart(e),
                setTimeout(function () {
                  (t && t(A), i.manager.itemEnd(e));
                }, 0),
                A
              );
            var o = document.createElementNS(
              "http://www.w3.org/1999/xhtml",
              "img",
            );
            function a() {
              (o.removeEventListener("load", a, !1),
                o.removeEventListener("error", s, !1),
                kh.add(e, this),
                t && t(this),
                i.manager.itemEnd(e));
            }
            function s(t) {
              (o.removeEventListener("load", a, !1),
                o.removeEventListener("error", s, !1),
                r && r(t),
                i.manager.itemError(e),
                i.manager.itemEnd(e));
            }
            return (
              o.addEventListener("load", a, !1),
              o.addEventListener("error", s, !1),
              "data:" !== e.substr(0, 5) &&
                void 0 !== this.crossOrigin &&
                (o.crossOrigin = this.crossOrigin),
              i.manager.itemStart(e),
              (o.src = e),
              o
            );
          },
        })),
        (qh.prototype = Object.assign(Object.create(zh.prototype), {
          constructor: qh,
          load: function (e, t, n, r) {
            var i = new Ga(),
              A = new Jh(this.manager);
            (A.setCrossOrigin(this.crossOrigin), A.setPath(this.path));
            var o = 0;
            function a(n) {
              A.load(
                e[n],
                function (e) {
                  ((i.images[n] = e),
                    o++,
                    6 === o && ((i.needsUpdate = !0), t && t(i)));
                },
                void 0,
                r,
              );
            }
            for (var s = 0; s < e.length; ++s) a(s);
            return i;
          },
        })),
        (Zh.prototype = Object.assign(Object.create(zh.prototype), {
          constructor: Zh,
          load: function (e, t, n, r) {
            var i = new gn(),
              A = new Jh(this.manager);
            return (
              A.setCrossOrigin(this.crossOrigin),
              A.setPath(this.path),
              A.load(
                e,
                function (n) {
                  i.image = n;
                  var r =
                    e.search(/\.jpe?g($|\?)/i) > 0 ||
                    0 === e.search(/^data\:image\/jpeg/);
                  ((i.format = r ? Ue : Qe),
                    (i.needsUpdate = !0),
                    void 0 !== t && t(i));
                },
                n,
                r,
              ),
              i
            );
          },
        })),
        Object.assign($h.prototype, {
          getPoint: function () {
            return (
              console.warn("THREE.Curve: .getPoint() not implemented."),
              null
            );
          },
          getPointAt: function (e, t) {
            var n = this.getUtoTmapping(e);
            return this.getPoint(n, t);
          },
          getPoints: function (e) {
            void 0 === e && (e = 5);
            for (var t = [], n = 0; n <= e; n++) t.push(this.getPoint(n / e));
            return t;
          },
          getSpacedPoints: function (e) {
            void 0 === e && (e = 5);
            for (var t = [], n = 0; n <= e; n++) t.push(this.getPointAt(n / e));
            return t;
          },
          getLength: function () {
            var e = this.getLengths();
            return e[e.length - 1];
          },
          getLengths: function (e) {
            if (
              (void 0 === e && (e = this.arcLengthDivisions),
              this.cacheArcLengths &&
                this.cacheArcLengths.length === e + 1 &&
                !this.needsUpdate)
            )
              return this.cacheArcLengths;
            this.needsUpdate = !1;
            var t,
              n,
              r = [],
              i = this.getPoint(0),
              A = 0;
            for (r.push(0), n = 1; n <= e; n++)
              ((t = this.getPoint(n / e)),
                (A += t.distanceTo(i)),
                r.push(A),
                (i = t));
            return ((this.cacheArcLengths = r), r);
          },
          updateArcLengths: function () {
            ((this.needsUpdate = !0), this.getLengths());
          },
          getUtoTmapping: function (e, t) {
            var n,
              r = this.getLengths(),
              i = 0,
              A = r.length;
            n = t || e * r[A - 1];
            var o,
              a = 0,
              s = A - 1;
            while (a <= s)
              if (((i = Math.floor(a + (s - a) / 2)), (o = r[i] - n), o < 0))
                a = i + 1;
              else {
                if (!(o > 0)) {
                  s = i;
                  break;
                }
                s = i - 1;
              }
            if (((i = s), r[i] === n)) return i / (A - 1);
            var c = r[i],
              u = r[i + 1],
              l = u - c,
              h = (n - c) / l,
              f = (i + h) / (A - 1);
            return f;
          },
          getTangent: function (e, t) {
            var n = 1e-4,
              r = e - n,
              i = e + n;
            (r < 0 && (r = 0), i > 1 && (i = 1));
            var A = this.getPoint(r),
              o = this.getPoint(i),
              a = t || (A.isVector2 ? new hn() : new _n());
            return (a.copy(o).sub(A).normalize(), a);
          },
          getTangentAt: function (e, t) {
            var n = this.getUtoTmapping(e);
            return this.getTangent(n, t);
          },
          computeFrenetFrames: function (e, t) {
            var n,
              r,
              i,
              A = new _n(),
              o = [],
              a = [],
              s = [],
              c = new _n(),
              u = new Un();
            for (n = 0; n <= e; n++)
              ((r = n / e),
                (o[n] = this.getTangentAt(r, new _n())),
                o[n].normalize());
            ((a[0] = new _n()), (s[0] = new _n()));
            var l = Number.MAX_VALUE,
              h = Math.abs(o[0].x),
              f = Math.abs(o[0].y),
              d = Math.abs(o[0].z);
            for (
              h <= l && ((l = h), A.set(1, 0, 0)),
                f <= l && ((l = f), A.set(0, 1, 0)),
                d <= l && A.set(0, 0, 1),
                c.crossVectors(o[0], A).normalize(),
                a[0].crossVectors(o[0], c),
                s[0].crossVectors(o[0], a[0]),
                n = 1;
              n <= e;
              n++
            )
              ((a[n] = a[n - 1].clone()),
                (s[n] = s[n - 1].clone()),
                c.crossVectors(o[n - 1], o[n]),
                c.length() > Number.EPSILON &&
                  (c.normalize(),
                  (i = Math.acos(ln.clamp(o[n - 1].dot(o[n]), -1, 1))),
                  a[n].applyMatrix4(u.makeRotationAxis(c, i))),
                s[n].crossVectors(o[n], a[n]));
            if (!0 === t)
              for (
                i = Math.acos(ln.clamp(a[0].dot(a[e]), -1, 1)),
                  i /= e,
                  o[0].dot(c.crossVectors(a[0], a[e])) > 0 && (i = -i),
                  n = 1;
                n <= e;
                n++
              )
                (a[n].applyMatrix4(u.makeRotationAxis(o[n], i * n)),
                  s[n].crossVectors(o[n], a[n]));
            return { tangents: o, normals: a, binormals: s };
          },
          clone: function () {
            return new this.constructor().copy(this);
          },
          copy: function (e) {
            return ((this.arcLengthDivisions = e.arcLengthDivisions), this);
          },
          toJSON: function () {
            var e = {
              metadata: {
                version: 4.5,
                type: "Curve",
                generator: "Curve.toJSON",
              },
            };
            return (
              (e.arcLengthDivisions = this.arcLengthDivisions),
              (e.type = this.type),
              e
            );
          },
          fromJSON: function (e) {
            return ((this.arcLengthDivisions = e.arcLengthDivisions), this);
          },
        }),
        (ef.prototype = Object.create($h.prototype)),
        (ef.prototype.constructor = ef),
        (ef.prototype.isEllipseCurve = !0),
        (ef.prototype.getPoint = function (e, t) {
          var n = t || new hn(),
            r = 2 * Math.PI,
            i = this.aEndAngle - this.aStartAngle,
            A = Math.abs(i) < Number.EPSILON;
          while (i < 0) i += r;
          while (i > r) i -= r;
          (i < Number.EPSILON && (i = A ? 0 : r),
            !0 !== this.aClockwise || A || (i === r ? (i = -r) : (i -= r)));
          var o = this.aStartAngle + e * i,
            a = this.aX + this.xRadius * Math.cos(o),
            s = this.aY + this.yRadius * Math.sin(o);
          if (0 !== this.aRotation) {
            var c = Math.cos(this.aRotation),
              u = Math.sin(this.aRotation),
              l = a - this.aX,
              h = s - this.aY;
            ((a = l * c - h * u + this.aX), (s = l * u + h * c + this.aY));
          }
          return n.set(a, s);
        }),
        (ef.prototype.copy = function (e) {
          return (
            $h.prototype.copy.call(this, e),
            (this.aX = e.aX),
            (this.aY = e.aY),
            (this.xRadius = e.xRadius),
            (this.yRadius = e.yRadius),
            (this.aStartAngle = e.aStartAngle),
            (this.aEndAngle = e.aEndAngle),
            (this.aClockwise = e.aClockwise),
            (this.aRotation = e.aRotation),
            this
          );
        }),
        (ef.prototype.toJSON = function () {
          var e = $h.prototype.toJSON.call(this);
          return (
            (e.aX = this.aX),
            (e.aY = this.aY),
            (e.xRadius = this.xRadius),
            (e.yRadius = this.yRadius),
            (e.aStartAngle = this.aStartAngle),
            (e.aEndAngle = this.aEndAngle),
            (e.aClockwise = this.aClockwise),
            (e.aRotation = this.aRotation),
            e
          );
        }),
        (ef.prototype.fromJSON = function (e) {
          return (
            $h.prototype.fromJSON.call(this, e),
            (this.aX = e.aX),
            (this.aY = e.aY),
            (this.xRadius = e.xRadius),
            (this.yRadius = e.yRadius),
            (this.aStartAngle = e.aStartAngle),
            (this.aEndAngle = e.aEndAngle),
            (this.aClockwise = e.aClockwise),
            (this.aRotation = e.aRotation),
            this
          );
        }),
        (tf.prototype = Object.create(ef.prototype)),
        (tf.prototype.constructor = tf),
        (tf.prototype.isArcCurve = !0));
      var rf = new _n(),
        Af = new nf(),
        of = new nf(),
        af = new nf();
      function sf(e, t, n, r) {
        ($h.call(this),
          (this.type = "CatmullRomCurve3"),
          (this.points = e || []),
          (this.closed = t || !1),
          (this.curveType = n || "centripetal"),
          (this.tension = r || 0.5));
      }
      function cf(e, t, n, r, i) {
        var A = 0.5 * (r - t),
          o = 0.5 * (i - n),
          a = e * e,
          s = e * a;
        return (
          (2 * n - 2 * r + A + o) * s +
          (-3 * n + 3 * r - 2 * A - o) * a +
          A * e +
          n
        );
      }
      function uf(e, t) {
        var n = 1 - e;
        return n * n * t;
      }
      function lf(e, t) {
        return 2 * (1 - e) * e * t;
      }
      function hf(e, t) {
        return e * e * t;
      }
      function ff(e, t, n, r) {
        return uf(e, t) + lf(e, n) + hf(e, r);
      }
      function df(e, t) {
        var n = 1 - e;
        return n * n * n * t;
      }
      function pf(e, t) {
        var n = 1 - e;
        return 3 * n * n * e * t;
      }
      function gf(e, t) {
        return 3 * (1 - e) * e * e * t;
      }
      function mf(e, t) {
        return e * e * e * t;
      }
      function vf(e, t, n, r, i) {
        return df(e, t) + pf(e, n) + gf(e, r) + mf(e, i);
      }
      function yf(e, t, n, r) {
        ($h.call(this),
          (this.type = "CubicBezierCurve"),
          (this.v0 = e || new hn()),
          (this.v1 = t || new hn()),
          (this.v2 = n || new hn()),
          (this.v3 = r || new hn()));
      }
      function wf(e, t, n, r) {
        ($h.call(this),
          (this.type = "CubicBezierCurve3"),
          (this.v0 = e || new _n()),
          (this.v1 = t || new _n()),
          (this.v2 = n || new _n()),
          (this.v3 = r || new _n()));
      }
      function Bf(e, t) {
        ($h.call(this),
          (this.type = "LineCurve"),
          (this.v1 = e || new hn()),
          (this.v2 = t || new hn()));
      }
      function bf(e, t) {
        ($h.call(this),
          (this.type = "LineCurve3"),
          (this.v1 = e || new _n()),
          (this.v2 = t || new _n()));
      }
      function _f(e, t, n) {
        ($h.call(this),
          (this.type = "QuadraticBezierCurve"),
          (this.v0 = e || new hn()),
          (this.v1 = t || new hn()),
          (this.v2 = n || new hn()));
      }
      function xf(e, t, n) {
        ($h.call(this),
          (this.type = "QuadraticBezierCurve3"),
          (this.v0 = e || new _n()),
          (this.v1 = t || new _n()),
          (this.v2 = n || new _n()));
      }
      function Cf(e) {
        ($h.call(this), (this.type = "SplineCurve"), (this.points = e || []));
      }
      ((sf.prototype = Object.create($h.prototype)),
        (sf.prototype.constructor = sf),
        (sf.prototype.isCatmullRomCurve3 = !0),
        (sf.prototype.getPoint = function (e, t) {
          var n,
            r,
            i,
            A,
            o = t || new _n(),
            a = this.points,
            s = a.length,
            c = (s - (this.closed ? 0 : 1)) * e,
            u = Math.floor(c),
            l = c - u;
          if (
            (this.closed
              ? (u += u > 0 ? 0 : (Math.floor(Math.abs(u) / s) + 1) * s)
              : 0 === l && u === s - 1 && ((u = s - 2), (l = 1)),
            this.closed || u > 0
              ? (n = a[(u - 1) % s])
              : (rf.subVectors(a[0], a[1]).add(a[0]), (n = rf)),
            (r = a[u % s]),
            (i = a[(u + 1) % s]),
            this.closed || u + 2 < s
              ? (A = a[(u + 2) % s])
              : (rf.subVectors(a[s - 1], a[s - 2]).add(a[s - 1]), (A = rf)),
            "centripetal" === this.curveType || "chordal" === this.curveType)
          ) {
            var h = "chordal" === this.curveType ? 0.5 : 0.25,
              f = Math.pow(n.distanceToSquared(r), h),
              d = Math.pow(r.distanceToSquared(i), h),
              p = Math.pow(i.distanceToSquared(A), h);
            (d < 1e-4 && (d = 1),
              f < 1e-4 && (f = d),
              p < 1e-4 && (p = d),
              Af.initNonuniformCatmullRom(n.x, r.x, i.x, A.x, f, d, p),
              of.initNonuniformCatmullRom(n.y, r.y, i.y, A.y, f, d, p),
              af.initNonuniformCatmullRom(n.z, r.z, i.z, A.z, f, d, p));
          } else
            "catmullrom" === this.curveType &&
              (Af.initCatmullRom(n.x, r.x, i.x, A.x, this.tension),
              of.initCatmullRom(n.y, r.y, i.y, A.y, this.tension),
              af.initCatmullRom(n.z, r.z, i.z, A.z, this.tension));
          return (o.set(Af.calc(l), of.calc(l), af.calc(l)), o);
        }),
        (sf.prototype.copy = function (e) {
          ($h.prototype.copy.call(this, e), (this.points = []));
          for (var t = 0, n = e.points.length; t < n; t++) {
            var r = e.points[t];
            this.points.push(r.clone());
          }
          return (
            (this.closed = e.closed),
            (this.curveType = e.curveType),
            (this.tension = e.tension),
            this
          );
        }),
        (sf.prototype.toJSON = function () {
          var e = $h.prototype.toJSON.call(this);
          e.points = [];
          for (var t = 0, n = this.points.length; t < n; t++) {
            var r = this.points[t];
            e.points.push(r.toArray());
          }
          return (
            (e.closed = this.closed),
            (e.curveType = this.curveType),
            (e.tension = this.tension),
            e
          );
        }),
        (sf.prototype.fromJSON = function (e) {
          ($h.prototype.fromJSON.call(this, e), (this.points = []));
          for (var t = 0, n = e.points.length; t < n; t++) {
            var r = e.points[t];
            this.points.push(new _n().fromArray(r));
          }
          return (
            (this.closed = e.closed),
            (this.curveType = e.curveType),
            (this.tension = e.tension),
            this
          );
        }),
        (yf.prototype = Object.create($h.prototype)),
        (yf.prototype.constructor = yf),
        (yf.prototype.isCubicBezierCurve = !0),
        (yf.prototype.getPoint = function (e, t) {
          var n = t || new hn(),
            r = this.v0,
            i = this.v1,
            A = this.v2,
            o = this.v3;
          return (
            n.set(vf(e, r.x, i.x, A.x, o.x), vf(e, r.y, i.y, A.y, o.y)),
            n
          );
        }),
        (yf.prototype.copy = function (e) {
          return (
            $h.prototype.copy.call(this, e),
            this.v0.copy(e.v0),
            this.v1.copy(e.v1),
            this.v2.copy(e.v2),
            this.v3.copy(e.v3),
            this
          );
        }),
        (yf.prototype.toJSON = function () {
          var e = $h.prototype.toJSON.call(this);
          return (
            (e.v0 = this.v0.toArray()),
            (e.v1 = this.v1.toArray()),
            (e.v2 = this.v2.toArray()),
            (e.v3 = this.v3.toArray()),
            e
          );
        }),
        (yf.prototype.fromJSON = function (e) {
          return (
            $h.prototype.fromJSON.call(this, e),
            this.v0.fromArray(e.v0),
            this.v1.fromArray(e.v1),
            this.v2.fromArray(e.v2),
            this.v3.fromArray(e.v3),
            this
          );
        }),
        (wf.prototype = Object.create($h.prototype)),
        (wf.prototype.constructor = wf),
        (wf.prototype.isCubicBezierCurve3 = !0),
        (wf.prototype.getPoint = function (e, t) {
          var n = t || new _n(),
            r = this.v0,
            i = this.v1,
            A = this.v2,
            o = this.v3;
          return (
            n.set(
              vf(e, r.x, i.x, A.x, o.x),
              vf(e, r.y, i.y, A.y, o.y),
              vf(e, r.z, i.z, A.z, o.z),
            ),
            n
          );
        }),
        (wf.prototype.copy = function (e) {
          return (
            $h.prototype.copy.call(this, e),
            this.v0.copy(e.v0),
            this.v1.copy(e.v1),
            this.v2.copy(e.v2),
            this.v3.copy(e.v3),
            this
          );
        }),
        (wf.prototype.toJSON = function () {
          var e = $h.prototype.toJSON.call(this);
          return (
            (e.v0 = this.v0.toArray()),
            (e.v1 = this.v1.toArray()),
            (e.v2 = this.v2.toArray()),
            (e.v3 = this.v3.toArray()),
            e
          );
        }),
        (wf.prototype.fromJSON = function (e) {
          return (
            $h.prototype.fromJSON.call(this, e),
            this.v0.fromArray(e.v0),
            this.v1.fromArray(e.v1),
            this.v2.fromArray(e.v2),
            this.v3.fromArray(e.v3),
            this
          );
        }),
        (Bf.prototype = Object.create($h.prototype)),
        (Bf.prototype.constructor = Bf),
        (Bf.prototype.isLineCurve = !0),
        (Bf.prototype.getPoint = function (e, t) {
          var n = t || new hn();
          return (
            1 === e
              ? n.copy(this.v2)
              : (n.copy(this.v2).sub(this.v1),
                n.multiplyScalar(e).add(this.v1)),
            n
          );
        }),
        (Bf.prototype.getPointAt = function (e, t) {
          return this.getPoint(e, t);
        }),
        (Bf.prototype.getTangent = function (e, t) {
          var n = t || new hn();
          n = n.copy(this.v2).sub(this.v1).normalize();
          return n;
        }),
        (Bf.prototype.copy = function (e) {
          return (
            $h.prototype.copy.call(this, e),
            this.v1.copy(e.v1),
            this.v2.copy(e.v2),
            this
          );
        }),
        (Bf.prototype.toJSON = function () {
          var e = $h.prototype.toJSON.call(this);
          return ((e.v1 = this.v1.toArray()), (e.v2 = this.v2.toArray()), e);
        }),
        (Bf.prototype.fromJSON = function (e) {
          return (
            $h.prototype.fromJSON.call(this, e),
            this.v1.fromArray(e.v1),
            this.v2.fromArray(e.v2),
            this
          );
        }),
        (bf.prototype = Object.create($h.prototype)),
        (bf.prototype.constructor = bf),
        (bf.prototype.isLineCurve3 = !0),
        (bf.prototype.getPoint = function (e, t) {
          var n = t || new _n();
          return (
            1 === e
              ? n.copy(this.v2)
              : (n.copy(this.v2).sub(this.v1),
                n.multiplyScalar(e).add(this.v1)),
            n
          );
        }),
        (bf.prototype.getPointAt = function (e, t) {
          return this.getPoint(e, t);
        }),
        (bf.prototype.copy = function (e) {
          return (
            $h.prototype.copy.call(this, e),
            this.v1.copy(e.v1),
            this.v2.copy(e.v2),
            this
          );
        }),
        (bf.prototype.toJSON = function () {
          var e = $h.prototype.toJSON.call(this);
          return ((e.v1 = this.v1.toArray()), (e.v2 = this.v2.toArray()), e);
        }),
        (bf.prototype.fromJSON = function (e) {
          return (
            $h.prototype.fromJSON.call(this, e),
            this.v1.fromArray(e.v1),
            this.v2.fromArray(e.v2),
            this
          );
        }),
        (_f.prototype = Object.create($h.prototype)),
        (_f.prototype.constructor = _f),
        (_f.prototype.isQuadraticBezierCurve = !0),
        (_f.prototype.getPoint = function (e, t) {
          var n = t || new hn(),
            r = this.v0,
            i = this.v1,
            A = this.v2;
          return (n.set(ff(e, r.x, i.x, A.x), ff(e, r.y, i.y, A.y)), n);
        }),
        (_f.prototype.copy = function (e) {
          return (
            $h.prototype.copy.call(this, e),
            this.v0.copy(e.v0),
            this.v1.copy(e.v1),
            this.v2.copy(e.v2),
            this
          );
        }),
        (_f.prototype.toJSON = function () {
          var e = $h.prototype.toJSON.call(this);
          return (
            (e.v0 = this.v0.toArray()),
            (e.v1 = this.v1.toArray()),
            (e.v2 = this.v2.toArray()),
            e
          );
        }),
        (_f.prototype.fromJSON = function (e) {
          return (
            $h.prototype.fromJSON.call(this, e),
            this.v0.fromArray(e.v0),
            this.v1.fromArray(e.v1),
            this.v2.fromArray(e.v2),
            this
          );
        }),
        (xf.prototype = Object.create($h.prototype)),
        (xf.prototype.constructor = xf),
        (xf.prototype.isQuadraticBezierCurve3 = !0),
        (xf.prototype.getPoint = function (e, t) {
          var n = t || new _n(),
            r = this.v0,
            i = this.v1,
            A = this.v2;
          return (
            n.set(
              ff(e, r.x, i.x, A.x),
              ff(e, r.y, i.y, A.y),
              ff(e, r.z, i.z, A.z),
            ),
            n
          );
        }),
        (xf.prototype.copy = function (e) {
          return (
            $h.prototype.copy.call(this, e),
            this.v0.copy(e.v0),
            this.v1.copy(e.v1),
            this.v2.copy(e.v2),
            this
          );
        }),
        (xf.prototype.toJSON = function () {
          var e = $h.prototype.toJSON.call(this);
          return (
            (e.v0 = this.v0.toArray()),
            (e.v1 = this.v1.toArray()),
            (e.v2 = this.v2.toArray()),
            e
          );
        }),
        (xf.prototype.fromJSON = function (e) {
          return (
            $h.prototype.fromJSON.call(this, e),
            this.v0.fromArray(e.v0),
            this.v1.fromArray(e.v1),
            this.v2.fromArray(e.v2),
            this
          );
        }),
        (Cf.prototype = Object.create($h.prototype)),
        (Cf.prototype.constructor = Cf),
        (Cf.prototype.isSplineCurve = !0),
        (Cf.prototype.getPoint = function (e, t) {
          var n = t || new hn(),
            r = this.points,
            i = (r.length - 1) * e,
            A = Math.floor(i),
            o = i - A,
            a = r[0 === A ? A : A - 1],
            s = r[A],
            c = r[A > r.length - 2 ? r.length - 1 : A + 1],
            u = r[A > r.length - 3 ? r.length - 1 : A + 2];
          return (
            n.set(cf(o, a.x, s.x, c.x, u.x), cf(o, a.y, s.y, c.y, u.y)),
            n
          );
        }),
        (Cf.prototype.copy = function (e) {
          ($h.prototype.copy.call(this, e), (this.points = []));
          for (var t = 0, n = e.points.length; t < n; t++) {
            var r = e.points[t];
            this.points.push(r.clone());
          }
          return this;
        }),
        (Cf.prototype.toJSON = function () {
          var e = $h.prototype.toJSON.call(this);
          e.points = [];
          for (var t = 0, n = this.points.length; t < n; t++) {
            var r = this.points[t];
            e.points.push(r.toArray());
          }
          return e;
        }),
        (Cf.prototype.fromJSON = function (e) {
          ($h.prototype.fromJSON.call(this, e), (this.points = []));
          for (var t = 0, n = e.points.length; t < n; t++) {
            var r = e.points[t];
            this.points.push(new hn().fromArray(r));
          }
          return this;
        }));
      var Ef = Object.freeze({
        __proto__: null,
        ArcCurve: tf,
        CatmullRomCurve3: sf,
        CubicBezierCurve: yf,
        CubicBezierCurve3: wf,
        EllipseCurve: ef,
        LineCurve: Bf,
        LineCurve3: bf,
        QuadraticBezierCurve: _f,
        QuadraticBezierCurve3: xf,
        SplineCurve: Cf,
      });
      function Mf() {
        ($h.call(this),
          (this.type = "CurvePath"),
          (this.curves = []),
          (this.autoClose = !1));
      }
      function Sf(e) {
        (Mf.call(this),
          (this.type = "Path"),
          (this.currentPoint = new hn()),
          e && this.setFromPoints(e));
      }
      function Ff(e) {
        (Sf.call(this, e),
          (this.uuid = ln.generateUUID()),
          (this.type = "Shape"),
          (this.holes = []));
      }
      function Tf(e, t) {
        (Yn.call(this),
          (this.type = "Light"),
          (this.color = new Nr(e)),
          (this.intensity = void 0 !== t ? t : 1),
          (this.receiveShadow = void 0));
      }
      function Uf(e, t, n) {
        (Tf.call(this, e, n),
          (this.type = "HemisphereLight"),
          (this.castShadow = void 0),
          this.position.copy(Yn.DefaultUp),
          this.updateMatrix(),
          (this.groundColor = new Nr(t)));
      }
      function Qf(e) {
        ((this.camera = e),
          (this.bias = 0),
          (this.radius = 1),
          (this.mapSize = new hn(512, 512)),
          (this.map = null),
          (this.mapPass = null),
          (this.matrix = new Un()),
          (this._frustum = new rA()),
          (this._frameExtents = new hn(1, 1)),
          (this._viewportCount = 1),
          (this._viewports = [new mn(0, 0, 1, 1)]));
      }
      function Lf() {
        Qf.call(this, new Yi(50, 1, 0.5, 500));
      }
      function If(e, t, n, r, i, A) {
        (Tf.call(this, e, t),
          (this.type = "SpotLight"),
          this.position.copy(Yn.DefaultUp),
          this.updateMatrix(),
          (this.target = new Yn()),
          Object.defineProperty(this, "power", {
            get: function () {
              return this.intensity * Math.PI;
            },
            set: function (e) {
              this.intensity = e / Math.PI;
            },
          }),
          (this.distance = void 0 !== n ? n : 0),
          (this.angle = void 0 !== r ? r : Math.PI / 3),
          (this.penumbra = void 0 !== i ? i : 0),
          (this.decay = void 0 !== A ? A : 1),
          (this.shadow = new Lf()));
      }
      function Hf() {
        (Qf.call(this, new Yi(90, 1, 0.5, 500)),
          (this._frameExtents = new hn(4, 2)),
          (this._viewportCount = 6),
          (this._viewports = [
            new mn(2, 1, 1, 1),
            new mn(0, 1, 1, 1),
            new mn(3, 1, 1, 1),
            new mn(1, 1, 1, 1),
            new mn(3, 0, 1, 1),
            new mn(1, 0, 1, 1),
          ]),
          (this._cubeDirections = [
            new _n(1, 0, 0),
            new _n(-1, 0, 0),
            new _n(0, 0, 1),
            new _n(0, 0, -1),
            new _n(0, 1, 0),
            new _n(0, -1, 0),
          ]),
          (this._cubeUps = [
            new _n(0, 1, 0),
            new _n(0, 1, 0),
            new _n(0, 1, 0),
            new _n(0, 1, 0),
            new _n(0, 0, 1),
            new _n(0, 0, -1),
          ]));
      }
      function Of(e, t, n, r) {
        (Tf.call(this, e, t),
          (this.type = "PointLight"),
          Object.defineProperty(this, "power", {
            get: function () {
              return 4 * this.intensity * Math.PI;
            },
            set: function (e) {
              this.intensity = e / (4 * Math.PI);
            },
          }),
          (this.distance = void 0 !== n ? n : 0),
          (this.decay = void 0 !== r ? r : 1),
          (this.shadow = new Hf()));
      }
      function Rf(e, t, n, r, i, A) {
        (Xi.call(this),
          (this.type = "OrthographicCamera"),
          (this.zoom = 1),
          (this.view = null),
          (this.left = void 0 !== e ? e : -1),
          (this.right = void 0 !== t ? t : 1),
          (this.top = void 0 !== n ? n : 1),
          (this.bottom = void 0 !== r ? r : -1),
          (this.near = void 0 !== i ? i : 0.1),
          (this.far = void 0 !== A ? A : 2e3),
          this.updateProjectionMatrix());
      }
      function Pf() {
        Qf.call(this, new Rf(-5, 5, 5, -5, 0.5, 500));
      }
      function Df(e, t) {
        (Tf.call(this, e, t),
          (this.type = "DirectionalLight"),
          this.position.copy(Yn.DefaultUp),
          this.updateMatrix(),
          (this.target = new Yn()),
          (this.shadow = new Pf()));
      }
      function Nf(e, t) {
        (Tf.call(this, e, t),
          (this.type = "AmbientLight"),
          (this.castShadow = void 0));
      }
      function kf(e, t, n, r) {
        (Tf.call(this, e, t),
          (this.type = "RectAreaLight"),
          (this.width = void 0 !== n ? n : 10),
          (this.height = void 0 !== r ? r : 10));
      }
      function Gf() {
        this.coefficients = [];
        for (var e = 0; e < 9; e++) this.coefficients.push(new _n());
      }
      function Vf(e, t) {
        (Tf.call(this, void 0, t),
          (this.type = "LightProbe"),
          (this.sh = void 0 !== e ? e : new Gf()));
      }
      function zf(e) {
        (zh.call(this, e), (this.textures = {}));
      }
      ((Mf.prototype = Object.assign(Object.create($h.prototype), {
        constructor: Mf,
        add: function (e) {
          this.curves.push(e);
        },
        closePath: function () {
          var e = this.curves[0].getPoint(0),
            t = this.curves[this.curves.length - 1].getPoint(1);
          e.equals(t) || this.curves.push(new Bf(t, e));
        },
        getPoint: function (e) {
          var t = e * this.getLength(),
            n = this.getCurveLengths(),
            r = 0;
          while (r < n.length) {
            if (n[r] >= t) {
              var i = n[r] - t,
                A = this.curves[r],
                o = A.getLength(),
                a = 0 === o ? 0 : 1 - i / o;
              return A.getPointAt(a);
            }
            r++;
          }
          return null;
        },
        getLength: function () {
          var e = this.getCurveLengths();
          return e[e.length - 1];
        },
        updateArcLengths: function () {
          ((this.needsUpdate = !0),
            (this.cacheLengths = null),
            this.getCurveLengths());
        },
        getCurveLengths: function () {
          if (
            this.cacheLengths &&
            this.cacheLengths.length === this.curves.length
          )
            return this.cacheLengths;
          for (var e = [], t = 0, n = 0, r = this.curves.length; n < r; n++)
            ((t += this.curves[n].getLength()), e.push(t));
          return ((this.cacheLengths = e), e);
        },
        getSpacedPoints: function (e) {
          void 0 === e && (e = 40);
          for (var t = [], n = 0; n <= e; n++) t.push(this.getPoint(n / e));
          return (this.autoClose && t.push(t[0]), t);
        },
        getPoints: function (e) {
          e = e || 12;
          for (var t, n = [], r = 0, i = this.curves; r < i.length; r++)
            for (
              var A = i[r],
                o =
                  A && A.isEllipseCurve
                    ? 2 * e
                    : A && (A.isLineCurve || A.isLineCurve3)
                      ? 1
                      : A && A.isSplineCurve
                        ? e * A.points.length
                        : e,
                a = A.getPoints(o),
                s = 0;
              s < a.length;
              s++
            ) {
              var c = a[s];
              (t && t.equals(c)) || (n.push(c), (t = c));
            }
          return (
            this.autoClose &&
              n.length > 1 &&
              !n[n.length - 1].equals(n[0]) &&
              n.push(n[0]),
            n
          );
        },
        copy: function (e) {
          ($h.prototype.copy.call(this, e), (this.curves = []));
          for (var t = 0, n = e.curves.length; t < n; t++) {
            var r = e.curves[t];
            this.curves.push(r.clone());
          }
          return ((this.autoClose = e.autoClose), this);
        },
        toJSON: function () {
          var e = $h.prototype.toJSON.call(this);
          ((e.autoClose = this.autoClose), (e.curves = []));
          for (var t = 0, n = this.curves.length; t < n; t++) {
            var r = this.curves[t];
            e.curves.push(r.toJSON());
          }
          return e;
        },
        fromJSON: function (e) {
          ($h.prototype.fromJSON.call(this, e),
            (this.autoClose = e.autoClose),
            (this.curves = []));
          for (var t = 0, n = e.curves.length; t < n; t++) {
            var r = e.curves[t];
            this.curves.push(new Ef[r.type]().fromJSON(r));
          }
          return this;
        },
      })),
        (Sf.prototype = Object.assign(Object.create(Mf.prototype), {
          constructor: Sf,
          setFromPoints: function (e) {
            this.moveTo(e[0].x, e[0].y);
            for (var t = 1, n = e.length; t < n; t++)
              this.lineTo(e[t].x, e[t].y);
            return this;
          },
          moveTo: function (e, t) {
            return (this.currentPoint.set(e, t), this);
          },
          lineTo: function (e, t) {
            var n = new Bf(this.currentPoint.clone(), new hn(e, t));
            return (this.curves.push(n), this.currentPoint.set(e, t), this);
          },
          quadraticCurveTo: function (e, t, n, r) {
            var i = new _f(
              this.currentPoint.clone(),
              new hn(e, t),
              new hn(n, r),
            );
            return (this.curves.push(i), this.currentPoint.set(n, r), this);
          },
          bezierCurveTo: function (e, t, n, r, i, A) {
            var o = new yf(
              this.currentPoint.clone(),
              new hn(e, t),
              new hn(n, r),
              new hn(i, A),
            );
            return (this.curves.push(o), this.currentPoint.set(i, A), this);
          },
          splineThru: function (e) {
            var t = [this.currentPoint.clone()].concat(e),
              n = new Cf(t);
            return (
              this.curves.push(n),
              this.currentPoint.copy(e[e.length - 1]),
              this
            );
          },
          arc: function (e, t, n, r, i, A) {
            var o = this.currentPoint.x,
              a = this.currentPoint.y;
            return (this.absarc(e + o, t + a, n, r, i, A), this);
          },
          absarc: function (e, t, n, r, i, A) {
            return (this.absellipse(e, t, n, n, r, i, A), this);
          },
          ellipse: function (e, t, n, r, i, A, o, a) {
            var s = this.currentPoint.x,
              c = this.currentPoint.y;
            return (this.absellipse(e + s, t + c, n, r, i, A, o, a), this);
          },
          absellipse: function (e, t, n, r, i, A, o, a) {
            var s = new ef(e, t, n, r, i, A, o, a);
            if (this.curves.length > 0) {
              var c = s.getPoint(0);
              c.equals(this.currentPoint) || this.lineTo(c.x, c.y);
            }
            this.curves.push(s);
            var u = s.getPoint(1);
            return (this.currentPoint.copy(u), this);
          },
          copy: function (e) {
            return (
              Mf.prototype.copy.call(this, e),
              this.currentPoint.copy(e.currentPoint),
              this
            );
          },
          toJSON: function () {
            var e = Mf.prototype.toJSON.call(this);
            return ((e.currentPoint = this.currentPoint.toArray()), e);
          },
          fromJSON: function (e) {
            return (
              Mf.prototype.fromJSON.call(this, e),
              this.currentPoint.fromArray(e.currentPoint),
              this
            );
          },
        })),
        (Ff.prototype = Object.assign(Object.create(Sf.prototype), {
          constructor: Ff,
          getPointsHoles: function (e) {
            for (var t = [], n = 0, r = this.holes.length; n < r; n++)
              t[n] = this.holes[n].getPoints(e);
            return t;
          },
          extractPoints: function (e) {
            return { shape: this.getPoints(e), holes: this.getPointsHoles(e) };
          },
          copy: function (e) {
            (Sf.prototype.copy.call(this, e), (this.holes = []));
            for (var t = 0, n = e.holes.length; t < n; t++) {
              var r = e.holes[t];
              this.holes.push(r.clone());
            }
            return this;
          },
          toJSON: function () {
            var e = Sf.prototype.toJSON.call(this);
            ((e.uuid = this.uuid), (e.holes = []));
            for (var t = 0, n = this.holes.length; t < n; t++) {
              var r = this.holes[t];
              e.holes.push(r.toJSON());
            }
            return e;
          },
          fromJSON: function (e) {
            (Sf.prototype.fromJSON.call(this, e),
              (this.uuid = e.uuid),
              (this.holes = []));
            for (var t = 0, n = e.holes.length; t < n; t++) {
              var r = e.holes[t];
              this.holes.push(new Sf().fromJSON(r));
            }
            return this;
          },
        })),
        (Tf.prototype = Object.assign(Object.create(Yn.prototype), {
          constructor: Tf,
          isLight: !0,
          copy: function (e) {
            return (
              Yn.prototype.copy.call(this, e),
              this.color.copy(e.color),
              (this.intensity = e.intensity),
              this
            );
          },
          toJSON: function (e) {
            var t = Yn.prototype.toJSON.call(this, e);
            return (
              (t.object.color = this.color.getHex()),
              (t.object.intensity = this.intensity),
              void 0 !== this.groundColor &&
                (t.object.groundColor = this.groundColor.getHex()),
              void 0 !== this.distance && (t.object.distance = this.distance),
              void 0 !== this.angle && (t.object.angle = this.angle),
              void 0 !== this.decay && (t.object.decay = this.decay),
              void 0 !== this.penumbra && (t.object.penumbra = this.penumbra),
              void 0 !== this.shadow &&
                (t.object.shadow = this.shadow.toJSON()),
              t
            );
          },
        })),
        (Uf.prototype = Object.assign(Object.create(Tf.prototype), {
          constructor: Uf,
          isHemisphereLight: !0,
          copy: function (e) {
            return (
              Tf.prototype.copy.call(this, e),
              this.groundColor.copy(e.groundColor),
              this
            );
          },
        })),
        Object.assign(Qf.prototype, {
          _projScreenMatrix: new Un(),
          _lightPositionWorld: new _n(),
          _lookTarget: new _n(),
          getViewportCount: function () {
            return this._viewportCount;
          },
          getFrustum: function () {
            return this._frustum;
          },
          updateMatrices: function (e) {
            var t = this.camera,
              n = this.matrix,
              r = this._projScreenMatrix,
              i = this._lookTarget,
              A = this._lightPositionWorld;
            (A.setFromMatrixPosition(e.matrixWorld),
              t.position.copy(A),
              i.setFromMatrixPosition(e.target.matrixWorld),
              t.lookAt(i),
              t.updateMatrixWorld(),
              r.multiplyMatrices(t.projectionMatrix, t.matrixWorldInverse),
              this._frustum.setFromProjectionMatrix(r),
              n.set(0.5, 0, 0, 0.5, 0, 0.5, 0, 0.5, 0, 0, 0.5, 0.5, 0, 0, 0, 1),
              n.multiply(t.projectionMatrix),
              n.multiply(t.matrixWorldInverse));
          },
          getViewport: function (e) {
            return this._viewports[e];
          },
          getFrameExtents: function () {
            return this._frameExtents;
          },
          copy: function (e) {
            return (
              (this.camera = e.camera.clone()),
              (this.bias = e.bias),
              (this.radius = e.radius),
              this.mapSize.copy(e.mapSize),
              this
            );
          },
          clone: function () {
            return new this.constructor().copy(this);
          },
          toJSON: function () {
            var e = {};
            return (
              0 !== this.bias && (e.bias = this.bias),
              1 !== this.radius && (e.radius = this.radius),
              (512 === this.mapSize.x && 512 === this.mapSize.y) ||
                (e.mapSize = this.mapSize.toArray()),
              (e.camera = this.camera.toJSON(!1).object),
              delete e.camera.matrix,
              e
            );
          },
        }),
        (Lf.prototype = Object.assign(Object.create(Qf.prototype), {
          constructor: Lf,
          isSpotLightShadow: !0,
          updateMatrices: function (e) {
            var t = this.camera,
              n = 2 * ln.RAD2DEG * e.angle,
              r = this.mapSize.width / this.mapSize.height,
              i = e.distance || t.far;
            ((n === t.fov && r === t.aspect && i === t.far) ||
              ((t.fov = n),
              (t.aspect = r),
              (t.far = i),
              t.updateProjectionMatrix()),
              Qf.prototype.updateMatrices.call(this, e));
          },
        })),
        (If.prototype = Object.assign(Object.create(Tf.prototype), {
          constructor: If,
          isSpotLight: !0,
          copy: function (e) {
            return (
              Tf.prototype.copy.call(this, e),
              (this.distance = e.distance),
              (this.angle = e.angle),
              (this.penumbra = e.penumbra),
              (this.decay = e.decay),
              (this.target = e.target.clone()),
              (this.shadow = e.shadow.clone()),
              this
            );
          },
        })),
        (Hf.prototype = Object.assign(Object.create(Qf.prototype), {
          constructor: Hf,
          isPointLightShadow: !0,
          updateMatrices: function (e, t) {
            void 0 === t && (t = 0);
            var n = this.camera,
              r = this.matrix,
              i = this._lightPositionWorld,
              A = this._lookTarget,
              o = this._projScreenMatrix;
            (i.setFromMatrixPosition(e.matrixWorld),
              n.position.copy(i),
              A.copy(n.position),
              A.add(this._cubeDirections[t]),
              n.up.copy(this._cubeUps[t]),
              n.lookAt(A),
              n.updateMatrixWorld(),
              r.makeTranslation(-i.x, -i.y, -i.z),
              o.multiplyMatrices(n.projectionMatrix, n.matrixWorldInverse),
              this._frustum.setFromProjectionMatrix(o));
          },
        })),
        (Of.prototype = Object.assign(Object.create(Tf.prototype), {
          constructor: Of,
          isPointLight: !0,
          copy: function (e) {
            return (
              Tf.prototype.copy.call(this, e),
              (this.distance = e.distance),
              (this.decay = e.decay),
              (this.shadow = e.shadow.clone()),
              this
            );
          },
        })),
        (Rf.prototype = Object.assign(Object.create(Xi.prototype), {
          constructor: Rf,
          isOrthographicCamera: !0,
          copy: function (e, t) {
            return (
              Xi.prototype.copy.call(this, e, t),
              (this.left = e.left),
              (this.right = e.right),
              (this.top = e.top),
              (this.bottom = e.bottom),
              (this.near = e.near),
              (this.far = e.far),
              (this.zoom = e.zoom),
              (this.view = null === e.view ? null : Object.assign({}, e.view)),
              this
            );
          },
          setViewOffset: function (e, t, n, r, i, A) {
            (null === this.view &&
              (this.view = {
                enabled: !0,
                fullWidth: 1,
                fullHeight: 1,
                offsetX: 0,
                offsetY: 0,
                width: 1,
                height: 1,
              }),
              (this.view.enabled = !0),
              (this.view.fullWidth = e),
              (this.view.fullHeight = t),
              (this.view.offsetX = n),
              (this.view.offsetY = r),
              (this.view.width = i),
              (this.view.height = A),
              this.updateProjectionMatrix());
          },
          clearViewOffset: function () {
            (null !== this.view && (this.view.enabled = !1),
              this.updateProjectionMatrix());
          },
          updateProjectionMatrix: function () {
            var e = (this.right - this.left) / (2 * this.zoom),
              t = (this.top - this.bottom) / (2 * this.zoom),
              n = (this.right + this.left) / 2,
              r = (this.top + this.bottom) / 2,
              i = n - e,
              A = n + e,
              o = r + t,
              a = r - t;
            if (null !== this.view && this.view.enabled) {
              var s =
                  (this.right - this.left) / this.view.fullWidth / this.zoom,
                c = (this.top - this.bottom) / this.view.fullHeight / this.zoom;
              ((i += s * this.view.offsetX),
                (A = i + s * this.view.width),
                (o -= c * this.view.offsetY),
                (a = o - c * this.view.height));
            }
            (this.projectionMatrix.makeOrthographic(
              i,
              A,
              o,
              a,
              this.near,
              this.far,
            ),
              this.projectionMatrixInverse.getInverse(this.projectionMatrix));
          },
          toJSON: function (e) {
            var t = Yn.prototype.toJSON.call(this, e);
            return (
              (t.object.zoom = this.zoom),
              (t.object.left = this.left),
              (t.object.right = this.right),
              (t.object.top = this.top),
              (t.object.bottom = this.bottom),
              (t.object.near = this.near),
              (t.object.far = this.far),
              null !== this.view &&
                (t.object.view = Object.assign({}, this.view)),
              t
            );
          },
        })),
        (Pf.prototype = Object.assign(Object.create(Qf.prototype), {
          constructor: Pf,
          isDirectionalLightShadow: !0,
          updateMatrices: function (e) {
            Qf.prototype.updateMatrices.call(this, e);
          },
        })),
        (Df.prototype = Object.assign(Object.create(Tf.prototype), {
          constructor: Df,
          isDirectionalLight: !0,
          copy: function (e) {
            return (
              Tf.prototype.copy.call(this, e),
              (this.target = e.target.clone()),
              (this.shadow = e.shadow.clone()),
              this
            );
          },
        })),
        (Nf.prototype = Object.assign(Object.create(Tf.prototype), {
          constructor: Nf,
          isAmbientLight: !0,
        })),
        (kf.prototype = Object.assign(Object.create(Tf.prototype), {
          constructor: kf,
          isRectAreaLight: !0,
          copy: function (e) {
            return (
              Tf.prototype.copy.call(this, e),
              (this.width = e.width),
              (this.height = e.height),
              this
            );
          },
          toJSON: function (e) {
            var t = Tf.prototype.toJSON.call(this, e);
            return (
              (t.object.width = this.width),
              (t.object.height = this.height),
              t
            );
          },
        })),
        Object.assign(Gf.prototype, {
          isSphericalHarmonics3: !0,
          set: function (e) {
            for (var t = 0; t < 9; t++) this.coefficients[t].copy(e[t]);
            return this;
          },
          zero: function () {
            for (var e = 0; e < 9; e++) this.coefficients[e].set(0, 0, 0);
            return this;
          },
          getAt: function (e, t) {
            var n = e.x,
              r = e.y,
              i = e.z,
              A = this.coefficients;
            return (
              t.copy(A[0]).multiplyScalar(0.282095),
              t.addScaledVector(A[1], 0.488603 * r),
              t.addScaledVector(A[2], 0.488603 * i),
              t.addScaledVector(A[3], 0.488603 * n),
              t.addScaledVector(A[4], n * r * 1.092548),
              t.addScaledVector(A[5], r * i * 1.092548),
              t.addScaledVector(A[6], 0.315392 * (3 * i * i - 1)),
              t.addScaledVector(A[7], n * i * 1.092548),
              t.addScaledVector(A[8], 0.546274 * (n * n - r * r)),
              t
            );
          },
          getIrradianceAt: function (e, t) {
            var n = e.x,
              r = e.y,
              i = e.z,
              A = this.coefficients;
            return (
              t.copy(A[0]).multiplyScalar(0.886227),
              t.addScaledVector(A[1], 1.023328 * r),
              t.addScaledVector(A[2], 1.023328 * i),
              t.addScaledVector(A[3], 1.023328 * n),
              t.addScaledVector(A[4], 0.858086 * n * r),
              t.addScaledVector(A[5], 0.858086 * r * i),
              t.addScaledVector(A[6], 0.743125 * i * i - 0.247708),
              t.addScaledVector(A[7], 0.858086 * n * i),
              t.addScaledVector(A[8], 0.429043 * (n * n - r * r)),
              t
            );
          },
          add: function (e) {
            for (var t = 0; t < 9; t++)
              this.coefficients[t].add(e.coefficients[t]);
            return this;
          },
          addScaledSH: function (e, t) {
            for (var n = 0; n < 9; n++)
              this.coefficients[n].addScaledVector(e.coefficients[n], t);
            return this;
          },
          scale: function (e) {
            for (var t = 0; t < 9; t++) this.coefficients[t].multiplyScalar(e);
            return this;
          },
          lerp: function (e, t) {
            for (var n = 0; n < 9; n++)
              this.coefficients[n].lerp(e.coefficients[n], t);
            return this;
          },
          equals: function (e) {
            for (var t = 0; t < 9; t++)
              if (!this.coefficients[t].equals(e.coefficients[t])) return !1;
            return !0;
          },
          copy: function (e) {
            return this.set(e.coefficients);
          },
          clone: function () {
            return new this.constructor().copy(this);
          },
          fromArray: function (e, t) {
            void 0 === t && (t = 0);
            for (var n = this.coefficients, r = 0; r < 9; r++)
              n[r].fromArray(e, t + 3 * r);
            return this;
          },
          toArray: function (e, t) {
            (void 0 === e && (e = []), void 0 === t && (t = 0));
            for (var n = this.coefficients, r = 0; r < 9; r++)
              n[r].toArray(e, t + 3 * r);
            return e;
          },
        }),
        Object.assign(Gf, {
          getBasisAt: function (e, t) {
            var n = e.x,
              r = e.y,
              i = e.z;
            ((t[0] = 0.282095),
              (t[1] = 0.488603 * r),
              (t[2] = 0.488603 * i),
              (t[3] = 0.488603 * n),
              (t[4] = 1.092548 * n * r),
              (t[5] = 1.092548 * r * i),
              (t[6] = 0.315392 * (3 * i * i - 1)),
              (t[7] = 1.092548 * n * i),
              (t[8] = 0.546274 * (n * n - r * r)));
          },
        }),
        (Vf.prototype = Object.assign(Object.create(Tf.prototype), {
          constructor: Vf,
          isLightProbe: !0,
          copy: function (e) {
            return (Tf.prototype.copy.call(this, e), this.sh.copy(e.sh), this);
          },
          fromJSON: function (e) {
            return (
              (this.intensity = e.intensity),
              this.sh.fromArray(e.sh),
              this
            );
          },
          toJSON: function (e) {
            var t = Tf.prototype.toJSON.call(this, e);
            return ((t.object.sh = this.sh.toArray()), t);
          },
        })),
        (zf.prototype = Object.assign(Object.create(zh.prototype), {
          constructor: zf,
          load: function (e, t, n, r) {
            var i = this,
              A = new Kh(i.manager);
            (A.setPath(i.path),
              A.load(
                e,
                function (n) {
                  try {
                    t(i.parse(JSON.parse(n)));
                  } catch (A) {
                    (r ? r(A) : console.log(A), i.manager.itemError(e));
                  }
                },
                n,
                r,
              ));
          },
          parse: function (e) {
            var t = this.textures;
            function n(e) {
              return (
                void 0 === t[e] &&
                  console.warn("THREE.MaterialLoader: Undefined texture", e),
                t[e]
              );
            }
            var r = new xh[e.type]();
            if (
              (void 0 !== e.uuid && (r.uuid = e.uuid),
              void 0 !== e.name && (r.name = e.name),
              void 0 !== e.color && r.color.setHex(e.color),
              void 0 !== e.roughness && (r.roughness = e.roughness),
              void 0 !== e.metalness && (r.metalness = e.metalness),
              void 0 !== e.sheen && (r.sheen = new Nr().setHex(e.sheen)),
              void 0 !== e.emissive && r.emissive.setHex(e.emissive),
              void 0 !== e.specular && r.specular.setHex(e.specular),
              void 0 !== e.shininess && (r.shininess = e.shininess),
              void 0 !== e.clearcoat && (r.clearcoat = e.clearcoat),
              void 0 !== e.clearcoatRoughness &&
                (r.clearcoatRoughness = e.clearcoatRoughness),
              void 0 !== e.fog && (r.fog = e.fog),
              void 0 !== e.flatShading && (r.flatShading = e.flatShading),
              void 0 !== e.blending && (r.blending = e.blending),
              void 0 !== e.combine && (r.combine = e.combine),
              void 0 !== e.side && (r.side = e.side),
              void 0 !== e.opacity && (r.opacity = e.opacity),
              void 0 !== e.transparent && (r.transparent = e.transparent),
              void 0 !== e.alphaTest && (r.alphaTest = e.alphaTest),
              void 0 !== e.depthTest && (r.depthTest = e.depthTest),
              void 0 !== e.depthWrite && (r.depthWrite = e.depthWrite),
              void 0 !== e.colorWrite && (r.colorWrite = e.colorWrite),
              void 0 !== e.stencilWrite && (r.stencilWrite = e.stencilWrite),
              void 0 !== e.stencilWriteMask &&
                (r.stencilWriteMask = e.stencilWriteMask),
              void 0 !== e.stencilFunc && (r.stencilFunc = e.stencilFunc),
              void 0 !== e.stencilRef && (r.stencilRef = e.stencilRef),
              void 0 !== e.stencilFuncMask &&
                (r.stencilFuncMask = e.stencilFuncMask),
              void 0 !== e.stencilFail && (r.stencilFail = e.stencilFail),
              void 0 !== e.stencilZFail && (r.stencilZFail = e.stencilZFail),
              void 0 !== e.stencilZPass && (r.stencilZPass = e.stencilZPass),
              void 0 !== e.wireframe && (r.wireframe = e.wireframe),
              void 0 !== e.wireframeLinewidth &&
                (r.wireframeLinewidth = e.wireframeLinewidth),
              void 0 !== e.wireframeLinecap &&
                (r.wireframeLinecap = e.wireframeLinecap),
              void 0 !== e.wireframeLinejoin &&
                (r.wireframeLinejoin = e.wireframeLinejoin),
              void 0 !== e.rotation && (r.rotation = e.rotation),
              1 !== e.linewidth && (r.linewidth = e.linewidth),
              void 0 !== e.dashSize && (r.dashSize = e.dashSize),
              void 0 !== e.gapSize && (r.gapSize = e.gapSize),
              void 0 !== e.scale && (r.scale = e.scale),
              void 0 !== e.polygonOffset && (r.polygonOffset = e.polygonOffset),
              void 0 !== e.polygonOffsetFactor &&
                (r.polygonOffsetFactor = e.polygonOffsetFactor),
              void 0 !== e.polygonOffsetUnits &&
                (r.polygonOffsetUnits = e.polygonOffsetUnits),
              void 0 !== e.skinning && (r.skinning = e.skinning),
              void 0 !== e.morphTargets && (r.morphTargets = e.morphTargets),
              void 0 !== e.morphNormals && (r.morphNormals = e.morphNormals),
              void 0 !== e.dithering && (r.dithering = e.dithering),
              void 0 !== e.vertexTangents &&
                (r.vertexTangents = e.vertexTangents),
              void 0 !== e.visible && (r.visible = e.visible),
              void 0 !== e.toneMapped && (r.toneMapped = e.toneMapped),
              void 0 !== e.userData && (r.userData = e.userData),
              void 0 !== e.vertexColors &&
                ("number" === typeof e.vertexColors
                  ? (r.vertexColors = e.vertexColors > 0)
                  : (r.vertexColors = e.vertexColors)),
              void 0 !== e.uniforms)
            )
              for (var i in e.uniforms) {
                var A = e.uniforms[i];
                switch (((r.uniforms[i] = {}), A.type)) {
                  case "t":
                    r.uniforms[i].value = n(A.value);
                    break;
                  case "c":
                    r.uniforms[i].value = new Nr().setHex(A.value);
                    break;
                  case "v2":
                    r.uniforms[i].value = new hn().fromArray(A.value);
                    break;
                  case "v3":
                    r.uniforms[i].value = new _n().fromArray(A.value);
                    break;
                  case "v4":
                    r.uniforms[i].value = new mn().fromArray(A.value);
                    break;
                  case "m3":
                    r.uniforms[i].value = new fn().fromArray(A.value);
                  case "m4":
                    r.uniforms[i].value = new Un().fromArray(A.value);
                    break;
                  default:
                    r.uniforms[i].value = A.value;
                }
              }
            if (
              (void 0 !== e.defines && (r.defines = e.defines),
              void 0 !== e.vertexShader && (r.vertexShader = e.vertexShader),
              void 0 !== e.fragmentShader &&
                (r.fragmentShader = e.fragmentShader),
              void 0 !== e.extensions)
            )
              for (var o in e.extensions) r.extensions[o] = e.extensions[o];
            if (
              (void 0 !== e.shading && (r.flatShading = 1 === e.shading),
              void 0 !== e.size && (r.size = e.size),
              void 0 !== e.sizeAttenuation &&
                (r.sizeAttenuation = e.sizeAttenuation),
              void 0 !== e.map && (r.map = n(e.map)),
              void 0 !== e.matcap && (r.matcap = n(e.matcap)),
              void 0 !== e.alphaMap && (r.alphaMap = n(e.alphaMap)),
              void 0 !== e.bumpMap && (r.bumpMap = n(e.bumpMap)),
              void 0 !== e.bumpScale && (r.bumpScale = e.bumpScale),
              void 0 !== e.normalMap && (r.normalMap = n(e.normalMap)),
              void 0 !== e.normalMapType && (r.normalMapType = e.normalMapType),
              void 0 !== e.normalScale)
            ) {
              var a = e.normalScale;
              (!1 === Array.isArray(a) && (a = [a, a]),
                (r.normalScale = new hn().fromArray(a)));
            }
            return (
              void 0 !== e.displacementMap &&
                (r.displacementMap = n(e.displacementMap)),
              void 0 !== e.displacementScale &&
                (r.displacementScale = e.displacementScale),
              void 0 !== e.displacementBias &&
                (r.displacementBias = e.displacementBias),
              void 0 !== e.roughnessMap && (r.roughnessMap = n(e.roughnessMap)),
              void 0 !== e.metalnessMap && (r.metalnessMap = n(e.metalnessMap)),
              void 0 !== e.emissiveMap && (r.emissiveMap = n(e.emissiveMap)),
              void 0 !== e.emissiveIntensity &&
                (r.emissiveIntensity = e.emissiveIntensity),
              void 0 !== e.specularMap && (r.specularMap = n(e.specularMap)),
              void 0 !== e.envMap && (r.envMap = n(e.envMap)),
              void 0 !== e.envMapIntensity &&
                (r.envMapIntensity = e.envMapIntensity),
              void 0 !== e.reflectivity && (r.reflectivity = e.reflectivity),
              void 0 !== e.refractionRatio &&
                (r.refractionRatio = e.refractionRatio),
              void 0 !== e.lightMap && (r.lightMap = n(e.lightMap)),
              void 0 !== e.lightMapIntensity &&
                (r.lightMapIntensity = e.lightMapIntensity),
              void 0 !== e.aoMap && (r.aoMap = n(e.aoMap)),
              void 0 !== e.aoMapIntensity &&
                (r.aoMapIntensity = e.aoMapIntensity),
              void 0 !== e.gradientMap && (r.gradientMap = n(e.gradientMap)),
              void 0 !== e.clearcoatMap && (r.clearcoatMap = n(e.clearcoatMap)),
              void 0 !== e.clearcoatRoughnessMap &&
                (r.clearcoatRoughnessMap = n(e.clearcoatRoughnessMap)),
              void 0 !== e.clearcoatNormalMap &&
                (r.clearcoatNormalMap = n(e.clearcoatNormalMap)),
              void 0 !== e.clearcoatNormalScale &&
                (r.clearcoatNormalScale = new hn().fromArray(
                  e.clearcoatNormalScale,
                )),
              r
            );
          },
          setTextures: function (e) {
            return ((this.textures = e), this);
          },
        })));
      var jf = {
        decodeText: function (e) {
          if ("undefined" !== typeof TextDecoder)
            return new TextDecoder().decode(e);
          for (var t = "", n = 0, r = e.length; n < r; n++)
            t += String.fromCharCode(e[n]);
          try {
            return decodeURIComponent(escape(t));
          } catch (i) {
            return t;
          }
        },
        extractUrlBase: function (e) {
          var t = e.lastIndexOf("/");
          return -1 === t ? "./" : e.substr(0, t + 1);
        },
      };
      function Kf() {
        (di.call(this),
          (this.type = "InstancedBufferGeometry"),
          (this.instanceCount = 1 / 0));
      }
      function Wf(e, t, n, r) {
        ("number" === typeof n &&
          ((r = n),
          (n = !1),
          console.log(
            "THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument.",
          )),
          Yr.call(this, e, t, n),
          (this.meshPerAttribute = r || 1));
      }
      function Xf(e) {
        zh.call(this, e);
      }
      ((Kf.prototype = Object.assign(Object.create(di.prototype), {
        constructor: Kf,
        isInstancedBufferGeometry: !0,
        copy: function (e) {
          return (
            di.prototype.copy.call(this, e),
            (this.instanceCount = e.instanceCount),
            this
          );
        },
        clone: function () {
          return new this.constructor().copy(this);
        },
        toJSON: function () {
          var e = di.prototype.toJSON.call(this);
          return (
            (e.instanceCount = this.instanceCount),
            (e.isInstancedBufferGeometry = !0),
            e
          );
        },
      })),
        (Wf.prototype = Object.assign(Object.create(Yr.prototype), {
          constructor: Wf,
          isInstancedBufferAttribute: !0,
          copy: function (e) {
            return (
              Yr.prototype.copy.call(this, e),
              (this.meshPerAttribute = e.meshPerAttribute),
              this
            );
          },
          toJSON: function () {
            var e = Yr.prototype.toJSON.call(this);
            return (
              (e.meshPerAttribute = this.meshPerAttribute),
              (e.isInstancedBufferAttribute = !0),
              e
            );
          },
        })),
        (Xf.prototype = Object.assign(Object.create(zh.prototype), {
          constructor: Xf,
          load: function (e, t, n, r) {
            var i = this,
              A = new Kh(i.manager);
            (A.setPath(i.path),
              A.load(
                e,
                function (n) {
                  try {
                    t(i.parse(JSON.parse(n)));
                  } catch (A) {
                    (r ? r(A) : console.log(A), i.manager.itemError(e));
                  }
                },
                n,
                r,
              ));
          },
          parse: function (e) {
            var t = e.isInstancedBufferGeometry ? new Kf() : new di(),
              n = e.data.index;
            if (void 0 !== n) {
              var r = new Yf[n.type](n.array);
              t.setIndex(new Yr(r, 1));
            }
            var i = e.data.attributes;
            for (var A in i) {
              var o = i[A],
                a =
                  ((r = new Yf[o.type](o.array)),
                  o.isInstancedBufferAttribute ? Wf : Yr),
                s = new a(r, o.itemSize, o.normalized);
              (void 0 !== o.name && (s.name = o.name), t.setAttribute(A, s));
            }
            var c = e.data.morphAttributes;
            if (c)
              for (var A in c) {
                for (var u = c[A], l = [], h = 0, f = u.length; h < f; h++) {
                  ((o = u[h]),
                    (r = new Yf[o.type](o.array)),
                    (s = new Yr(r, o.itemSize, o.normalized)));
                  (void 0 !== o.name && (s.name = o.name), l.push(s));
                }
                t.morphAttributes[A] = l;
              }
            var d = e.data.morphTargetsRelative;
            d && (t.morphTargetsRelative = !0);
            var p = e.data.groups || e.data.drawcalls || e.data.offsets;
            if (void 0 !== p) {
              h = 0;
              for (var g = p.length; h !== g; ++h) {
                var m = p[h];
                t.addGroup(m.start, m.count, m.materialIndex);
              }
            }
            var v = e.data.boundingSphere;
            if (void 0 !== v) {
              var y = new _n();
              (void 0 !== v.center && y.fromArray(v.center),
                (t.boundingSphere = new fr(y, v.radius)));
            }
            return (
              e.name && (t.name = e.name),
              e.userData && (t.userData = e.userData),
              t
            );
          },
        })));
      var Yf = {
        Int8Array: Int8Array,
        Uint8Array: Uint8Array,
        Uint8ClampedArray:
          "undefined" !== typeof Uint8ClampedArray
            ? Uint8ClampedArray
            : Uint8Array,
        Int16Array: Int16Array,
        Uint16Array: Uint16Array,
        Int32Array: Int32Array,
        Uint32Array: Uint32Array,
        Float32Array: Float32Array,
        Float64Array: Float64Array,
      };
      function Jf(e) {
        zh.call(this, e);
      }
      Jf.prototype = Object.assign(Object.create(zh.prototype), {
        constructor: Jf,
        load: function (e, t, n, r) {
          var i = this,
            A = "" === this.path ? jf.extractUrlBase(e) : this.path;
          this.resourcePath = this.resourcePath || A;
          var o = new Kh(i.manager);
          (o.setPath(this.path),
            o.load(
              e,
              function (n) {
                var A = null;
                try {
                  A = JSON.parse(n);
                } catch (a) {
                  return (
                    void 0 !== r && r(a),
                    void console.log(
                      "THREE:ObjectLoader: Can't parse " + e + ".",
                      a.message,
                    )
                  );
                }
                var o = A.metadata;
                void 0 !== o &&
                void 0 !== o.type &&
                "geometry" !== o.type.toLowerCase()
                  ? i.parse(A, t)
                  : console.log("THREE.ObjectLoader: Can't load " + e);
              },
              n,
              r,
            ));
        },
        parse: function (e, t) {
          var n = this.parseShape(e.shapes),
            r = this.parseGeometries(e.geometries, n),
            i = this.parseImages(e.images, function () {
              void 0 !== t && t(a);
            }),
            A = this.parseTextures(e.textures, i),
            o = this.parseMaterials(e.materials, A),
            a = this.parseObject(e.object, r, o);
          return (
            e.animations && (a.animations = this.parseAnimations(e.animations)),
            (void 0 !== e.images && 0 !== e.images.length) ||
              (void 0 !== t && t(a)),
            a
          );
        },
        parseShape: function (e) {
          var t = {};
          if (void 0 !== e)
            for (var n = 0, r = e.length; n < r; n++) {
              var i = new Ff().fromJSON(e[n]);
              t[i.uuid] = i;
            }
          return t;
        },
        parseGeometries: function (e, t) {
          var n = {};
          if (void 0 !== e)
            for (var r = new Xf(), i = 0, A = e.length; i < A; i++) {
              var o,
                a = e[i];
              switch (a.type) {
                case "PlaneGeometry":
                case "PlaneBufferGeometry":
                  o = new fh[a.type](
                    a.width,
                    a.height,
                    a.widthSegments,
                    a.heightSegments,
                  );
                  break;
                case "BoxGeometry":
                case "BoxBufferGeometry":
                case "CubeGeometry":
                  o = new fh[a.type](
                    a.width,
                    a.height,
                    a.depth,
                    a.widthSegments,
                    a.heightSegments,
                    a.depthSegments,
                  );
                  break;
                case "CircleGeometry":
                case "CircleBufferGeometry":
                  o = new fh[a.type](
                    a.radius,
                    a.segments,
                    a.thetaStart,
                    a.thetaLength,
                  );
                  break;
                case "CylinderGeometry":
                case "CylinderBufferGeometry":
                  o = new fh[a.type](
                    a.radiusTop,
                    a.radiusBottom,
                    a.height,
                    a.radialSegments,
                    a.heightSegments,
                    a.openEnded,
                    a.thetaStart,
                    a.thetaLength,
                  );
                  break;
                case "ConeGeometry":
                case "ConeBufferGeometry":
                  o = new fh[a.type](
                    a.radius,
                    a.height,
                    a.radialSegments,
                    a.heightSegments,
                    a.openEnded,
                    a.thetaStart,
                    a.thetaLength,
                  );
                  break;
                case "SphereGeometry":
                case "SphereBufferGeometry":
                  o = new fh[a.type](
                    a.radius,
                    a.widthSegments,
                    a.heightSegments,
                    a.phiStart,
                    a.phiLength,
                    a.thetaStart,
                    a.thetaLength,
                  );
                  break;
                case "DodecahedronGeometry":
                case "DodecahedronBufferGeometry":
                case "IcosahedronGeometry":
                case "IcosahedronBufferGeometry":
                case "OctahedronGeometry":
                case "OctahedronBufferGeometry":
                case "TetrahedronGeometry":
                case "TetrahedronBufferGeometry":
                  o = new fh[a.type](a.radius, a.detail);
                  break;
                case "RingGeometry":
                case "RingBufferGeometry":
                  o = new fh[a.type](
                    a.innerRadius,
                    a.outerRadius,
                    a.thetaSegments,
                    a.phiSegments,
                    a.thetaStart,
                    a.thetaLength,
                  );
                  break;
                case "TorusGeometry":
                case "TorusBufferGeometry":
                  o = new fh[a.type](
                    a.radius,
                    a.tube,
                    a.radialSegments,
                    a.tubularSegments,
                    a.arc,
                  );
                  break;
                case "TorusKnotGeometry":
                case "TorusKnotBufferGeometry":
                  o = new fh[a.type](
                    a.radius,
                    a.tube,
                    a.tubularSegments,
                    a.radialSegments,
                    a.p,
                    a.q,
                  );
                  break;
                case "TubeGeometry":
                case "TubeBufferGeometry":
                  o = new fh[a.type](
                    new Ef[a.path.type]().fromJSON(a.path),
                    a.tubularSegments,
                    a.radius,
                    a.radialSegments,
                    a.closed,
                  );
                  break;
                case "LatheGeometry":
                case "LatheBufferGeometry":
                  o = new fh[a.type](
                    a.points,
                    a.segments,
                    a.phiStart,
                    a.phiLength,
                  );
                  break;
                case "PolyhedronGeometry":
                case "PolyhedronBufferGeometry":
                  o = new fh[a.type](
                    a.vertices,
                    a.indices,
                    a.radius,
                    a.details,
                  );
                  break;
                case "ShapeGeometry":
                case "ShapeBufferGeometry":
                  for (var s = [], c = 0, u = a.shapes.length; c < u; c++) {
                    var l = t[a.shapes[c]];
                    s.push(l);
                  }
                  o = new fh[a.type](s, a.curveSegments);
                  break;
                case "ExtrudeGeometry":
                case "ExtrudeBufferGeometry":
                  for (s = [], c = 0, u = a.shapes.length; c < u; c++) {
                    l = t[a.shapes[c]];
                    s.push(l);
                  }
                  var h = a.options.extrudePath;
                  (void 0 !== h &&
                    (a.options.extrudePath = new Ef[h.type]().fromJSON(h)),
                    (o = new fh[a.type](s, a.options)));
                  break;
                case "BufferGeometry":
                case "InstancedBufferGeometry":
                  o = r.parse(a);
                  break;
                case "Geometry":
                  console.log(
                    'THREE.ObjectLoader: Loading "Geometry" is not supported anymore.',
                  );
                  break;
                default:
                  console.warn(
                    'THREE.ObjectLoader: Unsupported geometry type "' +
                      a.type +
                      '"',
                  );
                  continue;
              }
              ((o.uuid = a.uuid),
                void 0 !== a.name && (o.name = a.name),
                !0 === o.isBufferGeometry &&
                  void 0 !== a.userData &&
                  (o.userData = a.userData),
                (n[a.uuid] = o));
            }
          return n;
        },
        parseMaterials: function (e, t) {
          var n = {},
            r = {};
          if (void 0 !== e) {
            var i = new zf();
            i.setTextures(t);
            for (var A = 0, o = e.length; A < o; A++) {
              var a = e[A];
              if ("MultiMaterial" === a.type) {
                for (var s = [], c = 0; c < a.materials.length; c++) {
                  var u = a.materials[c];
                  (void 0 === n[u.uuid] && (n[u.uuid] = i.parse(u)),
                    s.push(n[u.uuid]));
                }
                r[a.uuid] = s;
              } else
                (void 0 === n[a.uuid] && (n[a.uuid] = i.parse(a)),
                  (r[a.uuid] = n[a.uuid]));
            }
          }
          return r;
        },
        parseAnimations: function (e) {
          for (var t = [], n = 0; n < e.length; n++) {
            var r = e[n],
              i = Ph.parse(r);
            (void 0 !== r.uuid && (i.uuid = r.uuid), t.push(i));
          }
          return t;
        },
        parseImages: function (e, t) {
          var n = this,
            r = {};
          function i(e) {
            return (
              n.manager.itemStart(e),
              o.load(
                e,
                function () {
                  n.manager.itemEnd(e);
                },
                void 0,
                function () {
                  (n.manager.itemError(e), n.manager.itemEnd(e));
                },
              )
            );
          }
          if (void 0 !== e && e.length > 0) {
            var A = new Gh(t),
              o = new Jh(A);
            o.setCrossOrigin(this.crossOrigin);
            for (var a = 0, s = e.length; a < s; a++) {
              var c = e[a],
                u = c.url;
              if (Array.isArray(u)) {
                r[c.uuid] = [];
                for (var l = 0, h = u.length; l < h; l++) {
                  var f = u[l],
                    d = /^(\/\/)|([a-z]+:(\/\/)?)/i.test(f)
                      ? f
                      : n.resourcePath + f;
                  r[c.uuid].push(i(d));
                }
              } else {
                d = /^(\/\/)|([a-z]+:(\/\/)?)/i.test(c.url)
                  ? c.url
                  : n.resourcePath + c.url;
                r[c.uuid] = i(d);
              }
            }
          }
          return r;
        },
        parseTextures: function (e, t) {
          function n(e, t) {
            return "number" === typeof e
              ? e
              : (console.warn(
                  "THREE.ObjectLoader.parseTexture: Constant should be in numeric form.",
                  e,
                ),
                t[e]);
          }
          var r = {};
          if (void 0 !== e)
            for (var i = 0, A = e.length; i < A; i++) {
              var o,
                a = e[i];
              (void 0 === a.image &&
                console.warn(
                  'THREE.ObjectLoader: No "image" specified for',
                  a.uuid,
                ),
                void 0 === t[a.image] &&
                  console.warn("THREE.ObjectLoader: Undefined image", a.image),
                (o = Array.isArray(t[a.image])
                  ? new Ga(t[a.image])
                  : new gn(t[a.image])),
                (o.needsUpdate = !0),
                (o.uuid = a.uuid),
                void 0 !== a.name && (o.name = a.name),
                void 0 !== a.mapping && (o.mapping = n(a.mapping, Zf)),
                void 0 !== a.offset && o.offset.fromArray(a.offset),
                void 0 !== a.repeat && o.repeat.fromArray(a.repeat),
                void 0 !== a.center && o.center.fromArray(a.center),
                void 0 !== a.rotation && (o.rotation = a.rotation),
                void 0 !== a.wrap &&
                  ((o.wrapS = n(a.wrap[0], $f)), (o.wrapT = n(a.wrap[1], $f))),
                void 0 !== a.format && (o.format = a.format),
                void 0 !== a.type && (o.type = a.type),
                void 0 !== a.encoding && (o.encoding = a.encoding),
                void 0 !== a.minFilter && (o.minFilter = n(a.minFilter, ed)),
                void 0 !== a.magFilter && (o.magFilter = n(a.magFilter, ed)),
                void 0 !== a.anisotropy && (o.anisotropy = a.anisotropy),
                void 0 !== a.flipY && (o.flipY = a.flipY),
                void 0 !== a.premultiplyAlpha &&
                  (o.premultiplyAlpha = a.premultiplyAlpha),
                void 0 !== a.unpackAlignment &&
                  (o.unpackAlignment = a.unpackAlignment),
                (r[a.uuid] = o));
            }
          return r;
        },
        parseObject: function (e, t, n) {
          var r;
          function i(e) {
            return (
              void 0 === t[e] &&
                console.warn("THREE.ObjectLoader: Undefined geometry", e),
              t[e]
            );
          }
          function A(e) {
            if (void 0 !== e) {
              if (Array.isArray(e)) {
                for (var t = [], r = 0, i = e.length; r < i; r++) {
                  var A = e[r];
                  (void 0 === n[A] &&
                    console.warn("THREE.ObjectLoader: Undefined material", A),
                    t.push(n[A]));
                }
                return t;
              }
              return (
                void 0 === n[e] &&
                  console.warn("THREE.ObjectLoader: Undefined material", e),
                n[e]
              );
            }
          }
          switch (e.type) {
            case "Scene":
              ((r = new Jn()),
                void 0 !== e.background &&
                  Number.isInteger(e.background) &&
                  (r.background = new Nr(e.background)),
                void 0 !== e.fog &&
                  ("Fog" === e.fog.type
                    ? (r.fog = new zc(e.fog.color, e.fog.near, e.fog.far))
                    : "FogExp2" === e.fog.type &&
                      (r.fog = new Vc(e.fog.color, e.fog.density))));
              break;
            case "PerspectiveCamera":
              ((r = new Yi(e.fov, e.aspect, e.near, e.far)),
                void 0 !== e.focus && (r.focus = e.focus),
                void 0 !== e.zoom && (r.zoom = e.zoom),
                void 0 !== e.filmGauge && (r.filmGauge = e.filmGauge),
                void 0 !== e.filmOffset && (r.filmOffset = e.filmOffset),
                void 0 !== e.view && (r.view = Object.assign({}, e.view)));
              break;
            case "OrthographicCamera":
              ((r = new Rf(e.left, e.right, e.top, e.bottom, e.near, e.far)),
                void 0 !== e.zoom && (r.zoom = e.zoom),
                void 0 !== e.view && (r.view = Object.assign({}, e.view)));
              break;
            case "AmbientLight":
              r = new Nf(e.color, e.intensity);
              break;
            case "DirectionalLight":
              r = new Df(e.color, e.intensity);
              break;
            case "PointLight":
              r = new Of(e.color, e.intensity, e.distance, e.decay);
              break;
            case "RectAreaLight":
              r = new kf(e.color, e.intensity, e.width, e.height);
              break;
            case "SpotLight":
              r = new If(
                e.color,
                e.intensity,
                e.distance,
                e.angle,
                e.penumbra,
                e.decay,
              );
              break;
            case "HemisphereLight":
              r = new Uf(e.color, e.groundColor, e.intensity);
              break;
            case "LightProbe":
              r = new Vf().fromJSON(e);
              break;
            case "SkinnedMesh":
              console.warn(
                "THREE.ObjectLoader.parseObject() does not support SkinnedMesh yet.",
              );
            case "Mesh":
              var o = i(e.geometry),
                a = A(e.material);
              r = new Qi(o, a);
              break;
            case "InstancedMesh":
              ((o = i(e.geometry)), (a = A(e.material)));
              var s = e.count,
                c = e.instanceMatrix;
              ((r = new bu(o, a, s)),
                (r.instanceMatrix = new Yr(new Float32Array(c.array), 16)));
              break;
            case "LOD":
              r = new hu();
              break;
            case "Line":
              r = new Fu(i(e.geometry), A(e.material), e.mode);
              break;
            case "LineLoop":
              r = new Lu(i(e.geometry), A(e.material));
              break;
            case "LineSegments":
              r = new Qu(i(e.geometry), A(e.material));
              break;
            case "PointCloud":
            case "Points":
              r = new Du(i(e.geometry), A(e.material));
              break;
            case "Sprite":
              r = new su(A(e.material));
              break;
            case "Group":
              r = new Pc();
              break;
            default:
              r = new Yn();
          }
          if (
            ((r.uuid = e.uuid),
            void 0 !== e.name && (r.name = e.name),
            void 0 !== e.matrix
              ? (r.matrix.fromArray(e.matrix),
                void 0 !== e.matrixAutoUpdate &&
                  (r.matrixAutoUpdate = e.matrixAutoUpdate),
                r.matrixAutoUpdate &&
                  r.matrix.decompose(r.position, r.quaternion, r.scale))
              : (void 0 !== e.position && r.position.fromArray(e.position),
                void 0 !== e.rotation && r.rotation.fromArray(e.rotation),
                void 0 !== e.quaternion && r.quaternion.fromArray(e.quaternion),
                void 0 !== e.scale && r.scale.fromArray(e.scale)),
            void 0 !== e.castShadow && (r.castShadow = e.castShadow),
            void 0 !== e.receiveShadow && (r.receiveShadow = e.receiveShadow),
            e.shadow &&
              (void 0 !== e.shadow.bias && (r.shadow.bias = e.shadow.bias),
              void 0 !== e.shadow.radius && (r.shadow.radius = e.shadow.radius),
              void 0 !== e.shadow.mapSize &&
                r.shadow.mapSize.fromArray(e.shadow.mapSize),
              void 0 !== e.shadow.camera &&
                (r.shadow.camera = this.parseObject(e.shadow.camera))),
            void 0 !== e.visible && (r.visible = e.visible),
            void 0 !== e.frustumCulled && (r.frustumCulled = e.frustumCulled),
            void 0 !== e.renderOrder && (r.renderOrder = e.renderOrder),
            void 0 !== e.userData && (r.userData = e.userData),
            void 0 !== e.layers && (r.layers.mask = e.layers),
            void 0 !== e.children)
          )
            for (var u = e.children, l = 0; l < u.length; l++)
              r.add(this.parseObject(u[l], t, n));
          if ("LOD" === e.type) {
            void 0 !== e.autoUpdate && (r.autoUpdate = e.autoUpdate);
            for (var h = e.levels, f = 0; f < h.length; f++) {
              var d = h[f],
                p = r.getObjectByProperty("uuid", d.object);
              void 0 !== p && r.addLevel(p, d.distance);
            }
          }
          return r;
        },
      });
      var qf,
        Zf = {
          UVMapping: te,
          CubeReflectionMapping: ne,
          CubeRefractionMapping: re,
          EquirectangularReflectionMapping: ie,
          EquirectangularRefractionMapping: Ae,
          SphericalReflectionMapping: oe,
          CubeUVReflectionMapping: ae,
          CubeUVRefractionMapping: se,
        },
        $f = {
          RepeatWrapping: ce,
          ClampToEdgeWrapping: ue,
          MirroredRepeatWrapping: le,
        },
        ed = {
          NearestFilter: he,
          NearestMipmapNearestFilter: fe,
          NearestMipmapLinearFilter: de,
          LinearFilter: pe,
          LinearMipmapNearestFilter: ge,
          LinearMipmapLinearFilter: me,
        };
      function td(e) {
        ("undefined" === typeof createImageBitmap &&
          console.warn(
            "THREE.ImageBitmapLoader: createImageBitmap() not supported.",
          ),
          "undefined" === typeof fetch &&
            console.warn("THREE.ImageBitmapLoader: fetch() not supported."),
          zh.call(this, e),
          (this.options = void 0));
      }
      function nd() {
        ((this.type = "ShapePath"),
          (this.color = new Nr()),
          (this.subPaths = []),
          (this.currentPath = null));
      }
      function rd(e) {
        ((this.type = "Font"), (this.data = e));
      }
      function id(e, t, n) {
        for (
          var r = Array.from ? Array.from(e) : String(e).split(""),
            i = t / n.resolution,
            A =
              (n.boundingBox.yMax - n.boundingBox.yMin + n.underlineThickness) *
              i,
            o = [],
            a = 0,
            s = 0,
            c = 0;
          c < r.length;
          c++
        ) {
          var u = r[c];
          if ("\n" === u) ((a = 0), (s -= A));
          else {
            var l = Ad(u, i, a, s, n);
            ((a += l.offsetX), o.push(l.path));
          }
        }
        return o;
      }
      function Ad(e, t, n, r, i) {
        var A = i.glyphs[e] || i.glyphs["?"];
        if (A) {
          var o,
            a,
            s,
            c,
            u,
            l,
            h,
            f,
            d = new nd();
          if (A.o)
            for (
              var p = A._cachedOutline || (A._cachedOutline = A.o.split(" ")),
                g = 0,
                m = p.length;
              g < m;
            ) {
              var v = p[g++];
              switch (v) {
                case "m":
                  ((o = p[g++] * t + n), (a = p[g++] * t + r), d.moveTo(o, a));
                  break;
                case "l":
                  ((o = p[g++] * t + n), (a = p[g++] * t + r), d.lineTo(o, a));
                  break;
                case "q":
                  ((s = p[g++] * t + n),
                    (c = p[g++] * t + r),
                    (u = p[g++] * t + n),
                    (l = p[g++] * t + r),
                    d.quadraticCurveTo(u, l, s, c));
                  break;
                case "b":
                  ((s = p[g++] * t + n),
                    (c = p[g++] * t + r),
                    (u = p[g++] * t + n),
                    (l = p[g++] * t + r),
                    (h = p[g++] * t + n),
                    (f = p[g++] * t + r),
                    d.bezierCurveTo(u, l, h, f, s, c));
                  break;
              }
            }
          return { offsetX: A.ha * t, path: d };
        }
        console.log(
          'THREE.Font: character "' +
            e +
            '" does not exists in font family ' +
            i.familyName +
            ".",
        );
      }
      function od(e) {
        zh.call(this, e);
      }
      ((td.prototype = Object.assign(Object.create(zh.prototype), {
        constructor: td,
        setOptions: function (e) {
          return ((this.options = e), this);
        },
        load: function (e, t, n, r) {
          (void 0 === e && (e = ""),
            void 0 !== this.path && (e = this.path + e),
            (e = this.manager.resolveURL(e)));
          var i = this,
            A = kh.get(e);
          if (void 0 !== A)
            return (
              i.manager.itemStart(e),
              setTimeout(function () {
                (t && t(A), i.manager.itemEnd(e));
              }, 0),
              A
            );
          (fetch(e)
            .then(function (e) {
              return e.blob();
            })
            .then(function (e) {
              return void 0 === i.options
                ? createImageBitmap(e)
                : createImageBitmap(e, i.options);
            })
            .then(function (n) {
              (kh.add(e, n), t && t(n), i.manager.itemEnd(e));
            })
            .catch(function (t) {
              (r && r(t), i.manager.itemError(e), i.manager.itemEnd(e));
            }),
            i.manager.itemStart(e));
        },
      })),
        Object.assign(nd.prototype, {
          moveTo: function (e, t) {
            return (
              (this.currentPath = new Sf()),
              this.subPaths.push(this.currentPath),
              this.currentPath.moveTo(e, t),
              this
            );
          },
          lineTo: function (e, t) {
            return (this.currentPath.lineTo(e, t), this);
          },
          quadraticCurveTo: function (e, t, n, r) {
            return (this.currentPath.quadraticCurveTo(e, t, n, r), this);
          },
          bezierCurveTo: function (e, t, n, r, i, A) {
            return (this.currentPath.bezierCurveTo(e, t, n, r, i, A), this);
          },
          splineThru: function (e) {
            return (this.currentPath.splineThru(e), this);
          },
          toShapes: function (e, t) {
            function n(e) {
              for (var t = [], n = 0, r = e.length; n < r; n++) {
                var i = e[n],
                  A = new Ff();
                ((A.curves = i.curves), t.push(A));
              }
              return t;
            }
            function r(e, t) {
              for (var n = t.length, r = !1, i = n - 1, A = 0; A < n; i = A++) {
                var o = t[i],
                  a = t[A],
                  s = a.x - o.x,
                  c = a.y - o.y;
                if (Math.abs(c) > Number.EPSILON) {
                  if (
                    (c < 0 && ((o = t[A]), (s = -s), (a = t[i]), (c = -c)),
                    e.y < o.y || e.y > a.y)
                  )
                    continue;
                  if (e.y === o.y) {
                    if (e.x === o.x) return !0;
                  } else {
                    var u = c * (e.x - o.x) - s * (e.y - o.y);
                    if (0 === u) return !0;
                    if (u < 0) continue;
                    r = !r;
                  }
                } else {
                  if (e.y !== o.y) continue;
                  if ((a.x <= e.x && e.x <= o.x) || (o.x <= e.x && e.x <= a.x))
                    return !0;
                }
              }
              return r;
            }
            var i = Gl.isClockWise,
              A = this.subPaths;
            if (0 === A.length) return [];
            if (!0 === t) return n(A);
            var o,
              a,
              s,
              c = [];
            if (1 === A.length)
              return (
                (a = A[0]),
                (s = new Ff()),
                (s.curves = a.curves),
                c.push(s),
                c
              );
            var u = !i(A[0].getPoints());
            u = e ? !u : u;
            var l,
              h,
              f = [],
              d = [],
              p = [],
              g = 0;
            ((d[g] = void 0), (p[g] = []));
            for (var m = 0, v = A.length; m < v; m++)
              ((a = A[m]),
                (l = a.getPoints()),
                (o = i(l)),
                (o = e ? !o : o),
                o
                  ? (!u && d[g] && g++,
                    (d[g] = { s: new Ff(), p: l }),
                    (d[g].s.curves = a.curves),
                    u && g++,
                    (p[g] = []))
                  : p[g].push({ h: a, p: l[0] }));
            if (!d[0]) return n(A);
            if (d.length > 1) {
              for (var y = !1, w = [], B = 0, b = d.length; B < b; B++)
                f[B] = [];
              for (B = 0, b = d.length; B < b; B++)
                for (var _ = p[B], x = 0; x < _.length; x++) {
                  for (var C = _[x], E = !0, M = 0; M < d.length; M++)
                    r(C.p, d[M].p) &&
                      (B !== M && w.push({ froms: B, tos: M, hole: x }),
                      E ? ((E = !1), f[M].push(C)) : (y = !0));
                  E && f[B].push(C);
                }
              w.length > 0 && (y || (p = f));
            }
            m = 0;
            for (var S = d.length; m < S; m++) {
              ((s = d[m].s), c.push(s), (h = p[m]));
              for (var F = 0, T = h.length; F < T; F++) s.holes.push(h[F].h);
            }
            return c;
          },
        }),
        Object.assign(rd.prototype, {
          isFont: !0,
          generateShapes: function (e, t) {
            void 0 === t && (t = 100);
            for (
              var n = [], r = id(e, t, this.data), i = 0, A = r.length;
              i < A;
              i++
            )
              Array.prototype.push.apply(n, r[i].toShapes());
            return n;
          },
        }),
        (od.prototype = Object.assign(Object.create(zh.prototype), {
          constructor: od,
          load: function (e, t, n, r) {
            var i = this,
              A = new Kh(this.manager);
            (A.setPath(this.path),
              A.load(
                e,
                function (e) {
                  var n;
                  try {
                    n = JSON.parse(e);
                  } catch (A) {
                    (console.warn(
                      "THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead.",
                    ),
                      (n = JSON.parse(e.substring(65, e.length - 2))));
                  }
                  var r = i.parse(n);
                  t && t(r);
                },
                n,
                r,
              ));
          },
          parse: function (e) {
            return new rd(e);
          },
        })));
      var ad = {
        getContext: function () {
          return (
            void 0 === qf &&
              (qf = new (window.AudioContext || window.webkitAudioContext)()),
            qf
          );
        },
        setContext: function (e) {
          qf = e;
        },
      };
      function sd(e) {
        zh.call(this, e);
      }
      function cd(e, t, n) {
        Vf.call(this, void 0, n);
        var r = new Nr().set(e),
          i = new Nr().set(t),
          A = new _n(r.r, r.g, r.b),
          o = new _n(i.r, i.g, i.b),
          a = Math.sqrt(Math.PI),
          s = a * Math.sqrt(0.75);
        (this.sh.coefficients[0].copy(A).add(o).multiplyScalar(a),
          this.sh.coefficients[1].copy(A).sub(o).multiplyScalar(s));
      }
      function ud(e, t) {
        Vf.call(this, void 0, t);
        var n = new Nr().set(e);
        this.sh.coefficients[0]
          .set(n.r, n.g, n.b)
          .multiplyScalar(2 * Math.sqrt(Math.PI));
      }
      ((sd.prototype = Object.assign(Object.create(zh.prototype), {
        constructor: sd,
        load: function (e, t, n, r) {
          var i = this,
            A = new Kh(i.manager);
          (A.setResponseType("arraybuffer"),
            A.setPath(i.path),
            A.load(
              e,
              function (n) {
                try {
                  var A = n.slice(0),
                    o = ad.getContext();
                  o.decodeAudioData(A, function (e) {
                    t(e);
                  });
                } catch (a) {
                  (r ? r(a) : console.log(a), i.manager.itemError(e));
                }
              },
              n,
              r,
            ));
        },
      })),
        (cd.prototype = Object.assign(Object.create(Vf.prototype), {
          constructor: cd,
          isHemisphereLightProbe: !0,
          copy: function (e) {
            return (Vf.prototype.copy.call(this, e), this);
          },
          toJSON: function (e) {
            var t = Vf.prototype.toJSON.call(this, e);
            return t;
          },
        })),
        (ud.prototype = Object.assign(Object.create(Vf.prototype), {
          constructor: ud,
          isAmbientLightProbe: !0,
          copy: function (e) {
            return (Vf.prototype.copy.call(this, e), this);
          },
          toJSON: function (e) {
            var t = Vf.prototype.toJSON.call(this, e);
            return t;
          },
        })));
      var ld = new Un(),
        hd = new Un();
      function fd() {
        ((this.type = "StereoCamera"),
          (this.aspect = 1),
          (this.eyeSep = 0.064),
          (this.cameraL = new Yi()),
          this.cameraL.layers.enable(1),
          (this.cameraL.matrixAutoUpdate = !1),
          (this.cameraR = new Yi()),
          this.cameraR.layers.enable(2),
          (this.cameraR.matrixAutoUpdate = !1),
          (this._cache = {
            focus: null,
            fov: null,
            aspect: null,
            near: null,
            far: null,
            zoom: null,
            eyeSep: null,
          }));
      }
      function dd(e) {
        ((this.autoStart = void 0 === e || e),
          (this.startTime = 0),
          (this.oldTime = 0),
          (this.elapsedTime = 0),
          (this.running = !1));
      }
      (Object.assign(fd.prototype, {
        update: function (e) {
          var t = this._cache,
            n =
              t.focus !== e.focus ||
              t.fov !== e.fov ||
              t.aspect !== e.aspect * this.aspect ||
              t.near !== e.near ||
              t.far !== e.far ||
              t.zoom !== e.zoom ||
              t.eyeSep !== this.eyeSep;
          if (n) {
            ((t.focus = e.focus),
              (t.fov = e.fov),
              (t.aspect = e.aspect * this.aspect),
              (t.near = e.near),
              (t.far = e.far),
              (t.zoom = e.zoom),
              (t.eyeSep = this.eyeSep));
            var r,
              i,
              A = e.projectionMatrix.clone(),
              o = t.eyeSep / 2,
              a = (o * t.near) / t.focus,
              s = (t.near * Math.tan(ln.DEG2RAD * t.fov * 0.5)) / t.zoom;
            ((hd.elements[12] = -o),
              (ld.elements[12] = o),
              (r = -s * t.aspect + a),
              (i = s * t.aspect + a),
              (A.elements[0] = (2 * t.near) / (i - r)),
              (A.elements[8] = (i + r) / (i - r)),
              this.cameraL.projectionMatrix.copy(A),
              (r = -s * t.aspect - a),
              (i = s * t.aspect - a),
              (A.elements[0] = (2 * t.near) / (i - r)),
              (A.elements[8] = (i + r) / (i - r)),
              this.cameraR.projectionMatrix.copy(A));
          }
          (this.cameraL.matrixWorld.copy(e.matrixWorld).multiply(hd),
            this.cameraR.matrixWorld.copy(e.matrixWorld).multiply(ld));
        },
      }),
        Object.assign(dd.prototype, {
          start: function () {
            ((this.startTime = (
              "undefined" === typeof performance ? Date : performance
            ).now()),
              (this.oldTime = this.startTime),
              (this.elapsedTime = 0),
              (this.running = !0));
          },
          stop: function () {
            (this.getElapsedTime(), (this.running = !1), (this.autoStart = !1));
          },
          getElapsedTime: function () {
            return (this.getDelta(), this.elapsedTime);
          },
          getDelta: function () {
            var e = 0;
            if (this.autoStart && !this.running) return (this.start(), 0);
            if (this.running) {
              var t = (
                "undefined" === typeof performance ? Date : performance
              ).now();
              ((e = (t - this.oldTime) / 1e3),
                (this.oldTime = t),
                (this.elapsedTime += e));
            }
            return e;
          },
        }));
      var pd = new _n(),
        gd = new wn(),
        md = new _n(),
        vd = new _n();
      function yd() {
        (Yn.call(this),
          (this.type = "AudioListener"),
          (this.context = ad.getContext()),
          (this.gain = this.context.createGain()),
          this.gain.connect(this.context.destination),
          (this.filter = null),
          (this.timeDelta = 0),
          (this._clock = new dd()));
      }
      function wd(e) {
        (Yn.call(this),
          (this.type = "Audio"),
          (this.listener = e),
          (this.context = e.context),
          (this.gain = this.context.createGain()),
          this.gain.connect(e.getInput()),
          (this.autoplay = !1),
          (this.buffer = null),
          (this.detune = 0),
          (this.loop = !1),
          (this.loopStart = 0),
          (this.loopEnd = 0),
          (this.offset = 0),
          (this.duration = void 0),
          (this.playbackRate = 1),
          (this.isPlaying = !1),
          (this.hasPlaybackControl = !0),
          (this.sourceType = "empty"),
          (this._startedAt = 0),
          (this._progress = 0),
          (this.filters = []));
      }
      ((yd.prototype = Object.assign(Object.create(Yn.prototype), {
        constructor: yd,
        getInput: function () {
          return this.gain;
        },
        removeFilter: function () {
          return (
            null !== this.filter &&
              (this.gain.disconnect(this.filter),
              this.filter.disconnect(this.context.destination),
              this.gain.connect(this.context.destination),
              (this.filter = null)),
            this
          );
        },
        getFilter: function () {
          return this.filter;
        },
        setFilter: function (e) {
          return (
            null !== this.filter
              ? (this.gain.disconnect(this.filter),
                this.filter.disconnect(this.context.destination))
              : this.gain.disconnect(this.context.destination),
            (this.filter = e),
            this.gain.connect(this.filter),
            this.filter.connect(this.context.destination),
            this
          );
        },
        getMasterVolume: function () {
          return this.gain.gain.value;
        },
        setMasterVolume: function (e) {
          return (
            this.gain.gain.setTargetAtTime(e, this.context.currentTime, 0.01),
            this
          );
        },
        updateMatrixWorld: function (e) {
          Yn.prototype.updateMatrixWorld.call(this, e);
          var t = this.context.listener,
            n = this.up;
          if (
            ((this.timeDelta = this._clock.getDelta()),
            this.matrixWorld.decompose(pd, gd, md),
            vd.set(0, 0, -1).applyQuaternion(gd),
            t.positionX)
          ) {
            var r = this.context.currentTime + this.timeDelta;
            (t.positionX.linearRampToValueAtTime(pd.x, r),
              t.positionY.linearRampToValueAtTime(pd.y, r),
              t.positionZ.linearRampToValueAtTime(pd.z, r),
              t.forwardX.linearRampToValueAtTime(vd.x, r),
              t.forwardY.linearRampToValueAtTime(vd.y, r),
              t.forwardZ.linearRampToValueAtTime(vd.z, r),
              t.upX.linearRampToValueAtTime(n.x, r),
              t.upY.linearRampToValueAtTime(n.y, r),
              t.upZ.linearRampToValueAtTime(n.z, r));
          } else
            (t.setPosition(pd.x, pd.y, pd.z),
              t.setOrientation(vd.x, vd.y, vd.z, n.x, n.y, n.z));
        },
      })),
        (wd.prototype = Object.assign(Object.create(Yn.prototype), {
          constructor: wd,
          getOutput: function () {
            return this.gain;
          },
          setNodeSource: function (e) {
            return (
              (this.hasPlaybackControl = !1),
              (this.sourceType = "audioNode"),
              (this.source = e),
              this.connect(),
              this
            );
          },
          setMediaElementSource: function (e) {
            return (
              (this.hasPlaybackControl = !1),
              (this.sourceType = "mediaNode"),
              (this.source = this.context.createMediaElementSource(e)),
              this.connect(),
              this
            );
          },
          setMediaStreamSource: function (e) {
            return (
              (this.hasPlaybackControl = !1),
              (this.sourceType = "mediaStreamNode"),
              (this.source = this.context.createMediaStreamSource(e)),
              this.connect(),
              this
            );
          },
          setBuffer: function (e) {
            return (
              (this.buffer = e),
              (this.sourceType = "buffer"),
              this.autoplay && this.play(),
              this
            );
          },
          play: function (e) {
            if ((void 0 === e && (e = 0), !0 !== this.isPlaying)) {
              if (!1 !== this.hasPlaybackControl) {
                this._startedAt = this.context.currentTime + e;
                var t = this.context.createBufferSource();
                return (
                  (t.buffer = this.buffer),
                  (t.loop = this.loop),
                  (t.loopStart = this.loopStart),
                  (t.loopEnd = this.loopEnd),
                  (t.onended = this.onEnded.bind(this)),
                  t.start(
                    this._startedAt,
                    this._progress + this.offset,
                    this.duration,
                  ),
                  (this.isPlaying = !0),
                  (this.source = t),
                  this.setDetune(this.detune),
                  this.setPlaybackRate(this.playbackRate),
                  this.connect()
                );
              }
              console.warn("THREE.Audio: this Audio has no playback control.");
            } else console.warn("THREE.Audio: Audio is already playing.");
          },
          pause: function () {
            if (!1 !== this.hasPlaybackControl)
              return (
                !0 === this.isPlaying &&
                  ((this._progress +=
                    Math.max(this.context.currentTime - this._startedAt, 0) *
                    this.playbackRate),
                  !0 === this.loop &&
                    (this._progress =
                      this._progress % (this.duration || this.buffer.duration)),
                  this.source.stop(),
                  (this.source.onended = null),
                  (this.isPlaying = !1)),
                this
              );
            console.warn("THREE.Audio: this Audio has no playback control.");
          },
          stop: function () {
            if (!1 !== this.hasPlaybackControl)
              return (
                (this._progress = 0),
                this.source.stop(),
                (this.source.onended = null),
                (this.isPlaying = !1),
                this
              );
            console.warn("THREE.Audio: this Audio has no playback control.");
          },
          connect: function () {
            if (this.filters.length > 0) {
              this.source.connect(this.filters[0]);
              for (var e = 1, t = this.filters.length; e < t; e++)
                this.filters[e - 1].connect(this.filters[e]);
              this.filters[this.filters.length - 1].connect(this.getOutput());
            } else this.source.connect(this.getOutput());
            return this;
          },
          disconnect: function () {
            if (this.filters.length > 0) {
              this.source.disconnect(this.filters[0]);
              for (var e = 1, t = this.filters.length; e < t; e++)
                this.filters[e - 1].disconnect(this.filters[e]);
              this.filters[this.filters.length - 1].disconnect(
                this.getOutput(),
              );
            } else this.source.disconnect(this.getOutput());
            return this;
          },
          getFilters: function () {
            return this.filters;
          },
          setFilters: function (e) {
            return (
              e || (e = []),
              !0 === this.isPlaying
                ? (this.disconnect(), (this.filters = e), this.connect())
                : (this.filters = e),
              this
            );
          },
          setDetune: function (e) {
            if (((this.detune = e), void 0 !== this.source.detune))
              return (
                !0 === this.isPlaying &&
                  this.source.detune.setTargetAtTime(
                    this.detune,
                    this.context.currentTime,
                    0.01,
                  ),
                this
              );
          },
          getDetune: function () {
            return this.detune;
          },
          getFilter: function () {
            return this.getFilters()[0];
          },
          setFilter: function (e) {
            return this.setFilters(e ? [e] : []);
          },
          setPlaybackRate: function (e) {
            if (!1 !== this.hasPlaybackControl)
              return (
                (this.playbackRate = e),
                !0 === this.isPlaying &&
                  this.source.playbackRate.setTargetAtTime(
                    this.playbackRate,
                    this.context.currentTime,
                    0.01,
                  ),
                this
              );
            console.warn("THREE.Audio: this Audio has no playback control.");
          },
          getPlaybackRate: function () {
            return this.playbackRate;
          },
          onEnded: function () {
            this.isPlaying = !1;
          },
          getLoop: function () {
            return !1 === this.hasPlaybackControl
              ? (console.warn(
                  "THREE.Audio: this Audio has no playback control.",
                ),
                !1)
              : this.loop;
          },
          setLoop: function (e) {
            if (!1 !== this.hasPlaybackControl)
              return (
                (this.loop = e),
                !0 === this.isPlaying && (this.source.loop = this.loop),
                this
              );
            console.warn("THREE.Audio: this Audio has no playback control.");
          },
          setLoopStart: function (e) {
            return ((this.loopStart = e), this);
          },
          setLoopEnd: function (e) {
            return ((this.loopEnd = e), this);
          },
          getVolume: function () {
            return this.gain.gain.value;
          },
          setVolume: function (e) {
            return (
              this.gain.gain.setTargetAtTime(e, this.context.currentTime, 0.01),
              this
            );
          },
        })));
      var Bd = new _n(),
        bd = new wn(),
        _d = new _n(),
        xd = new _n();
      function Cd(e) {
        (wd.call(this, e),
          (this.panner = this.context.createPanner()),
          (this.panner.panningModel = "HRTF"),
          this.panner.connect(this.gain));
      }
      function Ed(e, t) {
        ((this.analyser = e.context.createAnalyser()),
          (this.analyser.fftSize = void 0 !== t ? t : 2048),
          (this.data = new Uint8Array(this.analyser.frequencyBinCount)),
          e.getOutput().connect(this.analyser));
      }
      function Md(e, t, n) {
        var r, i, A;
        switch (((this.binding = e), (this.valueSize = n), t)) {
          case "quaternion":
            ((r = this._slerp),
              (i = this._slerpAdditive),
              (A = this._setAdditiveIdentityQuaternion),
              (this.buffer = new Float64Array(6 * n)),
              (this._workIndex = 5));
            break;
          case "string":
          case "bool":
            ((r = this._select),
              (i = this._select),
              (A = this._setAdditiveIdentityOther),
              (this.buffer = new Array(5 * n)));
            break;
          default:
            ((r = this._lerp),
              (i = this._lerpAdditive),
              (A = this._setAdditiveIdentityNumeric),
              (this.buffer = new Float64Array(5 * n)));
        }
        ((this._mixBufferRegion = r),
          (this._mixBufferRegionAdditive = i),
          (this._setIdentity = A),
          (this._origIndex = 3),
          (this._addIndex = 4),
          (this.cumulativeWeight = 0),
          (this.cumulativeWeightAdditive = 0),
          (this.useCount = 0),
          (this.referenceCount = 0));
      }
      ((Cd.prototype = Object.assign(Object.create(wd.prototype), {
        constructor: Cd,
        getOutput: function () {
          return this.panner;
        },
        getRefDistance: function () {
          return this.panner.refDistance;
        },
        setRefDistance: function (e) {
          return ((this.panner.refDistance = e), this);
        },
        getRolloffFactor: function () {
          return this.panner.rolloffFactor;
        },
        setRolloffFactor: function (e) {
          return ((this.panner.rolloffFactor = e), this);
        },
        getDistanceModel: function () {
          return this.panner.distanceModel;
        },
        setDistanceModel: function (e) {
          return ((this.panner.distanceModel = e), this);
        },
        getMaxDistance: function () {
          return this.panner.maxDistance;
        },
        setMaxDistance: function (e) {
          return ((this.panner.maxDistance = e), this);
        },
        setDirectionalCone: function (e, t, n) {
          return (
            (this.panner.coneInnerAngle = e),
            (this.panner.coneOuterAngle = t),
            (this.panner.coneOuterGain = n),
            this
          );
        },
        updateMatrixWorld: function (e) {
          if (
            (Yn.prototype.updateMatrixWorld.call(this, e),
            !0 !== this.hasPlaybackControl || !1 !== this.isPlaying)
          ) {
            (this.matrixWorld.decompose(Bd, bd, _d),
              xd.set(0, 0, 1).applyQuaternion(bd));
            var t = this.panner;
            if (t.positionX) {
              var n = this.context.currentTime + this.listener.timeDelta;
              (t.positionX.linearRampToValueAtTime(Bd.x, n),
                t.positionY.linearRampToValueAtTime(Bd.y, n),
                t.positionZ.linearRampToValueAtTime(Bd.z, n),
                t.orientationX.linearRampToValueAtTime(xd.x, n),
                t.orientationY.linearRampToValueAtTime(xd.y, n),
                t.orientationZ.linearRampToValueAtTime(xd.z, n));
            } else
              (t.setPosition(Bd.x, Bd.y, Bd.z),
                t.setOrientation(xd.x, xd.y, xd.z));
          }
        },
      })),
        Object.assign(Ed.prototype, {
          getFrequencyData: function () {
            return (this.analyser.getByteFrequencyData(this.data), this.data);
          },
          getAverageFrequency: function () {
            for (
              var e = 0, t = this.getFrequencyData(), n = 0;
              n < t.length;
              n++
            )
              e += t[n];
            return e / t.length;
          },
        }),
        Object.assign(Md.prototype, {
          accumulate: function (e, t) {
            var n = this.buffer,
              r = this.valueSize,
              i = e * r + r,
              A = this.cumulativeWeight;
            if (0 === A) {
              for (var o = 0; o !== r; ++o) n[i + o] = n[o];
              A = t;
            } else {
              A += t;
              var a = t / A;
              this._mixBufferRegion(n, i, 0, a, r);
            }
            this.cumulativeWeight = A;
          },
          accumulateAdditive: function (e) {
            var t = this.buffer,
              n = this.valueSize,
              r = n * this._addIndex;
            (0 === this.cumulativeWeightAdditive && this._setIdentity(),
              this._mixBufferRegionAdditive(t, r, 0, e, n),
              (this.cumulativeWeightAdditive += e));
          },
          apply: function (e) {
            var t = this.valueSize,
              n = this.buffer,
              r = e * t + t,
              i = this.cumulativeWeight,
              A = this.cumulativeWeightAdditive,
              o = this.binding;
            if (
              ((this.cumulativeWeight = 0),
              (this.cumulativeWeightAdditive = 0),
              i < 1)
            ) {
              var a = t * this._origIndex;
              this._mixBufferRegion(n, r, a, 1 - i, t);
            }
            A > 0 &&
              this._mixBufferRegionAdditive(n, r, this._addIndex * t, 1, t);
            for (var s = t, c = t + t; s !== c; ++s)
              if (n[s] !== n[s + t]) {
                o.setValue(n, r);
                break;
              }
          },
          saveOriginalState: function () {
            var e = this.binding,
              t = this.buffer,
              n = this.valueSize,
              r = n * this._origIndex;
            e.getValue(t, r);
            for (var i = n, A = r; i !== A; ++i) t[i] = t[r + (i % n)];
            (this._setIdentity(),
              (this.cumulativeWeight = 0),
              (this.cumulativeWeightAdditive = 0));
          },
          restoreOriginalState: function () {
            var e = 3 * this.valueSize;
            this.binding.setValue(this.buffer, e);
          },
          _setAdditiveIdentityNumeric: function () {
            for (
              var e = this._addIndex * this.valueSize,
                t = e + this.valueSize,
                n = e;
              n < t;
              n++
            )
              this.buffer[n] = 0;
          },
          _setAdditiveIdentityQuaternion: function () {
            (this._setAdditiveIdentityNumeric(),
              (this.buffer[4 * this._addIndex + 3] = 1));
          },
          _setAdditiveIdentityOther: function () {
            for (
              var e = this._origIndex * this.valueSize,
                t = this._addIndex * this.valueSize,
                n = 0;
              n < this.valueSize;
              n++
            )
              this.buffer[t + n] = this.buffer[e + n];
          },
          _select: function (e, t, n, r, i) {
            if (r >= 0.5) for (var A = 0; A !== i; ++A) e[t + A] = e[n + A];
          },
          _slerp: function (e, t, n, r) {
            wn.slerpFlat(e, t, e, t, e, n, r);
          },
          _slerpAdditive: function (e, t, n, r, i) {
            var A = this._workIndex * i;
            (wn.multiplyQuaternionsFlat(e, A, e, t, e, n),
              wn.slerpFlat(e, t, e, t, e, A, r));
          },
          _lerp: function (e, t, n, r, i) {
            for (var A = 1 - r, o = 0; o !== i; ++o) {
              var a = t + o;
              e[a] = e[a] * A + e[n + o] * r;
            }
          },
          _lerpAdditive: function (e, t, n, r, i) {
            for (var A = 0; A !== i; ++A) {
              var o = t + A;
              e[o] = e[o] + e[n + A] * r;
            }
          },
        }));
      var Sd = "\\[\\]\\.:\\/",
        Fd = new RegExp("[" + Sd + "]", "g"),
        Td = "[^" + Sd + "]",
        Ud = "[^" + Sd.replace("\\.", "") + "]",
        Qd = /((?:WC+[\/:])*)/.source.replace("WC", Td),
        Ld = /(WCOD+)?/.source.replace("WCOD", Ud),
        Id = /(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC", Td),
        Hd = /\.(WC+)(?:\[(.+)\])?/.source.replace("WC", Td),
        Od = new RegExp("^" + Qd + Ld + Id + Hd + "$"),
        Rd = ["material", "materials", "bones"];
      function Pd(e, t, n) {
        var r = n || Dd.parseTrackName(t);
        ((this._targetGroup = e), (this._bindings = e.subscribe_(t, r)));
      }
      function Dd(e, t, n) {
        ((this.path = t),
          (this.parsedPath = n || Dd.parseTrackName(t)),
          (this.node = Dd.findNode(e, this.parsedPath.nodeName) || e),
          (this.rootNode = e));
      }
      function Nd() {
        ((this.uuid = ln.generateUUID()),
          (this._objects = Array.prototype.slice.call(arguments)),
          (this.nCachedObjects_ = 0));
        var e = {};
        this._indicesByUUID = e;
        for (var t = 0, n = arguments.length; t !== n; ++t)
          e[arguments[t].uuid] = t;
        ((this._paths = []),
          (this._parsedPaths = []),
          (this._bindings = []),
          (this._bindingsIndicesByPath = {}));
        var r = this;
        this.stats = {
          objects: {
            get total() {
              return r._objects.length;
            },
            get inUse() {
              return this.total - r.nCachedObjects_;
            },
          },
          get bindingsPerObject() {
            return r._bindings.length;
          },
        };
      }
      function kd(e, t, n, r) {
        ((this._mixer = e),
          (this._clip = t),
          (this._localRoot = n || null),
          (this.blendMode = r || t.blendMode));
        for (
          var i = t.tracks,
            A = i.length,
            o = new Array(A),
            a = { endingStart: Ot, endingEnd: Ot },
            s = 0;
          s !== A;
          ++s
        ) {
          var c = i[s].createInterpolant(null);
          ((o[s] = c), (c.settings = a));
        }
        ((this._interpolantSettings = a),
          (this._interpolants = o),
          (this._propertyBindings = new Array(A)),
          (this._cacheIndex = null),
          (this._byClipCacheIndex = null),
          (this._timeScaleInterpolant = null),
          (this._weightInterpolant = null),
          (this.loop = Ut),
          (this._loopCount = -1),
          (this._startTime = null),
          (this.time = 0),
          (this.timeScale = 1),
          (this._effectiveTimeScale = 1),
          (this.weight = 1),
          (this._effectiveWeight = 1),
          (this.repetitions = 1 / 0),
          (this.paused = !1),
          (this.enabled = !0),
          (this.clampWhenFinished = !1),
          (this.zeroSlopeAtStart = !0),
          (this.zeroSlopeAtEnd = !0));
      }
      function Gd(e) {
        ((this._root = e),
          this._initMemoryManager(),
          (this._accuIndex = 0),
          (this.time = 0),
          (this.timeScale = 1));
      }
      function Vd(e) {
        ("string" === typeof e &&
          (console.warn("THREE.Uniform: Type parameter is no longer needed."),
          (e = arguments[1])),
          (this.value = e));
      }
      function zd(e, t, n) {
        (jc.call(this, e, t), (this.meshPerAttribute = n || 1));
      }
      function jd(e, t, n, r) {
        ((this.ray = new Br(e, t)),
          (this.near = n || 0),
          (this.far = r || 1 / 0),
          (this.camera = null),
          (this.layers = new Hn()),
          (this.params = {
            Mesh: {},
            Line: { threshold: 1 },
            LOD: {},
            Points: { threshold: 1 },
            Sprite: {},
          }),
          Object.defineProperties(this.params, {
            PointCloud: {
              get: function () {
                return (
                  console.warn(
                    "THREE.Raycaster: params.PointCloud has been renamed to params.Points.",
                  ),
                  this.Points
                );
              },
            },
          }));
      }
      function Kd(e, t) {
        return e.distance - t.distance;
      }
      function Wd(e, t, n, r) {
        if ((e.layers.test(t.layers) && e.raycast(t, n), !0 === r))
          for (var i = e.children, A = 0, o = i.length; A < o; A++)
            Wd(i[A], t, n, !0);
      }
      function Xd(e, t, n) {
        return (
          (this.radius = void 0 !== e ? e : 1),
          (this.phi = void 0 !== t ? t : 0),
          (this.theta = void 0 !== n ? n : 0),
          this
        );
      }
      function Yd(e, t, n) {
        return (
          (this.radius = void 0 !== e ? e : 1),
          (this.theta = void 0 !== t ? t : 0),
          (this.y = void 0 !== n ? n : 0),
          this
        );
      }
      (Object.assign(Pd.prototype, {
        getValue: function (e, t) {
          this.bind();
          var n = this._targetGroup.nCachedObjects_,
            r = this._bindings[n];
          void 0 !== r && r.getValue(e, t);
        },
        setValue: function (e, t) {
          for (
            var n = this._bindings,
              r = this._targetGroup.nCachedObjects_,
              i = n.length;
            r !== i;
            ++r
          )
            n[r].setValue(e, t);
        },
        bind: function () {
          for (
            var e = this._bindings,
              t = this._targetGroup.nCachedObjects_,
              n = e.length;
            t !== n;
            ++t
          )
            e[t].bind();
        },
        unbind: function () {
          for (
            var e = this._bindings,
              t = this._targetGroup.nCachedObjects_,
              n = e.length;
            t !== n;
            ++t
          )
            e[t].unbind();
        },
      }),
        Object.assign(Dd, {
          Composite: Pd,
          create: function (e, t, n) {
            return e && e.isAnimationObjectGroup
              ? new Dd.Composite(e, t, n)
              : new Dd(e, t, n);
          },
          sanitizeNodeName: function (e) {
            return e.replace(/\s/g, "_").replace(Fd, "");
          },
          parseTrackName: function (e) {
            var t = Od.exec(e);
            if (!t)
              throw new Error("PropertyBinding: Cannot parse trackName: " + e);
            var n = {
                nodeName: t[2],
                objectName: t[3],
                objectIndex: t[4],
                propertyName: t[5],
                propertyIndex: t[6],
              },
              r = n.nodeName && n.nodeName.lastIndexOf(".");
            if (void 0 !== r && -1 !== r) {
              var i = n.nodeName.substring(r + 1);
              -1 !== Rd.indexOf(i) &&
                ((n.nodeName = n.nodeName.substring(0, r)), (n.objectName = i));
            }
            if (null === n.propertyName || 0 === n.propertyName.length)
              throw new Error(
                "PropertyBinding: can not parse propertyName from trackName: " +
                  e,
              );
            return n;
          },
          findNode: function (e, t) {
            if (
              !t ||
              "" === t ||
              "." === t ||
              -1 === t ||
              t === e.name ||
              t === e.uuid
            )
              return e;
            if (e.skeleton) {
              var n = e.skeleton.getBoneByName(t);
              if (void 0 !== n) return n;
            }
            if (e.children) {
              var r = function (e) {
                  for (var n = 0; n < e.length; n++) {
                    var i = e[n];
                    if (i.name === t || i.uuid === t) return i;
                    var A = r(i.children);
                    if (A) return A;
                  }
                  return null;
                },
                i = r(e.children);
              if (i) return i;
            }
            return null;
          },
        }),
        Object.assign(Dd.prototype, {
          _getValue_unavailable: function () {},
          _setValue_unavailable: function () {},
          BindingType: {
            Direct: 0,
            EntireArray: 1,
            ArrayElement: 2,
            HasFromToArray: 3,
          },
          Versioning: { None: 0, NeedsUpdate: 1, MatrixWorldNeedsUpdate: 2 },
          GetterByBindingType: [
            function (e, t) {
              e[t] = this.node[this.propertyName];
            },
            function (e, t) {
              for (
                var n = this.resolvedProperty, r = 0, i = n.length;
                r !== i;
                ++r
              )
                e[t++] = n[r];
            },
            function (e, t) {
              e[t] = this.resolvedProperty[this.propertyIndex];
            },
            function (e, t) {
              this.resolvedProperty.toArray(e, t);
            },
          ],
          SetterByBindingTypeAndVersioning: [
            [
              function (e, t) {
                this.targetObject[this.propertyName] = e[t];
              },
              function (e, t) {
                ((this.targetObject[this.propertyName] = e[t]),
                  (this.targetObject.needsUpdate = !0));
              },
              function (e, t) {
                ((this.targetObject[this.propertyName] = e[t]),
                  (this.targetObject.matrixWorldNeedsUpdate = !0));
              },
            ],
            [
              function (e, t) {
                for (
                  var n = this.resolvedProperty, r = 0, i = n.length;
                  r !== i;
                  ++r
                )
                  n[r] = e[t++];
              },
              function (e, t) {
                for (
                  var n = this.resolvedProperty, r = 0, i = n.length;
                  r !== i;
                  ++r
                )
                  n[r] = e[t++];
                this.targetObject.needsUpdate = !0;
              },
              function (e, t) {
                for (
                  var n = this.resolvedProperty, r = 0, i = n.length;
                  r !== i;
                  ++r
                )
                  n[r] = e[t++];
                this.targetObject.matrixWorldNeedsUpdate = !0;
              },
            ],
            [
              function (e, t) {
                this.resolvedProperty[this.propertyIndex] = e[t];
              },
              function (e, t) {
                ((this.resolvedProperty[this.propertyIndex] = e[t]),
                  (this.targetObject.needsUpdate = !0));
              },
              function (e, t) {
                ((this.resolvedProperty[this.propertyIndex] = e[t]),
                  (this.targetObject.matrixWorldNeedsUpdate = !0));
              },
            ],
            [
              function (e, t) {
                this.resolvedProperty.fromArray(e, t);
              },
              function (e, t) {
                (this.resolvedProperty.fromArray(e, t),
                  (this.targetObject.needsUpdate = !0));
              },
              function (e, t) {
                (this.resolvedProperty.fromArray(e, t),
                  (this.targetObject.matrixWorldNeedsUpdate = !0));
              },
            ],
          ],
          getValue: function (e, t) {
            (this.bind(), this.getValue(e, t));
          },
          setValue: function (e, t) {
            (this.bind(), this.setValue(e, t));
          },
          bind: function () {
            var e = this.node,
              t = this.parsedPath,
              n = t.objectName,
              r = t.propertyName,
              i = t.propertyIndex;
            if (
              (e ||
                ((e = Dd.findNode(this.rootNode, t.nodeName) || this.rootNode),
                (this.node = e)),
              (this.getValue = this._getValue_unavailable),
              (this.setValue = this._setValue_unavailable),
              e)
            ) {
              if (n) {
                var A = t.objectIndex;
                switch (n) {
                  case "materials":
                    if (!e.material)
                      return void console.log(
                        "THREE.PropertyBinding: Can not bind to material as node does not have a material.",
                        this,
                      );
                    if (!e.material.materials)
                      return void console.log(
                        "THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.",
                        this,
                      );
                    e = e.material.materials;
                    break;
                  case "bones":
                    if (!e.skeleton)
                      return void console.log(
                        "THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.",
                        this,
                      );
                    e = e.skeleton.bones;
                    for (var o = 0; o < e.length; o++)
                      if (e[o].name === A) {
                        A = o;
                        break;
                      }
                    break;
                  default:
                    if (void 0 === e[n])
                      return void console.log(
                        "THREE.PropertyBinding: Can not bind to objectName of node undefined.",
                        this,
                      );
                    e = e[n];
                }
                if (void 0 !== A) {
                  if (void 0 === e[A])
                    return void console.log(
                      "THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.",
                      this,
                      e,
                    );
                  e = e[A];
                }
              }
              var a = e[r];
              if (void 0 !== a) {
                var s = this.Versioning.None;
                ((this.targetObject = e),
                  void 0 !== e.needsUpdate
                    ? (s = this.Versioning.NeedsUpdate)
                    : void 0 !== e.matrixWorldNeedsUpdate &&
                      (s = this.Versioning.MatrixWorldNeedsUpdate));
                var c = this.BindingType.Direct;
                if (void 0 !== i) {
                  if ("morphTargetInfluences" === r) {
                    if (!e.geometry)
                      return void console.log(
                        "THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.",
                        this,
                      );
                    if (!e.geometry.isBufferGeometry)
                      return void console.log(
                        "THREE.PropertyBinding: Can not bind to morphTargetInfluences on THREE.Geometry. Use THREE.BufferGeometry instead.",
                        this,
                      );
                    if (!e.geometry.morphAttributes)
                      return void console.log(
                        "THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.",
                        this,
                      );
                    void 0 !== e.morphTargetDictionary[i] &&
                      (i = e.morphTargetDictionary[i]);
                  }
                  ((c = this.BindingType.ArrayElement),
                    (this.resolvedProperty = a),
                    (this.propertyIndex = i));
                } else
                  void 0 !== a.fromArray && void 0 !== a.toArray
                    ? ((c = this.BindingType.HasFromToArray),
                      (this.resolvedProperty = a))
                    : Array.isArray(a)
                      ? ((c = this.BindingType.EntireArray),
                        (this.resolvedProperty = a))
                      : (this.propertyName = r);
                ((this.getValue = this.GetterByBindingType[c]),
                  (this.setValue =
                    this.SetterByBindingTypeAndVersioning[c][s]));
              } else {
                var u = t.nodeName;
                console.log(
                  "THREE.PropertyBinding: Trying to update property for track: " +
                    u +
                    "." +
                    r +
                    " but it wasn't found.",
                  e,
                );
              }
            } else
              console.log(
                "THREE.PropertyBinding: Trying to update node for track: " +
                  this.path +
                  " but it wasn't found.",
              );
          },
          unbind: function () {
            ((this.node = null),
              (this.getValue = this._getValue_unbound),
              (this.setValue = this._setValue_unbound));
          },
        }),
        Object.assign(Dd.prototype, {
          _getValue_unbound: Dd.prototype.getValue,
          _setValue_unbound: Dd.prototype.setValue,
        }),
        Object.assign(Nd.prototype, {
          isAnimationObjectGroup: !0,
          add: function () {
            for (
              var e = this._objects,
                t = e.length,
                n = this.nCachedObjects_,
                r = this._indicesByUUID,
                i = this._paths,
                A = this._parsedPaths,
                o = this._bindings,
                a = o.length,
                s = void 0,
                c = 0,
                u = arguments.length;
              c !== u;
              ++c
            ) {
              var l = arguments[c],
                h = l.uuid,
                f = r[h];
              if (void 0 === f) {
                ((f = t++), (r[h] = f), e.push(l));
                for (var d = 0, p = a; d !== p; ++d)
                  o[d].push(new Dd(l, i[d], A[d]));
              } else if (f < n) {
                s = e[f];
                var g = --n,
                  m = e[g];
                ((r[m.uuid] = f), (e[f] = m), (r[h] = g), (e[g] = l));
                for (d = 0, p = a; d !== p; ++d) {
                  var v = o[d],
                    y = v[g],
                    w = v[f];
                  ((v[f] = y),
                    void 0 === w && (w = new Dd(l, i[d], A[d])),
                    (v[g] = w));
                }
              } else
                e[f] !== s &&
                  console.log(
                    "THREE.AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes.",
                  );
            }
            this.nCachedObjects_ = n;
          },
          remove: function () {
            for (
              var e = this._objects,
                t = this.nCachedObjects_,
                n = this._indicesByUUID,
                r = this._bindings,
                i = r.length,
                A = 0,
                o = arguments.length;
              A !== o;
              ++A
            ) {
              var a = arguments[A],
                s = a.uuid,
                c = n[s];
              if (void 0 !== c && c >= t) {
                var u = t++,
                  l = e[u];
                ((n[l.uuid] = c), (e[c] = l), (n[s] = u), (e[u] = a));
                for (var h = 0, f = i; h !== f; ++h) {
                  var d = r[h],
                    p = d[u],
                    g = d[c];
                  ((d[c] = p), (d[u] = g));
                }
              }
            }
            this.nCachedObjects_ = t;
          },
          uncache: function () {
            for (
              var e = this._objects,
                t = e.length,
                n = this.nCachedObjects_,
                r = this._indicesByUUID,
                i = this._bindings,
                A = i.length,
                o = 0,
                a = arguments.length;
              o !== a;
              ++o
            ) {
              var s = arguments[o],
                c = s.uuid,
                u = r[c];
              if (void 0 !== u)
                if ((delete r[c], u < n)) {
                  var l = --n,
                    h = e[l],
                    f = --t,
                    d = e[f];
                  ((r[h.uuid] = u),
                    (e[u] = h),
                    (r[d.uuid] = l),
                    (e[l] = d),
                    e.pop());
                  for (var p = 0, g = A; p !== g; ++p) {
                    var m = i[p],
                      v = m[l],
                      y = m[f];
                    ((m[u] = v), (m[l] = y), m.pop());
                  }
                } else {
                  ((f = --t), (d = e[f]));
                  ((r[d.uuid] = u), (e[u] = d), e.pop());
                  for (p = 0, g = A; p !== g; ++p) {
                    m = i[p];
                    ((m[u] = m[f]), m.pop());
                  }
                }
            }
            this.nCachedObjects_ = n;
          },
          subscribe_: function (e, t) {
            var n = this._bindingsIndicesByPath,
              r = n[e],
              i = this._bindings;
            if (void 0 !== r) return i[r];
            var A = this._paths,
              o = this._parsedPaths,
              a = this._objects,
              s = a.length,
              c = this.nCachedObjects_,
              u = new Array(s);
            ((r = i.length), (n[e] = r), A.push(e), o.push(t), i.push(u));
            for (var l = c, h = a.length; l !== h; ++l) {
              var f = a[l];
              u[l] = new Dd(f, e, t);
            }
            return u;
          },
          unsubscribe_: function (e) {
            var t = this._bindingsIndicesByPath,
              n = t[e];
            if (void 0 !== n) {
              var r = this._paths,
                i = this._parsedPaths,
                A = this._bindings,
                o = A.length - 1,
                a = A[o],
                s = e[o];
              ((t[s] = n),
                (A[n] = a),
                A.pop(),
                (i[n] = i[o]),
                i.pop(),
                (r[n] = r[o]),
                r.pop());
            }
          },
        }),
        Object.assign(kd.prototype, {
          play: function () {
            return (this._mixer._activateAction(this), this);
          },
          stop: function () {
            return (this._mixer._deactivateAction(this), this.reset());
          },
          reset: function () {
            return (
              (this.paused = !1),
              (this.enabled = !0),
              (this.time = 0),
              (this._loopCount = -1),
              (this._startTime = null),
              this.stopFading().stopWarping()
            );
          },
          isRunning: function () {
            return (
              this.enabled &&
              !this.paused &&
              0 !== this.timeScale &&
              null === this._startTime &&
              this._mixer._isActiveAction(this)
            );
          },
          isScheduled: function () {
            return this._mixer._isActiveAction(this);
          },
          startAt: function (e) {
            return ((this._startTime = e), this);
          },
          setLoop: function (e, t) {
            return ((this.loop = e), (this.repetitions = t), this);
          },
          setEffectiveWeight: function (e) {
            return (
              (this.weight = e),
              (this._effectiveWeight = this.enabled ? e : 0),
              this.stopFading()
            );
          },
          getEffectiveWeight: function () {
            return this._effectiveWeight;
          },
          fadeIn: function (e) {
            return this._scheduleFading(e, 0, 1);
          },
          fadeOut: function (e) {
            return this._scheduleFading(e, 1, 0);
          },
          crossFadeFrom: function (e, t, n) {
            if ((e.fadeOut(t), this.fadeIn(t), n)) {
              var r = this._clip.duration,
                i = e._clip.duration,
                A = i / r,
                o = r / i;
              (e.warp(1, A, t), this.warp(o, 1, t));
            }
            return this;
          },
          crossFadeTo: function (e, t, n) {
            return e.crossFadeFrom(this, t, n);
          },
          stopFading: function () {
            var e = this._weightInterpolant;
            return (
              null !== e &&
                ((this._weightInterpolant = null),
                this._mixer._takeBackControlInterpolant(e)),
              this
            );
          },
          setEffectiveTimeScale: function (e) {
            return (
              (this.timeScale = e),
              (this._effectiveTimeScale = this.paused ? 0 : e),
              this.stopWarping()
            );
          },
          getEffectiveTimeScale: function () {
            return this._effectiveTimeScale;
          },
          setDuration: function (e) {
            return (
              (this.timeScale = this._clip.duration / e),
              this.stopWarping()
            );
          },
          syncWith: function (e) {
            return (
              (this.time = e.time),
              (this.timeScale = e.timeScale),
              this.stopWarping()
            );
          },
          halt: function (e) {
            return this.warp(this._effectiveTimeScale, 0, e);
          },
          warp: function (e, t, n) {
            var r = this._mixer,
              i = r.time,
              A = this._timeScaleInterpolant,
              o = this.timeScale;
            null === A &&
              ((A = r._lendControlInterpolant()),
              (this._timeScaleInterpolant = A));
            var a = A.parameterPositions,
              s = A.sampleValues;
            return (
              (a[0] = i),
              (a[1] = i + n),
              (s[0] = e / o),
              (s[1] = t / o),
              this
            );
          },
          stopWarping: function () {
            var e = this._timeScaleInterpolant;
            return (
              null !== e &&
                ((this._timeScaleInterpolant = null),
                this._mixer._takeBackControlInterpolant(e)),
              this
            );
          },
          getMixer: function () {
            return this._mixer;
          },
          getClip: function () {
            return this._clip;
          },
          getRoot: function () {
            return this._localRoot || this._mixer._root;
          },
          _update: function (e, t, n, r) {
            if (this.enabled) {
              var i = this._startTime;
              if (null !== i) {
                var A = (e - i) * n;
                if (A < 0 || 0 === n) return;
                ((this._startTime = null), (t = n * A));
              }
              t *= this._updateTimeScale(e);
              var o = this._updateTime(t),
                a = this._updateWeight(e);
              if (a > 0) {
                var s = this._interpolants,
                  c = this._propertyBindings;
                switch (this.blendMode) {
                  case Nt:
                    for (var u = 0, l = s.length; u !== l; ++u)
                      (s[u].evaluate(o), c[u].accumulateAdditive(a));
                    break;
                  case Dt:
                  default:
                    for (u = 0, l = s.length; u !== l; ++u)
                      (s[u].evaluate(o), c[u].accumulate(r, a));
                }
              }
            } else this._updateWeight(e);
          },
          _updateWeight: function (e) {
            var t = 0;
            if (this.enabled) {
              t = this.weight;
              var n = this._weightInterpolant;
              if (null !== n) {
                var r = n.evaluate(e)[0];
                ((t *= r),
                  e > n.parameterPositions[1] &&
                    (this.stopFading(), 0 === r && (this.enabled = !1)));
              }
            }
            return ((this._effectiveWeight = t), t);
          },
          _updateTimeScale: function (e) {
            var t = 0;
            if (!this.paused) {
              t = this.timeScale;
              var n = this._timeScaleInterpolant;
              if (null !== n) {
                var r = n.evaluate(e)[0];
                ((t *= r),
                  e > n.parameterPositions[1] &&
                    (this.stopWarping(),
                    0 === t ? (this.paused = !0) : (this.timeScale = t)));
              }
            }
            return ((this._effectiveTimeScale = t), t);
          },
          _updateTime: function (e) {
            var t = this.time + e,
              n = this._clip.duration,
              r = this.loop,
              i = this._loopCount,
              A = r === Qt;
            if (0 === e) return -1 === i ? t : A && 1 === (1 & i) ? n - t : t;
            if (r === Tt) {
              -1 === i && ((this._loopCount = 0), this._setEndings(!0, !0, !1));
              e: {
                if (t >= n) t = n;
                else {
                  if (!(t < 0)) {
                    this.time = t;
                    break e;
                  }
                  t = 0;
                }
                (this.clampWhenFinished
                  ? (this.paused = !0)
                  : (this.enabled = !1),
                  (this.time = t),
                  this._mixer.dispatchEvent({
                    type: "finished",
                    action: this,
                    direction: e < 0 ? -1 : 1,
                  }));
              }
            } else {
              if (
                (-1 === i &&
                  (e >= 0
                    ? ((i = 0), this._setEndings(!0, 0 === this.repetitions, A))
                    : this._setEndings(0 === this.repetitions, !0, A)),
                t >= n || t < 0)
              ) {
                var o = Math.floor(t / n);
                ((t -= n * o), (i += Math.abs(o)));
                var a = this.repetitions - i;
                if (a <= 0)
                  (this.clampWhenFinished
                    ? (this.paused = !0)
                    : (this.enabled = !1),
                    (t = e > 0 ? n : 0),
                    (this.time = t),
                    this._mixer.dispatchEvent({
                      type: "finished",
                      action: this,
                      direction: e > 0 ? 1 : -1,
                    }));
                else {
                  if (1 === a) {
                    var s = e < 0;
                    this._setEndings(s, !s, A);
                  } else this._setEndings(!1, !1, A);
                  ((this._loopCount = i),
                    (this.time = t),
                    this._mixer.dispatchEvent({
                      type: "loop",
                      action: this,
                      loopDelta: o,
                    }));
                }
              } else this.time = t;
              if (A && 1 === (1 & i)) return n - t;
            }
            return t;
          },
          _setEndings: function (e, t, n) {
            var r = this._interpolantSettings;
            n
              ? ((r.endingStart = Rt), (r.endingEnd = Rt))
              : ((r.endingStart = e ? (this.zeroSlopeAtStart ? Rt : Ot) : Pt),
                (r.endingEnd = t ? (this.zeroSlopeAtEnd ? Rt : Ot) : Pt));
          },
          _scheduleFading: function (e, t, n) {
            var r = this._mixer,
              i = r.time,
              A = this._weightInterpolant;
            null === A &&
              ((A = r._lendControlInterpolant()),
              (this._weightInterpolant = A));
            var o = A.parameterPositions,
              a = A.sampleValues;
            return ((o[0] = i), (a[0] = t), (o[1] = i + e), (a[1] = n), this);
          },
        }),
        (Gd.prototype = Object.assign(Object.create(an.prototype), {
          constructor: Gd,
          _bindAction: function (e, t) {
            var n = e._localRoot || this._root,
              r = e._clip.tracks,
              i = r.length,
              A = e._propertyBindings,
              o = e._interpolants,
              a = n.uuid,
              s = this._bindingsByRootAndName,
              c = s[a];
            void 0 === c && ((c = {}), (s[a] = c));
            for (var u = 0; u !== i; ++u) {
              var l = r[u],
                h = l.name,
                f = c[h];
              if (void 0 !== f) A[u] = f;
              else {
                if (((f = A[u]), void 0 !== f)) {
                  null === f._cacheIndex &&
                    (++f.referenceCount, this._addInactiveBinding(f, a, h));
                  continue;
                }
                var d = t && t._propertyBindings[u].binding.parsedPath;
                ((f = new Md(
                  Dd.create(n, h, d),
                  l.ValueTypeName,
                  l.getValueSize(),
                )),
                  ++f.referenceCount,
                  this._addInactiveBinding(f, a, h),
                  (A[u] = f));
              }
              o[u].resultBuffer = f.buffer;
            }
          },
          _activateAction: function (e) {
            if (!this._isActiveAction(e)) {
              if (null === e._cacheIndex) {
                var t = (e._localRoot || this._root).uuid,
                  n = e._clip.uuid,
                  r = this._actionsByClip[n];
                (this._bindAction(e, r && r.knownActions[0]),
                  this._addInactiveAction(e, n, t));
              }
              for (
                var i = e._propertyBindings, A = 0, o = i.length;
                A !== o;
                ++A
              ) {
                var a = i[A];
                0 === a.useCount++ &&
                  (this._lendBinding(a), a.saveOriginalState());
              }
              this._lendAction(e);
            }
          },
          _deactivateAction: function (e) {
            if (this._isActiveAction(e)) {
              for (
                var t = e._propertyBindings, n = 0, r = t.length;
                n !== r;
                ++n
              ) {
                var i = t[n];
                0 === --i.useCount &&
                  (i.restoreOriginalState(), this._takeBackBinding(i));
              }
              this._takeBackAction(e);
            }
          },
          _initMemoryManager: function () {
            ((this._actions = []),
              (this._nActiveActions = 0),
              (this._actionsByClip = {}),
              (this._bindings = []),
              (this._nActiveBindings = 0),
              (this._bindingsByRootAndName = {}),
              (this._controlInterpolants = []),
              (this._nActiveControlInterpolants = 0));
            var e = this;
            this.stats = {
              actions: {
                get total() {
                  return e._actions.length;
                },
                get inUse() {
                  return e._nActiveActions;
                },
              },
              bindings: {
                get total() {
                  return e._bindings.length;
                },
                get inUse() {
                  return e._nActiveBindings;
                },
              },
              controlInterpolants: {
                get total() {
                  return e._controlInterpolants.length;
                },
                get inUse() {
                  return e._nActiveControlInterpolants;
                },
              },
            };
          },
          _isActiveAction: function (e) {
            var t = e._cacheIndex;
            return null !== t && t < this._nActiveActions;
          },
          _addInactiveAction: function (e, t, n) {
            var r = this._actions,
              i = this._actionsByClip,
              A = i[t];
            if (void 0 === A)
              ((A = { knownActions: [e], actionByRoot: {} }),
                (e._byClipCacheIndex = 0),
                (i[t] = A));
            else {
              var o = A.knownActions;
              ((e._byClipCacheIndex = o.length), o.push(e));
            }
            ((e._cacheIndex = r.length), r.push(e), (A.actionByRoot[n] = e));
          },
          _removeInactiveAction: function (e) {
            var t = this._actions,
              n = t[t.length - 1],
              r = e._cacheIndex;
            ((n._cacheIndex = r), (t[r] = n), t.pop(), (e._cacheIndex = null));
            var i = e._clip.uuid,
              A = this._actionsByClip,
              o = A[i],
              a = o.knownActions,
              s = a[a.length - 1],
              c = e._byClipCacheIndex;
            ((s._byClipCacheIndex = c),
              (a[c] = s),
              a.pop(),
              (e._byClipCacheIndex = null));
            var u = o.actionByRoot,
              l = (e._localRoot || this._root).uuid;
            (delete u[l],
              0 === a.length && delete A[i],
              this._removeInactiveBindingsForAction(e));
          },
          _removeInactiveBindingsForAction: function (e) {
            for (
              var t = e._propertyBindings, n = 0, r = t.length;
              n !== r;
              ++n
            ) {
              var i = t[n];
              0 === --i.referenceCount && this._removeInactiveBinding(i);
            }
          },
          _lendAction: function (e) {
            var t = this._actions,
              n = e._cacheIndex,
              r = this._nActiveActions++,
              i = t[r];
            ((e._cacheIndex = r), (t[r] = e), (i._cacheIndex = n), (t[n] = i));
          },
          _takeBackAction: function (e) {
            var t = this._actions,
              n = e._cacheIndex,
              r = --this._nActiveActions,
              i = t[r];
            ((e._cacheIndex = r), (t[r] = e), (i._cacheIndex = n), (t[n] = i));
          },
          _addInactiveBinding: function (e, t, n) {
            var r = this._bindingsByRootAndName,
              i = r[t],
              A = this._bindings;
            (void 0 === i && ((i = {}), (r[t] = i)),
              (i[n] = e),
              (e._cacheIndex = A.length),
              A.push(e));
          },
          _removeInactiveBinding: function (e) {
            var t = this._bindings,
              n = e.binding,
              r = n.rootNode.uuid,
              i = n.path,
              A = this._bindingsByRootAndName,
              o = A[r],
              a = t[t.length - 1],
              s = e._cacheIndex;
            ((a._cacheIndex = s),
              (t[s] = a),
              t.pop(),
              delete o[i],
              0 === Object.keys(o).length && delete A[r]);
          },
          _lendBinding: function (e) {
            var t = this._bindings,
              n = e._cacheIndex,
              r = this._nActiveBindings++,
              i = t[r];
            ((e._cacheIndex = r), (t[r] = e), (i._cacheIndex = n), (t[n] = i));
          },
          _takeBackBinding: function (e) {
            var t = this._bindings,
              n = e._cacheIndex,
              r = --this._nActiveBindings,
              i = t[r];
            ((e._cacheIndex = r), (t[r] = e), (i._cacheIndex = n), (t[n] = i));
          },
          _lendControlInterpolant: function () {
            var e = this._controlInterpolants,
              t = this._nActiveControlInterpolants++,
              n = e[t];
            return (
              void 0 === n &&
                ((n = new Sh(
                  new Float32Array(2),
                  new Float32Array(2),
                  1,
                  this._controlInterpolantsResultBuffer,
                )),
                (n.__cacheIndex = t),
                (e[t] = n)),
              n
            );
          },
          _takeBackControlInterpolant: function (e) {
            var t = this._controlInterpolants,
              n = e.__cacheIndex,
              r = --this._nActiveControlInterpolants,
              i = t[r];
            ((e.__cacheIndex = r),
              (t[r] = e),
              (i.__cacheIndex = n),
              (t[n] = i));
          },
          _controlInterpolantsResultBuffer: new Float32Array(1),
          clipAction: function (e, t, n) {
            var r = t || this._root,
              i = r.uuid,
              A = "string" === typeof e ? Ph.findByName(r, e) : e,
              o = null !== A ? A.uuid : e,
              a = this._actionsByClip[o],
              s = null;
            if (
              (void 0 === n && (n = null !== A ? A.blendMode : Dt),
              void 0 !== a)
            ) {
              var c = a.actionByRoot[i];
              if (void 0 !== c && c.blendMode === n) return c;
              ((s = a.knownActions[0]), null === A && (A = s._clip));
            }
            if (null === A) return null;
            var u = new kd(this, A, t, n);
            return (
              this._bindAction(u, s),
              this._addInactiveAction(u, o, i),
              u
            );
          },
          existingAction: function (e, t) {
            var n = t || this._root,
              r = n.uuid,
              i = "string" === typeof e ? Ph.findByName(n, e) : e,
              A = i ? i.uuid : e,
              o = this._actionsByClip[A];
            return (void 0 !== o && o.actionByRoot[r]) || null;
          },
          stopAllAction: function () {
            for (
              var e = this._actions, t = this._nActiveActions, n = t - 1;
              n >= 0;
              --n
            )
              e[n].stop();
            return this;
          },
          update: function (e) {
            e *= this.timeScale;
            for (
              var t = this._actions,
                n = this._nActiveActions,
                r = (this.time += e),
                i = Math.sign(e),
                A = (this._accuIndex ^= 1),
                o = 0;
              o !== n;
              ++o
            ) {
              var a = t[o];
              a._update(r, e, i, A);
            }
            var s = this._bindings,
              c = this._nActiveBindings;
            for (o = 0; o !== c; ++o) s[o].apply(A);
            return this;
          },
          setTime: function (e) {
            this.time = 0;
            for (var t = 0; t < this._actions.length; t++)
              this._actions[t].time = 0;
            return this.update(e);
          },
          getRoot: function () {
            return this._root;
          },
          uncacheClip: function (e) {
            var t = this._actions,
              n = e.uuid,
              r = this._actionsByClip,
              i = r[n];
            if (void 0 !== i) {
              for (var A = i.knownActions, o = 0, a = A.length; o !== a; ++o) {
                var s = A[o];
                this._deactivateAction(s);
                var c = s._cacheIndex,
                  u = t[t.length - 1];
                ((s._cacheIndex = null),
                  (s._byClipCacheIndex = null),
                  (u._cacheIndex = c),
                  (t[c] = u),
                  t.pop(),
                  this._removeInactiveBindingsForAction(s));
              }
              delete r[n];
            }
          },
          uncacheRoot: function (e) {
            var t = e.uuid,
              n = this._actionsByClip;
            for (var r in n) {
              var i = n[r].actionByRoot,
                A = i[t];
              void 0 !== A &&
                (this._deactivateAction(A), this._removeInactiveAction(A));
            }
            var o = this._bindingsByRootAndName,
              a = o[t];
            if (void 0 !== a)
              for (var s in a) {
                var c = a[s];
                (c.restoreOriginalState(), this._removeInactiveBinding(c));
              }
          },
          uncacheAction: function (e, t) {
            var n = this.existingAction(e, t);
            null !== n &&
              (this._deactivateAction(n), this._removeInactiveAction(n));
          },
        })),
        (Vd.prototype.clone = function () {
          return new Vd(
            void 0 === this.value.clone ? this.value : this.value.clone(),
          );
        }),
        (zd.prototype = Object.assign(Object.create(jc.prototype), {
          constructor: zd,
          isInstancedInterleavedBuffer: !0,
          copy: function (e) {
            return (
              jc.prototype.copy.call(this, e),
              (this.meshPerAttribute = e.meshPerAttribute),
              this
            );
          },
        })),
        Object.assign(jd.prototype, {
          set: function (e, t) {
            this.ray.set(e, t);
          },
          setFromCamera: function (e, t) {
            t && t.isPerspectiveCamera
              ? (this.ray.origin.setFromMatrixPosition(t.matrixWorld),
                this.ray.direction
                  .set(e.x, e.y, 0.5)
                  .unproject(t)
                  .sub(this.ray.origin)
                  .normalize(),
                (this.camera = t))
              : t && t.isOrthographicCamera
                ? (this.ray.origin
                    .set(e.x, e.y, (t.near + t.far) / (t.near - t.far))
                    .unproject(t),
                  this.ray.direction
                    .set(0, 0, -1)
                    .transformDirection(t.matrixWorld),
                  (this.camera = t))
                : console.log("THREE.Raycaster: Unsupported camera type.");
          },
          intersectObject: function (e, t, n) {
            var r = n || [];
            return (Wd(e, this, r, t), r.sort(Kd), r);
          },
          intersectObjects: function (e, t, n) {
            var r = n || [];
            if (!1 === Array.isArray(e))
              return (
                console.warn(
                  "THREE.Raycaster.intersectObjects: objects is not an Array.",
                ),
                r
              );
            for (var i = 0, A = e.length; i < A; i++) Wd(e[i], this, r, t);
            return (r.sort(Kd), r);
          },
        }),
        Object.assign(Xd.prototype, {
          set: function (e, t, n) {
            return ((this.radius = e), (this.phi = t), (this.theta = n), this);
          },
          clone: function () {
            return new this.constructor().copy(this);
          },
          copy: function (e) {
            return (
              (this.radius = e.radius),
              (this.phi = e.phi),
              (this.theta = e.theta),
              this
            );
          },
          makeSafe: function () {
            var e = 1e-6;
            return (
              (this.phi = Math.max(e, Math.min(Math.PI - e, this.phi))),
              this
            );
          },
          setFromVector3: function (e) {
            return this.setFromCartesianCoords(e.x, e.y, e.z);
          },
          setFromCartesianCoords: function (e, t, n) {
            return (
              (this.radius = Math.sqrt(e * e + t * t + n * n)),
              0 === this.radius
                ? ((this.theta = 0), (this.phi = 0))
                : ((this.theta = Math.atan2(e, n)),
                  (this.phi = Math.acos(ln.clamp(t / this.radius, -1, 1)))),
              this
            );
          },
        }),
        Object.assign(Yd.prototype, {
          set: function (e, t, n) {
            return ((this.radius = e), (this.theta = t), (this.y = n), this);
          },
          clone: function () {
            return new this.constructor().copy(this);
          },
          copy: function (e) {
            return (
              (this.radius = e.radius),
              (this.theta = e.theta),
              (this.y = e.y),
              this
            );
          },
          setFromVector3: function (e) {
            return this.setFromCartesianCoords(e.x, e.y, e.z);
          },
          setFromCartesianCoords: function (e, t, n) {
            return (
              (this.radius = Math.sqrt(e * e + n * n)),
              (this.theta = Math.atan2(e, n)),
              (this.y = t),
              this
            );
          },
        }));
      var Jd = new hn();
      function qd(e, t) {
        ((this.min = void 0 !== e ? e : new hn(1 / 0, 1 / 0)),
          (this.max = void 0 !== t ? t : new hn(-1 / 0, -1 / 0)));
      }
      Object.assign(qd.prototype, {
        set: function (e, t) {
          return (this.min.copy(e), this.max.copy(t), this);
        },
        setFromPoints: function (e) {
          this.makeEmpty();
          for (var t = 0, n = e.length; t < n; t++) this.expandByPoint(e[t]);
          return this;
        },
        setFromCenterAndSize: function (e, t) {
          var n = Jd.copy(t).multiplyScalar(0.5);
          return (this.min.copy(e).sub(n), this.max.copy(e).add(n), this);
        },
        clone: function () {
          return new this.constructor().copy(this);
        },
        copy: function (e) {
          return (this.min.copy(e.min), this.max.copy(e.max), this);
        },
        makeEmpty: function () {
          return (
            (this.min.x = this.min.y = 1 / 0),
            (this.max.x = this.max.y = -1 / 0),
            this
          );
        },
        isEmpty: function () {
          return this.max.x < this.min.x || this.max.y < this.min.y;
        },
        getCenter: function (e) {
          return (
            void 0 === e &&
              (console.warn("THREE.Box2: .getCenter() target is now required"),
              (e = new hn())),
            this.isEmpty()
              ? e.set(0, 0)
              : e.addVectors(this.min, this.max).multiplyScalar(0.5)
          );
        },
        getSize: function (e) {
          return (
            void 0 === e &&
              (console.warn("THREE.Box2: .getSize() target is now required"),
              (e = new hn())),
            this.isEmpty() ? e.set(0, 0) : e.subVectors(this.max, this.min)
          );
        },
        expandByPoint: function (e) {
          return (this.min.min(e), this.max.max(e), this);
        },
        expandByVector: function (e) {
          return (this.min.sub(e), this.max.add(e), this);
        },
        expandByScalar: function (e) {
          return (this.min.addScalar(-e), this.max.addScalar(e), this);
        },
        containsPoint: function (e) {
          return !(
            e.x < this.min.x ||
            e.x > this.max.x ||
            e.y < this.min.y ||
            e.y > this.max.y
          );
        },
        containsBox: function (e) {
          return (
            this.min.x <= e.min.x &&
            e.max.x <= this.max.x &&
            this.min.y <= e.min.y &&
            e.max.y <= this.max.y
          );
        },
        getParameter: function (e, t) {
          return (
            void 0 === t &&
              (console.warn(
                "THREE.Box2: .getParameter() target is now required",
              ),
              (t = new hn())),
            t.set(
              (e.x - this.min.x) / (this.max.x - this.min.x),
              (e.y - this.min.y) / (this.max.y - this.min.y),
            )
          );
        },
        intersectsBox: function (e) {
          return !(
            e.max.x < this.min.x ||
            e.min.x > this.max.x ||
            e.max.y < this.min.y ||
            e.min.y > this.max.y
          );
        },
        clampPoint: function (e, t) {
          return (
            void 0 === t &&
              (console.warn("THREE.Box2: .clampPoint() target is now required"),
              (t = new hn())),
            t.copy(e).clamp(this.min, this.max)
          );
        },
        distanceToPoint: function (e) {
          var t = Jd.copy(e).clamp(this.min, this.max);
          return t.sub(e).length();
        },
        intersect: function (e) {
          return (this.min.max(e.min), this.max.min(e.max), this);
        },
        union: function (e) {
          return (this.min.min(e.min), this.max.max(e.max), this);
        },
        translate: function (e) {
          return (this.min.add(e), this.max.add(e), this);
        },
        equals: function (e) {
          return e.min.equals(this.min) && e.max.equals(this.max);
        },
      });
      var Zd = new _n(),
        $d = new _n();
      function ep(e, t) {
        ((this.start = void 0 !== e ? e : new _n()),
          (this.end = void 0 !== t ? t : new _n()));
      }
      function tp(e) {
        (Yn.call(this),
          (this.material = e),
          (this.render = function () {}),
          (this.hasPositions = !1),
          (this.hasNormals = !1),
          (this.hasColors = !1),
          (this.hasUvs = !1),
          (this.positionArray = null),
          (this.normalArray = null),
          (this.colorArray = null),
          (this.uvArray = null),
          (this.count = 0));
      }
      (Object.assign(ep.prototype, {
        set: function (e, t) {
          return (this.start.copy(e), this.end.copy(t), this);
        },
        clone: function () {
          return new this.constructor().copy(this);
        },
        copy: function (e) {
          return (this.start.copy(e.start), this.end.copy(e.end), this);
        },
        getCenter: function (e) {
          return (
            void 0 === e &&
              (console.warn("THREE.Line3: .getCenter() target is now required"),
              (e = new _n())),
            e.addVectors(this.start, this.end).multiplyScalar(0.5)
          );
        },
        delta: function (e) {
          return (
            void 0 === e &&
              (console.warn("THREE.Line3: .delta() target is now required"),
              (e = new _n())),
            e.subVectors(this.end, this.start)
          );
        },
        distanceSq: function () {
          return this.start.distanceToSquared(this.end);
        },
        distance: function () {
          return this.start.distanceTo(this.end);
        },
        at: function (e, t) {
          return (
            void 0 === t &&
              (console.warn("THREE.Line3: .at() target is now required"),
              (t = new _n())),
            this.delta(t).multiplyScalar(e).add(this.start)
          );
        },
        closestPointToPointParameter: function (e, t) {
          (Zd.subVectors(e, this.start), $d.subVectors(this.end, this.start));
          var n = $d.dot($d),
            r = $d.dot(Zd),
            i = r / n;
          return (t && (i = ln.clamp(i, 0, 1)), i);
        },
        closestPointToPoint: function (e, t, n) {
          var r = this.closestPointToPointParameter(e, t);
          return (
            void 0 === n &&
              (console.warn(
                "THREE.Line3: .closestPointToPoint() target is now required",
              ),
              (n = new _n())),
            this.delta(n).multiplyScalar(r).add(this.start)
          );
        },
        applyMatrix4: function (e) {
          return (this.start.applyMatrix4(e), this.end.applyMatrix4(e), this);
        },
        equals: function (e) {
          return e.start.equals(this.start) && e.end.equals(this.end);
        },
      }),
        (tp.prototype = Object.create(Yn.prototype)),
        (tp.prototype.constructor = tp),
        (tp.prototype.isImmediateRenderObject = !0));
      var np = new _n();
      function rp(e, t) {
        (Yn.call(this),
          (this.light = e),
          this.light.updateMatrixWorld(),
          (this.matrix = e.matrixWorld),
          (this.matrixAutoUpdate = !1),
          (this.color = t));
        for (
          var n = new di(),
            r = [
              0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0,
              1, 1, 0, 0, 0, 0, -1, 1,
            ],
            i = 0,
            A = 1,
            o = 32;
          i < o;
          i++, A++
        ) {
          var a = (i / o) * Math.PI * 2,
            s = (A / o) * Math.PI * 2;
          r.push(Math.cos(a), Math.sin(a), 1, Math.cos(s), Math.sin(s), 1);
        }
        n.setAttribute("position", new ri(r, 3));
        var c = new _u({ fog: !1, toneMapped: !1 });
        ((this.cone = new Qu(n, c)), this.add(this.cone), this.update());
      }
      ((rp.prototype = Object.create(Yn.prototype)),
        (rp.prototype.constructor = rp),
        (rp.prototype.dispose = function () {
          (this.cone.geometry.dispose(), this.cone.material.dispose());
        }),
        (rp.prototype.update = function () {
          this.light.updateMatrixWorld();
          var e = this.light.distance ? this.light.distance : 1e3,
            t = e * Math.tan(this.light.angle);
          (this.cone.scale.set(t, t, e),
            np.setFromMatrixPosition(this.light.target.matrixWorld),
            this.cone.lookAt(np),
            void 0 !== this.color
              ? this.cone.material.color.set(this.color)
              : this.cone.material.color.copy(this.light.color));
        }));
      var ip = new _n(),
        Ap = new Un(),
        op = new Un();
      function ap(e) {
        var t = [];
        e && e.isBone && t.push(e);
        for (var n = 0; n < e.children.length; n++)
          t.push.apply(t, ap(e.children[n]));
        return t;
      }
      function sp(e) {
        for (
          var t = ap(e),
            n = new di(),
            r = [],
            i = [],
            A = new Nr(0, 0, 1),
            o = new Nr(0, 1, 0),
            a = 0;
          a < t.length;
          a++
        ) {
          var s = t[a];
          s.parent &&
            s.parent.isBone &&
            (r.push(0, 0, 0),
            r.push(0, 0, 0),
            i.push(A.r, A.g, A.b),
            i.push(o.r, o.g, o.b));
        }
        (n.setAttribute("position", new ri(r, 3)),
          n.setAttribute("color", new ri(i, 3)));
        var c = new _u({
          vertexColors: !0,
          depthTest: !1,
          depthWrite: !1,
          toneMapped: !1,
          transparent: !0,
        });
        (Qu.call(this, n, c),
          (this.type = "SkeletonHelper"),
          (this.root = e),
          (this.bones = t),
          (this.matrix = e.matrixWorld),
          (this.matrixAutoUpdate = !1));
      }
      function cp(e, t, n) {
        ((this.light = e), this.light.updateMatrixWorld(), (this.color = n));
        var r = new Zl(t, 4, 2),
          i = new Wr({ wireframe: !0, fog: !1, toneMapped: !1 });
        (Qi.call(this, r, i),
          (this.type = "PointLightHelper"),
          (this.matrix = this.light.matrixWorld),
          (this.matrixAutoUpdate = !1),
          this.update());
      }
      ((sp.prototype = Object.create(Qu.prototype)),
        (sp.prototype.constructor = sp),
        (sp.prototype.isSkeletonHelper = !0),
        (sp.prototype.updateMatrixWorld = function (e) {
          var t = this.bones,
            n = this.geometry,
            r = n.getAttribute("position");
          op.getInverse(this.root.matrixWorld);
          for (var i = 0, A = 0; i < t.length; i++) {
            var o = t[i];
            o.parent &&
              o.parent.isBone &&
              (Ap.multiplyMatrices(op, o.matrixWorld),
              ip.setFromMatrixPosition(Ap),
              r.setXYZ(A, ip.x, ip.y, ip.z),
              Ap.multiplyMatrices(op, o.parent.matrixWorld),
              ip.setFromMatrixPosition(Ap),
              r.setXYZ(A + 1, ip.x, ip.y, ip.z),
              (A += 2));
          }
          ((n.getAttribute("position").needsUpdate = !0),
            Yn.prototype.updateMatrixWorld.call(this, e));
        }),
        (cp.prototype = Object.create(Qi.prototype)),
        (cp.prototype.constructor = cp),
        (cp.prototype.dispose = function () {
          (this.geometry.dispose(), this.material.dispose());
        }),
        (cp.prototype.update = function () {
          void 0 !== this.color
            ? this.material.color.set(this.color)
            : this.material.color.copy(this.light.color);
        }));
      var up = new _n(),
        lp = new Nr(),
        hp = new Nr();
      function fp(e, t, n) {
        (Yn.call(this),
          (this.light = e),
          this.light.updateMatrixWorld(),
          (this.matrix = e.matrixWorld),
          (this.matrixAutoUpdate = !1),
          (this.color = n));
        var r = new $u(t);
        (r.rotateY(0.5 * Math.PI),
          (this.material = new Wr({ wireframe: !0, fog: !1, toneMapped: !1 })),
          void 0 === this.color && (this.material.vertexColors = !0));
        var i = r.getAttribute("position"),
          A = new Float32Array(3 * i.count);
        (r.setAttribute("color", new Yr(A, 3)),
          this.add(new Qi(r, this.material)),
          this.update());
      }
      function dp(e, t, n, r) {
        ((e = e || 10),
          (t = t || 10),
          (n = new Nr(void 0 !== n ? n : 4473924)),
          (r = new Nr(void 0 !== r ? r : 8947848)));
        for (
          var i = t / 2,
            A = e / t,
            o = e / 2,
            a = [],
            s = [],
            c = 0,
            u = 0,
            l = -o;
          c <= t;
          c++, l += A
        ) {
          (a.push(-o, 0, l, o, 0, l), a.push(l, 0, -o, l, 0, o));
          var h = c === i ? n : r;
          (h.toArray(s, u),
            (u += 3),
            h.toArray(s, u),
            (u += 3),
            h.toArray(s, u),
            (u += 3),
            h.toArray(s, u),
            (u += 3));
        }
        var f = new di();
        (f.setAttribute("position", new ri(a, 3)),
          f.setAttribute("color", new ri(s, 3)));
        var d = new _u({ vertexColors: !0, toneMapped: !1 });
        (Qu.call(this, f, d), (this.type = "GridHelper"));
      }
      function pp(e, t, n, r, i, A) {
        ((e = e || 10),
          (t = t || 16),
          (n = n || 8),
          (r = r || 64),
          (i = new Nr(void 0 !== i ? i : 4473924)),
          (A = new Nr(void 0 !== A ? A : 8947848)));
        var o,
          a,
          s,
          c,
          u,
          l,
          h,
          f = [],
          d = [];
        for (c = 0; c <= t; c++)
          ((s = (c / t) * (2 * Math.PI)),
            (o = Math.sin(s) * e),
            (a = Math.cos(s) * e),
            f.push(0, 0, 0),
            f.push(o, 0, a),
            (h = 1 & c ? i : A),
            d.push(h.r, h.g, h.b),
            d.push(h.r, h.g, h.b));
        for (c = 0; c <= n; c++)
          for (h = 1 & c ? i : A, l = e - (e / n) * c, u = 0; u < r; u++)
            ((s = (u / r) * (2 * Math.PI)),
              (o = Math.sin(s) * l),
              (a = Math.cos(s) * l),
              f.push(o, 0, a),
              d.push(h.r, h.g, h.b),
              (s = ((u + 1) / r) * (2 * Math.PI)),
              (o = Math.sin(s) * l),
              (a = Math.cos(s) * l),
              f.push(o, 0, a),
              d.push(h.r, h.g, h.b));
        var p = new di();
        (p.setAttribute("position", new ri(f, 3)),
          p.setAttribute("color", new ri(d, 3)));
        var g = new _u({ vertexColors: !0, toneMapped: !1 });
        (Qu.call(this, p, g), (this.type = "PolarGridHelper"));
      }
      ((fp.prototype = Object.create(Yn.prototype)),
        (fp.prototype.constructor = fp),
        (fp.prototype.dispose = function () {
          (this.children[0].geometry.dispose(),
            this.children[0].material.dispose());
        }),
        (fp.prototype.update = function () {
          var e = this.children[0];
          if (void 0 !== this.color) this.material.color.set(this.color);
          else {
            var t = e.geometry.getAttribute("color");
            (lp.copy(this.light.color), hp.copy(this.light.groundColor));
            for (var n = 0, r = t.count; n < r; n++) {
              var i = n < r / 2 ? lp : hp;
              t.setXYZ(n, i.r, i.g, i.b);
            }
            t.needsUpdate = !0;
          }
          e.lookAt(up.setFromMatrixPosition(this.light.matrixWorld).negate());
        }),
        (dp.prototype = Object.assign(Object.create(Qu.prototype), {
          constructor: dp,
          copy: function (e) {
            return (
              Qu.prototype.copy.call(this, e),
              this.geometry.copy(e.geometry),
              this.material.copy(e.material),
              this
            );
          },
          clone: function () {
            return new this.constructor().copy(this);
          },
        })),
        (pp.prototype = Object.create(Qu.prototype)),
        (pp.prototype.constructor = pp));
      var gp = new _n(),
        mp = new _n(),
        vp = new _n();
      function yp(e, t, n) {
        (Yn.call(this),
          (this.light = e),
          this.light.updateMatrixWorld(),
          (this.matrix = e.matrixWorld),
          (this.matrixAutoUpdate = !1),
          (this.color = n),
          void 0 === t && (t = 1));
        var r = new di();
        r.setAttribute(
          "position",
          new ri([-t, t, 0, t, t, 0, t, -t, 0, -t, -t, 0, -t, t, 0], 3),
        );
        var i = new _u({ fog: !1, toneMapped: !1 });
        ((this.lightPlane = new Fu(r, i)),
          this.add(this.lightPlane),
          (r = new di()),
          r.setAttribute("position", new ri([0, 0, 0, 0, 0, 1], 3)),
          (this.targetLine = new Fu(r, i)),
          this.add(this.targetLine),
          this.update());
      }
      ((yp.prototype = Object.create(Yn.prototype)),
        (yp.prototype.constructor = yp),
        (yp.prototype.dispose = function () {
          (this.lightPlane.geometry.dispose(),
            this.lightPlane.material.dispose(),
            this.targetLine.geometry.dispose(),
            this.targetLine.material.dispose());
        }),
        (yp.prototype.update = function () {
          (gp.setFromMatrixPosition(this.light.matrixWorld),
            mp.setFromMatrixPosition(this.light.target.matrixWorld),
            vp.subVectors(mp, gp),
            this.lightPlane.lookAt(mp),
            void 0 !== this.color
              ? (this.lightPlane.material.color.set(this.color),
                this.targetLine.material.color.set(this.color))
              : (this.lightPlane.material.color.copy(this.light.color),
                this.targetLine.material.color.copy(this.light.color)),
            this.targetLine.lookAt(mp),
            (this.targetLine.scale.z = vp.length()));
        }));
      var wp = new _n(),
        Bp = new Xi();
      function bp(e) {
        var t = new di(),
          n = new _u({ color: 16777215, vertexColors: !0, toneMapped: !1 }),
          r = [],
          i = [],
          A = {},
          o = new Nr(16755200),
          a = new Nr(16711680),
          s = new Nr(43775),
          c = new Nr(16777215),
          u = new Nr(3355443);
        function l(e, t, n) {
          (h(e, n), h(t, n));
        }
        function h(e, t) {
          (r.push(0, 0, 0),
            i.push(t.r, t.g, t.b),
            void 0 === A[e] && (A[e] = []),
            A[e].push(r.length / 3 - 1));
        }
        (l("n1", "n2", o),
          l("n2", "n4", o),
          l("n4", "n3", o),
          l("n3", "n1", o),
          l("f1", "f2", o),
          l("f2", "f4", o),
          l("f4", "f3", o),
          l("f3", "f1", o),
          l("n1", "f1", o),
          l("n2", "f2", o),
          l("n3", "f3", o),
          l("n4", "f4", o),
          l("p", "n1", a),
          l("p", "n2", a),
          l("p", "n3", a),
          l("p", "n4", a),
          l("u1", "u2", s),
          l("u2", "u3", s),
          l("u3", "u1", s),
          l("c", "t", c),
          l("p", "c", u),
          l("cn1", "cn2", u),
          l("cn3", "cn4", u),
          l("cf1", "cf2", u),
          l("cf3", "cf4", u),
          t.setAttribute("position", new ri(r, 3)),
          t.setAttribute("color", new ri(i, 3)),
          Qu.call(this, t, n),
          (this.type = "CameraHelper"),
          (this.camera = e),
          this.camera.updateProjectionMatrix &&
            this.camera.updateProjectionMatrix(),
          (this.matrix = e.matrixWorld),
          (this.matrixAutoUpdate = !1),
          (this.pointMap = A),
          this.update());
      }
      function _p(e, t, n, r, i, A, o) {
        wp.set(i, A, o).unproject(r);
        var a = t[e];
        if (void 0 !== a)
          for (
            var s = n.getAttribute("position"), c = 0, u = a.length;
            c < u;
            c++
          )
            s.setXYZ(a[c], wp.x, wp.y, wp.z);
      }
      ((bp.prototype = Object.create(Qu.prototype)),
        (bp.prototype.constructor = bp),
        (bp.prototype.update = function () {
          var e = this.geometry,
            t = this.pointMap,
            n = 1,
            r = 1;
          (Bp.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse),
            _p("c", t, e, Bp, 0, 0, -1),
            _p("t", t, e, Bp, 0, 0, 1),
            _p("n1", t, e, Bp, -n, -r, -1),
            _p("n2", t, e, Bp, n, -r, -1),
            _p("n3", t, e, Bp, -n, r, -1),
            _p("n4", t, e, Bp, n, r, -1),
            _p("f1", t, e, Bp, -n, -r, 1),
            _p("f2", t, e, Bp, n, -r, 1),
            _p("f3", t, e, Bp, -n, r, 1),
            _p("f4", t, e, Bp, n, r, 1),
            _p("u1", t, e, Bp, 0.7 * n, 1.1 * r, -1),
            _p("u2", t, e, Bp, 0.7 * -n, 1.1 * r, -1),
            _p("u3", t, e, Bp, 0, 2 * r, -1),
            _p("cf1", t, e, Bp, -n, 0, 1),
            _p("cf2", t, e, Bp, n, 0, 1),
            _p("cf3", t, e, Bp, 0, -r, 1),
            _p("cf4", t, e, Bp, 0, r, 1),
            _p("cn1", t, e, Bp, -n, 0, -1),
            _p("cn2", t, e, Bp, n, 0, -1),
            _p("cn3", t, e, Bp, 0, -r, -1),
            _p("cn4", t, e, Bp, 0, r, -1),
            (e.getAttribute("position").needsUpdate = !0));
        }));
      var xp = new ur();
      function Cp(e, t) {
        ((this.object = e), void 0 === t && (t = 16776960));
        var n = new Uint16Array([
            0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3,
            7,
          ]),
          r = new Float32Array(24),
          i = new di();
        (i.setIndex(new Yr(n, 1)),
          i.setAttribute("position", new Yr(r, 3)),
          Qu.call(this, i, new _u({ color: t, toneMapped: !1 })),
          (this.type = "BoxHelper"),
          (this.matrixAutoUpdate = !1),
          this.update());
      }
      function Ep(e, t) {
        ((this.type = "Box3Helper"), (this.box = e), (t = t || 16776960));
        var n = new Uint16Array([
            0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3,
            7,
          ]),
          r = [
            1, 1, 1, -1, 1, 1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, -1, -1, -1,
            -1, 1, -1, -1,
          ],
          i = new di();
        (i.setIndex(new Yr(n, 1)),
          i.setAttribute("position", new ri(r, 3)),
          Qu.call(this, i, new _u({ color: t, toneMapped: !1 })),
          (this.type = "Box3Helper"),
          this.geometry.computeBoundingSphere());
      }
      function Mp(e, t, n) {
        ((this.plane = e), (this.size = void 0 === t ? 1 : t));
        var r = void 0 !== n ? n : 16776960,
          i = [
            1, -1, 1, -1, 1, 1, -1, -1, 1, 1, 1, 1, -1, 1, 1, -1, -1, 1, 1, -1,
            1, 1, 1, 1, 0, 0, 1, 0, 0, 0,
          ],
          A = new di();
        (A.setAttribute("position", new ri(i, 3)),
          A.computeBoundingSphere(),
          Fu.call(this, A, new _u({ color: r, toneMapped: !1 })),
          (this.type = "PlaneHelper"));
        var o = [1, 1, 1, -1, 1, 1, -1, -1, 1, 1, 1, 1, -1, -1, 1, 1, -1, 1],
          a = new di();
        (a.setAttribute("position", new ri(o, 3)),
          a.computeBoundingSphere(),
          this.add(
            new Qi(
              a,
              new Wr({
                color: r,
                opacity: 0.2,
                transparent: !0,
                depthWrite: !1,
                toneMapped: !1,
              }),
            ),
          ));
      }
      ((Cp.prototype = Object.create(Qu.prototype)),
        (Cp.prototype.constructor = Cp),
        (Cp.prototype.update = function (e) {
          if (
            (void 0 !== e &&
              console.warn(
                "THREE.BoxHelper: .update() has no longer arguments.",
              ),
            void 0 !== this.object && xp.setFromObject(this.object),
            !xp.isEmpty())
          ) {
            var t = xp.min,
              n = xp.max,
              r = this.geometry.attributes.position,
              i = r.array;
            ((i[0] = n.x),
              (i[1] = n.y),
              (i[2] = n.z),
              (i[3] = t.x),
              (i[4] = n.y),
              (i[5] = n.z),
              (i[6] = t.x),
              (i[7] = t.y),
              (i[8] = n.z),
              (i[9] = n.x),
              (i[10] = t.y),
              (i[11] = n.z),
              (i[12] = n.x),
              (i[13] = n.y),
              (i[14] = t.z),
              (i[15] = t.x),
              (i[16] = n.y),
              (i[17] = t.z),
              (i[18] = t.x),
              (i[19] = t.y),
              (i[20] = t.z),
              (i[21] = n.x),
              (i[22] = t.y),
              (i[23] = t.z),
              (r.needsUpdate = !0),
              this.geometry.computeBoundingSphere());
          }
        }),
        (Cp.prototype.setFromObject = function (e) {
          return ((this.object = e), this.update(), this);
        }),
        (Cp.prototype.copy = function (e) {
          return (
            Qu.prototype.copy.call(this, e),
            (this.object = e.object),
            this
          );
        }),
        (Cp.prototype.clone = function () {
          return new this.constructor().copy(this);
        }),
        (Ep.prototype = Object.create(Qu.prototype)),
        (Ep.prototype.constructor = Ep),
        (Ep.prototype.updateMatrixWorld = function (e) {
          var t = this.box;
          t.isEmpty() ||
            (t.getCenter(this.position),
            t.getSize(this.scale),
            this.scale.multiplyScalar(0.5),
            Yn.prototype.updateMatrixWorld.call(this, e));
        }),
        (Mp.prototype = Object.create(Fu.prototype)),
        (Mp.prototype.constructor = Mp),
        (Mp.prototype.updateMatrixWorld = function (e) {
          var t = -this.plane.constant;
          (Math.abs(t) < 1e-8 && (t = 1e-8),
            this.scale.set(0.5 * this.size, 0.5 * this.size, t),
            (this.children[0].material.side = t < 0 ? f : h),
            this.lookAt(this.plane.normal),
            Yn.prototype.updateMatrixWorld.call(this, e));
        }));
      var Sp,
        Fp,
        Tp = new _n();
      function Up(e, t, n, r, i, A) {
        (Yn.call(this),
          (this.type = "ArrowHelper"),
          void 0 === e && (e = new _n(0, 0, 1)),
          void 0 === t && (t = new _n(0, 0, 0)),
          void 0 === n && (n = 1),
          void 0 === r && (r = 16776960),
          void 0 === i && (i = 0.2 * n),
          void 0 === A && (A = 0.2 * i),
          void 0 === Sp &&
            ((Sp = new di()),
            Sp.setAttribute("position", new ri([0, 0, 0, 0, 1, 0], 3)),
            (Fp = new sh(0, 0.5, 1, 5, 1)),
            Fp.translate(0, -0.5, 0)),
          this.position.copy(t),
          (this.line = new Fu(Sp, new _u({ color: r, toneMapped: !1 }))),
          (this.line.matrixAutoUpdate = !1),
          this.add(this.line),
          (this.cone = new Qi(Fp, new Wr({ color: r, toneMapped: !1 }))),
          (this.cone.matrixAutoUpdate = !1),
          this.add(this.cone),
          this.setDirection(e),
          this.setLength(n, i, A));
      }
      function Qp(e) {
        e = e || 1;
        var t = [0, 0, 0, e, 0, 0, 0, 0, 0, 0, e, 0, 0, 0, 0, 0, 0, e],
          n = [1, 0, 0, 1, 0.6, 0, 0, 1, 0, 0.6, 1, 0, 0, 0, 1, 0, 0.6, 1],
          r = new di();
        (r.setAttribute("position", new ri(t, 3)),
          r.setAttribute("color", new ri(n, 3)));
        var i = new _u({ vertexColors: !0, toneMapped: !1 });
        (Qu.call(this, r, i), (this.type = "AxesHelper"));
      }
      ((Up.prototype = Object.create(Yn.prototype)),
        (Up.prototype.constructor = Up),
        (Up.prototype.setDirection = function (e) {
          if (e.y > 0.99999) this.quaternion.set(0, 0, 0, 1);
          else if (e.y < -0.99999) this.quaternion.set(1, 0, 0, 0);
          else {
            Tp.set(e.z, 0, -e.x).normalize();
            var t = Math.acos(e.y);
            this.quaternion.setFromAxisAngle(Tp, t);
          }
        }),
        (Up.prototype.setLength = function (e, t, n) {
          (void 0 === t && (t = 0.2 * e),
            void 0 === n && (n = 0.2 * t),
            this.line.scale.set(1, Math.max(1e-4, e - t), 1),
            this.line.updateMatrix(),
            this.cone.scale.set(n, t, n),
            (this.cone.position.y = e),
            this.cone.updateMatrix());
        }),
        (Up.prototype.setColor = function (e) {
          (this.line.material.color.set(e), this.cone.material.color.set(e));
        }),
        (Up.prototype.copy = function (e) {
          return (
            Yn.prototype.copy.call(this, e, !1),
            this.line.copy(e.line),
            this.cone.copy(e.cone),
            this
          );
        }),
        (Up.prototype.clone = function () {
          return new this.constructor().copy(this);
        }),
        (Qp.prototype = Object.create(Qu.prototype)),
        (Qp.prototype.constructor = Qp));
      var Lp = 4,
        Ip = 8,
        Hp = Math.pow(2, Ip),
        Op = [0.125, 0.215, 0.35, 0.446, 0.526, 0.582],
        Rp = Ip - Lp + 1 + Op.length,
        Pp = 20,
        Dp = { [zt]: 0, [jt]: 1, [Wt]: 2, [Yt]: 3, [Jt]: 4, [qt]: 5, [Kt]: 6 },
        Np = new Rf(),
        { _lodPlanes: kp, _sizeLods: Gp, _sigmas: Vp } = Jp(),
        zp = null,
        jp = (1 + Math.sqrt(5)) / 2,
        Kp = 1 / jp,
        Wp = [
          new _n(1, 1, 1),
          new _n(-1, 1, 1),
          new _n(1, 1, -1),
          new _n(-1, 1, -1),
          new _n(0, jp, Kp),
          new _n(0, jp, -Kp),
          new _n(Kp, 0, jp),
          new _n(-Kp, 0, jp),
          new _n(jp, Kp, 0),
          new _n(-jp, Kp, 0),
        ];
      function Xp(e) {
        ((this._renderer = e),
          (this._pingPongRenderTarget = null),
          (this._blurMaterial = $p(Pp)),
          (this._equirectShader = null),
          (this._cubemapShader = null),
          this._compileMaterial(this._blurMaterial));
      }
      function Yp(e) {
        return (
          void 0 !== e &&
          e.type === ve &&
          (e.encoding === zt || e.encoding === jt || e.encoding === Kt)
        );
      }
      function Jp() {
        for (var e = [], t = [], n = [], r = Ip, i = 0; i < Rp; i++) {
          var A = Math.pow(2, r);
          t.push(A);
          var o = 1 / A;
          (i > Ip - Lp ? (o = Op[i - Ip + Lp - 1]) : 0 == i && (o = 0),
            n.push(o));
          for (
            var a = 1 / (A - 1),
              s = -a / 2,
              c = 1 + a / 2,
              u = [s, s, c, s, c, c, s, s, c, c, s, c],
              l = 6,
              h = 6,
              f = 3,
              d = 2,
              p = 1,
              g = new Float32Array(f * h * l),
              m = new Float32Array(d * h * l),
              v = new Float32Array(p * h * l),
              y = 0;
            y < l;
            y++
          ) {
            var w = ((y % 3) * 2) / 3 - 1,
              B = y > 2 ? 0 : -1,
              b = [
                w,
                B,
                0,
                w + 2 / 3,
                B,
                0,
                w + 2 / 3,
                B + 1,
                0,
                w,
                B,
                0,
                w + 2 / 3,
                B + 1,
                0,
                w,
                B + 1,
                0,
              ];
            (g.set(b, f * h * y), m.set(u, d * h * y));
            var _ = [y, y, y, y, y, y];
            v.set(_, p * h * y);
          }
          var x = new di();
          (x.setAttribute("position", new Yr(g, f)),
            x.setAttribute("uv", new Yr(m, d)),
            x.setAttribute("faceIndex", new Yr(v, p)),
            e.push(x),
            r > Lp && r--);
        }
        return { _lodPlanes: e, _sizeLods: t, _sigmas: n };
      }
      function qp(e) {
        var t = new vn(3 * Hp, 3 * Hp, e);
        return (
          (t.texture.mapping = ae),
          (t.texture.name = "PMREM.cubeUv"),
          (t.scissorTest = !0),
          t
        );
      }
      function Zp(e, t, n, r, i) {
        (e.viewport.set(t, n, r, i), e.scissor.set(t, n, r, i));
      }
      function $p(e) {
        var t = new Float32Array(e),
          n = new _n(0, 1, 0),
          r = new ph({
            defines: { n: e },
            uniforms: {
              envMap: { value: null },
              samples: { value: 1 },
              weights: { value: t },
              latitudinal: { value: !1 },
              dTheta: { value: 0 },
              mipInt: { value: 0 },
              poleAxis: { value: n },
              inputEncoding: { value: Dp[zt] },
              outputEncoding: { value: Dp[zt] },
            },
            vertexShader: ng(),
            fragmentShader: `\nprecision mediump float;\nprecision mediump int;\nvarying vec3 vOutputDirection;\nuniform sampler2D envMap;\nuniform int samples;\nuniform float weights[n];\nuniform bool latitudinal;\nuniform float dTheta;\nuniform float mipInt;\nuniform vec3 poleAxis;\n\n${rg()}\n\n#define ENVMAP_TYPE_CUBE_UV\n#include <cube_uv_reflection_fragment>\n\nvec3 getSample(float theta, vec3 axis) {\n\tfloat cosTheta = cos(theta);\n\t// Rodrigues' axis-angle rotation\n\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t+ cross(axis, vOutputDirection) * sin(theta)\n\t\t+ axis * dot(axis, vOutputDirection) * (1.0 - cosTheta);\n\treturn bilinearCubeUV(envMap, sampleDirection, mipInt);\n}\n\nvoid main() {\n\tvec3 axis = latitudinal ? poleAxis : cross(poleAxis, vOutputDirection);\n\tif (all(equal(axis, vec3(0.0))))\n\t\taxis = vec3(vOutputDirection.z, 0.0, - vOutputDirection.x);\n\taxis = normalize(axis);\n\tgl_FragColor = vec4(0.0);\n\tgl_FragColor.rgb += weights[0] * getSample(0.0, axis);\n\tfor (int i = 1; i < n; i++) {\n\t\tif (i >= samples)\n\t\t\tbreak;\n\t\tfloat theta = dTheta * float(i);\n\t\tgl_FragColor.rgb += weights[i] * getSample(-1.0 * theta, axis);\n\t\tgl_FragColor.rgb += weights[i] * getSample(theta, axis);\n\t}\n\tgl_FragColor = linearToOutputTexel(gl_FragColor);\n}\n\t\t`,
            blending: g,
            depthTest: !1,
            depthWrite: !1,
          });
        return ((r.type = "SphericalGaussianBlur"), r);
      }
      function eg() {
        var e = new hn(1, 1),
          t = new ph({
            uniforms: {
              envMap: { value: null },
              texelSize: { value: e },
              inputEncoding: { value: Dp[zt] },
              outputEncoding: { value: Dp[zt] },
            },
            vertexShader: ng(),
            fragmentShader: `\nprecision mediump float;\nprecision mediump int;\nvarying vec3 vOutputDirection;\nuniform sampler2D envMap;\nuniform vec2 texelSize;\n\n${rg()}\n\n#include <common>\n\nvoid main() {\n\tgl_FragColor = vec4(0.0);\n\tvec3 outputDirection = normalize(vOutputDirection);\n\tvec2 uv = equirectUv( outputDirection );\n\tvec2 f = fract(uv / texelSize - 0.5);\n\tuv -= f * texelSize;\n\tvec3 tl = envMapTexelToLinear(texture2D(envMap, uv)).rgb;\n\tuv.x += texelSize.x;\n\tvec3 tr = envMapTexelToLinear(texture2D(envMap, uv)).rgb;\n\tuv.y += texelSize.y;\n\tvec3 br = envMapTexelToLinear(texture2D(envMap, uv)).rgb;\n\tuv.x -= texelSize.x;\n\tvec3 bl = envMapTexelToLinear(texture2D(envMap, uv)).rgb;\n\tvec3 tm = mix(tl, tr, f.x);\n\tvec3 bm = mix(bl, br, f.x);\n\tgl_FragColor.rgb = mix(tm, bm, f.y);\n\tgl_FragColor = linearToOutputTexel(gl_FragColor);\n}\n\t\t`,
            blending: g,
            depthTest: !1,
            depthWrite: !1,
          });
        return ((t.type = "EquirectangularToCubeUV"), t);
      }
      function tg() {
        var e = new ph({
          uniforms: {
            envMap: { value: null },
            inputEncoding: { value: Dp[zt] },
            outputEncoding: { value: Dp[zt] },
          },
          vertexShader: ng(),
          fragmentShader: `\nprecision mediump float;\nprecision mediump int;\nvarying vec3 vOutputDirection;\nuniform samplerCube envMap;\n\n${rg()}\n\nvoid main() {\n\tgl_FragColor = vec4(0.0);\n\tgl_FragColor.rgb = envMapTexelToLinear(textureCube(envMap, vec3( - vOutputDirection.x, vOutputDirection.yz ))).rgb;\n\tgl_FragColor = linearToOutputTexel(gl_FragColor);\n}\n\t\t`,
          blending: g,
          depthTest: !1,
          depthWrite: !1,
        });
        return ((e.type = "CubemapToCubeUV"), e);
      }
      function ng() {
        return "\nprecision mediump float;\nprecision mediump int;\nattribute vec3 position;\nattribute vec2 uv;\nattribute float faceIndex;\nvarying vec3 vOutputDirection;\n\n// RH coordinate system; PMREM face-indexing convention\nvec3 getDirection(vec2 uv, float face) {\n\tuv = 2.0 * uv - 1.0;\n\tvec3 direction = vec3(uv, 1.0);\n\tif (face == 0.0) {\n\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\t} else if (face == 1.0) {\n\t\tdirection = direction.xzy;\n\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\t} else if (face == 2.0) {\n\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\t} else if (face == 3.0) {\n\t\tdirection = direction.zyx;\n\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\t} else if (face == 4.0) {\n\t\tdirection = direction.xzy;\n\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\t} else if (face == 5.0) {\n\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\t}\n\treturn direction;\n}\n\nvoid main() {\n\tvOutputDirection = getDirection(uv, faceIndex);\n\tgl_Position = vec4( position, 1.0 );\n}\n\t";
      }
      function rg() {
        return "\nuniform int inputEncoding;\nuniform int outputEncoding;\n\n#include <encodings_pars_fragment>\n\nvec4 inputTexelToLinear(vec4 value){\n\tif(inputEncoding == 0){\n\t\treturn value;\n\t}else if(inputEncoding == 1){\n\t\treturn sRGBToLinear(value);\n\t}else if(inputEncoding == 2){\n\t\treturn RGBEToLinear(value);\n\t}else if(inputEncoding == 3){\n\t\treturn RGBMToLinear(value, 7.0);\n\t}else if(inputEncoding == 4){\n\t\treturn RGBMToLinear(value, 16.0);\n\t}else if(inputEncoding == 5){\n\t\treturn RGBDToLinear(value, 256.0);\n\t}else{\n\t\treturn GammaToLinear(value, 2.2);\n\t}\n}\n\nvec4 linearToOutputTexel(vec4 value){\n\tif(outputEncoding == 0){\n\t\treturn value;\n\t}else if(outputEncoding == 1){\n\t\treturn LinearTosRGB(value);\n\t}else if(outputEncoding == 2){\n\t\treturn LinearToRGBE(value);\n\t}else if(outputEncoding == 3){\n\t\treturn LinearToRGBM(value, 7.0);\n\t}else if(outputEncoding == 4){\n\t\treturn LinearToRGBM(value, 16.0);\n\t}else if(outputEncoding == 5){\n\t\treturn LinearToRGBD(value, 256.0);\n\t}else{\n\t\treturn LinearToGamma(value, 2.2);\n\t}\n}\n\nvec4 envMapTexelToLinear(vec4 color) {\n\treturn inputTexelToLinear(color);\n}\n\t";
      }
      Xp.prototype = {
        constructor: Xp,
        fromScene: function (e, t = 0, n = 0.1, r = 100) {
          zp = this._renderer.getRenderTarget();
          var i = this._allocateTargets();
          return (
            this._sceneToCubeUV(e, n, r, i),
            t > 0 && this._blur(i, 0, 0, t),
            this._applyPMREM(i),
            this._cleanup(i),
            i
          );
        },
        fromEquirectangular: function (e) {
          return (
            (e.magFilter = he),
            (e.minFilter = he),
            (e.generateMipmaps = !1),
            this.fromCubemap(e)
          );
        },
        fromCubemap: function (e) {
          zp = this._renderer.getRenderTarget();
          var t = this._allocateTargets(e);
          return (
            this._textureToCubeUV(e, t),
            this._applyPMREM(t),
            this._cleanup(t),
            t
          );
        },
        compileCubemapShader: function () {
          null === this._cubemapShader &&
            ((this._cubemapShader = tg()),
            this._compileMaterial(this._cubemapShader));
        },
        compileEquirectangularShader: function () {
          null === this._equirectShader &&
            ((this._equirectShader = eg()),
            this._compileMaterial(this._equirectShader));
        },
        dispose: function () {
          (this._blurMaterial.dispose(),
            null !== this._cubemapShader && this._cubemapShader.dispose(),
            null !== this._equirectShader && this._equirectShader.dispose());
          for (var e = 0; e < kp.length; e++) kp[e].dispose();
        },
        _cleanup: function (e) {
          (this._pingPongRenderTarget.dispose(),
            this._renderer.setRenderTarget(zp),
            (e.scissorTest = !1),
            e.setSize(e.width, e.height));
        },
        _allocateTargets: function (e) {
          var t = {
              magFilter: he,
              minFilter: he,
              generateMipmaps: !1,
              type: ve,
              format: He,
              encoding: Yp(e) ? e.encoding : Wt,
              depthBuffer: !1,
              stencilBuffer: !1,
            },
            n = qp(t);
          return (
            (n.depthBuffer = !e),
            (this._pingPongRenderTarget = qp(t)),
            n
          );
        },
        _compileMaterial: function (e) {
          var t = new Qi(kp[0], e);
          this._renderer.compile(t, Np);
        },
        _sceneToCubeUV: function (e, t, n, r) {
          var i = 90,
            A = 1,
            o = new Yi(i, A, t, n),
            a = [1, -1, 1, 1, 1, 1],
            s = [1, 1, 1, -1, -1, -1],
            c = this._renderer,
            u = c.outputEncoding,
            l = c.toneMapping,
            h = c.toneMappingExposure,
            f = c.getClearColor(),
            d = c.getClearAlpha();
          ((c.toneMapping = J),
            (c.toneMappingExposure = 1),
            (c.outputEncoding = zt));
          var p = e.background;
          if (p && p.isColor) {
            p.convertSRGBToLinear();
            var g = Math.max(p.r, p.g, p.b),
              m = Math.min(Math.max(Math.ceil(Math.log2(g)), -128), 127);
            p = p.multiplyScalar(Math.pow(2, -m));
            var v = (m + 128) / 255;
            (c.setClearColor(p, v), (e.background = null));
          }
          for (var y = 0; y < 6; y++) {
            var w = y % 3;
            (0 == w
              ? (o.up.set(0, a[y], 0), o.lookAt(s[y], 0, 0))
              : 1 == w
                ? (o.up.set(0, 0, a[y]), o.lookAt(0, s[y], 0))
                : (o.up.set(0, a[y], 0), o.lookAt(0, 0, s[y])),
              Zp(r, w * Hp, y > 2 ? Hp : 0, Hp, Hp),
              c.setRenderTarget(r),
              c.render(e, o));
          }
          ((c.toneMapping = l),
            (c.toneMappingExposure = h),
            (c.outputEncoding = u),
            c.setClearColor(f, d));
        },
        _textureToCubeUV: function (e, t) {
          var n = this._renderer;
          e.isCubeTexture
            ? null == this._cubemapShader && (this._cubemapShader = tg())
            : null == this._equirectShader && (this._equirectShader = eg());
          var r = e.isCubeTexture ? this._cubemapShader : this._equirectShader,
            i = new Qi(kp[0], r),
            A = r.uniforms;
          ((A["envMap"].value = e),
            e.isCubeTexture ||
              A["texelSize"].value.set(1 / e.image.width, 1 / e.image.height),
            (A["inputEncoding"].value = Dp[e.encoding]),
            (A["outputEncoding"].value = Dp[t.texture.encoding]),
            Zp(t, 0, 0, 3 * Hp, 2 * Hp),
            n.setRenderTarget(t),
            n.render(i, Np));
        },
        _applyPMREM: function (e) {
          var t = this._renderer,
            n = t.autoClear;
          t.autoClear = !1;
          for (var r = 1; r < Rp; r++) {
            var i = Math.sqrt(Vp[r] * Vp[r] - Vp[r - 1] * Vp[r - 1]),
              A = Wp[(r - 1) % Wp.length];
            this._blur(e, r - 1, r, i, A);
          }
          t.autoClear = n;
        },
        _blur: function (e, t, n, r, i) {
          var A = this._pingPongRenderTarget;
          (this._halfBlur(e, A, t, n, r, "latitudinal", i),
            this._halfBlur(A, e, n, n, r, "longitudinal", i));
        },
        _halfBlur: function (e, t, n, r, i, A, o) {
          var a = this._renderer,
            s = this._blurMaterial;
          "latitudinal" !== A &&
            "longitudinal" !== A &&
            console.log(
              "blur direction must be either latitudinal or longitudinal!",
            );
          var c = 3,
            u = new Qi(kp[r], s),
            l = s.uniforms,
            h = Gp[n] - 1,
            f = isFinite(i) ? Math.PI / (2 * h) : (2 * Math.PI) / (2 * Pp - 1),
            d = i / f,
            p = isFinite(i) ? 1 + Math.floor(c * d) : Pp;
          p > Pp &&
            console.warn(
              `sigmaRadians, ${i}, is too large and will clip, as it requested ${p} samples when the maximum is set to ${Pp}`,
            );
          for (var g = [], m = 0, v = 0; v < Pp; ++v) {
            var y = v / d,
              w = Math.exp((-y * y) / 2);
            (g.push(w), 0 == v ? (m += w) : v < p && (m += 2 * w));
          }
          for (v = 0; v < g.length; v++) g[v] = g[v] / m;
          ((l["envMap"].value = e.texture),
            (l["samples"].value = p),
            (l["weights"].value = g),
            (l["latitudinal"].value = "latitudinal" === A),
            o && (l["poleAxis"].value = o),
            (l["dTheta"].value = f),
            (l["mipInt"].value = Ip - n),
            (l["inputEncoding"].value = Dp[e.texture.encoding]),
            (l["outputEncoding"].value = Dp[e.texture.encoding]));
          var B = Gp[r],
            b =
              ((y = 3 * Math.max(0, Hp - 2 * B)),
              (0 === r ? 0 : 2 * Hp) + 2 * B * (r > Ip - Lp ? r - Ip + Lp : 0));
          (Zp(t, y, b, 3 * B, 2 * B), a.setRenderTarget(t), a.render(u, Np));
        },
      };
      function ig(e) {
        (console.warn(
          "THREE.ClosedSplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead.",
        ),
          sf.call(this, e),
          (this.type = "catmullrom"),
          (this.closed = !0));
      }
      function Ag(e) {
        (console.warn(
          "THREE.SplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead.",
        ),
          sf.call(this, e),
          (this.type = "catmullrom"));
      }
      function og(e) {
        (console.warn(
          "THREE.Spline has been removed. Use THREE.CatmullRomCurve3 instead.",
        ),
          sf.call(this, e),
          (this.type = "catmullrom"));
      }
      (($h.create = function (e, t) {
        return (
          console.log("THREE.Curve.create() has been deprecated"),
          (e.prototype = Object.create($h.prototype)),
          (e.prototype.constructor = e),
          (e.prototype.getPoint = t),
          e
        );
      }),
        Object.assign(Mf.prototype, {
          createPointsGeometry: function (e) {
            console.warn(
              "THREE.CurvePath: .createPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.",
            );
            var t = this.getPoints(e);
            return this.createGeometry(t);
          },
          createSpacedPointsGeometry: function (e) {
            console.warn(
              "THREE.CurvePath: .createSpacedPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.",
            );
            var t = this.getSpacedPoints(e);
            return this.createGeometry(t);
          },
          createGeometry: function (e) {
            console.warn(
              "THREE.CurvePath: .createGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.",
            );
            for (var t = new Di(), n = 0, r = e.length; n < r; n++) {
              var i = e[n];
              t.vertices.push(new _n(i.x, i.y, i.z || 0));
            }
            return t;
          },
        }),
        Object.assign(Sf.prototype, {
          fromPoints: function (e) {
            return (
              console.warn(
                "THREE.Path: .fromPoints() has been renamed to .setFromPoints().",
              ),
              this.setFromPoints(e)
            );
          },
        }),
        (ig.prototype = Object.create(sf.prototype)),
        (Ag.prototype = Object.create(sf.prototype)),
        (og.prototype = Object.create(sf.prototype)),
        Object.assign(og.prototype, {
          initFromArray: function () {
            console.log("THREE.Spline: .initFromArray() has been removed.");
          },
          getControlPointsArray: function () {
            console.log(
              "THREE.Spline: .getControlPointsArray() has been removed.",
            );
          },
          reparametrizeByArcLength: function () {
            console.log(
              "THREE.Spline: .reparametrizeByArcLength() has been removed.",
            );
          },
        }),
        (dp.prototype.setColors = function () {
          console.log(
            "THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.",
          );
        }),
        (sp.prototype.update = function () {
          console.log(
            "THREE.SkeletonHelper: update() no longer needs to be called.",
          );
        }),
        Object.assign(zh.prototype, {
          extractUrlBase: function (e) {
            return (
              console.warn(
                "THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead.",
              ),
              jf.extractUrlBase(e)
            );
          },
        }),
        (zh.Handlers = {
          add: function () {
            console.log(
              "THREE.Loader: Handlers.add() has been removed. Use LoadingManager.addHandler() instead.",
            );
          },
          get: function () {
            console.log(
              "THREE.Loader: Handlers.get() has been removed. Use LoadingManager.getHandler() instead.",
            );
          },
        }),
        Object.assign(Jf.prototype, {
          setTexturePath: function (e) {
            return (
              console.warn(
                "THREE.ObjectLoader: .setTexturePath() has been renamed to .setResourcePath().",
              ),
              this.setResourcePath(e)
            );
          },
        }),
        Object.assign(qd.prototype, {
          center: function (e) {
            return (
              console.warn(
                "THREE.Box2: .center() has been renamed to .getCenter().",
              ),
              this.getCenter(e)
            );
          },
          empty: function () {
            return (
              console.warn(
                "THREE.Box2: .empty() has been renamed to .isEmpty().",
              ),
              this.isEmpty()
            );
          },
          isIntersectionBox: function (e) {
            return (
              console.warn(
                "THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox().",
              ),
              this.intersectsBox(e)
            );
          },
          size: function (e) {
            return (
              console.warn(
                "THREE.Box2: .size() has been renamed to .getSize().",
              ),
              this.getSize(e)
            );
          },
        }),
        Object.assign(ur.prototype, {
          center: function (e) {
            return (
              console.warn(
                "THREE.Box3: .center() has been renamed to .getCenter().",
              ),
              this.getCenter(e)
            );
          },
          empty: function () {
            return (
              console.warn(
                "THREE.Box3: .empty() has been renamed to .isEmpty().",
              ),
              this.isEmpty()
            );
          },
          isIntersectionBox: function (e) {
            return (
              console.warn(
                "THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox().",
              ),
              this.intersectsBox(e)
            );
          },
          isIntersectionSphere: function (e) {
            return (
              console.warn(
                "THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere().",
              ),
              this.intersectsSphere(e)
            );
          },
          size: function (e) {
            return (
              console.warn(
                "THREE.Box3: .size() has been renamed to .getSize().",
              ),
              this.getSize(e)
            );
          },
        }),
        Object.assign(fr.prototype, {
          empty: function () {
            return (
              console.warn(
                "THREE.Sphere: .empty() has been renamed to .isEmpty().",
              ),
              this.isEmpty()
            );
          },
        }),
        (rA.prototype.setFromMatrix = function (e) {
          return (
            console.warn(
              "THREE.Frustum: .setFromMatrix() has been renamed to .setFromProjectionMatrix().",
            ),
            this.setFromProjectionMatrix(e)
          );
        }),
        (ep.prototype.center = function (e) {
          return (
            console.warn(
              "THREE.Line3: .center() has been renamed to .getCenter().",
            ),
            this.getCenter(e)
          );
        }),
        Object.assign(ln, {
          random16: function () {
            return (
              console.warn(
                "THREE.Math: .random16() has been deprecated. Use Math.random() instead.",
              ),
              Math.random()
            );
          },
          nearestPowerOfTwo: function (e) {
            return (
              console.warn(
                "THREE.Math: .nearestPowerOfTwo() has been renamed to .floorPowerOfTwo().",
              ),
              ln.floorPowerOfTwo(e)
            );
          },
          nextPowerOfTwo: function (e) {
            return (
              console.warn(
                "THREE.Math: .nextPowerOfTwo() has been renamed to .ceilPowerOfTwo().",
              ),
              ln.ceilPowerOfTwo(e)
            );
          },
        }),
        Object.assign(fn.prototype, {
          flattenToArrayOffset: function (e, t) {
            return (
              console.warn(
                "THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.",
              ),
              this.toArray(e, t)
            );
          },
          multiplyVector3: function (e) {
            return (
              console.warn(
                "THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead.",
              ),
              e.applyMatrix3(this)
            );
          },
          multiplyVector3Array: function () {
            console.log(
              "THREE.Matrix3: .multiplyVector3Array() has been removed.",
            );
          },
          applyToBufferAttribute: function (e) {
            return (
              console.warn(
                "THREE.Matrix3: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix3( matrix ) instead.",
              ),
              e.applyMatrix3(this)
            );
          },
          applyToVector3Array: function () {
            console.log(
              "THREE.Matrix3: .applyToVector3Array() has been removed.",
            );
          },
        }),
        Object.assign(Un.prototype, {
          extractPosition: function (e) {
            return (
              console.warn(
                "THREE.Matrix4: .extractPosition() has been renamed to .copyPosition().",
              ),
              this.copyPosition(e)
            );
          },
          flattenToArrayOffset: function (e, t) {
            return (
              console.warn(
                "THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.",
              ),
              this.toArray(e, t)
            );
          },
          getPosition: function () {
            return (
              console.warn(
                "THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead.",
              ),
              new _n().setFromMatrixColumn(this, 3)
            );
          },
          setRotationFromQuaternion: function (e) {
            return (
              console.warn(
                "THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion().",
              ),
              this.makeRotationFromQuaternion(e)
            );
          },
          multiplyToArray: function () {
            console.warn("THREE.Matrix4: .multiplyToArray() has been removed.");
          },
          multiplyVector3: function (e) {
            return (
              console.warn(
                "THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead.",
              ),
              e.applyMatrix4(this)
            );
          },
          multiplyVector4: function (e) {
            return (
              console.warn(
                "THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead.",
              ),
              e.applyMatrix4(this)
            );
          },
          multiplyVector3Array: function () {
            console.log(
              "THREE.Matrix4: .multiplyVector3Array() has been removed.",
            );
          },
          rotateAxis: function (e) {
            (console.warn(
              "THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead.",
            ),
              e.transformDirection(this));
          },
          crossVector: function (e) {
            return (
              console.warn(
                "THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead.",
              ),
              e.applyMatrix4(this)
            );
          },
          translate: function () {
            console.log("THREE.Matrix4: .translate() has been removed.");
          },
          rotateX: function () {
            console.log("THREE.Matrix4: .rotateX() has been removed.");
          },
          rotateY: function () {
            console.log("THREE.Matrix4: .rotateY() has been removed.");
          },
          rotateZ: function () {
            console.log("THREE.Matrix4: .rotateZ() has been removed.");
          },
          rotateByAxis: function () {
            console.log("THREE.Matrix4: .rotateByAxis() has been removed.");
          },
          applyToBufferAttribute: function (e) {
            return (
              console.warn(
                "THREE.Matrix4: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix4( matrix ) instead.",
              ),
              e.applyMatrix4(this)
            );
          },
          applyToVector3Array: function () {
            console.log(
              "THREE.Matrix4: .applyToVector3Array() has been removed.",
            );
          },
          makeFrustum: function (e, t, n, r, i, A) {
            return (
              console.warn(
                "THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead.",
              ),
              this.makePerspective(e, t, r, n, i, A)
            );
          },
        }),
        (Cr.prototype.isIntersectionLine = function (e) {
          return (
            console.warn(
              "THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine().",
            ),
            this.intersectsLine(e)
          );
        }),
        (wn.prototype.multiplyVector3 = function (e) {
          return (
            console.warn(
              "THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead.",
            ),
            e.applyQuaternion(this)
          );
        }),
        Object.assign(Br.prototype, {
          isIntersectionBox: function (e) {
            return (
              console.warn(
                "THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox().",
              ),
              this.intersectsBox(e)
            );
          },
          isIntersectionPlane: function (e) {
            return (
              console.warn(
                "THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane().",
              ),
              this.intersectsPlane(e)
            );
          },
          isIntersectionSphere: function (e) {
            return (
              console.warn(
                "THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere().",
              ),
              this.intersectsSphere(e)
            );
          },
        }),
        Object.assign(Or.prototype, {
          area: function () {
            return (
              console.warn(
                "THREE.Triangle: .area() has been renamed to .getArea().",
              ),
              this.getArea()
            );
          },
          barycoordFromPoint: function (e, t) {
            return (
              console.warn(
                "THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().",
              ),
              this.getBarycoord(e, t)
            );
          },
          midpoint: function (e) {
            return (
              console.warn(
                "THREE.Triangle: .midpoint() has been renamed to .getMidpoint().",
              ),
              this.getMidpoint(e)
            );
          },
          normal: function (e) {
            return (
              console.warn(
                "THREE.Triangle: .normal() has been renamed to .getNormal().",
              ),
              this.getNormal(e)
            );
          },
          plane: function (e) {
            return (
              console.warn(
                "THREE.Triangle: .plane() has been renamed to .getPlane().",
              ),
              this.getPlane(e)
            );
          },
        }),
        Object.assign(Or, {
          barycoordFromPoint: function (e, t, n, r, i) {
            return (
              console.warn(
                "THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().",
              ),
              Or.getBarycoord(e, t, n, r, i)
            );
          },
          normal: function (e, t, n, r) {
            return (
              console.warn(
                "THREE.Triangle: .normal() has been renamed to .getNormal().",
              ),
              Or.getNormal(e, t, n, r)
            );
          },
        }),
        Object.assign(Ff.prototype, {
          extractAllPoints: function (e) {
            return (
              console.warn(
                "THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead.",
              ),
              this.extractPoints(e)
            );
          },
          extrude: function (e) {
            return (
              console.warn(
                "THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead.",
              ),
              new jl(this, e)
            );
          },
          makeGeometry: function (e) {
            return (
              console.warn(
                "THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead.",
              ),
              new rh(this, e)
            );
          },
        }),
        Object.assign(hn.prototype, {
          fromAttribute: function (e, t, n) {
            return (
              console.warn(
                "THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute().",
              ),
              this.fromBufferAttribute(e, t, n)
            );
          },
          distanceToManhattan: function (e) {
            return (
              console.warn(
                "THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo().",
              ),
              this.manhattanDistanceTo(e)
            );
          },
          lengthManhattan: function () {
            return (
              console.warn(
                "THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength().",
              ),
              this.manhattanLength()
            );
          },
        }),
        Object.assign(_n.prototype, {
          setEulerFromRotationMatrix: function () {
            console.log(
              "THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.",
            );
          },
          setEulerFromQuaternion: function () {
            console.log(
              "THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.",
            );
          },
          getPositionFromMatrix: function (e) {
            return (
              console.warn(
                "THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition().",
              ),
              this.setFromMatrixPosition(e)
            );
          },
          getScaleFromMatrix: function (e) {
            return (
              console.warn(
                "THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale().",
              ),
              this.setFromMatrixScale(e)
            );
          },
          getColumnFromMatrix: function (e, t) {
            return (
              console.warn(
                "THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn().",
              ),
              this.setFromMatrixColumn(t, e)
            );
          },
          applyProjection: function (e) {
            return (
              console.warn(
                "THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead.",
              ),
              this.applyMatrix4(e)
            );
          },
          fromAttribute: function (e, t, n) {
            return (
              console.warn(
                "THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute().",
              ),
              this.fromBufferAttribute(e, t, n)
            );
          },
          distanceToManhattan: function (e) {
            return (
              console.warn(
                "THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo().",
              ),
              this.manhattanDistanceTo(e)
            );
          },
          lengthManhattan: function () {
            return (
              console.warn(
                "THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength().",
              ),
              this.manhattanLength()
            );
          },
        }),
        Object.assign(mn.prototype, {
          fromAttribute: function (e, t, n) {
            return (
              console.warn(
                "THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute().",
              ),
              this.fromBufferAttribute(e, t, n)
            );
          },
          lengthManhattan: function () {
            return (
              console.warn(
                "THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength().",
              ),
              this.manhattanLength()
            );
          },
        }),
        Object.assign(Di.prototype, {
          computeTangents: function () {
            console.log(
              "THREE.Geometry: .computeTangents() has been removed.",
            );
          },
          computeLineDistances: function () {
            console.log(
              "THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.",
            );
          },
          applyMatrix: function (e) {
            return (
              console.warn(
                "THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4().",
              ),
              this.applyMatrix4(e)
            );
          },
        }),
        Object.assign(Yn.prototype, {
          getChildByName: function (e) {
            return (
              console.warn(
                "THREE.Object3D: .getChildByName() has been renamed to .getObjectByName().",
              ),
              this.getObjectByName(e)
            );
          },
          renderDepth: function () {
            console.warn(
              "THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.",
            );
          },
          translate: function (e, t) {
            return (
              console.warn(
                "THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead.",
              ),
              this.translateOnAxis(t, e)
            );
          },
          getWorldRotation: function () {
            console.log(
              "THREE.Object3D: .getWorldRotation() has been removed. Use THREE.Object3D.getWorldQuaternion( target ) instead.",
            );
          },
          applyMatrix: function (e) {
            return (
              console.warn(
                "THREE.Object3D: .applyMatrix() has been renamed to .applyMatrix4().",
              ),
              this.applyMatrix4(e)
            );
          },
        }),
        Object.defineProperties(Yn.prototype, {
          eulerOrder: {
            get: function () {
              return (
                console.warn(
                  "THREE.Object3D: .eulerOrder is now .rotation.order.",
                ),
                this.rotation.order
              );
            },
            set: function (e) {
              (console.warn(
                "THREE.Object3D: .eulerOrder is now .rotation.order.",
              ),
                (this.rotation.order = e));
            },
          },
          useQuaternion: {
            get: function () {
              console.warn(
                "THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.",
              );
            },
            set: function () {
              console.warn(
                "THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.",
              );
            },
          },
        }),
        Object.assign(Qi.prototype, {
          setDrawMode: function () {
            console.log(
              "THREE.Mesh: .setDrawMode() has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.",
            );
          },
        }),
        Object.defineProperties(Qi.prototype, {
          drawMode: {
            get: function () {
              return (
                console.log(
                  "THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode.",
                ),
                kt
              );
            },
            set: function () {
              console.log(
                "THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.",
              );
            },
          },
        }),
        Object.defineProperties(hu.prototype, {
          objects: {
            get: function () {
              return (
                console.warn(
                  "THREE.LOD: .objects has been renamed to .levels.",
                ),
                this.levels
              );
            },
          },
        }),
        Object.defineProperty(gu.prototype, "useVertexTexture", {
          get: function () {
            console.warn("THREE.Skeleton: useVertexTexture has been removed.");
          },
          set: function () {
            console.warn("THREE.Skeleton: useVertexTexture has been removed.");
          },
        }),
        (fu.prototype.initBones = function () {
          console.log("THREE.SkinnedMesh: initBones() has been removed.");
        }),
        Object.defineProperty($h.prototype, "__arcLengthDivisions", {
          get: function () {
            return (
              console.warn(
                "THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions.",
              ),
              this.arcLengthDivisions
            );
          },
          set: function (e) {
            (console.warn(
              "THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions.",
            ),
              (this.arcLengthDivisions = e));
          },
        }),
        (Yi.prototype.setLens = function (e, t) {
          (console.warn(
            "THREE.PerspectiveCamera.setLens is deprecated. Use .setFocalLength and .filmGauge for a photographic setup.",
          ),
            void 0 !== t && (this.filmGauge = t),
            this.setFocalLength(e));
        }),
        Object.defineProperties(Tf.prototype, {
          onlyShadow: {
            set: function () {
              console.warn("THREE.Light: .onlyShadow has been removed.");
            },
          },
          shadowCameraFov: {
            set: function (e) {
              (console.warn(
                "THREE.Light: .shadowCameraFov is now .shadow.camera.fov.",
              ),
                (this.shadow.camera.fov = e));
            },
          },
          shadowCameraLeft: {
            set: function (e) {
              (console.warn(
                "THREE.Light: .shadowCameraLeft is now .shadow.camera.left.",
              ),
                (this.shadow.camera.left = e));
            },
          },
          shadowCameraRight: {
            set: function (e) {
              (console.warn(
                "THREE.Light: .shadowCameraRight is now .shadow.camera.right.",
              ),
                (this.shadow.camera.right = e));
            },
          },
          shadowCameraTop: {
            set: function (e) {
              (console.warn(
                "THREE.Light: .shadowCameraTop is now .shadow.camera.top.",
              ),
                (this.shadow.camera.top = e));
            },
          },
          shadowCameraBottom: {
            set: function (e) {
              (console.warn(
                "THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom.",
              ),
                (this.shadow.camera.bottom = e));
            },
          },
          shadowCameraNear: {
            set: function (e) {
              (console.warn(
                "THREE.Light: .shadowCameraNear is now .shadow.camera.near.",
              ),
                (this.shadow.camera.near = e));
            },
          },
          shadowCameraFar: {
            set: function (e) {
              (console.warn(
                "THREE.Light: .shadowCameraFar is now .shadow.camera.far.",
              ),
                (this.shadow.camera.far = e));
            },
          },
          shadowCameraVisible: {
            set: function () {
              console.warn(
                "THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.",
              );
            },
          },
          shadowBias: {
            set: function (e) {
              (console.warn("THREE.Light: .shadowBias is now .shadow.bias."),
                (this.shadow.bias = e));
            },
          },
          shadowDarkness: {
            set: function () {
              console.warn("THREE.Light: .shadowDarkness has been removed.");
            },
          },
          shadowMapWidth: {
            set: function (e) {
              (console.warn(
                "THREE.Light: .shadowMapWidth is now .shadow.mapSize.width.",
              ),
                (this.shadow.mapSize.width = e));
            },
          },
          shadowMapHeight: {
            set: function (e) {
              (console.warn(
                "THREE.Light: .shadowMapHeight is now .shadow.mapSize.height.",
              ),
                (this.shadow.mapSize.height = e));
            },
          },
        }),
        Object.defineProperties(Yr.prototype, {
          length: {
            get: function () {
              return (
                console.warn(
                  "THREE.BufferAttribute: .length has been deprecated. Use .count instead.",
                ),
                this.array.length
              );
            },
          },
          dynamic: {
            get: function () {
              return (
                console.warn(
                  "THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead.",
                ),
                this.usage === on
              );
            },
            set: function () {
              (console.warn(
                "THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead.",
              ),
                this.setUsage(on));
            },
          },
        }),
        Object.assign(Yr.prototype, {
          setDynamic: function (e) {
            return (
              console.warn(
                "THREE.BufferAttribute: .setDynamic() has been deprecated. Use .setUsage() instead.",
              ),
              this.setUsage(!0 === e ? on : An),
              this
            );
          },
          copyIndicesArray: function () {
            console.log(
              "THREE.BufferAttribute: .copyIndicesArray() has been removed.",
            );
          },
          setArray: function () {
            console.log(
              "THREE.BufferAttribute: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers",
            );
          },
        }),
        Object.assign(di.prototype, {
          addIndex: function (e) {
            (console.warn(
              "THREE.BufferGeometry: .addIndex() has been renamed to .setIndex().",
            ),
              this.setIndex(e));
          },
          addAttribute: function (e, t) {
            return (
              console.warn(
                "THREE.BufferGeometry: .addAttribute() has been renamed to .setAttribute().",
              ),
              (t && t.isBufferAttribute) ||
              (t && t.isInterleavedBufferAttribute)
                ? "index" === e
                  ? (console.warn(
                      "THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute.",
                    ),
                    this.setIndex(t),
                    this)
                  : this.setAttribute(e, t)
                : (console.warn(
                    "THREE.BufferGeometry: .addAttribute() now expects ( name, attribute ).",
                  ),
                  this.setAttribute(e, new Yr(arguments[1], arguments[2])))
            );
          },
          addDrawCall: function (e, t, n) {
            (void 0 !== n &&
              console.warn(
                "THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset.",
              ),
              console.warn(
                "THREE.BufferGeometry: .addDrawCall() is now .addGroup().",
              ),
              this.addGroup(e, t));
          },
          clearDrawCalls: function () {
            (console.warn(
              "THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups().",
            ),
              this.clearGroups());
          },
          computeTangents: function () {
            console.warn(
              "THREE.BufferGeometry: .computeTangents() has been removed.",
            );
          },
          computeOffsets: function () {
            console.warn(
              "THREE.BufferGeometry: .computeOffsets() has been removed.",
            );
          },
          removeAttribute: function (e) {
            return (
              console.warn(
                "THREE.BufferGeometry: .removeAttribute() has been renamed to .deleteAttribute().",
              ),
              this.deleteAttribute(e)
            );
          },
          applyMatrix: function (e) {
            return (
              console.warn(
                "THREE.BufferGeometry: .applyMatrix() has been renamed to .applyMatrix4().",
              ),
              this.applyMatrix4(e)
            );
          },
        }),
        Object.defineProperties(di.prototype, {
          drawcalls: {
            get: function () {
              return (
                console.log(
                  "THREE.BufferGeometry: .drawcalls has been renamed to .groups.",
                ),
                this.groups
              );
            },
          },
          offsets: {
            get: function () {
              return (
                console.warn(
                  "THREE.BufferGeometry: .offsets has been renamed to .groups.",
                ),
                this.groups
              );
            },
          },
        }),
        Object.defineProperties(Kf.prototype, {
          maxInstancedCount: {
            get: function () {
              return (
                console.warn(
                  "THREE.InstancedBufferGeometry: .maxInstancedCount has been renamed to .instanceCount.",
                ),
                this.instanceCount
              );
            },
            set: function (e) {
              (console.warn(
                "THREE.InstancedBufferGeometry: .maxInstancedCount has been renamed to .instanceCount.",
              ),
                (this.instanceCount = e));
            },
          },
        }),
        Object.defineProperties(jd.prototype, {
          linePrecision: {
            get: function () {
              return (
                console.warn(
                  "THREE.Raycaster: .linePrecision has been deprecated. Use .params.Line.threshold instead.",
                ),
                this.params.Line.threshold
              );
            },
            set: function (e) {
              (console.warn(
                "THREE.Raycaster: .linePrecision has been deprecated. Use .params.Line.threshold instead.",
              ),
                (this.params.Line.threshold = e));
            },
          },
        }),
        Object.defineProperties(jc.prototype, {
          dynamic: {
            get: function () {
              return (
                console.warn(
                  "THREE.InterleavedBuffer: .length has been deprecated. Use .usage instead.",
                ),
                this.usage === on
              );
            },
            set: function (e) {
              (console.warn(
                "THREE.InterleavedBuffer: .length has been deprecated. Use .usage instead.",
              ),
                this.setUsage(e));
            },
          },
        }),
        Object.assign(jc.prototype, {
          setDynamic: function (e) {
            return (
              console.warn(
                "THREE.InterleavedBuffer: .setDynamic() has been deprecated. Use .setUsage() instead.",
              ),
              this.setUsage(!0 === e ? on : An),
              this
            );
          },
          setArray: function () {
            console.log(
              "THREE.InterleavedBuffer: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers",
            );
          },
        }),
        Object.assign(Kl.prototype, {
          getArrays: function () {
            console.log(
              "THREE.ExtrudeBufferGeometry: .getArrays() has been removed.",
            );
          },
          addShapeList: function () {
            console.log(
              "THREE.ExtrudeBufferGeometry: .addShapeList() has been removed.",
            );
          },
          addShape: function () {
            console.log(
              "THREE.ExtrudeBufferGeometry: .addShape() has been removed.",
            );
          },
        }),
        Object.defineProperties(Vd.prototype, {
          dynamic: {
            set: function () {
              console.warn(
                "THREE.Uniform: .dynamic has been removed. Use object.onBeforeRender() instead.",
              );
            },
          },
          onUpdate: {
            value: function () {
              return (
                console.warn(
                  "THREE.Uniform: .onUpdate() has been removed. Use object.onBeforeRender() instead.",
                ),
                this
              );
            },
          },
        }),
        Object.defineProperties(Kr.prototype, {
          wrapAround: {
            get: function () {
              console.warn("THREE.Material: .wrapAround has been removed.");
            },
            set: function () {
              console.warn("THREE.Material: .wrapAround has been removed.");
            },
          },
          overdraw: {
            get: function () {
              console.warn("THREE.Material: .overdraw has been removed.");
            },
            set: function () {
              console.warn("THREE.Material: .overdraw has been removed.");
            },
          },
          wrapRGB: {
            get: function () {
              return (
                console.warn("THREE.Material: .wrapRGB has been removed."),
                new Nr()
              );
            },
          },
          shading: {
            get: function () {
              console.log(
                "THREE." +
                  this.type +
                  ": .shading has been removed. Use the boolean .flatShading instead.",
              );
            },
            set: function (e) {
              (console.warn(
                "THREE." +
                  this.type +
                  ": .shading has been removed. Use the boolean .flatShading instead.",
              ),
                (this.flatShading = e === p));
            },
          },
          stencilMask: {
            get: function () {
              return (
                console.warn(
                  "THREE." +
                    this.type +
                    ": .stencilMask has been removed. Use .stencilFuncMask instead.",
                ),
                this.stencilFuncMask
              );
            },
            set: function (e) {
              (console.warn(
                "THREE." +
                  this.type +
                  ": .stencilMask has been removed. Use .stencilFuncMask instead.",
              ),
                (this.stencilFuncMask = e));
            },
          },
        }),
        Object.defineProperties(vh.prototype, {
          metal: {
            get: function () {
              return (
                console.warn(
                  "THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead.",
                ),
                !1
              );
            },
            set: function () {
              console.warn(
                "THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead",
              );
            },
          },
        }),
        Object.defineProperties(Wi.prototype, {
          derivatives: {
            get: function () {
              return (
                console.warn(
                  "THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives.",
                ),
                this.extensions.derivatives
              );
            },
            set: function (e) {
              (console.warn(
                "THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives.",
              ),
                (this.extensions.derivatives = e));
            },
          },
        }),
        Object.assign(Gc.prototype, {
          clearTarget: function (e, t, n, r) {
            (console.warn(
              "THREE.WebGLRenderer: .clearTarget() has been deprecated. Use .setRenderTarget() and .clear() instead.",
            ),
              this.setRenderTarget(e),
              this.clear(t, n, r));
          },
          animate: function (e) {
            (console.warn(
              "THREE.WebGLRenderer: .animate() is now .setAnimationLoop().",
            ),
              this.setAnimationLoop(e));
          },
          getCurrentRenderTarget: function () {
            return (
              console.warn(
                "THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget().",
              ),
              this.getRenderTarget()
            );
          },
          getMaxAnisotropy: function () {
            return (
              console.warn(
                "THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy().",
              ),
              this.capabilities.getMaxAnisotropy()
            );
          },
          getPrecision: function () {
            return (
              console.warn(
                "THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision.",
              ),
              this.capabilities.precision
            );
          },
          resetGLState: function () {
            return (
              console.warn(
                "THREE.WebGLRenderer: .resetGLState() is now .state.reset().",
              ),
              this.state.reset()
            );
          },
          supportsFloatTextures: function () {
            return (
              console.warn(
                "THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( 'OES_texture_float' ).",
              ),
              this.extensions.get("OES_texture_float")
            );
          },
          supportsHalfFloatTextures: function () {
            return (
              console.warn(
                "THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( 'OES_texture_half_float' ).",
              ),
              this.extensions.get("OES_texture_half_float")
            );
          },
          supportsStandardDerivatives: function () {
            return (
              console.warn(
                "THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( 'OES_standard_derivatives' ).",
              ),
              this.extensions.get("OES_standard_derivatives")
            );
          },
          supportsCompressedTextureS3TC: function () {
            return (
              console.warn(
                "THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( 'WEBGL_compressed_texture_s3tc' ).",
              ),
              this.extensions.get("WEBGL_compressed_texture_s3tc")
            );
          },
          supportsCompressedTexturePVRTC: function () {
            return (
              console.warn(
                "THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( 'WEBGL_compressed_texture_pvrtc' ).",
              ),
              this.extensions.get("WEBGL_compressed_texture_pvrtc")
            );
          },
          supportsBlendMinMax: function () {
            return (
              console.warn(
                "THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( 'EXT_blend_minmax' ).",
              ),
              this.extensions.get("EXT_blend_minmax")
            );
          },
          supportsVertexTextures: function () {
            return (
              console.warn(
                "THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures.",
              ),
              this.capabilities.vertexTextures
            );
          },
          supportsInstancedArrays: function () {
            return (
              console.warn(
                "THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( 'ANGLE_instanced_arrays' ).",
              ),
              this.extensions.get("ANGLE_instanced_arrays")
            );
          },
          enableScissorTest: function (e) {
            (console.warn(
              "THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest().",
            ),
              this.setScissorTest(e));
          },
          initMaterial: function () {
            console.warn(
              "THREE.WebGLRenderer: .initMaterial() has been removed.",
            );
          },
          addPrePlugin: function () {
            console.warn(
              "THREE.WebGLRenderer: .addPrePlugin() has been removed.",
            );
          },
          addPostPlugin: function () {
            console.warn(
              "THREE.WebGLRenderer: .addPostPlugin() has been removed.",
            );
          },
          updateShadowMap: function () {
            console.warn(
              "THREE.WebGLRenderer: .updateShadowMap() has been removed.",
            );
          },
          setFaceCulling: function () {
            console.warn(
              "THREE.WebGLRenderer: .setFaceCulling() has been removed.",
            );
          },
          allocTextureUnit: function () {
            console.warn(
              "THREE.WebGLRenderer: .allocTextureUnit() has been removed.",
            );
          },
          setTexture: function () {
            console.warn(
              "THREE.WebGLRenderer: .setTexture() has been removed.",
            );
          },
          setTexture2D: function () {
            console.warn(
              "THREE.WebGLRenderer: .setTexture2D() has been removed.",
            );
          },
          setTextureCube: function () {
            console.warn(
              "THREE.WebGLRenderer: .setTextureCube() has been removed.",
            );
          },
          getActiveMipMapLevel: function () {
            return (
              console.warn(
                "THREE.WebGLRenderer: .getActiveMipMapLevel() is now .getActiveMipmapLevel().",
              ),
              this.getActiveMipmapLevel()
            );
          },
        }),
        Object.defineProperties(Gc.prototype, {
          shadowMapEnabled: {
            get: function () {
              return this.shadowMap.enabled;
            },
            set: function (e) {
              (console.warn(
                "THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled.",
              ),
                (this.shadowMap.enabled = e));
            },
          },
          shadowMapType: {
            get: function () {
              return this.shadowMap.type;
            },
            set: function (e) {
              (console.warn(
                "THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type.",
              ),
                (this.shadowMap.type = e));
            },
          },
          shadowMapCullFace: {
            get: function () {
              console.warn(
                "THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.",
              );
            },
            set: function () {
              console.warn(
                "THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.",
              );
            },
          },
          context: {
            get: function () {
              return (
                console.warn(
                  "THREE.WebGLRenderer: .context has been removed. Use .getContext() instead.",
                ),
                this.getContext()
              );
            },
          },
          vr: {
            get: function () {
              return (
                console.warn(
                  "THREE.WebGLRenderer: .vr has been renamed to .xr",
                ),
                this.xr
              );
            },
          },
          gammaInput: {
            get: function () {
              return (
                console.warn(
                  "THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.",
                ),
                !1
              );
            },
            set: function () {
              console.warn(
                "THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.",
              );
            },
          },
          gammaOutput: {
            get: function () {
              return (
                console.warn(
                  "THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead.",
                ),
                !1
              );
            },
            set: function (e) {
              (console.warn(
                "THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead.",
              ),
                (this.outputEncoding = !0 === e ? jt : zt));
            },
          },
        }),
        Object.defineProperties(Lc.prototype, {
          cullFace: {
            get: function () {
              console.warn(
                "THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.",
              );
            },
            set: function () {
              console.warn(
                "THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.",
              );
            },
          },
          renderReverseSided: {
            get: function () {
              console.warn(
                "THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.",
              );
            },
            set: function () {
              console.warn(
                "THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.",
              );
            },
          },
          renderSingleSided: {
            get: function () {
              console.warn(
                "THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.",
              );
            },
            set: function () {
              console.warn(
                "THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.",
              );
            },
          },
        }),
        Object.defineProperties(vn.prototype, {
          wrapS: {
            get: function () {
              return (
                console.warn(
                  "THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.",
                ),
                this.texture.wrapS
              );
            },
            set: function (e) {
              (console.warn(
                "THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.",
              ),
                (this.texture.wrapS = e));
            },
          },
          wrapT: {
            get: function () {
              return (
                console.warn(
                  "THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.",
                ),
                this.texture.wrapT
              );
            },
            set: function (e) {
              (console.warn(
                "THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.",
              ),
                (this.texture.wrapT = e));
            },
          },
          magFilter: {
            get: function () {
              return (
                console.warn(
                  "THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.",
                ),
                this.texture.magFilter
              );
            },
            set: function (e) {
              (console.warn(
                "THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.",
              ),
                (this.texture.magFilter = e));
            },
          },
          minFilter: {
            get: function () {
              return (
                console.warn(
                  "THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.",
                ),
                this.texture.minFilter
              );
            },
            set: function (e) {
              (console.warn(
                "THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.",
              ),
                (this.texture.minFilter = e));
            },
          },
          anisotropy: {
            get: function () {
              return (
                console.warn(
                  "THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.",
                ),
                this.texture.anisotropy
              );
            },
            set: function (e) {
              (console.warn(
                "THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.",
              ),
                (this.texture.anisotropy = e));
            },
          },
          offset: {
            get: function () {
              return (
                console.warn(
                  "THREE.WebGLRenderTarget: .offset is now .texture.offset.",
                ),
                this.texture.offset
              );
            },
            set: function (e) {
              (console.warn(
                "THREE.WebGLRenderTarget: .offset is now .texture.offset.",
              ),
                (this.texture.offset = e));
            },
          },
          repeat: {
            get: function () {
              return (
                console.warn(
                  "THREE.WebGLRenderTarget: .repeat is now .texture.repeat.",
                ),
                this.texture.repeat
              );
            },
            set: function (e) {
              (console.warn(
                "THREE.WebGLRenderTarget: .repeat is now .texture.repeat.",
              ),
                (this.texture.repeat = e));
            },
          },
          format: {
            get: function () {
              return (
                console.warn(
                  "THREE.WebGLRenderTarget: .format is now .texture.format.",
                ),
                this.texture.format
              );
            },
            set: function (e) {
              (console.warn(
                "THREE.WebGLRenderTarget: .format is now .texture.format.",
              ),
                (this.texture.format = e));
            },
          },
          type: {
            get: function () {
              return (
                console.warn(
                  "THREE.WebGLRenderTarget: .type is now .texture.type.",
                ),
                this.texture.type
              );
            },
            set: function (e) {
              (console.warn(
                "THREE.WebGLRenderTarget: .type is now .texture.type.",
              ),
                (this.texture.type = e));
            },
          },
          generateMipmaps: {
            get: function () {
              return (
                console.warn(
                  "THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.",
                ),
                this.texture.generateMipmaps
              );
            },
            set: function (e) {
              (console.warn(
                "THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.",
              ),
                (this.texture.generateMipmaps = e));
            },
          },
        }),
        Object.defineProperties(wd.prototype, {
          load: {
            value: function (e) {
              console.warn(
                "THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.",
              );
              var t = this,
                n = new sd();
              return (
                n.load(e, function (e) {
                  t.setBuffer(e);
                }),
                this
              );
            },
          },
          startTime: {
            set: function () {
              console.warn("THREE.Audio: .startTime is now .play( delay ).");
            },
          },
        }),
        (Ed.prototype.getData = function () {
          return (
            console.warn(
              "THREE.AudioAnalyser: .getData() is now .getFrequencyData().",
            ),
            this.getFrequencyData()
          );
        }),
        (Zi.prototype.updateCubeMap = function (e, t) {
          return (
            console.warn(
              "THREE.CubeCamera: .updateCubeMap() is now .update().",
            ),
            this.update(e, t)
          );
        }));
      ((dn.crossOrigin = void 0),
        (dn.loadTexture = function (e, t, n, r) {
          console.warn(
            "THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.",
          );
          var i = new Zh();
          i.setCrossOrigin(this.crossOrigin);
          var A = i.load(e, n, void 0, r);
          return (t && (A.mapping = t), A);
        }),
        (dn.loadTextureCube = function (e, t, n, r) {
          console.warn(
            "THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.",
          );
          var i = new qh();
          i.setCrossOrigin(this.crossOrigin);
          var A = i.load(e, n, void 0, r);
          return (t && (A.mapping = t), A);
        }),
        (dn.loadCompressedTexture = function () {
          console.log(
            "THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.",
          );
        }),
        (dn.loadCompressedTextureCube = function () {
          console.log(
            "THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.",
          );
        }));
      "undefined" !== typeof __THREE_DEVTOOLS__ &&
        __THREE_DEVTOOLS__.dispatchEvent(
          new CustomEvent("register", { detail: { revision: r } }),
        );
    },
    "5b1e": function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("5d6f"),
        A = n("9b6f"),
        o = n("6373"),
        a = [].lastIndexOf,
        s = !!a && 1 / [1].lastIndexOf(1, -0) < 0;
      r(r.P + r.F * (s || !n("55c7")(a)), "Array", {
        lastIndexOf: function (e) {
          if (s) return a.apply(this, arguments) || 0;
          var t = i(this),
            n = o(t.length),
            r = n - 1;
          for (
            arguments.length > 1 && (r = Math.min(r, A(arguments[1]))),
              r < 0 && (r = n + r);
            r >= 0;
            r--
          )
            if (r in t && t[r] === e) return r || 0;
          return -1;
        },
      });
    },
    "5bbd": function (e, t, n) {
      "use strict";
      var r,
        i,
        A,
        o,
        a = n("cee8"),
        s = n("93e0"),
        c = n("911a"),
        u = n("5155"),
        l = n("f083"),
        h = n("9fe8"),
        f = n("2ce8"),
        d = n("928a"),
        p = n("8fc4"),
        g = n("1147"),
        m = n("eb9a").set,
        v = n("bde8")(),
        y = n("e7ff"),
        w = n("2d5b"),
        B = n("64ff"),
        b = n("44e8"),
        _ = "Promise",
        x = s.TypeError,
        C = s.process,
        E = C && C.versions,
        M = (E && E.v8) || "",
        S = s[_],
        F = "process" == u(C),
        T = function () {},
        U = (i = y.f),
        Q = !!(function () {
          try {
            var e = S.resolve(1),
              t = ((e.constructor = {})[n("de24")("species")] = function (e) {
                e(T, T);
              });
            return (
              (F || "function" == typeof PromiseRejectionEvent) &&
              e.then(T) instanceof t &&
              0 !== M.indexOf("6.6") &&
              -1 === B.indexOf("Chrome/66")
            );
          } catch (r) {}
        })(),
        L = function (e) {
          var t;
          return !(!h(e) || "function" != typeof (t = e.then)) && t;
        },
        I = function (e, t) {
          if (!e._n) {
            e._n = !0;
            var n = e._c;
            v(function () {
              var r = e._v,
                i = 1 == e._s,
                A = 0,
                o = function (t) {
                  var n,
                    A,
                    o,
                    a = i ? t.ok : t.fail,
                    s = t.resolve,
                    c = t.reject,
                    u = t.domain;
                  try {
                    a
                      ? (i || (2 == e._h && R(e), (e._h = 1)),
                        !0 === a
                          ? (n = r)
                          : (u && u.enter(),
                            (n = a(r)),
                            u && (u.exit(), (o = !0))),
                        n === t.promise
                          ? c(x("Promise-chain cycle"))
                          : (A = L(n))
                            ? A.call(n, s, c)
                            : s(n))
                      : c(r);
                  } catch (l) {
                    (u && !o && u.exit(), c(l));
                  }
                };
              while (n.length > A) o(n[A++]);
              ((e._c = []), (e._n = !1), t && !e._h && H(e));
            });
          }
        },
        H = function (e) {
          m.call(s, function () {
            var t,
              n,
              r,
              i = e._v,
              A = O(e);
            if (
              (A &&
                ((t = w(function () {
                  F
                    ? C.emit("unhandledRejection", i, e)
                    : (n = s.onunhandledrejection)
                      ? n({ promise: e, reason: i })
                      : (r = s.console) &&
                        r.error &&
                        r.error("Unhandled promise rejection", i);
                })),
                (e._h = F || O(e) ? 2 : 1)),
              (e._a = void 0),
              A && t.e)
            )
              throw t.v;
          });
        },
        O = function (e) {
          return 1 !== e._h && 0 === (e._a || e._c).length;
        },
        R = function (e) {
          m.call(s, function () {
            var t;
            F
              ? C.emit("rejectionHandled", e)
              : (t = s.onrejectionhandled) && t({ promise: e, reason: e._v });
          });
        },
        P = function (e) {
          var t = this;
          t._d ||
            ((t._d = !0),
            (t = t._w || t),
            (t._v = e),
            (t._s = 2),
            t._a || (t._a = t._c.slice()),
            I(t, !0));
        },
        D = function (e) {
          var t,
            n = this;
          if (!n._d) {
            ((n._d = !0), (n = n._w || n));
            try {
              if (n === e) throw x("Promise can't be resolved itself");
              (t = L(e))
                ? v(function () {
                    var r = { _w: n, _d: !1 };
                    try {
                      t.call(e, c(D, r, 1), c(P, r, 1));
                    } catch (i) {
                      P.call(r, i);
                    }
                  })
                : ((n._v = e), (n._s = 1), I(n, !1));
            } catch (r) {
              P.call({ _w: n, _d: !1 }, r);
            }
          }
        };
      (Q ||
        ((S = function (e) {
          (d(this, S, _, "_h"), f(e), r.call(this));
          try {
            e(c(D, this, 1), c(P, this, 1));
          } catch (t) {
            P.call(this, t);
          }
        }),
        (r = function (e) {
          ((this._c = []),
            (this._a = void 0),
            (this._s = 0),
            (this._d = !1),
            (this._v = void 0),
            (this._h = 0),
            (this._n = !1));
        }),
        (r.prototype = n("c668")(S.prototype, {
          then: function (e, t) {
            var n = U(g(this, S));
            return (
              (n.ok = "function" != typeof e || e),
              (n.fail = "function" == typeof t && t),
              (n.domain = F ? C.domain : void 0),
              this._c.push(n),
              this._a && this._a.push(n),
              this._s && I(this, !1),
              n.promise
            );
          },
          catch: function (e) {
            return this.then(void 0, e);
          },
        })),
        (A = function () {
          var e = new r();
          ((this.promise = e),
            (this.resolve = c(D, e, 1)),
            (this.reject = c(P, e, 1)));
        }),
        (y.f = U =
          function (e) {
            return e === S || e === o ? new A(e) : i(e);
          })),
        l(l.G + l.W + l.F * !Q, { Promise: S }),
        n("27bd")(S, _),
        n("3a2f")(_),
        (o = n("0ae2")[_]),
        l(l.S + l.F * !Q, _, {
          reject: function (e) {
            var t = U(this),
              n = t.reject;
            return (n(e), t.promise);
          },
        }),
        l(l.S + l.F * (a || !Q), _, {
          resolve: function (e) {
            return b(a && this === o ? S : this, e);
          },
        }),
        l(
          l.S +
            l.F *
              !(
                Q &&
                n("ebe8")(function (e) {
                  S.all(e)["catch"](T);
                })
              ),
          _,
          {
            all: function (e) {
              var t = this,
                n = U(t),
                r = n.resolve,
                i = n.reject,
                A = w(function () {
                  var n = [],
                    A = 0,
                    o = 1;
                  (p(e, !1, function (e) {
                    var a = A++,
                      s = !1;
                    (n.push(void 0),
                      o++,
                      t.resolve(e).then(function (e) {
                        s || ((s = !0), (n[a] = e), --o || r(n));
                      }, i));
                  }),
                    --o || r(n));
                });
              return (A.e && i(A.v), n.promise);
            },
            race: function (e) {
              var t = this,
                n = U(t),
                r = n.reject,
                i = w(function () {
                  p(e, !1, function (e) {
                    t.resolve(e).then(n.resolve, r);
                  });
                });
              return (i.e && r(i.v), n.promise);
            },
          },
        ));
    },
    "5c02": function (e, t, n) {
      var r = n("f083");
      r(r.S, "Math", {
        clz32: function (e) {
          return (e >>>= 0)
            ? 31 - Math.floor(Math.log(e + 0.5) * Math.LOG2E)
            : 32;
        },
      });
    },
    "5c0c": function (e, t, n) {
      var r = n("2761"),
        i = n("8d87"),
        A = n("ed60"),
        o = n("2fb2"),
        a = n("f083"),
        s = n("fb32"),
        c = n("d77f"),
        u = n("9fe8");
      function l(e, t, n) {
        var a,
          h,
          f = arguments.length < 4 ? e : arguments[3],
          d = i.f(c(e), t);
        if (!d) {
          if (u((h = A(e)))) return l(h, t, n, f);
          d = s(0);
        }
        if (o(d, "value")) {
          if (!1 === d.writable || !u(f)) return !1;
          if ((a = i.f(f, t))) {
            if (a.get || a.set || !1 === a.writable) return !1;
            ((a.value = n), r.f(f, t, a));
          } else r.f(f, t, s(0, n));
          return !0;
        }
        return void 0 !== d.set && (d.set.call(f, n), !0);
      }
      a(a.S, "Reflect", { set: l });
    },
    "5c10": function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("7433"),
        A = n("1c2d"),
        o = n("6fc7"),
        a = n("6373"),
        s = [].slice;
      r(
        r.P +
          r.F *
            n("f937")(function () {
              i && s.call(i);
            }),
        "Array",
        {
          slice: function (e, t) {
            var n = a(this.length),
              r = A(this);
            if (((t = void 0 === t ? n : t), "Array" == r))
              return s.call(this, e, t);
            for (
              var i = o(e, n),
                c = o(t, n),
                u = a(c - i),
                l = new Array(u),
                h = 0;
              h < u;
              h++
            )
              l[h] = "String" == r ? this.charAt(i + h) : this[i + h];
            return l;
          },
        },
      );
    },
    "5c6c": function (e, t) {
      e.exports = function (e, t) {
        return {
          enumerable: !(1 & e),
          configurable: !(2 & e),
          writable: !(4 & e),
          value: t,
        };
      };
    },
    "5cef": function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("cffc")(0),
        A = n("55c7")([].forEach, !0);
      r(r.P + r.F * !A, "Array", {
        forEach: function (e) {
          return i(this, e, arguments[1]);
        },
      });
    },
    "5d26": function (e, t, n) {
      "use strict";
      n("e681")("sup", function (e) {
        return function () {
          return e(this, "sup", "", "");
        };
      });
    },
    "5d29": function (e, t, n) {
      var r = n("9fe8");
      n("0a66")("isSealed", function (e) {
        return function (t) {
          return !r(t) || (!!e && e(t));
        };
      });
    },
    "5d6f": function (e, t, n) {
      var r = n("dbaf"),
        i = n("688d");
      e.exports = function (e) {
        return r(i(e));
      };
    },
    "5e77": function (e, t, n) {
      var r = n("83ab"),
        i = n("1a2d"),
        A = Function.prototype,
        o = r && Object.getOwnPropertyDescriptor,
        a = i(A, "name"),
        s = a && "something" === function () {}.name,
        c = a && (!r || (r && o(A, "name").configurable));
      e.exports = { EXISTS: a, PROPER: s, CONFIGURABLE: c };
    },
    "5ee4": function (e, t, n) {
      var r = n("f083"),
        i = n("7524")(/[\\^$*+?.()|[\]{}]/g, "\\$&");
      r(r.S, "RegExp", {
        escape: function (e) {
          return i(e);
        },
      });
    },
    6012: function (e, t, n) {
      "use strict";
      var r = n("9b6f"),
        i = n("688d");
      e.exports = function (e) {
        var t = String(i(this)),
          n = "",
          A = r(e);
        if (A < 0 || A == 1 / 0) throw RangeError("Count can't be negative");
        for (; A > 0; (A >>>= 1) && (t += t)) 1 & A && (n += t);
        return n;
      };
    },
    "605d": function (e, t, n) {
      var r = n("c6b6"),
        i = n("da84");
      e.exports = "process" == r(i.process);
    },
    "62ee": function (e, t, n) {
      "use strict";
      n("e681")("strike", function (e) {
        return function () {
          return e(this, "strike", "", "");
        };
      });
    },
    "62fa": function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("9b6f"),
        A = n("2aef"),
        o = n("6012"),
        a = (1).toFixed,
        s = Math.floor,
        c = [0, 0, 0, 0, 0, 0],
        u = "Number.toFixed: incorrect invocation!",
        l = "0",
        h = function (e, t) {
          var n = -1,
            r = t;
          while (++n < 6) ((r += e * c[n]), (c[n] = r % 1e7), (r = s(r / 1e7)));
        },
        f = function (e) {
          var t = 6,
            n = 0;
          while (--t >= 0)
            ((n += c[t]), (c[t] = s(n / e)), (n = (n % e) * 1e7));
        },
        d = function () {
          var e = 6,
            t = "";
          while (--e >= 0)
            if ("" !== t || 0 === e || 0 !== c[e]) {
              var n = String(c[e]);
              t = "" === t ? n : t + o.call(l, 7 - n.length) + n;
            }
          return t;
        },
        p = function (e, t, n) {
          return 0 === t
            ? n
            : t % 2 === 1
              ? p(e, t - 1, n * e)
              : p(e * e, t / 2, n);
        },
        g = function (e) {
          var t = 0,
            n = e;
          while (n >= 4096) ((t += 12), (n /= 4096));
          while (n >= 2) ((t += 1), (n /= 2));
          return t;
        };
      r(
        r.P +
          r.F *
            ((!!a &&
              ("0.000" !== (8e-5).toFixed(3) ||
                "1" !== (0.9).toFixed(0) ||
                "1.25" !== (1.255).toFixed(2) ||
                "1000000000000000128" !== (0xde0b6b3a7640080).toFixed(0))) ||
              !n("f937")(function () {
                a.call({});
              })),
        "Number",
        {
          toFixed: function (e) {
            var t,
              n,
              r,
              a,
              s = A(this, u),
              c = i(e),
              m = "",
              v = l;
            if (c < 0 || c > 20) throw RangeError(u);
            if (s != s) return "NaN";
            if (s <= -1e21 || s >= 1e21) return String(s);
            if ((s < 0 && ((m = "-"), (s = -s)), s > 1e-21))
              if (
                ((t = g(s * p(2, 69, 1)) - 69),
                (n = t < 0 ? s * p(2, -t, 1) : s / p(2, t, 1)),
                (n *= 4503599627370496),
                (t = 52 - t),
                t > 0)
              ) {
                (h(0, n), (r = c));
                while (r >= 7) (h(1e7, 0), (r -= 7));
                (h(p(10, r, 1), 0), (r = t - 1));
                while (r >= 23) (f(1 << 23), (r -= 23));
                (f(1 << r), h(1, 1), f(2), (v = d()));
              } else (h(0, n), h(1 << -t, 0), (v = d() + o.call(l, c)));
            return (
              c > 0
                ? ((a = v.length),
                  (v =
                    m +
                    (a <= c
                      ? "0." + o.call(l, c - a) + v
                      : v.slice(0, a - c) + "." + v.slice(a - c))))
                : (v = m + v),
              v
            );
          },
        },
      );
    },
    6373: function (e, t, n) {
      var r = n("9b6f"),
        i = Math.min;
      e.exports = function (e) {
        return e > 0 ? i(r(e), 9007199254740991) : 0;
      };
    },
    6374: function (e, t, n) {
      var r = n("da84"),
        i = Object.defineProperty;
      e.exports = function (e, t) {
        try {
          i(r, e, { value: t, configurable: !0, writable: !0 });
        } catch (n) {
          r[e] = t;
        }
        return t;
      };
    },
    6412: function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("e960")(!0),
        A = n("f937"),
        o = A(function () {
          return "𠮷" !== "𠮷".at(0);
        });
      r(r.P + r.F * o, "String", {
        at: function (e) {
          return i(this, e);
        },
      });
    },
    6461: function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("1af4"),
        A = n("64ff"),
        o = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(A);
      r(r.P + r.F * o, "String", {
        padStart: function (e) {
          return i(this, e, arguments.length > 1 ? arguments[1] : void 0, !0);
        },
      });
    },
    6497: function (e, t, n) {
      "use strict";
      n("e681")("bold", function (e) {
        return function () {
          return e(this, "b", "", "");
        };
      });
    },
    "64b3": function (e, t, n) {
      var r = n("1c6a"),
        i = n("d77f"),
        A = r.keys,
        o = r.key;
      r.exp({
        getOwnMetadataKeys: function (e) {
          return A(i(e), arguments.length < 2 ? void 0 : o(arguments[1]));
        },
      });
    },
    "64ff": function (e, t, n) {
      var r = n("93e0"),
        i = r.navigator;
      e.exports = (i && i.userAgent) || "";
    },
    6548: function (e, t, n) {
      var r = n("26f1"),
        i = n("b760"),
        A = n("1c6a"),
        o = n("d77f"),
        a = n("ed60"),
        s = A.keys,
        c = A.key,
        u = function (e, t) {
          var n = s(e, t),
            A = a(e);
          if (null === A) return n;
          var o = u(A, t);
          return o.length ? (n.length ? i(new r(n.concat(o))) : o) : n;
        };
      A.exp({
        getMetadataKeys: function (e) {
          return u(o(e), arguments.length < 2 ? void 0 : c(arguments[1]));
        },
      });
    },
    6621: function (e, t, n) {
      var r = n("d77f"),
        i = n("77f4"),
        A = n("68ae"),
        o = n("964f")("IE_PROTO"),
        a = function () {},
        s = "prototype",
        c = function () {
          var e,
            t = n("8ad7")("iframe"),
            r = A.length,
            i = "<",
            o = ">";
          ((t.style.display = "none"),
            n("7433").appendChild(t),
            (t.src = "javascript:"),
            (e = t.contentWindow.document),
            e.open(),
            e.write(i + "script" + o + "document.F=Object" + i + "/script" + o),
            e.close(),
            (c = e.F));
          while (r--) delete c[s][A[r]];
          return c();
        };
      e.exports =
        Object.create ||
        function (e, t) {
          var n;
          return (
            null !== e
              ? ((a[s] = r(e)), (n = new a()), (a[s] = null), (n[o] = e))
              : (n = c()),
            void 0 === t ? n : i(n, t)
          );
        };
    },
    "66ac": function (e, t, n) {
      "use strict";
      var r = n("d77f");
      e.exports = function () {
        var e = r(this),
          t = "";
        return (
          e.global && (t += "g"),
          e.ignoreCase && (t += "i"),
          e.multiline && (t += "m"),
          e.unicode && (t += "u"),
          e.sticky && (t += "y"),
          t
        );
      };
    },
    "66b7": function (e, t, n) {
      var r = n("de24")("unscopables"),
        i = Array.prototype;
      (void 0 == i[r] && n("0713")(i, r, {}),
        (e.exports = function (e) {
          i[r][e] = !0;
        }));
    },
    "67fe": function (e, t, n) {
      var r = n("93e0").parseInt,
        i = n("e9d8").trim,
        A = n("69b4"),
        o = /^[-+]?0[xX]/;
      e.exports =
        8 !== r(A + "08") || 22 !== r(A + "0x16")
          ? function (e, t) {
              var n = i(String(e), 3);
              return r(n, t >>> 0 || (o.test(n) ? 16 : 10));
            }
          : r;
    },
    "688d": function (e, t) {
      e.exports = function (e) {
        if (void 0 == e) throw TypeError("Can't call method on  " + e);
        return e;
      };
    },
    "68ae": function (e, t) {
      e.exports =
        "constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(
          ",",
        );
    },
    "68c0": function (e, t, n) {
      "use strict";
      n("e9d8")("trim", function (e) {
        return function () {
          return e(this, 3);
        };
      });
    },
    "68d6": function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("cffc")(3);
      r(r.P + r.F * !n("55c7")([].some, !0), "Array", {
        some: function (e) {
          return i(this, e, arguments[1]);
        },
      });
    },
    "68e5": function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("5d6f"),
        A = [].join;
      r(r.P + r.F * (n("dbaf") != Object || !n("55c7")(A)), "Array", {
        join: function (e) {
          return A.call(i(this), void 0 === e ? "," : e);
        },
      });
    },
    6972: function (e, t, n) {
      "use strict";
      var r = n("e960")(!0);
      e.exports = function (e, t, n) {
        return t + (n ? r(e, t).length : 1);
      };
    },
    "69b4": function (e, t) {
      e.exports = "\t\n\v\f\r   ᠎             　\u2028\u2029\ufeff";
    },
    "69f3": function (e, t, n) {
      var r,
        i,
        A,
        o = n("7f9a"),
        a = n("da84"),
        s = n("e330"),
        c = n("861d"),
        u = n("9112"),
        l = n("1a2d"),
        h = n("c6cd"),
        f = n("f772"),
        d = n("d012"),
        p = "Object already initialized",
        g = a.TypeError,
        m = a.WeakMap,
        v = function (e) {
          return A(e) ? i(e) : r(e, {});
        },
        y = function (e) {
          return function (t) {
            var n;
            if (!c(t) || (n = i(t)).type !== e)
              throw g("Incompatible receiver, " + e + " required");
            return n;
          };
        };
      if (o || h.state) {
        var w = h.state || (h.state = new m()),
          B = s(w.get),
          b = s(w.has),
          _ = s(w.set);
        ((r = function (e, t) {
          if (b(w, e)) throw new g(p);
          return ((t.facade = e), _(w, e, t), t);
        }),
          (i = function (e) {
            return B(w, e) || {};
          }),
          (A = function (e) {
            return b(w, e);
          }));
      } else {
        var x = f("state");
        ((d[x] = !0),
          (r = function (e, t) {
            if (l(e, x)) throw new g(p);
            return ((t.facade = e), u(e, x, t), t);
          }),
          (i = function (e) {
            return l(e, x) ? e[x] : {};
          }),
          (A = function (e) {
            return l(e, x);
          }));
      }
      e.exports = { set: r, get: i, has: A, enforce: v, getterFor: y };
    },
    "6ace": function (e, t, n) {
      "use strict";
      var r = n("37a2"),
        i = n("d77f"),
        A = n("1147"),
        o = n("6972"),
        a = n("6373"),
        s = n("fef8"),
        c = n("e056"),
        u = n("f937"),
        l = Math.min,
        h = [].push,
        f = "split",
        d = "length",
        p = "lastIndex",
        g = 4294967295,
        m = !u(function () {
          RegExp(g, "y");
        });
      n("9ed1")("split", 2, function (e, t, n, u) {
        var v;
        return (
          (v =
            "c" == "abbc"[f](/(b)*/)[1] ||
            4 != "test"[f](/(?:)/, -1)[d] ||
            2 != "ab"[f](/(?:ab)*/)[d] ||
            4 != "."[f](/(.?)(.?)/)[d] ||
            "."[f](/()()/)[d] > 1 ||
            ""[f](/.?/)[d]
              ? function (e, t) {
                  var i = String(this);
                  if (void 0 === e && 0 === t) return [];
                  if (!r(e)) return n.call(i, e, t);
                  var A,
                    o,
                    a,
                    s = [],
                    u =
                      (e.ignoreCase ? "i" : "") +
                      (e.multiline ? "m" : "") +
                      (e.unicode ? "u" : "") +
                      (e.sticky ? "y" : ""),
                    l = 0,
                    f = void 0 === t ? g : t >>> 0,
                    m = new RegExp(e.source, u + "g");
                  while ((A = c.call(m, i))) {
                    if (
                      ((o = m[p]),
                      o > l &&
                        (s.push(i.slice(l, A.index)),
                        A[d] > 1 && A.index < i[d] && h.apply(s, A.slice(1)),
                        (a = A[0][d]),
                        (l = o),
                        s[d] >= f))
                    )
                      break;
                    m[p] === A.index && m[p]++;
                  }
                  return (
                    l === i[d]
                      ? (!a && m.test("")) || s.push("")
                      : s.push(i.slice(l)),
                    s[d] > f ? s.slice(0, f) : s
                  );
                }
              : "0"[f](void 0, 0)[d]
                ? function (e, t) {
                    return void 0 === e && 0 === t ? [] : n.call(this, e, t);
                  }
                : n),
          [
            function (n, r) {
              var i = e(this),
                A = void 0 == n ? void 0 : n[t];
              return void 0 !== A ? A.call(n, i, r) : v.call(String(i), n, r);
            },
            function (e, t) {
              var r = u(v, e, this, t, v !== n);
              if (r.done) return r.value;
              var c = i(e),
                h = String(this),
                f = A(c, RegExp),
                d = c.unicode,
                p =
                  (c.ignoreCase ? "i" : "") +
                  (c.multiline ? "m" : "") +
                  (c.unicode ? "u" : "") +
                  (m ? "y" : "g"),
                y = new f(m ? c : "^(?:" + c.source + ")", p),
                w = void 0 === t ? g : t >>> 0;
              if (0 === w) return [];
              if (0 === h.length) return null === s(y, h) ? [h] : [];
              var B = 0,
                b = 0,
                _ = [];
              while (b < h.length) {
                y.lastIndex = m ? b : 0;
                var x,
                  C = s(y, m ? h : h.slice(b));
                if (
                  null === C ||
                  (x = l(a(y.lastIndex + (m ? 0 : b)), h.length)) === B
                )
                  b = o(h, b, d);
                else {
                  if ((_.push(h.slice(B, b)), _.length === w)) return _;
                  for (var E = 1; E <= C.length - 1; E++)
                    if ((_.push(C[E]), _.length === w)) return _;
                  b = B = x;
                }
              }
              return (_.push(h.slice(B)), _);
            },
          ]
        );
      });
    },
    "6ada": function (e, t, n) {
      "use strict";
      var r = n("6621"),
        i = n("fb32"),
        A = n("27bd"),
        o = {};
      (n("0713")(o, n("de24")("iterator"), function () {
        return this;
      }),
        (e.exports = function (e, t, n) {
          ((e.prototype = r(o, { next: i(1, n) })), A(e, t + " Iterator"));
        }));
    },
    "6b11": function (e, t, n) {
      var r = n("1c6a"),
        i = n("d77f"),
        A = r.key,
        o = r.set;
      r.exp({
        defineMetadata: function (e, t, n, r) {
          o(e, t, i(n), A(r));
        },
      });
    },
    "6b90": function (e, t, n) {
      (n("acf2"),
        n("b874"),
        n("fca6"),
        n("4afb"),
        n("5741"),
        n("2a2d"),
        n("811a"),
        n("42b6"),
        n("7a29"),
        n("d0f4"),
        n("d284"),
        n("0635"),
        n("5d29"),
        n("4ec0"),
        n("97d3"),
        n("7067"),
        n("a5e2"),
        n("fb3f"),
        n("ad51"),
        n("9960"),
        n("eb8c"),
        n("fb8d"),
        n("f9f3"),
        n("a8e4"),
        n("62fa"),
        n("5013"),
        n("a3d8"),
        n("0db5"),
        n("396a"),
        n("d248"),
        n("8c03"),
        n("c293"),
        n("066b"),
        n("18f1"),
        n("4098"),
        n("930b"),
        n("e03f"),
        n("7701"),
        n("5406"),
        n("5c02"),
        n("a581"),
        n("8072"),
        n("7df4"),
        n("2b76"),
        n("11da"),
        n("1296"),
        n("a05b"),
        n("4ada"),
        n("202e"),
        n("8848"),
        n("2a95"),
        n("1b50"),
        n("7382"),
        n("39f3"),
        n("68c0"),
        n("f58c"),
        n("accc"),
        n("b245"),
        n("2424"),
        n("3fab"),
        n("00ad"),
        n("dd46"),
        n("24d7"),
        n("206a"),
        n("6497"),
        n("8a34"),
        n("9e9b"),
        n("2217"),
        n("7bf9"),
        n("08bf"),
        n("f787"),
        n("62ee"),
        n("e4a7"),
        n("5d26"),
        n("fe9d"),
        n("b3ed"),
        n("8233"),
        n("4b30"),
        n("45bc"),
        n("b4d5"),
        n("a406"),
        n("dbcc"),
        n("68e5"),
        n("5c10"),
        n("0821"),
        n("5cef"),
        n("1c9c"),
        n("0209"),
        n("68d6"),
        n("df59"),
        n("97a6"),
        n("aea1"),
        n("726c"),
        n("5b1e"),
        n("3f84"),
        n("ad62"),
        n("2faf"),
        n("36bb"),
        n("d5b8"),
        n("21d0"),
        n("7c3c"),
        n("37c5"),
        n("8904"),
        n("02f7"),
        n("8344"),
        n("0bbe"),
        n("076f"),
        n("6ace"),
        n("5bbd"),
        n("1bde"),
        n("26f1"),
        n("94bb"),
        n("36b7"),
        n("a0ab"),
        n("8808"),
        n("50fc"),
        n("a4b5"),
        n("5147"),
        n("f415"),
        n("7d24"),
        n("06e3"),
        n("0840"),
        n("2ccc"),
        n("9ac3"),
        n("786f"),
        n("d610"),
        n("dfd1"),
        n("2985"),
        n("1b18"),
        n("ee7f"),
        n("3157"),
        n("c512"),
        n("3ec6"),
        n("d804"),
        n("a134"),
        n("8f83"),
        n("5c0c"),
        n("d537"),
        n("a2cc"),
        n("9c0b"),
        n("e735"),
        n("6412"),
        n("6461"),
        n("9cec"),
        n("418c"),
        n("5398"),
        n("0b67"),
        n("a524"),
        n("37e6"),
        n("b806"),
        n("5a6b"),
        n("c92b"),
        n("a798"),
        n("227b"),
        n("4282"),
        n("5010"),
        n("c5c0"),
        n("74ef"),
        n("985b"),
        n("167a"),
        n("8f7a"),
        n("fbd9"),
        n("3168"),
        n("7371"),
        n("89b1"),
        n("55c9"),
        n("3c77"),
        n("71ae"),
        n("f96c"),
        n("085a"),
        n("942c"),
        n("9f1f"),
        n("9d1d"),
        n("0f00"),
        n("7bd6"),
        n("9dab"),
        n("4003"),
        n("ebb7"),
        n("6bf7"),
        n("4b12"),
        n("b2b1"),
        n("8870"),
        n("82a6"),
        n("6b11"),
        n("d5b2"),
        n("9165"),
        n("6548"),
        n("4fd5"),
        n("64b3"),
        n("c7ca"),
        n("15e3"),
        n("ba70"),
        n("395a"),
        n("14c9"),
        n("e93f"),
        n("c4ef"),
        n("04fa"),
        (e.exports = n("0ae2")));
    },
    "6bf7": function (e, t, n) {
      var r = n("f083");
      r(r.S, "Math", { scale: n("59ad") });
    },
    "6d9f": function (e, t, n) {
      var r = n("5a5d"),
        i = n("10dd"),
        A = n("e171");
      e.exports = function (e) {
        var t = r(e),
          n = i.f;
        if (n) {
          var o,
            a = n(e),
            s = A.f,
            c = 0;
          while (a.length > c) s.call(e, (o = a[c++])) && t.push(o);
        }
        return t;
      };
    },
    "6fc7": function (e, t, n) {
      var r = n("9b6f"),
        i = Math.max,
        A = Math.min;
      e.exports = function (e, t) {
        return ((e = r(e)), e < 0 ? i(e + t, 0) : A(e, t));
      };
    },
    7067: function (e, t, n) {
      var r = n("f083");
      r(r.S, "Object", { is: n("a87b") });
    },
    7156: function (e, t, n) {
      var r = n("1626"),
        i = n("861d"),
        A = n("d2bb");
      e.exports = function (e, t, n) {
        var o, a;
        return (
          A &&
            r((o = t.constructor)) &&
            o !== n &&
            i((a = o.prototype)) &&
            a !== n.prototype &&
            A(e, a),
          e
        );
      };
    },
    "71ae": function (e, t, n) {
      var r = n("f083");
      r(r.S, "System", { global: n("93e0") });
    },
    "726c": function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("27c4")(!1),
        A = [].indexOf,
        o = !!A && 1 / [1].indexOf(1, -0) < 0;
      r(r.P + r.F * (o || !n("55c7")(A)), "Array", {
        indexOf: function (e) {
          return o ? A.apply(this, arguments) || 0 : i(this, e, arguments[1]);
        },
      });
    },
    7371: function (e, t, n) {
      n("7bb0")("Set");
    },
    7382: function (e, t, n) {
      var r = n("f083"),
        i = n("6fc7"),
        A = String.fromCharCode,
        o = String.fromCodePoint;
      r(r.S + r.F * (!!o && 1 != o.length), "String", {
        fromCodePoint: function (e) {
          var t,
            n = [],
            r = arguments.length,
            o = 0;
          while (r > o) {
            if (((t = +arguments[o++]), i(t, 1114111) !== t))
              throw RangeError(t + " is not a valid code point");
            n.push(
              t < 65536
                ? A(t)
                : A(55296 + ((t -= 65536) >> 10), (t % 1024) + 56320),
            );
          }
          return n.join("");
        },
      });
    },
    7418: function (e, t) {
      t.f = Object.getOwnPropertySymbols;
    },
    7433: function (e, t, n) {
      var r = n("93e0").document;
      e.exports = r && r.documentElement;
    },
    "74ef": function (e, t, n) {
      var r = n("f083");
      r(r.P + r.R, "Set", { toJSON: n("1ff6")("Set") });
    },
    7524: function (e, t) {
      e.exports = function (e, t) {
        var n =
          t === Object(t)
            ? function (e) {
                return t[e];
              }
            : t;
        return function (t) {
          return String(t).replace(e, n);
        };
      };
    },
    "76de": function (e, t, n) {
      (n("5ee4"), (e.exports = n("0ae2").RegExp.escape));
    },
    7701: function (e, t, n) {
      var r = n("f083"),
        i = Math.atanh;
      r(r.S + r.F * !(i && 1 / i(-0) < 0), "Math", {
        atanh: function (e) {
          return 0 == (e = +e) ? e : Math.log((1 + e) / (1 - e)) / 2;
        },
      });
    },
    "77d9": function (e, t, n) {
      n("1d02");
    },
    "77ea": function (e, t, n) {
      var r = n("93e0"),
        i = n("0713"),
        A = n("2fb2"),
        o = n("5689")("src"),
        a = n("a070"),
        s = "toString",
        c = ("" + a).split(s);
      ((n("0ae2").inspectSource = function (e) {
        return a.call(e);
      }),
        (e.exports = function (e, t, n, a) {
          var s = "function" == typeof n;
          (s && (A(n, "name") || i(n, "name", t)),
            e[t] !== n &&
              (s && (A(n, o) || i(n, o, e[t] ? "" + e[t] : c.join(String(t)))),
              e === r
                ? (e[t] = n)
                : a
                  ? e[t]
                    ? (e[t] = n)
                    : i(e, t, n)
                  : (delete e[t], i(e, t, n))));
        })(Function.prototype, s, function () {
          return ("function" == typeof this && this[o]) || a.call(this);
        }));
    },
    "77f4": function (e, t, n) {
      var r = n("2761"),
        i = n("d77f"),
        A = n("5a5d");
      e.exports = n("c94e")
        ? Object.defineProperties
        : function (e, t) {
            i(e);
            var n,
              o = A(t),
              a = o.length,
              s = 0;
            while (a > s) r.f(e, (n = o[s++]), t[n]);
            return e;
          };
    },
    7839: function (e, t) {
      e.exports = [
        "constructor",
        "hasOwnProperty",
        "isPrototypeOf",
        "propertyIsEnumerable",
        "toLocaleString",
        "toString",
        "valueOf",
      ];
    },
    "786f": function (e, t, n) {
      var r = n("f083"),
        i = n("2ce8"),
        A = n("d77f"),
        o = (n("93e0").Reflect || {}).apply,
        a = Function.apply;
      r(
        r.S +
          r.F *
            !n("f937")(function () {
              o(function () {});
            }),
        "Reflect",
        {
          apply: function (e, t, n) {
            var r = i(e),
              s = A(n);
            return o ? o(r, t, s) : a.call(r, t, s);
          },
        },
      );
    },
    "798a": function (e, t, n) {
      var r = n("9fe8");
      e.exports = function (e, t) {
        if (!r(e) || e._t !== t)
          throw TypeError("Incompatible receiver, " + t + " required!");
        return e;
      };
    },
    "7a29": function (e, t, n) {
      var r = n("9fe8"),
        i = n("4c8d").onFreeze;
      n("0a66")("freeze", function (e) {
        return function (t) {
          return e && r(t) ? e(i(t)) : t;
        };
      });
    },
    "7b0b": function (e, t, n) {
      var r = n("1d80"),
        i = Object;
      e.exports = function (e) {
        return i(r(e));
      };
    },
    "7bb0": function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("2ce8"),
        A = n("911a"),
        o = n("8fc4");
      e.exports = function (e) {
        r(r.S, e, {
          from: function (e) {
            var t,
              n,
              r,
              a,
              s = arguments[1];
            return (
              i(this),
              (t = void 0 !== s),
              t && i(s),
              void 0 == e
                ? new this()
                : ((n = []),
                  t
                    ? ((r = 0),
                      (a = A(s, arguments[2], 2)),
                      o(e, !1, function (e) {
                        n.push(a(e, r++));
                      }))
                    : o(e, !1, n.push, n),
                  new this(n))
            );
          },
        });
      };
    },
    "7bc9": function (e, t) {
      e.exports =
        Math.sign ||
        function (e) {
          return 0 == (e = +e) || e != e ? e : e < 0 ? -1 : 1;
        };
    },
    "7bd6": function (e, t, n) {
      var r = n("f083");
      r(r.S, "Math", {
        isubh: function (e, t, n, r) {
          var i = e >>> 0,
            A = t >>> 0,
            o = n >>> 0;
          return (
            (A -
              (r >>> 0) -
              (((~i & o) | (~(i ^ o) & ((i - o) >>> 0))) >>> 31)) |
            0
          );
        },
      });
    },
    "7bf9": function (e, t, n) {
      "use strict";
      n("e681")("italics", function (e) {
        return function () {
          return e(this, "i", "", "");
        };
      });
    },
    "7c3c": function (e, t, n) {
      var r = n("93e0"),
        i = n("11e2"),
        A = n("2761").f,
        o = n("dbb2").f,
        a = n("37a2"),
        s = n("66ac"),
        c = r.RegExp,
        u = c,
        l = c.prototype,
        h = /a/g,
        f = /a/g,
        d = new c(h) !== h;
      if (
        n("c94e") &&
        (!d ||
          n("f937")(function () {
            return (
              (f[n("de24")("match")] = !1),
              c(h) != h || c(f) == f || "/a/i" != c(h, "i")
            );
          }))
      ) {
        c = function (e, t) {
          var n = this instanceof c,
            r = a(e),
            A = void 0 === t;
          return !n && r && e.constructor === c && A
            ? e
            : i(
                d
                  ? new u(r && !A ? e.source : e, t)
                  : u(
                      (r = e instanceof c) ? e.source : e,
                      r && A ? s.call(e) : t,
                    ),
                n ? this : l,
                c,
              );
        };
        for (
          var p = function (e) {
              (e in c) ||
                A(c, e, {
                  configurable: !0,
                  get: function () {
                    return u[e];
                  },
                  set: function (t) {
                    u[e] = t;
                  },
                });
            },
            g = o(u),
            m = 0;
          g.length > m;
        )
          p(g[m++]);
        ((l.constructor = c), (c.prototype = l), n("77ea")(r, "RegExp", c));
      }
      n("3a2f")("RegExp");
    },
    "7c73": function (e, t, n) {
      var r,
        i = n("825a"),
        A = n("37e8"),
        o = n("7839"),
        a = n("d012"),
        s = n("1be4"),
        c = n("cc12"),
        u = n("f772"),
        l = ">",
        h = "<",
        f = "prototype",
        d = "script",
        p = u("IE_PROTO"),
        g = function () {},
        m = function (e) {
          return h + d + l + e + h + "/" + d + l;
        },
        v = function (e) {
          (e.write(m("")), e.close());
          var t = e.parentWindow.Object;
          return ((e = null), t);
        },
        y = function () {
          var e,
            t = c("iframe"),
            n = "java" + d + ":";
          return (
            (t.style.display = "none"),
            s.appendChild(t),
            (t.src = String(n)),
            (e = t.contentWindow.document),
            e.open(),
            e.write(m("document.F=Object")),
            e.close(),
            e.F
          );
        },
        w = function () {
          try {
            r = new ActiveXObject("htmlfile");
          } catch (t) {}
          w =
            "undefined" != typeof document
              ? document.domain && r
                ? v(r)
                : y()
              : v(r);
          var e = o.length;
          while (e--) delete w[f][o[e]];
          return w();
        };
      ((a[p] = !0),
        (e.exports =
          Object.create ||
          function (e, t) {
            var n;
            return (
              null !== e
                ? ((g[f] = i(e)), (n = new g()), (g[f] = null), (n[p] = e))
                : (n = w()),
              void 0 === t ? n : A.f(n, t)
            );
          }));
    },
    "7d24": function (e, t, n) {
      n("1b1e")("Uint16", 2, function (e) {
        return function (t, n, r) {
          return e(this, t, n, r);
        };
      });
    },
    "7df4": function (e, t, n) {
      var r = n("f083");
      r(r.S, "Math", { fround: n("d49b") });
    },
    "7f21": function (e, t, n) {
      var r = n("1c2d");
      e.exports =
        Array.isArray ||
        function (e) {
          return "Array" == r(e);
        };
    },
    "7f9a": function (e, t, n) {
      var r = n("da84"),
        i = n("1626"),
        A = n("8925"),
        o = r.WeakMap;
      e.exports = i(o) && /native code/.test(A(o));
    },
    8072: function (e, t, n) {
      var r = n("f083"),
        i = n("4592");
      r(r.S + r.F * (i != Math.expm1), "Math", { expm1: i });
    },
    "811a": function (e, t, n) {
      var r = n("42ee"),
        i = n("5a5d");
      n("0a66")("keys", function () {
        return function (e) {
          return i(r(e));
        };
      });
    },
    8233: function (e, t, n) {
      var r = n("f083"),
        i = n("bcd0");
      r(r.P + r.F * (Date.prototype.toISOString !== i), "Date", {
        toISOString: i,
      });
    },
    "825a": function (e, t, n) {
      var r = n("861d"),
        i = String,
        A = TypeError;
      e.exports = function (e) {
        if (r(e)) return e;
        throw A(i(e) + " is not an object");
      };
    },
    "82a6": function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("e7ff"),
        A = n("2d5b");
      r(r.S, "Promise", {
        try: function (e) {
          var t = i.f(this),
            n = A(e);
          return ((n.e ? t.reject : t.resolve)(n.v), t.promise);
        },
      });
    },
    "832c": function (e, t, n) {
      var r = n("9fe8"),
        i = n("7f21"),
        A = n("de24")("species");
      e.exports = function (e) {
        var t;
        return (
          i(e) &&
            ((t = e.constructor),
            "function" != typeof t ||
              (t !== Array && !i(t.prototype)) ||
              (t = void 0),
            r(t) && ((t = t[A]), null === t && (t = void 0))),
          void 0 === t ? Array : t
        );
      };
    },
    8344: function (e, t, n) {
      "use strict";
      var r = n("d77f"),
        i = n("6373"),
        A = n("6972"),
        o = n("fef8");
      n("9ed1")("match", 1, function (e, t, n, a) {
        return [
          function (n) {
            var r = e(this),
              i = void 0 == n ? void 0 : n[t];
            return void 0 !== i ? i.call(n, r) : new RegExp(n)[t](String(r));
          },
          function (e) {
            var t = a(n, e, this);
            if (t.done) return t.value;
            var s = r(e),
              c = String(this);
            if (!s.global) return o(s, c);
            var u = s.unicode;
            s.lastIndex = 0;
            var l,
              h = [],
              f = 0;
            while (null !== (l = o(s, c))) {
              var d = String(l[0]);
              ((h[f] = d),
                "" === d && (s.lastIndex = A(c, i(s.lastIndex), u)),
                f++);
            }
            return 0 === f ? null : h;
          },
        ];
      });
    },
    "83ab": function (e, t, n) {
      var r = n("d039");
      e.exports = !r(function () {
        return (
          7 !=
          Object.defineProperty({}, 1, {
            get: function () {
              return 7;
            },
          })[1]
        );
      });
    },
    8539: function (e, t, n) {
      var r = n("93e0").parseFloat,
        i = n("e9d8").trim;
      e.exports =
        1 / r(n("69b4") + "-0") !== -1 / 0
          ? function (e) {
              var t = i(String(e), 3),
                n = r(t);
              return 0 === n && "-" == t.charAt(0) ? -0 : n;
            }
          : r;
    },
    "85fe": function (e, t, n) {
      "use strict";
      (function (e) {
        function n(e) {
          return (
            (n =
              "function" === typeof Symbol &&
              "symbol" === typeof Symbol.iterator
                ? function (e) {
                    return typeof e;
                  }
                : function (e) {
                    return e &&
                      "function" === typeof Symbol &&
                      e.constructor === Symbol &&
                      e !== Symbol.prototype
                      ? "symbol"
                      : typeof e;
                  }),
            n(e)
          );
        }
        function r(e, t) {
          if (!(e instanceof t))
            throw new TypeError("Cannot call a class as a function");
        }
        function i(e, t) {
          for (var n = 0; n < t.length; n++) {
            var r = t[n];
            ((r.enumerable = r.enumerable || !1),
              (r.configurable = !0),
              "value" in r && (r.writable = !0),
              Object.defineProperty(e, r.key, r));
          }
        }
        function A(e, t, n) {
          return (t && i(e.prototype, t), n && i(e, n), e);
        }
        function o(e) {
          return a(e) || s(e) || c();
        }
        function a(e) {
          if (Array.isArray(e)) {
            for (var t = 0, n = new Array(e.length); t < e.length; t++)
              n[t] = e[t];
            return n;
          }
        }
        function s(e) {
          if (
            Symbol.iterator in Object(e) ||
            "[object Arguments]" === Object.prototype.toString.call(e)
          )
            return Array.from(e);
        }
        function c() {
          throw new TypeError(
            "Invalid attempt to spread non-iterable instance",
          );
        }
        function u(e) {
          var t;
          return ((t = "function" === typeof e ? { callback: e } : e), t);
        }
        function l(e, t) {
          var n,
            r,
            i,
            A =
              arguments.length > 2 && void 0 !== arguments[2]
                ? arguments[2]
                : {},
            a = function (a) {
              for (
                var s = arguments.length,
                  c = new Array(s > 1 ? s - 1 : 0),
                  u = 1;
                u < s;
                u++
              )
                c[u - 1] = arguments[u];
              if (((i = c), !n || a !== r)) {
                var l = A.leading;
                ("function" === typeof l && (l = l(a, r)),
                  (n && a === r) || !l || e.apply(void 0, [a].concat(o(i))),
                  (r = a),
                  clearTimeout(n),
                  (n = setTimeout(function () {
                    (e.apply(void 0, [a].concat(o(i))), (n = 0));
                  }, t)));
              }
            };
          return (
            (a._clear = function () {
              (clearTimeout(n), (n = null));
            }),
            a
          );
        }
        function h(e, t) {
          if (e === t) return !0;
          if ("object" === n(e)) {
            for (var r in e) if (!h(e[r], t[r])) return !1;
            return !0;
          }
          return !1;
        }
        var f = (function () {
          function e(t, n, i) {
            (r(this, e),
              (this.el = t),
              (this.observer = null),
              (this.frozen = !1),
              this.createObserver(n, i));
          }
          return (
            A(e, [
              {
                key: "createObserver",
                value: function (e, t) {
                  var n = this;
                  if ((this.observer && this.destroyObserver(), !this.frozen)) {
                    if (
                      ((this.options = u(e)),
                      (this.callback = function (e, t) {
                        (n.options.callback(e, t),
                          e &&
                            n.options.once &&
                            ((n.frozen = !0), n.destroyObserver()));
                      }),
                      this.callback && this.options.throttle)
                    ) {
                      var r = this.options.throttleOptions || {},
                        i = r.leading;
                      this.callback = l(this.callback, this.options.throttle, {
                        leading: function (e) {
                          return (
                            "both" === i ||
                            ("visible" === i && e) ||
                            ("hidden" === i && !e)
                          );
                        },
                      });
                    }
                    ((this.oldResult = void 0),
                      (this.observer = new IntersectionObserver(function (e) {
                        var t = e[0];
                        if (e.length > 1) {
                          var r = e.find(function (e) {
                            return e.isIntersecting;
                          });
                          r && (t = r);
                        }
                        if (n.callback) {
                          var i =
                            t.isIntersecting &&
                            t.intersectionRatio >= n.threshold;
                          if (i === n.oldResult) return;
                          ((n.oldResult = i), n.callback(i, t));
                        }
                      }, this.options.intersection)),
                      t.context.$nextTick(function () {
                        n.observer && n.observer.observe(n.el);
                      }));
                  }
                },
              },
              {
                key: "destroyObserver",
                value: function () {
                  (this.observer &&
                    (this.observer.disconnect(), (this.observer = null)),
                    this.callback &&
                      this.callback._clear &&
                      (this.callback._clear(), (this.callback = null)));
                },
              },
              {
                key: "threshold",
                get: function () {
                  return this.options.intersection &&
                    "number" === typeof this.options.intersection.threshold
                    ? this.options.intersection.threshold
                    : 0;
                },
              },
            ]),
            e
          );
        })();
        function d(e, t, n) {
          var r = t.value;
          if (r)
            if ("undefined" === typeof IntersectionObserver)
              console.warn(
                "[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill",
              );
            else {
              var i = new f(e, r, n);
              e._vue_visibilityState = i;
            }
        }
        function p(e, t, n) {
          var r = t.value,
            i = t.oldValue;
          if (!h(r, i)) {
            var A = e._vue_visibilityState;
            r ? (A ? A.createObserver(r, n) : d(e, { value: r }, n)) : g(e);
          }
        }
        function g(e) {
          var t = e._vue_visibilityState;
          t && (t.destroyObserver(), delete e._vue_visibilityState);
        }
        var m = { bind: d, update: p, unbind: g };
        function v(e) {
          e.directive("observe-visibility", m);
        }
        var y = { version: "1.0.0", install: v },
          w = null;
        ("undefined" !== typeof window
          ? (w = window.Vue)
          : "undefined" !== typeof e && (w = e.Vue),
          w && w.use(y),
          (t["a"] = y));
      }).call(this, n("c8ba"));
    },
    "861d": function (e, t, n) {
      var r = n("1626");
      e.exports = function (e) {
        return "object" == typeof e ? null !== e : r(e);
      };
    },
    8808: function (e, t, n) {
      var r = n("f083");
      r(r.G + r.W + r.F * !n("f308").ABV, { DataView: n("b799").DataView });
    },
    8848: function (e, t, n) {
      var r = n("f083"),
        i = n("4592"),
        A = Math.exp;
      r(
        r.S +
          r.F *
            n("f937")(function () {
              return -2e-17 != !Math.sinh(-2e-17);
            }),
        "Math",
        {
          sinh: function (e) {
            return Math.abs((e = +e)) < 1
              ? (i(e) - i(-e)) / 2
              : (A(e - 1) - A(-e - 1)) * (Math.E / 2);
          },
        },
      );
    },
    8870: function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("0ae2"),
        A = n("93e0"),
        o = n("1147"),
        a = n("44e8");
      r(r.P + r.R, "Promise", {
        finally: function (e) {
          var t = o(this, i.Promise || A.Promise),
            n = "function" == typeof e;
          return this.then(
            n
              ? function (n) {
                  return a(t, e()).then(function () {
                    return n;
                  });
                }
              : e,
            n
              ? function (n) {
                  return a(t, e()).then(function () {
                    throw n;
                  });
                }
              : e,
          );
        },
      });
    },
    8904: function (e, t, n) {
      "use strict";
      n("02f7");
      var r = n("d77f"),
        i = n("66ac"),
        A = n("c94e"),
        o = "toString",
        a = /./[o],
        s = function (e) {
          n("77ea")(RegExp.prototype, o, e, !0);
        };
      n("f937")(function () {
        return "/a/b" != a.call({ source: "a", flags: "b" });
      })
        ? s(function () {
            var e = r(this);
            return "/".concat(
              e.source,
              "/",
              "flags" in e
                ? e.flags
                : !A && e instanceof RegExp
                  ? i.call(e)
                  : void 0,
            );
          })
        : a.name != o &&
          s(function () {
            return a.call(this);
          });
    },
    8925: function (e, t, n) {
      var r = n("e330"),
        i = n("1626"),
        A = n("c6cd"),
        o = r(Function.toString);
      (i(A.inspectSource) ||
        (A.inspectSource = function (e) {
          return o(e);
        }),
        (e.exports = A.inspectSource));
    },
    "89b1": function (e, t, n) {
      n("7bb0")("WeakMap");
    },
    "8a34": function (e, t, n) {
      "use strict";
      n("e681")("fixed", function (e) {
        return function () {
          return e(this, "tt", "", "");
        };
      });
    },
    "8ad7": function (e, t, n) {
      var r = n("9fe8"),
        i = n("93e0").document,
        A = r(i) && r(i.createElement);
      e.exports = function (e) {
        return A ? i.createElement(e) : {};
      };
    },
    "8c03": function (e, t, n) {
      var r = n("f083"),
        i = n("2647"),
        A = Math.abs;
      r(r.S, "Number", {
        isSafeInteger: function (e) {
          return i(e) && A(e) <= 9007199254740991;
        },
      });
    },
    "8d87": function (e, t, n) {
      var r = n("e171"),
        i = n("fb32"),
        A = n("5d6f"),
        o = n("019f"),
        a = n("2fb2"),
        s = n("f97f"),
        c = Object.getOwnPropertyDescriptor;
      t.f = n("c94e")
        ? c
        : function (e, t) {
            if (((e = A(e)), (t = o(t, !0)), s))
              try {
                return c(e, t);
              } catch (n) {}
            if (a(e, t)) return i(!r.f.call(e, t), e[t]);
          };
    },
    "8f7a": function (e, t, n) {
      n("f948")("WeakMap");
    },
    "8f83": function (e, t, n) {
      var r = n("f083"),
        i = n("d77f"),
        A = Object.preventExtensions;
      r(r.S, "Reflect", {
        preventExtensions: function (e) {
          i(e);
          try {
            return (A && A(e), !0);
          } catch (t) {
            return !1;
          }
        },
      });
    },
    "8fc4": function (e, t, n) {
      var r = n("911a"),
        i = n("e5aa"),
        A = n("c786"),
        o = n("d77f"),
        a = n("6373"),
        s = n("a37b"),
        c = {},
        u = {};
      t = e.exports = function (e, t, n, l, h) {
        var f,
          d,
          p,
          g,
          m = h
            ? function () {
                return e;
              }
            : s(e),
          v = r(n, l, t ? 2 : 1),
          y = 0;
        if ("function" != typeof m) throw TypeError(e + " is not iterable!");
        if (A(m)) {
          for (f = a(e.length); f > y; y++)
            if (
              ((g = t ? v(o((d = e[y]))[0], d[1]) : v(e[y])),
              g === c || g === u)
            )
              return g;
        } else
          for (p = m.call(e); !(d = p.next()).done; )
            if (((g = i(p, v, d.value, t)), g === c || g === u)) return g;
      };
      ((t.BREAK = c), (t.RETURN = u));
    },
    "907a": function (e, t, n) {
      "use strict";
      var r = n("ebb5"),
        i = n("07fa"),
        A = n("5926"),
        o = r.aTypedArray,
        a = r.exportTypedArrayMethod;
      a("at", function (e) {
        var t = o(this),
          n = i(t),
          r = A(e),
          a = r >= 0 ? r : n + r;
        return a < 0 || a >= n ? void 0 : t[a];
      });
    },
    "90e3": function (e, t, n) {
      var r = n("e330"),
        i = 0,
        A = Math.random(),
        o = r((1).toString);
      e.exports = function (e) {
        return "Symbol(" + (void 0 === e ? "" : e) + ")_" + o(++i + A, 36);
      };
    },
    9112: function (e, t, n) {
      var r = n("83ab"),
        i = n("9bf2"),
        A = n("5c6c");
      e.exports = r
        ? function (e, t, n) {
            return i.f(e, t, A(1, n));
          }
        : function (e, t, n) {
            return ((e[t] = n), e);
          };
    },
    "911a": function (e, t, n) {
      var r = n("2ce8");
      e.exports = function (e, t, n) {
        if ((r(e), void 0 === t)) return e;
        switch (n) {
          case 1:
            return function (n) {
              return e.call(t, n);
            };
          case 2:
            return function (n, r) {
              return e.call(t, n, r);
            };
          case 3:
            return function (n, r, i) {
              return e.call(t, n, r, i);
            };
        }
        return function () {
          return e.apply(t, arguments);
        };
      };
    },
    9165: function (e, t, n) {
      var r = n("1c6a"),
        i = n("d77f"),
        A = n("ed60"),
        o = r.has,
        a = r.get,
        s = r.key,
        c = function (e, t, n) {
          var r = o(e, t, n);
          if (r) return a(e, t, n);
          var i = A(t);
          return null !== i ? c(e, i, n) : void 0;
        };
      r.exp({
        getMetadata: function (e, t) {
          return c(e, i(t), arguments.length < 3 ? void 0 : s(arguments[2]));
        },
      });
    },
    "928a": function (e, t) {
      e.exports = function (e, t, n, r) {
        if (!(e instanceof t) || (void 0 !== r && r in e))
          throw TypeError(n + ": incorrect invocation!");
        return e;
      };
    },
    "930b": function (e, t, n) {
      var r = n("f083"),
        i = n("dc3f"),
        A = Math.sqrt,
        o = Math.acosh;
      r(
        r.S +
          r.F *
            !(o && 710 == Math.floor(o(Number.MAX_VALUE)) && o(1 / 0) == 1 / 0),
        "Math",
        {
          acosh: function (e) {
            return (e = +e) < 1
              ? NaN
              : e > 94906265.62425156
                ? Math.log(e) + Math.LN2
                : i(e - 1 + A(e - 1) * A(e + 1));
          },
        },
      );
    },
    "93e0": function (e, t) {
      var n = (e.exports =
        "undefined" != typeof window && window.Math == Math
          ? window
          : "undefined" != typeof self && self.Math == Math
            ? self
            : Function("return this")());
      "number" == typeof __g && (__g = n);
    },
    "942c": function (e, t, n) {
      var r = n("f083");
      r(r.S, "Math", { DEG_PER_RAD: Math.PI / 180 });
    },
    "94bb": function (e, t, n) {
      "use strict";
      var r,
        i = n("93e0"),
        A = n("cffc")(0),
        o = n("77ea"),
        a = n("4c8d"),
        s = n("974c"),
        c = n("415f"),
        u = n("9fe8"),
        l = n("798a"),
        h = n("798a"),
        f = !i.ActiveXObject && "ActiveXObject" in i,
        d = "WeakMap",
        p = a.getWeak,
        g = Object.isExtensible,
        m = c.ufstore,
        v = function (e) {
          return function () {
            return e(this, arguments.length > 0 ? arguments[0] : void 0);
          };
        },
        y = {
          get: function (e) {
            if (u(e)) {
              var t = p(e);
              return !0 === t ? m(l(this, d)).get(e) : t ? t[this._i] : void 0;
            }
          },
          set: function (e, t) {
            return c.def(l(this, d), e, t);
          },
        },
        w = (e.exports = n("d168")(d, v, y, c, !0, !0));
      h &&
        f &&
        ((r = c.getConstructor(v, d)),
        s(r.prototype, y),
        (a.NEED = !0),
        A(["delete", "has", "get", "set"], function (e) {
          var t = w.prototype,
            n = t[e];
          o(t, e, function (t, i) {
            if (u(t) && !g(t)) {
              this._f || (this._f = new r());
              var A = this._f[e](t, i);
              return "set" == e ? this : A;
            }
            return n.call(this, t, i);
          });
        }));
    },
    "94ca": function (e, t, n) {
      var r = n("d039"),
        i = n("1626"),
        A = /#|\.prototype\./,
        o = function (e, t) {
          var n = s[a(e)];
          return n == u || (n != c && (i(t) ? r(t) : !!t));
        },
        a = (o.normalize = function (e) {
          return String(e).replace(A, ".").toLowerCase();
        }),
        s = (o.data = {}),
        c = (o.NATIVE = "N"),
        u = (o.POLYFILL = "P");
      e.exports = o;
    },
    "964f": function (e, t, n) {
      var r = n("de85")("keys"),
        i = n("5689");
      e.exports = function (e) {
        return r[e] || (r[e] = i(e));
      };
    },
    "96cf": function (e, t, n) {
      (function (t) {
        !(function (t) {
          "use strict";
          var n,
            r = Object.prototype,
            i = r.hasOwnProperty,
            A = "function" === typeof Symbol ? Symbol : {},
            o = A.iterator || "@@iterator",
            a = A.asyncIterator || "@@asyncIterator",
            s = A.toStringTag || "@@toStringTag",
            c = "object" === typeof e,
            u = t.regeneratorRuntime;
          if (u) c && (e.exports = u);
          else {
            ((u = t.regeneratorRuntime = c ? e.exports : {}), (u.wrap = w));
            var l = "suspendedStart",
              h = "suspendedYield",
              f = "executing",
              d = "completed",
              p = {},
              g = {};
            g[o] = function () {
              return this;
            };
            var m = Object.getPrototypeOf,
              v = m && m(m(Q([])));
            v && v !== r && i.call(v, o) && (g = v);
            var y = (x.prototype = b.prototype = Object.create(g));
            ((_.prototype = y.constructor = x),
              (x.constructor = _),
              (x[s] = _.displayName = "GeneratorFunction"),
              (u.isGeneratorFunction = function (e) {
                var t = "function" === typeof e && e.constructor;
                return (
                  !!t &&
                  (t === _ || "GeneratorFunction" === (t.displayName || t.name))
                );
              }),
              (u.mark = function (e) {
                return (
                  Object.setPrototypeOf
                    ? Object.setPrototypeOf(e, x)
                    : ((e.__proto__ = x),
                      s in e || (e[s] = "GeneratorFunction")),
                  (e.prototype = Object.create(y)),
                  e
                );
              }),
              (u.awrap = function (e) {
                return { __await: e };
              }),
              C(E.prototype),
              (E.prototype[a] = function () {
                return this;
              }),
              (u.AsyncIterator = E),
              (u.async = function (e, t, n, r) {
                var i = new E(w(e, t, n, r));
                return u.isGeneratorFunction(t)
                  ? i
                  : i.next().then(function (e) {
                      return e.done ? e.value : i.next();
                    });
              }),
              C(y),
              (y[s] = "Generator"),
              (y[o] = function () {
                return this;
              }),
              (y.toString = function () {
                return "[object Generator]";
              }),
              (u.keys = function (e) {
                var t = [];
                for (var n in e) t.push(n);
                return (
                  t.reverse(),
                  function n() {
                    while (t.length) {
                      var r = t.pop();
                      if (r in e) return ((n.value = r), (n.done = !1), n);
                    }
                    return ((n.done = !0), n);
                  }
                );
              }),
              (u.values = Q),
              (U.prototype = {
                constructor: U,
                reset: function (e) {
                  if (
                    ((this.prev = 0),
                    (this.next = 0),
                    (this.sent = this._sent = n),
                    (this.done = !1),
                    (this.delegate = null),
                    (this.method = "next"),
                    (this.arg = n),
                    this.tryEntries.forEach(T),
                    !e)
                  )
                    for (var t in this)
                      "t" === t.charAt(0) &&
                        i.call(this, t) &&
                        !isNaN(+t.slice(1)) &&
                        (this[t] = n);
                },
                stop: function () {
                  this.done = !0;
                  var e = this.tryEntries[0],
                    t = e.completion;
                  if ("throw" === t.type) throw t.arg;
                  return this.rval;
                },
                dispatchException: function (e) {
                  if (this.done) throw e;
                  var t = this;
                  function r(r, i) {
                    return (
                      (a.type = "throw"),
                      (a.arg = e),
                      (t.next = r),
                      i && ((t.method = "next"), (t.arg = n)),
                      !!i
                    );
                  }
                  for (var A = this.tryEntries.length - 1; A >= 0; --A) {
                    var o = this.tryEntries[A],
                      a = o.completion;
                    if ("root" === o.tryLoc) return r("end");
                    if (o.tryLoc <= this.prev) {
                      var s = i.call(o, "catchLoc"),
                        c = i.call(o, "finallyLoc");
                      if (s && c) {
                        if (this.prev < o.catchLoc) return r(o.catchLoc, !0);
                        if (this.prev < o.finallyLoc) return r(o.finallyLoc);
                      } else if (s) {
                        if (this.prev < o.catchLoc) return r(o.catchLoc, !0);
                      } else {
                        if (!c)
                          throw new Error(
                            "try statement without catch or finally",
                          );
                        if (this.prev < o.finallyLoc) return r(o.finallyLoc);
                      }
                    }
                  }
                },
                abrupt: function (e, t) {
                  for (var n = this.tryEntries.length - 1; n >= 0; --n) {
                    var r = this.tryEntries[n];
                    if (
                      r.tryLoc <= this.prev &&
                      i.call(r, "finallyLoc") &&
                      this.prev < r.finallyLoc
                    ) {
                      var A = r;
                      break;
                    }
                  }
                  A &&
                    ("break" === e || "continue" === e) &&
                    A.tryLoc <= t &&
                    t <= A.finallyLoc &&
                    (A = null);
                  var o = A ? A.completion : {};
                  return (
                    (o.type = e),
                    (o.arg = t),
                    A
                      ? ((this.method = "next"), (this.next = A.finallyLoc), p)
                      : this.complete(o)
                  );
                },
                complete: function (e, t) {
                  if ("throw" === e.type) throw e.arg;
                  return (
                    "break" === e.type || "continue" === e.type
                      ? (this.next = e.arg)
                      : "return" === e.type
                        ? ((this.rval = this.arg = e.arg),
                          (this.method = "return"),
                          (this.next = "end"))
                        : "normal" === e.type && t && (this.next = t),
                    p
                  );
                },
                finish: function (e) {
                  for (var t = this.tryEntries.length - 1; t >= 0; --t) {
                    var n = this.tryEntries[t];
                    if (n.finallyLoc === e)
                      return (this.complete(n.completion, n.afterLoc), T(n), p);
                  }
                },
                catch: function (e) {
                  for (var t = this.tryEntries.length - 1; t >= 0; --t) {
                    var n = this.tryEntries[t];
                    if (n.tryLoc === e) {
                      var r = n.completion;
                      if ("throw" === r.type) {
                        var i = r.arg;
                        T(n);
                      }
                      return i;
                    }
                  }
                  throw new Error("illegal catch attempt");
                },
                delegateYield: function (e, t, r) {
                  return (
                    (this.delegate = {
                      iterator: Q(e),
                      resultName: t,
                      nextLoc: r,
                    }),
                    "next" === this.method && (this.arg = n),
                    p
                  );
                },
              }));
          }
          function w(e, t, n, r) {
            var i = t && t.prototype instanceof b ? t : b,
              A = Object.create(i.prototype),
              o = new U(r || []);
            return ((A._invoke = M(e, n, o)), A);
          }
          function B(e, t, n) {
            try {
              return { type: "normal", arg: e.call(t, n) };
            } catch (r) {
              return { type: "throw", arg: r };
            }
          }
          function b() {}
          function _() {}
          function x() {}
          function C(e) {
            ["next", "throw", "return"].forEach(function (t) {
              e[t] = function (e) {
                return this._invoke(t, e);
              };
            });
          }
          function E(e) {
            function n(t, r, A, o) {
              var a = B(e[t], e, r);
              if ("throw" !== a.type) {
                var s = a.arg,
                  c = s.value;
                return c && "object" === typeof c && i.call(c, "__await")
                  ? Promise.resolve(c.__await).then(
                      function (e) {
                        n("next", e, A, o);
                      },
                      function (e) {
                        n("throw", e, A, o);
                      },
                    )
                  : Promise.resolve(c).then(function (e) {
                      ((s.value = e), A(s));
                    }, o);
              }
              o(a.arg);
            }
            var r;
            function A(e, t) {
              function i() {
                return new Promise(function (r, i) {
                  n(e, t, r, i);
                });
              }
              return (r = r ? r.then(i, i) : i());
            }
            ("object" === typeof t.process &&
              t.process.domain &&
              (n = t.process.domain.bind(n)),
              (this._invoke = A));
          }
          function M(e, t, n) {
            var r = l;
            return function (i, A) {
              if (r === f) throw new Error("Generator is already running");
              if (r === d) {
                if ("throw" === i) throw A;
                return L();
              }
              ((n.method = i), (n.arg = A));
              while (1) {
                var o = n.delegate;
                if (o) {
                  var a = S(o, n);
                  if (a) {
                    if (a === p) continue;
                    return a;
                  }
                }
                if ("next" === n.method) n.sent = n._sent = n.arg;
                else if ("throw" === n.method) {
                  if (r === l) throw ((r = d), n.arg);
                  n.dispatchException(n.arg);
                } else "return" === n.method && n.abrupt("return", n.arg);
                r = f;
                var s = B(e, t, n);
                if ("normal" === s.type) {
                  if (((r = n.done ? d : h), s.arg === p)) continue;
                  return { value: s.arg, done: n.done };
                }
                "throw" === s.type &&
                  ((r = d), (n.method = "throw"), (n.arg = s.arg));
              }
            };
          }
          function S(e, t) {
            var r = e.iterator[t.method];
            if (r === n) {
              if (((t.delegate = null), "throw" === t.method)) {
                if (
                  e.iterator.return &&
                  ((t.method = "return"),
                  (t.arg = n),
                  S(e, t),
                  "throw" === t.method)
                )
                  return p;
                ((t.method = "throw"),
                  (t.arg = new TypeError(
                    "The iterator does not provide a 'throw' method",
                  )));
              }
              return p;
            }
            var i = B(r, e.iterator, t.arg);
            if ("throw" === i.type)
              return (
                (t.method = "throw"),
                (t.arg = i.arg),
                (t.delegate = null),
                p
              );
            var A = i.arg;
            return A
              ? A.done
                ? ((t[e.resultName] = A.value),
                  (t.next = e.nextLoc),
                  "return" !== t.method && ((t.method = "next"), (t.arg = n)),
                  (t.delegate = null),
                  p)
                : A
              : ((t.method = "throw"),
                (t.arg = new TypeError("iterator result is not an object")),
                (t.delegate = null),
                p);
          }
          function F(e) {
            var t = { tryLoc: e[0] };
            (1 in e && (t.catchLoc = e[1]),
              2 in e && ((t.finallyLoc = e[2]), (t.afterLoc = e[3])),
              this.tryEntries.push(t));
          }
          function T(e) {
            var t = e.completion || {};
            ((t.type = "normal"), delete t.arg, (e.completion = t));
          }
          function U(e) {
            ((this.tryEntries = [{ tryLoc: "root" }]),
              e.forEach(F, this),
              this.reset(!0));
          }
          function Q(e) {
            if (e) {
              var t = e[o];
              if (t) return t.call(e);
              if ("function" === typeof e.next) return e;
              if (!isNaN(e.length)) {
                var r = -1,
                  A = function t() {
                    while (++r < e.length)
                      if (i.call(e, r))
                        return ((t.value = e[r]), (t.done = !1), t);
                    return ((t.value = n), (t.done = !0), t);
                  };
                return (A.next = A);
              }
            }
            return { next: L };
          }
          function L() {
            return { value: n, done: !0 };
          }
        })(
          "object" === typeof t
            ? t
            : "object" === typeof window
              ? window
              : "object" === typeof self
                ? self
                : this,
        );
      }).call(this, n("c8ba"));
    },
    "974c": function (e, t, n) {
      "use strict";
      var r = n("c94e"),
        i = n("5a5d"),
        A = n("10dd"),
        o = n("e171"),
        a = n("42ee"),
        s = n("dbaf"),
        c = Object.assign;
      e.exports =
        !c ||
        n("f937")(function () {
          var e = {},
            t = {},
            n = Symbol(),
            r = "abcdefghijklmnopqrst";
          return (
            (e[n] = 7),
            r.split("").forEach(function (e) {
              t[e] = e;
            }),
            7 != c({}, e)[n] || Object.keys(c({}, t)).join("") != r
          );
        })
          ? function (e, t) {
              var n = a(e),
                c = arguments.length,
                u = 1,
                l = A.f,
                h = o.f;
              while (c > u) {
                var f,
                  d = s(arguments[u++]),
                  p = l ? i(d).concat(l(d)) : i(d),
                  g = p.length,
                  m = 0;
                while (g > m)
                  ((f = p[m++]), (r && !h.call(d, f)) || (n[f] = d[f]));
              }
              return n;
            }
          : c;
    },
    "97a6": function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("c747");
      r(r.P + r.F * !n("55c7")([].reduce, !0), "Array", {
        reduce: function (e) {
          return i(this, e, arguments.length, arguments[1], !1);
        },
      });
    },
    "97d3": function (e, t, n) {
      var r = n("f083");
      r(r.S + r.F, "Object", { assign: n("974c") });
    },
    "985b": function (e, t, n) {
      n("f948")("Map");
    },
    "986a": function (e, t, n) {
      "use strict";
      var r = n("ebb5"),
        i = n("a258").findLast,
        A = r.aTypedArray,
        o = r.exportTypedArrayMethod;
      o("findLast", function (e) {
        return i(A(this), e, arguments.length > 1 ? arguments[1] : void 0);
      });
    },
    9960: function (e, t, n) {
      var r = n("2761").f,
        i = Function.prototype,
        A = /^\s*function ([^ (]*)/,
        o = "name";
      o in i ||
        (n("c94e") &&
          r(i, o, {
            configurable: !0,
            get: function () {
              try {
                return ("" + this).match(A)[1];
              } catch (e) {
                return "";
              }
            },
          }));
    },
    "9ab4": function (e, t, n) {
      "use strict";
      n.d(t, "a", function () {
        return r;
      });
      function r(e, t, n, r) {
        var i,
          A = arguments.length,
          o =
            A < 3
              ? t
              : null === r
                ? (r = Object.getOwnPropertyDescriptor(t, n))
                : r;
        if (
          "object" === typeof Reflect &&
          "function" === typeof Reflect.decorate
        )
          o = Reflect.decorate(e, t, n, r);
        else
          for (var a = e.length - 1; a >= 0; a--)
            (i = e[a]) &&
              (o = (A < 3 ? i(o) : A > 3 ? i(t, n, o) : i(t, n)) || o);
        return (A > 3 && o && Object.defineProperty(t, n, o), o);
      }
    },
    "9ac3": function (e, t, n) {
      n("1b1e")("Float64", 8, function (e) {
        return function (t, n, r) {
          return e(this, t, n, r);
        };
      });
    },
    "9b6f": function (e, t) {
      var n = Math.ceil,
        r = Math.floor;
      e.exports = function (e) {
        return isNaN((e = +e)) ? 0 : (e > 0 ? r : n)(e);
      };
    },
    "9bf2": function (e, t, n) {
      var r = n("83ab"),
        i = n("0cfb"),
        A = n("aed9"),
        o = n("825a"),
        a = n("a04b"),
        s = TypeError,
        c = Object.defineProperty,
        u = Object.getOwnPropertyDescriptor,
        l = "enumerable",
        h = "configurable",
        f = "writable";
      t.f = r
        ? A
          ? function (e, t, n) {
              if (
                (o(e),
                (t = a(t)),
                o(n),
                "function" === typeof e &&
                  "prototype" === t &&
                  "value" in n &&
                  f in n &&
                  !n[f])
              ) {
                var r = u(e, t);
                r &&
                  r[f] &&
                  ((e[t] = n.value),
                  (n = {
                    configurable: h in n ? n[h] : r[h],
                    enumerable: l in n ? n[l] : r[l],
                    writable: !1,
                  }));
              }
              return c(e, t, n);
            }
          : c
        : function (e, t, n) {
            if ((o(e), (t = a(t)), o(n), i))
              try {
                return c(e, t, n);
              } catch (r) {}
            if ("get" in n || "set" in n) throw s("Accessors not supported");
            return ("value" in n && (e[t] = n.value), e);
          };
    },
    "9c0b": function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("428b"),
        A = n("42ee"),
        o = n("6373"),
        a = n("2ce8"),
        s = n("0a48");
      (r(r.P, "Array", {
        flatMap: function (e) {
          var t,
            n,
            r = A(this);
          return (
            a(e),
            (t = o(r.length)),
            (n = s(r, 0)),
            i(n, r, r, t, 0, 1, e, arguments[1]),
            n
          );
        },
      }),
        n("66b7")("flatMap"));
    },
    "9cec": function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("1af4"),
        A = n("64ff"),
        o = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(A);
      r(r.P + r.F * o, "String", {
        padEnd: function (e) {
          return i(this, e, arguments.length > 1 ? arguments[1] : void 0, !1);
        },
      });
    },
    "9d1d": function (e, t, n) {
      var r = n("f083"),
        i = n("59ad"),
        A = n("d49b");
      r(r.S, "Math", {
        fscale: function (e, t, n, r, o) {
          return A(i(e, t, n, r, o));
        },
      });
    },
    "9dab": function (e, t, n) {
      var r = n("f083");
      r(r.S, "Math", {
        imulh: function (e, t) {
          var n = 65535,
            r = +e,
            i = +t,
            A = r & n,
            o = i & n,
            a = r >> 16,
            s = i >> 16,
            c = ((a * o) >>> 0) + ((A * o) >>> 16);
          return a * s + (c >> 16) + ((((A * s) >>> 0) + (c & n)) >> 16);
        },
      });
    },
    "9e9b": function (e, t, n) {
      "use strict";
      n("e681")("fontcolor", function (e) {
        return function (t) {
          return e(this, "font", "color", t);
        };
      });
    },
    "9ed1": function (e, t, n) {
      "use strict";
      n("37c5");
      var r = n("77ea"),
        i = n("0713"),
        A = n("f937"),
        o = n("688d"),
        a = n("de24"),
        s = n("e056"),
        c = a("species"),
        u = !A(function () {
          var e = /./;
          return (
            (e.exec = function () {
              var e = [];
              return ((e.groups = { a: "7" }), e);
            }),
            "7" !== "".replace(e, "$<a>")
          );
        }),
        l = (function () {
          var e = /(?:)/,
            t = e.exec;
          e.exec = function () {
            return t.apply(this, arguments);
          };
          var n = "ab".split(e);
          return 2 === n.length && "a" === n[0] && "b" === n[1];
        })();
      e.exports = function (e, t, n) {
        var h = a(e),
          f = !A(function () {
            var t = {};
            return (
              (t[h] = function () {
                return 7;
              }),
              7 != ""[e](t)
            );
          }),
          d = f
            ? !A(function () {
                var t = !1,
                  n = /a/;
                return (
                  (n.exec = function () {
                    return ((t = !0), null);
                  }),
                  "split" === e &&
                    ((n.constructor = {}),
                    (n.constructor[c] = function () {
                      return n;
                    })),
                  n[h](""),
                  !t
                );
              })
            : void 0;
        if (!f || !d || ("replace" === e && !u) || ("split" === e && !l)) {
          var p = /./[h],
            g = n(o, h, ""[e], function (e, t, n, r, i) {
              return t.exec === s
                ? f && !i
                  ? { done: !0, value: p.call(t, n, r) }
                  : { done: !0, value: e.call(n, t, r) }
                : { done: !1 };
            }),
            m = g[0],
            v = g[1];
          (r(String.prototype, e, m),
            i(
              RegExp.prototype,
              h,
              2 == t
                ? function (e, t) {
                    return v.call(e, this, t);
                  }
                : function (e) {
                    return v.call(e, this);
                  },
            ));
        }
      };
    },
    "9f1f": function (e, t, n) {
      var r = n("f083"),
        i = 180 / Math.PI;
      r(r.S, "Math", {
        degrees: function (e) {
          return e * i;
        },
      });
    },
    "9fe8": function (e, t) {
      e.exports = function (e) {
        return "object" === typeof e ? null !== e : "function" === typeof e;
      };
    },
    a04b: function (e, t, n) {
      var r = n("c04e"),
        i = n("d9b5");
      e.exports = function (e) {
        var t = r(e, "string");
        return i(t) ? t : t + "";
      };
    },
    a05b: function (e, t, n) {
      var r = n("f083");
      r(r.S, "Math", { log1p: n("dc3f") });
    },
    a070: function (e, t, n) {
      e.exports = n("de85")("native-function-to-string", Function.toString);
    },
    a0ab: function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("f308"),
        A = n("b799"),
        o = n("d77f"),
        a = n("6fc7"),
        s = n("6373"),
        c = n("9fe8"),
        u = n("93e0").ArrayBuffer,
        l = n("1147"),
        h = A.ArrayBuffer,
        f = A.DataView,
        d = i.ABV && u.isView,
        p = h.prototype.slice,
        g = i.VIEW,
        m = "ArrayBuffer";
      (r(r.G + r.W + r.F * (u !== h), { ArrayBuffer: h }),
        r(r.S + r.F * !i.CONSTR, m, {
          isView: function (e) {
            return (d && d(e)) || (c(e) && g in e);
          },
        }),
        r(
          r.P +
            r.U +
            r.F *
              n("f937")(function () {
                return !new h(2).slice(1, void 0).byteLength;
              }),
          m,
          {
            slice: function (e, t) {
              if (void 0 !== p && void 0 === t) return p.call(o(this), e);
              var n = o(this).byteLength,
                r = a(e, n),
                i = a(void 0 === t ? n : t, n),
                A = new (l(this, h))(s(i - r)),
                c = new f(this),
                u = new f(A),
                d = 0;
              while (r < i) u.setUint8(d++, c.getUint8(r++));
              return A;
            },
          },
        ),
        n("3a2f")(m));
    },
    a134: function (e, t, n) {
      var r = n("f083");
      r(r.S, "Reflect", { ownKeys: n("eaeb") });
    },
    a258: function (e, t, n) {
      var r = n("0366"),
        i = n("44ad"),
        A = n("7b0b"),
        o = n("07fa"),
        a = function (e) {
          var t = 1 == e;
          return function (n, a, s) {
            var c,
              u,
              l = A(n),
              h = i(l),
              f = r(a, s),
              d = o(h);
            while (d-- > 0)
              if (((c = h[d]), (u = f(c, d, l)), u))
                switch (e) {
                  case 0:
                    return c;
                  case 1:
                    return d;
                }
            return t ? -1 : void 0;
          };
        };
      e.exports = { findLast: a(0), findLastIndex: a(1) };
    },
    a2cc: function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("27c4")(!0);
      (r(r.P, "Array", {
        includes: function (e) {
          return i(this, e, arguments.length > 1 ? arguments[1] : void 0);
        },
      }),
        n("66b7")("includes"));
    },
    a37b: function (e, t, n) {
      var r = n("5155"),
        i = n("de24")("iterator"),
        A = n("c053");
      e.exports = n("0ae2").getIteratorMethod = function (e) {
        if (void 0 != e) return e[i] || e["@@iterator"] || A[r(e)];
      };
    },
    a3d8: function (e, t, n) {
      var r = n("f083");
      r(r.S, "Number", { EPSILON: Math.pow(2, -52) });
    },
    a406: function (e, t, n) {
      "use strict";
      var r = n("911a"),
        i = n("f083"),
        A = n("42ee"),
        o = n("e5aa"),
        a = n("c786"),
        s = n("6373"),
        c = n("52d5"),
        u = n("a37b");
      i(
        i.S +
          i.F *
            !n("ebe8")(function (e) {
              Array.from(e);
            }),
        "Array",
        {
          from: function (e) {
            var t,
              n,
              i,
              l,
              h = A(e),
              f = "function" == typeof this ? this : Array,
              d = arguments.length,
              p = d > 1 ? arguments[1] : void 0,
              g = void 0 !== p,
              m = 0,
              v = u(h);
            if (
              (g && (p = r(p, d > 2 ? arguments[2] : void 0, 2)),
              void 0 == v || (f == Array && a(v)))
            )
              for (t = s(h.length), n = new f(t); t > m; m++)
                c(n, m, g ? p(h[m], m) : h[m]);
            else
              for (l = v.call(h), n = new f(); !(i = l.next()).done; m++)
                c(n, m, g ? o(l, p, [i.value, m], !0) : i.value);
            return ((n.length = m), n);
          },
        },
      );
    },
    a43b: function (e, t, n) {
      t.f = n("de24");
    },
    a4b5: function (e, t, n) {
      n("1b1e")("Uint8", 1, function (e) {
        return function (t, n, r) {
          return e(this, t, n, r);
        };
      });
    },
    a524: function (e, t, n) {
      n("1cb7")("asyncIterator");
    },
    a581: function (e, t, n) {
      var r = n("f083"),
        i = Math.exp;
      r(r.S, "Math", {
        cosh: function (e) {
          return (i((e = +e)) + i(-e)) / 2;
        },
      });
    },
    a5e2: function (e, t, n) {
      var r = n("f083");
      r(r.S, "Object", { setPrototypeOf: n("4759").set });
    },
    a640: function (e, t, n) {
      "use strict";
      var r = n("d039");
      e.exports = function (e, t) {
        var n = [][e];
        return (
          !!n &&
          r(function () {
            n.call(
              null,
              t ||
                function () {
                  return 1;
                },
              1,
            );
          })
        );
      };
    },
    a798: function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("42ee"),
        A = n("2ce8"),
        o = n("2761");
      n("c94e") &&
        r(r.P + n("ac60"), "Object", {
          __defineGetter__: function (e, t) {
            o.f(i(this), e, { get: A(t), enumerable: !0, configurable: !0 });
          },
        });
    },
    a87b: function (e, t) {
      e.exports =
        Object.is ||
        function (e, t) {
          return e === t ? 0 !== e || 1 / e === 1 / t : e != e && t != t;
        };
    },
    a8e4: function (e, t, n) {
      "use strict";
      var r = n("93e0"),
        i = n("2fb2"),
        A = n("1c2d"),
        o = n("11e2"),
        a = n("019f"),
        s = n("f937"),
        c = n("dbb2").f,
        u = n("8d87").f,
        l = n("2761").f,
        h = n("e9d8").trim,
        f = "Number",
        d = r[f],
        p = d,
        g = d.prototype,
        m = A(n("6621")(g)) == f,
        v = "trim" in String.prototype,
        y = function (e) {
          var t = a(e, !1);
          if ("string" == typeof t && t.length > 2) {
            t = v ? t.trim() : h(t, 3);
            var n,
              r,
              i,
              A = t.charCodeAt(0);
            if (43 === A || 45 === A) {
              if (((n = t.charCodeAt(2)), 88 === n || 120 === n)) return NaN;
            } else if (48 === A) {
              switch (t.charCodeAt(1)) {
                case 66:
                case 98:
                  ((r = 2), (i = 49));
                  break;
                case 79:
                case 111:
                  ((r = 8), (i = 55));
                  break;
                default:
                  return +t;
              }
              for (var o, s = t.slice(2), c = 0, u = s.length; c < u; c++)
                if (((o = s.charCodeAt(c)), o < 48 || o > i)) return NaN;
              return parseInt(s, r);
            }
          }
          return +t;
        };
      if (!d(" 0o1") || !d("0b1") || d("+0x1")) {
        d = function (e) {
          var t = arguments.length < 1 ? 0 : e,
            n = this;
          return n instanceof d &&
            (m
              ? s(function () {
                  g.valueOf.call(n);
                })
              : A(n) != f)
            ? o(new p(y(t)), n, d)
            : y(t);
        };
        for (
          var w,
            B = n("c94e")
              ? c(p)
              : "MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(
                  ",",
                ),
            b = 0;
          B.length > b;
          b++
        )
          i(p, (w = B[b])) && !i(d, w) && l(d, w, u(p, w));
        ((d.prototype = g), (g.constructor = d), n("77ea")(r, f, d));
      }
    },
    a981: function (e, t) {
      e.exports =
        "undefined" != typeof ArrayBuffer && "undefined" != typeof DataView;
    },
    ab36: function (e, t, n) {
      var r = n("861d"),
        i = n("9112");
      e.exports = function (e, t) {
        r(t) && "cause" in t && i(e, "cause", t.cause);
      };
    },
    ab6e: function (e, t, n) {
      "use strict";
      var r = n("2761").f,
        i = n("6621"),
        A = n("c668"),
        o = n("911a"),
        a = n("928a"),
        s = n("8fc4"),
        c = n("d516"),
        u = n("fb87"),
        l = n("3a2f"),
        h = n("c94e"),
        f = n("4c8d").fastKey,
        d = n("798a"),
        p = h ? "_s" : "size",
        g = function (e, t) {
          var n,
            r = f(t);
          if ("F" !== r) return e._i[r];
          for (n = e._f; n; n = n.n) if (n.k == t) return n;
        };
      e.exports = {
        getConstructor: function (e, t, n, c) {
          var u = e(function (e, r) {
            (a(e, u, t, "_i"),
              (e._t = t),
              (e._i = i(null)),
              (e._f = void 0),
              (e._l = void 0),
              (e[p] = 0),
              void 0 != r && s(r, n, e[c], e));
          });
          return (
            A(u.prototype, {
              clear: function () {
                for (var e = d(this, t), n = e._i, r = e._f; r; r = r.n)
                  ((r.r = !0), r.p && (r.p = r.p.n = void 0), delete n[r.i]);
                ((e._f = e._l = void 0), (e[p] = 0));
              },
              delete: function (e) {
                var n = d(this, t),
                  r = g(n, e);
                if (r) {
                  var i = r.n,
                    A = r.p;
                  (delete n._i[r.i],
                    (r.r = !0),
                    A && (A.n = i),
                    i && (i.p = A),
                    n._f == r && (n._f = i),
                    n._l == r && (n._l = A),
                    n[p]--);
                }
                return !!r;
              },
              forEach: function (e) {
                d(this, t);
                var n,
                  r = o(e, arguments.length > 1 ? arguments[1] : void 0, 3);
                while ((n = n ? n.n : this._f)) {
                  r(n.v, n.k, this);
                  while (n && n.r) n = n.p;
                }
              },
              has: function (e) {
                return !!g(d(this, t), e);
              },
            }),
            h &&
              r(u.prototype, "size", {
                get: function () {
                  return d(this, t)[p];
                },
              }),
            u
          );
        },
        def: function (e, t, n) {
          var r,
            i,
            A = g(e, t);
          return (
            A
              ? (A.v = n)
              : ((e._l = A =
                  {
                    i: (i = f(t, !0)),
                    k: t,
                    v: n,
                    p: (r = e._l),
                    n: void 0,
                    r: !1,
                  }),
                e._f || (e._f = A),
                r && (r.n = A),
                e[p]++,
                "F" !== i && (e._i[i] = A)),
            e
          );
        },
        getEntry: g,
        setStrong: function (e, t, n) {
          (c(
            e,
            t,
            function (e, n) {
              ((this._t = d(e, t)), (this._k = n), (this._l = void 0));
            },
            function () {
              var e = this,
                t = e._k,
                n = e._l;
              while (n && n.r) n = n.p;
              return e._t && (e._l = n = n ? n.n : e._t._f)
                ? u(0, "keys" == t ? n.k : "values" == t ? n.v : [n.k, n.v])
                : ((e._t = void 0), u(1));
            },
            n ? "entries" : "values",
            !n,
            !0,
          ),
            l(t));
        },
      };
    },
    ac60: function (e, t, n) {
      "use strict";
      e.exports =
        n("cee8") ||
        !n("f937")(function () {
          var e = Math.random();
          (__defineSetter__.call(null, e, function () {}), delete n("93e0")[e]);
        });
    },
    accc: function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("e960")(!1);
      r(r.P, "String", {
        codePointAt: function (e) {
          return i(this, e);
        },
      });
    },
    acf2: function (e, t, n) {
      "use strict";
      var r = n("93e0"),
        i = n("2fb2"),
        A = n("c94e"),
        o = n("f083"),
        a = n("77ea"),
        s = n("4c8d").KEY,
        c = n("f937"),
        u = n("de85"),
        l = n("27bd"),
        h = n("5689"),
        f = n("de24"),
        d = n("a43b"),
        p = n("1cb7"),
        g = n("6d9f"),
        m = n("7f21"),
        v = n("d77f"),
        y = n("9fe8"),
        w = n("42ee"),
        B = n("5d6f"),
        b = n("019f"),
        _ = n("fb32"),
        x = n("6621"),
        C = n("532c"),
        E = n("8d87"),
        M = n("10dd"),
        S = n("2761"),
        F = n("5a5d"),
        T = E.f,
        U = S.f,
        Q = C.f,
        L = r.Symbol,
        I = r.JSON,
        H = I && I.stringify,
        O = "prototype",
        R = f("_hidden"),
        P = f("toPrimitive"),
        D = {}.propertyIsEnumerable,
        N = u("symbol-registry"),
        k = u("symbols"),
        G = u("op-symbols"),
        V = Object[O],
        z = "function" == typeof L && !!M.f,
        j = r.QObject,
        K = !j || !j[O] || !j[O].findChild,
        W =
          A &&
          c(function () {
            return (
              7 !=
              x(
                U({}, "a", {
                  get: function () {
                    return U(this, "a", { value: 7 }).a;
                  },
                }),
              ).a
            );
          })
            ? function (e, t, n) {
                var r = T(V, t);
                (r && delete V[t], U(e, t, n), r && e !== V && U(V, t, r));
              }
            : U,
        X = function (e) {
          var t = (k[e] = x(L[O]));
          return ((t._k = e), t);
        },
        Y =
          z && "symbol" == typeof L.iterator
            ? function (e) {
                return "symbol" == typeof e;
              }
            : function (e) {
                return e instanceof L;
              },
        J = function (e, t, n) {
          return (
            e === V && J(G, t, n),
            v(e),
            (t = b(t, !0)),
            v(n),
            i(k, t)
              ? (n.enumerable
                  ? (i(e, R) && e[R][t] && (e[R][t] = !1),
                    (n = x(n, { enumerable: _(0, !1) })))
                  : (i(e, R) || U(e, R, _(1, {})), (e[R][t] = !0)),
                W(e, t, n))
              : U(e, t, n)
          );
        },
        q = function (e, t) {
          v(e);
          var n,
            r = g((t = B(t))),
            i = 0,
            A = r.length;
          while (A > i) J(e, (n = r[i++]), t[n]);
          return e;
        },
        Z = function (e, t) {
          return void 0 === t ? x(e) : q(x(e), t);
        },
        $ = function (e) {
          var t = D.call(this, (e = b(e, !0)));
          return (
            !(this === V && i(k, e) && !i(G, e)) &&
            (!(t || !i(this, e) || !i(k, e) || (i(this, R) && this[R][e])) || t)
          );
        },
        ee = function (e, t) {
          if (((e = B(e)), (t = b(t, !0)), e !== V || !i(k, t) || i(G, t))) {
            var n = T(e, t);
            return (
              !n || !i(k, t) || (i(e, R) && e[R][t]) || (n.enumerable = !0),
              n
            );
          }
        },
        te = function (e) {
          var t,
            n = Q(B(e)),
            r = [],
            A = 0;
          while (n.length > A)
            i(k, (t = n[A++])) || t == R || t == s || r.push(t);
          return r;
        },
        ne = function (e) {
          var t,
            n = e === V,
            r = Q(n ? G : B(e)),
            A = [],
            o = 0;
          while (r.length > o)
            !i(k, (t = r[o++])) || (n && !i(V, t)) || A.push(k[t]);
          return A;
        };
      (z ||
        ((L = function () {
          if (this instanceof L)
            throw TypeError("Symbol is not a constructor!");
          var e = h(arguments.length > 0 ? arguments[0] : void 0),
            t = function (n) {
              (this === V && t.call(G, n),
                i(this, R) && i(this[R], e) && (this[R][e] = !1),
                W(this, e, _(1, n)));
            };
          return (A && K && W(V, e, { configurable: !0, set: t }), X(e));
        }),
        a(L[O], "toString", function () {
          return this._k;
        }),
        (E.f = ee),
        (S.f = J),
        (n("dbb2").f = C.f = te),
        (n("e171").f = $),
        (M.f = ne),
        A && !n("cee8") && a(V, "propertyIsEnumerable", $, !0),
        (d.f = function (e) {
          return X(f(e));
        })),
        o(o.G + o.W + o.F * !z, { Symbol: L }));
      for (
        var re =
            "hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(
              ",",
            ),
          ie = 0;
        re.length > ie;
      )
        f(re[ie++]);
      for (var Ae = F(f.store), oe = 0; Ae.length > oe; ) p(Ae[oe++]);
      (o(o.S + o.F * !z, "Symbol", {
        for: function (e) {
          return i(N, (e += "")) ? N[e] : (N[e] = L(e));
        },
        keyFor: function (e) {
          if (!Y(e)) throw TypeError(e + " is not a symbol!");
          for (var t in N) if (N[t] === e) return t;
        },
        useSetter: function () {
          K = !0;
        },
        useSimple: function () {
          K = !1;
        },
      }),
        o(o.S + o.F * !z, "Object", {
          create: Z,
          defineProperty: J,
          defineProperties: q,
          getOwnPropertyDescriptor: ee,
          getOwnPropertyNames: te,
          getOwnPropertySymbols: ne,
        }));
      var ae = c(function () {
        M.f(1);
      });
      (o(o.S + o.F * ae, "Object", {
        getOwnPropertySymbols: function (e) {
          return M.f(w(e));
        },
      }),
        I &&
          o(
            o.S +
              o.F *
                (!z ||
                  c(function () {
                    var e = L();
                    return (
                      "[null]" != H([e]) ||
                      "{}" != H({ a: e }) ||
                      "{}" != H(Object(e))
                    );
                  })),
            "JSON",
            {
              stringify: function (e) {
                var t,
                  n,
                  r = [e],
                  i = 1;
                while (arguments.length > i) r.push(arguments[i++]);
                if (((n = t = r[1]), (y(t) || void 0 !== e) && !Y(e)))
                  return (
                    m(t) ||
                      (t = function (e, t) {
                        if (
                          ("function" == typeof n && (t = n.call(this, e, t)),
                          !Y(t))
                        )
                          return t;
                      }),
                    (r[1] = t),
                    H.apply(I, r)
                  );
              },
            },
          ),
        L[O][P] || n("0713")(L[O], P, L[O].valueOf),
        l(L, "Symbol"),
        l(Math, "Math", !0),
        l(r.JSON, "JSON", !0));
    },
    ad51: function (e, t, n) {
      var r = n("f083");
      r(r.P, "Function", { bind: n("02ee") });
    },
    ad62: function (e, t, n) {
      var r = n("f083");
      (r(r.P, "Array", { fill: n("0ba2") }), n("66b7")("fill"));
    },
    ad6d: function (e, t, n) {
      "use strict";
      var r = n("825a");
      e.exports = function () {
        var e = r(this),
          t = "";
        return (
          e.hasIndices && (t += "d"),
          e.global && (t += "g"),
          e.ignoreCase && (t += "i"),
          e.multiline && (t += "m"),
          e.dotAll && (t += "s"),
          e.unicode && (t += "u"),
          e.unicodeSets && (t += "v"),
          e.sticky && (t += "y"),
          t
        );
      };
    },
    ae98: function (e, t, n) {
      function r(e, t, n) {
        const r = t.arg,
          i = n.context,
          A = n.componentInstance || n.elm;
        i.$refs.hasOwnProperty(r) || (i.$refs[r] = []);
        const o = i.$refs[r].indexOf(A);
        -1 == o && n.context.$refs[r].push(A);
      }
      function i(e, { arg: t }, { context: n }, r) {
        if (n.$refs.hasOwnProperty(t)) {
          const e = n.$refs[t],
            i = r.componentInstance || r.elm,
            A = e.indexOf(i);
          A && e.splice(A, 1);
        }
      }
      const A = window.Vue || n("2b0e").default;
      A.directive("multi-ref", { bind: r, update: r, unbind: i });
    },
    aea1: function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("c747");
      r(r.P + r.F * !n("55c7")([].reduceRight, !0), "Array", {
        reduceRight: function (e) {
          return i(this, e, arguments.length, arguments[1], !0);
        },
      });
    },
    aeb0: function (e, t, n) {
      var r = n("9bf2").f;
      e.exports = function (e, t, n) {
        n in e ||
          r(e, n, {
            configurable: !0,
            get: function () {
              return t[n];
            },
            set: function (e) {
              t[n] = e;
            },
          });
      };
    },
    aed9: function (e, t, n) {
      var r = n("83ab"),
        i = n("d039");
      e.exports =
        r &&
        i(function () {
          return (
            42 !=
            Object.defineProperty(function () {}, "prototype", {
              value: 42,
              writable: !1,
            }).prototype
          );
        });
    },
    b245: function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("6373"),
        A = n("453f"),
        o = "endsWith",
        a = ""[o];
      r(r.P + r.F * n("3afb")(o), "String", {
        endsWith: function (e) {
          var t = A(this, e, o),
            n = arguments.length > 1 ? arguments[1] : void 0,
            r = i(t.length),
            s = void 0 === n ? r : Math.min(i(n), r),
            c = String(e);
          return a ? a.call(t, c, s) : t.slice(s - c.length, s) === c;
        },
      });
    },
    b2b1: function (e, t, n) {
      var r = n("f083");
      r(r.S, "Math", {
        signbit: function (e) {
          return (e = +e) != e ? e : 0 == e ? 1 / e == 1 / 0 : e > 0;
        },
      });
    },
    b311: function (e, t, n) {
      /*!
       * clipboard.js v2.0.11
       * https://clipboardjs.com/
       *
       * Licensed MIT © Zeno Rocha
       */
      (function (t, n) {
        e.exports = n();
      })(0, function () {
        return (function () {
          var e = {
              686: function (e, t, n) {
                "use strict";
                n.d(t, {
                  default: function () {
                    return Q;
                  },
                });
                var r = n(279),
                  i = n.n(r),
                  A = n(370),
                  o = n.n(A),
                  a = n(817),
                  s = n.n(a);
                function c(e) {
                  try {
                    return document.execCommand(e);
                  } catch (t) {
                    return !1;
                  }
                }
                var u = function (e) {
                    var t = s()(e);
                    return (c("cut"), t);
                  },
                  l = u;
                function h(e) {
                  var t =
                      "rtl" === document.documentElement.getAttribute("dir"),
                    n = document.createElement("textarea");
                  ((n.style.fontSize = "12pt"),
                    (n.style.border = "0"),
                    (n.style.padding = "0"),
                    (n.style.margin = "0"),
                    (n.style.position = "absolute"),
                    (n.style[t ? "right" : "left"] = "-9999px"));
                  var r =
                    window.pageYOffset || document.documentElement.scrollTop;
                  return (
                    (n.style.top = "".concat(r, "px")),
                    n.setAttribute("readonly", ""),
                    (n.value = e),
                    n
                  );
                }
                var f = function (e, t) {
                    var n = h(e);
                    t.container.appendChild(n);
                    var r = s()(n);
                    return (c("copy"), n.remove(), r);
                  },
                  d = function (e) {
                    var t =
                        arguments.length > 1 && void 0 !== arguments[1]
                          ? arguments[1]
                          : { container: document.body },
                      n = "";
                    return (
                      "string" === typeof e
                        ? (n = f(e, t))
                        : e instanceof HTMLInputElement &&
                            ![
                              "text",
                              "search",
                              "url",
                              "tel",
                              "password",
                            ].includes(
                              null === e || void 0 === e ? void 0 : e.type,
                            )
                          ? (n = f(e.value, t))
                          : ((n = s()(e)), c("copy")),
                      n
                    );
                  },
                  p = d;
                function g(e) {
                  return (
                    (g =
                      "function" === typeof Symbol &&
                      "symbol" === typeof Symbol.iterator
                        ? function (e) {
                            return typeof e;
                          }
                        : function (e) {
                            return e &&
                              "function" === typeof Symbol &&
                              e.constructor === Symbol &&
                              e !== Symbol.prototype
                              ? "symbol"
                              : typeof e;
                          }),
                    g(e)
                  );
                }
                var m = function () {
                    var e =
                        arguments.length > 0 && void 0 !== arguments[0]
                          ? arguments[0]
                          : {},
                      t = e.action,
                      n = void 0 === t ? "copy" : t,
                      r = e.container,
                      i = e.target,
                      A = e.text;
                    if ("copy" !== n && "cut" !== n)
                      throw new Error(
                        'Invalid "action" value, use either "copy" or "cut"',
                      );
                    if (void 0 !== i) {
                      if (!i || "object" !== g(i) || 1 !== i.nodeType)
                        throw new Error(
                          'Invalid "target" value, use a valid Element',
                        );
                      if ("copy" === n && i.hasAttribute("disabled"))
                        throw new Error(
                          'Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute',
                        );
                      if (
                        "cut" === n &&
                        (i.hasAttribute("readonly") ||
                          i.hasAttribute("disabled"))
                      )
                        throw new Error(
                          'Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes',
                        );
                    }
                    return A
                      ? p(A, { container: r })
                      : i
                        ? "cut" === n
                          ? l(i)
                          : p(i, { container: r })
                        : void 0;
                  },
                  v = m;
                function y(e) {
                  return (
                    (y =
                      "function" === typeof Symbol &&
                      "symbol" === typeof Symbol.iterator
                        ? function (e) {
                            return typeof e;
                          }
                        : function (e) {
                            return e &&
                              "function" === typeof Symbol &&
                              e.constructor === Symbol &&
                              e !== Symbol.prototype
                              ? "symbol"
                              : typeof e;
                          }),
                    y(e)
                  );
                }
                function w(e, t) {
                  if (!(e instanceof t))
                    throw new TypeError("Cannot call a class as a function");
                }
                function B(e, t) {
                  for (var n = 0; n < t.length; n++) {
                    var r = t[n];
                    ((r.enumerable = r.enumerable || !1),
                      (r.configurable = !0),
                      "value" in r && (r.writable = !0),
                      Object.defineProperty(e, r.key, r));
                  }
                }
                function b(e, t, n) {
                  return (t && B(e.prototype, t), n && B(e, n), e);
                }
                function _(e, t) {
                  if ("function" !== typeof t && null !== t)
                    throw new TypeError(
                      "Super expression must either be null or a function",
                    );
                  ((e.prototype = Object.create(t && t.prototype, {
                    constructor: { value: e, writable: !0, configurable: !0 },
                  })),
                    t && x(e, t));
                }
                function x(e, t) {
                  return (
                    (x =
                      Object.setPrototypeOf ||
                      function (e, t) {
                        return ((e.__proto__ = t), e);
                      }),
                    x(e, t)
                  );
                }
                function C(e) {
                  var t = S();
                  return function () {
                    var n,
                      r = F(e);
                    if (t) {
                      var i = F(this).constructor;
                      n = Reflect.construct(r, arguments, i);
                    } else n = r.apply(this, arguments);
                    return E(this, n);
                  };
                }
                function E(e, t) {
                  return !t || ("object" !== y(t) && "function" !== typeof t)
                    ? M(e)
                    : t;
                }
                function M(e) {
                  if (void 0 === e)
                    throw new ReferenceError(
                      "this hasn't been initialised - super() hasn't been called",
                    );
                  return e;
                }
                function S() {
                  if ("undefined" === typeof Reflect || !Reflect.construct)
                    return !1;
                  if (Reflect.construct.sham) return !1;
                  if ("function" === typeof Proxy) return !0;
                  try {
                    return (
                      Date.prototype.toString.call(
                        Reflect.construct(Date, [], function () {}),
                      ),
                      !0
                    );
                  } catch (e) {
                    return !1;
                  }
                }
                function F(e) {
                  return (
                    (F = Object.setPrototypeOf
                      ? Object.getPrototypeOf
                      : function (e) {
                          return e.__proto__ || Object.getPrototypeOf(e);
                        }),
                    F(e)
                  );
                }
                function T(e, t) {
                  var n = "data-clipboard-".concat(e);
                  if (t.hasAttribute(n)) return t.getAttribute(n);
                }
                var U = (function (e) {
                    _(n, e);
                    var t = C(n);
                    function n(e, r) {
                      var i;
                      return (
                        w(this, n),
                        (i = t.call(this)),
                        i.resolveOptions(r),
                        i.listenClick(e),
                        i
                      );
                    }
                    return (
                      b(
                        n,
                        [
                          {
                            key: "resolveOptions",
                            value: function () {
                              var e =
                                arguments.length > 0 && void 0 !== arguments[0]
                                  ? arguments[0]
                                  : {};
                              ((this.action =
                                "function" === typeof e.action
                                  ? e.action
                                  : this.defaultAction),
                                (this.target =
                                  "function" === typeof e.target
                                    ? e.target
                                    : this.defaultTarget),
                                (this.text =
                                  "function" === typeof e.text
                                    ? e.text
                                    : this.defaultText),
                                (this.container =
                                  "object" === y(e.container)
                                    ? e.container
                                    : document.body));
                            },
                          },
                          {
                            key: "listenClick",
                            value: function (e) {
                              var t = this;
                              this.listener = o()(e, "click", function (e) {
                                return t.onClick(e);
                              });
                            },
                          },
                          {
                            key: "onClick",
                            value: function (e) {
                              var t = e.delegateTarget || e.currentTarget,
                                n = this.action(t) || "copy",
                                r = v({
                                  action: n,
                                  container: this.container,
                                  target: this.target(t),
                                  text: this.text(t),
                                });
                              this.emit(r ? "success" : "error", {
                                action: n,
                                text: r,
                                trigger: t,
                                clearSelection: function () {
                                  (t && t.focus(),
                                    window.getSelection().removeAllRanges());
                                },
                              });
                            },
                          },
                          {
                            key: "defaultAction",
                            value: function (e) {
                              return T("action", e);
                            },
                          },
                          {
                            key: "defaultTarget",
                            value: function (e) {
                              var t = T("target", e);
                              if (t) return document.querySelector(t);
                            },
                          },
                          {
                            key: "defaultText",
                            value: function (e) {
                              return T("text", e);
                            },
                          },
                          {
                            key: "destroy",
                            value: function () {
                              this.listener.destroy();
                            },
                          },
                        ],
                        [
                          {
                            key: "copy",
                            value: function (e) {
                              var t =
                                arguments.length > 1 && void 0 !== arguments[1]
                                  ? arguments[1]
                                  : { container: document.body };
                              return p(e, t);
                            },
                          },
                          {
                            key: "cut",
                            value: function (e) {
                              return l(e);
                            },
                          },
                          {
                            key: "isSupported",
                            value: function () {
                              var e =
                                  arguments.length > 0 &&
                                  void 0 !== arguments[0]
                                    ? arguments[0]
                                    : ["copy", "cut"],
                                t = "string" === typeof e ? [e] : e,
                                n = !!document.queryCommandSupported;
                              return (
                                t.forEach(function (e) {
                                  n = n && !!document.queryCommandSupported(e);
                                }),
                                n
                              );
                            },
                          },
                        ],
                      ),
                      n
                    );
                  })(i()),
                  Q = U;
              },
              828: function (e) {
                var t = 9;
                if (
                  "undefined" !== typeof Element &&
                  !Element.prototype.matches
                ) {
                  var n = Element.prototype;
                  n.matches =
                    n.matchesSelector ||
                    n.mozMatchesSelector ||
                    n.msMatchesSelector ||
                    n.oMatchesSelector ||
                    n.webkitMatchesSelector;
                }
                function r(e, n) {
                  while (e && e.nodeType !== t) {
                    if ("function" === typeof e.matches && e.matches(n))
                      return e;
                    e = e.parentNode;
                  }
                }
                e.exports = r;
              },
              438: function (e, t, n) {
                var r = n(828);
                function i(e, t, n, r, i) {
                  var A = o.apply(this, arguments);
                  return (
                    e.addEventListener(n, A, i),
                    {
                      destroy: function () {
                        e.removeEventListener(n, A, i);
                      },
                    }
                  );
                }
                function A(e, t, n, r, A) {
                  return "function" === typeof e.addEventListener
                    ? i.apply(null, arguments)
                    : "function" === typeof n
                      ? i.bind(null, document).apply(null, arguments)
                      : ("string" === typeof e &&
                          (e = document.querySelectorAll(e)),
                        Array.prototype.map.call(e, function (e) {
                          return i(e, t, n, r, A);
                        }));
                }
                function o(e, t, n, i) {
                  return function (n) {
                    ((n.delegateTarget = r(n.target, t)),
                      n.delegateTarget && i.call(e, n));
                  };
                }
                e.exports = A;
              },
              879: function (e, t) {
                ((t.node = function (e) {
                  return (
                    void 0 !== e && e instanceof HTMLElement && 1 === e.nodeType
                  );
                }),
                  (t.nodeList = function (e) {
                    var n = Object.prototype.toString.call(e);
                    return (
                      void 0 !== e &&
                      ("[object NodeList]" === n ||
                        "[object HTMLCollection]" === n) &&
                      "length" in e &&
                      (0 === e.length || t.node(e[0]))
                    );
                  }),
                  (t.string = function (e) {
                    return "string" === typeof e || e instanceof String;
                  }),
                  (t.fn = function (e) {
                    var t = Object.prototype.toString.call(e);
                    return "[object Function]" === t;
                  }));
              },
              370: function (e, t, n) {
                var r = n(879),
                  i = n(438);
                function A(e, t, n) {
                  if (!e && !t && !n)
                    throw new Error("Missing required arguments");
                  if (!r.string(t))
                    throw new TypeError("Second argument must be a String");
                  if (!r.fn(n))
                    throw new TypeError("Third argument must be a Function");
                  if (r.node(e)) return o(e, t, n);
                  if (r.nodeList(e)) return a(e, t, n);
                  if (r.string(e)) return s(e, t, n);
                  throw new TypeError(
                    "First argument must be a String, HTMLElement, HTMLCollection, or NodeList",
                  );
                }
                function o(e, t, n) {
                  return (
                    e.addEventListener(t, n),
                    {
                      destroy: function () {
                        e.removeEventListener(t, n);
                      },
                    }
                  );
                }
                function a(e, t, n) {
                  return (
                    Array.prototype.forEach.call(e, function (e) {
                      e.addEventListener(t, n);
                    }),
                    {
                      destroy: function () {
                        Array.prototype.forEach.call(e, function (e) {
                          e.removeEventListener(t, n);
                        });
                      },
                    }
                  );
                }
                function s(e, t, n) {
                  return i(document.body, e, t, n);
                }
                e.exports = A;
              },
              817: function (e) {
                function t(e) {
                  var t;
                  if ("SELECT" === e.nodeName) (e.focus(), (t = e.value));
                  else if (
                    "INPUT" === e.nodeName ||
                    "TEXTAREA" === e.nodeName
                  ) {
                    var n = e.hasAttribute("readonly");
                    (n || e.setAttribute("readonly", ""),
                      e.select(),
                      e.setSelectionRange(0, e.value.length),
                      n || e.removeAttribute("readonly"),
                      (t = e.value));
                  } else {
                    e.hasAttribute("contenteditable") && e.focus();
                    var r = window.getSelection(),
                      i = document.createRange();
                    (i.selectNodeContents(e),
                      r.removeAllRanges(),
                      r.addRange(i),
                      (t = r.toString()));
                  }
                  return t;
                }
                e.exports = t;
              },
              279: function (e) {
                function t() {}
                ((t.prototype = {
                  on: function (e, t, n) {
                    var r = this.e || (this.e = {});
                    return (
                      (r[e] || (r[e] = [])).push({ fn: t, ctx: n }),
                      this
                    );
                  },
                  once: function (e, t, n) {
                    var r = this;
                    function i() {
                      (r.off(e, i), t.apply(n, arguments));
                    }
                    return ((i._ = t), this.on(e, i, n));
                  },
                  emit: function (e) {
                    var t = [].slice.call(arguments, 1),
                      n = ((this.e || (this.e = {}))[e] || []).slice(),
                      r = 0,
                      i = n.length;
                    for (r; r < i; r++) n[r].fn.apply(n[r].ctx, t);
                    return this;
                  },
                  off: function (e, t) {
                    var n = this.e || (this.e = {}),
                      r = n[e],
                      i = [];
                    if (r && t)
                      for (var A = 0, o = r.length; A < o; A++)
                        r[A].fn !== t && r[A].fn._ !== t && i.push(r[A]);
                    return (i.length ? (n[e] = i) : delete n[e], this);
                  },
                }),
                  (e.exports = t),
                  (e.exports.TinyEmitter = t));
              },
            },
            t = {};
          function n(r) {
            if (t[r]) return t[r].exports;
            var i = (t[r] = { exports: {} });
            return (e[r](i, i.exports, n), i.exports);
          }
          return (
            (function () {
              n.n = function (e) {
                var t =
                  e && e.__esModule
                    ? function () {
                        return e["default"];
                      }
                    : function () {
                        return e;
                      };
                return (n.d(t, { a: t }), t);
              };
            })(),
            (function () {
              n.d = function (e, t) {
                for (var r in t)
                  n.o(t, r) &&
                    !n.o(e, r) &&
                    Object.defineProperty(e, r, { enumerable: !0, get: t[r] });
              };
            })(),
            (function () {
              n.o = function (e, t) {
                return Object.prototype.hasOwnProperty.call(e, t);
              };
            })(),
            n(686)
          );
        })().default;
      });
    },
    b3ed: function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("42ee"),
        A = n("019f");
      r(
        r.P +
          r.F *
            n("f937")(function () {
              return (
                null !== new Date(NaN).toJSON() ||
                1 !==
                  Date.prototype.toJSON.call({
                    toISOString: function () {
                      return 1;
                    },
                  })
              );
            }),
        "Date",
        {
          toJSON: function (e) {
            var t = i(this),
              n = A(t);
            return "number" != typeof n || isFinite(n) ? t.toISOString() : null;
          },
        },
      );
    },
    b42e: function (e, t) {
      var n = Math.ceil,
        r = Math.floor;
      e.exports =
        Math.trunc ||
        function (e) {
          var t = +e;
          return (t > 0 ? r : n)(t);
        };
    },
    b4d5: function (e, t, n) {
      var r = n("f083");
      r(r.S, "Array", { isArray: n("7f21") });
    },
    b622: function (e, t, n) {
      var r = n("da84"),
        i = n("5692"),
        A = n("1a2d"),
        o = n("90e3"),
        a = n("4930"),
        s = n("fdbf"),
        c = i("wks"),
        u = r.Symbol,
        l = u && u["for"],
        h = s ? u : (u && u.withoutSetter) || o;
      e.exports = function (e) {
        if (!A(c, e) || (!a && "string" != typeof c[e])) {
          var t = "Symbol." + e;
          a && A(u, e) ? (c[e] = u[e]) : (c[e] = s && l ? l(t) : h(t));
        }
        return c[e];
      };
    },
    b760: function (e, t, n) {
      var r = n("8fc4");
      e.exports = function (e, t) {
        var n = [];
        return (r(e, !1, n.push, n, t), n);
      };
    },
    b799: function (e, t, n) {
      "use strict";
      var r = n("93e0"),
        i = n("c94e"),
        A = n("cee8"),
        o = n("f308"),
        a = n("0713"),
        s = n("c668"),
        c = n("f937"),
        u = n("928a"),
        l = n("9b6f"),
        h = n("6373"),
        f = n("53d3"),
        d = n("dbb2").f,
        p = n("2761").f,
        g = n("0ba2"),
        m = n("27bd"),
        v = "ArrayBuffer",
        y = "DataView",
        w = "prototype",
        B = "Wrong length!",
        b = "Wrong index!",
        _ = r[v],
        x = r[y],
        C = r.Math,
        E = r.RangeError,
        M = r.Infinity,
        S = _,
        F = C.abs,
        T = C.pow,
        U = C.floor,
        Q = C.log,
        L = C.LN2,
        I = "buffer",
        H = "byteLength",
        O = "byteOffset",
        R = i ? "_b" : I,
        P = i ? "_l" : H,
        D = i ? "_o" : O;
      function N(e, t, n) {
        var r,
          i,
          A,
          o = new Array(n),
          a = 8 * n - t - 1,
          s = (1 << a) - 1,
          c = s >> 1,
          u = 23 === t ? T(2, -24) - T(2, -77) : 0,
          l = 0,
          h = e < 0 || (0 === e && 1 / e < 0) ? 1 : 0;
        for (
          e = F(e),
            e != e || e === M
              ? ((i = e != e ? 1 : 0), (r = s))
              : ((r = U(Q(e) / L)),
                e * (A = T(2, -r)) < 1 && (r--, (A *= 2)),
                (e += r + c >= 1 ? u / A : u * T(2, 1 - c)),
                e * A >= 2 && (r++, (A /= 2)),
                r + c >= s
                  ? ((i = 0), (r = s))
                  : r + c >= 1
                    ? ((i = (e * A - 1) * T(2, t)), (r += c))
                    : ((i = e * T(2, c - 1) * T(2, t)), (r = 0)));
          t >= 8;
          o[l++] = 255 & i, i /= 256, t -= 8
        );
        for (
          r = (r << t) | i, a += t;
          a > 0;
          o[l++] = 255 & r, r /= 256, a -= 8
        );
        return ((o[--l] |= 128 * h), o);
      }
      function k(e, t, n) {
        var r,
          i = 8 * n - t - 1,
          A = (1 << i) - 1,
          o = A >> 1,
          a = i - 7,
          s = n - 1,
          c = e[s--],
          u = 127 & c;
        for (c >>= 7; a > 0; u = 256 * u + e[s], s--, a -= 8);
        for (
          r = u & ((1 << -a) - 1), u >>= -a, a += t;
          a > 0;
          r = 256 * r + e[s], s--, a -= 8
        );
        if (0 === u) u = 1 - o;
        else {
          if (u === A) return r ? NaN : c ? -M : M;
          ((r += T(2, t)), (u -= o));
        }
        return (c ? -1 : 1) * r * T(2, u - t);
      }
      function G(e) {
        return (e[3] << 24) | (e[2] << 16) | (e[1] << 8) | e[0];
      }
      function V(e) {
        return [255 & e];
      }
      function z(e) {
        return [255 & e, (e >> 8) & 255];
      }
      function j(e) {
        return [255 & e, (e >> 8) & 255, (e >> 16) & 255, (e >> 24) & 255];
      }
      function K(e) {
        return N(e, 52, 8);
      }
      function W(e) {
        return N(e, 23, 4);
      }
      function X(e, t, n) {
        p(e[w], t, {
          get: function () {
            return this[n];
          },
        });
      }
      function Y(e, t, n, r) {
        var i = +n,
          A = f(i);
        if (A + t > e[P]) throw E(b);
        var o = e[R]._b,
          a = A + e[D],
          s = o.slice(a, a + t);
        return r ? s : s.reverse();
      }
      function J(e, t, n, r, i, A) {
        var o = +n,
          a = f(o);
        if (a + t > e[P]) throw E(b);
        for (var s = e[R]._b, c = a + e[D], u = r(+i), l = 0; l < t; l++)
          s[c + l] = u[A ? l : t - l - 1];
      }
      if (o.ABV) {
        if (
          !c(function () {
            _(1);
          }) ||
          !c(function () {
            new _(-1);
          }) ||
          c(function () {
            return (new _(), new _(1.5), new _(NaN), _.name != v);
          })
        ) {
          _ = function (e) {
            return (u(this, _), new S(f(e)));
          };
          for (var q, Z = (_[w] = S[w]), $ = d(S), ee = 0; $.length > ee; )
            (q = $[ee++]) in _ || a(_, q, S[q]);
          A || (Z.constructor = _);
        }
        var te = new x(new _(2)),
          ne = x[w].setInt8;
        (te.setInt8(0, 2147483648),
          te.setInt8(1, 2147483649),
          (!te.getInt8(0) && te.getInt8(1)) ||
            s(
              x[w],
              {
                setInt8: function (e, t) {
                  ne.call(this, e, (t << 24) >> 24);
                },
                setUint8: function (e, t) {
                  ne.call(this, e, (t << 24) >> 24);
                },
              },
              !0,
            ));
      } else
        ((_ = function (e) {
          u(this, _, v);
          var t = f(e);
          ((this._b = g.call(new Array(t), 0)), (this[P] = t));
        }),
          (x = function (e, t, n) {
            (u(this, x, y), u(e, _, y));
            var r = e[P],
              i = l(t);
            if (i < 0 || i > r) throw E("Wrong offset!");
            if (((n = void 0 === n ? r - i : h(n)), i + n > r)) throw E(B);
            ((this[R] = e), (this[D] = i), (this[P] = n));
          }),
          i && (X(_, H, "_l"), X(x, I, "_b"), X(x, H, "_l"), X(x, O, "_o")),
          s(x[w], {
            getInt8: function (e) {
              return (Y(this, 1, e)[0] << 24) >> 24;
            },
            getUint8: function (e) {
              return Y(this, 1, e)[0];
            },
            getInt16: function (e) {
              var t = Y(this, 2, e, arguments[1]);
              return (((t[1] << 8) | t[0]) << 16) >> 16;
            },
            getUint16: function (e) {
              var t = Y(this, 2, e, arguments[1]);
              return (t[1] << 8) | t[0];
            },
            getInt32: function (e) {
              return G(Y(this, 4, e, arguments[1]));
            },
            getUint32: function (e) {
              return G(Y(this, 4, e, arguments[1])) >>> 0;
            },
            getFloat32: function (e) {
              return k(Y(this, 4, e, arguments[1]), 23, 4);
            },
            getFloat64: function (e) {
              return k(Y(this, 8, e, arguments[1]), 52, 8);
            },
            setInt8: function (e, t) {
              J(this, 1, e, V, t);
            },
            setUint8: function (e, t) {
              J(this, 1, e, V, t);
            },
            setInt16: function (e, t) {
              J(this, 2, e, z, t, arguments[2]);
            },
            setUint16: function (e, t) {
              J(this, 2, e, z, t, arguments[2]);
            },
            setInt32: function (e, t) {
              J(this, 4, e, j, t, arguments[2]);
            },
            setUint32: function (e, t) {
              J(this, 4, e, j, t, arguments[2]);
            },
            setFloat32: function (e, t) {
              J(this, 4, e, W, t, arguments[2]);
            },
            setFloat64: function (e, t) {
              J(this, 8, e, K, t, arguments[2]);
            },
          }));
      (m(_, v), m(x, y), a(x[w], o.VIEW, !0), (t[v] = _), (t[y] = x));
    },
    b7ef: function (e, t, n) {
      "use strict";
      var r = n("23e7"),
        i = n("da84"),
        A = n("d066"),
        o = n("5c6c"),
        a = n("9bf2").f,
        s = n("1a2d"),
        c = n("19aa"),
        u = n("7156"),
        l = n("e391"),
        h = n("cf98"),
        f = n("c770"),
        d = n("83ab"),
        p = n("c430"),
        g = "DOMException",
        m = A("Error"),
        v = A(g),
        y = function () {
          c(this, w);
          var e = arguments.length,
            t = l(e < 1 ? void 0 : arguments[0]),
            n = l(e < 2 ? void 0 : arguments[1], "Error"),
            r = new v(t, n),
            i = m(t);
          return (
            (i.name = g),
            a(r, "stack", o(1, f(i.stack, 1))),
            u(r, this, y),
            r
          );
        },
        w = (y.prototype = v.prototype),
        B = "stack" in m(g),
        b = "stack" in new v(1, 2),
        _ = v && d && Object.getOwnPropertyDescriptor(i, g),
        x = !!_ && !(_.writable && _.configurable),
        C = B && !x && !b;
      r(
        { global: !0, constructor: !0, forced: p || C },
        { DOMException: C ? y : v },
      );
      var E = A(g),
        M = E.prototype;
      if (M.constructor !== E)
        for (var S in (p || a(M, "constructor", o(1, E)), h))
          if (s(h, S)) {
            var F = h[S],
              T = F.s;
            s(E, T) || a(E, T, o(6, F.c));
          }
    },
    b806: function (e, t, n) {
      var r = n("f083"),
        i = n("eaeb"),
        A = n("5d6f"),
        o = n("8d87"),
        a = n("52d5");
      r(r.S, "Object", {
        getOwnPropertyDescriptors: function (e) {
          var t,
            n,
            r = A(e),
            s = o.f,
            c = i(r),
            u = {},
            l = 0;
          while (c.length > l)
            ((n = s(r, (t = c[l++]))), void 0 !== n && a(u, t, n));
          return u;
        },
      });
    },
    b874: function (e, t, n) {
      var r = n("f083");
      r(r.S, "Object", { create: n("6621") });
    },
    b980: function (e, t, n) {
      var r = n("d039"),
        i = n("5c6c");
      e.exports = !r(function () {
        var e = Error("a");
        return (
          !("stack" in e) ||
          (Object.defineProperty(e, "stack", i(1, 7)), 7 !== e.stack)
        );
      });
    },
    ba70: function (e, t, n) {
      var r = n("1c6a"),
        i = n("d77f"),
        A = n("2ce8"),
        o = r.key,
        a = r.set;
      r.exp({
        metadata: function (e, t) {
          return function (n, r) {
            a(e, t, (void 0 !== r ? i : A)(n), o(r));
          };
        },
      });
    },
    bcd0: function (e, t, n) {
      "use strict";
      var r = n("f937"),
        i = Date.prototype.getTime,
        A = Date.prototype.toISOString,
        o = function (e) {
          return e > 9 ? e : "0" + e;
        };
      e.exports =
        r(function () {
          return (
            "0385-07-25T07:06:39.999Z" != A.call(new Date(-50000000000001))
          );
        }) ||
        !r(function () {
          A.call(new Date(NaN));
        })
          ? function () {
              if (!isFinite(i.call(this)))
                throw RangeError("Invalid time value");
              var e = this,
                t = e.getUTCFullYear(),
                n = e.getUTCMilliseconds(),
                r = t < 0 ? "-" : t > 9999 ? "+" : "";
              return (
                r +
                ("00000" + Math.abs(t)).slice(r ? -6 : -4) +
                "-" +
                o(e.getUTCMonth() + 1) +
                "-" +
                o(e.getUTCDate()) +
                "T" +
                o(e.getUTCHours()) +
                ":" +
                o(e.getUTCMinutes()) +
                ":" +
                o(e.getUTCSeconds()) +
                "." +
                (n > 99 ? n : "0" + o(n)) +
                "Z"
              );
            }
          : A;
    },
    bde8: function (e, t, n) {
      var r = n("93e0"),
        i = n("eb9a").set,
        A = r.MutationObserver || r.WebKitMutationObserver,
        o = r.process,
        a = r.Promise,
        s = "process" == n("1c2d")(o);
      e.exports = function () {
        var e,
          t,
          n,
          c = function () {
            var r, i;
            s && (r = o.domain) && r.exit();
            while (e) {
              ((i = e.fn), (e = e.next));
              try {
                i();
              } catch (A) {
                throw (e ? n() : (t = void 0), A);
              }
            }
            ((t = void 0), r && r.enter());
          };
        if (s)
          n = function () {
            o.nextTick(c);
          };
        else if (!A || (r.navigator && r.navigator.standalone))
          if (a && a.resolve) {
            var u = a.resolve(void 0);
            n = function () {
              u.then(c);
            };
          } else
            n = function () {
              i.call(r, c);
            };
        else {
          var l = !0,
            h = document.createTextNode("");
          (new A(c).observe(h, { characterData: !0 }),
            (n = function () {
              h.data = l = !l;
            }));
        }
        return function (r) {
          var i = { fn: r, next: void 0 };
          (t && (t.next = i), e || ((e = i), n()), (t = i));
        };
      };
    },
    c04e: function (e, t, n) {
      var r = n("c65b"),
        i = n("861d"),
        A = n("d9b5"),
        o = n("dc4a"),
        a = n("485a"),
        s = n("b622"),
        c = TypeError,
        u = s("toPrimitive");
      e.exports = function (e, t) {
        if (!i(e) || A(e)) return e;
        var n,
          s = o(e, u);
        if (s) {
          if (
            (void 0 === t && (t = "default"), (n = r(s, e, t)), !i(n) || A(n))
          )
            return n;
          throw c("Can't convert object to primitive value");
        }
        return (void 0 === t && (t = "number"), a(e, t));
      };
    },
    c053: function (e, t) {
      e.exports = {};
    },
    c0e9: function (e, t, n) {
      (n("d9e2"),
        n("907a"),
        n("3c5d"),
        n("fa9e"),
        n("77d9"),
        n("13d5"),
        n("5377"),
        /*!
         * html2canvas 1.4.1 <https://html2canvas.hertzen.com>
         * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com>
         * Released under MIT License
         */
        (function (t, n) {
          e.exports = n();
        })(0, function () {
          "use strict";
          /*! *****************************************************************************
  Copyright (c) Microsoft Corporation.
    Permission to use, copy, modify, and/or distribute this software for any
  purpose with or without fee is hereby granted.
    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
  REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
  AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
  INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
  LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  PERFORMANCE OF THIS SOFTWARE.
  ***************************************************************************** */ var e =
            function (t, n) {
              return (
                (e =
                  Object.setPrototypeOf ||
                  ({ __proto__: [] } instanceof Array &&
                    function (e, t) {
                      e.__proto__ = t;
                    }) ||
                  function (e, t) {
                    for (var n in t)
                      Object.prototype.hasOwnProperty.call(t, n) &&
                        (e[n] = t[n]);
                  }),
                e(t, n)
              );
            };
          function t(t, n) {
            if ("function" !== typeof n && null !== n)
              throw new TypeError(
                "Class extends value " +
                  String(n) +
                  " is not a constructor or null",
              );
            function r() {
              this.constructor = t;
            }
            (e(t, n),
              (t.prototype =
                null === n
                  ? Object.create(n)
                  : ((r.prototype = n.prototype), new r())));
          }
          var n = function () {
            return (
              (n =
                Object.assign ||
                function (e) {
                  for (var t, n = 1, r = arguments.length; n < r; n++)
                    for (var i in ((t = arguments[n]), t))
                      Object.prototype.hasOwnProperty.call(t, i) &&
                        (e[i] = t[i]);
                  return e;
                }),
              n.apply(this, arguments)
            );
          };
          function r(e, t, n, r) {
            function i(e) {
              return e instanceof n
                ? e
                : new n(function (t) {
                    t(e);
                  });
            }
            return new (n || (n = Promise))(function (n, A) {
              function o(e) {
                try {
                  s(r.next(e));
                } catch (jt) {
                  A(jt);
                }
              }
              function a(e) {
                try {
                  s(r["throw"](e));
                } catch (jt) {
                  A(jt);
                }
              }
              function s(e) {
                e.done ? n(e.value) : i(e.value).then(o, a);
              }
              s((r = r.apply(e, t || [])).next());
            });
          }
          function i(e, t) {
            var n,
              r,
              i,
              A,
              o = {
                label: 0,
                sent: function () {
                  if (1 & i[0]) throw i[1];
                  return i[1];
                },
                trys: [],
                ops: [],
              };
            return (
              (A = { next: a(0), throw: a(1), return: a(2) }),
              "function" === typeof Symbol &&
                (A[Symbol.iterator] = function () {
                  return this;
                }),
              A
            );
            function a(e) {
              return function (t) {
                return s([e, t]);
              };
            }
            function s(A) {
              if (n) throw new TypeError("Generator is already executing.");
              while (o)
                try {
                  if (
                    ((n = 1),
                    r &&
                      (i =
                        2 & A[0]
                          ? r["return"]
                          : A[0]
                            ? r["throw"] || ((i = r["return"]) && i.call(r), 0)
                            : r.next) &&
                      !(i = i.call(r, A[1])).done)
                  )
                    return i;
                  switch (((r = 0), i && (A = [2 & A[0], i.value]), A[0])) {
                    case 0:
                    case 1:
                      i = A;
                      break;
                    case 4:
                      return (o.label++, { value: A[1], done: !1 });
                    case 5:
                      (o.label++, (r = A[1]), (A = [0]));
                      continue;
                    case 7:
                      ((A = o.ops.pop()), o.trys.pop());
                      continue;
                    default:
                      if (
                        ((i = o.trys),
                        !(i = i.length > 0 && i[i.length - 1]) &&
                          (6 === A[0] || 2 === A[0]))
                      ) {
                        o = 0;
                        continue;
                      }
                      if (3 === A[0] && (!i || (A[1] > i[0] && A[1] < i[3]))) {
                        o.label = A[1];
                        break;
                      }
                      if (6 === A[0] && o.label < i[1]) {
                        ((o.label = i[1]), (i = A));
                        break;
                      }
                      if (i && o.label < i[2]) {
                        ((o.label = i[2]), o.ops.push(A));
                        break;
                      }
                      (i[2] && o.ops.pop(), o.trys.pop());
                      continue;
                  }
                  A = t.call(e, o);
                } catch (jt) {
                  ((A = [6, jt]), (r = 0));
                } finally {
                  n = i = 0;
                }
              if (5 & A[0]) throw A[1];
              return { value: A[0] ? A[1] : void 0, done: !0 };
            }
          }
          function A(e, t, n) {
            if (n || 2 === arguments.length)
              for (var r, i = 0, A = t.length; i < A; i++)
                (!r && i in t) ||
                  (r || (r = Array.prototype.slice.call(t, 0, i)),
                  (r[i] = t[i]));
            return e.concat(r || t);
          }
          for (
            var o = (function () {
                function e(e, t, n, r) {
                  ((this.left = e),
                    (this.top = t),
                    (this.width = n),
                    (this.height = r));
                }
                return (
                  (e.prototype.add = function (t, n, r, i) {
                    return new e(
                      this.left + t,
                      this.top + n,
                      this.width + r,
                      this.height + i,
                    );
                  }),
                  (e.fromClientRect = function (t, n) {
                    return new e(
                      n.left + t.windowBounds.left,
                      n.top + t.windowBounds.top,
                      n.width,
                      n.height,
                    );
                  }),
                  (e.fromDOMRectList = function (t, n) {
                    var r = Array.from(n).find(function (e) {
                      return 0 !== e.width;
                    });
                    return r
                      ? new e(
                          r.left + t.windowBounds.left,
                          r.top + t.windowBounds.top,
                          r.width,
                          r.height,
                        )
                      : e.EMPTY;
                  }),
                  (e.EMPTY = new e(0, 0, 0, 0)),
                  e
                );
              })(),
              a = function (e, t) {
                return o.fromClientRect(e, t.getBoundingClientRect());
              },
              s = function (e) {
                var t = e.body,
                  n = e.documentElement;
                if (!t || !n) throw new Error("Unable to get document size");
                var r = Math.max(
                    Math.max(t.scrollWidth, n.scrollWidth),
                    Math.max(t.offsetWidth, n.offsetWidth),
                    Math.max(t.clientWidth, n.clientWidth),
                  ),
                  i = Math.max(
                    Math.max(t.scrollHeight, n.scrollHeight),
                    Math.max(t.offsetHeight, n.offsetHeight),
                    Math.max(t.clientHeight, n.clientHeight),
                  );
                return new o(0, 0, r, i);
              },
              c = function (e) {
                var t = [],
                  n = 0,
                  r = e.length;
                while (n < r) {
                  var i = e.charCodeAt(n++);
                  if (i >= 55296 && i <= 56319 && n < r) {
                    var A = e.charCodeAt(n++);
                    56320 === (64512 & A)
                      ? t.push(((1023 & i) << 10) + (1023 & A) + 65536)
                      : (t.push(i), n--);
                  } else t.push(i);
                }
                return t;
              },
              u = function () {
                for (var e = [], t = 0; t < arguments.length; t++)
                  e[t] = arguments[t];
                if (String.fromCodePoint)
                  return String.fromCodePoint.apply(String, e);
                var n = e.length;
                if (!n) return "";
                var r = [],
                  i = -1,
                  A = "";
                while (++i < n) {
                  var o = e[i];
                  (o <= 65535
                    ? r.push(o)
                    : ((o -= 65536),
                      r.push(55296 + (o >> 10), (o % 1024) + 56320)),
                    (i + 1 === n || r.length > 16384) &&
                      ((A += String.fromCharCode.apply(String, r)),
                      (r.length = 0)));
                }
                return A;
              },
              l =
                "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
              h = "undefined" === typeof Uint8Array ? [] : new Uint8Array(256),
              f = 0;
            f < l.length;
            f++
          )
            h[l.charCodeAt(f)] = f;
          for (
            var d =
                "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
              p = "undefined" === typeof Uint8Array ? [] : new Uint8Array(256),
              g = 0;
            g < d.length;
            g++
          )
            p[d.charCodeAt(g)] = g;
          for (
            var m = function (e) {
                var t,
                  n,
                  r,
                  i,
                  A,
                  o = 0.75 * e.length,
                  a = e.length,
                  s = 0;
                "=" === e[e.length - 1] &&
                  (o--, "=" === e[e.length - 2] && o--);
                var c =
                    "undefined" !== typeof ArrayBuffer &&
                    "undefined" !== typeof Uint8Array &&
                    "undefined" !== typeof Uint8Array.prototype.slice
                      ? new ArrayBuffer(o)
                      : new Array(o),
                  u = Array.isArray(c) ? c : new Uint8Array(c);
                for (t = 0; t < a; t += 4)
                  ((n = p[e.charCodeAt(t)]),
                    (r = p[e.charCodeAt(t + 1)]),
                    (i = p[e.charCodeAt(t + 2)]),
                    (A = p[e.charCodeAt(t + 3)]),
                    (u[s++] = (n << 2) | (r >> 4)),
                    (u[s++] = ((15 & r) << 4) | (i >> 2)),
                    (u[s++] = ((3 & i) << 6) | (63 & A)));
                return c;
              },
              v = function (e) {
                for (var t = e.length, n = [], r = 0; r < t; r += 2)
                  n.push((e[r + 1] << 8) | e[r]);
                return n;
              },
              y = function (e) {
                for (var t = e.length, n = [], r = 0; r < t; r += 4)
                  n.push(
                    (e[r + 3] << 24) |
                      (e[r + 2] << 16) |
                      (e[r + 1] << 8) |
                      e[r],
                  );
                return n;
              },
              w = 5,
              B = 11,
              b = 2,
              _ = B - w,
              x = 65536 >> w,
              C = 1 << w,
              E = C - 1,
              M = 1024 >> w,
              S = x + M,
              F = S,
              T = 32,
              U = F + T,
              Q = 65536 >> B,
              L = 1 << _,
              I = L - 1,
              H = function (e, t, n) {
                return e.slice
                  ? e.slice(t, n)
                  : new Uint16Array(Array.prototype.slice.call(e, t, n));
              },
              O = function (e, t, n) {
                return e.slice
                  ? e.slice(t, n)
                  : new Uint32Array(Array.prototype.slice.call(e, t, n));
              },
              R = function (e, t) {
                var n = m(e),
                  r = Array.isArray(n) ? y(n) : new Uint32Array(n),
                  i = Array.isArray(n) ? v(n) : new Uint16Array(n),
                  A = 24,
                  o = H(i, A / 2, r[4] / 2),
                  a =
                    2 === r[5]
                      ? H(i, (A + r[4]) / 2)
                      : O(r, Math.ceil((A + r[4]) / 4));
                return new P(r[0], r[1], r[2], r[3], o, a);
              },
              P = (function () {
                function e(e, t, n, r, i, A) {
                  ((this.initialValue = e),
                    (this.errorValue = t),
                    (this.highStart = n),
                    (this.highValueIndex = r),
                    (this.index = i),
                    (this.data = A));
                }
                return (
                  (e.prototype.get = function (e) {
                    var t;
                    if (e >= 0) {
                      if (e < 55296 || (e > 56319 && e <= 65535))
                        return (
                          (t = this.index[e >> w]),
                          (t = (t << b) + (e & E)),
                          this.data[t]
                        );
                      if (e <= 65535)
                        return (
                          (t = this.index[x + ((e - 55296) >> w)]),
                          (t = (t << b) + (e & E)),
                          this.data[t]
                        );
                      if (e < this.highStart)
                        return (
                          (t = U - Q + (e >> B)),
                          (t = this.index[t]),
                          (t += (e >> w) & I),
                          (t = this.index[t]),
                          (t = (t << b) + (e & E)),
                          this.data[t]
                        );
                      if (e <= 1114111) return this.data[this.highValueIndex];
                    }
                    return this.errorValue;
                  }),
                  e
                );
              })(),
              D =
                "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
              N = "undefined" === typeof Uint8Array ? [] : new Uint8Array(256),
              k = 0;
            k < D.length;
            k++
          )
            N[D.charCodeAt(k)] = k;
          var G =
              " ",
            V = 50,
            z = 1,
            j = 2,
            K = 3,
            W = 4,
            X = 5,
            Y = 7,
            J = 8,
            q = 9,
            Z = 10,
            $ = 11,
            ee = 12,
            te = 13,
            ne = 14,
            re = 15,
            ie = 16,
            Ae = 17,
            oe = 18,
            ae = 19,
            se = 20,
            ce = 21,
            ue = 22,
            le = 23,
            he = 24,
            fe = 25,
            de = 26,
            pe = 27,
            ge = 28,
            me = 29,
            ve = 30,
            ye = 31,
            we = 32,
            Be = 33,
            be = 34,
            _e = 35,
            xe = 36,
            Ce = 37,
            Ee = 38,
            Me = 39,
            Se = 40,
            Fe = 41,
            Te = 42,
            Ue = 43,
            Qe = [9001, 65288],
            Le = "!",
            Ie = "×",
            He = "÷",
            Oe = R(G),
            Re = [ve, xe],
            Pe = [z, j, K, X],
            De = [Z, J],
            Ne = [pe, de],
            ke = Pe.concat(De),
            Ge = [Ee, Me, Se, be, _e],
            Ve = [re, te],
            ze = function (e, t) {
              void 0 === t && (t = "strict");
              var n = [],
                r = [],
                i = [];
              return (
                e.forEach(function (e, A) {
                  var o = Oe.get(e);
                  if (
                    (o > V ? (i.push(!0), (o -= V)) : i.push(!1),
                    -1 !== ["normal", "auto", "loose"].indexOf(t) &&
                      -1 !== [8208, 8211, 12316, 12448].indexOf(e))
                  )
                    return (r.push(A), n.push(ie));
                  if (o === W || o === $) {
                    if (0 === A) return (r.push(A), n.push(ve));
                    var a = n[A - 1];
                    return -1 === ke.indexOf(a)
                      ? (r.push(r[A - 1]), n.push(a))
                      : (r.push(A), n.push(ve));
                  }
                  return (
                    r.push(A),
                    o === ye
                      ? n.push("strict" === t ? ce : Ce)
                      : o === Te || o === me
                        ? n.push(ve)
                        : o === Ue
                          ? (e >= 131072 && e <= 196605) ||
                            (e >= 196608 && e <= 262141)
                            ? n.push(Ce)
                            : n.push(ve)
                          : void n.push(o)
                  );
                }),
                [r, n, i]
              );
            },
            je = function (e, t, n, r) {
              var i = r[n];
              if (Array.isArray(e) ? -1 !== e.indexOf(i) : e === i) {
                var A = n;
                while (A <= r.length) {
                  A++;
                  var o = r[A];
                  if (o === t) return !0;
                  if (o !== Z) break;
                }
              }
              if (i === Z) {
                A = n;
                while (A > 0) {
                  A--;
                  var a = r[A];
                  if (Array.isArray(e) ? -1 !== e.indexOf(a) : e === a) {
                    var s = n;
                    while (s <= r.length) {
                      s++;
                      o = r[s];
                      if (o === t) return !0;
                      if (o !== Z) break;
                    }
                  }
                  if (a !== Z) break;
                }
              }
              return !1;
            },
            Ke = function (e, t) {
              var n = e;
              while (n >= 0) {
                var r = t[n];
                if (r !== Z) return r;
                n--;
              }
              return 0;
            },
            We = function (e, t, n, r, i) {
              if (0 === n[r]) return Ie;
              var A = r - 1;
              if (Array.isArray(i) && !0 === i[A]) return Ie;
              var o = A - 1,
                a = A + 1,
                s = t[A],
                c = o >= 0 ? t[o] : 0,
                u = t[a];
              if (s === j && u === K) return Ie;
              if (-1 !== Pe.indexOf(s)) return Le;
              if (-1 !== Pe.indexOf(u)) return Ie;
              if (-1 !== De.indexOf(u)) return Ie;
              if (Ke(A, t) === J) return He;
              if (Oe.get(e[A]) === $) return Ie;
              if ((s === we || s === Be) && Oe.get(e[a]) === $) return Ie;
              if (s === Y || u === Y) return Ie;
              if (s === q) return Ie;
              if (-1 === [Z, te, re].indexOf(s) && u === q) return Ie;
              if (-1 !== [Ae, oe, ae, he, ge].indexOf(u)) return Ie;
              if (Ke(A, t) === ue) return Ie;
              if (je(le, ue, A, t)) return Ie;
              if (je([Ae, oe], ce, A, t)) return Ie;
              if (je(ee, ee, A, t)) return Ie;
              if (s === Z) return He;
              if (s === le || u === le) return Ie;
              if (u === ie || s === ie) return He;
              if (-1 !== [te, re, ce].indexOf(u) || s === ne) return Ie;
              if (c === xe && -1 !== Ve.indexOf(s)) return Ie;
              if (s === ge && u === xe) return Ie;
              if (u === se) return Ie;
              if (
                (-1 !== Re.indexOf(u) && s === fe) ||
                (-1 !== Re.indexOf(s) && u === fe)
              )
                return Ie;
              if (
                (s === pe && -1 !== [Ce, we, Be].indexOf(u)) ||
                (-1 !== [Ce, we, Be].indexOf(s) && u === de)
              )
                return Ie;
              if (
                (-1 !== Re.indexOf(s) && -1 !== Ne.indexOf(u)) ||
                (-1 !== Ne.indexOf(s) && -1 !== Re.indexOf(u))
              )
                return Ie;
              if (
                (-1 !== [pe, de].indexOf(s) &&
                  (u === fe ||
                    (-1 !== [ue, re].indexOf(u) && t[a + 1] === fe))) ||
                (-1 !== [ue, re].indexOf(s) && u === fe) ||
                (s === fe && -1 !== [fe, ge, he].indexOf(u))
              )
                return Ie;
              if (-1 !== [fe, ge, he, Ae, oe].indexOf(u)) {
                var l = A;
                while (l >= 0) {
                  var h = t[l];
                  if (h === fe) return Ie;
                  if (-1 === [ge, he].indexOf(h)) break;
                  l--;
                }
              }
              if (-1 !== [pe, de].indexOf(u)) {
                l = -1 !== [Ae, oe].indexOf(s) ? o : A;
                while (l >= 0) {
                  h = t[l];
                  if (h === fe) return Ie;
                  if (-1 === [ge, he].indexOf(h)) break;
                  l--;
                }
              }
              if (
                (Ee === s && -1 !== [Ee, Me, be, _e].indexOf(u)) ||
                (-1 !== [Me, be].indexOf(s) && -1 !== [Me, Se].indexOf(u)) ||
                (-1 !== [Se, _e].indexOf(s) && u === Se)
              )
                return Ie;
              if (
                (-1 !== Ge.indexOf(s) && -1 !== [se, de].indexOf(u)) ||
                (-1 !== Ge.indexOf(u) && s === pe)
              )
                return Ie;
              if (-1 !== Re.indexOf(s) && -1 !== Re.indexOf(u)) return Ie;
              if (s === he && -1 !== Re.indexOf(u)) return Ie;
              if (
                (-1 !== Re.concat(fe).indexOf(s) &&
                  u === ue &&
                  -1 === Qe.indexOf(e[a])) ||
                (-1 !== Re.concat(fe).indexOf(u) && s === oe)
              )
                return Ie;
              if (s === Fe && u === Fe) {
                var f = n[A],
                  d = 1;
                while (f > 0) {
                  if ((f--, t[f] !== Fe)) break;
                  d++;
                }
                if (d % 2 !== 0) return Ie;
              }
              return s === we && u === Be ? Ie : He;
            },
            Xe = function (e, t) {
              t || (t = { lineBreak: "normal", wordBreak: "normal" });
              var n = ze(e, t.lineBreak),
                r = n[0],
                i = n[1],
                A = n[2];
              ("break-all" !== t.wordBreak && "break-word" !== t.wordBreak) ||
                (i = i.map(function (e) {
                  return -1 !== [fe, ve, Te].indexOf(e) ? Ce : e;
                }));
              var o =
                "keep-all" === t.wordBreak
                  ? A.map(function (t, n) {
                      return t && e[n] >= 19968 && e[n] <= 40959;
                    })
                  : void 0;
              return [r, i, o];
            },
            Ye = (function () {
              function e(e, t, n, r) {
                ((this.codePoints = e),
                  (this.required = t === Le),
                  (this.start = n),
                  (this.end = r));
              }
              return (
                (e.prototype.slice = function () {
                  return u.apply(
                    void 0,
                    this.codePoints.slice(this.start, this.end),
                  );
                }),
                e
              );
            })(),
            Je = function (e, t) {
              var n = c(e),
                r = Xe(n, t),
                i = r[0],
                A = r[1],
                o = r[2],
                a = n.length,
                s = 0,
                u = 0;
              return {
                next: function () {
                  if (u >= a) return { done: !0, value: null };
                  var e = Ie;
                  while (u < a && (e = We(n, A, i, ++u, o)) === Ie);
                  if (e !== Ie || u === a) {
                    var t = new Ye(n, e, s, u);
                    return ((s = u), { value: t, done: !1 });
                  }
                  return { done: !0, value: null };
                },
              };
            },
            qe = 1,
            Ze = 2,
            $e = 4,
            et = 8,
            tt = 10,
            nt = 47,
            rt = 92,
            it = 9,
            At = 32,
            ot = 34,
            at = 61,
            st = 35,
            ct = 36,
            ut = 37,
            lt = 39,
            ht = 40,
            ft = 41,
            dt = 95,
            pt = 45,
            gt = 33,
            mt = 60,
            vt = 62,
            yt = 64,
            wt = 91,
            Bt = 93,
            bt = 61,
            _t = 123,
            xt = 63,
            Ct = 125,
            Et = 124,
            Mt = 126,
            St = 128,
            Ft = 65533,
            Tt = 42,
            Ut = 43,
            Qt = 44,
            Lt = 58,
            It = 59,
            Ht = 46,
            Ot = 0,
            Rt = 8,
            Pt = 11,
            Dt = 14,
            Nt = 31,
            kt = 127,
            Gt = -1,
            Vt = 48,
            zt = 97,
            jt = 101,
            Kt = 102,
            Wt = 117,
            Xt = 122,
            Yt = 65,
            Jt = 69,
            qt = 70,
            Zt = 85,
            $t = 90,
            en = function (e) {
              return e >= Vt && e <= 57;
            },
            tn = function (e) {
              return e >= 55296 && e <= 57343;
            },
            nn = function (e) {
              return en(e) || (e >= Yt && e <= qt) || (e >= zt && e <= Kt);
            },
            rn = function (e) {
              return e >= zt && e <= Xt;
            },
            An = function (e) {
              return e >= Yt && e <= $t;
            },
            on = function (e) {
              return rn(e) || An(e);
            },
            an = function (e) {
              return e >= St;
            },
            sn = function (e) {
              return e === tt || e === it || e === At;
            },
            cn = function (e) {
              return on(e) || an(e) || e === dt;
            },
            un = function (e) {
              return cn(e) || en(e) || e === pt;
            },
            ln = function (e) {
              return (
                (e >= Ot && e <= Rt) ||
                e === Pt ||
                (e >= Dt && e <= Nt) ||
                e === kt
              );
            },
            hn = function (e, t) {
              return e === rt && t !== tt;
            },
            fn = function (e, t, n) {
              return e === pt
                ? cn(t) || hn(t, n)
                : !!cn(e) || !(e !== rt || !hn(e, t));
            },
            dn = function (e, t, n) {
              return e === Ut || e === pt
                ? !!en(t) || (t === Ht && en(n))
                : en(e === Ht ? t : e);
            },
            pn = function (e) {
              var t = 0,
                n = 1;
              (e[t] !== Ut && e[t] !== pt) || (e[t] === pt && (n = -1), t++);
              var r = [];
              while (en(e[t])) r.push(e[t++]);
              var i = r.length ? parseInt(u.apply(void 0, r), 10) : 0;
              e[t] === Ht && t++;
              var A = [];
              while (en(e[t])) A.push(e[t++]);
              var o = A.length,
                a = o ? parseInt(u.apply(void 0, A), 10) : 0;
              (e[t] !== Jt && e[t] !== jt) || t++;
              var s = 1;
              (e[t] !== Ut && e[t] !== pt) || (e[t] === pt && (s = -1), t++);
              var c = [];
              while (en(e[t])) c.push(e[t++]);
              var l = c.length ? parseInt(u.apply(void 0, c), 10) : 0;
              return n * (i + a * Math.pow(10, -o)) * Math.pow(10, s * l);
            },
            gn = { type: 2 },
            mn = { type: 3 },
            vn = { type: 4 },
            yn = { type: 13 },
            wn = { type: 8 },
            Bn = { type: 21 },
            bn = { type: 9 },
            _n = { type: 10 },
            xn = { type: 11 },
            Cn = { type: 12 },
            En = { type: 14 },
            Mn = { type: 23 },
            Sn = { type: 1 },
            Fn = { type: 25 },
            Tn = { type: 24 },
            Un = { type: 26 },
            Qn = { type: 27 },
            Ln = { type: 28 },
            In = { type: 29 },
            Hn = { type: 31 },
            On = { type: 32 },
            Rn = (function () {
              function e() {
                this._value = [];
              }
              return (
                (e.prototype.write = function (e) {
                  this._value = this._value.concat(c(e));
                }),
                (e.prototype.read = function () {
                  var e = [],
                    t = this.consumeToken();
                  while (t !== On) (e.push(t), (t = this.consumeToken()));
                  return e;
                }),
                (e.prototype.consumeToken = function () {
                  var e = this.consumeCodePoint();
                  switch (e) {
                    case ot:
                      return this.consumeStringToken(ot);
                    case st:
                      var t = this.peekCodePoint(0),
                        n = this.peekCodePoint(1),
                        r = this.peekCodePoint(2);
                      if (un(t) || hn(n, r)) {
                        var i = fn(t, n, r) ? Ze : qe,
                          A = this.consumeName();
                        return { type: 5, value: A, flags: i };
                      }
                      break;
                    case ct:
                      if (this.peekCodePoint(0) === at)
                        return (this.consumeCodePoint(), yn);
                      break;
                    case lt:
                      return this.consumeStringToken(lt);
                    case ht:
                      return gn;
                    case ft:
                      return mn;
                    case Tt:
                      if (this.peekCodePoint(0) === at)
                        return (this.consumeCodePoint(), En);
                      break;
                    case Ut:
                      if (dn(e, this.peekCodePoint(0), this.peekCodePoint(1)))
                        return (
                          this.reconsumeCodePoint(e),
                          this.consumeNumericToken()
                        );
                      break;
                    case Qt:
                      return vn;
                    case pt:
                      var o = e,
                        a = this.peekCodePoint(0),
                        s = this.peekCodePoint(1);
                      if (dn(o, a, s))
                        return (
                          this.reconsumeCodePoint(e),
                          this.consumeNumericToken()
                        );
                      if (fn(o, a, s))
                        return (
                          this.reconsumeCodePoint(e),
                          this.consumeIdentLikeToken()
                        );
                      if (a === pt && s === vt)
                        return (
                          this.consumeCodePoint(),
                          this.consumeCodePoint(),
                          Tn
                        );
                      break;
                    case Ht:
                      if (dn(e, this.peekCodePoint(0), this.peekCodePoint(1)))
                        return (
                          this.reconsumeCodePoint(e),
                          this.consumeNumericToken()
                        );
                      break;
                    case nt:
                      if (this.peekCodePoint(0) === Tt) {
                        this.consumeCodePoint();
                        while (1) {
                          var c = this.consumeCodePoint();
                          if (
                            c === Tt &&
                            ((c = this.consumeCodePoint()), c === nt)
                          )
                            return this.consumeToken();
                          if (c === Gt) return this.consumeToken();
                        }
                      }
                      break;
                    case Lt:
                      return Un;
                    case It:
                      return Qn;
                    case mt:
                      if (
                        this.peekCodePoint(0) === gt &&
                        this.peekCodePoint(1) === pt &&
                        this.peekCodePoint(2) === pt
                      )
                        return (
                          this.consumeCodePoint(),
                          this.consumeCodePoint(),
                          Fn
                        );
                      break;
                    case yt:
                      var l = this.peekCodePoint(0),
                        h = this.peekCodePoint(1),
                        f = this.peekCodePoint(2);
                      if (fn(l, h, f)) {
                        A = this.consumeName();
                        return { type: 7, value: A };
                      }
                      break;
                    case wt:
                      return Ln;
                    case rt:
                      if (hn(e, this.peekCodePoint(0)))
                        return (
                          this.reconsumeCodePoint(e),
                          this.consumeIdentLikeToken()
                        );
                      break;
                    case Bt:
                      return In;
                    case bt:
                      if (this.peekCodePoint(0) === at)
                        return (this.consumeCodePoint(), wn);
                      break;
                    case _t:
                      return xn;
                    case Ct:
                      return Cn;
                    case Wt:
                    case Zt:
                      var d = this.peekCodePoint(0),
                        p = this.peekCodePoint(1);
                      return (
                        d !== Ut ||
                          (!nn(p) && p !== xt) ||
                          (this.consumeCodePoint(),
                          this.consumeUnicodeRangeToken()),
                        this.reconsumeCodePoint(e),
                        this.consumeIdentLikeToken()
                      );
                    case Et:
                      if (this.peekCodePoint(0) === at)
                        return (this.consumeCodePoint(), bn);
                      if (this.peekCodePoint(0) === Et)
                        return (this.consumeCodePoint(), Bn);
                      break;
                    case Mt:
                      if (this.peekCodePoint(0) === at)
                        return (this.consumeCodePoint(), _n);
                      break;
                    case Gt:
                      return On;
                  }
                  return sn(e)
                    ? (this.consumeWhiteSpace(), Hn)
                    : en(e)
                      ? (this.reconsumeCodePoint(e), this.consumeNumericToken())
                      : cn(e)
                        ? (this.reconsumeCodePoint(e),
                          this.consumeIdentLikeToken())
                        : { type: 6, value: u(e) };
                }),
                (e.prototype.consumeCodePoint = function () {
                  var e = this._value.shift();
                  return "undefined" === typeof e ? -1 : e;
                }),
                (e.prototype.reconsumeCodePoint = function (e) {
                  this._value.unshift(e);
                }),
                (e.prototype.peekCodePoint = function (e) {
                  return e >= this._value.length ? -1 : this._value[e];
                }),
                (e.prototype.consumeUnicodeRangeToken = function () {
                  var e = [],
                    t = this.consumeCodePoint();
                  while (nn(t) && e.length < 6)
                    (e.push(t), (t = this.consumeCodePoint()));
                  var n = !1;
                  while (t === xt && e.length < 6)
                    (e.push(t), (t = this.consumeCodePoint()), (n = !0));
                  if (n) {
                    var r = parseInt(
                        u.apply(
                          void 0,
                          e.map(function (e) {
                            return e === xt ? Vt : e;
                          }),
                        ),
                        16,
                      ),
                      i = parseInt(
                        u.apply(
                          void 0,
                          e.map(function (e) {
                            return e === xt ? qt : e;
                          }),
                        ),
                        16,
                      );
                    return { type: 30, start: r, end: i };
                  }
                  var A = parseInt(u.apply(void 0, e), 16);
                  if (
                    this.peekCodePoint(0) === pt &&
                    nn(this.peekCodePoint(1))
                  ) {
                    (this.consumeCodePoint(), (t = this.consumeCodePoint()));
                    var o = [];
                    while (nn(t) && o.length < 6)
                      (o.push(t), (t = this.consumeCodePoint()));
                    i = parseInt(u.apply(void 0, o), 16);
                    return { type: 30, start: A, end: i };
                  }
                  return { type: 30, start: A, end: A };
                }),
                (e.prototype.consumeIdentLikeToken = function () {
                  var e = this.consumeName();
                  return "url" === e.toLowerCase() &&
                    this.peekCodePoint(0) === ht
                    ? (this.consumeCodePoint(), this.consumeUrlToken())
                    : this.peekCodePoint(0) === ht
                      ? (this.consumeCodePoint(), { type: 19, value: e })
                      : { type: 20, value: e };
                }),
                (e.prototype.consumeUrlToken = function () {
                  var e = [];
                  if ((this.consumeWhiteSpace(), this.peekCodePoint(0) === Gt))
                    return { type: 22, value: "" };
                  var t = this.peekCodePoint(0);
                  if (t === lt || t === ot) {
                    var n = this.consumeStringToken(this.consumeCodePoint());
                    return 0 === n.type &&
                      (this.consumeWhiteSpace(),
                      this.peekCodePoint(0) === Gt ||
                        this.peekCodePoint(0) === ft)
                      ? (this.consumeCodePoint(), { type: 22, value: n.value })
                      : (this.consumeBadUrlRemnants(), Mn);
                  }
                  while (1) {
                    var r = this.consumeCodePoint();
                    if (r === Gt || r === ft)
                      return { type: 22, value: u.apply(void 0, e) };
                    if (sn(r))
                      return (
                        this.consumeWhiteSpace(),
                        this.peekCodePoint(0) === Gt ||
                        this.peekCodePoint(0) === ft
                          ? (this.consumeCodePoint(),
                            { type: 22, value: u.apply(void 0, e) })
                          : (this.consumeBadUrlRemnants(), Mn)
                      );
                    if (r === ot || r === lt || r === ht || ln(r))
                      return (this.consumeBadUrlRemnants(), Mn);
                    if (r === rt) {
                      if (!hn(r, this.peekCodePoint(0)))
                        return (this.consumeBadUrlRemnants(), Mn);
                      e.push(this.consumeEscapedCodePoint());
                    } else e.push(r);
                  }
                }),
                (e.prototype.consumeWhiteSpace = function () {
                  while (sn(this.peekCodePoint(0))) this.consumeCodePoint();
                }),
                (e.prototype.consumeBadUrlRemnants = function () {
                  while (1) {
                    var e = this.consumeCodePoint();
                    if (e === ft || e === Gt) return;
                    hn(e, this.peekCodePoint(0)) &&
                      this.consumeEscapedCodePoint();
                  }
                }),
                (e.prototype.consumeStringSlice = function (e) {
                  var t = 5e4,
                    n = "";
                  while (e > 0) {
                    var r = Math.min(t, e);
                    ((n += u.apply(void 0, this._value.splice(0, r))),
                      (e -= r));
                  }
                  return (this._value.shift(), n);
                }),
                (e.prototype.consumeStringToken = function (e) {
                  var t = "",
                    n = 0;
                  do {
                    var r = this._value[n];
                    if (r === Gt || void 0 === r || r === e)
                      return (
                        (t += this.consumeStringSlice(n)),
                        { type: 0, value: t }
                      );
                    if (r === tt) return (this._value.splice(0, n), Sn);
                    if (r === rt) {
                      var i = this._value[n + 1];
                      i !== Gt &&
                        void 0 !== i &&
                        (i === tt
                          ? ((t += this.consumeStringSlice(n)),
                            (n = -1),
                            this._value.shift())
                          : hn(r, i) &&
                            ((t += this.consumeStringSlice(n)),
                            (t += u(this.consumeEscapedCodePoint())),
                            (n = -1)));
                    }
                    n++;
                  } while (1);
                }),
                (e.prototype.consumeNumber = function () {
                  var e = [],
                    t = $e,
                    n = this.peekCodePoint(0);
                  (n !== Ut && n !== pt) || e.push(this.consumeCodePoint());
                  while (en(this.peekCodePoint(0)))
                    e.push(this.consumeCodePoint());
                  n = this.peekCodePoint(0);
                  var r = this.peekCodePoint(1);
                  if (n === Ht && en(r)) {
                    (e.push(this.consumeCodePoint(), this.consumeCodePoint()),
                      (t = et));
                    while (en(this.peekCodePoint(0)))
                      e.push(this.consumeCodePoint());
                  }
                  ((n = this.peekCodePoint(0)), (r = this.peekCodePoint(1)));
                  var i = this.peekCodePoint(2);
                  if (
                    (n === Jt || n === jt) &&
                    (((r === Ut || r === pt) && en(i)) || en(r))
                  ) {
                    (e.push(this.consumeCodePoint(), this.consumeCodePoint()),
                      (t = et));
                    while (en(this.peekCodePoint(0)))
                      e.push(this.consumeCodePoint());
                  }
                  return [pn(e), t];
                }),
                (e.prototype.consumeNumericToken = function () {
                  var e = this.consumeNumber(),
                    t = e[0],
                    n = e[1],
                    r = this.peekCodePoint(0),
                    i = this.peekCodePoint(1),
                    A = this.peekCodePoint(2);
                  if (fn(r, i, A)) {
                    var o = this.consumeName();
                    return { type: 15, number: t, flags: n, unit: o };
                  }
                  return r === ut
                    ? (this.consumeCodePoint(),
                      { type: 16, number: t, flags: n })
                    : { type: 17, number: t, flags: n };
                }),
                (e.prototype.consumeEscapedCodePoint = function () {
                  var e = this.consumeCodePoint();
                  if (nn(e)) {
                    var t = u(e);
                    while (nn(this.peekCodePoint(0)) && t.length < 6)
                      t += u(this.consumeCodePoint());
                    sn(this.peekCodePoint(0)) && this.consumeCodePoint();
                    var n = parseInt(t, 16);
                    return 0 === n || tn(n) || n > 1114111 ? Ft : n;
                  }
                  return e === Gt ? Ft : e;
                }),
                (e.prototype.consumeName = function () {
                  var e = "";
                  while (1) {
                    var t = this.consumeCodePoint();
                    if (un(t)) e += u(t);
                    else {
                      if (!hn(t, this.peekCodePoint(0)))
                        return (this.reconsumeCodePoint(t), e);
                      e += u(this.consumeEscapedCodePoint());
                    }
                  }
                }),
                e
              );
            })(),
            Pn = (function () {
              function e(e) {
                this._tokens = e;
              }
              return (
                (e.create = function (t) {
                  var n = new Rn();
                  return (n.write(t), new e(n.read()));
                }),
                (e.parseValue = function (t) {
                  return e.create(t).parseComponentValue();
                }),
                (e.parseValues = function (t) {
                  return e.create(t).parseComponentValues();
                }),
                (e.prototype.parseComponentValue = function () {
                  var e = this.consumeToken();
                  while (31 === e.type) e = this.consumeToken();
                  if (32 === e.type)
                    throw new SyntaxError(
                      "Error parsing CSS component value, unexpected EOF",
                    );
                  this.reconsumeToken(e);
                  var t = this.consumeComponentValue();
                  do {
                    e = this.consumeToken();
                  } while (31 === e.type);
                  if (32 === e.type) return t;
                  throw new SyntaxError(
                    "Error parsing CSS component value, multiple values found when expecting only one",
                  );
                }),
                (e.prototype.parseComponentValues = function () {
                  var e = [];
                  while (1) {
                    var t = this.consumeComponentValue();
                    if (32 === t.type) return e;
                    (e.push(t), e.push());
                  }
                }),
                (e.prototype.consumeComponentValue = function () {
                  var e = this.consumeToken();
                  switch (e.type) {
                    case 11:
                    case 28:
                    case 2:
                      return this.consumeSimpleBlock(e.type);
                    case 19:
                      return this.consumeFunction(e);
                  }
                  return e;
                }),
                (e.prototype.consumeSimpleBlock = function (e) {
                  var t = { type: e, values: [] },
                    n = this.consumeToken();
                  while (1) {
                    if (32 === n.type || Wn(n, e)) return t;
                    (this.reconsumeToken(n),
                      t.values.push(this.consumeComponentValue()),
                      (n = this.consumeToken()));
                  }
                }),
                (e.prototype.consumeFunction = function (e) {
                  var t = { name: e.value, values: [], type: 18 };
                  while (1) {
                    var n = this.consumeToken();
                    if (32 === n.type || 3 === n.type) return t;
                    (this.reconsumeToken(n),
                      t.values.push(this.consumeComponentValue()));
                  }
                }),
                (e.prototype.consumeToken = function () {
                  var e = this._tokens.shift();
                  return "undefined" === typeof e ? On : e;
                }),
                (e.prototype.reconsumeToken = function (e) {
                  this._tokens.unshift(e);
                }),
                e
              );
            })(),
            Dn = function (e) {
              return 15 === e.type;
            },
            Nn = function (e) {
              return 17 === e.type;
            },
            kn = function (e) {
              return 20 === e.type;
            },
            Gn = function (e) {
              return 0 === e.type;
            },
            Vn = function (e, t) {
              return kn(e) && e.value === t;
            },
            zn = function (e) {
              return 31 !== e.type;
            },
            jn = function (e) {
              return 31 !== e.type && 4 !== e.type;
            },
            Kn = function (e) {
              var t = [],
                n = [];
              return (
                e.forEach(function (e) {
                  if (4 === e.type) {
                    if (0 === n.length)
                      throw new Error(
                        "Error parsing function args, zero tokens for arg",
                      );
                    return (t.push(n), void (n = []));
                  }
                  31 !== e.type && n.push(e);
                }),
                n.length && t.push(n),
                t
              );
            },
            Wn = function (e, t) {
              return (
                (11 === t && 12 === e.type) ||
                (28 === t && 29 === e.type) ||
                (2 === t && 3 === e.type)
              );
            },
            Xn = function (e) {
              return 17 === e.type || 15 === e.type;
            },
            Yn = function (e) {
              return 16 === e.type || Xn(e);
            },
            Jn = function (e) {
              return e.length > 1 ? [e[0], e[1]] : [e[0]];
            },
            qn = { type: 17, number: 0, flags: $e },
            Zn = { type: 16, number: 50, flags: $e },
            $n = { type: 16, number: 100, flags: $e },
            er = function (e, t, n) {
              var r = e[0],
                i = e[1];
              return [tr(r, t), tr("undefined" !== typeof i ? i : r, n)];
            },
            tr = function (e, t) {
              if (16 === e.type) return (e.number / 100) * t;
              if (Dn(e))
                switch (e.unit) {
                  case "rem":
                  case "em":
                    return 16 * e.number;
                  case "px":
                  default:
                    return e.number;
                }
              return e.number;
            },
            nr = "deg",
            rr = "grad",
            ir = "rad",
            Ar = "turn",
            or = {
              name: "angle",
              parse: function (e, t) {
                if (15 === t.type)
                  switch (t.unit) {
                    case nr:
                      return (Math.PI * t.number) / 180;
                    case rr:
                      return (Math.PI / 200) * t.number;
                    case ir:
                      return t.number;
                    case Ar:
                      return 2 * Math.PI * t.number;
                  }
                throw new Error("Unsupported angle type");
              },
            },
            ar = function (e) {
              return (
                15 === e.type &&
                (e.unit === nr ||
                  e.unit === rr ||
                  e.unit === ir ||
                  e.unit === Ar)
              );
            },
            sr = function (e) {
              var t = e
                .filter(kn)
                .map(function (e) {
                  return e.value;
                })
                .join(" ");
              switch (t) {
                case "to bottom right":
                case "to right bottom":
                case "left top":
                case "top left":
                  return [qn, qn];
                case "to top":
                case "bottom":
                  return cr(0);
                case "to bottom left":
                case "to left bottom":
                case "right top":
                case "top right":
                  return [qn, $n];
                case "to right":
                case "left":
                  return cr(90);
                case "to top left":
                case "to left top":
                case "right bottom":
                case "bottom right":
                  return [$n, $n];
                case "to bottom":
                case "top":
                  return cr(180);
                case "to top right":
                case "to right top":
                case "left bottom":
                case "bottom left":
                  return [$n, qn];
                case "to left":
                case "right":
                  return cr(270);
              }
              return 0;
            },
            cr = function (e) {
              return (Math.PI * e) / 180;
            },
            ur = {
              name: "color",
              parse: function (e, t) {
                if (18 === t.type) {
                  var n = vr[t.name];
                  if ("undefined" === typeof n)
                    throw new Error(
                      'Attempting to parse an unsupported color function "' +
                        t.name +
                        '"',
                    );
                  return n(e, t.values);
                }
                if (5 === t.type) {
                  if (3 === t.value.length) {
                    var r = t.value.substring(0, 1),
                      i = t.value.substring(1, 2),
                      A = t.value.substring(2, 3);
                    return fr(
                      parseInt(r + r, 16),
                      parseInt(i + i, 16),
                      parseInt(A + A, 16),
                      1,
                    );
                  }
                  if (4 === t.value.length) {
                    ((r = t.value.substring(0, 1)),
                      (i = t.value.substring(1, 2)),
                      (A = t.value.substring(2, 3)));
                    var o = t.value.substring(3, 4);
                    return fr(
                      parseInt(r + r, 16),
                      parseInt(i + i, 16),
                      parseInt(A + A, 16),
                      parseInt(o + o, 16) / 255,
                    );
                  }
                  if (6 === t.value.length) {
                    ((r = t.value.substring(0, 2)),
                      (i = t.value.substring(2, 4)),
                      (A = t.value.substring(4, 6)));
                    return fr(
                      parseInt(r, 16),
                      parseInt(i, 16),
                      parseInt(A, 16),
                      1,
                    );
                  }
                  if (8 === t.value.length) {
                    ((r = t.value.substring(0, 2)),
                      (i = t.value.substring(2, 4)),
                      (A = t.value.substring(4, 6)),
                      (o = t.value.substring(6, 8)));
                    return fr(
                      parseInt(r, 16),
                      parseInt(i, 16),
                      parseInt(A, 16),
                      parseInt(o, 16) / 255,
                    );
                  }
                }
                if (20 === t.type) {
                  var a = wr[t.value.toUpperCase()];
                  if ("undefined" !== typeof a) return a;
                }
                return wr.TRANSPARENT;
              },
            },
            lr = function (e) {
              return 0 === (255 & e);
            },
            hr = function (e) {
              var t = 255 & e,
                n = 255 & (e >> 8),
                r = 255 & (e >> 16),
                i = 255 & (e >> 24);
              return t < 255
                ? "rgba(" + i + "," + r + "," + n + "," + t / 255 + ")"
                : "rgb(" + i + "," + r + "," + n + ")";
            },
            fr = function (e, t, n, r) {
              return (
                ((e << 24) |
                  (t << 16) |
                  (n << 8) |
                  (Math.round(255 * r) << 0)) >>>
                0
              );
            },
            dr = function (e, t) {
              if (17 === e.type) return e.number;
              if (16 === e.type) {
                var n = 3 === t ? 1 : 255;
                return 3 === t
                  ? (e.number / 100) * n
                  : Math.round((e.number / 100) * n);
              }
              return 0;
            },
            pr = function (e, t) {
              var n = t.filter(jn);
              if (3 === n.length) {
                var r = n.map(dr),
                  i = r[0],
                  A = r[1],
                  o = r[2];
                return fr(i, A, o, 1);
              }
              if (4 === n.length) {
                var a = n.map(dr),
                  s = ((i = a[0]), (A = a[1]), (o = a[2]), a[3]);
                return fr(i, A, o, s);
              }
              return 0;
            };
          function gr(e, t, n) {
            return (
              n < 0 && (n += 1),
              n >= 1 && (n -= 1),
              n < 1 / 6
                ? (t - e) * n * 6 + e
                : n < 0.5
                  ? t
                  : n < 2 / 3
                    ? 6 * (t - e) * (2 / 3 - n) + e
                    : e
            );
          }
          var mr = function (e, t) {
              var n = t.filter(jn),
                r = n[0],
                i = n[1],
                A = n[2],
                o = n[3],
                a =
                  (17 === r.type ? cr(r.number) : or.parse(e, r)) /
                  (2 * Math.PI),
                s = Yn(i) ? i.number / 100 : 0,
                c = Yn(A) ? A.number / 100 : 0,
                u = "undefined" !== typeof o && Yn(o) ? tr(o, 1) : 1;
              if (0 === s) return fr(255 * c, 255 * c, 255 * c, 1);
              var l = c <= 0.5 ? c * (s + 1) : c + s - c * s,
                h = 2 * c - l,
                f = gr(h, l, a + 1 / 3),
                d = gr(h, l, a),
                p = gr(h, l, a - 1 / 3);
              return fr(255 * f, 255 * d, 255 * p, u);
            },
            vr = { hsl: mr, hsla: mr, rgb: pr, rgba: pr },
            yr = function (e, t) {
              return ur.parse(e, Pn.create(t).parseComponentValue());
            },
            wr = {
              ALICEBLUE: 4042850303,
              ANTIQUEWHITE: 4209760255,
              AQUA: 16777215,
              AQUAMARINE: 2147472639,
              AZURE: 4043309055,
              BEIGE: 4126530815,
              BISQUE: 4293182719,
              BLACK: 255,
              BLANCHEDALMOND: 4293643775,
              BLUE: 65535,
              BLUEVIOLET: 2318131967,
              BROWN: 2771004159,
              BURLYWOOD: 3736635391,
              CADETBLUE: 1604231423,
              CHARTREUSE: 2147418367,
              CHOCOLATE: 3530104575,
              CORAL: 4286533887,
              CORNFLOWERBLUE: 1687547391,
              CORNSILK: 4294499583,
              CRIMSON: 3692313855,
              CYAN: 16777215,
              DARKBLUE: 35839,
              DARKCYAN: 9145343,
              DARKGOLDENROD: 3095837695,
              DARKGRAY: 2846468607,
              DARKGREEN: 6553855,
              DARKGREY: 2846468607,
              DARKKHAKI: 3182914559,
              DARKMAGENTA: 2332068863,
              DARKOLIVEGREEN: 1433087999,
              DARKORANGE: 4287365375,
              DARKORCHID: 2570243327,
              DARKRED: 2332033279,
              DARKSALMON: 3918953215,
              DARKSEAGREEN: 2411499519,
              DARKSLATEBLUE: 1211993087,
              DARKSLATEGRAY: 793726975,
              DARKSLATEGREY: 793726975,
              DARKTURQUOISE: 13554175,
              DARKVIOLET: 2483082239,
              DEEPPINK: 4279538687,
              DEEPSKYBLUE: 12582911,
              DIMGRAY: 1768516095,
              DIMGREY: 1768516095,
              DODGERBLUE: 512819199,
              FIREBRICK: 2988581631,
              FLORALWHITE: 4294635775,
              FORESTGREEN: 579543807,
              FUCHSIA: 4278255615,
              GAINSBORO: 3705462015,
              GHOSTWHITE: 4177068031,
              GOLD: 4292280575,
              GOLDENROD: 3668254975,
              GRAY: 2155905279,
              GREEN: 8388863,
              GREENYELLOW: 2919182335,
              GREY: 2155905279,
              HONEYDEW: 4043305215,
              HOTPINK: 4285117695,
              INDIANRED: 3445382399,
              INDIGO: 1258324735,
              IVORY: 4294963455,
              KHAKI: 4041641215,
              LAVENDER: 3873897215,
              LAVENDERBLUSH: 4293981695,
              LAWNGREEN: 2096890111,
              LEMONCHIFFON: 4294626815,
              LIGHTBLUE: 2916673279,
              LIGHTCORAL: 4034953471,
              LIGHTCYAN: 3774873599,
              LIGHTGOLDENRODYELLOW: 4210742015,
              LIGHTGRAY: 3553874943,
              LIGHTGREEN: 2431553791,
              LIGHTGREY: 3553874943,
              LIGHTPINK: 4290167295,
              LIGHTSALMON: 4288707327,
              LIGHTSEAGREEN: 548580095,
              LIGHTSKYBLUE: 2278488831,
              LIGHTSLATEGRAY: 2005441023,
              LIGHTSLATEGREY: 2005441023,
              LIGHTSTEELBLUE: 2965692159,
              LIGHTYELLOW: 4294959359,
              LIME: 16711935,
              LIMEGREEN: 852308735,
              LINEN: 4210091775,
              MAGENTA: 4278255615,
              MAROON: 2147483903,
              MEDIUMAQUAMARINE: 1724754687,
              MEDIUMBLUE: 52735,
              MEDIUMORCHID: 3126187007,
              MEDIUMPURPLE: 2473647103,
              MEDIUMSEAGREEN: 1018393087,
              MEDIUMSLATEBLUE: 2070474495,
              MEDIUMSPRINGGREEN: 16423679,
              MEDIUMTURQUOISE: 1221709055,
              MEDIUMVIOLETRED: 3340076543,
              MIDNIGHTBLUE: 421097727,
              MINTCREAM: 4127193855,
              MISTYROSE: 4293190143,
              MOCCASIN: 4293178879,
              NAVAJOWHITE: 4292783615,
              NAVY: 33023,
              OLDLACE: 4260751103,
              OLIVE: 2155872511,
              OLIVEDRAB: 1804477439,
              ORANGE: 4289003775,
              ORANGERED: 4282712319,
              ORCHID: 3664828159,
              PALEGOLDENROD: 4008225535,
              PALEGREEN: 2566625535,
              PALETURQUOISE: 2951671551,
              PALEVIOLETRED: 3681588223,
              PAPAYAWHIP: 4293907967,
              PEACHPUFF: 4292524543,
              PERU: 3448061951,
              PINK: 4290825215,
              PLUM: 3718307327,
              POWDERBLUE: 2967529215,
              PURPLE: 2147516671,
              REBECCAPURPLE: 1714657791,
              RED: 4278190335,
              ROSYBROWN: 3163525119,
              ROYALBLUE: 1097458175,
              SADDLEBROWN: 2336560127,
              SALMON: 4202722047,
              SANDYBROWN: 4104413439,
              SEAGREEN: 780883967,
              SEASHELL: 4294307583,
              SIENNA: 2689740287,
              SILVER: 3233857791,
              SKYBLUE: 2278484991,
              SLATEBLUE: 1784335871,
              SLATEGRAY: 1887473919,
              SLATEGREY: 1887473919,
              SNOW: 4294638335,
              SPRINGGREEN: 16744447,
              STEELBLUE: 1182971135,
              TAN: 3535047935,
              TEAL: 8421631,
              THISTLE: 3636451583,
              TOMATO: 4284696575,
              TRANSPARENT: 0,
              TURQUOISE: 1088475391,
              VIOLET: 4001558271,
              WHEAT: 4125012991,
              WHITE: 4294967295,
              WHITESMOKE: 4126537215,
              YELLOW: 4294902015,
              YELLOWGREEN: 2597139199,
            },
            Br = {
              name: "background-clip",
              initialValue: "border-box",
              prefix: !1,
              type: 1,
              parse: function (e, t) {
                return t.map(function (e) {
                  if (kn(e))
                    switch (e.value) {
                      case "padding-box":
                        return 1;
                      case "content-box":
                        return 2;
                    }
                  return 0;
                });
              },
            },
            br = {
              name: "background-color",
              initialValue: "transparent",
              prefix: !1,
              type: 3,
              format: "color",
            },
            _r = function (e, t) {
              var n = ur.parse(e, t[0]),
                r = t[1];
              return r && Yn(r)
                ? { color: n, stop: r }
                : { color: n, stop: null };
            },
            xr = function (e, t) {
              var n = e[0],
                r = e[e.length - 1];
              (null === n.stop && (n.stop = qn),
                null === r.stop && (r.stop = $n));
              for (var i = [], A = 0, o = 0; o < e.length; o++) {
                var a = e[o].stop;
                if (null !== a) {
                  var s = tr(a, t);
                  (s > A ? i.push(s) : i.push(A), (A = s));
                } else i.push(null);
              }
              var c = null;
              for (o = 0; o < i.length; o++) {
                var u = i[o];
                if (null === u) null === c && (c = o);
                else if (null !== c) {
                  for (
                    var l = o - c, h = i[c - 1], f = (u - h) / (l + 1), d = 1;
                    d <= l;
                    d++
                  )
                    i[c + d - 1] = f * d;
                  c = null;
                }
              }
              return e.map(function (e, n) {
                var r = e.color;
                return { color: r, stop: Math.max(Math.min(1, i[n] / t), 0) };
              });
            },
            Cr = function (e, t, n) {
              var r = t / 2,
                i = n / 2,
                A = tr(e[0], t) - r,
                o = i - tr(e[1], n);
              return (Math.atan2(o, A) + 2 * Math.PI) % (2 * Math.PI);
            },
            Er = function (e, t, n) {
              var r = "number" === typeof e ? e : Cr(e, t, n),
                i = Math.abs(t * Math.sin(r)) + Math.abs(n * Math.cos(r)),
                A = t / 2,
                o = n / 2,
                a = i / 2,
                s = Math.sin(r - Math.PI / 2) * a,
                c = Math.cos(r - Math.PI / 2) * a;
              return [i, A - c, A + c, o - s, o + s];
            },
            Mr = function (e, t) {
              return Math.sqrt(e * e + t * t);
            },
            Sr = function (e, t, n, r, i) {
              var A = [
                [0, 0],
                [0, t],
                [e, 0],
                [e, t],
              ];
              return A.reduce(
                function (e, t) {
                  var A = t[0],
                    o = t[1],
                    a = Mr(n - A, r - o);
                  return (i ? a < e.optimumDistance : a > e.optimumDistance)
                    ? { optimumCorner: t, optimumDistance: a }
                    : e;
                },
                { optimumDistance: i ? 1 / 0 : -1 / 0, optimumCorner: null },
              ).optimumCorner;
            },
            Fr = function (e, t, n, r, i) {
              var A = 0,
                o = 0;
              switch (e.size) {
                case 0:
                  0 === e.shape
                    ? (A = o =
                        Math.min(
                          Math.abs(t),
                          Math.abs(t - r),
                          Math.abs(n),
                          Math.abs(n - i),
                        ))
                    : 1 === e.shape &&
                      ((A = Math.min(Math.abs(t), Math.abs(t - r))),
                      (o = Math.min(Math.abs(n), Math.abs(n - i))));
                  break;
                case 2:
                  if (0 === e.shape)
                    A = o = Math.min(
                      Mr(t, n),
                      Mr(t, n - i),
                      Mr(t - r, n),
                      Mr(t - r, n - i),
                    );
                  else if (1 === e.shape) {
                    var a =
                        Math.min(Math.abs(n), Math.abs(n - i)) /
                        Math.min(Math.abs(t), Math.abs(t - r)),
                      s = Sr(r, i, t, n, !0),
                      c = s[0],
                      u = s[1];
                    ((A = Mr(c - t, (u - n) / a)), (o = a * A));
                  }
                  break;
                case 1:
                  0 === e.shape
                    ? (A = o =
                        Math.max(
                          Math.abs(t),
                          Math.abs(t - r),
                          Math.abs(n),
                          Math.abs(n - i),
                        ))
                    : 1 === e.shape &&
                      ((A = Math.max(Math.abs(t), Math.abs(t - r))),
                      (o = Math.max(Math.abs(n), Math.abs(n - i))));
                  break;
                case 3:
                  if (0 === e.shape)
                    A = o = Math.max(
                      Mr(t, n),
                      Mr(t, n - i),
                      Mr(t - r, n),
                      Mr(t - r, n - i),
                    );
                  else if (1 === e.shape) {
                    a =
                      Math.max(Math.abs(n), Math.abs(n - i)) /
                      Math.max(Math.abs(t), Math.abs(t - r));
                    var l = Sr(r, i, t, n, !1);
                    ((c = l[0]), (u = l[1]));
                    ((A = Mr(c - t, (u - n) / a)), (o = a * A));
                  }
                  break;
              }
              return (
                Array.isArray(e.size) &&
                  ((A = tr(e.size[0], r)),
                  (o = 2 === e.size.length ? tr(e.size[1], i) : A)),
                [A, o]
              );
            },
            Tr = function (e, t) {
              var n = cr(180),
                r = [];
              return (
                Kn(t).forEach(function (t, i) {
                  if (0 === i) {
                    var A = t[0];
                    if (20 === A.type && "to" === A.value)
                      return void (n = sr(t));
                    if (ar(A)) return void (n = or.parse(e, A));
                  }
                  var o = _r(e, t);
                  r.push(o);
                }),
                { angle: n, stops: r, type: 1 }
              );
            },
            Ur = function (e, t) {
              var n = cr(180),
                r = [];
              return (
                Kn(t).forEach(function (t, i) {
                  if (0 === i) {
                    var A = t[0];
                    if (
                      20 === A.type &&
                      -1 !== ["top", "left", "right", "bottom"].indexOf(A.value)
                    )
                      return void (n = sr(t));
                    if (ar(A))
                      return void (n = (or.parse(e, A) + cr(270)) % cr(360));
                  }
                  var o = _r(e, t);
                  r.push(o);
                }),
                { angle: n, stops: r, type: 1 }
              );
            },
            Qr = function (e, t) {
              var n = cr(180),
                r = [],
                i = 1,
                A = 0,
                o = 3,
                a = [];
              return (
                Kn(t).forEach(function (t, n) {
                  var A = t[0];
                  if (0 === n) {
                    if (kn(A) && "linear" === A.value) return void (i = 1);
                    if (kn(A) && "radial" === A.value) return void (i = 2);
                  }
                  if (18 === A.type)
                    if ("from" === A.name) {
                      var o = ur.parse(e, A.values[0]);
                      r.push({ stop: qn, color: o });
                    } else if ("to" === A.name) {
                      o = ur.parse(e, A.values[0]);
                      r.push({ stop: $n, color: o });
                    } else if ("color-stop" === A.name) {
                      var a = A.values.filter(jn);
                      if (2 === a.length) {
                        o = ur.parse(e, a[1]);
                        var s = a[0];
                        Nn(s) &&
                          r.push({
                            stop: {
                              type: 16,
                              number: 100 * s.number,
                              flags: s.flags,
                            },
                            color: o,
                          });
                      }
                    }
                }),
                1 === i
                  ? { angle: (n + cr(180)) % cr(360), stops: r, type: i }
                  : { size: o, shape: A, stops: r, position: a, type: i }
              );
            },
            Lr = "closest-side",
            Ir = "farthest-side",
            Hr = "closest-corner",
            Or = "farthest-corner",
            Rr = "circle",
            Pr = "ellipse",
            Dr = "cover",
            Nr = "contain",
            kr = function (e, t) {
              var n = 0,
                r = 3,
                i = [],
                A = [];
              return (
                Kn(t).forEach(function (t, o) {
                  var a = !0;
                  if (0 === o) {
                    var s = !1;
                    a = t.reduce(function (e, t) {
                      if (s)
                        if (kn(t))
                          switch (t.value) {
                            case "center":
                              return (A.push(Zn), e);
                            case "top":
                            case "left":
                              return (A.push(qn), e);
                            case "right":
                            case "bottom":
                              return (A.push($n), e);
                          }
                        else (Yn(t) || Xn(t)) && A.push(t);
                      else if (kn(t))
                        switch (t.value) {
                          case Rr:
                            return ((n = 0), !1);
                          case Pr:
                            return ((n = 1), !1);
                          case "at":
                            return ((s = !0), !1);
                          case Lr:
                            return ((r = 0), !1);
                          case Dr:
                          case Ir:
                            return ((r = 1), !1);
                          case Nr:
                          case Hr:
                            return ((r = 2), !1);
                          case Or:
                            return ((r = 3), !1);
                        }
                      else if (Xn(t) || Yn(t))
                        return (Array.isArray(r) || (r = []), r.push(t), !1);
                      return e;
                    }, a);
                  }
                  if (a) {
                    var c = _r(e, t);
                    i.push(c);
                  }
                }),
                { size: r, shape: n, stops: i, position: A, type: 2 }
              );
            },
            Gr = function (e, t) {
              var n = 0,
                r = 3,
                i = [],
                A = [];
              return (
                Kn(t).forEach(function (t, o) {
                  var a = !0;
                  if (
                    (0 === o
                      ? (a = t.reduce(function (e, t) {
                          if (kn(t))
                            switch (t.value) {
                              case "center":
                                return (A.push(Zn), !1);
                              case "top":
                              case "left":
                                return (A.push(qn), !1);
                              case "right":
                              case "bottom":
                                return (A.push($n), !1);
                            }
                          else if (Yn(t) || Xn(t)) return (A.push(t), !1);
                          return e;
                        }, a))
                      : 1 === o &&
                        (a = t.reduce(function (e, t) {
                          if (kn(t))
                            switch (t.value) {
                              case Rr:
                                return ((n = 0), !1);
                              case Pr:
                                return ((n = 1), !1);
                              case Nr:
                              case Lr:
                                return ((r = 0), !1);
                              case Ir:
                                return ((r = 1), !1);
                              case Hr:
                                return ((r = 2), !1);
                              case Dr:
                              case Or:
                                return ((r = 3), !1);
                            }
                          else if (Xn(t) || Yn(t))
                            return (
                              Array.isArray(r) || (r = []),
                              r.push(t),
                              !1
                            );
                          return e;
                        }, a)),
                    a)
                  ) {
                    var s = _r(e, t);
                    i.push(s);
                  }
                }),
                { size: r, shape: n, stops: i, position: A, type: 2 }
              );
            },
            Vr = function (e) {
              return 1 === e.type;
            },
            zr = function (e) {
              return 2 === e.type;
            },
            jr = {
              name: "image",
              parse: function (e, t) {
                if (22 === t.type) {
                  var n = { url: t.value, type: 0 };
                  return (e.cache.addImage(t.value), n);
                }
                if (18 === t.type) {
                  var r = Xr[t.name];
                  if ("undefined" === typeof r)
                    throw new Error(
                      'Attempting to parse an unsupported image function "' +
                        t.name +
                        '"',
                    );
                  return r(e, t.values);
                }
                throw new Error("Unsupported image type " + t.type);
              },
            };
          function Kr(e) {
            return (
              !(20 === e.type && "none" === e.value) &&
              (18 !== e.type || !!Xr[e.name])
            );
          }
          var Wr,
            Xr = {
              "linear-gradient": Tr,
              "-moz-linear-gradient": Ur,
              "-ms-linear-gradient": Ur,
              "-o-linear-gradient": Ur,
              "-webkit-linear-gradient": Ur,
              "radial-gradient": kr,
              "-moz-radial-gradient": Gr,
              "-ms-radial-gradient": Gr,
              "-o-radial-gradient": Gr,
              "-webkit-radial-gradient": Gr,
              "-webkit-gradient": Qr,
            },
            Yr = {
              name: "background-image",
              initialValue: "none",
              type: 1,
              prefix: !1,
              parse: function (e, t) {
                if (0 === t.length) return [];
                var n = t[0];
                return 20 === n.type && "none" === n.value
                  ? []
                  : t
                      .filter(function (e) {
                        return jn(e) && Kr(e);
                      })
                      .map(function (t) {
                        return jr.parse(e, t);
                      });
              },
            },
            Jr = {
              name: "background-origin",
              initialValue: "border-box",
              prefix: !1,
              type: 1,
              parse: function (e, t) {
                return t.map(function (e) {
                  if (kn(e))
                    switch (e.value) {
                      case "padding-box":
                        return 1;
                      case "content-box":
                        return 2;
                    }
                  return 0;
                });
              },
            },
            qr = {
              name: "background-position",
              initialValue: "0% 0%",
              type: 1,
              prefix: !1,
              parse: function (e, t) {
                return Kn(t)
                  .map(function (e) {
                    return e.filter(Yn);
                  })
                  .map(Jn);
              },
            },
            Zr = {
              name: "background-repeat",
              initialValue: "repeat",
              prefix: !1,
              type: 1,
              parse: function (e, t) {
                return Kn(t)
                  .map(function (e) {
                    return e
                      .filter(kn)
                      .map(function (e) {
                        return e.value;
                      })
                      .join(" ");
                  })
                  .map($r);
              },
            },
            $r = function (e) {
              switch (e) {
                case "no-repeat":
                  return 1;
                case "repeat-x":
                case "repeat no-repeat":
                  return 2;
                case "repeat-y":
                case "no-repeat repeat":
                  return 3;
                case "repeat":
                default:
                  return 0;
              }
            };
          (function (e) {
            ((e["AUTO"] = "auto"),
              (e["CONTAIN"] = "contain"),
              (e["COVER"] = "cover"));
          })(Wr || (Wr = {}));
          var ei,
            ti = {
              name: "background-size",
              initialValue: "0",
              prefix: !1,
              type: 1,
              parse: function (e, t) {
                return Kn(t).map(function (e) {
                  return e.filter(ni);
                });
              },
            },
            ni = function (e) {
              return kn(e) || Yn(e);
            },
            ri = function (e) {
              return {
                name: "border-" + e + "-color",
                initialValue: "transparent",
                prefix: !1,
                type: 3,
                format: "color",
              };
            },
            ii = ri("top"),
            Ai = ri("right"),
            oi = ri("bottom"),
            ai = ri("left"),
            si = function (e) {
              return {
                name: "border-radius-" + e,
                initialValue: "0 0",
                prefix: !1,
                type: 1,
                parse: function (e, t) {
                  return Jn(t.filter(Yn));
                },
              };
            },
            ci = si("top-left"),
            ui = si("top-right"),
            li = si("bottom-right"),
            hi = si("bottom-left"),
            fi = function (e) {
              return {
                name: "border-" + e + "-style",
                initialValue: "solid",
                prefix: !1,
                type: 2,
                parse: function (e, t) {
                  switch (t) {
                    case "none":
                      return 0;
                    case "dashed":
                      return 2;
                    case "dotted":
                      return 3;
                    case "double":
                      return 4;
                  }
                  return 1;
                },
              };
            },
            di = fi("top"),
            pi = fi("right"),
            gi = fi("bottom"),
            mi = fi("left"),
            vi = function (e) {
              return {
                name: "border-" + e + "-width",
                initialValue: "0",
                type: 0,
                prefix: !1,
                parse: function (e, t) {
                  return Dn(t) ? t.number : 0;
                },
              };
            },
            yi = vi("top"),
            wi = vi("right"),
            Bi = vi("bottom"),
            bi = vi("left"),
            _i = {
              name: "color",
              initialValue: "transparent",
              prefix: !1,
              type: 3,
              format: "color",
            },
            xi = {
              name: "direction",
              initialValue: "ltr",
              prefix: !1,
              type: 2,
              parse: function (e, t) {
                switch (t) {
                  case "rtl":
                    return 1;
                  case "ltr":
                  default:
                    return 0;
                }
              },
            },
            Ci = {
              name: "display",
              initialValue: "inline-block",
              prefix: !1,
              type: 1,
              parse: function (e, t) {
                return t.filter(kn).reduce(function (e, t) {
                  return e | Ei(t.value);
                }, 0);
              },
            },
            Ei = function (e) {
              switch (e) {
                case "block":
                case "-webkit-box":
                  return 2;
                case "inline":
                  return 4;
                case "run-in":
                  return 8;
                case "flow":
                  return 16;
                case "flow-root":
                  return 32;
                case "table":
                  return 64;
                case "flex":
                case "-webkit-flex":
                  return 128;
                case "grid":
                case "-ms-grid":
                  return 256;
                case "ruby":
                  return 512;
                case "subgrid":
                  return 1024;
                case "list-item":
                  return 2048;
                case "table-row-group":
                  return 4096;
                case "table-header-group":
                  return 8192;
                case "table-footer-group":
                  return 16384;
                case "table-row":
                  return 32768;
                case "table-cell":
                  return 65536;
                case "table-column-group":
                  return 131072;
                case "table-column":
                  return 262144;
                case "table-caption":
                  return 524288;
                case "ruby-base":
                  return 1048576;
                case "ruby-text":
                  return 2097152;
                case "ruby-base-container":
                  return 4194304;
                case "ruby-text-container":
                  return 8388608;
                case "contents":
                  return 16777216;
                case "inline-block":
                  return 33554432;
                case "inline-list-item":
                  return 67108864;
                case "inline-table":
                  return 134217728;
                case "inline-flex":
                  return 268435456;
                case "inline-grid":
                  return 536870912;
              }
              return 0;
            },
            Mi = {
              name: "float",
              initialValue: "none",
              prefix: !1,
              type: 2,
              parse: function (e, t) {
                switch (t) {
                  case "left":
                    return 1;
                  case "right":
                    return 2;
                  case "inline-start":
                    return 3;
                  case "inline-end":
                    return 4;
                }
                return 0;
              },
            },
            Si = {
              name: "letter-spacing",
              initialValue: "0",
              prefix: !1,
              type: 0,
              parse: function (e, t) {
                return 20 === t.type && "normal" === t.value
                  ? 0
                  : 17 === t.type || 15 === t.type
                    ? t.number
                    : 0;
              },
            };
          (function (e) {
            ((e["NORMAL"] = "normal"), (e["STRICT"] = "strict"));
          })(ei || (ei = {}));
          var Fi,
            Ti = {
              name: "line-break",
              initialValue: "normal",
              prefix: !1,
              type: 2,
              parse: function (e, t) {
                switch (t) {
                  case "strict":
                    return ei.STRICT;
                  case "normal":
                  default:
                    return ei.NORMAL;
                }
              },
            },
            Ui = {
              name: "line-height",
              initialValue: "normal",
              prefix: !1,
              type: 4,
            },
            Qi = function (e, t) {
              return kn(e) && "normal" === e.value
                ? 1.2 * t
                : 17 === e.type
                  ? t * e.number
                  : Yn(e)
                    ? tr(e, t)
                    : t;
            },
            Li = {
              name: "list-style-image",
              initialValue: "none",
              type: 0,
              prefix: !1,
              parse: function (e, t) {
                return 20 === t.type && "none" === t.value
                  ? null
                  : jr.parse(e, t);
              },
            },
            Ii = {
              name: "list-style-position",
              initialValue: "outside",
              prefix: !1,
              type: 2,
              parse: function (e, t) {
                switch (t) {
                  case "inside":
                    return 0;
                  case "outside":
                  default:
                    return 1;
                }
              },
            },
            Hi = {
              name: "list-style-type",
              initialValue: "none",
              prefix: !1,
              type: 2,
              parse: function (e, t) {
                switch (t) {
                  case "disc":
                    return 0;
                  case "circle":
                    return 1;
                  case "square":
                    return 2;
                  case "decimal":
                    return 3;
                  case "cjk-decimal":
                    return 4;
                  case "decimal-leading-zero":
                    return 5;
                  case "lower-roman":
                    return 6;
                  case "upper-roman":
                    return 7;
                  case "lower-greek":
                    return 8;
                  case "lower-alpha":
                    return 9;
                  case "upper-alpha":
                    return 10;
                  case "arabic-indic":
                    return 11;
                  case "armenian":
                    return 12;
                  case "bengali":
                    return 13;
                  case "cambodian":
                    return 14;
                  case "cjk-earthly-branch":
                    return 15;
                  case "cjk-heavenly-stem":
                    return 16;
                  case "cjk-ideographic":
                    return 17;
                  case "devanagari":
                    return 18;
                  case "ethiopic-numeric":
                    return 19;
                  case "georgian":
                    return 20;
                  case "gujarati":
                    return 21;
                  case "gurmukhi":
                    return 22;
                  case "hebrew":
                    return 22;
                  case "hiragana":
                    return 23;
                  case "hiragana-iroha":
                    return 24;
                  case "japanese-formal":
                    return 25;
                  case "japanese-informal":
                    return 26;
                  case "kannada":
                    return 27;
                  case "katakana":
                    return 28;
                  case "katakana-iroha":
                    return 29;
                  case "khmer":
                    return 30;
                  case "korean-hangul-formal":
                    return 31;
                  case "korean-hanja-formal":
                    return 32;
                  case "korean-hanja-informal":
                    return 33;
                  case "lao":
                    return 34;
                  case "lower-armenian":
                    return 35;
                  case "malayalam":
                    return 36;
                  case "mongolian":
                    return 37;
                  case "myanmar":
                    return 38;
                  case "oriya":
                    return 39;
                  case "persian":
                    return 40;
                  case "simp-chinese-formal":
                    return 41;
                  case "simp-chinese-informal":
                    return 42;
                  case "tamil":
                    return 43;
                  case "telugu":
                    return 44;
                  case "thai":
                    return 45;
                  case "tibetan":
                    return 46;
                  case "trad-chinese-formal":
                    return 47;
                  case "trad-chinese-informal":
                    return 48;
                  case "upper-armenian":
                    return 49;
                  case "disclosure-open":
                    return 50;
                  case "disclosure-closed":
                    return 51;
                  case "none":
                  default:
                    return -1;
                }
              },
            },
            Oi = function (e) {
              return {
                name: "margin-" + e,
                initialValue: "0",
                prefix: !1,
                type: 4,
              };
            },
            Ri = Oi("top"),
            Pi = Oi("right"),
            Di = Oi("bottom"),
            Ni = Oi("left"),
            ki = {
              name: "overflow",
              initialValue: "visible",
              prefix: !1,
              type: 1,
              parse: function (e, t) {
                return t.filter(kn).map(function (e) {
                  switch (e.value) {
                    case "hidden":
                      return 1;
                    case "scroll":
                      return 2;
                    case "clip":
                      return 3;
                    case "auto":
                      return 4;
                    case "visible":
                    default:
                      return 0;
                  }
                });
              },
            },
            Gi = {
              name: "overflow-wrap",
              initialValue: "normal",
              prefix: !1,
              type: 2,
              parse: function (e, t) {
                switch (t) {
                  case "break-word":
                    return "break-word";
                  case "normal":
                  default:
                    return "normal";
                }
              },
            },
            Vi = function (e) {
              return {
                name: "padding-" + e,
                initialValue: "0",
                prefix: !1,
                type: 3,
                format: "length-percentage",
              };
            },
            zi = Vi("top"),
            ji = Vi("right"),
            Ki = Vi("bottom"),
            Wi = Vi("left"),
            Xi = {
              name: "text-align",
              initialValue: "left",
              prefix: !1,
              type: 2,
              parse: function (e, t) {
                switch (t) {
                  case "right":
                    return 2;
                  case "center":
                  case "justify":
                    return 1;
                  case "left":
                  default:
                    return 0;
                }
              },
            },
            Yi = {
              name: "position",
              initialValue: "static",
              prefix: !1,
              type: 2,
              parse: function (e, t) {
                switch (t) {
                  case "relative":
                    return 1;
                  case "absolute":
                    return 2;
                  case "fixed":
                    return 3;
                  case "sticky":
                    return 4;
                }
                return 0;
              },
            },
            Ji = {
              name: "text-shadow",
              initialValue: "none",
              type: 1,
              prefix: !1,
              parse: function (e, t) {
                return 1 === t.length && Vn(t[0], "none")
                  ? []
                  : Kn(t).map(function (t) {
                      for (
                        var n = {
                            color: wr.TRANSPARENT,
                            offsetX: qn,
                            offsetY: qn,
                            blur: qn,
                          },
                          r = 0,
                          i = 0;
                        i < t.length;
                        i++
                      ) {
                        var A = t[i];
                        Xn(A)
                          ? (0 === r
                              ? (n.offsetX = A)
                              : 1 === r
                                ? (n.offsetY = A)
                                : (n.blur = A),
                            r++)
                          : (n.color = ur.parse(e, A));
                      }
                      return n;
                    });
              },
            },
            qi = {
              name: "text-transform",
              initialValue: "none",
              prefix: !1,
              type: 2,
              parse: function (e, t) {
                switch (t) {
                  case "uppercase":
                    return 2;
                  case "lowercase":
                    return 1;
                  case "capitalize":
                    return 3;
                }
                return 0;
              },
            },
            Zi = {
              name: "transform",
              initialValue: "none",
              prefix: !0,
              type: 0,
              parse: function (e, t) {
                if (20 === t.type && "none" === t.value) return null;
                if (18 === t.type) {
                  var n = tA[t.name];
                  if ("undefined" === typeof n)
                    throw new Error(
                      'Attempting to parse an unsupported transform function "' +
                        t.name +
                        '"',
                    );
                  return n(t.values);
                }
                return null;
              },
            },
            $i = function (e) {
              var t = e
                .filter(function (e) {
                  return 17 === e.type;
                })
                .map(function (e) {
                  return e.number;
                });
              return 6 === t.length ? t : null;
            },
            eA = function (e) {
              var t = e
                  .filter(function (e) {
                    return 17 === e.type;
                  })
                  .map(function (e) {
                    return e.number;
                  }),
                n = t[0],
                r = t[1];
              (t[2], t[3]);
              var i = t[4],
                A = t[5];
              (t[6], t[7], t[8], t[9], t[10], t[11]);
              var o = t[12],
                a = t[13];
              return (
                t[14],
                t[15],
                16 === t.length ? [n, r, i, A, o, a] : null
              );
            },
            tA = { matrix: $i, matrix3d: eA },
            nA = { type: 16, number: 50, flags: $e },
            rA = [nA, nA],
            iA = {
              name: "transform-origin",
              initialValue: "50% 50%",
              prefix: !0,
              type: 1,
              parse: function (e, t) {
                var n = t.filter(Yn);
                return 2 !== n.length ? rA : [n[0], n[1]];
              },
            },
            AA = {
              name: "visible",
              initialValue: "none",
              prefix: !1,
              type: 2,
              parse: function (e, t) {
                switch (t) {
                  case "hidden":
                    return 1;
                  case "collapse":
                    return 2;
                  case "visible":
                  default:
                    return 0;
                }
              },
            };
          (function (e) {
            ((e["NORMAL"] = "normal"),
              (e["BREAK_ALL"] = "break-all"),
              (e["KEEP_ALL"] = "keep-all"));
          })(Fi || (Fi = {}));
          for (
            var oA = {
                name: "word-break",
                initialValue: "normal",
                prefix: !1,
                type: 2,
                parse: function (e, t) {
                  switch (t) {
                    case "break-all":
                      return Fi.BREAK_ALL;
                    case "keep-all":
                      return Fi.KEEP_ALL;
                    case "normal":
                    default:
                      return Fi.NORMAL;
                  }
                },
              },
              aA = {
                name: "z-index",
                initialValue: "auto",
                prefix: !1,
                type: 0,
                parse: function (e, t) {
                  if (20 === t.type) return { auto: !0, order: 0 };
                  if (Nn(t)) return { auto: !1, order: t.number };
                  throw new Error("Invalid z-index number parsed");
                },
              },
              sA = {
                name: "time",
                parse: function (e, t) {
                  if (15 === t.type)
                    switch (t.unit.toLowerCase()) {
                      case "s":
                        return 1e3 * t.number;
                      case "ms":
                        return t.number;
                    }
                  throw new Error("Unsupported time type");
                },
              },
              cA = {
                name: "opacity",
                initialValue: "1",
                type: 0,
                prefix: !1,
                parse: function (e, t) {
                  return Nn(t) ? t.number : 1;
                },
              },
              uA = {
                name: "text-decoration-color",
                initialValue: "transparent",
                prefix: !1,
                type: 3,
                format: "color",
              },
              lA = {
                name: "text-decoration-line",
                initialValue: "none",
                prefix: !1,
                type: 1,
                parse: function (e, t) {
                  return t
                    .filter(kn)
                    .map(function (e) {
                      switch (e.value) {
                        case "underline":
                          return 1;
                        case "overline":
                          return 2;
                        case "line-through":
                          return 3;
                        case "none":
                          return 4;
                      }
                      return 0;
                    })
                    .filter(function (e) {
                      return 0 !== e;
                    });
                },
              },
              hA = {
                name: "font-family",
                initialValue: "",
                prefix: !1,
                type: 1,
                parse: function (e, t) {
                  var n = [],
                    r = [];
                  return (
                    t.forEach(function (e) {
                      switch (e.type) {
                        case 20:
                        case 0:
                          n.push(e.value);
                          break;
                        case 17:
                          n.push(e.number.toString());
                          break;
                        case 4:
                          (r.push(n.join(" ")), (n.length = 0));
                          break;
                      }
                    }),
                    n.length && r.push(n.join(" ")),
                    r.map(function (e) {
                      return -1 === e.indexOf(" ") ? e : "'" + e + "'";
                    })
                  );
                },
              },
              fA = {
                name: "font-size",
                initialValue: "0",
                prefix: !1,
                type: 3,
                format: "length",
              },
              dA = {
                name: "font-weight",
                initialValue: "normal",
                type: 0,
                prefix: !1,
                parse: function (e, t) {
                  if (Nn(t)) return t.number;
                  if (kn(t))
                    switch (t.value) {
                      case "bold":
                        return 700;
                      case "normal":
                      default:
                        return 400;
                    }
                  return 400;
                },
              },
              pA = {
                name: "font-variant",
                initialValue: "none",
                type: 1,
                prefix: !1,
                parse: function (e, t) {
                  return t.filter(kn).map(function (e) {
                    return e.value;
                  });
                },
              },
              gA = {
                name: "font-style",
                initialValue: "normal",
                prefix: !1,
                type: 2,
                parse: function (e, t) {
                  switch (t) {
                    case "oblique":
                      return "oblique";
                    case "italic":
                      return "italic";
                    case "normal":
                    default:
                      return "normal";
                  }
                },
              },
              mA = function (e, t) {
                return 0 !== (e & t);
              },
              vA = {
                name: "content",
                initialValue: "none",
                type: 1,
                prefix: !1,
                parse: function (e, t) {
                  if (0 === t.length) return [];
                  var n = t[0];
                  return 20 === n.type && "none" === n.value ? [] : t;
                },
              },
              yA = {
                name: "counter-increment",
                initialValue: "none",
                prefix: !0,
                type: 1,
                parse: function (e, t) {
                  if (0 === t.length) return null;
                  var n = t[0];
                  if (20 === n.type && "none" === n.value) return null;
                  for (var r = [], i = t.filter(zn), A = 0; A < i.length; A++) {
                    var o = i[A],
                      a = i[A + 1];
                    if (20 === o.type) {
                      var s = a && Nn(a) ? a.number : 1;
                      r.push({ counter: o.value, increment: s });
                    }
                  }
                  return r;
                },
              },
              wA = {
                name: "counter-reset",
                initialValue: "none",
                prefix: !0,
                type: 1,
                parse: function (e, t) {
                  if (0 === t.length) return [];
                  for (var n = [], r = t.filter(zn), i = 0; i < r.length; i++) {
                    var A = r[i],
                      o = r[i + 1];
                    if (kn(A) && "none" !== A.value) {
                      var a = o && Nn(o) ? o.number : 0;
                      n.push({ counter: A.value, reset: a });
                    }
                  }
                  return n;
                },
              },
              BA = {
                name: "duration",
                initialValue: "0s",
                prefix: !1,
                type: 1,
                parse: function (e, t) {
                  return t.filter(Dn).map(function (t) {
                    return sA.parse(e, t);
                  });
                },
              },
              bA = {
                name: "quotes",
                initialValue: "none",
                prefix: !0,
                type: 1,
                parse: function (e, t) {
                  if (0 === t.length) return null;
                  var n = t[0];
                  if (20 === n.type && "none" === n.value) return null;
                  var r = [],
                    i = t.filter(Gn);
                  if (i.length % 2 !== 0) return null;
                  for (var A = 0; A < i.length; A += 2) {
                    var o = i[A].value,
                      a = i[A + 1].value;
                    r.push({ open: o, close: a });
                  }
                  return r;
                },
              },
              _A = function (e, t, n) {
                if (!e) return "";
                var r = e[Math.min(t, e.length - 1)];
                return r ? (n ? r.open : r.close) : "";
              },
              xA = {
                name: "box-shadow",
                initialValue: "none",
                type: 1,
                prefix: !1,
                parse: function (e, t) {
                  return 1 === t.length && Vn(t[0], "none")
                    ? []
                    : Kn(t).map(function (t) {
                        for (
                          var n = {
                              color: 255,
                              offsetX: qn,
                              offsetY: qn,
                              blur: qn,
                              spread: qn,
                              inset: !1,
                            },
                            r = 0,
                            i = 0;
                          i < t.length;
                          i++
                        ) {
                          var A = t[i];
                          Vn(A, "inset")
                            ? (n.inset = !0)
                            : Xn(A)
                              ? (0 === r
                                  ? (n.offsetX = A)
                                  : 1 === r
                                    ? (n.offsetY = A)
                                    : 2 === r
                                      ? (n.blur = A)
                                      : (n.spread = A),
                                r++)
                              : (n.color = ur.parse(e, A));
                        }
                        return n;
                      });
                },
              },
              CA = {
                name: "paint-order",
                initialValue: "normal",
                prefix: !1,
                type: 1,
                parse: function (e, t) {
                  var n = [0, 1, 2],
                    r = [];
                  return (
                    t.filter(kn).forEach(function (e) {
                      switch (e.value) {
                        case "stroke":
                          r.push(1);
                          break;
                        case "fill":
                          r.push(0);
                          break;
                        case "markers":
                          r.push(2);
                          break;
                      }
                    }),
                    n.forEach(function (e) {
                      -1 === r.indexOf(e) && r.push(e);
                    }),
                    r
                  );
                },
              },
              EA = {
                name: "-webkit-text-stroke-color",
                initialValue: "currentcolor",
                prefix: !1,
                type: 3,
                format: "color",
              },
              MA = {
                name: "-webkit-text-stroke-width",
                initialValue: "0",
                type: 0,
                prefix: !1,
                parse: function (e, t) {
                  return Dn(t) ? t.number : 0;
                },
              },
              SA = (function () {
                function e(e, t) {
                  var n, r;
                  ((this.animationDuration = UA(e, BA, t.animationDuration)),
                    (this.backgroundClip = UA(e, Br, t.backgroundClip)),
                    (this.backgroundColor = UA(e, br, t.backgroundColor)),
                    (this.backgroundImage = UA(e, Yr, t.backgroundImage)),
                    (this.backgroundOrigin = UA(e, Jr, t.backgroundOrigin)),
                    (this.backgroundPosition = UA(e, qr, t.backgroundPosition)),
                    (this.backgroundRepeat = UA(e, Zr, t.backgroundRepeat)),
                    (this.backgroundSize = UA(e, ti, t.backgroundSize)),
                    (this.borderTopColor = UA(e, ii, t.borderTopColor)),
                    (this.borderRightColor = UA(e, Ai, t.borderRightColor)),
                    (this.borderBottomColor = UA(e, oi, t.borderBottomColor)),
                    (this.borderLeftColor = UA(e, ai, t.borderLeftColor)),
                    (this.borderTopLeftRadius = UA(
                      e,
                      ci,
                      t.borderTopLeftRadius,
                    )),
                    (this.borderTopRightRadius = UA(
                      e,
                      ui,
                      t.borderTopRightRadius,
                    )),
                    (this.borderBottomRightRadius = UA(
                      e,
                      li,
                      t.borderBottomRightRadius,
                    )),
                    (this.borderBottomLeftRadius = UA(
                      e,
                      hi,
                      t.borderBottomLeftRadius,
                    )),
                    (this.borderTopStyle = UA(e, di, t.borderTopStyle)),
                    (this.borderRightStyle = UA(e, pi, t.borderRightStyle)),
                    (this.borderBottomStyle = UA(e, gi, t.borderBottomStyle)),
                    (this.borderLeftStyle = UA(e, mi, t.borderLeftStyle)),
                    (this.borderTopWidth = UA(e, yi, t.borderTopWidth)),
                    (this.borderRightWidth = UA(e, wi, t.borderRightWidth)),
                    (this.borderBottomWidth = UA(e, Bi, t.borderBottomWidth)),
                    (this.borderLeftWidth = UA(e, bi, t.borderLeftWidth)),
                    (this.boxShadow = UA(e, xA, t.boxShadow)),
                    (this.color = UA(e, _i, t.color)),
                    (this.direction = UA(e, xi, t.direction)),
                    (this.display = UA(e, Ci, t.display)),
                    (this.float = UA(e, Mi, t.cssFloat)),
                    (this.fontFamily = UA(e, hA, t.fontFamily)),
                    (this.fontSize = UA(e, fA, t.fontSize)),
                    (this.fontStyle = UA(e, gA, t.fontStyle)),
                    (this.fontVariant = UA(e, pA, t.fontVariant)),
                    (this.fontWeight = UA(e, dA, t.fontWeight)),
                    (this.letterSpacing = UA(e, Si, t.letterSpacing)),
                    (this.lineBreak = UA(e, Ti, t.lineBreak)),
                    (this.lineHeight = UA(e, Ui, t.lineHeight)),
                    (this.listStyleImage = UA(e, Li, t.listStyleImage)),
                    (this.listStylePosition = UA(e, Ii, t.listStylePosition)),
                    (this.listStyleType = UA(e, Hi, t.listStyleType)),
                    (this.marginTop = UA(e, Ri, t.marginTop)),
                    (this.marginRight = UA(e, Pi, t.marginRight)),
                    (this.marginBottom = UA(e, Di, t.marginBottom)),
                    (this.marginLeft = UA(e, Ni, t.marginLeft)),
                    (this.opacity = UA(e, cA, t.opacity)));
                  var i = UA(e, ki, t.overflow);
                  ((this.overflowX = i[0]),
                    (this.overflowY = i[i.length > 1 ? 1 : 0]),
                    (this.overflowWrap = UA(e, Gi, t.overflowWrap)),
                    (this.paddingTop = UA(e, zi, t.paddingTop)),
                    (this.paddingRight = UA(e, ji, t.paddingRight)),
                    (this.paddingBottom = UA(e, Ki, t.paddingBottom)),
                    (this.paddingLeft = UA(e, Wi, t.paddingLeft)),
                    (this.paintOrder = UA(e, CA, t.paintOrder)),
                    (this.position = UA(e, Yi, t.position)),
                    (this.textAlign = UA(e, Xi, t.textAlign)),
                    (this.textDecorationColor = UA(
                      e,
                      uA,
                      null !== (n = t.textDecorationColor) && void 0 !== n
                        ? n
                        : t.color,
                    )),
                    (this.textDecorationLine = UA(
                      e,
                      lA,
                      null !== (r = t.textDecorationLine) && void 0 !== r
                        ? r
                        : t.textDecoration,
                    )),
                    (this.textShadow = UA(e, Ji, t.textShadow)),
                    (this.textTransform = UA(e, qi, t.textTransform)),
                    (this.transform = UA(e, Zi, t.transform)),
                    (this.transformOrigin = UA(e, iA, t.transformOrigin)),
                    (this.visibility = UA(e, AA, t.visibility)),
                    (this.webkitTextStrokeColor = UA(
                      e,
                      EA,
                      t.webkitTextStrokeColor,
                    )),
                    (this.webkitTextStrokeWidth = UA(
                      e,
                      MA,
                      t.webkitTextStrokeWidth,
                    )),
                    (this.wordBreak = UA(e, oA, t.wordBreak)),
                    (this.zIndex = UA(e, aA, t.zIndex)));
                }
                return (
                  (e.prototype.isVisible = function () {
                    return (
                      this.display > 0 &&
                      this.opacity > 0 &&
                      0 === this.visibility
                    );
                  }),
                  (e.prototype.isTransparent = function () {
                    return lr(this.backgroundColor);
                  }),
                  (e.prototype.isTransformed = function () {
                    return null !== this.transform;
                  }),
                  (e.prototype.isPositioned = function () {
                    return 0 !== this.position;
                  }),
                  (e.prototype.isPositionedWithZIndex = function () {
                    return this.isPositioned() && !this.zIndex.auto;
                  }),
                  (e.prototype.isFloating = function () {
                    return 0 !== this.float;
                  }),
                  (e.prototype.isInlineLevel = function () {
                    return (
                      mA(this.display, 4) ||
                      mA(this.display, 33554432) ||
                      mA(this.display, 268435456) ||
                      mA(this.display, 536870912) ||
                      mA(this.display, 67108864) ||
                      mA(this.display, 134217728)
                    );
                  }),
                  e
                );
              })(),
              FA = (function () {
                function e(e, t) {
                  ((this.content = UA(e, vA, t.content)),
                    (this.quotes = UA(e, bA, t.quotes)));
                }
                return e;
              })(),
              TA = (function () {
                function e(e, t) {
                  ((this.counterIncrement = UA(e, yA, t.counterIncrement)),
                    (this.counterReset = UA(e, wA, t.counterReset)));
                }
                return e;
              })(),
              UA = function (e, t, n) {
                var r = new Rn(),
                  i =
                    null !== n && "undefined" !== typeof n
                      ? n.toString()
                      : t.initialValue;
                r.write(i);
                var A = new Pn(r.read());
                switch (t.type) {
                  case 2:
                    var o = A.parseComponentValue();
                    return t.parse(e, kn(o) ? o.value : t.initialValue);
                  case 0:
                    return t.parse(e, A.parseComponentValue());
                  case 1:
                    return t.parse(e, A.parseComponentValues());
                  case 4:
                    return A.parseComponentValue();
                  case 3:
                    switch (t.format) {
                      case "angle":
                        return or.parse(e, A.parseComponentValue());
                      case "color":
                        return ur.parse(e, A.parseComponentValue());
                      case "image":
                        return jr.parse(e, A.parseComponentValue());
                      case "length":
                        var a = A.parseComponentValue();
                        return Xn(a) ? a : qn;
                      case "length-percentage":
                        var s = A.parseComponentValue();
                        return Yn(s) ? s : qn;
                      case "time":
                        return sA.parse(e, A.parseComponentValue());
                    }
                    break;
                }
              },
              QA = "data-html2canvas-debug",
              LA = function (e) {
                var t = e.getAttribute(QA);
                switch (t) {
                  case "all":
                    return 1;
                  case "clone":
                    return 2;
                  case "parse":
                    return 3;
                  case "render":
                    return 4;
                  default:
                    return 0;
                }
              },
              IA = function (e, t) {
                var n = LA(e);
                return 1 === n || t === n;
              },
              HA = (function () {
                function e(e, t) {
                  ((this.context = e),
                    (this.textNodes = []),
                    (this.elements = []),
                    (this.flags = 0),
                    IA(t, 3),
                    (this.styles = new SA(e, window.getComputedStyle(t, null))),
                    Ta(t) &&
                      (this.styles.animationDuration.some(function (e) {
                        return e > 0;
                      }) && (t.style.animationDuration = "0s"),
                      null !== this.styles.transform &&
                        (t.style.transform = "none")),
                    (this.bounds = a(this.context, t)),
                    IA(t, 4) && (this.flags |= 16));
                }
                return e;
              })(),
              OA =
                " ",
              RA =
                "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
              PA = "undefined" === typeof Uint8Array ? [] : new Uint8Array(256),
              DA = 0;
            DA < RA.length;
            DA++
          )
            PA[RA.charCodeAt(DA)] = DA;
          for (
            var NA = function (e) {
                var t,
                  n,
                  r,
                  i,
                  A,
                  o = 0.75 * e.length,
                  a = e.length,
                  s = 0;
                "=" === e[e.length - 1] &&
                  (o--, "=" === e[e.length - 2] && o--);
                var c =
                    "undefined" !== typeof ArrayBuffer &&
                    "undefined" !== typeof Uint8Array &&
                    "undefined" !== typeof Uint8Array.prototype.slice
                      ? new ArrayBuffer(o)
                      : new Array(o),
                  u = Array.isArray(c) ? c : new Uint8Array(c);
                for (t = 0; t < a; t += 4)
                  ((n = PA[e.charCodeAt(t)]),
                    (r = PA[e.charCodeAt(t + 1)]),
                    (i = PA[e.charCodeAt(t + 2)]),
                    (A = PA[e.charCodeAt(t + 3)]),
                    (u[s++] = (n << 2) | (r >> 4)),
                    (u[s++] = ((15 & r) << 4) | (i >> 2)),
                    (u[s++] = ((3 & i) << 6) | (63 & A)));
                return c;
              },
              kA = function (e) {
                for (var t = e.length, n = [], r = 0; r < t; r += 2)
                  n.push((e[r + 1] << 8) | e[r]);
                return n;
              },
              GA = function (e) {
                for (var t = e.length, n = [], r = 0; r < t; r += 4)
                  n.push(
                    (e[r + 3] << 24) |
                      (e[r + 2] << 16) |
                      (e[r + 1] << 8) |
                      e[r],
                  );
                return n;
              },
              VA = 5,
              zA = 11,
              jA = 2,
              KA = zA - VA,
              WA = 65536 >> VA,
              XA = 1 << VA,
              YA = XA - 1,
              JA = 1024 >> VA,
              qA = WA + JA,
              ZA = qA,
              $A = 32,
              eo = ZA + $A,
              to = 65536 >> zA,
              no = 1 << KA,
              ro = no - 1,
              io = function (e, t, n) {
                return e.slice
                  ? e.slice(t, n)
                  : new Uint16Array(Array.prototype.slice.call(e, t, n));
              },
              Ao = function (e, t, n) {
                return e.slice
                  ? e.slice(t, n)
                  : new Uint32Array(Array.prototype.slice.call(e, t, n));
              },
              oo = function (e, t) {
                var n = NA(e),
                  r = Array.isArray(n) ? GA(n) : new Uint32Array(n),
                  i = Array.isArray(n) ? kA(n) : new Uint16Array(n),
                  A = 24,
                  o = io(i, A / 2, r[4] / 2),
                  a =
                    2 === r[5]
                      ? io(i, (A + r[4]) / 2)
                      : Ao(r, Math.ceil((A + r[4]) / 4));
                return new ao(r[0], r[1], r[2], r[3], o, a);
              },
              ao = (function () {
                function e(e, t, n, r, i, A) {
                  ((this.initialValue = e),
                    (this.errorValue = t),
                    (this.highStart = n),
                    (this.highValueIndex = r),
                    (this.index = i),
                    (this.data = A));
                }
                return (
                  (e.prototype.get = function (e) {
                    var t;
                    if (e >= 0) {
                      if (e < 55296 || (e > 56319 && e <= 65535))
                        return (
                          (t = this.index[e >> VA]),
                          (t = (t << jA) + (e & YA)),
                          this.data[t]
                        );
                      if (e <= 65535)
                        return (
                          (t = this.index[WA + ((e - 55296) >> VA)]),
                          (t = (t << jA) + (e & YA)),
                          this.data[t]
                        );
                      if (e < this.highStart)
                        return (
                          (t = eo - to + (e >> zA)),
                          (t = this.index[t]),
                          (t += (e >> VA) & ro),
                          (t = this.index[t]),
                          (t = (t << jA) + (e & YA)),
                          this.data[t]
                        );
                      if (e <= 1114111) return this.data[this.highValueIndex];
                    }
                    return this.errorValue;
                  }),
                  e
                );
              })(),
              so =
                "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
              co = "undefined" === typeof Uint8Array ? [] : new Uint8Array(256),
              uo = 0;
            uo < so.length;
            uo++
          )
            co[so.charCodeAt(uo)] = uo;
          var lo,
            ho = 1,
            fo = 2,
            po = 3,
            go = 4,
            mo = 5,
            vo = 7,
            yo = 8,
            wo = 9,
            Bo = 10,
            bo = 11,
            _o = 12,
            xo = 13,
            Co = 14,
            Eo = 15,
            Mo = function (e) {
              var t = [],
                n = 0,
                r = e.length;
              while (n < r) {
                var i = e.charCodeAt(n++);
                if (i >= 55296 && i <= 56319 && n < r) {
                  var A = e.charCodeAt(n++);
                  56320 === (64512 & A)
                    ? t.push(((1023 & i) << 10) + (1023 & A) + 65536)
                    : (t.push(i), n--);
                } else t.push(i);
              }
              return t;
            },
            So = function () {
              for (var e = [], t = 0; t < arguments.length; t++)
                e[t] = arguments[t];
              if (String.fromCodePoint)
                return String.fromCodePoint.apply(String, e);
              var n = e.length;
              if (!n) return "";
              var r = [],
                i = -1,
                A = "";
              while (++i < n) {
                var o = e[i];
                (o <= 65535
                  ? r.push(o)
                  : ((o -= 65536),
                    r.push(55296 + (o >> 10), (o % 1024) + 56320)),
                  (i + 1 === n || r.length > 16384) &&
                    ((A += String.fromCharCode.apply(String, r)),
                    (r.length = 0)));
              }
              return A;
            },
            Fo = oo(OA),
            To = "×",
            Uo = "÷",
            Qo = function (e) {
              return Fo.get(e);
            },
            Lo = function (e, t, n) {
              var r = n - 2,
                i = t[r],
                A = t[n - 1],
                o = t[n];
              if (A === fo && o === po) return To;
              if (A === fo || A === po || A === go) return Uo;
              if (o === fo || o === po || o === go) return Uo;
              if (A === yo && -1 !== [yo, wo, bo, _o].indexOf(o)) return To;
              if ((A === bo || A === wo) && (o === wo || o === Bo)) return To;
              if ((A === _o || A === Bo) && o === Bo) return To;
              if (o === xo || o === mo) return To;
              if (o === vo) return To;
              if (A === ho) return To;
              if (A === xo && o === Co) {
                while (i === mo) i = t[--r];
                if (i === Co) return To;
              }
              if (A === Eo && o === Eo) {
                var a = 0;
                while (i === Eo) (a++, (i = t[--r]));
                if (a % 2 === 0) return To;
              }
              return Uo;
            },
            Io = function (e) {
              var t = Mo(e),
                n = t.length,
                r = 0,
                i = 0,
                A = t.map(Qo);
              return {
                next: function () {
                  if (r >= n) return { done: !0, value: null };
                  var e = To;
                  while (r < n && (e = Lo(t, A, ++r)) === To);
                  if (e !== To || r === n) {
                    var o = So.apply(null, t.slice(i, r));
                    return ((i = r), { value: o, done: !1 });
                  }
                  return { done: !0, value: null };
                },
              };
            },
            Ho = function (e) {
              var t,
                n = Io(e),
                r = [];
              while (!(t = n.next()).done) t.value && r.push(t.value.slice());
              return r;
            },
            Oo = function (e) {
              var t = 123;
              if (e.createRange) {
                var n = e.createRange();
                if (n.getBoundingClientRect) {
                  var r = e.createElement("boundtest");
                  ((r.style.height = t + "px"),
                    (r.style.display = "block"),
                    e.body.appendChild(r),
                    n.selectNode(r));
                  var i = n.getBoundingClientRect(),
                    A = Math.round(i.height);
                  if ((e.body.removeChild(r), A === t)) return !0;
                }
              }
              return !1;
            },
            Ro = function (e) {
              var t = e.createElement("boundtest");
              ((t.style.width = "50px"),
                (t.style.display = "block"),
                (t.style.fontSize = "12px"),
                (t.style.letterSpacing = "0px"),
                (t.style.wordSpacing = "0px"),
                e.body.appendChild(t));
              var n = e.createRange();
              t.innerHTML =
                "function" === typeof "".repeat ? "&#128104;".repeat(10) : "";
              var r = t.firstChild,
                i = c(r.data).map(function (e) {
                  return u(e);
                }),
                A = 0,
                o = {},
                a = i.every(function (e, t) {
                  (n.setStart(r, A), n.setEnd(r, A + e.length));
                  var i = n.getBoundingClientRect();
                  A += e.length;
                  var a = i.x > o.x || i.y > o.y;
                  return ((o = i), 0 === t || a);
                });
              return (e.body.removeChild(t), a);
            },
            Po = function () {
              return "undefined" !== typeof new Image().crossOrigin;
            },
            Do = function () {
              return "string" === typeof new XMLHttpRequest().responseType;
            },
            No = function (e) {
              var t = new Image(),
                n = e.createElement("canvas"),
                r = n.getContext("2d");
              if (!r) return !1;
              t.src =
                "data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'></svg>";
              try {
                (r.drawImage(t, 0, 0), n.toDataURL());
              } catch (jt) {
                return !1;
              }
              return !0;
            },
            ko = function (e) {
              return 0 === e[0] && 255 === e[1] && 0 === e[2] && 255 === e[3];
            },
            Go = function (e) {
              var t = e.createElement("canvas"),
                n = 100;
              ((t.width = n), (t.height = n));
              var r = t.getContext("2d");
              if (!r) return Promise.reject(!1);
              ((r.fillStyle = "rgb(0, 255, 0)"), r.fillRect(0, 0, n, n));
              var i = new Image(),
                A = t.toDataURL();
              i.src = A;
              var o = Vo(n, n, 0, 0, i);
              return (
                (r.fillStyle = "red"),
                r.fillRect(0, 0, n, n),
                zo(o)
                  .then(function (t) {
                    r.drawImage(t, 0, 0);
                    var i = r.getImageData(0, 0, n, n).data;
                    ((r.fillStyle = "red"), r.fillRect(0, 0, n, n));
                    var o = e.createElement("div");
                    return (
                      (o.style.backgroundImage = "url(" + A + ")"),
                      (o.style.height = n + "px"),
                      ko(i) ? zo(Vo(n, n, 0, 0, o)) : Promise.reject(!1)
                    );
                  })
                  .then(function (e) {
                    return (
                      r.drawImage(e, 0, 0),
                      ko(r.getImageData(0, 0, n, n).data)
                    );
                  })
                  .catch(function () {
                    return !1;
                  })
              );
            },
            Vo = function (e, t, n, r, i) {
              var A = "http://www.w3.org/2000/svg",
                o = document.createElementNS(A, "svg"),
                a = document.createElementNS(A, "foreignObject");
              return (
                o.setAttributeNS(null, "width", e.toString()),
                o.setAttributeNS(null, "height", t.toString()),
                a.setAttributeNS(null, "width", "100%"),
                a.setAttributeNS(null, "height", "100%"),
                a.setAttributeNS(null, "x", n.toString()),
                a.setAttributeNS(null, "y", r.toString()),
                a.setAttributeNS(null, "externalResourcesRequired", "true"),
                o.appendChild(a),
                a.appendChild(i),
                o
              );
            },
            zo = function (e) {
              return new Promise(function (t, n) {
                var r = new Image();
                ((r.onload = function () {
                  return t(r);
                }),
                  (r.onerror = n),
                  (r.src =
                    "data:image/svg+xml;charset=utf-8," +
                    encodeURIComponent(
                      new XMLSerializer().serializeToString(e),
                    )));
              });
            },
            jo = {
              get SUPPORT_RANGE_BOUNDS() {
                var e = Oo(document);
                return (
                  Object.defineProperty(jo, "SUPPORT_RANGE_BOUNDS", {
                    value: e,
                  }),
                  e
                );
              },
              get SUPPORT_WORD_BREAKING() {
                var e = jo.SUPPORT_RANGE_BOUNDS && Ro(document);
                return (
                  Object.defineProperty(jo, "SUPPORT_WORD_BREAKING", {
                    value: e,
                  }),
                  e
                );
              },
              get SUPPORT_SVG_DRAWING() {
                var e = No(document);
                return (
                  Object.defineProperty(jo, "SUPPORT_SVG_DRAWING", {
                    value: e,
                  }),
                  e
                );
              },
              get SUPPORT_FOREIGNOBJECT_DRAWING() {
                var e =
                  "function" === typeof Array.from &&
                  "function" === typeof window.fetch
                    ? Go(document)
                    : Promise.resolve(!1);
                return (
                  Object.defineProperty(jo, "SUPPORT_FOREIGNOBJECT_DRAWING", {
                    value: e,
                  }),
                  e
                );
              },
              get SUPPORT_CORS_IMAGES() {
                var e = Po();
                return (
                  Object.defineProperty(jo, "SUPPORT_CORS_IMAGES", {
                    value: e,
                  }),
                  e
                );
              },
              get SUPPORT_RESPONSE_TYPE() {
                var e = Do();
                return (
                  Object.defineProperty(jo, "SUPPORT_RESPONSE_TYPE", {
                    value: e,
                  }),
                  e
                );
              },
              get SUPPORT_CORS_XHR() {
                var e = "withCredentials" in new XMLHttpRequest();
                return (
                  Object.defineProperty(jo, "SUPPORT_CORS_XHR", { value: e }),
                  e
                );
              },
              get SUPPORT_NATIVE_TEXT_SEGMENTATION() {
                var e = !("undefined" === typeof Intl || !Intl.Segmenter);
                return (
                  Object.defineProperty(
                    jo,
                    "SUPPORT_NATIVE_TEXT_SEGMENTATION",
                    { value: e },
                  ),
                  e
                );
              },
            },
            Ko = (function () {
              function e(e, t) {
                ((this.text = e), (this.bounds = t));
              }
              return e;
            })(),
            Wo = function (e, t, n, r) {
              var i = Zo(t, n),
                A = [],
                a = 0;
              return (
                i.forEach(function (t) {
                  if (n.textDecorationLine.length || t.trim().length > 0)
                    if (jo.SUPPORT_RANGE_BOUNDS) {
                      var i = Yo(r, a, t.length).getClientRects();
                      if (i.length > 1) {
                        var s = Jo(t),
                          c = 0;
                        s.forEach(function (t) {
                          (A.push(
                            new Ko(
                              t,
                              o.fromDOMRectList(
                                e,
                                Yo(r, c + a, t.length).getClientRects(),
                              ),
                            ),
                          ),
                            (c += t.length));
                        });
                      } else A.push(new Ko(t, o.fromDOMRectList(e, i)));
                    } else {
                      var u = r.splitText(t.length);
                      (A.push(new Ko(t, Xo(e, r))), (r = u));
                    }
                  else jo.SUPPORT_RANGE_BOUNDS || (r = r.splitText(t.length));
                  a += t.length;
                }),
                A
              );
            },
            Xo = function (e, t) {
              var n = t.ownerDocument;
              if (n) {
                var r = n.createElement("html2canvaswrapper");
                r.appendChild(t.cloneNode(!0));
                var i = t.parentNode;
                if (i) {
                  i.replaceChild(r, t);
                  var A = a(e, r);
                  return (r.firstChild && i.replaceChild(r.firstChild, r), A);
                }
              }
              return o.EMPTY;
            },
            Yo = function (e, t, n) {
              var r = e.ownerDocument;
              if (!r) throw new Error("Node has no owner document");
              var i = r.createRange();
              return (i.setStart(e, t), i.setEnd(e, t + n), i);
            },
            Jo = function (e) {
              if (jo.SUPPORT_NATIVE_TEXT_SEGMENTATION) {
                var t = new Intl.Segmenter(void 0, { granularity: "grapheme" });
                return Array.from(t.segment(e)).map(function (e) {
                  return e.segment;
                });
              }
              return Ho(e);
            },
            qo = function (e, t) {
              if (jo.SUPPORT_NATIVE_TEXT_SEGMENTATION) {
                var n = new Intl.Segmenter(void 0, { granularity: "word" });
                return Array.from(n.segment(e)).map(function (e) {
                  return e.segment;
                });
              }
              return ea(e, t);
            },
            Zo = function (e, t) {
              return 0 !== t.letterSpacing ? Jo(e) : qo(e, t);
            },
            $o = [32, 160, 4961, 65792, 65793, 4153, 4241],
            ea = function (e, t) {
              var n,
                r = Je(e, {
                  lineBreak: t.lineBreak,
                  wordBreak:
                    "break-word" === t.overflowWrap
                      ? "break-word"
                      : t.wordBreak,
                }),
                i = [],
                A = function () {
                  if (n.value) {
                    var e = n.value.slice(),
                      t = c(e),
                      r = "";
                    (t.forEach(function (e) {
                      -1 === $o.indexOf(e)
                        ? (r += u(e))
                        : (r.length && i.push(r), i.push(u(e)), (r = ""));
                    }),
                      r.length && i.push(r));
                  }
                };
              while (!(n = r.next()).done) A();
              return i;
            },
            ta = (function () {
              function e(e, t, n) {
                ((this.text = na(t.data, n.textTransform)),
                  (this.textBounds = Wo(e, this.text, n, t)));
              }
              return e;
            })(),
            na = function (e, t) {
              switch (t) {
                case 1:
                  return e.toLowerCase();
                case 3:
                  return e.replace(ra, ia);
                case 2:
                  return e.toUpperCase();
                default:
                  return e;
              }
            },
            ra = /(^|\s|:|-|\(|\))([a-z])/g,
            ia = function (e, t, n) {
              return e.length > 0 ? t + n.toUpperCase() : e;
            },
            Aa = (function (e) {
              function n(t, n) {
                var r = e.call(this, t, n) || this;
                return (
                  (r.src = n.currentSrc || n.src),
                  (r.intrinsicWidth = n.naturalWidth),
                  (r.intrinsicHeight = n.naturalHeight),
                  r.context.cache.addImage(r.src),
                  r
                );
              }
              return (t(n, e), n);
            })(HA),
            oa = (function (e) {
              function n(t, n) {
                var r = e.call(this, t, n) || this;
                return (
                  (r.canvas = n),
                  (r.intrinsicWidth = n.width),
                  (r.intrinsicHeight = n.height),
                  r
                );
              }
              return (t(n, e), n);
            })(HA),
            aa = (function (e) {
              function n(t, n) {
                var r = e.call(this, t, n) || this,
                  i = new XMLSerializer(),
                  A = a(t, n);
                return (
                  n.setAttribute("width", A.width + "px"),
                  n.setAttribute("height", A.height + "px"),
                  (r.svg =
                    "data:image/svg+xml," +
                    encodeURIComponent(i.serializeToString(n))),
                  (r.intrinsicWidth = n.width.baseVal.value),
                  (r.intrinsicHeight = n.height.baseVal.value),
                  r.context.cache.addImage(r.svg),
                  r
                );
              }
              return (t(n, e), n);
            })(HA),
            sa = (function (e) {
              function n(t, n) {
                var r = e.call(this, t, n) || this;
                return ((r.value = n.value), r);
              }
              return (t(n, e), n);
            })(HA),
            ca = (function (e) {
              function n(t, n) {
                var r = e.call(this, t, n) || this;
                return (
                  (r.start = n.start),
                  (r.reversed =
                    "boolean" === typeof n.reversed && !0 === n.reversed),
                  r
                );
              }
              return (t(n, e), n);
            })(HA),
            ua = [{ type: 15, flags: 0, unit: "px", number: 3 }],
            la = [{ type: 16, flags: 0, number: 50 }],
            ha = function (e) {
              return e.width > e.height
                ? new o(
                    e.left + (e.width - e.height) / 2,
                    e.top,
                    e.height,
                    e.height,
                  )
                : e.width < e.height
                  ? new o(
                      e.left,
                      e.top + (e.height - e.width) / 2,
                      e.width,
                      e.width,
                    )
                  : e;
            },
            fa = function (e) {
              var t =
                e.type === ga
                  ? new Array(e.value.length + 1).join("•")
                  : e.value;
              return 0 === t.length ? e.placeholder || "" : t;
            },
            da = "checkbox",
            pa = "radio",
            ga = "password",
            ma = 707406591,
            va = (function (e) {
              function n(t, n) {
                var r = e.call(this, t, n) || this;
                switch (
                  ((r.type = n.type.toLowerCase()),
                  (r.checked = n.checked),
                  (r.value = fa(n)),
                  (r.type !== da && r.type !== pa) ||
                    ((r.styles.backgroundColor = 3739148031),
                    (r.styles.borderTopColor =
                      r.styles.borderRightColor =
                      r.styles.borderBottomColor =
                      r.styles.borderLeftColor =
                        2779096575),
                    (r.styles.borderTopWidth =
                      r.styles.borderRightWidth =
                      r.styles.borderBottomWidth =
                      r.styles.borderLeftWidth =
                        1),
                    (r.styles.borderTopStyle =
                      r.styles.borderRightStyle =
                      r.styles.borderBottomStyle =
                      r.styles.borderLeftStyle =
                        1),
                    (r.styles.backgroundClip = [0]),
                    (r.styles.backgroundOrigin = [0]),
                    (r.bounds = ha(r.bounds))),
                  r.type)
                ) {
                  case da:
                    r.styles.borderTopRightRadius =
                      r.styles.borderTopLeftRadius =
                      r.styles.borderBottomRightRadius =
                      r.styles.borderBottomLeftRadius =
                        ua;
                    break;
                  case pa:
                    r.styles.borderTopRightRadius =
                      r.styles.borderTopLeftRadius =
                      r.styles.borderBottomRightRadius =
                      r.styles.borderBottomLeftRadius =
                        la;
                    break;
                }
                return r;
              }
              return (t(n, e), n);
            })(HA),
            ya = (function (e) {
              function n(t, n) {
                var r = e.call(this, t, n) || this,
                  i = n.options[n.selectedIndex || 0];
                return ((r.value = (i && i.text) || ""), r);
              }
              return (t(n, e), n);
            })(HA),
            wa = (function (e) {
              function n(t, n) {
                var r = e.call(this, t, n) || this;
                return ((r.value = n.value), r);
              }
              return (t(n, e), n);
            })(HA),
            Ba = (function (e) {
              function n(t, n) {
                var r = e.call(this, t, n) || this;
                ((r.src = n.src),
                  (r.width = parseInt(n.width, 10) || 0),
                  (r.height = parseInt(n.height, 10) || 0),
                  (r.backgroundColor = r.styles.backgroundColor));
                try {
                  if (
                    n.contentWindow &&
                    n.contentWindow.document &&
                    n.contentWindow.document.documentElement
                  ) {
                    r.tree = Ca(t, n.contentWindow.document.documentElement);
                    var i = n.contentWindow.document.documentElement
                        ? yr(
                            t,
                            getComputedStyle(
                              n.contentWindow.document.documentElement,
                            ).backgroundColor,
                          )
                        : wr.TRANSPARENT,
                      A = n.contentWindow.document.body
                        ? yr(
                            t,
                            getComputedStyle(n.contentWindow.document.body)
                              .backgroundColor,
                          )
                        : wr.TRANSPARENT;
                    r.backgroundColor = lr(i)
                      ? lr(A)
                        ? r.styles.backgroundColor
                        : A
                      : i;
                  }
                } catch (jt) {}
                return r;
              }
              return (t(n, e), n);
            })(HA),
            ba = ["OL", "UL", "MENU"],
            _a = function (e, t, n, r) {
              for (var i = t.firstChild, A = void 0; i; i = A)
                if (((A = i.nextSibling), Sa(i) && i.data.trim().length > 0))
                  n.textNodes.push(new ta(e, i, n.styles));
                else if (Fa(i))
                  if (Ka(i) && i.assignedNodes)
                    i.assignedNodes().forEach(function (t) {
                      return _a(e, t, n, r);
                    });
                  else {
                    var o = xa(e, i);
                    o.styles.isVisible() &&
                      (Ea(i, o, r)
                        ? (o.flags |= 4)
                        : Ma(o.styles) && (o.flags |= 2),
                      -1 !== ba.indexOf(i.tagName) && (o.flags |= 8),
                      n.elements.push(o),
                      i.slot,
                      i.shadowRoot
                        ? _a(e, i.shadowRoot, o, r)
                        : za(i) || Oa(i) || ja(i) || _a(e, i, o, r));
                  }
            },
            xa = function (e, t) {
              return Na(t)
                ? new Aa(e, t)
                : Pa(t)
                  ? new oa(e, t)
                  : Oa(t)
                    ? new aa(e, t)
                    : Qa(t)
                      ? new sa(e, t)
                      : La(t)
                        ? new ca(e, t)
                        : Ia(t)
                          ? new va(e, t)
                          : ja(t)
                            ? new ya(e, t)
                            : za(t)
                              ? new wa(e, t)
                              : ka(t)
                                ? new Ba(e, t)
                                : new HA(e, t);
            },
            Ca = function (e, t) {
              var n = xa(e, t);
              return ((n.flags |= 4), _a(e, t, n, n), n);
            },
            Ea = function (e, t, n) {
              return (
                t.styles.isPositionedWithZIndex() ||
                t.styles.opacity < 1 ||
                t.styles.isTransformed() ||
                (Ra(e) && n.styles.isTransparent())
              );
            },
            Ma = function (e) {
              return e.isPositioned() || e.isFloating();
            },
            Sa = function (e) {
              return e.nodeType === Node.TEXT_NODE;
            },
            Fa = function (e) {
              return e.nodeType === Node.ELEMENT_NODE;
            },
            Ta = function (e) {
              return Fa(e) && "undefined" !== typeof e.style && !Ua(e);
            },
            Ua = function (e) {
              return "object" === typeof e.className;
            },
            Qa = function (e) {
              return "LI" === e.tagName;
            },
            La = function (e) {
              return "OL" === e.tagName;
            },
            Ia = function (e) {
              return "INPUT" === e.tagName;
            },
            Ha = function (e) {
              return "HTML" === e.tagName;
            },
            Oa = function (e) {
              return "svg" === e.tagName;
            },
            Ra = function (e) {
              return "BODY" === e.tagName;
            },
            Pa = function (e) {
              return "CANVAS" === e.tagName;
            },
            Da = function (e) {
              return "VIDEO" === e.tagName;
            },
            Na = function (e) {
              return "IMG" === e.tagName;
            },
            ka = function (e) {
              return "IFRAME" === e.tagName;
            },
            Ga = function (e) {
              return "STYLE" === e.tagName;
            },
            Va = function (e) {
              return "SCRIPT" === e.tagName;
            },
            za = function (e) {
              return "TEXTAREA" === e.tagName;
            },
            ja = function (e) {
              return "SELECT" === e.tagName;
            },
            Ka = function (e) {
              return "SLOT" === e.tagName;
            },
            Wa = function (e) {
              return e.tagName.indexOf("-") > 0;
            },
            Xa = (function () {
              function e() {
                this.counters = {};
              }
              return (
                (e.prototype.getCounterValue = function (e) {
                  var t = this.counters[e];
                  return t && t.length ? t[t.length - 1] : 1;
                }),
                (e.prototype.getCounterValues = function (e) {
                  var t = this.counters[e];
                  return t || [];
                }),
                (e.prototype.pop = function (e) {
                  var t = this;
                  e.forEach(function (e) {
                    return t.counters[e].pop();
                  });
                }),
                (e.prototype.parse = function (e) {
                  var t = this,
                    n = e.counterIncrement,
                    r = e.counterReset,
                    i = !0;
                  null !== n &&
                    n.forEach(function (e) {
                      var n = t.counters[e.counter];
                      n &&
                        0 !== e.increment &&
                        ((i = !1),
                        n.length || n.push(1),
                        (n[Math.max(0, n.length - 1)] += e.increment));
                    });
                  var A = [];
                  return (
                    i &&
                      r.forEach(function (e) {
                        var n = t.counters[e.counter];
                        (A.push(e.counter),
                          n || (n = t.counters[e.counter] = []),
                          n.push(e.reset));
                      }),
                    A
                  );
                }),
                e
              );
            })(),
            Ya = {
              integers: [1e3, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1],
              values: [
                "M",
                "CM",
                "D",
                "CD",
                "C",
                "XC",
                "L",
                "XL",
                "X",
                "IX",
                "V",
                "IV",
                "I",
              ],
            },
            Ja = {
              integers: [
                9e3, 8e3, 7e3, 6e3, 5e3, 4e3, 3e3, 2e3, 1e3, 900, 800, 700, 600,
                500, 400, 300, 200, 100, 90, 80, 70, 60, 50, 40, 30, 20, 10, 9,
                8, 7, 6, 5, 4, 3, 2, 1,
              ],
              values: [
                "Ք",
                "Փ",
                "Ւ",
                "Ց",
                "Ր",
                "Տ",
                "Վ",
                "Ս",
                "Ռ",
                "Ջ",
                "Պ",
                "Չ",
                "Ո",
                "Շ",
                "Ն",
                "Յ",
                "Մ",
                "Ճ",
                "Ղ",
                "Ձ",
                "Հ",
                "Կ",
                "Ծ",
                "Խ",
                "Լ",
                "Ի",
                "Ժ",
                "Թ",
                "Ը",
                "Է",
                "Զ",
                "Ե",
                "Դ",
                "Գ",
                "Բ",
                "Ա",
              ],
            },
            qa = {
              integers: [
                1e4, 9e3, 8e3, 7e3, 6e3, 5e3, 4e3, 3e3, 2e3, 1e3, 400, 300, 200,
                100, 90, 80, 70, 60, 50, 40, 30, 20, 19, 18, 17, 16, 15, 10, 9,
                8, 7, 6, 5, 4, 3, 2, 1,
              ],
              values: [
                "י׳",
                "ט׳",
                "ח׳",
                "ז׳",
                "ו׳",
                "ה׳",
                "ד׳",
                "ג׳",
                "ב׳",
                "א׳",
                "ת",
                "ש",
                "ר",
                "ק",
                "צ",
                "פ",
                "ע",
                "ס",
                "נ",
                "מ",
                "ל",
                "כ",
                "יט",
                "יח",
                "יז",
                "טז",
                "טו",
                "י",
                "ט",
                "ח",
                "ז",
                "ו",
                "ה",
                "ד",
                "ג",
                "ב",
                "א",
              ],
            },
            Za = {
              integers: [
                1e4, 9e3, 8e3, 7e3, 6e3, 5e3, 4e3, 3e3, 2e3, 1e3, 900, 800, 700,
                600, 500, 400, 300, 200, 100, 90, 80, 70, 60, 50, 40, 30, 20,
                10, 9, 8, 7, 6, 5, 4, 3, 2, 1,
              ],
              values: [
                "ჵ",
                "ჰ",
                "ჯ",
                "ჴ",
                "ხ",
                "ჭ",
                "წ",
                "ძ",
                "ც",
                "ჩ",
                "შ",
                "ყ",
                "ღ",
                "ქ",
                "ფ",
                "ჳ",
                "ტ",
                "ს",
                "რ",
                "ჟ",
                "პ",
                "ო",
                "ჲ",
                "ნ",
                "მ",
                "ლ",
                "კ",
                "ი",
                "თ",
                "ჱ",
                "ზ",
                "ვ",
                "ე",
                "დ",
                "გ",
                "ბ",
                "ა",
              ],
            },
            $a = function (e, t, n, r, i, A) {
              return e < t || e > n
                ? hs(e, i, A.length > 0)
                : r.integers.reduce(function (t, n, i) {
                    while (e >= n) ((e -= n), (t += r.values[i]));
                    return t;
                  }, "") + A;
            },
            es = function (e, t, n, r) {
              var i = "";
              do {
                (n || e--, (i = r(e) + i), (e /= t));
              } while (e * t >= t);
              return i;
            },
            ts = function (e, t, n, r, i) {
              var A = n - t + 1;
              return (
                (e < 0 ? "-" : "") +
                (es(Math.abs(e), A, r, function (e) {
                  return u(Math.floor(e % A) + t);
                }) +
                  i)
              );
            },
            ns = function (e, t, n) {
              void 0 === n && (n = ". ");
              var r = t.length;
              return (
                es(Math.abs(e), r, !1, function (e) {
                  return t[Math.floor(e % r)];
                }) + n
              );
            },
            rs = 1,
            is = 2,
            As = 4,
            os = 8,
            as = function (e, t, n, r, i, A) {
              if (e < -9999 || e > 9999) return hs(e, 4, i.length > 0);
              var o = Math.abs(e),
                a = i;
              if (0 === o) return t[0] + a;
              for (var s = 0; o > 0 && s <= 4; s++) {
                var c = o % 10;
                (0 === c && mA(A, rs) && "" !== a
                  ? (a = t[c] + a)
                  : c > 1 ||
                      (1 === c && 0 === s) ||
                      (1 === c && 1 === s && mA(A, is)) ||
                      (1 === c && 1 === s && mA(A, As) && e > 100) ||
                      (1 === c && s > 1 && mA(A, os))
                    ? (a = t[c] + (s > 0 ? n[s - 1] : "") + a)
                    : 1 === c && s > 0 && (a = n[s - 1] + a),
                  (o = Math.floor(o / 10)));
              }
              return (e < 0 ? r : "") + a;
            },
            ss = "十百千萬",
            cs = "拾佰仟萬",
            us = "マイナス",
            ls = "마이너스",
            hs = function (e, t, n) {
              var r = n ? ". " : "",
                i = n ? "、" : "",
                A = n ? ", " : "",
                o = n ? " " : "";
              switch (t) {
                case 0:
                  return "•" + o;
                case 1:
                  return "◦" + o;
                case 2:
                  return "◾" + o;
                case 5:
                  var a = ts(e, 48, 57, !0, r);
                  return a.length < 4 ? "0" + a : a;
                case 4:
                  return ns(e, "〇一二三四五六七八九", i);
                case 6:
                  return $a(e, 1, 3999, Ya, 3, r).toLowerCase();
                case 7:
                  return $a(e, 1, 3999, Ya, 3, r);
                case 8:
                  return ts(e, 945, 969, !1, r);
                case 9:
                  return ts(e, 97, 122, !1, r);
                case 10:
                  return ts(e, 65, 90, !1, r);
                case 11:
                  return ts(e, 1632, 1641, !0, r);
                case 12:
                case 49:
                  return $a(e, 1, 9999, Ja, 3, r);
                case 35:
                  return $a(e, 1, 9999, Ja, 3, r).toLowerCase();
                case 13:
                  return ts(e, 2534, 2543, !0, r);
                case 14:
                case 30:
                  return ts(e, 6112, 6121, !0, r);
                case 15:
                  return ns(e, "子丑寅卯辰巳午未申酉戌亥", i);
                case 16:
                  return ns(e, "甲乙丙丁戊己庚辛壬癸", i);
                case 17:
                case 48:
                  return as(
                    e,
                    "零一二三四五六七八九",
                    ss,
                    "負",
                    i,
                    is | As | os,
                  );
                case 47:
                  return as(
                    e,
                    "零壹貳參肆伍陸柒捌玖",
                    cs,
                    "負",
                    i,
                    rs | is | As | os,
                  );
                case 42:
                  return as(
                    e,
                    "零一二三四五六七八九",
                    ss,
                    "负",
                    i,
                    is | As | os,
                  );
                case 41:
                  return as(
                    e,
                    "零壹贰叁肆伍陆柒捌玖",
                    cs,
                    "负",
                    i,
                    rs | is | As | os,
                  );
                case 26:
                  return as(e, "〇一二三四五六七八九", "十百千万", us, i, 0);
                case 25:
                  return as(
                    e,
                    "零壱弐参四伍六七八九",
                    "拾百千万",
                    us,
                    i,
                    rs | is | As,
                  );
                case 31:
                  return as(
                    e,
                    "영일이삼사오육칠팔구",
                    "십백천만",
                    ls,
                    A,
                    rs | is | As,
                  );
                case 33:
                  return as(e, "零一二三四五六七八九", "十百千萬", ls, A, 0);
                case 32:
                  return as(
                    e,
                    "零壹貳參四五六七八九",
                    "拾百千",
                    ls,
                    A,
                    rs | is | As,
                  );
                case 18:
                  return ts(e, 2406, 2415, !0, r);
                case 20:
                  return $a(e, 1, 19999, Za, 3, r);
                case 21:
                  return ts(e, 2790, 2799, !0, r);
                case 22:
                  return ts(e, 2662, 2671, !0, r);
                case 22:
                  return $a(e, 1, 10999, qa, 3, r);
                case 23:
                  return ns(
                    e,
                    "あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん",
                  );
                case 24:
                  return ns(
                    e,
                    "いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす",
                  );
                case 27:
                  return ts(e, 3302, 3311, !0, r);
                case 28:
                  return ns(
                    e,
                    "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",
                    i,
                  );
                case 29:
                  return ns(
                    e,
                    "イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",
                    i,
                  );
                case 34:
                  return ts(e, 3792, 3801, !0, r);
                case 37:
                  return ts(e, 6160, 6169, !0, r);
                case 38:
                  return ts(e, 4160, 4169, !0, r);
                case 39:
                  return ts(e, 2918, 2927, !0, r);
                case 40:
                  return ts(e, 1776, 1785, !0, r);
                case 43:
                  return ts(e, 3046, 3055, !0, r);
                case 44:
                  return ts(e, 3174, 3183, !0, r);
                case 45:
                  return ts(e, 3664, 3673, !0, r);
                case 46:
                  return ts(e, 3872, 3881, !0, r);
                case 3:
                default:
                  return ts(e, 48, 57, !0, r);
              }
            },
            fs = "data-html2canvas-ignore",
            ds = (function () {
              function e(e, t, n) {
                if (
                  ((this.context = e),
                  (this.options = n),
                  (this.scrolledElements = []),
                  (this.referenceElement = t),
                  (this.counters = new Xa()),
                  (this.quoteDepth = 0),
                  !t.ownerDocument)
                )
                  throw new Error(
                    "Cloned element does not have an owner document",
                  );
                this.documentElement = this.cloneNode(
                  t.ownerDocument.documentElement,
                  !1,
                );
              }
              return (
                (e.prototype.toIFrame = function (e, t) {
                  var n = this,
                    A = gs(e, t);
                  if (!A.contentWindow)
                    return Promise.reject("Unable to find iframe window");
                  var o = e.defaultView.pageXOffset,
                    a = e.defaultView.pageYOffset,
                    s = A.contentWindow,
                    c = s.document,
                    u = ys(A).then(function () {
                      return r(n, void 0, void 0, function () {
                        var e, n;
                        return i(this, function (r) {
                          switch (r.label) {
                            case 0:
                              return (
                                this.scrolledElements.forEach(xs),
                                s &&
                                  (s.scrollTo(t.left, t.top),
                                  !/(iPad|iPhone|iPod)/g.test(
                                    navigator.userAgent,
                                  ) ||
                                    (s.scrollY === t.top &&
                                      s.scrollX === t.left) ||
                                    (this.context.logger.warn(
                                      "Unable to restore scroll position for cloned document",
                                    ),
                                    (this.context.windowBounds =
                                      this.context.windowBounds.add(
                                        s.scrollX - t.left,
                                        s.scrollY - t.top,
                                        0,
                                        0,
                                      )))),
                                (e = this.options.onclone),
                                (n = this.clonedReferenceElement),
                                "undefined" === typeof n
                                  ? [
                                      2,
                                      Promise.reject(
                                        "Error finding the " +
                                          this.referenceElement.nodeName +
                                          " in the cloned document",
                                      ),
                                    ]
                                  : c.fonts && c.fonts.ready
                                    ? [4, c.fonts.ready]
                                    : [3, 2]
                              );
                            case 1:
                              (r.sent(), (r.label = 2));
                            case 2:
                              return /(AppleWebKit)/g.test(navigator.userAgent)
                                ? [4, vs(c)]
                                : [3, 4];
                            case 3:
                              (r.sent(), (r.label = 4));
                            case 4:
                              return "function" === typeof e
                                ? [
                                    2,
                                    Promise.resolve()
                                      .then(function () {
                                        return e(c, n);
                                      })
                                      .then(function () {
                                        return A;
                                      }),
                                  ]
                                : [2, A];
                          }
                        });
                      });
                    });
                  return (
                    c.open(),
                    c.write(bs(document.doctype) + "<html></html>"),
                    _s(this.referenceElement.ownerDocument, o, a),
                    c.replaceChild(
                      c.adoptNode(this.documentElement),
                      c.documentElement,
                    ),
                    c.close(),
                    u
                  );
                }),
                (e.prototype.createElementClone = function (e) {
                  if ((IA(e, 2), Pa(e))) return this.createCanvasClone(e);
                  if (Da(e)) return this.createVideoClone(e);
                  if (Ga(e)) return this.createStyleClone(e);
                  var t = e.cloneNode(!1);
                  return (
                    Na(t) &&
                      (Na(e) &&
                        e.currentSrc &&
                        e.currentSrc !== e.src &&
                        ((t.src = e.currentSrc), (t.srcset = "")),
                      "lazy" === t.loading && (t.loading = "eager")),
                    Wa(t) ? this.createCustomElementClone(t) : t
                  );
                }),
                (e.prototype.createCustomElementClone = function (e) {
                  var t = document.createElement("html2canvascustomelement");
                  return (Bs(e.style, t), t);
                }),
                (e.prototype.createStyleClone = function (e) {
                  try {
                    var t = e.sheet;
                    if (t && t.cssRules) {
                      var n = [].slice.call(t.cssRules, 0).reduce(function (
                          e,
                          t,
                        ) {
                          return t && "string" === typeof t.cssText
                            ? e + t.cssText
                            : e;
                        }, ""),
                        r = e.cloneNode(!1);
                      return ((r.textContent = n), r);
                    }
                  } catch (jt) {
                    if (
                      (this.context.logger.error(
                        "Unable to access cssRules property",
                        jt,
                      ),
                      "SecurityError" !== jt.name)
                    )
                      throw jt;
                  }
                  return e.cloneNode(!1);
                }),
                (e.prototype.createCanvasClone = function (e) {
                  var t;
                  if (this.options.inlineImages && e.ownerDocument) {
                    var n = e.ownerDocument.createElement("img");
                    try {
                      return ((n.src = e.toDataURL()), n);
                    } catch (jt) {
                      this.context.logger.info(
                        "Unable to inline canvas contents, canvas is tainted",
                        e,
                      );
                    }
                  }
                  var r = e.cloneNode(!1);
                  try {
                    ((r.width = e.width), (r.height = e.height));
                    var i = e.getContext("2d"),
                      A = r.getContext("2d");
                    if (A)
                      if (!this.options.allowTaint && i)
                        A.putImageData(
                          i.getImageData(0, 0, e.width, e.height),
                          0,
                          0,
                        );
                      else {
                        var o =
                          null !== (t = e.getContext("webgl2")) && void 0 !== t
                            ? t
                            : e.getContext("webgl");
                        if (o) {
                          var a = o.getContextAttributes();
                          !1 ===
                            (null === a || void 0 === a
                              ? void 0
                              : a.preserveDrawingBuffer) &&
                            this.context.logger.warn(
                              "Unable to clone WebGL context as it has preserveDrawingBuffer=false",
                              e,
                            );
                        }
                        A.drawImage(e, 0, 0);
                      }
                    return r;
                  } catch (jt) {
                    this.context.logger.info(
                      "Unable to clone canvas as it is tainted",
                      e,
                    );
                  }
                  return r;
                }),
                (e.prototype.createVideoClone = function (e) {
                  var t = e.ownerDocument.createElement("canvas");
                  ((t.width = e.offsetWidth), (t.height = e.offsetHeight));
                  var n = t.getContext("2d");
                  try {
                    return (
                      n &&
                        (n.drawImage(e, 0, 0, t.width, t.height),
                        this.options.allowTaint ||
                          n.getImageData(0, 0, t.width, t.height)),
                      t
                    );
                  } catch (jt) {
                    this.context.logger.info(
                      "Unable to clone video as it is tainted",
                      e,
                    );
                  }
                  var r = e.ownerDocument.createElement("canvas");
                  return (
                    (r.width = e.offsetWidth),
                    (r.height = e.offsetHeight),
                    r
                  );
                }),
                (e.prototype.appendChildNode = function (e, t, n) {
                  (Fa(t) &&
                    (Va(t) ||
                      t.hasAttribute(fs) ||
                      ("function" === typeof this.options.ignoreElements &&
                        this.options.ignoreElements(t)))) ||
                    (this.options.copyStyles && Fa(t) && Ga(t)) ||
                    e.appendChild(this.cloneNode(t, n));
                }),
                (e.prototype.cloneChildNodes = function (e, t, n) {
                  for (
                    var r = this,
                      i = e.shadowRoot ? e.shadowRoot.firstChild : e.firstChild;
                    i;
                    i = i.nextSibling
                  )
                    if (
                      Fa(i) &&
                      Ka(i) &&
                      "function" === typeof i.assignedNodes
                    ) {
                      var A = i.assignedNodes();
                      A.length &&
                        A.forEach(function (e) {
                          return r.appendChildNode(t, e, n);
                        });
                    } else this.appendChildNode(t, i, n);
                }),
                (e.prototype.cloneNode = function (e, t) {
                  if (Sa(e)) return document.createTextNode(e.data);
                  if (!e.ownerDocument) return e.cloneNode(!1);
                  var n = e.ownerDocument.defaultView;
                  if (n && Fa(e) && (Ta(e) || Ua(e))) {
                    var r = this.createElementClone(e);
                    r.style.transitionProperty = "none";
                    var i = n.getComputedStyle(e),
                      A = n.getComputedStyle(e, ":before"),
                      o = n.getComputedStyle(e, ":after");
                    (this.referenceElement === e &&
                      Ta(r) &&
                      (this.clonedReferenceElement = r),
                      Ra(r) && Ts(r));
                    var a = this.counters.parse(new TA(this.context, i)),
                      s = this.resolvePseudoContent(e, r, A, lo.BEFORE);
                    (Wa(e) && (t = !0),
                      Da(e) || this.cloneChildNodes(e, r, t),
                      s && r.insertBefore(s, r.firstChild));
                    var c = this.resolvePseudoContent(e, r, o, lo.AFTER);
                    return (
                      c && r.appendChild(c),
                      this.counters.pop(a),
                      ((i && (this.options.copyStyles || Ua(e)) && !ka(e)) ||
                        t) &&
                        Bs(i, r),
                      (0 === e.scrollTop && 0 === e.scrollLeft) ||
                        this.scrolledElements.push([
                          r,
                          e.scrollLeft,
                          e.scrollTop,
                        ]),
                      (za(e) || ja(e)) &&
                        (za(r) || ja(r)) &&
                        (r.value = e.value),
                      r
                    );
                  }
                  return e.cloneNode(!1);
                }),
                (e.prototype.resolvePseudoContent = function (e, t, n, r) {
                  var i = this;
                  if (n) {
                    var A = n.content,
                      o = t.ownerDocument;
                    if (
                      o &&
                      A &&
                      "none" !== A &&
                      "-moz-alt-content" !== A &&
                      "none" !== n.display
                    ) {
                      this.counters.parse(new TA(this.context, n));
                      var a = new FA(this.context, n),
                        s = o.createElement("html2canvaspseudoelement");
                      (Bs(n, s),
                        a.content.forEach(function (t) {
                          if (0 === t.type)
                            s.appendChild(o.createTextNode(t.value));
                          else if (22 === t.type) {
                            var n = o.createElement("img");
                            ((n.src = t.value),
                              (n.style.opacity = "1"),
                              s.appendChild(n));
                          } else if (18 === t.type) {
                            if ("attr" === t.name) {
                              var r = t.values.filter(kn);
                              r.length &&
                                s.appendChild(
                                  o.createTextNode(
                                    e.getAttribute(r[0].value) || "",
                                  ),
                                );
                            } else if ("counter" === t.name) {
                              var A = t.values.filter(jn),
                                c = A[0],
                                u = A[1];
                              if (c && kn(c)) {
                                var l = i.counters.getCounterValue(c.value),
                                  h =
                                    u && kn(u)
                                      ? Hi.parse(i.context, u.value)
                                      : 3;
                                s.appendChild(o.createTextNode(hs(l, h, !1)));
                              }
                            } else if ("counters" === t.name) {
                              var f = t.values.filter(jn),
                                d = ((c = f[0]), f[1]);
                              u = f[2];
                              if (c && kn(c)) {
                                var p = i.counters.getCounterValues(c.value),
                                  g =
                                    u && kn(u)
                                      ? Hi.parse(i.context, u.value)
                                      : 3,
                                  m = d && 0 === d.type ? d.value : "",
                                  v = p
                                    .map(function (e) {
                                      return hs(e, g, !1);
                                    })
                                    .join(m);
                                s.appendChild(o.createTextNode(v));
                              }
                            }
                          } else if (20 === t.type)
                            switch (t.value) {
                              case "open-quote":
                                s.appendChild(
                                  o.createTextNode(
                                    _A(a.quotes, i.quoteDepth++, !0),
                                  ),
                                );
                                break;
                              case "close-quote":
                                s.appendChild(
                                  o.createTextNode(
                                    _A(a.quotes, --i.quoteDepth, !1),
                                  ),
                                );
                                break;
                              default:
                                s.appendChild(o.createTextNode(t.value));
                            }
                        }),
                        (s.className = Ms + " " + Ss));
                      var c = r === lo.BEFORE ? " " + Ms : " " + Ss;
                      return (
                        Ua(t)
                          ? (t.className.baseValue += c)
                          : (t.className += c),
                        s
                      );
                    }
                  }
                }),
                (e.destroy = function (e) {
                  return !!e.parentNode && (e.parentNode.removeChild(e), !0);
                }),
                e
              );
            })();
          (function (e) {
            ((e[(e["BEFORE"] = 0)] = "BEFORE"),
              (e[(e["AFTER"] = 1)] = "AFTER"));
          })(lo || (lo = {}));
          var ps,
            gs = function (e, t) {
              var n = e.createElement("iframe");
              return (
                (n.className = "html2canvas-container"),
                (n.style.visibility = "hidden"),
                (n.style.position = "fixed"),
                (n.style.left = "-10000px"),
                (n.style.top = "0px"),
                (n.style.border = "0"),
                (n.width = t.width.toString()),
                (n.height = t.height.toString()),
                (n.scrolling = "no"),
                n.setAttribute(fs, "true"),
                e.body.appendChild(n),
                n
              );
            },
            ms = function (e) {
              return new Promise(function (t) {
                e.complete
                  ? t()
                  : e.src
                    ? ((e.onload = t), (e.onerror = t))
                    : t();
              });
            },
            vs = function (e) {
              return Promise.all([].slice.call(e.images, 0).map(ms));
            },
            ys = function (e) {
              return new Promise(function (t, n) {
                var r = e.contentWindow;
                if (!r) return n("No window assigned for iframe");
                var i = r.document;
                r.onload = e.onload = function () {
                  r.onload = e.onload = null;
                  var n = setInterval(function () {
                    i.body.childNodes.length > 0 &&
                      "complete" === i.readyState &&
                      (clearInterval(n), t(e));
                  }, 50);
                };
              });
            },
            ws = ["all", "d", "content"],
            Bs = function (e, t) {
              for (var n = e.length - 1; n >= 0; n--) {
                var r = e.item(n);
                -1 === ws.indexOf(r) &&
                  t.style.setProperty(r, e.getPropertyValue(r));
              }
              return t;
            },
            bs = function (e) {
              var t = "";
              return (
                e &&
                  ((t += "<!DOCTYPE "),
                  e.name && (t += e.name),
                  e.internalSubset && (t += e.internalSubset),
                  e.publicId && (t += '"' + e.publicId + '"'),
                  e.systemId && (t += '"' + e.systemId + '"'),
                  (t += ">")),
                t
              );
            },
            _s = function (e, t, n) {
              e &&
                e.defaultView &&
                (t !== e.defaultView.pageXOffset ||
                  n !== e.defaultView.pageYOffset) &&
                e.defaultView.scrollTo(t, n);
            },
            xs = function (e) {
              var t = e[0],
                n = e[1],
                r = e[2];
              ((t.scrollLeft = n), (t.scrollTop = r));
            },
            Cs = ":before",
            Es = ":after",
            Ms = "___html2canvas___pseudoelement_before",
            Ss = "___html2canvas___pseudoelement_after",
            Fs =
              '{\n    content: "" !important;\n    display: none !important;\n}',
            Ts = function (e) {
              Us(e, "." + Ms + Cs + Fs + "\n         ." + Ss + Es + Fs);
            },
            Us = function (e, t) {
              var n = e.ownerDocument;
              if (n) {
                var r = n.createElement("style");
                ((r.textContent = t), e.appendChild(r));
              }
            },
            Qs = (function () {
              function e() {}
              return (
                (e.getOrigin = function (t) {
                  var n = e._link;
                  return n
                    ? ((n.href = t),
                      (n.href = n.href),
                      n.protocol + n.hostname + n.port)
                    : "about:blank";
                }),
                (e.isSameOrigin = function (t) {
                  return e.getOrigin(t) === e._origin;
                }),
                (e.setContext = function (t) {
                  ((e._link = t.document.createElement("a")),
                    (e._origin = e.getOrigin(t.location.href)));
                }),
                (e._origin = "about:blank"),
                e
              );
            })(),
            Ls = (function () {
              function e(e, t) {
                ((this.context = e), (this._options = t), (this._cache = {}));
              }
              return (
                (e.prototype.addImage = function (e) {
                  var t = Promise.resolve();
                  return this.has(e)
                    ? t
                    : Ns(e) || Rs(e)
                      ? ((this._cache[e] = this.loadImage(e)).catch(
                          function () {},
                        ),
                        t)
                      : t;
                }),
                (e.prototype.match = function (e) {
                  return this._cache[e];
                }),
                (e.prototype.loadImage = function (e) {
                  return r(this, void 0, void 0, function () {
                    var t,
                      n,
                      r,
                      A,
                      o = this;
                    return i(this, function (i) {
                      switch (i.label) {
                        case 0:
                          return (
                            (t = Qs.isSameOrigin(e)),
                            (n =
                              !Ps(e) &&
                              !0 === this._options.useCORS &&
                              jo.SUPPORT_CORS_IMAGES &&
                              !t),
                            (r =
                              !Ps(e) &&
                              !t &&
                              !Ns(e) &&
                              "string" === typeof this._options.proxy &&
                              jo.SUPPORT_CORS_XHR &&
                              !n),
                            t ||
                            !1 !== this._options.allowTaint ||
                            Ps(e) ||
                            Ns(e) ||
                            r ||
                            n
                              ? ((A = e), r ? [4, this.proxy(A)] : [3, 2])
                              : [2]
                          );
                        case 1:
                          ((A = i.sent()), (i.label = 2));
                        case 2:
                          return (
                            this.context.logger.debug(
                              "Added image " + e.substring(0, 256),
                            ),
                            [
                              4,
                              new Promise(function (e, t) {
                                var r = new Image();
                                ((r.onload = function () {
                                  return e(r);
                                }),
                                  (r.onerror = t),
                                  (Ds(A) || n) && (r.crossOrigin = "anonymous"),
                                  (r.src = A),
                                  !0 === r.complete &&
                                    setTimeout(function () {
                                      return e(r);
                                    }, 500),
                                  o._options.imageTimeout > 0 &&
                                    setTimeout(function () {
                                      return t(
                                        "Timed out (" +
                                          o._options.imageTimeout +
                                          "ms) loading image",
                                      );
                                    }, o._options.imageTimeout));
                              }),
                            ]
                          );
                        case 3:
                          return [2, i.sent()];
                      }
                    });
                  });
                }),
                (e.prototype.has = function (e) {
                  return "undefined" !== typeof this._cache[e];
                }),
                (e.prototype.keys = function () {
                  return Promise.resolve(Object.keys(this._cache));
                }),
                (e.prototype.proxy = function (e) {
                  var t = this,
                    n = this._options.proxy;
                  if (!n) throw new Error("No proxy defined");
                  var r = e.substring(0, 256);
                  return new Promise(function (i, A) {
                    var o = jo.SUPPORT_RESPONSE_TYPE ? "blob" : "text",
                      a = new XMLHttpRequest();
                    ((a.onload = function () {
                      if (200 === a.status)
                        if ("text" === o) i(a.response);
                        else {
                          var e = new FileReader();
                          (e.addEventListener(
                            "load",
                            function () {
                              return i(e.result);
                            },
                            !1,
                          ),
                            e.addEventListener(
                              "error",
                              function (e) {
                                return A(e);
                              },
                              !1,
                            ),
                            e.readAsDataURL(a.response));
                        }
                      else
                        A(
                          "Failed to proxy resource " +
                            r +
                            " with status code " +
                            a.status,
                        );
                    }),
                      (a.onerror = A));
                    var s = n.indexOf("?") > -1 ? "&" : "?";
                    if (
                      (a.open(
                        "GET",
                        "" +
                          n +
                          s +
                          "url=" +
                          encodeURIComponent(e) +
                          "&responseType=" +
                          o,
                      ),
                      "text" !== o &&
                        a instanceof XMLHttpRequest &&
                        (a.responseType = o),
                      t._options.imageTimeout)
                    ) {
                      var c = t._options.imageTimeout;
                      ((a.timeout = c),
                        (a.ontimeout = function () {
                          return A("Timed out (" + c + "ms) proxying " + r);
                        }));
                    }
                    a.send();
                  });
                }),
                e
              );
            })(),
            Is = /^data:image\/svg\+xml/i,
            Hs = /^data:image\/.*;base64,/i,
            Os = /^data:image\/.*/i,
            Rs = function (e) {
              return jo.SUPPORT_SVG_DRAWING || !ks(e);
            },
            Ps = function (e) {
              return Os.test(e);
            },
            Ds = function (e) {
              return Hs.test(e);
            },
            Ns = function (e) {
              return "blob" === e.substr(0, 4);
            },
            ks = function (e) {
              return "svg" === e.substr(-3).toLowerCase() || Is.test(e);
            },
            Gs = (function () {
              function e(e, t) {
                ((this.type = 0), (this.x = e), (this.y = t));
              }
              return (
                (e.prototype.add = function (t, n) {
                  return new e(this.x + t, this.y + n);
                }),
                e
              );
            })(),
            Vs = function (e, t, n) {
              return new Gs(e.x + (t.x - e.x) * n, e.y + (t.y - e.y) * n);
            },
            zs = (function () {
              function e(e, t, n, r) {
                ((this.type = 1),
                  (this.start = e),
                  (this.startControl = t),
                  (this.endControl = n),
                  (this.end = r));
              }
              return (
                (e.prototype.subdivide = function (t, n) {
                  var r = Vs(this.start, this.startControl, t),
                    i = Vs(this.startControl, this.endControl, t),
                    A = Vs(this.endControl, this.end, t),
                    o = Vs(r, i, t),
                    a = Vs(i, A, t),
                    s = Vs(o, a, t);
                  return n
                    ? new e(this.start, r, o, s)
                    : new e(s, a, A, this.end);
                }),
                (e.prototype.add = function (t, n) {
                  return new e(
                    this.start.add(t, n),
                    this.startControl.add(t, n),
                    this.endControl.add(t, n),
                    this.end.add(t, n),
                  );
                }),
                (e.prototype.reverse = function () {
                  return new e(
                    this.end,
                    this.endControl,
                    this.startControl,
                    this.start,
                  );
                }),
                e
              );
            })(),
            js = function (e) {
              return 1 === e.type;
            },
            Ks = (function () {
              function e(e) {
                var t = e.styles,
                  n = e.bounds,
                  r = er(t.borderTopLeftRadius, n.width, n.height),
                  i = r[0],
                  A = r[1],
                  o = er(t.borderTopRightRadius, n.width, n.height),
                  a = o[0],
                  s = o[1],
                  c = er(t.borderBottomRightRadius, n.width, n.height),
                  u = c[0],
                  l = c[1],
                  h = er(t.borderBottomLeftRadius, n.width, n.height),
                  f = h[0],
                  d = h[1],
                  p = [];
                (p.push((i + a) / n.width),
                  p.push((f + u) / n.width),
                  p.push((A + d) / n.height),
                  p.push((s + l) / n.height));
                var g = Math.max.apply(Math, p);
                g > 1 &&
                  ((i /= g),
                  (A /= g),
                  (a /= g),
                  (s /= g),
                  (u /= g),
                  (l /= g),
                  (f /= g),
                  (d /= g));
                var m = n.width - a,
                  v = n.height - l,
                  y = n.width - u,
                  w = n.height - d,
                  B = t.borderTopWidth,
                  b = t.borderRightWidth,
                  _ = t.borderBottomWidth,
                  x = t.borderLeftWidth,
                  C = tr(t.paddingTop, e.bounds.width),
                  E = tr(t.paddingRight, e.bounds.width),
                  M = tr(t.paddingBottom, e.bounds.width),
                  S = tr(t.paddingLeft, e.bounds.width);
                ((this.topLeftBorderDoubleOuterBox =
                  i > 0 || A > 0
                    ? Ws(
                        n.left + x / 3,
                        n.top + B / 3,
                        i - x / 3,
                        A - B / 3,
                        ps.TOP_LEFT,
                      )
                    : new Gs(n.left + x / 3, n.top + B / 3)),
                  (this.topRightBorderDoubleOuterBox =
                    i > 0 || A > 0
                      ? Ws(
                          n.left + m,
                          n.top + B / 3,
                          a - b / 3,
                          s - B / 3,
                          ps.TOP_RIGHT,
                        )
                      : new Gs(n.left + n.width - b / 3, n.top + B / 3)),
                  (this.bottomRightBorderDoubleOuterBox =
                    u > 0 || l > 0
                      ? Ws(
                          n.left + y,
                          n.top + v,
                          u - b / 3,
                          l - _ / 3,
                          ps.BOTTOM_RIGHT,
                        )
                      : new Gs(
                          n.left + n.width - b / 3,
                          n.top + n.height - _ / 3,
                        )),
                  (this.bottomLeftBorderDoubleOuterBox =
                    f > 0 || d > 0
                      ? Ws(
                          n.left + x / 3,
                          n.top + w,
                          f - x / 3,
                          d - _ / 3,
                          ps.BOTTOM_LEFT,
                        )
                      : new Gs(n.left + x / 3, n.top + n.height - _ / 3)),
                  (this.topLeftBorderDoubleInnerBox =
                    i > 0 || A > 0
                      ? Ws(
                          n.left + (2 * x) / 3,
                          n.top + (2 * B) / 3,
                          i - (2 * x) / 3,
                          A - (2 * B) / 3,
                          ps.TOP_LEFT,
                        )
                      : new Gs(n.left + (2 * x) / 3, n.top + (2 * B) / 3)),
                  (this.topRightBorderDoubleInnerBox =
                    i > 0 || A > 0
                      ? Ws(
                          n.left + m,
                          n.top + (2 * B) / 3,
                          a - (2 * b) / 3,
                          s - (2 * B) / 3,
                          ps.TOP_RIGHT,
                        )
                      : new Gs(
                          n.left + n.width - (2 * b) / 3,
                          n.top + (2 * B) / 3,
                        )),
                  (this.bottomRightBorderDoubleInnerBox =
                    u > 0 || l > 0
                      ? Ws(
                          n.left + y,
                          n.top + v,
                          u - (2 * b) / 3,
                          l - (2 * _) / 3,
                          ps.BOTTOM_RIGHT,
                        )
                      : new Gs(
                          n.left + n.width - (2 * b) / 3,
                          n.top + n.height - (2 * _) / 3,
                        )),
                  (this.bottomLeftBorderDoubleInnerBox =
                    f > 0 || d > 0
                      ? Ws(
                          n.left + (2 * x) / 3,
                          n.top + w,
                          f - (2 * x) / 3,
                          d - (2 * _) / 3,
                          ps.BOTTOM_LEFT,
                        )
                      : new Gs(
                          n.left + (2 * x) / 3,
                          n.top + n.height - (2 * _) / 3,
                        )),
                  (this.topLeftBorderStroke =
                    i > 0 || A > 0
                      ? Ws(
                          n.left + x / 2,
                          n.top + B / 2,
                          i - x / 2,
                          A - B / 2,
                          ps.TOP_LEFT,
                        )
                      : new Gs(n.left + x / 2, n.top + B / 2)),
                  (this.topRightBorderStroke =
                    i > 0 || A > 0
                      ? Ws(
                          n.left + m,
                          n.top + B / 2,
                          a - b / 2,
                          s - B / 2,
                          ps.TOP_RIGHT,
                        )
                      : new Gs(n.left + n.width - b / 2, n.top + B / 2)),
                  (this.bottomRightBorderStroke =
                    u > 0 || l > 0
                      ? Ws(
                          n.left + y,
                          n.top + v,
                          u - b / 2,
                          l - _ / 2,
                          ps.BOTTOM_RIGHT,
                        )
                      : new Gs(
                          n.left + n.width - b / 2,
                          n.top + n.height - _ / 2,
                        )),
                  (this.bottomLeftBorderStroke =
                    f > 0 || d > 0
                      ? Ws(
                          n.left + x / 2,
                          n.top + w,
                          f - x / 2,
                          d - _ / 2,
                          ps.BOTTOM_LEFT,
                        )
                      : new Gs(n.left + x / 2, n.top + n.height - _ / 2)),
                  (this.topLeftBorderBox =
                    i > 0 || A > 0
                      ? Ws(n.left, n.top, i, A, ps.TOP_LEFT)
                      : new Gs(n.left, n.top)),
                  (this.topRightBorderBox =
                    a > 0 || s > 0
                      ? Ws(n.left + m, n.top, a, s, ps.TOP_RIGHT)
                      : new Gs(n.left + n.width, n.top)),
                  (this.bottomRightBorderBox =
                    u > 0 || l > 0
                      ? Ws(n.left + y, n.top + v, u, l, ps.BOTTOM_RIGHT)
                      : new Gs(n.left + n.width, n.top + n.height)),
                  (this.bottomLeftBorderBox =
                    f > 0 || d > 0
                      ? Ws(n.left, n.top + w, f, d, ps.BOTTOM_LEFT)
                      : new Gs(n.left, n.top + n.height)),
                  (this.topLeftPaddingBox =
                    i > 0 || A > 0
                      ? Ws(
                          n.left + x,
                          n.top + B,
                          Math.max(0, i - x),
                          Math.max(0, A - B),
                          ps.TOP_LEFT,
                        )
                      : new Gs(n.left + x, n.top + B)),
                  (this.topRightPaddingBox =
                    a > 0 || s > 0
                      ? Ws(
                          n.left + Math.min(m, n.width - b),
                          n.top + B,
                          m > n.width + b ? 0 : Math.max(0, a - b),
                          Math.max(0, s - B),
                          ps.TOP_RIGHT,
                        )
                      : new Gs(n.left + n.width - b, n.top + B)),
                  (this.bottomRightPaddingBox =
                    u > 0 || l > 0
                      ? Ws(
                          n.left + Math.min(y, n.width - x),
                          n.top + Math.min(v, n.height - _),
                          Math.max(0, u - b),
                          Math.max(0, l - _),
                          ps.BOTTOM_RIGHT,
                        )
                      : new Gs(n.left + n.width - b, n.top + n.height - _)),
                  (this.bottomLeftPaddingBox =
                    f > 0 || d > 0
                      ? Ws(
                          n.left + x,
                          n.top + Math.min(w, n.height - _),
                          Math.max(0, f - x),
                          Math.max(0, d - _),
                          ps.BOTTOM_LEFT,
                        )
                      : new Gs(n.left + x, n.top + n.height - _)),
                  (this.topLeftContentBox =
                    i > 0 || A > 0
                      ? Ws(
                          n.left + x + S,
                          n.top + B + C,
                          Math.max(0, i - (x + S)),
                          Math.max(0, A - (B + C)),
                          ps.TOP_LEFT,
                        )
                      : new Gs(n.left + x + S, n.top + B + C)),
                  (this.topRightContentBox =
                    a > 0 || s > 0
                      ? Ws(
                          n.left + Math.min(m, n.width + x + S),
                          n.top + B + C,
                          m > n.width + x + S ? 0 : a - x + S,
                          s - (B + C),
                          ps.TOP_RIGHT,
                        )
                      : new Gs(n.left + n.width - (b + E), n.top + B + C)),
                  (this.bottomRightContentBox =
                    u > 0 || l > 0
                      ? Ws(
                          n.left + Math.min(y, n.width - (x + S)),
                          n.top + Math.min(v, n.height + B + C),
                          Math.max(0, u - (b + E)),
                          l - (_ + M),
                          ps.BOTTOM_RIGHT,
                        )
                      : new Gs(
                          n.left + n.width - (b + E),
                          n.top + n.height - (_ + M),
                        )),
                  (this.bottomLeftContentBox =
                    f > 0 || d > 0
                      ? Ws(
                          n.left + x + S,
                          n.top + w,
                          Math.max(0, f - (x + S)),
                          d - (_ + M),
                          ps.BOTTOM_LEFT,
                        )
                      : new Gs(n.left + x + S, n.top + n.height - (_ + M))));
              }
              return e;
            })();
          (function (e) {
            ((e[(e["TOP_LEFT"] = 0)] = "TOP_LEFT"),
              (e[(e["TOP_RIGHT"] = 1)] = "TOP_RIGHT"),
              (e[(e["BOTTOM_RIGHT"] = 2)] = "BOTTOM_RIGHT"),
              (e[(e["BOTTOM_LEFT"] = 3)] = "BOTTOM_LEFT"));
          })(ps || (ps = {}));
          var Ws = function (e, t, n, r, i) {
              var A = ((Math.sqrt(2) - 1) / 3) * 4,
                o = n * A,
                a = r * A,
                s = e + n,
                c = t + r;
              switch (i) {
                case ps.TOP_LEFT:
                  return new zs(
                    new Gs(e, c),
                    new Gs(e, c - a),
                    new Gs(s - o, t),
                    new Gs(s, t),
                  );
                case ps.TOP_RIGHT:
                  return new zs(
                    new Gs(e, t),
                    new Gs(e + o, t),
                    new Gs(s, c - a),
                    new Gs(s, c),
                  );
                case ps.BOTTOM_RIGHT:
                  return new zs(
                    new Gs(s, t),
                    new Gs(s, t + a),
                    new Gs(e + o, c),
                    new Gs(e, c),
                  );
                case ps.BOTTOM_LEFT:
                default:
                  return new zs(
                    new Gs(s, c),
                    new Gs(s - o, c),
                    new Gs(e, t + a),
                    new Gs(e, t),
                  );
              }
            },
            Xs = function (e) {
              return [
                e.topLeftBorderBox,
                e.topRightBorderBox,
                e.bottomRightBorderBox,
                e.bottomLeftBorderBox,
              ];
            },
            Ys = function (e) {
              return [
                e.topLeftContentBox,
                e.topRightContentBox,
                e.bottomRightContentBox,
                e.bottomLeftContentBox,
              ];
            },
            Js = function (e) {
              return [
                e.topLeftPaddingBox,
                e.topRightPaddingBox,
                e.bottomRightPaddingBox,
                e.bottomLeftPaddingBox,
              ];
            },
            qs = (function () {
              function e(e, t, n) {
                ((this.offsetX = e),
                  (this.offsetY = t),
                  (this.matrix = n),
                  (this.type = 0),
                  (this.target = 6));
              }
              return e;
            })(),
            Zs = (function () {
              function e(e, t) {
                ((this.path = e), (this.target = t), (this.type = 1));
              }
              return e;
            })(),
            $s = (function () {
              function e(e) {
                ((this.opacity = e), (this.type = 2), (this.target = 6));
              }
              return e;
            })(),
            ec = function (e) {
              return 0 === e.type;
            },
            tc = function (e) {
              return 1 === e.type;
            },
            nc = function (e) {
              return 2 === e.type;
            },
            rc = function (e, t) {
              return (
                e.length === t.length &&
                e.some(function (e, n) {
                  return e === t[n];
                })
              );
            },
            ic = function (e, t, n, r, i) {
              return e.map(function (e, A) {
                switch (A) {
                  case 0:
                    return e.add(t, n);
                  case 1:
                    return e.add(t + r, n);
                  case 2:
                    return e.add(t + r, n + i);
                  case 3:
                    return e.add(t, n + i);
                }
                return e;
              });
            },
            Ac = (function () {
              function e(e) {
                ((this.element = e),
                  (this.inlineLevel = []),
                  (this.nonInlineLevel = []),
                  (this.negativeZIndex = []),
                  (this.zeroOrAutoZIndexOrTransformedOrOpacity = []),
                  (this.positiveZIndex = []),
                  (this.nonPositionedFloats = []),
                  (this.nonPositionedInlineLevel = []));
              }
              return e;
            })(),
            oc = (function () {
              function e(e, t) {
                if (
                  ((this.container = e),
                  (this.parent = t),
                  (this.effects = []),
                  (this.curves = new Ks(this.container)),
                  this.container.styles.opacity < 1 &&
                    this.effects.push(new $s(this.container.styles.opacity)),
                  null !== this.container.styles.transform)
                ) {
                  var n =
                      this.container.bounds.left +
                      this.container.styles.transformOrigin[0].number,
                    r =
                      this.container.bounds.top +
                      this.container.styles.transformOrigin[1].number,
                    i = this.container.styles.transform;
                  this.effects.push(new qs(n, r, i));
                }
                if (0 !== this.container.styles.overflowX) {
                  var A = Xs(this.curves),
                    o = Js(this.curves);
                  rc(A, o)
                    ? this.effects.push(new Zs(A, 6))
                    : (this.effects.push(new Zs(A, 2)),
                      this.effects.push(new Zs(o, 4)));
                }
              }
              return (
                (e.prototype.getEffects = function (e) {
                  var t = -1 === [2, 3].indexOf(this.container.styles.position),
                    n = this.parent,
                    r = this.effects.slice(0);
                  while (n) {
                    var i = n.effects.filter(function (e) {
                      return !tc(e);
                    });
                    if (t || 0 !== n.container.styles.position || !n.parent) {
                      if (
                        (r.unshift.apply(r, i),
                        (t =
                          -1 === [2, 3].indexOf(n.container.styles.position)),
                        0 !== n.container.styles.overflowX)
                      ) {
                        var A = Xs(n.curves),
                          o = Js(n.curves);
                        rc(A, o) || r.unshift(new Zs(o, 6));
                      }
                    } else r.unshift.apply(r, i);
                    n = n.parent;
                  }
                  return r.filter(function (t) {
                    return mA(t.target, e);
                  });
                }),
                e
              );
            })(),
            ac = function (e, t, n, r) {
              e.container.elements.forEach(function (i) {
                var A = mA(i.flags, 4),
                  o = mA(i.flags, 2),
                  a = new oc(i, e);
                mA(i.styles.display, 2048) && r.push(a);
                var s = mA(i.flags, 8) ? [] : r;
                if (A || o) {
                  var c = A || i.styles.isPositioned() ? n : t,
                    u = new Ac(a);
                  if (
                    i.styles.isPositioned() ||
                    i.styles.opacity < 1 ||
                    i.styles.isTransformed()
                  ) {
                    var l = i.styles.zIndex.order;
                    if (l < 0) {
                      var h = 0;
                      (c.negativeZIndex.some(function (e, t) {
                        return l > e.element.container.styles.zIndex.order
                          ? ((h = t), !1)
                          : h > 0;
                      }),
                        c.negativeZIndex.splice(h, 0, u));
                    } else if (l > 0) {
                      var f = 0;
                      (c.positiveZIndex.some(function (e, t) {
                        return l >= e.element.container.styles.zIndex.order
                          ? ((f = t + 1), !1)
                          : f > 0;
                      }),
                        c.positiveZIndex.splice(f, 0, u));
                    } else c.zeroOrAutoZIndexOrTransformedOrOpacity.push(u);
                  } else
                    i.styles.isFloating()
                      ? c.nonPositionedFloats.push(u)
                      : c.nonPositionedInlineLevel.push(u);
                  ac(a, u, A ? u : n, s);
                } else
                  (i.styles.isInlineLevel()
                    ? t.inlineLevel.push(a)
                    : t.nonInlineLevel.push(a),
                    ac(a, t, n, s));
                mA(i.flags, 8) && sc(i, s);
              });
            },
            sc = function (e, t) {
              for (
                var n = e instanceof ca ? e.start : 1,
                  r = e instanceof ca && e.reversed,
                  i = 0;
                i < t.length;
                i++
              ) {
                var A = t[i];
                (A.container instanceof sa &&
                  "number" === typeof A.container.value &&
                  0 !== A.container.value &&
                  (n = A.container.value),
                  (A.listValue = hs(n, A.container.styles.listStyleType, !0)),
                  (n += r ? -1 : 1));
              }
            },
            cc = function (e) {
              var t = new oc(e, null),
                n = new Ac(t),
                r = [];
              return (ac(t, n, n, r), sc(t.container, r), n);
            },
            uc = function (e, t) {
              switch (t) {
                case 0:
                  return pc(
                    e.topLeftBorderBox,
                    e.topLeftPaddingBox,
                    e.topRightBorderBox,
                    e.topRightPaddingBox,
                  );
                case 1:
                  return pc(
                    e.topRightBorderBox,
                    e.topRightPaddingBox,
                    e.bottomRightBorderBox,
                    e.bottomRightPaddingBox,
                  );
                case 2:
                  return pc(
                    e.bottomRightBorderBox,
                    e.bottomRightPaddingBox,
                    e.bottomLeftBorderBox,
                    e.bottomLeftPaddingBox,
                  );
                case 3:
                default:
                  return pc(
                    e.bottomLeftBorderBox,
                    e.bottomLeftPaddingBox,
                    e.topLeftBorderBox,
                    e.topLeftPaddingBox,
                  );
              }
            },
            lc = function (e, t) {
              switch (t) {
                case 0:
                  return pc(
                    e.topLeftBorderBox,
                    e.topLeftBorderDoubleOuterBox,
                    e.topRightBorderBox,
                    e.topRightBorderDoubleOuterBox,
                  );
                case 1:
                  return pc(
                    e.topRightBorderBox,
                    e.topRightBorderDoubleOuterBox,
                    e.bottomRightBorderBox,
                    e.bottomRightBorderDoubleOuterBox,
                  );
                case 2:
                  return pc(
                    e.bottomRightBorderBox,
                    e.bottomRightBorderDoubleOuterBox,
                    e.bottomLeftBorderBox,
                    e.bottomLeftBorderDoubleOuterBox,
                  );
                case 3:
                default:
                  return pc(
                    e.bottomLeftBorderBox,
                    e.bottomLeftBorderDoubleOuterBox,
                    e.topLeftBorderBox,
                    e.topLeftBorderDoubleOuterBox,
                  );
              }
            },
            hc = function (e, t) {
              switch (t) {
                case 0:
                  return pc(
                    e.topLeftBorderDoubleInnerBox,
                    e.topLeftPaddingBox,
                    e.topRightBorderDoubleInnerBox,
                    e.topRightPaddingBox,
                  );
                case 1:
                  return pc(
                    e.topRightBorderDoubleInnerBox,
                    e.topRightPaddingBox,
                    e.bottomRightBorderDoubleInnerBox,
                    e.bottomRightPaddingBox,
                  );
                case 2:
                  return pc(
                    e.bottomRightBorderDoubleInnerBox,
                    e.bottomRightPaddingBox,
                    e.bottomLeftBorderDoubleInnerBox,
                    e.bottomLeftPaddingBox,
                  );
                case 3:
                default:
                  return pc(
                    e.bottomLeftBorderDoubleInnerBox,
                    e.bottomLeftPaddingBox,
                    e.topLeftBorderDoubleInnerBox,
                    e.topLeftPaddingBox,
                  );
              }
            },
            fc = function (e, t) {
              switch (t) {
                case 0:
                  return dc(e.topLeftBorderStroke, e.topRightBorderStroke);
                case 1:
                  return dc(e.topRightBorderStroke, e.bottomRightBorderStroke);
                case 2:
                  return dc(
                    e.bottomRightBorderStroke,
                    e.bottomLeftBorderStroke,
                  );
                case 3:
                default:
                  return dc(e.bottomLeftBorderStroke, e.topLeftBorderStroke);
              }
            },
            dc = function (e, t) {
              var n = [];
              return (
                js(e) ? n.push(e.subdivide(0.5, !1)) : n.push(e),
                js(t) ? n.push(t.subdivide(0.5, !0)) : n.push(t),
                n
              );
            },
            pc = function (e, t, n, r) {
              var i = [];
              return (
                js(e) ? i.push(e.subdivide(0.5, !1)) : i.push(e),
                js(n) ? i.push(n.subdivide(0.5, !0)) : i.push(n),
                js(r) ? i.push(r.subdivide(0.5, !0).reverse()) : i.push(r),
                js(t) ? i.push(t.subdivide(0.5, !1).reverse()) : i.push(t),
                i
              );
            },
            gc = function (e) {
              var t = e.bounds,
                n = e.styles;
              return t.add(
                n.borderLeftWidth,
                n.borderTopWidth,
                -(n.borderRightWidth + n.borderLeftWidth),
                -(n.borderTopWidth + n.borderBottomWidth),
              );
            },
            mc = function (e) {
              var t = e.styles,
                n = e.bounds,
                r = tr(t.paddingLeft, n.width),
                i = tr(t.paddingRight, n.width),
                A = tr(t.paddingTop, n.width),
                o = tr(t.paddingBottom, n.width);
              return n.add(
                r + t.borderLeftWidth,
                A + t.borderTopWidth,
                -(t.borderRightWidth + t.borderLeftWidth + r + i),
                -(t.borderTopWidth + t.borderBottomWidth + A + o),
              );
            },
            vc = function (e, t) {
              return 0 === e ? t.bounds : 2 === e ? mc(t) : gc(t);
            },
            yc = function (e, t) {
              return 0 === e ? t.bounds : 2 === e ? mc(t) : gc(t);
            },
            wc = function (e, t, n) {
              var r = vc(xc(e.styles.backgroundOrigin, t), e),
                i = yc(xc(e.styles.backgroundClip, t), e),
                A = _c(xc(e.styles.backgroundSize, t), n, r),
                o = A[0],
                a = A[1],
                s = er(
                  xc(e.styles.backgroundPosition, t),
                  r.width - o,
                  r.height - a,
                ),
                c = Cc(xc(e.styles.backgroundRepeat, t), s, A, r, i),
                u = Math.round(r.left + s[0]),
                l = Math.round(r.top + s[1]);
              return [c, u, l, o, a];
            },
            Bc = function (e) {
              return kn(e) && e.value === Wr.AUTO;
            },
            bc = function (e) {
              return "number" === typeof e;
            },
            _c = function (e, t, n) {
              var r = t[0],
                i = t[1],
                A = t[2],
                o = e[0],
                a = e[1];
              if (!o) return [0, 0];
              if (Yn(o) && a && Yn(a)) return [tr(o, n.width), tr(a, n.height)];
              var s = bc(A);
              if (kn(o) && (o.value === Wr.CONTAIN || o.value === Wr.COVER)) {
                if (bc(A)) {
                  var c = n.width / n.height;
                  return c < A !== (o.value === Wr.COVER)
                    ? [n.width, n.width / A]
                    : [n.height * A, n.height];
                }
                return [n.width, n.height];
              }
              var u = bc(r),
                l = bc(i),
                h = u || l;
              if (Bc(o) && (!a || Bc(a))) {
                if (u && l) return [r, i];
                if (!s && !h) return [n.width, n.height];
                if (h && s) {
                  var f = u ? r : i * A,
                    d = l ? i : r / A;
                  return [f, d];
                }
                var p = u ? r : n.width,
                  g = l ? i : n.height;
                return [p, g];
              }
              if (s) {
                var m = 0,
                  v = 0;
                return (
                  Yn(o) ? (m = tr(o, n.width)) : Yn(a) && (v = tr(a, n.height)),
                  Bc(o) ? (m = v * A) : (a && !Bc(a)) || (v = m / A),
                  [m, v]
                );
              }
              var y = null,
                w = null;
              if (
                (Yn(o)
                  ? (y = tr(o, n.width))
                  : a && Yn(a) && (w = tr(a, n.height)),
                null === y ||
                  (a && !Bc(a)) ||
                  (w = u && l ? (y / r) * i : n.height),
                null !== w && Bc(o) && (y = u && l ? (w / i) * r : n.width),
                null !== y && null !== w)
              )
                return [y, w];
              throw new Error(
                "Unable to calculate background-size for element",
              );
            },
            xc = function (e, t) {
              var n = e[t];
              return "undefined" === typeof n ? e[0] : n;
            },
            Cc = function (e, t, n, r, i) {
              var A = t[0],
                o = t[1],
                a = n[0],
                s = n[1];
              switch (e) {
                case 2:
                  return [
                    new Gs(Math.round(r.left), Math.round(r.top + o)),
                    new Gs(Math.round(r.left + r.width), Math.round(r.top + o)),
                    new Gs(
                      Math.round(r.left + r.width),
                      Math.round(s + r.top + o),
                    ),
                    new Gs(Math.round(r.left), Math.round(s + r.top + o)),
                  ];
                case 3:
                  return [
                    new Gs(Math.round(r.left + A), Math.round(r.top)),
                    new Gs(Math.round(r.left + A + a), Math.round(r.top)),
                    new Gs(
                      Math.round(r.left + A + a),
                      Math.round(r.height + r.top),
                    ),
                    new Gs(
                      Math.round(r.left + A),
                      Math.round(r.height + r.top),
                    ),
                  ];
                case 1:
                  return [
                    new Gs(Math.round(r.left + A), Math.round(r.top + o)),
                    new Gs(Math.round(r.left + A + a), Math.round(r.top + o)),
                    new Gs(
                      Math.round(r.left + A + a),
                      Math.round(r.top + o + s),
                    ),
                    new Gs(Math.round(r.left + A), Math.round(r.top + o + s)),
                  ];
                default:
                  return [
                    new Gs(Math.round(i.left), Math.round(i.top)),
                    new Gs(Math.round(i.left + i.width), Math.round(i.top)),
                    new Gs(
                      Math.round(i.left + i.width),
                      Math.round(i.height + i.top),
                    ),
                    new Gs(Math.round(i.left), Math.round(i.height + i.top)),
                  ];
              }
            },
            Ec =
              "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",
            Mc = "Hidden Text",
            Sc = (function () {
              function e(e) {
                ((this._data = {}), (this._document = e));
              }
              return (
                (e.prototype.parseMetrics = function (e, t) {
                  var n = this._document.createElement("div"),
                    r = this._document.createElement("img"),
                    i = this._document.createElement("span"),
                    A = this._document.body;
                  ((n.style.visibility = "hidden"),
                    (n.style.fontFamily = e),
                    (n.style.fontSize = t),
                    (n.style.margin = "0"),
                    (n.style.padding = "0"),
                    (n.style.whiteSpace = "nowrap"),
                    A.appendChild(n),
                    (r.src = Ec),
                    (r.width = 1),
                    (r.height = 1),
                    (r.style.margin = "0"),
                    (r.style.padding = "0"),
                    (r.style.verticalAlign = "baseline"),
                    (i.style.fontFamily = e),
                    (i.style.fontSize = t),
                    (i.style.margin = "0"),
                    (i.style.padding = "0"),
                    i.appendChild(this._document.createTextNode(Mc)),
                    n.appendChild(i),
                    n.appendChild(r));
                  var o = r.offsetTop - i.offsetTop + 2;
                  (n.removeChild(i),
                    n.appendChild(this._document.createTextNode(Mc)),
                    (n.style.lineHeight = "normal"),
                    (r.style.verticalAlign = "super"));
                  var a = r.offsetTop - n.offsetTop + 2;
                  return (A.removeChild(n), { baseline: o, middle: a });
                }),
                (e.prototype.getMetrics = function (e, t) {
                  var n = e + " " + t;
                  return (
                    "undefined" === typeof this._data[n] &&
                      (this._data[n] = this.parseMetrics(e, t)),
                    this._data[n]
                  );
                }),
                e
              );
            })(),
            Fc = (function () {
              function e(e, t) {
                ((this.context = e), (this.options = t));
              }
              return e;
            })(),
            Tc = 1e4,
            Uc = (function (e) {
              function n(t, n) {
                var r = e.call(this, t, n) || this;
                return (
                  (r._activeEffects = []),
                  (r.canvas = n.canvas
                    ? n.canvas
                    : document.createElement("canvas")),
                  (r.ctx = r.canvas.getContext("2d")),
                  n.canvas ||
                    ((r.canvas.width = Math.floor(n.width * n.scale)),
                    (r.canvas.height = Math.floor(n.height * n.scale)),
                    (r.canvas.style.width = n.width + "px"),
                    (r.canvas.style.height = n.height + "px")),
                  (r.fontMetrics = new Sc(document)),
                  r.ctx.scale(r.options.scale, r.options.scale),
                  r.ctx.translate(-n.x, -n.y),
                  (r.ctx.textBaseline = "bottom"),
                  (r._activeEffects = []),
                  r.context.logger.debug(
                    "Canvas renderer initialized (" +
                      n.width +
                      "x" +
                      n.height +
                      ") with scale " +
                      n.scale,
                  ),
                  r
                );
              }
              return (
                t(n, e),
                (n.prototype.applyEffects = function (e) {
                  var t = this;
                  while (this._activeEffects.length) this.popEffect();
                  e.forEach(function (e) {
                    return t.applyEffect(e);
                  });
                }),
                (n.prototype.applyEffect = function (e) {
                  (this.ctx.save(),
                    nc(e) && (this.ctx.globalAlpha = e.opacity),
                    ec(e) &&
                      (this.ctx.translate(e.offsetX, e.offsetY),
                      this.ctx.transform(
                        e.matrix[0],
                        e.matrix[1],
                        e.matrix[2],
                        e.matrix[3],
                        e.matrix[4],
                        e.matrix[5],
                      ),
                      this.ctx.translate(-e.offsetX, -e.offsetY)),
                    tc(e) && (this.path(e.path), this.ctx.clip()),
                    this._activeEffects.push(e));
                }),
                (n.prototype.popEffect = function () {
                  (this._activeEffects.pop(), this.ctx.restore());
                }),
                (n.prototype.renderStack = function (e) {
                  return r(this, void 0, void 0, function () {
                    var t;
                    return i(this, function (n) {
                      switch (n.label) {
                        case 0:
                          return (
                            (t = e.element.container.styles),
                            t.isVisible()
                              ? [4, this.renderStackContent(e)]
                              : [3, 2]
                          );
                        case 1:
                          (n.sent(), (n.label = 2));
                        case 2:
                          return [2];
                      }
                    });
                  });
                }),
                (n.prototype.renderNode = function (e) {
                  return r(this, void 0, void 0, function () {
                    return i(this, function (t) {
                      switch (t.label) {
                        case 0:
                          return (
                            mA(e.container.flags, 16),
                            e.container.styles.isVisible()
                              ? [4, this.renderNodeBackgroundAndBorders(e)]
                              : [3, 3]
                          );
                        case 1:
                          return (t.sent(), [4, this.renderNodeContent(e)]);
                        case 2:
                          (t.sent(), (t.label = 3));
                        case 3:
                          return [2];
                      }
                    });
                  });
                }),
                (n.prototype.renderTextWithLetterSpacing = function (e, t, n) {
                  var r = this;
                  if (0 === t)
                    this.ctx.fillText(e.text, e.bounds.left, e.bounds.top + n);
                  else {
                    var i = Jo(e.text);
                    i.reduce(function (t, i) {
                      return (
                        r.ctx.fillText(i, t, e.bounds.top + n),
                        t + r.ctx.measureText(i).width
                      );
                    }, e.bounds.left);
                  }
                }),
                (n.prototype.createFontStyle = function (e) {
                  var t = e.fontVariant
                      .filter(function (e) {
                        return "normal" === e || "small-caps" === e;
                      })
                      .join(""),
                    n = Oc(e.fontFamily).join(", "),
                    r = Dn(e.fontSize)
                      ? "" + e.fontSize.number + e.fontSize.unit
                      : e.fontSize.number + "px";
                  return [[e.fontStyle, t, e.fontWeight, r, n].join(" "), n, r];
                }),
                (n.prototype.renderTextNode = function (e, t) {
                  return r(this, void 0, void 0, function () {
                    var n,
                      r,
                      A,
                      o,
                      a,
                      s,
                      c,
                      u,
                      l = this;
                    return i(this, function (i) {
                      return (
                        (n = this.createFontStyle(t)),
                        (r = n[0]),
                        (A = n[1]),
                        (o = n[2]),
                        (this.ctx.font = r),
                        (this.ctx.direction =
                          1 === t.direction ? "rtl" : "ltr"),
                        (this.ctx.textAlign = "left"),
                        (this.ctx.textBaseline = "alphabetic"),
                        (a = this.fontMetrics.getMetrics(A, o)),
                        (s = a.baseline),
                        (c = a.middle),
                        (u = t.paintOrder),
                        e.textBounds.forEach(function (e) {
                          u.forEach(function (n) {
                            switch (n) {
                              case 0:
                                ((l.ctx.fillStyle = hr(t.color)),
                                  l.renderTextWithLetterSpacing(
                                    e,
                                    t.letterSpacing,
                                    s,
                                  ));
                                var r = t.textShadow;
                                (r.length &&
                                  e.text.trim().length &&
                                  (r
                                    .slice(0)
                                    .reverse()
                                    .forEach(function (n) {
                                      ((l.ctx.shadowColor = hr(n.color)),
                                        (l.ctx.shadowOffsetX =
                                          n.offsetX.number * l.options.scale),
                                        (l.ctx.shadowOffsetY =
                                          n.offsetY.number * l.options.scale),
                                        (l.ctx.shadowBlur = n.blur.number),
                                        l.renderTextWithLetterSpacing(
                                          e,
                                          t.letterSpacing,
                                          s,
                                        ));
                                    }),
                                  (l.ctx.shadowColor = ""),
                                  (l.ctx.shadowOffsetX = 0),
                                  (l.ctx.shadowOffsetY = 0),
                                  (l.ctx.shadowBlur = 0)),
                                  t.textDecorationLine.length &&
                                    ((l.ctx.fillStyle = hr(
                                      t.textDecorationColor || t.color,
                                    )),
                                    t.textDecorationLine.forEach(function (t) {
                                      switch (t) {
                                        case 1:
                                          l.ctx.fillRect(
                                            e.bounds.left,
                                            Math.round(e.bounds.top + s),
                                            e.bounds.width,
                                            1,
                                          );
                                          break;
                                        case 2:
                                          l.ctx.fillRect(
                                            e.bounds.left,
                                            Math.round(e.bounds.top),
                                            e.bounds.width,
                                            1,
                                          );
                                          break;
                                        case 3:
                                          l.ctx.fillRect(
                                            e.bounds.left,
                                            Math.ceil(e.bounds.top + c),
                                            e.bounds.width,
                                            1,
                                          );
                                          break;
                                      }
                                    })));
                                break;
                              case 1:
                                (t.webkitTextStrokeWidth &&
                                  e.text.trim().length &&
                                  ((l.ctx.strokeStyle = hr(
                                    t.webkitTextStrokeColor,
                                  )),
                                  (l.ctx.lineWidth = t.webkitTextStrokeWidth),
                                  (l.ctx.lineJoin = window.chrome
                                    ? "miter"
                                    : "round"),
                                  l.ctx.strokeText(
                                    e.text,
                                    e.bounds.left,
                                    e.bounds.top + s,
                                  )),
                                  (l.ctx.strokeStyle = ""),
                                  (l.ctx.lineWidth = 0),
                                  (l.ctx.lineJoin = "miter"));
                                break;
                            }
                          });
                        }),
                        [2]
                      );
                    });
                  });
                }),
                (n.prototype.renderReplacedElement = function (e, t, n) {
                  if (n && e.intrinsicWidth > 0 && e.intrinsicHeight > 0) {
                    var r = mc(e),
                      i = Js(t);
                    (this.path(i),
                      this.ctx.save(),
                      this.ctx.clip(),
                      this.ctx.drawImage(
                        n,
                        0,
                        0,
                        e.intrinsicWidth,
                        e.intrinsicHeight,
                        r.left,
                        r.top,
                        r.width,
                        r.height,
                      ),
                      this.ctx.restore());
                  }
                }),
                (n.prototype.renderNodeContent = function (e) {
                  return r(this, void 0, void 0, function () {
                    var t, r, A, a, s, c, u, l, h, f, d, p, g, m, v, y, w, B, b;
                    return i(this, function (i) {
                      switch (i.label) {
                        case 0:
                          (this.applyEffects(e.getEffects(4)),
                            (t = e.container),
                            (r = e.curves),
                            (A = t.styles),
                            (a = 0),
                            (s = t.textNodes),
                            (i.label = 1));
                        case 1:
                          return a < s.length
                            ? ((c = s[a]), [4, this.renderTextNode(c, A)])
                            : [3, 4];
                        case 2:
                          (i.sent(), (i.label = 3));
                        case 3:
                          return (a++, [3, 1]);
                        case 4:
                          if (!(t instanceof Aa)) return [3, 8];
                          i.label = 5;
                        case 5:
                          return (
                            i.trys.push([5, 7, , 8]),
                            [4, this.context.cache.match(t.src)]
                          );
                        case 6:
                          return (
                            (y = i.sent()),
                            this.renderReplacedElement(t, r, y),
                            [3, 8]
                          );
                        case 7:
                          return (
                            i.sent(),
                            this.context.logger.error(
                              "Error loading image " + t.src,
                            ),
                            [3, 8]
                          );
                        case 8:
                          if (
                            (t instanceof oa &&
                              this.renderReplacedElement(t, r, t.canvas),
                            !(t instanceof aa))
                          )
                            return [3, 12];
                          i.label = 9;
                        case 9:
                          return (
                            i.trys.push([9, 11, , 12]),
                            [4, this.context.cache.match(t.svg)]
                          );
                        case 10:
                          return (
                            (y = i.sent()),
                            this.renderReplacedElement(t, r, y),
                            [3, 12]
                          );
                        case 11:
                          return (
                            i.sent(),
                            this.context.logger.error(
                              "Error loading svg " + t.svg.substring(0, 255),
                            ),
                            [3, 12]
                          );
                        case 12:
                          return t instanceof Ba && t.tree
                            ? ((u = new n(this.context, {
                                scale: this.options.scale,
                                backgroundColor: t.backgroundColor,
                                x: 0,
                                y: 0,
                                width: t.width,
                                height: t.height,
                              })),
                              [4, u.render(t.tree)])
                            : [3, 14];
                        case 13:
                          ((l = i.sent()),
                            t.width &&
                              t.height &&
                              this.ctx.drawImage(
                                l,
                                0,
                                0,
                                t.width,
                                t.height,
                                t.bounds.left,
                                t.bounds.top,
                                t.bounds.width,
                                t.bounds.height,
                              ),
                            (i.label = 14));
                        case 14:
                          if (
                            (t instanceof va &&
                              ((h = Math.min(t.bounds.width, t.bounds.height)),
                              t.type === da
                                ? t.checked &&
                                  (this.ctx.save(),
                                  this.path([
                                    new Gs(
                                      t.bounds.left + 0.39363 * h,
                                      t.bounds.top + 0.79 * h,
                                    ),
                                    new Gs(
                                      t.bounds.left + 0.16 * h,
                                      t.bounds.top + 0.5549 * h,
                                    ),
                                    new Gs(
                                      t.bounds.left + 0.27347 * h,
                                      t.bounds.top + 0.44071 * h,
                                    ),
                                    new Gs(
                                      t.bounds.left + 0.39694 * h,
                                      t.bounds.top + 0.5649 * h,
                                    ),
                                    new Gs(
                                      t.bounds.left + 0.72983 * h,
                                      t.bounds.top + 0.23 * h,
                                    ),
                                    new Gs(
                                      t.bounds.left + 0.84 * h,
                                      t.bounds.top + 0.34085 * h,
                                    ),
                                    new Gs(
                                      t.bounds.left + 0.39363 * h,
                                      t.bounds.top + 0.79 * h,
                                    ),
                                  ]),
                                  (this.ctx.fillStyle = hr(ma)),
                                  this.ctx.fill(),
                                  this.ctx.restore())
                                : t.type === pa &&
                                  t.checked &&
                                  (this.ctx.save(),
                                  this.ctx.beginPath(),
                                  this.ctx.arc(
                                    t.bounds.left + h / 2,
                                    t.bounds.top + h / 2,
                                    h / 4,
                                    0,
                                    2 * Math.PI,
                                    !0,
                                  ),
                                  (this.ctx.fillStyle = hr(ma)),
                                  this.ctx.fill(),
                                  this.ctx.restore())),
                            Qc(t) && t.value.length)
                          ) {
                            switch (
                              ((f = this.createFontStyle(A)),
                              (B = f[0]),
                              (d = f[1]),
                              (p = this.fontMetrics.getMetrics(B, d).baseline),
                              (this.ctx.font = B),
                              (this.ctx.fillStyle = hr(A.color)),
                              (this.ctx.textBaseline = "alphabetic"),
                              (this.ctx.textAlign = Ic(t.styles.textAlign)),
                              (b = mc(t)),
                              (g = 0),
                              t.styles.textAlign)
                            ) {
                              case 1:
                                g += b.width / 2;
                                break;
                              case 2:
                                g += b.width;
                                break;
                            }
                            ((m = b.add(g, 0, 0, -b.height / 2 + 1)),
                              this.ctx.save(),
                              this.path([
                                new Gs(b.left, b.top),
                                new Gs(b.left + b.width, b.top),
                                new Gs(b.left + b.width, b.top + b.height),
                                new Gs(b.left, b.top + b.height),
                              ]),
                              this.ctx.clip(),
                              this.renderTextWithLetterSpacing(
                                new Ko(t.value, m),
                                A.letterSpacing,
                                p,
                              ),
                              this.ctx.restore(),
                              (this.ctx.textBaseline = "alphabetic"),
                              (this.ctx.textAlign = "left"));
                          }
                          if (!mA(t.styles.display, 2048)) return [3, 20];
                          if (null === t.styles.listStyleImage) return [3, 19];
                          if (((v = t.styles.listStyleImage), 0 !== v.type))
                            return [3, 18];
                          ((y = void 0), (w = v.url), (i.label = 15));
                        case 15:
                          return (
                            i.trys.push([15, 17, , 18]),
                            [4, this.context.cache.match(w)]
                          );
                        case 16:
                          return (
                            (y = i.sent()),
                            this.ctx.drawImage(
                              y,
                              t.bounds.left - (y.width + 10),
                              t.bounds.top,
                            ),
                            [3, 18]
                          );
                        case 17:
                          return (
                            i.sent(),
                            this.context.logger.error(
                              "Error loading list-style-image " + w,
                            ),
                            [3, 18]
                          );
                        case 18:
                          return [3, 20];
                        case 19:
                          (e.listValue &&
                            -1 !== t.styles.listStyleType &&
                            ((B = this.createFontStyle(A)[0]),
                            (this.ctx.font = B),
                            (this.ctx.fillStyle = hr(A.color)),
                            (this.ctx.textBaseline = "middle"),
                            (this.ctx.textAlign = "right"),
                            (b = new o(
                              t.bounds.left,
                              t.bounds.top +
                                tr(t.styles.paddingTop, t.bounds.width),
                              t.bounds.width,
                              Qi(A.lineHeight, A.fontSize.number) / 2 + 1,
                            )),
                            this.renderTextWithLetterSpacing(
                              new Ko(e.listValue, b),
                              A.letterSpacing,
                              Qi(A.lineHeight, A.fontSize.number) / 2 + 2,
                            ),
                            (this.ctx.textBaseline = "bottom"),
                            (this.ctx.textAlign = "left")),
                            (i.label = 20));
                        case 20:
                          return [2];
                      }
                    });
                  });
                }),
                (n.prototype.renderStackContent = function (e) {
                  return r(this, void 0, void 0, function () {
                    var t, n, r, A, o, a, s, c, u, l, h, f, d, p, g;
                    return i(this, function (i) {
                      switch (i.label) {
                        case 0:
                          return (
                            mA(e.element.container.flags, 16),
                            [4, this.renderNodeBackgroundAndBorders(e.element)]
                          );
                        case 1:
                          (i.sent(),
                            (t = 0),
                            (n = e.negativeZIndex),
                            (i.label = 2));
                        case 2:
                          return t < n.length
                            ? ((g = n[t]), [4, this.renderStack(g)])
                            : [3, 5];
                        case 3:
                          (i.sent(), (i.label = 4));
                        case 4:
                          return (t++, [3, 2]);
                        case 5:
                          return [4, this.renderNodeContent(e.element)];
                        case 6:
                          (i.sent(),
                            (r = 0),
                            (A = e.nonInlineLevel),
                            (i.label = 7));
                        case 7:
                          return r < A.length
                            ? ((g = A[r]), [4, this.renderNode(g)])
                            : [3, 10];
                        case 8:
                          (i.sent(), (i.label = 9));
                        case 9:
                          return (r++, [3, 7]);
                        case 10:
                          ((o = 0),
                            (a = e.nonPositionedFloats),
                            (i.label = 11));
                        case 11:
                          return o < a.length
                            ? ((g = a[o]), [4, this.renderStack(g)])
                            : [3, 14];
                        case 12:
                          (i.sent(), (i.label = 13));
                        case 13:
                          return (o++, [3, 11]);
                        case 14:
                          ((s = 0),
                            (c = e.nonPositionedInlineLevel),
                            (i.label = 15));
                        case 15:
                          return s < c.length
                            ? ((g = c[s]), [4, this.renderStack(g)])
                            : [3, 18];
                        case 16:
                          (i.sent(), (i.label = 17));
                        case 17:
                          return (s++, [3, 15]);
                        case 18:
                          ((u = 0), (l = e.inlineLevel), (i.label = 19));
                        case 19:
                          return u < l.length
                            ? ((g = l[u]), [4, this.renderNode(g)])
                            : [3, 22];
                        case 20:
                          (i.sent(), (i.label = 21));
                        case 21:
                          return (u++, [3, 19]);
                        case 22:
                          ((h = 0),
                            (f = e.zeroOrAutoZIndexOrTransformedOrOpacity),
                            (i.label = 23));
                        case 23:
                          return h < f.length
                            ? ((g = f[h]), [4, this.renderStack(g)])
                            : [3, 26];
                        case 24:
                          (i.sent(), (i.label = 25));
                        case 25:
                          return (h++, [3, 23]);
                        case 26:
                          ((d = 0), (p = e.positiveZIndex), (i.label = 27));
                        case 27:
                          return d < p.length
                            ? ((g = p[d]), [4, this.renderStack(g)])
                            : [3, 30];
                        case 28:
                          (i.sent(), (i.label = 29));
                        case 29:
                          return (d++, [3, 27]);
                        case 30:
                          return [2];
                      }
                    });
                  });
                }),
                (n.prototype.mask = function (e) {
                  (this.ctx.beginPath(),
                    this.ctx.moveTo(0, 0),
                    this.ctx.lineTo(this.canvas.width, 0),
                    this.ctx.lineTo(this.canvas.width, this.canvas.height),
                    this.ctx.lineTo(0, this.canvas.height),
                    this.ctx.lineTo(0, 0),
                    this.formatPath(e.slice(0).reverse()),
                    this.ctx.closePath());
                }),
                (n.prototype.path = function (e) {
                  (this.ctx.beginPath(),
                    this.formatPath(e),
                    this.ctx.closePath());
                }),
                (n.prototype.formatPath = function (e) {
                  var t = this;
                  e.forEach(function (e, n) {
                    var r = js(e) ? e.start : e;
                    (0 === n ? t.ctx.moveTo(r.x, r.y) : t.ctx.lineTo(r.x, r.y),
                      js(e) &&
                        t.ctx.bezierCurveTo(
                          e.startControl.x,
                          e.startControl.y,
                          e.endControl.x,
                          e.endControl.y,
                          e.end.x,
                          e.end.y,
                        ));
                  });
                }),
                (n.prototype.renderRepeat = function (e, t, n, r) {
                  (this.path(e),
                    (this.ctx.fillStyle = t),
                    this.ctx.translate(n, r),
                    this.ctx.fill(),
                    this.ctx.translate(-n, -r));
                }),
                (n.prototype.resizeImage = function (e, t, n) {
                  var r;
                  if (e.width === t && e.height === n) return e;
                  var i =
                      null !== (r = this.canvas.ownerDocument) && void 0 !== r
                        ? r
                        : document,
                    A = i.createElement("canvas");
                  ((A.width = Math.max(1, t)), (A.height = Math.max(1, n)));
                  var o = A.getContext("2d");
                  return (
                    o.drawImage(e, 0, 0, e.width, e.height, 0, 0, t, n),
                    A
                  );
                }),
                (n.prototype.renderBackgroundImage = function (e) {
                  return r(this, void 0, void 0, function () {
                    var t, n, r, A, o, a;
                    return i(this, function (s) {
                      switch (s.label) {
                        case 0:
                          ((t = e.styles.backgroundImage.length - 1),
                            (n = function (n) {
                              var A,
                                o,
                                a,
                                s,
                                c,
                                u,
                                l,
                                h,
                                f,
                                d,
                                p,
                                g,
                                m,
                                v,
                                y,
                                w,
                                B,
                                b,
                                _,
                                x,
                                C,
                                E,
                                M,
                                S,
                                F,
                                T,
                                U,
                                Q,
                                L,
                                I,
                                H;
                              return i(this, function (i) {
                                switch (i.label) {
                                  case 0:
                                    if (0 !== n.type) return [3, 5];
                                    ((A = void 0), (o = n.url), (i.label = 1));
                                  case 1:
                                    return (
                                      i.trys.push([1, 3, , 4]),
                                      [4, r.context.cache.match(o)]
                                    );
                                  case 2:
                                    return ((A = i.sent()), [3, 4]);
                                  case 3:
                                    return (
                                      i.sent(),
                                      r.context.logger.error(
                                        "Error loading background-image " + o,
                                      ),
                                      [3, 4]
                                    );
                                  case 4:
                                    return (
                                      A &&
                                        ((a = wc(e, t, [
                                          A.width,
                                          A.height,
                                          A.width / A.height,
                                        ])),
                                        (w = a[0]),
                                        (E = a[1]),
                                        (M = a[2]),
                                        (_ = a[3]),
                                        (x = a[4]),
                                        (v = r.ctx.createPattern(
                                          r.resizeImage(A, _, x),
                                          "repeat",
                                        )),
                                        r.renderRepeat(w, v, E, M)),
                                      [3, 6]
                                    );
                                  case 5:
                                    (Vr(n)
                                      ? ((s = wc(e, t, [null, null, null])),
                                        (w = s[0]),
                                        (E = s[1]),
                                        (M = s[2]),
                                        (_ = s[3]),
                                        (x = s[4]),
                                        (c = Er(n.angle, _, x)),
                                        (u = c[0]),
                                        (l = c[1]),
                                        (h = c[2]),
                                        (f = c[3]),
                                        (d = c[4]),
                                        (p = document.createElement("canvas")),
                                        (p.width = _),
                                        (p.height = x),
                                        (g = p.getContext("2d")),
                                        (m = g.createLinearGradient(
                                          l,
                                          f,
                                          h,
                                          d,
                                        )),
                                        xr(n.stops, u).forEach(function (e) {
                                          return m.addColorStop(
                                            e.stop,
                                            hr(e.color),
                                          );
                                        }),
                                        (g.fillStyle = m),
                                        g.fillRect(0, 0, _, x),
                                        _ > 0 &&
                                          x > 0 &&
                                          ((v = r.ctx.createPattern(
                                            p,
                                            "repeat",
                                          )),
                                          r.renderRepeat(w, v, E, M)))
                                      : zr(n) &&
                                        ((y = wc(e, t, [null, null, null])),
                                        (w = y[0]),
                                        (B = y[1]),
                                        (b = y[2]),
                                        (_ = y[3]),
                                        (x = y[4]),
                                        (C =
                                          0 === n.position.length
                                            ? [Zn]
                                            : n.position),
                                        (E = tr(C[0], _)),
                                        (M = tr(C[C.length - 1], x)),
                                        (S = Fr(n, E, M, _, x)),
                                        (F = S[0]),
                                        (T = S[1]),
                                        F > 0 &&
                                          T > 0 &&
                                          ((U = r.ctx.createRadialGradient(
                                            B + E,
                                            b + M,
                                            0,
                                            B + E,
                                            b + M,
                                            F,
                                          )),
                                          xr(n.stops, 2 * F).forEach(
                                            function (e) {
                                              return U.addColorStop(
                                                e.stop,
                                                hr(e.color),
                                              );
                                            },
                                          ),
                                          r.path(w),
                                          (r.ctx.fillStyle = U),
                                          F !== T
                                            ? ((Q =
                                                e.bounds.left +
                                                0.5 * e.bounds.width),
                                              (L =
                                                e.bounds.top +
                                                0.5 * e.bounds.height),
                                              (I = T / F),
                                              (H = 1 / I),
                                              r.ctx.save(),
                                              r.ctx.translate(Q, L),
                                              r.ctx.transform(1, 0, 0, I, 0, 0),
                                              r.ctx.translate(-Q, -L),
                                              r.ctx.fillRect(
                                                B,
                                                H * (b - L) + L,
                                                _,
                                                x * H,
                                              ),
                                              r.ctx.restore())
                                            : r.ctx.fill())),
                                      (i.label = 6));
                                  case 6:
                                    return (t--, [2]);
                                }
                              });
                            }),
                            (r = this),
                            (A = 0),
                            (o = e.styles.backgroundImage.slice(0).reverse()),
                            (s.label = 1));
                        case 1:
                          return A < o.length
                            ? ((a = o[A]), [5, n(a)])
                            : [3, 4];
                        case 2:
                          (s.sent(), (s.label = 3));
                        case 3:
                          return (A++, [3, 1]);
                        case 4:
                          return [2];
                      }
                    });
                  });
                }),
                (n.prototype.renderSolidBorder = function (e, t, n) {
                  return r(this, void 0, void 0, function () {
                    return i(this, function (r) {
                      return (
                        this.path(uc(n, t)),
                        (this.ctx.fillStyle = hr(e)),
                        this.ctx.fill(),
                        [2]
                      );
                    });
                  });
                }),
                (n.prototype.renderDoubleBorder = function (e, t, n, A) {
                  return r(this, void 0, void 0, function () {
                    var r, o;
                    return i(this, function (i) {
                      switch (i.label) {
                        case 0:
                          return t < 3
                            ? [4, this.renderSolidBorder(e, n, A)]
                            : [3, 2];
                        case 1:
                          return (i.sent(), [2]);
                        case 2:
                          return (
                            (r = lc(A, n)),
                            this.path(r),
                            (this.ctx.fillStyle = hr(e)),
                            this.ctx.fill(),
                            (o = hc(A, n)),
                            this.path(o),
                            this.ctx.fill(),
                            [2]
                          );
                      }
                    });
                  });
                }),
                (n.prototype.renderNodeBackgroundAndBorders = function (e) {
                  return r(this, void 0, void 0, function () {
                    var t,
                      n,
                      r,
                      A,
                      o,
                      a,
                      s,
                      c,
                      u = this;
                    return i(this, function (i) {
                      switch (i.label) {
                        case 0:
                          return (
                            this.applyEffects(e.getEffects(2)),
                            (t = e.container.styles),
                            (n =
                              !lr(t.backgroundColor) ||
                              t.backgroundImage.length),
                            (r = [
                              {
                                style: t.borderTopStyle,
                                color: t.borderTopColor,
                                width: t.borderTopWidth,
                              },
                              {
                                style: t.borderRightStyle,
                                color: t.borderRightColor,
                                width: t.borderRightWidth,
                              },
                              {
                                style: t.borderBottomStyle,
                                color: t.borderBottomColor,
                                width: t.borderBottomWidth,
                              },
                              {
                                style: t.borderLeftStyle,
                                color: t.borderLeftColor,
                                width: t.borderLeftWidth,
                              },
                            ]),
                            (A = Lc(xc(t.backgroundClip, 0), e.curves)),
                            n || t.boxShadow.length
                              ? (this.ctx.save(),
                                this.path(A),
                                this.ctx.clip(),
                                lr(t.backgroundColor) ||
                                  ((this.ctx.fillStyle = hr(t.backgroundColor)),
                                  this.ctx.fill()),
                                [4, this.renderBackgroundImage(e.container)])
                              : [3, 2]
                          );
                        case 1:
                          (i.sent(),
                            this.ctx.restore(),
                            t.boxShadow
                              .slice(0)
                              .reverse()
                              .forEach(function (t) {
                                u.ctx.save();
                                var n = Xs(e.curves),
                                  r = t.inset ? 0 : Tc,
                                  i = ic(
                                    n,
                                    -r + (t.inset ? 1 : -1) * t.spread.number,
                                    (t.inset ? 1 : -1) * t.spread.number,
                                    t.spread.number * (t.inset ? -2 : 2),
                                    t.spread.number * (t.inset ? -2 : 2),
                                  );
                                (t.inset
                                  ? (u.path(n), u.ctx.clip(), u.mask(i))
                                  : (u.mask(n), u.ctx.clip(), u.path(i)),
                                  (u.ctx.shadowOffsetX = t.offsetX.number + r),
                                  (u.ctx.shadowOffsetY = t.offsetY.number),
                                  (u.ctx.shadowColor = hr(t.color)),
                                  (u.ctx.shadowBlur = t.blur.number),
                                  (u.ctx.fillStyle = t.inset
                                    ? hr(t.color)
                                    : "rgba(0,0,0,1)"),
                                  u.ctx.fill(),
                                  u.ctx.restore());
                              }),
                            (i.label = 2));
                        case 2:
                          ((o = 0), (a = 0), (s = r), (i.label = 3));
                        case 3:
                          return a < s.length
                            ? ((c = s[a]),
                              0 !== c.style && !lr(c.color) && c.width > 0
                                ? 2 !== c.style
                                  ? [3, 5]
                                  : [
                                      4,
                                      this.renderDashedDottedBorder(
                                        c.color,
                                        c.width,
                                        o,
                                        e.curves,
                                        2,
                                      ),
                                    ]
                                : [3, 11])
                            : [3, 13];
                        case 4:
                          return (i.sent(), [3, 11]);
                        case 5:
                          return 3 !== c.style
                            ? [3, 7]
                            : [
                                4,
                                this.renderDashedDottedBorder(
                                  c.color,
                                  c.width,
                                  o,
                                  e.curves,
                                  3,
                                ),
                              ];
                        case 6:
                          return (i.sent(), [3, 11]);
                        case 7:
                          return 4 !== c.style
                            ? [3, 9]
                            : [
                                4,
                                this.renderDoubleBorder(
                                  c.color,
                                  c.width,
                                  o,
                                  e.curves,
                                ),
                              ];
                        case 8:
                          return (i.sent(), [3, 11]);
                        case 9:
                          return [
                            4,
                            this.renderSolidBorder(c.color, o, e.curves),
                          ];
                        case 10:
                          (i.sent(), (i.label = 11));
                        case 11:
                          (o++, (i.label = 12));
                        case 12:
                          return (a++, [3, 3]);
                        case 13:
                          return [2];
                      }
                    });
                  });
                }),
                (n.prototype.renderDashedDottedBorder = function (
                  e,
                  t,
                  n,
                  A,
                  o,
                ) {
                  return r(this, void 0, void 0, function () {
                    var r, a, s, c, u, l, h, f, d, p, g, m, v, y, w, B;
                    return i(this, function (i) {
                      return (
                        this.ctx.save(),
                        (r = fc(A, n)),
                        (a = uc(A, n)),
                        2 === o && (this.path(a), this.ctx.clip()),
                        js(a[0])
                          ? ((s = a[0].start.x), (c = a[0].start.y))
                          : ((s = a[0].x), (c = a[0].y)),
                        js(a[1])
                          ? ((u = a[1].end.x), (l = a[1].end.y))
                          : ((u = a[1].x), (l = a[1].y)),
                        (h =
                          0 === n || 2 === n
                            ? Math.abs(s - u)
                            : Math.abs(c - l)),
                        this.ctx.beginPath(),
                        3 === o
                          ? this.formatPath(r)
                          : this.formatPath(a.slice(0, 2)),
                        (f = t < 3 ? 3 * t : 2 * t),
                        (d = t < 3 ? 2 * t : t),
                        3 === o && ((f = t), (d = t)),
                        (p = !0),
                        h <= 2 * f
                          ? (p = !1)
                          : h <= 2 * f + d
                            ? ((g = h / (2 * f + d)), (f *= g), (d *= g))
                            : ((m = Math.floor((h + d) / (f + d))),
                              (v = (h - m * f) / (m - 1)),
                              (y = (h - (m + 1) * f) / m),
                              (d =
                                y <= 0 || Math.abs(d - v) < Math.abs(d - y)
                                  ? v
                                  : y)),
                        p &&
                          (3 === o
                            ? this.ctx.setLineDash([0, f + d])
                            : this.ctx.setLineDash([f, d])),
                        3 === o
                          ? ((this.ctx.lineCap = "round"),
                            (this.ctx.lineWidth = t))
                          : (this.ctx.lineWidth = 2 * t + 1.1),
                        (this.ctx.strokeStyle = hr(e)),
                        this.ctx.stroke(),
                        this.ctx.setLineDash([]),
                        2 === o &&
                          (js(a[0]) &&
                            ((w = a[3]),
                            (B = a[0]),
                            this.ctx.beginPath(),
                            this.formatPath([
                              new Gs(w.end.x, w.end.y),
                              new Gs(B.start.x, B.start.y),
                            ]),
                            this.ctx.stroke()),
                          js(a[1]) &&
                            ((w = a[1]),
                            (B = a[2]),
                            this.ctx.beginPath(),
                            this.formatPath([
                              new Gs(w.end.x, w.end.y),
                              new Gs(B.start.x, B.start.y),
                            ]),
                            this.ctx.stroke())),
                        this.ctx.restore(),
                        [2]
                      );
                    });
                  });
                }),
                (n.prototype.render = function (e) {
                  return r(this, void 0, void 0, function () {
                    var t;
                    return i(this, function (n) {
                      switch (n.label) {
                        case 0:
                          return (
                            this.options.backgroundColor &&
                              ((this.ctx.fillStyle = hr(
                                this.options.backgroundColor,
                              )),
                              this.ctx.fillRect(
                                this.options.x,
                                this.options.y,
                                this.options.width,
                                this.options.height,
                              )),
                            (t = cc(e)),
                            [4, this.renderStack(t)]
                          );
                        case 1:
                          return (
                            n.sent(),
                            this.applyEffects([]),
                            [2, this.canvas]
                          );
                      }
                    });
                  });
                }),
                n
              );
            })(Fc),
            Qc = function (e) {
              return (
                e instanceof wa ||
                e instanceof ya ||
                (e instanceof va && e.type !== pa && e.type !== da)
              );
            },
            Lc = function (e, t) {
              switch (e) {
                case 0:
                  return Xs(t);
                case 2:
                  return Ys(t);
                case 1:
                default:
                  return Js(t);
              }
            },
            Ic = function (e) {
              switch (e) {
                case 1:
                  return "center";
                case 2:
                  return "right";
                case 0:
                default:
                  return "left";
              }
            },
            Hc = ["-apple-system", "system-ui"],
            Oc = function (e) {
              return /iPhone OS 15_(0|1)/.test(window.navigator.userAgent)
                ? e.filter(function (e) {
                    return -1 === Hc.indexOf(e);
                  })
                : e;
            },
            Rc = (function (e) {
              function n(t, n) {
                var r = e.call(this, t, n) || this;
                return (
                  (r.canvas = n.canvas
                    ? n.canvas
                    : document.createElement("canvas")),
                  (r.ctx = r.canvas.getContext("2d")),
                  (r.options = n),
                  (r.canvas.width = Math.floor(n.width * n.scale)),
                  (r.canvas.height = Math.floor(n.height * n.scale)),
                  (r.canvas.style.width = n.width + "px"),
                  (r.canvas.style.height = n.height + "px"),
                  r.ctx.scale(r.options.scale, r.options.scale),
                  r.ctx.translate(-n.x, -n.y),
                  r.context.logger.debug(
                    "EXPERIMENTAL ForeignObject renderer initialized (" +
                      n.width +
                      "x" +
                      n.height +
                      " at " +
                      n.x +
                      "," +
                      n.y +
                      ") with scale " +
                      n.scale,
                  ),
                  r
                );
              }
              return (
                t(n, e),
                (n.prototype.render = function (e) {
                  return r(this, void 0, void 0, function () {
                    var t, n;
                    return i(this, function (r) {
                      switch (r.label) {
                        case 0:
                          return (
                            (t = Vo(
                              this.options.width * this.options.scale,
                              this.options.height * this.options.scale,
                              this.options.scale,
                              this.options.scale,
                              e,
                            )),
                            [4, Pc(t)]
                          );
                        case 1:
                          return (
                            (n = r.sent()),
                            this.options.backgroundColor &&
                              ((this.ctx.fillStyle = hr(
                                this.options.backgroundColor,
                              )),
                              this.ctx.fillRect(
                                0,
                                0,
                                this.options.width * this.options.scale,
                                this.options.height * this.options.scale,
                              )),
                            this.ctx.drawImage(
                              n,
                              -this.options.x * this.options.scale,
                              -this.options.y * this.options.scale,
                            ),
                            [2, this.canvas]
                          );
                      }
                    });
                  });
                }),
                n
              );
            })(Fc),
            Pc = function (e) {
              return new Promise(function (t, n) {
                var r = new Image();
                ((r.onload = function () {
                  t(r);
                }),
                  (r.onerror = n),
                  (r.src =
                    "data:image/svg+xml;charset=utf-8," +
                    encodeURIComponent(
                      new XMLSerializer().serializeToString(e),
                    )));
              });
            },
            Dc = (function () {
              function e(e) {
                var t = e.id,
                  n = e.enabled;
                ((this.id = t), (this.enabled = n), (this.start = Date.now()));
              }
              return (
                (e.prototype.debug = function () {
                  for (var e = [], t = 0; t < arguments.length; t++)
                    e[t] = arguments[t];
                  this.enabled &&
                    ("undefined" !== typeof window &&
                    window.console &&
                    "function" === typeof console.debug
                      ? console.debug.apply(
                          console,
                          A([this.id, this.getTime() + "ms"], e),
                        )
                      : this.info.apply(this, e));
                }),
                (e.prototype.getTime = function () {
                  return Date.now() - this.start;
                }),
                (e.prototype.info = function () {
                  for (var e = [], t = 0; t < arguments.length; t++)
                    e[t] = arguments[t];
                  this.enabled &&
                    "undefined" !== typeof window &&
                    window.console &&
                    "function" === typeof console.info &&
                    console.info.apply(
                      console,
                      A([this.id, this.getTime() + "ms"], e),
                    );
                }),
                (e.prototype.warn = function () {
                  for (var e = [], t = 0; t < arguments.length; t++)
                    e[t] = arguments[t];
                  this.enabled &&
                    ("undefined" !== typeof window &&
                    window.console &&
                    "function" === typeof console.warn
                      ? console.warn.apply(
                          console,
                          A([this.id, this.getTime() + "ms"], e),
                        )
                      : this.info.apply(this, e));
                }),
                (e.prototype.error = function () {
                  for (var e = [], t = 0; t < arguments.length; t++)
                    e[t] = arguments[t];
                  this.enabled &&
                    ("undefined" !== typeof window &&
                    window.console &&
                    "function" === typeof console.log
                      ? console.log.apply(
                          console,
                          A([this.id, this.getTime() + "ms"], e),
                        )
                      : this.info.apply(this, e));
                }),
                (e.instances = {}),
                e
              );
            })(),
            Nc = (function () {
              function e(t, n) {
                var r;
                ((this.windowBounds = n),
                  (this.instanceName = "#" + e.instanceCount++),
                  (this.logger = new Dc({
                    id: this.instanceName,
                    enabled: t.logging,
                  })),
                  (this.cache =
                    null !== (r = t.cache) && void 0 !== r
                      ? r
                      : new Ls(this, t)));
              }
              return ((e.instanceCount = 1), e);
            })(),
            kc = function (e, t) {
              return (void 0 === t && (t = {}), Gc(e, t));
            };
          "undefined" !== typeof window && Qs.setContext(window);
          var Gc = function (e, t) {
              return r(void 0, void 0, void 0, function () {
                var r,
                  A,
                  c,
                  u,
                  l,
                  h,
                  f,
                  d,
                  p,
                  g,
                  m,
                  v,
                  y,
                  w,
                  B,
                  b,
                  _,
                  x,
                  C,
                  E,
                  M,
                  S,
                  F,
                  T,
                  U,
                  Q,
                  L,
                  I,
                  H,
                  O,
                  R,
                  P,
                  D,
                  N,
                  k,
                  G,
                  V,
                  z,
                  j;
                return i(this, function (i) {
                  switch (i.label) {
                    case 0:
                      if (!e || "object" !== typeof e)
                        return [
                          2,
                          Promise.reject(
                            "Invalid element provided as first argument",
                          ),
                        ];
                      if (((r = e.ownerDocument), !r))
                        throw new Error(
                          "Element is not attached to a Document",
                        );
                      if (((A = r.defaultView), !A))
                        throw new Error("Document is not attached to a Window");
                      return (
                        (c = {
                          allowTaint:
                            null !== (F = t.allowTaint) && void 0 !== F && F,
                          imageTimeout:
                            null !== (T = t.imageTimeout) && void 0 !== T
                              ? T
                              : 15e3,
                          proxy: t.proxy,
                          useCORS:
                            null !== (U = t.useCORS) && void 0 !== U && U,
                        }),
                        (u = n(
                          {
                            logging:
                              null === (Q = t.logging) || void 0 === Q || Q,
                            cache: t.cache,
                          },
                          c,
                        )),
                        (l = {
                          windowWidth:
                            null !== (L = t.windowWidth) && void 0 !== L
                              ? L
                              : A.innerWidth,
                          windowHeight:
                            null !== (I = t.windowHeight) && void 0 !== I
                              ? I
                              : A.innerHeight,
                          scrollX:
                            null !== (H = t.scrollX) && void 0 !== H
                              ? H
                              : A.pageXOffset,
                          scrollY:
                            null !== (O = t.scrollY) && void 0 !== O
                              ? O
                              : A.pageYOffset,
                        }),
                        (h = new o(
                          l.scrollX,
                          l.scrollY,
                          l.windowWidth,
                          l.windowHeight,
                        )),
                        (f = new Nc(u, h)),
                        (d =
                          null !== (R = t.foreignObjectRendering) &&
                          void 0 !== R &&
                          R),
                        (p = {
                          allowTaint:
                            null !== (P = t.allowTaint) && void 0 !== P && P,
                          onclone: t.onclone,
                          ignoreElements: t.ignoreElements,
                          inlineImages: d,
                          copyStyles: d,
                        }),
                        f.logger.debug(
                          "Starting document clone with size " +
                            h.width +
                            "x" +
                            h.height +
                            " scrolled to " +
                            -h.left +
                            "," +
                            -h.top,
                        ),
                        (g = new ds(f, e, p)),
                        (m = g.clonedReferenceElement),
                        m
                          ? [4, g.toIFrame(r, h)]
                          : [
                              2,
                              Promise.reject(
                                "Unable to find element in cloned iframe",
                              ),
                            ]
                      );
                    case 1:
                      return (
                        (v = i.sent()),
                        (y = Ra(m) || Ha(m) ? s(m.ownerDocument) : a(f, m)),
                        (w = y.width),
                        (B = y.height),
                        (b = y.left),
                        (_ = y.top),
                        (x = Vc(f, m, t.backgroundColor)),
                        (C = {
                          canvas: t.canvas,
                          backgroundColor: x,
                          scale:
                            null !==
                              (N =
                                null !== (D = t.scale) && void 0 !== D
                                  ? D
                                  : A.devicePixelRatio) && void 0 !== N
                              ? N
                              : 1,
                          x: (null !== (k = t.x) && void 0 !== k ? k : 0) + b,
                          y: (null !== (G = t.y) && void 0 !== G ? G : 0) + _,
                          width:
                            null !== (V = t.width) && void 0 !== V
                              ? V
                              : Math.ceil(w),
                          height:
                            null !== (z = t.height) && void 0 !== z
                              ? z
                              : Math.ceil(B),
                        }),
                        d
                          ? (f.logger.debug(
                              "Document cloned, using foreign object rendering",
                            ),
                            (S = new Rc(f, C)),
                            [4, S.render(m)])
                          : [3, 3]
                      );
                    case 2:
                      return ((E = i.sent()), [3, 5]);
                    case 3:
                      return (
                        f.logger.debug(
                          "Document cloned, element located at " +
                            b +
                            "," +
                            _ +
                            " with size " +
                            w +
                            "x" +
                            B +
                            " using computed rendering",
                        ),
                        f.logger.debug("Starting DOM parsing"),
                        (M = Ca(f, m)),
                        x === M.styles.backgroundColor &&
                          (M.styles.backgroundColor = wr.TRANSPARENT),
                        f.logger.debug(
                          "Starting renderer for element at " +
                            C.x +
                            "," +
                            C.y +
                            " with size " +
                            C.width +
                            "x" +
                            C.height,
                        ),
                        (S = new Uc(f, C)),
                        [4, S.render(M)]
                      );
                    case 4:
                      ((E = i.sent()), (i.label = 5));
                    case 5:
                      return (
                        (null === (j = t.removeContainer) ||
                          void 0 === j ||
                          j) &&
                          (ds.destroy(v) ||
                            f.logger.error(
                              "Cannot detach cloned iframe as it is not in the DOM anymore",
                            )),
                        f.logger.debug("Finished rendering"),
                        [2, E]
                      );
                  }
                });
              });
            },
            Vc = function (e, t, n) {
              var r = t.ownerDocument,
                i = r.documentElement
                  ? yr(e, getComputedStyle(r.documentElement).backgroundColor)
                  : wr.TRANSPARENT,
                A = r.body
                  ? yr(e, getComputedStyle(r.body).backgroundColor)
                  : wr.TRANSPARENT,
                o =
                  "string" === typeof n
                    ? yr(e, n)
                    : null === n
                      ? wr.TRANSPARENT
                      : 4294967295;
              return t === r.documentElement
                ? lr(i)
                  ? lr(A)
                    ? o
                    : A
                  : i
                : o;
            };
          return kc;
        }));
    },
    c293: function (e, t, n) {
      var r = n("f083");
      r(r.S, "Number", { MAX_SAFE_INTEGER: 9007199254740991 });
    },
    c430: function (e, t) {
      e.exports = !1;
    },
    c4ef: function (e, t, n) {
      var r = n("f083"),
        i = n("eb9a");
      r(r.G + r.B, { setImmediate: i.set, clearImmediate: i.clear });
    },
    c512: function (e, t, n) {
      var r = n("f083"),
        i = n("ed60"),
        A = n("d77f");
      r(r.S, "Reflect", {
        getPrototypeOf: function (e) {
          return i(A(e));
        },
      });
    },
    c5c0: function (e, t, n) {
      var r = n("f083");
      r(r.P + r.R, "Map", { toJSON: n("1ff6")("Map") });
    },
    c65b: function (e, t, n) {
      var r = n("40d5"),
        i = Function.prototype.call;
      e.exports = r
        ? i.bind(i)
        : function () {
            return i.apply(i, arguments);
          };
    },
    c668: function (e, t, n) {
      var r = n("77ea");
      e.exports = function (e, t, n) {
        for (var i in t) r(e, i, t[i], n);
        return e;
      };
    },
    c6b6: function (e, t, n) {
      var r = n("e330"),
        i = r({}.toString),
        A = r("".slice);
      e.exports = function (e) {
        return A(i(e), 8, -1);
      };
    },
    c6cd: function (e, t, n) {
      var r = n("da84"),
        i = n("6374"),
        A = "__core-js_shared__",
        o = r[A] || i(A, {});
      e.exports = o;
    },
    c747: function (e, t, n) {
      var r = n("2ce8"),
        i = n("42ee"),
        A = n("dbaf"),
        o = n("6373");
      e.exports = function (e, t, n, a, s) {
        r(t);
        var c = i(e),
          u = A(c),
          l = o(c.length),
          h = s ? l - 1 : 0,
          f = s ? -1 : 1;
        if (n < 2)
          for (;;) {
            if (h in u) {
              ((a = u[h]), (h += f));
              break;
            }
            if (((h += f), s ? h < 0 : l <= h))
              throw TypeError("Reduce of empty array with no initial value");
          }
        for (; s ? h >= 0 : l > h; h += f) h in u && (a = t(a, u[h], h, c));
        return a;
      };
    },
    c770: function (e, t, n) {
      var r = n("e330"),
        i = Error,
        A = r("".replace),
        o = (function (e) {
          return String(i(e).stack);
        })("zxcasd"),
        a = /\n\s*at [^:]*:[^\n]*/,
        s = a.test(o);
      e.exports = function (e, t) {
        if (s && "string" == typeof e && !i.prepareStackTrace)
          while (t--) e = A(e, a, "");
        return e;
      };
    },
    c786: function (e, t, n) {
      var r = n("c053"),
        i = n("de24")("iterator"),
        A = Array.prototype;
      e.exports = function (e) {
        return void 0 !== e && (r.Array === e || A[i] === e);
      };
    },
    c7ca: function (e, t, n) {
      var r = n("1c6a"),
        i = n("d77f"),
        A = n("ed60"),
        o = r.has,
        a = r.key,
        s = function (e, t, n) {
          var r = o(e, t, n);
          if (r) return !0;
          var i = A(t);
          return null !== i && s(e, i, n);
        };
      r.exp({
        hasMetadata: function (e, t) {
          return s(e, i(t), arguments.length < 3 ? void 0 : a(arguments[2]));
        },
      });
    },
    c8ba: function (e, t) {
      var n;
      n = (function () {
        return this;
      })();
      try {
        n = n || new Function("return this")();
      } catch (r) {
        "object" === typeof window && (n = window);
      }
      e.exports = n;
    },
    c92b: function (e, t, n) {
      var r = n("f083"),
        i = n("2584")(!0);
      r(r.S, "Object", {
        entries: function (e) {
          return i(e);
        },
      });
    },
    c94e: function (e, t, n) {
      e.exports = !n("f937")(function () {
        return (
          7 !=
          Object.defineProperty({}, "a", {
            get: function () {
              return 7;
            },
          }).a
        );
      });
    },
    ca84: function (e, t, n) {
      var r = n("e330"),
        i = n("1a2d"),
        A = n("fc6a"),
        o = n("4d64").indexOf,
        a = n("d012"),
        s = r([].push);
      e.exports = function (e, t) {
        var n,
          r = A(e),
          c = 0,
          u = [];
        for (n in r) !i(a, n) && i(r, n) && s(u, n);
        while (t.length > c) i(r, (n = t[c++])) && (~o(u, n) || s(u, n));
        return u;
      };
    },
    cb2d: function (e, t, n) {
      var r = n("1626"),
        i = n("9bf2"),
        A = n("13d2"),
        o = n("6374");
      e.exports = function (e, t, n, a) {
        a || (a = {});
        var s = a.enumerable,
          c = void 0 !== a.name ? a.name : t;
        if ((r(n) && A(n, c, a), a.global)) s ? (e[t] = n) : o(t, n);
        else {
          try {
            a.unsafe ? e[t] && (s = !0) : delete e[t];
          } catch (u) {}
          s
            ? (e[t] = n)
            : i.f(e, t, {
                value: n,
                enumerable: !1,
                configurable: !a.nonConfigurable,
                writable: !a.nonWritable,
              });
        }
        return e;
      };
    },
    cc12: function (e, t, n) {
      var r = n("da84"),
        i = n("861d"),
        A = r.document,
        o = i(A) && i(A.createElement);
      e.exports = function (e) {
        return o ? A.createElement(e) : {};
      };
    },
    cee8: function (e, t) {
      e.exports = !1;
    },
    cf98: function (e, t) {
      e.exports = {
        IndexSizeError: { s: "INDEX_SIZE_ERR", c: 1, m: 1 },
        DOMStringSizeError: { s: "DOMSTRING_SIZE_ERR", c: 2, m: 0 },
        HierarchyRequestError: { s: "HIERARCHY_REQUEST_ERR", c: 3, m: 1 },
        WrongDocumentError: { s: "WRONG_DOCUMENT_ERR", c: 4, m: 1 },
        InvalidCharacterError: { s: "INVALID_CHARACTER_ERR", c: 5, m: 1 },
        NoDataAllowedError: { s: "NO_DATA_ALLOWED_ERR", c: 6, m: 0 },
        NoModificationAllowedError: {
          s: "NO_MODIFICATION_ALLOWED_ERR",
          c: 7,
          m: 1,
        },
        NotFoundError: { s: "NOT_FOUND_ERR", c: 8, m: 1 },
        NotSupportedError: { s: "NOT_SUPPORTED_ERR", c: 9, m: 1 },
        InUseAttributeError: { s: "INUSE_ATTRIBUTE_ERR", c: 10, m: 1 },
        InvalidStateError: { s: "INVALID_STATE_ERR", c: 11, m: 1 },
        SyntaxError: { s: "SYNTAX_ERR", c: 12, m: 1 },
        InvalidModificationError: {
          s: "INVALID_MODIFICATION_ERR",
          c: 13,
          m: 1,
        },
        NamespaceError: { s: "NAMESPACE_ERR", c: 14, m: 1 },
        InvalidAccessError: { s: "INVALID_ACCESS_ERR", c: 15, m: 1 },
        ValidationError: { s: "VALIDATION_ERR", c: 16, m: 0 },
        TypeMismatchError: { s: "TYPE_MISMATCH_ERR", c: 17, m: 1 },
        SecurityError: { s: "SECURITY_ERR", c: 18, m: 1 },
        NetworkError: { s: "NETWORK_ERR", c: 19, m: 1 },
        AbortError: { s: "ABORT_ERR", c: 20, m: 1 },
        URLMismatchError: { s: "URL_MISMATCH_ERR", c: 21, m: 1 },
        QuotaExceededError: { s: "QUOTA_EXCEEDED_ERR", c: 22, m: 1 },
        TimeoutError: { s: "TIMEOUT_ERR", c: 23, m: 1 },
        InvalidNodeTypeError: { s: "INVALID_NODE_TYPE_ERR", c: 24, m: 1 },
        DataCloneError: { s: "DATA_CLONE_ERR", c: 25, m: 1 },
      };
    },
    cffa: function (e, t, n) {
      "use strict";
      function r(e) {
        if (void 0 === e)
          throw new ReferenceError(
            "this hasn't been initialised - super() hasn't been called",
          );
        return e;
      }
      function i(e, t) {
        ((e.prototype = Object.create(t.prototype)),
          (e.prototype.constructor = e),
          (e.__proto__ = t));
      }
      /*!
       * GSAP 3.10.4
       * https://greensock.com
       *
       * @license Copyright 2008-2022, GreenSock. All rights reserved.
       * Subject to the terms at https://greensock.com/standard-license or for
       * Club GreenSock members, the agreement issued with that membership.
       * @author: Jack Doyle, jack@greensock.com
       */ n.d(t, "a", function () {
        return Nr;
      });
      var A,
        o,
        a,
        s,
        c,
        u,
        l,
        h,
        f,
        d = {
          autoSleep: 120,
          force3D: "auto",
          nullTargetWarn: 1,
          units: { lineHeight: "" },
        },
        p = { duration: 0.5, overwrite: !1, delay: 0 },
        g = 1e8,
        m = 1 / g,
        v = 2 * Math.PI,
        y = v / 4,
        w = 0,
        B = Math.sqrt,
        b = Math.cos,
        _ = Math.sin,
        x = function (e) {
          return "string" === typeof e;
        },
        C = function (e) {
          return "function" === typeof e;
        },
        E = function (e) {
          return "number" === typeof e;
        },
        M = function (e) {
          return "undefined" === typeof e;
        },
        S = function (e) {
          return "object" === typeof e;
        },
        F = function (e) {
          return !1 !== e;
        },
        T = function () {
          return "undefined" !== typeof window;
        },
        U = function (e) {
          return C(e) || x(e);
        },
        Q =
          ("function" === typeof ArrayBuffer && ArrayBuffer.isView) ||
          function () {},
        L = Array.isArray,
        I = /(?:-?\.?\d|\.)+/gi,
        H = /[-+=.]*\d+[.e\-+]*\d*[e\-+]*\d*/g,
        O = /[-+=.]*\d+[.e-]*\d*[a-z%]*/g,
        R = /[-+=.]*\d+\.?\d*(?:e-|e\+)?\d*/gi,
        P = /[+-]=-?[.\d]+/,
        D = /[^,'"\[\]\s]+/gi,
        N = /^[+\-=e\s\d]*\d+[.\d]*([a-z]*|%)\s*$/i,
        k = {},
        G = {},
        V = function (e) {
          return (G = ge(e, k)) && xn;
        },
        z = function (e, t) {
          return console.warn(
            "Invalid property",
            e,
            "set to",
            t,
            "Missing plugin? gsap.registerPlugin()",
          );
        },
        j = function (e, t) {
          return !t && console.warn(e);
        },
        K = function (e, t) {
          return (e && (k[e] = t) && G && (G[e] = t)) || k;
        },
        W = function () {
          return 0;
        },
        X = {},
        Y = [],
        J = {},
        q = {},
        Z = {},
        $ = 30,
        ee = [],
        te = "",
        ne = function (e) {
          var t,
            n,
            r = e[0];
          if ((S(r) || C(r) || (e = [e]), !(t = (r._gsap || {}).harness))) {
            n = ee.length;
            while (n-- && !ee[n].targetTest(r));
            t = ee[n];
          }
          n = e.length;
          while (n--)
            (e[n] && (e[n]._gsap || (e[n]._gsap = new Gt(e[n], t)))) ||
              e.splice(n, 1);
          return e;
        },
        re = function (e) {
          return e._gsap || ne(Ze(e))[0]._gsap;
        },
        ie = function (e, t, n) {
          return (n = e[t]) && C(n)
            ? e[t]()
            : (M(n) && e.getAttribute && e.getAttribute(t)) || n;
        },
        Ae = function (e, t) {
          return (e = e.split(",")).forEach(t) || e;
        },
        oe = function (e) {
          return Math.round(1e5 * e) / 1e5 || 0;
        },
        ae = function (e) {
          return Math.round(1e7 * e) / 1e7 || 0;
        },
        se = function (e, t) {
          var n = t.charAt(0),
            r = parseFloat(t.substr(2));
          return (
            (e = parseFloat(e)),
            "+" === n ? e + r : "-" === n ? e - r : "*" === n ? e * r : e / r
          );
        },
        ce = function (e, t) {
          for (var n = t.length, r = 0; e.indexOf(t[r]) < 0 && ++r < n; );
          return r < n;
        },
        ue = function () {
          var e,
            t,
            n = Y.length,
            r = Y.slice(0);
          for (J = {}, Y.length = 0, e = 0; e < n; e++)
            ((t = r[e]),
              t && t._lazy && (t.render(t._lazy[0], t._lazy[1], !0)._lazy = 0));
        },
        le = function (e, t, n, r) {
          (Y.length && ue(), e.render(t, n, r), Y.length && ue());
        },
        he = function (e) {
          var t = parseFloat(e);
          return (t || 0 === t) && (e + "").match(D).length < 2
            ? t
            : x(e)
              ? e.trim()
              : e;
        },
        fe = function (e) {
          return e;
        },
        de = function (e, t) {
          for (var n in t) n in e || (e[n] = t[n]);
          return e;
        },
        pe = function (e) {
          return function (t, n) {
            for (var r in n)
              r in t ||
                ("duration" === r && e) ||
                "ease" === r ||
                (t[r] = n[r]);
          };
        },
        ge = function (e, t) {
          for (var n in t) e[n] = t[n];
          return e;
        },
        me = function e(t, n) {
          for (var r in n)
            "__proto__" !== r &&
              "constructor" !== r &&
              "prototype" !== r &&
              (t[r] = S(n[r]) ? e(t[r] || (t[r] = {}), n[r]) : n[r]);
          return t;
        },
        ve = function (e, t) {
          var n,
            r = {};
          for (n in e) n in t || (r[n] = e[n]);
          return r;
        },
        ye = function (e) {
          var t = e.parent || o,
            n = e.keyframes ? pe(L(e.keyframes)) : de;
          if (F(e.inherit))
            while (t) (n(e, t.vars.defaults), (t = t.parent || t._dp));
          return e;
        },
        we = function (e, t) {
          var n = e.length,
            r = n === t.length;
          while (r && n-- && e[n] === t[n]);
          return n < 0;
        },
        Be = function (e, t, n, r, i) {
          (void 0 === n && (n = "_first"), void 0 === r && (r = "_last"));
          var A,
            o = e[r];
          if (i) {
            A = t[i];
            while (o && o[i] > A) o = o._prev;
          }
          return (
            o
              ? ((t._next = o._next), (o._next = t))
              : ((t._next = e[n]), (e[n] = t)),
            t._next ? (t._next._prev = t) : (e[r] = t),
            (t._prev = o),
            (t.parent = t._dp = e),
            t
          );
        },
        be = function (e, t, n, r) {
          (void 0 === n && (n = "_first"), void 0 === r && (r = "_last"));
          var i = t._prev,
            A = t._next;
          (i ? (i._next = A) : e[n] === t && (e[n] = A),
            A ? (A._prev = i) : e[r] === t && (e[r] = i),
            (t._next = t._prev = t.parent = null));
        },
        _e = function (e, t) {
          (e.parent &&
            (!t || e.parent.autoRemoveChildren) &&
            e.parent.remove(e),
            (e._act = 0));
        },
        xe = function (e, t) {
          if (e && (!t || t._end > e._dur || t._start < 0)) {
            var n = e;
            while (n) ((n._dirty = 1), (n = n.parent));
          }
          return e;
        },
        Ce = function (e) {
          var t = e.parent;
          while (t && t.parent)
            ((t._dirty = 1), t.totalDuration(), (t = t.parent));
          return e;
        },
        Ee = function e(t) {
          return !t || (t._ts && e(t.parent));
        },
        Me = function (e) {
          return e._repeat
            ? Se(e._tTime, (e = e.duration() + e._rDelay)) * e
            : 0;
        },
        Se = function (e, t) {
          var n = Math.floor((e /= t));
          return e && n === e ? n - 1 : n;
        },
        Fe = function (e, t) {
          return (
            (e - t._start) * t._ts +
            (t._ts >= 0 ? 0 : t._dirty ? t.totalDuration() : t._tDur)
          );
        },
        Te = function (e) {
          return (e._end = ae(
            e._start + (e._tDur / Math.abs(e._ts || e._rts || m) || 0),
          ));
        },
        Ue = function (e, t) {
          var n = e._dp;
          return (
            n &&
              n.smoothChildTiming &&
              e._ts &&
              ((e._start = ae(
                n._time -
                  (e._ts > 0
                    ? t / e._ts
                    : ((e._dirty ? e.totalDuration() : e._tDur) - t) / -e._ts),
              )),
              Te(e),
              n._dirty || xe(n, e)),
            e
          );
        },
        Qe = function (e, t) {
          var n;
          if (
            ((t._time || (t._initted && !t._dur)) &&
              ((n = Fe(e.rawTime(), t)),
              (!t._dur || Ke(0, t.totalDuration(), n) - t._tTime > m) &&
                t.render(n, !0)),
            xe(e, t)._dp && e._initted && e._time >= e._dur && e._ts)
          ) {
            if (e._dur < e.duration()) {
              n = e;
              while (n._dp)
                (n.rawTime() >= 0 && n.totalTime(n._tTime), (n = n._dp));
            }
            e._zTime = -m;
          }
        },
        Le = function (e, t, n, r) {
          return (
            t.parent && _e(t),
            (t._start = ae(
              (E(n) ? n : n || e !== o ? Ve(e, n, t) : e._time) + t._delay,
            )),
            (t._end = ae(
              t._start + (t.totalDuration() / Math.abs(t.timeScale()) || 0),
            )),
            Be(e, t, "_first", "_last", e._sort ? "_start" : 0),
            Re(t) || (e._recent = t),
            r || Qe(e, t),
            e
          );
        },
        Ie = function (e, t) {
          return (
            (k.ScrollTrigger || z("scrollTrigger", t)) &&
            k.ScrollTrigger.create(t, e)
          );
        },
        He = function (e, t, n, r) {
          return (
            qt(e, t),
            e._initted
              ? !n &&
                e._pt &&
                ((e._dur && !1 !== e.vars.lazy) || (!e._dur && e.vars.lazy)) &&
                l !== Mt.frame
                ? (Y.push(e), (e._lazy = [t, r]), 1)
                : void 0
              : 1
          );
        },
        Oe = function e(t) {
          var n = t.parent;
          return (
            n && n._ts && n._initted && !n._lock && (n.rawTime() < 0 || e(n))
          );
        },
        Re = function (e) {
          var t = e.data;
          return "isFromStart" === t || "isStart" === t;
        },
        Pe = function (e, t, n, r) {
          var i,
            A,
            o,
            a = e.ratio,
            s =
              t < 0 ||
              (!t &&
                ((!e._start && Oe(e) && (e._initted || !Re(e))) ||
                  ((e._ts < 0 || e._dp._ts < 0) && !Re(e))))
                ? 0
                : 1,
            c = e._rDelay,
            u = 0;
          if (
            (c &&
              e._repeat &&
              ((u = Ke(0, e._tDur, t)),
              (A = Se(u, c)),
              e._yoyo && 1 & A && (s = 1 - s),
              A !== Se(e._tTime, c) &&
                ((a = 1 - s),
                e.vars.repeatRefresh && e._initted && e.invalidate())),
            s !== a || r || e._zTime === m || (!t && e._zTime))
          ) {
            if (!e._initted && He(e, t, r, n)) return;
            ((o = e._zTime),
              (e._zTime = t || (n ? m : 0)),
              n || (n = t && !o),
              (e.ratio = s),
              e._from && (s = 1 - s),
              (e._time = 0),
              (e._tTime = u),
              (i = e._pt));
            while (i) (i.r(s, i.d), (i = i._next));
            (e._startAt && t < 0 && e._startAt.render(t, !0, !0),
              e._onUpdate && !n && pt(e, "onUpdate"),
              u && e._repeat && !n && e.parent && pt(e, "onRepeat"),
              (t >= e._tDur || t < 0) &&
                e.ratio === s &&
                (s && _e(e, 1),
                n ||
                  (pt(e, s ? "onComplete" : "onReverseComplete", !0),
                  e._prom && e._prom())));
          } else e._zTime || (e._zTime = t);
        },
        De = function (e, t, n) {
          var r;
          if (n > t) {
            r = e._first;
            while (r && r._start <= n) {
              if ("isPause" === r.data && r._start > t) return r;
              r = r._next;
            }
          } else {
            r = e._last;
            while (r && r._start >= n) {
              if ("isPause" === r.data && r._start < t) return r;
              r = r._prev;
            }
          }
        },
        Ne = function (e, t, n, r) {
          var i = e._repeat,
            A = ae(t) || 0,
            o = e._tTime / e._tDur;
          return (
            o && !r && (e._time *= A / e._dur),
            (e._dur = A),
            (e._tDur = i
              ? i < 0
                ? 1e10
                : ae(A * (i + 1) + e._rDelay * i)
              : A),
            o > 0 && !r ? Ue(e, (e._tTime = e._tDur * o)) : e.parent && Te(e),
            n || xe(e.parent, e),
            e
          );
        },
        ke = function (e) {
          return e instanceof zt ? xe(e) : Ne(e, e._dur);
        },
        Ge = { _start: 0, endTime: W, totalDuration: W },
        Ve = function e(t, n, r) {
          var i,
            A,
            o,
            a = t.labels,
            s = t._recent || Ge,
            c = t.duration() >= g ? s.endTime(!1) : t._dur;
          return x(n) && (isNaN(n) || n in a)
            ? ((A = n.charAt(0)),
              (o = "%" === n.substr(-1)),
              (i = n.indexOf("=")),
              "<" === A || ">" === A
                ? (i >= 0 && (n = n.replace(/=/, "")),
                  ("<" === A ? s._start : s.endTime(s._repeat >= 0)) +
                    (parseFloat(n.substr(1)) || 0) *
                      (o ? (i < 0 ? s : r).totalDuration() / 100 : 1))
                : i < 0
                  ? (n in a || (a[n] = c), a[n])
                  : ((A = parseFloat(n.charAt(i - 1) + n.substr(i + 1))),
                    o &&
                      r &&
                      (A = (A / 100) * (L(r) ? r[0] : r).totalDuration()),
                    i > 1 ? e(t, n.substr(0, i - 1), r) + A : c + A))
            : null == n
              ? c
              : +n;
        },
        ze = function (e, t, n) {
          var r,
            i,
            A = E(t[1]),
            o = (A ? 2 : 1) + (e < 2 ? 0 : 1),
            a = t[o];
          if ((A && (a.duration = t[1]), (a.parent = n), e)) {
            ((r = a), (i = n));
            while (i && !("immediateRender" in r))
              ((r = i.vars.defaults || {}),
                (i = F(i.vars.inherit) && i.parent));
            ((a.immediateRender = F(r.immediateRender)),
              e < 2 ? (a.runBackwards = 1) : (a.startAt = t[o - 1]));
          }
          return new An(t[0], a, t[o + 1]);
        },
        je = function (e, t) {
          return e || 0 === e ? t(e) : t;
        },
        Ke = function (e, t, n) {
          return n < e ? e : n > t ? t : n;
        },
        We = function (e, t) {
          return x(e) && (t = N.exec(e)) ? t[1] : "";
        },
        Xe = function (e, t, n) {
          return je(n, function (n) {
            return Ke(e, t, n);
          });
        },
        Ye = [].slice,
        Je = function (e, t) {
          return (
            e &&
            S(e) &&
            "length" in e &&
            ((!t && !e.length) || (e.length - 1 in e && S(e[0]))) &&
            !e.nodeType &&
            e !== a
          );
        },
        qe = function (e, t, n) {
          return (
            void 0 === n && (n = []),
            e.forEach(function (e) {
              var r;
              return (x(e) && !t) || Je(e, 1)
                ? (r = n).push.apply(r, Ze(e))
                : n.push(e);
            }) || n
          );
        },
        Ze = function (e, t, n) {
          return !x(e) || n || (!s && St())
            ? L(e)
              ? qe(e, n)
              : Je(e)
                ? Ye.call(e, 0)
                : e
                  ? [e]
                  : []
            : Ye.call((t || c).querySelectorAll(e), 0);
        },
        $e = function (e) {
          return (
            (e = Ze(e)[0] || j("Invalid scope") || {}),
            function (t) {
              var n = e.current || e.nativeElement || e;
              return Ze(
                t,
                n.querySelectorAll
                  ? n
                  : n === e
                    ? j("Invalid scope") || c.createElement("div")
                    : e,
              );
            }
          );
        },
        et = function (e) {
          return e.sort(function () {
            return 0.5 - Math.random();
          });
        },
        tt = function (e) {
          if (C(e)) return e;
          var t = S(e) ? e : { each: e },
            n = Rt(t.ease),
            r = t.from || 0,
            i = parseFloat(t.base) || 0,
            A = {},
            o = r > 0 && r < 1,
            a = isNaN(r) || o,
            s = t.axis,
            c = r,
            u = r;
          return (
            x(r)
              ? (c = u = { center: 0.5, edges: 0.5, end: 1 }[r] || 0)
              : !o && a && ((c = r[0]), (u = r[1])),
            function (e, o, l) {
              var h,
                f,
                d,
                p,
                m,
                v,
                y,
                w,
                b,
                _ = (l || t).length,
                x = A[_];
              if (!x) {
                if (((b = "auto" === t.grid ? 0 : (t.grid || [1, g])[1]), !b)) {
                  y = -g;
                  while (
                    y < (y = l[b++].getBoundingClientRect().left) &&
                    b < _
                  );
                  b--;
                }
                for (
                  x = A[_] = [],
                    h = a ? Math.min(b, _) * c - 0.5 : r % b,
                    f = b === g ? 0 : a ? (_ * u) / b - 0.5 : (r / b) | 0,
                    y = 0,
                    w = g,
                    v = 0;
                  v < _;
                  v++
                )
                  ((d = (v % b) - h),
                    (p = f - ((v / b) | 0)),
                    (x[v] = m =
                      s ? Math.abs("y" === s ? p : d) : B(d * d + p * p)),
                    m > y && (y = m),
                    m < w && (w = m));
                ("random" === r && et(x),
                  (x.max = y - w),
                  (x.min = w),
                  (x.v = _ =
                    (parseFloat(t.amount) ||
                      parseFloat(t.each) *
                        (b > _
                          ? _ - 1
                          : s
                            ? "y" === s
                              ? _ / b
                              : b
                            : Math.max(b, _ / b)) ||
                      0) * ("edges" === r ? -1 : 1)),
                  (x.b = _ < 0 ? i - _ : i),
                  (x.u = We(t.amount || t.each) || 0),
                  (n = n && _ < 0 ? Ht(n) : n));
              }
              return (
                (_ = (x[e] - x.min) / x.max || 0),
                ae(x.b + (n ? n(_) : _) * x.v) + x.u
              );
            }
          );
        },
        nt = function (e) {
          var t = Math.pow(10, ((e + "").split(".")[1] || "").length);
          return function (n) {
            var r = Math.round(parseFloat(n) / e) * e * t;
            return (r - (r % 1)) / t + (E(n) ? 0 : We(n));
          };
        },
        rt = function (e, t) {
          var n,
            r,
            i = L(e);
          return (
            !i &&
              S(e) &&
              ((n = i = e.radius || g),
              e.values
                ? ((e = Ze(e.values)), (r = !E(e[0])) && (n *= n))
                : (e = nt(e.increment))),
            je(
              t,
              i
                ? C(e)
                  ? function (t) {
                      return ((r = e(t)), Math.abs(r - t) <= n ? r : t);
                    }
                  : function (t) {
                      var i,
                        A,
                        o = parseFloat(r ? t.x : t),
                        a = parseFloat(r ? t.y : 0),
                        s = g,
                        c = 0,
                        u = e.length;
                      while (u--)
                        (r
                          ? ((i = e[u].x - o),
                            (A = e[u].y - a),
                            (i = i * i + A * A))
                          : (i = Math.abs(e[u] - o)),
                          i < s && ((s = i), (c = u)));
                      return (
                        (c = !n || s <= n ? e[c] : t),
                        r || c === t || E(t) ? c : c + We(t)
                      );
                    }
                : nt(e),
            )
          );
        },
        it = function (e, t, n, r) {
          return je(L(e) ? !t : !0 === n ? !!(n = 0) : !r, function () {
            return L(e)
              ? e[~~(Math.random() * e.length)]
              : (n = n || 1e-5) &&
                  (r = n < 1 ? Math.pow(10, (n + "").length - 2) : 1) &&
                  Math.floor(
                    Math.round(
                      (e - n / 2 + Math.random() * (t - e + 0.99 * n)) / n,
                    ) *
                      n *
                      r,
                  ) / r;
          });
        },
        At = function () {
          for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++)
            t[n] = arguments[n];
          return function (e) {
            return t.reduce(function (e, t) {
              return t(e);
            }, e);
          };
        },
        ot = function (e, t) {
          return function (n) {
            return e(parseFloat(n)) + (t || We(n));
          };
        },
        at = function (e, t, n) {
          return ht(e, t, 0, 1, n);
        },
        st = function (e, t, n) {
          return je(n, function (n) {
            return e[~~t(n)];
          });
        },
        ct = function e(t, n, r) {
          var i = n - t;
          return L(t)
            ? st(t, e(0, t.length), n)
            : je(r, function (e) {
                return ((i + ((e - t) % i)) % i) + t;
              });
        },
        ut = function e(t, n, r) {
          var i = n - t,
            A = 2 * i;
          return L(t)
            ? st(t, e(0, t.length - 1), n)
            : je(r, function (e) {
                return (
                  (e = (A + ((e - t) % A)) % A || 0),
                  t + (e > i ? A - e : e)
                );
              });
        },
        lt = function (e) {
          var t,
            n,
            r,
            i,
            A = 0,
            o = "";
          while (~(t = e.indexOf("random(", A)))
            ((r = e.indexOf(")", t)),
              (i = "[" === e.charAt(t + 7)),
              (n = e.substr(t + 7, r - t - 7).match(i ? D : I)),
              (o +=
                e.substr(A, t - A) +
                it(i ? n : +n[0], i ? 0 : +n[1], +n[2] || 1e-5)),
              (A = r + 1));
          return o + e.substr(A, e.length - A);
        },
        ht = function (e, t, n, r, i) {
          var A = t - e,
            o = r - n;
          return je(i, function (t) {
            return n + (((t - e) / A) * o || 0);
          });
        },
        ft = function e(t, n, r, i) {
          var A = isNaN(t + n)
            ? 0
            : function (e) {
                return (1 - e) * t + e * n;
              };
          if (!A) {
            var o,
              a,
              s,
              c,
              u,
              l = x(t),
              h = {};
            if ((!0 === r && (i = 1) && (r = null), l))
              ((t = { p: t }), (n = { p: n }));
            else if (L(t) && !L(n)) {
              for (s = [], c = t.length, u = c - 2, a = 1; a < c; a++)
                s.push(e(t[a - 1], t[a]));
              (c--,
                (A = function (e) {
                  e *= c;
                  var t = Math.min(u, ~~e);
                  return s[t](e - t);
                }),
                (r = n));
            } else i || (t = ge(L(t) ? [] : {}, t));
            if (!s) {
              for (o in n) Xt.call(h, t, o, "get", n[o]);
              A = function (e) {
                return dn(e, h) || (l ? t.p : t);
              };
            }
          }
          return je(r, A);
        },
        dt = function (e, t, n) {
          var r,
            i,
            A,
            o = e.labels,
            a = g;
          for (r in o)
            ((i = o[r] - t),
              i < 0 === !!n &&
                i &&
                a > (i = Math.abs(i)) &&
                ((A = r), (a = i)));
          return A;
        },
        pt = function (e, t, n) {
          var r,
            i,
            A = e.vars,
            o = A[t];
          if (o)
            return (
              (r = A[t + "Params"]),
              (i = A.callbackScope || e),
              n && Y.length && ue(),
              r ? o.apply(i, r) : o.call(i)
            );
        },
        gt = function (e) {
          return (
            _e(e),
            e.scrollTrigger && e.scrollTrigger.kill(!1),
            e.progress() < 1 && pt(e, "onInterrupt"),
            e
          );
        },
        mt = function (e) {
          e = (!e.name && e["default"]) || e;
          var t = e.name,
            n = C(e),
            r =
              t && !n && e.init
                ? function () {
                    this._props = [];
                  }
                : e,
            i = {
              init: W,
              render: dn,
              add: Xt,
              kill: gn,
              modifier: pn,
              rawVars: 0,
            },
            A = {
              targetTest: 0,
              get: 0,
              getSetter: un,
              aliases: {},
              register: 0,
            };
          if ((St(), e !== r)) {
            if (q[t]) return;
            (de(r, de(ve(e, i), A)),
              ge(r.prototype, ge(i, ve(e, A))),
              (q[(r.prop = t)] = r),
              e.targetTest && (ee.push(r), (X[t] = 1)),
              (t =
                ("css" === t
                  ? "CSS"
                  : t.charAt(0).toUpperCase() + t.substr(1)) + "Plugin"));
          }
          (K(t, r), e.register && e.register(xn, r, yn));
        },
        vt = 255,
        yt = {
          aqua: [0, vt, vt],
          lime: [0, vt, 0],
          silver: [192, 192, 192],
          black: [0, 0, 0],
          maroon: [128, 0, 0],
          teal: [0, 128, 128],
          blue: [0, 0, vt],
          navy: [0, 0, 128],
          white: [vt, vt, vt],
          olive: [128, 128, 0],
          yellow: [vt, vt, 0],
          orange: [vt, 165, 0],
          gray: [128, 128, 128],
          purple: [128, 0, 128],
          green: [0, 128, 0],
          red: [vt, 0, 0],
          pink: [vt, 192, 203],
          cyan: [0, vt, vt],
          transparent: [vt, vt, vt, 0],
        },
        wt = function (e, t, n) {
          return (
            (e += e < 0 ? 1 : e > 1 ? -1 : 0),
            ((6 * e < 1
              ? t + (n - t) * e * 6
              : e < 0.5
                ? n
                : 3 * e < 2
                  ? t + (n - t) * (2 / 3 - e) * 6
                  : t) *
              vt +
              0.5) |
              0
          );
        },
        Bt = function (e, t, n) {
          var r,
            i,
            A,
            o,
            a,
            s,
            c,
            u,
            l,
            h,
            f = e ? (E(e) ? [e >> 16, (e >> 8) & vt, e & vt] : 0) : yt.black;
          if (!f) {
            if (
              ("," === e.substr(-1) && (e = e.substr(0, e.length - 1)), yt[e])
            )
              f = yt[e];
            else if ("#" === e.charAt(0)) {
              if (
                (e.length < 6 &&
                  ((r = e.charAt(1)),
                  (i = e.charAt(2)),
                  (A = e.charAt(3)),
                  (e =
                    "#" +
                    r +
                    r +
                    i +
                    i +
                    A +
                    A +
                    (5 === e.length ? e.charAt(4) + e.charAt(4) : ""))),
                9 === e.length)
              )
                return (
                  (f = parseInt(e.substr(1, 6), 16)),
                  [
                    f >> 16,
                    (f >> 8) & vt,
                    f & vt,
                    parseInt(e.substr(7), 16) / 255,
                  ]
                );
              ((e = parseInt(e.substr(1), 16)),
                (f = [e >> 16, (e >> 8) & vt, e & vt]));
            } else if ("hsl" === e.substr(0, 3))
              if (((f = h = e.match(I)), t)) {
                if (~e.indexOf("="))
                  return ((f = e.match(H)), n && f.length < 4 && (f[3] = 1), f);
              } else
                ((o = (+f[0] % 360) / 360),
                  (a = +f[1] / 100),
                  (s = +f[2] / 100),
                  (i = s <= 0.5 ? s * (a + 1) : s + a - s * a),
                  (r = 2 * s - i),
                  f.length > 3 && (f[3] *= 1),
                  (f[0] = wt(o + 1 / 3, r, i)),
                  (f[1] = wt(o, r, i)),
                  (f[2] = wt(o - 1 / 3, r, i)));
            else f = e.match(I) || yt.transparent;
            f = f.map(Number);
          }
          return (
            t &&
              !h &&
              ((r = f[0] / vt),
              (i = f[1] / vt),
              (A = f[2] / vt),
              (c = Math.max(r, i, A)),
              (u = Math.min(r, i, A)),
              (s = (c + u) / 2),
              c === u
                ? (o = a = 0)
                : ((l = c - u),
                  (a = s > 0.5 ? l / (2 - c - u) : l / (c + u)),
                  (o =
                    c === r
                      ? (i - A) / l + (i < A ? 6 : 0)
                      : c === i
                        ? (A - r) / l + 2
                        : (r - i) / l + 4),
                  (o *= 60)),
              (f[0] = ~~(o + 0.5)),
              (f[1] = ~~(100 * a + 0.5)),
              (f[2] = ~~(100 * s + 0.5))),
            n && f.length < 4 && (f[3] = 1),
            f
          );
        },
        bt = function (e) {
          var t = [],
            n = [],
            r = -1;
          return (
            e.split(xt).forEach(function (e) {
              var i = e.match(O) || [];
              (t.push.apply(t, i), n.push((r += i.length + 1)));
            }),
            (t.c = n),
            t
          );
        },
        _t = function (e, t, n) {
          var r,
            i,
            A,
            o,
            a = "",
            s = (e + a).match(xt),
            c = t ? "hsla(" : "rgba(",
            u = 0;
          if (!s) return e;
          if (
            ((s = s.map(function (e) {
              return (
                (e = Bt(e, t, 1)) &&
                c +
                  (t
                    ? e[0] + "," + e[1] + "%," + e[2] + "%," + e[3]
                    : e.join(",")) +
                  ")"
              );
            })),
            n && ((A = bt(e)), (r = n.c), r.join(a) !== A.c.join(a)))
          )
            for (i = e.replace(xt, "1").split(O), o = i.length - 1; u < o; u++)
              a +=
                i[u] +
                (~r.indexOf(u)
                  ? s.shift() || c + "0,0,0,0)"
                  : (A.length ? A : s.length ? s : n).shift());
          if (!i)
            for (i = e.split(xt), o = i.length - 1; u < o; u++)
              a += i[u] + s[u];
          return a + i[o];
        },
        xt = (function () {
          var e,
            t =
              "(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#(?:[0-9a-f]{3,4}){1,2}\\b";
          for (e in yt) t += "|" + e + "\\b";
          return new RegExp(t + ")", "gi");
        })(),
        Ct = /hsl[a]?\(/,
        Et = function (e) {
          var t,
            n = e.join(" ");
          if (((xt.lastIndex = 0), xt.test(n)))
            return (
              (t = Ct.test(n)),
              (e[1] = _t(e[1], t)),
              (e[0] = _t(e[0], t, bt(e[1]))),
              !0
            );
        },
        Mt = (function () {
          var e,
            t,
            n,
            r,
            i,
            A,
            o = Date.now,
            l = 500,
            h = 33,
            d = o(),
            p = d,
            g = 1e3 / 240,
            v = g,
            y = [],
            w = function n(a) {
              var s,
                c,
                u,
                f,
                m = o() - p,
                w = !0 === a;
              if (
                (m > l && (d += m - h),
                (p += m),
                (u = p - d),
                (s = u - v),
                (s > 0 || w) &&
                  ((f = ++r.frame),
                  (i = u - 1e3 * r.time),
                  (r.time = u /= 1e3),
                  (v += s + (s >= g ? 4 : g - s)),
                  (c = 1)),
                w || (e = t(n)),
                c)
              )
                for (A = 0; A < y.length; A++) y[A](u, i, f, a);
            };
          return (
            (r = {
              time: 0,
              frame: 0,
              tick: function () {
                w(!0);
              },
              deltaRatio: function (e) {
                return i / (1e3 / (e || 60));
              },
              wake: function () {
                u &&
                  (!s &&
                    T() &&
                    ((a = s = window),
                    (c = a.document || {}),
                    (k.gsap = xn),
                    (a.gsapVersions || (a.gsapVersions = [])).push(xn.version),
                    V(G || a.GreenSockGlobals || (!a.gsap && a) || {}),
                    (n = a.requestAnimationFrame)),
                  e && r.sleep(),
                  (t =
                    n ||
                    function (e) {
                      return setTimeout(e, (v - 1e3 * r.time + 1) | 0);
                    }),
                  (f = 1),
                  w(2));
              },
              sleep: function () {
                ((n ? a.cancelAnimationFrame : clearTimeout)(e),
                  (f = 0),
                  (t = W));
              },
              lagSmoothing: function (e, t) {
                ((l = e || 1 / m), (h = Math.min(t, l, 0)));
              },
              fps: function (e) {
                ((g = 1e3 / (e || 240)), (v = 1e3 * r.time + g));
              },
              add: function (e, t, n) {
                var i = t
                  ? function (t, n, A, o) {
                      (e(t, n, A, o), r.remove(i));
                    }
                  : e;
                return (r.remove(e), y[n ? "unshift" : "push"](i), St(), i);
              },
              remove: function (e, t) {
                ~(t = y.indexOf(e)) && y.splice(t, 1) && A >= t && A--;
              },
              _listeners: y,
            }),
            r
          );
        })(),
        St = function () {
          return !f && Mt.wake();
        },
        Ft = {},
        Tt = /^[\d.\-M][\d.\-,\s]/,
        Ut = /["']/g,
        Qt = function (e) {
          for (
            var t,
              n,
              r,
              i = {},
              A = e.substr(1, e.length - 3).split(":"),
              o = A[0],
              a = 1,
              s = A.length;
            a < s;
            a++
          )
            ((n = A[a]),
              (t = a !== s - 1 ? n.lastIndexOf(",") : n.length),
              (r = n.substr(0, t)),
              (i[o] = isNaN(r) ? r.replace(Ut, "").trim() : +r),
              (o = n.substr(t + 1).trim()));
          return i;
        },
        Lt = function (e) {
          var t = e.indexOf("(") + 1,
            n = e.indexOf(")"),
            r = e.indexOf("(", t);
          return e.substring(t, ~r && r < n ? e.indexOf(")", n + 1) : n);
        },
        It = function (e) {
          var t = (e + "").split("("),
            n = Ft[t[0]];
          return n && t.length > 1 && n.config
            ? n.config.apply(
                null,
                ~e.indexOf("{") ? [Qt(t[1])] : Lt(e).split(",").map(he),
              )
            : Ft._CE && Tt.test(e)
              ? Ft._CE("", e)
              : n;
        },
        Ht = function (e) {
          return function (t) {
            return 1 - e(1 - t);
          };
        },
        Ot = function e(t, n) {
          var r,
            i = t._first;
          while (i)
            (i instanceof zt
              ? e(i, n)
              : !i.vars.yoyoEase ||
                (i._yoyo && i._repeat) ||
                i._yoyo === n ||
                (i.timeline
                  ? e(i.timeline, n)
                  : ((r = i._ease),
                    (i._ease = i._yEase),
                    (i._yEase = r),
                    (i._yoyo = n))),
              (i = i._next));
        },
        Rt = function (e, t) {
          return (e && (C(e) ? e : Ft[e] || It(e))) || t;
        },
        Pt = function (e, t, n, r) {
          (void 0 === n &&
            (n = function (e) {
              return 1 - t(1 - e);
            }),
            void 0 === r &&
              (r = function (e) {
                return e < 0.5 ? t(2 * e) / 2 : 1 - t(2 * (1 - e)) / 2;
              }));
          var i,
            A = { easeIn: t, easeOut: n, easeInOut: r };
          return (
            Ae(e, function (e) {
              for (var t in ((Ft[e] = k[e] = A),
              (Ft[(i = e.toLowerCase())] = n),
              A))
                Ft[
                  i +
                    ("easeIn" === t
                      ? ".in"
                      : "easeOut" === t
                        ? ".out"
                        : ".inOut")
                ] = Ft[e + "." + t] = A[t];
            }),
            A
          );
        },
        Dt = function (e) {
          return function (t) {
            return t < 0.5
              ? (1 - e(1 - 2 * t)) / 2
              : 0.5 + e(2 * (t - 0.5)) / 2;
          };
        },
        Nt = function e(t, n, r) {
          var i = n >= 1 ? n : 1,
            A = (r || (t ? 0.3 : 0.45)) / (n < 1 ? n : 1),
            o = (A / v) * (Math.asin(1 / i) || 0),
            a = function (e) {
              return 1 === e
                ? 1
                : i * Math.pow(2, -10 * e) * _((e - o) * A) + 1;
            },
            s =
              "out" === t
                ? a
                : "in" === t
                  ? function (e) {
                      return 1 - a(1 - e);
                    }
                  : Dt(a);
          return (
            (A = v / A),
            (s.config = function (n, r) {
              return e(t, n, r);
            }),
            s
          );
        },
        kt = function e(t, n) {
          void 0 === n && (n = 1.70158);
          var r = function (e) {
              return e ? --e * e * ((n + 1) * e + n) + 1 : 0;
            },
            i =
              "out" === t
                ? r
                : "in" === t
                  ? function (e) {
                      return 1 - r(1 - e);
                    }
                  : Dt(r);
          return (
            (i.config = function (n) {
              return e(t, n);
            }),
            i
          );
        };
      (Ae("Linear,Quad,Cubic,Quart,Quint,Strong", function (e, t) {
        var n = t < 5 ? t + 1 : t;
        Pt(
          e + ",Power" + (n - 1),
          t
            ? function (e) {
                return Math.pow(e, n);
              }
            : function (e) {
                return e;
              },
          function (e) {
            return 1 - Math.pow(1 - e, n);
          },
          function (e) {
            return e < 0.5
              ? Math.pow(2 * e, n) / 2
              : 1 - Math.pow(2 * (1 - e), n) / 2;
          },
        );
      }),
        (Ft.Linear.easeNone = Ft.none = Ft.Linear.easeIn),
        Pt("Elastic", Nt("in"), Nt("out"), Nt()),
        (function (e, t) {
          var n = 1 / t,
            r = 2 * n,
            i = 2.5 * n,
            A = function (A) {
              return A < n
                ? e * A * A
                : A < r
                  ? e * Math.pow(A - 1.5 / t, 2) + 0.75
                  : A < i
                    ? e * (A -= 2.25 / t) * A + 0.9375
                    : e * Math.pow(A - 2.625 / t, 2) + 0.984375;
            };
          Pt(
            "Bounce",
            function (e) {
              return 1 - A(1 - e);
            },
            A,
          );
        })(7.5625, 2.75),
        Pt("Expo", function (e) {
          return e ? Math.pow(2, 10 * (e - 1)) : 0;
        }),
        Pt("Circ", function (e) {
          return -(B(1 - e * e) - 1);
        }),
        Pt("Sine", function (e) {
          return 1 === e ? 1 : 1 - b(e * y);
        }),
        Pt("Back", kt("in"), kt("out"), kt()),
        (Ft.SteppedEase =
          Ft.steps =
          k.SteppedEase =
            {
              config: function (e, t) {
                void 0 === e && (e = 1);
                var n = 1 / e,
                  r = e + (t ? 0 : 1),
                  i = t ? 1 : 0,
                  A = 1 - m;
                return function (e) {
                  return (((r * Ke(0, A, e)) | 0) + i) * n;
                };
              },
            }),
        (p.ease = Ft["quad.out"]),
        Ae(
          "onComplete,onUpdate,onStart,onRepeat,onReverseComplete,onInterrupt",
          function (e) {
            return (te += e + "," + e + "Params,");
          },
        ));
      var Gt = function (e, t) {
          ((this.id = w++),
            (e._gsap = this),
            (this.target = e),
            (this.harness = t),
            (this.get = t ? t.get : ie),
            (this.set = t ? t.getSetter : un));
        },
        Vt = (function () {
          function e(e) {
            ((this.vars = e),
              (this._delay = +e.delay || 0),
              (this._repeat = e.repeat === 1 / 0 ? -2 : e.repeat || 0) &&
                ((this._rDelay = e.repeatDelay || 0),
                (this._yoyo = !!e.yoyo || !!e.yoyoEase)),
              (this._ts = 1),
              Ne(this, +e.duration, 1, 1),
              (this.data = e.data),
              f || Mt.wake());
          }
          var t = e.prototype;
          return (
            (t.delay = function (e) {
              return e || 0 === e
                ? (this.parent &&
                    this.parent.smoothChildTiming &&
                    this.startTime(this._start + e - this._delay),
                  (this._delay = e),
                  this)
                : this._delay;
            }),
            (t.duration = function (e) {
              return arguments.length
                ? this.totalDuration(
                    this._repeat > 0
                      ? e + (e + this._rDelay) * this._repeat
                      : e,
                  )
                : this.totalDuration() && this._dur;
            }),
            (t.totalDuration = function (e) {
              return arguments.length
                ? ((this._dirty = 0),
                  Ne(
                    this,
                    this._repeat < 0
                      ? e
                      : (e - this._repeat * this._rDelay) / (this._repeat + 1),
                  ))
                : this._tDur;
            }),
            (t.totalTime = function (e, t) {
              if ((St(), !arguments.length)) return this._tTime;
              var n = this._dp;
              if (n && n.smoothChildTiming && this._ts) {
                (Ue(this, e), !n._dp || n.parent || Qe(n, this));
                while (n && n.parent)
                  (n.parent._time !==
                    n._start +
                      (n._ts >= 0
                        ? n._tTime / n._ts
                        : (n.totalDuration() - n._tTime) / -n._ts) &&
                    n.totalTime(n._tTime, !0),
                    (n = n.parent));
                !this.parent &&
                  this._dp.autoRemoveChildren &&
                  ((this._ts > 0 && e < this._tDur) ||
                    (this._ts < 0 && e > 0) ||
                    (!this._tDur && !e)) &&
                  Le(this._dp, this, this._start - this._delay);
              }
              return (
                (this._tTime !== e ||
                  (!this._dur && !t) ||
                  (this._initted && Math.abs(this._zTime) === m) ||
                  (!e && !this._initted && (this.add || this._ptLookup))) &&
                  (this._ts || (this._pTime = e), le(this, e, t)),
                this
              );
            }),
            (t.time = function (e, t) {
              return arguments.length
                ? this.totalTime(
                    Math.min(this.totalDuration(), e + Me(this)) %
                      (this._dur + this._rDelay) || (e ? this._dur : 0),
                    t,
                  )
                : this._time;
            }),
            (t.totalProgress = function (e, t) {
              return arguments.length
                ? this.totalTime(this.totalDuration() * e, t)
                : this.totalDuration()
                  ? Math.min(1, this._tTime / this._tDur)
                  : this.ratio;
            }),
            (t.progress = function (e, t) {
              return arguments.length
                ? this.totalTime(
                    this.duration() *
                      (!this._yoyo || 1 & this.iteration() ? e : 1 - e) +
                      Me(this),
                    t,
                  )
                : this.duration()
                  ? Math.min(1, this._time / this._dur)
                  : this.ratio;
            }),
            (t.iteration = function (e, t) {
              var n = this.duration() + this._rDelay;
              return arguments.length
                ? this.totalTime(this._time + (e - 1) * n, t)
                : this._repeat
                  ? Se(this._tTime, n) + 1
                  : 1;
            }),
            (t.timeScale = function (e) {
              if (!arguments.length) return this._rts === -m ? 0 : this._rts;
              if (this._rts === e) return this;
              var t =
                this.parent && this._ts
                  ? Fe(this.parent._time, this)
                  : this._tTime;
              return (
                (this._rts = +e || 0),
                (this._ts = this._ps || e === -m ? 0 : this._rts),
                this.totalTime(Ke(-this._delay, this._tDur, t), !0),
                Te(this),
                Ce(this)
              );
            }),
            (t.paused = function (e) {
              return arguments.length
                ? (this._ps !== e &&
                    ((this._ps = e),
                    e
                      ? ((this._pTime =
                          this._tTime ||
                          Math.max(-this._delay, this.rawTime())),
                        (this._ts = this._act = 0))
                      : (St(),
                        (this._ts = this._rts),
                        this.totalTime(
                          this.parent && !this.parent.smoothChildTiming
                            ? this.rawTime()
                            : this._tTime || this._pTime,
                          1 === this.progress() &&
                            Math.abs(this._zTime) !== m &&
                            (this._tTime -= m),
                        ))),
                  this)
                : this._ps;
            }),
            (t.startTime = function (e) {
              if (arguments.length) {
                this._start = e;
                var t = this.parent || this._dp;
                return (
                  t &&
                    (t._sort || !this.parent) &&
                    Le(t, this, e - this._delay),
                  this
                );
              }
              return this._start;
            }),
            (t.endTime = function (e) {
              return (
                this._start +
                (F(e) ? this.totalDuration() : this.duration()) /
                  Math.abs(this._ts || 1)
              );
            }),
            (t.rawTime = function (e) {
              var t = this.parent || this._dp;
              return t
                ? e &&
                  (!this._ts ||
                    (this._repeat && this._time && this.totalProgress() < 1))
                  ? this._tTime % (this._dur + this._rDelay)
                  : this._ts
                    ? Fe(t.rawTime(e), this)
                    : this._tTime
                : this._tTime;
            }),
            (t.globalTime = function (e) {
              var t = this,
                n = arguments.length ? e : t.rawTime();
              while (t) ((n = t._start + n / (t._ts || 1)), (t = t._dp));
              return n;
            }),
            (t.repeat = function (e) {
              return arguments.length
                ? ((this._repeat = e === 1 / 0 ? -2 : e), ke(this))
                : -2 === this._repeat
                  ? 1 / 0
                  : this._repeat;
            }),
            (t.repeatDelay = function (e) {
              if (arguments.length) {
                var t = this._time;
                return ((this._rDelay = e), ke(this), t ? this.time(t) : this);
              }
              return this._rDelay;
            }),
            (t.yoyo = function (e) {
              return arguments.length ? ((this._yoyo = e), this) : this._yoyo;
            }),
            (t.seek = function (e, t) {
              return this.totalTime(Ve(this, e), F(t));
            }),
            (t.restart = function (e, t) {
              return this.play().totalTime(e ? -this._delay : 0, F(t));
            }),
            (t.play = function (e, t) {
              return (
                null != e && this.seek(e, t),
                this.reversed(!1).paused(!1)
              );
            }),
            (t.reverse = function (e, t) {
              return (
                null != e && this.seek(e || this.totalDuration(), t),
                this.reversed(!0).paused(!1)
              );
            }),
            (t.pause = function (e, t) {
              return (null != e && this.seek(e, t), this.paused(!0));
            }),
            (t.resume = function () {
              return this.paused(!1);
            }),
            (t.reversed = function (e) {
              return arguments.length
                ? (!!e !== this.reversed() &&
                    this.timeScale(-this._rts || (e ? -m : 0)),
                  this)
                : this._rts < 0;
            }),
            (t.invalidate = function () {
              return (
                (this._initted = this._act = 0),
                (this._zTime = -m),
                this
              );
            }),
            (t.isActive = function () {
              var e,
                t = this.parent || this._dp,
                n = this._start;
              return !(
                t &&
                !(
                  this._ts &&
                  this._initted &&
                  t.isActive() &&
                  (e = t.rawTime(!0)) >= n &&
                  e < this.endTime(!0) - m
                )
              );
            }),
            (t.eventCallback = function (e, t, n) {
              var r = this.vars;
              return arguments.length > 1
                ? (t
                    ? ((r[e] = t),
                      n && (r[e + "Params"] = n),
                      "onUpdate" === e && (this._onUpdate = t))
                    : delete r[e],
                  this)
                : r[e];
            }),
            (t.then = function (e) {
              var t = this;
              return new Promise(function (n) {
                var r = C(e) ? e : fe,
                  i = function () {
                    var e = t.then;
                    ((t.then = null),
                      C(r) && (r = r(t)) && (r.then || r === t) && (t.then = e),
                      n(r),
                      (t.then = e));
                  };
                (t._initted && 1 === t.totalProgress() && t._ts >= 0) ||
                (!t._tTime && t._ts < 0)
                  ? i()
                  : (t._prom = i);
              });
            }),
            (t.kill = function () {
              gt(this);
            }),
            e
          );
        })();
      de(Vt.prototype, {
        _time: 0,
        _start: 0,
        _end: 0,
        _tTime: 0,
        _tDur: 0,
        _dirty: 0,
        _repeat: 0,
        _yoyo: !1,
        parent: null,
        _initted: !1,
        _rDelay: 0,
        _ts: 1,
        _dp: 0,
        ratio: 0,
        _zTime: -m,
        _prom: 0,
        _ps: !1,
        _rts: 1,
      });
      var zt = (function (e) {
        function t(t, n) {
          var i;
          return (
            void 0 === t && (t = {}),
            (i = e.call(this, t) || this),
            (i.labels = {}),
            (i.smoothChildTiming = !!t.smoothChildTiming),
            (i.autoRemoveChildren = !!t.autoRemoveChildren),
            (i._sort = F(t.sortChildren)),
            o && Le(t.parent || o, r(i), n),
            t.reversed && i.reverse(),
            t.paused && i.paused(!0),
            t.scrollTrigger && Ie(r(i), t.scrollTrigger),
            i
          );
        }
        i(t, e);
        var n = t.prototype;
        return (
          (n.to = function (e, t, n) {
            return (ze(0, arguments, this), this);
          }),
          (n.from = function (e, t, n) {
            return (ze(1, arguments, this), this);
          }),
          (n.fromTo = function (e, t, n, r) {
            return (ze(2, arguments, this), this);
          }),
          (n.set = function (e, t, n) {
            return (
              (t.duration = 0),
              (t.parent = this),
              ye(t).repeatDelay || (t.repeat = 0),
              (t.immediateRender = !!t.immediateRender),
              new An(e, t, Ve(this, n), 1),
              this
            );
          }),
          (n.call = function (e, t, n) {
            return Le(this, An.delayedCall(0, e, t), n);
          }),
          (n.staggerTo = function (e, t, n, r, i, A, o) {
            return (
              (n.duration = t),
              (n.stagger = n.stagger || r),
              (n.onComplete = A),
              (n.onCompleteParams = o),
              (n.parent = this),
              new An(e, n, Ve(this, i)),
              this
            );
          }),
          (n.staggerFrom = function (e, t, n, r, i, A, o) {
            return (
              (n.runBackwards = 1),
              (ye(n).immediateRender = F(n.immediateRender)),
              this.staggerTo(e, t, n, r, i, A, o)
            );
          }),
          (n.staggerFromTo = function (e, t, n, r, i, A, o, a) {
            return (
              (r.startAt = n),
              (ye(r).immediateRender = F(r.immediateRender)),
              this.staggerTo(e, t, r, i, A, o, a)
            );
          }),
          (n.render = function (e, t, n) {
            var r,
              i,
              A,
              a,
              s,
              c,
              u,
              l,
              h,
              f,
              d,
              p,
              g = this._time,
              v = this._dirty ? this.totalDuration() : this._tDur,
              y = this._dur,
              w = e <= 0 ? 0 : ae(e),
              B = this._zTime < 0 !== e < 0 && (this._initted || !y);
            if (
              (this !== o && w > v && e >= 0 && (w = v),
              w !== this._tTime || n || B)
            ) {
              if (
                (g !== this._time &&
                  y &&
                  ((w += this._time - g), (e += this._time - g)),
                (r = w),
                (h = this._start),
                (l = this._ts),
                (c = !l),
                B && (y || (g = this._zTime), (e || !t) && (this._zTime = e)),
                this._repeat)
              ) {
                if (
                  ((d = this._yoyo),
                  (s = y + this._rDelay),
                  this._repeat < -1 && e < 0)
                )
                  return this.totalTime(100 * s + e, t, n);
                if (
                  ((r = ae(w % s)),
                  w === v
                    ? ((a = this._repeat), (r = y))
                    : ((a = ~~(w / s)),
                      a && a === w / s && ((r = y), a--),
                      r > y && (r = y)),
                  (f = Se(this._tTime, s)),
                  !g && this._tTime && f !== a && (f = a),
                  d && 1 & a && ((r = y - r), (p = 1)),
                  a !== f && !this._lock)
                ) {
                  var b = d && 1 & f,
                    _ = b === (d && 1 & a);
                  if (
                    (a < f && (b = !b),
                    (g = b ? 0 : y),
                    (this._lock = 1),
                    (this.render(g || (p ? 0 : ae(a * s)), t, !y)._lock = 0),
                    (this._tTime = w),
                    !t && this.parent && pt(this, "onRepeat"),
                    this.vars.repeatRefresh &&
                      !p &&
                      (this.invalidate()._lock = 1),
                    (g && g !== this._time) ||
                      c !== !this._ts ||
                      (this.vars.onRepeat && !this.parent && !this._act))
                  )
                    return this;
                  if (
                    ((y = this._dur),
                    (v = this._tDur),
                    _ &&
                      ((this._lock = 2),
                      (g = b ? y : -1e-4),
                      this.render(g, !0),
                      this.vars.repeatRefresh && !p && this.invalidate()),
                    (this._lock = 0),
                    !this._ts && !c)
                  )
                    return this;
                  Ot(this, p);
                }
              }
              if (
                (this._hasPause &&
                  !this._forcing &&
                  this._lock < 2 &&
                  ((u = De(this, ae(g), ae(r))),
                  u && (w -= r - (r = u._start))),
                (this._tTime = w),
                (this._time = r),
                (this._act = !l),
                this._initted ||
                  ((this._onUpdate = this.vars.onUpdate),
                  (this._initted = 1),
                  (this._zTime = e),
                  (g = 0)),
                !g && r && !t && (pt(this, "onStart"), this._tTime !== w))
              )
                return this;
              if (r >= g && e >= 0) {
                i = this._first;
                while (i) {
                  if (
                    ((A = i._next),
                    (i._act || r >= i._start) && i._ts && u !== i)
                  ) {
                    if (i.parent !== this) return this.render(e, t, n);
                    if (
                      (i.render(
                        i._ts > 0
                          ? (r - i._start) * i._ts
                          : (i._dirty ? i.totalDuration() : i._tDur) +
                              (r - i._start) * i._ts,
                        t,
                        n,
                      ),
                      r !== this._time || (!this._ts && !c))
                    ) {
                      ((u = 0), A && (w += this._zTime = -m));
                      break;
                    }
                  }
                  i = A;
                }
              } else {
                i = this._last;
                var x = e < 0 ? e : r;
                while (i) {
                  if (
                    ((A = i._prev), (i._act || x <= i._end) && i._ts && u !== i)
                  ) {
                    if (i.parent !== this) return this.render(e, t, n);
                    if (
                      (i.render(
                        i._ts > 0
                          ? (x - i._start) * i._ts
                          : (i._dirty ? i.totalDuration() : i._tDur) +
                              (x - i._start) * i._ts,
                        t,
                        n,
                      ),
                      r !== this._time || (!this._ts && !c))
                    ) {
                      ((u = 0), A && (w += this._zTime = x ? -m : m));
                      break;
                    }
                  }
                  i = A;
                }
              }
              if (
                u &&
                !t &&
                (this.pause(),
                (u.render(r >= g ? 0 : -m)._zTime = r >= g ? 1 : -1),
                this._ts)
              )
                return ((this._start = h), Te(this), this.render(e, t, n));
              (this._onUpdate && !t && pt(this, "onUpdate", !0),
                ((w === v && this._tTime >= this.totalDuration()) ||
                  (!w && g)) &&
                  ((h !== this._start && Math.abs(l) === Math.abs(this._ts)) ||
                    this._lock ||
                    ((e || !y) &&
                      ((w === v && this._ts > 0) || (!w && this._ts < 0)) &&
                      _e(this, 1),
                    t ||
                      (e < 0 && !g) ||
                      (!w && !g && v) ||
                      (pt(
                        this,
                        w === v && e >= 0 ? "onComplete" : "onReverseComplete",
                        !0,
                      ),
                      this._prom &&
                        !(w < v && this.timeScale() > 0) &&
                        this._prom()))));
            }
            return this;
          }),
          (n.add = function (e, t) {
            var n = this;
            if ((E(t) || (t = Ve(this, t, e)), !(e instanceof Vt))) {
              if (L(e))
                return (
                  e.forEach(function (e) {
                    return n.add(e, t);
                  }),
                  this
                );
              if (x(e)) return this.addLabel(e, t);
              if (!C(e)) return this;
              e = An.delayedCall(0, e);
            }
            return this !== e ? Le(this, e, t) : this;
          }),
          (n.getChildren = function (e, t, n, r) {
            (void 0 === e && (e = !0),
              void 0 === t && (t = !0),
              void 0 === n && (n = !0),
              void 0 === r && (r = -g));
            var i = [],
              A = this._first;
            while (A)
              (A._start >= r &&
                (A instanceof An
                  ? t && i.push(A)
                  : (n && i.push(A),
                    e && i.push.apply(i, A.getChildren(!0, t, n)))),
                (A = A._next));
            return i;
          }),
          (n.getById = function (e) {
            var t = this.getChildren(1, 1, 1),
              n = t.length;
            while (n--) if (t[n].vars.id === e) return t[n];
          }),
          (n.remove = function (e) {
            return x(e)
              ? this.removeLabel(e)
              : C(e)
                ? this.killTweensOf(e)
                : (be(this, e),
                  e === this._recent && (this._recent = this._last),
                  xe(this));
          }),
          (n.totalTime = function (t, n) {
            return arguments.length
              ? ((this._forcing = 1),
                !this._dp &&
                  this._ts &&
                  (this._start = ae(
                    Mt.time -
                      (this._ts > 0
                        ? t / this._ts
                        : (this.totalDuration() - t) / -this._ts),
                  )),
                e.prototype.totalTime.call(this, t, n),
                (this._forcing = 0),
                this)
              : this._tTime;
          }),
          (n.addLabel = function (e, t) {
            return ((this.labels[e] = Ve(this, t)), this);
          }),
          (n.removeLabel = function (e) {
            return (delete this.labels[e], this);
          }),
          (n.addPause = function (e, t, n) {
            var r = An.delayedCall(0, t || W, n);
            return (
              (r.data = "isPause"),
              (this._hasPause = 1),
              Le(this, r, Ve(this, e))
            );
          }),
          (n.removePause = function (e) {
            var t = this._first;
            e = Ve(this, e);
            while (t)
              (t._start === e && "isPause" === t.data && _e(t), (t = t._next));
          }),
          (n.killTweensOf = function (e, t, n) {
            var r = this.getTweensOf(e, n),
              i = r.length;
            while (i--) jt !== r[i] && r[i].kill(e, t);
            return this;
          }),
          (n.getTweensOf = function (e, t) {
            var n,
              r = [],
              i = Ze(e),
              A = this._first,
              o = E(t);
            while (A)
              (A instanceof An
                ? ce(A._targets, i) &&
                  (o
                    ? (!jt || (A._initted && A._ts)) &&
                      A.globalTime(0) <= t &&
                      A.globalTime(A.totalDuration()) > t
                    : !t || A.isActive()) &&
                  r.push(A)
                : (n = A.getTweensOf(i, t)).length && r.push.apply(r, n),
                (A = A._next));
            return r;
          }),
          (n.tweenTo = function (e, t) {
            t = t || {};
            var n,
              r = this,
              i = Ve(r, e),
              A = t,
              o = A.startAt,
              a = A.onStart,
              s = A.onStartParams,
              c = A.immediateRender,
              u = An.to(
                r,
                de(
                  {
                    ease: t.ease || "none",
                    lazy: !1,
                    immediateRender: !1,
                    time: i,
                    overwrite: "auto",
                    duration:
                      t.duration ||
                      Math.abs(
                        (i - (o && "time" in o ? o.time : r._time)) /
                          r.timeScale(),
                      ) ||
                      m,
                    onStart: function () {
                      if ((r.pause(), !n)) {
                        var e =
                          t.duration ||
                          Math.abs(
                            (i - (o && "time" in o ? o.time : r._time)) /
                              r.timeScale(),
                          );
                        (u._dur !== e && Ne(u, e, 0, 1).render(u._time, !0, !0),
                          (n = 1));
                      }
                      a && a.apply(u, s || []);
                    },
                  },
                  t,
                ),
              );
            return c ? u.render(0) : u;
          }),
          (n.tweenFromTo = function (e, t, n) {
            return this.tweenTo(t, de({ startAt: { time: Ve(this, e) } }, n));
          }),
          (n.recent = function () {
            return this._recent;
          }),
          (n.nextLabel = function (e) {
            return (void 0 === e && (e = this._time), dt(this, Ve(this, e)));
          }),
          (n.previousLabel = function (e) {
            return (void 0 === e && (e = this._time), dt(this, Ve(this, e), 1));
          }),
          (n.currentLabel = function (e) {
            return arguments.length
              ? this.seek(e, !0)
              : this.previousLabel(this._time + m);
          }),
          (n.shiftChildren = function (e, t, n) {
            void 0 === n && (n = 0);
            var r,
              i = this._first,
              A = this.labels;
            while (i)
              (i._start >= n && ((i._start += e), (i._end += e)),
                (i = i._next));
            if (t) for (r in A) A[r] >= n && (A[r] += e);
            return xe(this);
          }),
          (n.invalidate = function () {
            var t = this._first;
            this._lock = 0;
            while (t) (t.invalidate(), (t = t._next));
            return e.prototype.invalidate.call(this);
          }),
          (n.clear = function (e) {
            void 0 === e && (e = !0);
            var t,
              n = this._first;
            while (n) ((t = n._next), this.remove(n), (n = t));
            return (
              this._dp && (this._time = this._tTime = this._pTime = 0),
              e && (this.labels = {}),
              xe(this)
            );
          }),
          (n.totalDuration = function (e) {
            var t,
              n,
              r,
              i = 0,
              A = this,
              a = A._last,
              s = g;
            if (arguments.length)
              return A.timeScale(
                (A._repeat < 0 ? A.duration() : A.totalDuration()) /
                  (A.reversed() ? -e : e),
              );
            if (A._dirty) {
              r = A.parent;
              while (a)
                ((t = a._prev),
                  a._dirty && a.totalDuration(),
                  (n = a._start),
                  n > s && A._sort && a._ts && !A._lock
                    ? ((A._lock = 1), (Le(A, a, n - a._delay, 1)._lock = 0))
                    : (s = n),
                  n < 0 &&
                    a._ts &&
                    ((i -= n),
                    ((!r && !A._dp) || (r && r.smoothChildTiming)) &&
                      ((A._start += n / A._ts),
                      (A._time -= n),
                      (A._tTime -= n)),
                    A.shiftChildren(-n, !1, -Infinity),
                    (s = 0)),
                  a._end > i && a._ts && (i = a._end),
                  (a = t));
              (Ne(A, A === o && A._time > i ? A._time : i, 1, 1),
                (A._dirty = 0));
            }
            return A._tDur;
          }),
          (t.updateRoot = function (e) {
            if ((o._ts && (le(o, Fe(e, o)), (l = Mt.frame)), Mt.frame >= $)) {
              $ += d.autoSleep || 120;
              var t = o._first;
              if ((!t || !t._ts) && d.autoSleep && Mt._listeners.length < 2) {
                while (t && !t._ts) t = t._next;
                t || Mt.sleep();
              }
            }
          }),
          t
        );
      })(Vt);
      de(zt.prototype, { _lock: 0, _hasPause: 0, _forcing: 0 });
      var jt,
        Kt,
        Wt = function (e, t, n, r, i, A, o) {
          var a,
            s,
            c,
            u,
            l,
            h,
            f,
            d,
            p = new yn(this._pt, e, t, 0, 1, fn, null, i),
            g = 0,
            m = 0;
          ((p.b = n),
            (p.e = r),
            (n += ""),
            (r += ""),
            (f = ~r.indexOf("random(")) && (r = lt(r)),
            A && ((d = [n, r]), A(d, e, t), (n = d[0]), (r = d[1])),
            (s = n.match(R) || []));
          while ((a = R.exec(r)))
            ((u = a[0]),
              (l = r.substring(g, a.index)),
              c ? (c = (c + 1) % 5) : "rgba(" === l.substr(-5) && (c = 1),
              u !== s[m++] &&
                ((h = parseFloat(s[m - 1]) || 0),
                (p._pt = {
                  _next: p._pt,
                  p: l || 1 === m ? l : ",",
                  s: h,
                  c: "=" === u.charAt(1) ? se(h, u) - h : parseFloat(u) - h,
                  m: c && c < 4 ? Math.round : 0,
                }),
                (g = R.lastIndex)));
          return (
            (p.c = g < r.length ? r.substring(g, r.length) : ""),
            (p.fp = o),
            (P.test(r) || f) && (p.e = 0),
            (this._pt = p),
            p
          );
        },
        Xt = function (e, t, n, r, i, A, o, a, s) {
          C(r) && (r = r(i || 0, e, A));
          var c,
            u = e[t],
            l =
              "get" !== n
                ? n
                : C(u)
                  ? s
                    ? e[
                        t.indexOf("set") || !C(e["get" + t.substr(3)])
                          ? t
                          : "get" + t.substr(3)
                      ](s)
                    : e[t]()
                  : u,
            h = C(u) ? (s ? sn : an) : on;
          if (
            (x(r) &&
              (~r.indexOf("random(") && (r = lt(r)),
              "=" === r.charAt(1) &&
                ((c = se(l, r) + (We(l) || 0)), (c || 0 === c) && (r = c))),
            l !== r || Kt)
          )
            return isNaN(l * r) || "" === r
              ? (!u && !(t in e) && z(t, r),
                Wt.call(this, e, t, l, r, h, a || d.stringFilter, s))
              : ((c = new yn(
                  this._pt,
                  e,
                  t,
                  +l || 0,
                  r - (l || 0),
                  "boolean" === typeof u ? hn : ln,
                  0,
                  h,
                )),
                s && (c.fp = s),
                o && c.modifier(o, this, e),
                (this._pt = c));
        },
        Yt = function (e, t, n, r, i) {
          if (
            (C(e) && (e = tn(e, i, t, n, r)),
            !S(e) || (e.style && e.nodeType) || L(e) || Q(e))
          )
            return x(e) ? tn(e, i, t, n, r) : e;
          var A,
            o = {};
          for (A in e) o[A] = tn(e[A], i, t, n, r);
          return o;
        },
        Jt = function (e, t, n, r, i, A) {
          var o, a, s, c;
          if (
            q[e] &&
            !1 !==
              (o = new q[e]()).init(
                i,
                o.rawVars ? t[e] : Yt(t[e], r, i, A, n),
                n,
                r,
                A,
              ) &&
            ((n._pt = a =
              new yn(n._pt, i, e, 0, 1, o.render, o, 0, o.priority)),
            n !== h)
          ) {
            ((s = n._ptLookup[n._targets.indexOf(i)]), (c = o._props.length));
            while (c--) s[o._props[c]] = a;
          }
          return o;
        },
        qt = function e(t, n) {
          var r,
            i,
            a,
            s,
            c,
            u,
            l,
            h,
            f,
            d,
            v,
            y,
            w,
            B = t.vars,
            b = B.ease,
            _ = B.startAt,
            x = B.immediateRender,
            C = B.lazy,
            E = B.onUpdate,
            M = B.onUpdateParams,
            S = B.callbackScope,
            T = B.runBackwards,
            U = B.yoyoEase,
            Q = B.keyframes,
            L = B.autoRevert,
            I = t._dur,
            H = t._startAt,
            O = t._targets,
            R = t.parent,
            P = R && "nested" === R.data ? R.parent._targets : O,
            D = "auto" === t._overwrite && !A,
            N = t.timeline;
          if (
            (N && (!Q || !b) && (b = "none"),
            (t._ease = Rt(b, p.ease)),
            (t._yEase = U ? Ht(Rt(!0 === U ? b : U, p.ease)) : 0),
            U &&
              t._yoyo &&
              !t._repeat &&
              ((U = t._yEase), (t._yEase = t._ease), (t._ease = U)),
            (t._from = !N && !!B.runBackwards),
            !N || (Q && !B.stagger))
          ) {
            if (
              ((h = O[0] ? re(O[0]).harness : 0),
              (y = h && B[h.prop]),
              (r = ve(B, X)),
              H && (_e(H.render(-1, !0)), (H._lazy = 0)),
              _)
            )
              if (
                (_e(
                  (t._startAt = An.set(
                    O,
                    de(
                      {
                        data: "isStart",
                        overwrite: !1,
                        parent: R,
                        immediateRender: !0,
                        lazy: F(C),
                        startAt: null,
                        delay: 0,
                        onUpdate: E,
                        onUpdateParams: M,
                        callbackScope: S,
                        stagger: 0,
                      },
                      _,
                    ),
                  )),
                ),
                n < 0 && !x && !L && t._startAt.render(-1, !0),
                x)
              ) {
                if ((n > 0 && !L && (t._startAt = 0), I && n <= 0))
                  return void (n && (t._zTime = n));
              } else !1 === L && (t._startAt = 0);
            else if (T && I)
              if (H) !L && (t._startAt = 0);
              else if (
                (n && (x = !1),
                (a = de(
                  {
                    overwrite: !1,
                    data: "isFromStart",
                    lazy: x && F(C),
                    immediateRender: x,
                    stagger: 0,
                    parent: R,
                  },
                  r,
                )),
                y && (a[h.prop] = y),
                _e((t._startAt = An.set(O, a))),
                n < 0 && t._startAt.render(-1, !0),
                (t._zTime = n),
                x)
              ) {
                if (!n) return;
              } else e(t._startAt, m);
            for (
              t._pt = t._ptCache = 0, C = (I && F(C)) || (C && !I), i = 0;
              i < O.length;
              i++
            ) {
              if (
                ((c = O[i]),
                (l = c._gsap || ne(O)[i]._gsap),
                (t._ptLookup[i] = d = {}),
                J[l.id] && Y.length && ue(),
                (v = P === O ? i : P.indexOf(c)),
                h &&
                  !1 !== (f = new h()).init(c, y || r, t, v, P) &&
                  ((t._pt = s =
                    new yn(t._pt, c, f.name, 0, 1, f.render, f, 0, f.priority)),
                  f._props.forEach(function (e) {
                    d[e] = s;
                  }),
                  f.priority && (u = 1)),
                !h || y)
              )
                for (a in r)
                  q[a] && (f = Jt(a, r, t, v, c, P))
                    ? f.priority && (u = 1)
                    : (d[a] = s =
                        Xt.call(t, c, a, "get", r[a], v, P, 0, B.stringFilter));
              (t._op && t._op[i] && t.kill(c, t._op[i]),
                D &&
                  t._pt &&
                  ((jt = t),
                  o.killTweensOf(c, d, t.globalTime(n)),
                  (w = !t.parent),
                  (jt = 0)),
                t._pt && C && (J[l.id] = 1));
            }
            (u && vn(t), t._onInit && t._onInit(t));
          }
          ((t._onUpdate = E),
            (t._initted = (!t._op || t._pt) && !w),
            Q && n <= 0 && N.render(g, !0, !0));
        },
        Zt = function (e, t, n, r, i, A, o) {
          var a,
            s,
            c,
            u = ((e._pt && e._ptCache) || (e._ptCache = {}))[t];
          if (!u) {
            ((u = e._ptCache[t] = []),
              (s = e._ptLookup),
              (c = e._targets.length));
            while (c--) {
              if (((a = s[c][t]), a && a.d && a.d._pt)) {
                a = a.d._pt;
                while (a && a.p !== t) a = a._next;
              }
              if (!a)
                return ((Kt = 1), (e.vars[t] = "+=0"), qt(e, o), (Kt = 0), 1);
              u.push(a);
            }
          }
          c = u.length;
          while (c--)
            ((a = u[c]),
              (a.s = (!r && 0 !== r) || i ? a.s + (r || 0) + A * a.c : r),
              (a.c = n - a.s),
              a.e && (a.e = oe(n) + We(a.e)),
              a.b && (a.b = a.s + We(a.b)));
        },
        $t = function (e, t) {
          var n,
            r,
            i,
            A,
            o = e[0] ? re(e[0]).harness : 0,
            a = o && o.aliases;
          if (!a) return t;
          for (r in ((n = ge({}, t)), a))
            if (r in n) {
              ((A = a[r].split(",")), (i = A.length));
              while (i--) n[A[i]] = n[r];
            }
          return n;
        },
        en = function (e, t, n, r) {
          var i,
            A,
            o = t.ease || r || "power1.inOut";
          if (L(t))
            ((A = n[e] || (n[e] = [])),
              t.forEach(function (e, n) {
                return A.push({ t: (n / (t.length - 1)) * 100, v: e, e: o });
              }));
          else
            for (i in t)
              ((A = n[i] || (n[i] = [])),
                "ease" === i || A.push({ t: parseFloat(e), v: t[i], e: o }));
        },
        tn = function (e, t, n, r, i) {
          return C(e)
            ? e.call(t, n, r, i)
            : x(e) && ~e.indexOf("random(")
              ? lt(e)
              : e;
        },
        nn = te + "repeat,repeatDelay,yoyo,repeatRefresh,yoyoEase,autoRevert",
        rn = {};
      Ae(nn + ",id,stagger,delay,duration,paused,scrollTrigger", function (e) {
        return (rn[e] = 1);
      });
      var An = (function (e) {
        function t(t, n, i, a) {
          var s;
          ("number" === typeof n && ((i.duration = n), (n = i), (i = null)),
            (s = e.call(this, a ? n : ye(n)) || this));
          var c,
            u,
            l,
            h,
            f,
            p,
            g,
            v,
            y = s.vars,
            w = y.duration,
            B = y.delay,
            b = y.immediateRender,
            _ = y.stagger,
            x = y.overwrite,
            C = y.keyframes,
            M = y.defaults,
            T = y.scrollTrigger,
            I = y.yoyoEase,
            H = n.parent || o,
            O = (L(t) || Q(t) ? E(t[0]) : "length" in n) ? [t] : Ze(t);
          if (
            ((s._targets = O.length
              ? ne(O)
              : j(
                  "GSAP target " + t + " not found. https://greensock.com",
                  !d.nullTargetWarn,
                ) || []),
            (s._ptLookup = []),
            (s._overwrite = x),
            C || _ || U(w) || U(B))
          ) {
            if (
              ((n = s.vars),
              (c = s.timeline = new zt({ data: "nested", defaults: M || {} })),
              c.kill(),
              (c.parent = c._dp = r(s)),
              (c._start = 0),
              _ || U(w) || U(B))
            ) {
              if (((h = O.length), (g = _ && tt(_)), S(_)))
                for (f in _) ~nn.indexOf(f) && (v || (v = {}), (v[f] = _[f]));
              for (u = 0; u < h; u++)
                ((l = ve(n, rn)),
                  (l.stagger = 0),
                  I && (l.yoyoEase = I),
                  v && ge(l, v),
                  (p = O[u]),
                  (l.duration = +tn(w, r(s), u, p, O)),
                  (l.delay = (+tn(B, r(s), u, p, O) || 0) - s._delay),
                  !_ &&
                    1 === h &&
                    l.delay &&
                    ((s._delay = B = l.delay), (s._start += B), (l.delay = 0)),
                  c.to(p, l, g ? g(u, p, O) : 0),
                  (c._ease = Ft.none));
              c.duration() ? (w = B = 0) : (s.timeline = 0);
            } else if (C) {
              (ye(de(c.vars.defaults, { ease: "none" })),
                (c._ease = Rt(C.ease || n.ease || "none")));
              var R,
                P,
                D,
                N = 0;
              if (L(C))
                C.forEach(function (e) {
                  return c.to(O, e, ">");
                });
              else {
                for (f in ((l = {}), C))
                  "ease" === f ||
                    "easeEach" === f ||
                    en(f, C[f], l, C.easeEach);
                for (f in l)
                  for (
                    R = l[f].sort(function (e, t) {
                      return e.t - t.t;
                    }),
                      N = 0,
                      u = 0;
                    u < R.length;
                    u++
                  )
                    ((P = R[u]),
                      (D = {
                        ease: P.e,
                        duration: ((P.t - (u ? R[u - 1].t : 0)) / 100) * w,
                      }),
                      (D[f] = P.v),
                      c.to(O, D, N),
                      (N += D.duration));
                c.duration() < w && c.to({}, { duration: w - c.duration() });
              }
            }
            w || s.duration((w = c.duration()));
          } else s.timeline = 0;
          return (
            !0 !== x || A || ((jt = r(s)), o.killTweensOf(O), (jt = 0)),
            Le(H, r(s), i),
            n.reversed && s.reverse(),
            n.paused && s.paused(!0),
            (b ||
              (!w &&
                !C &&
                s._start === ae(H._time) &&
                F(b) &&
                Ee(r(s)) &&
                "nested" !== H.data)) &&
              ((s._tTime = -m), s.render(Math.max(0, -B))),
            T && Ie(r(s), T),
            s
          );
        }
        i(t, e);
        var n = t.prototype;
        return (
          (n.render = function (e, t, n) {
            var r,
              i,
              A,
              o,
              a,
              s,
              c,
              u,
              l,
              h = this._time,
              f = this._tDur,
              d = this._dur,
              p = e > f - m && e >= 0 ? f : e < m ? 0 : e;
            if (d) {
              if (
                p !== this._tTime ||
                !e ||
                n ||
                (!this._initted && this._tTime) ||
                (this._startAt && this._zTime < 0 !== e < 0)
              ) {
                if (((r = p), (u = this.timeline), this._repeat)) {
                  if (((o = d + this._rDelay), this._repeat < -1 && e < 0))
                    return this.totalTime(100 * o + e, t, n);
                  if (
                    ((r = ae(p % o)),
                    p === f
                      ? ((A = this._repeat), (r = d))
                      : ((A = ~~(p / o)),
                        A && A === p / o && ((r = d), A--),
                        r > d && (r = d)),
                    (s = this._yoyo && 1 & A),
                    s && ((l = this._yEase), (r = d - r)),
                    (a = Se(this._tTime, o)),
                    r === h && !n && this._initted)
                  )
                    return ((this._tTime = p), this);
                  A !== a &&
                    (u && this._yEase && Ot(u, s),
                    !this.vars.repeatRefresh ||
                      s ||
                      this._lock ||
                      ((this._lock = n = 1),
                      (this.render(ae(o * A), !0).invalidate()._lock = 0)));
                }
                if (!this._initted) {
                  if (He(this, e < 0 ? e : r, n, t))
                    return ((this._tTime = 0), this);
                  if (h !== this._time) return this;
                  if (d !== this._dur) return this.render(e, t, n);
                }
                if (
                  ((this._tTime = p),
                  (this._time = r),
                  !this._act && this._ts && ((this._act = 1), (this._lazy = 0)),
                  (this.ratio = c = (l || this._ease)(r / d)),
                  this._from && (this.ratio = c = 1 - c),
                  r && !h && !t && (pt(this, "onStart"), this._tTime !== p))
                )
                  return this;
                i = this._pt;
                while (i) (i.r(c, i.d), (i = i._next));
                ((u &&
                  u.render(
                    e < 0 ? e : !r && s ? -m : u._dur * u._ease(r / this._dur),
                    t,
                    n,
                  )) ||
                  (this._startAt && (this._zTime = e)),
                  this._onUpdate &&
                    !t &&
                    (e < 0 && this._startAt && this._startAt.render(e, !0, n),
                    pt(this, "onUpdate")),
                  this._repeat &&
                    A !== a &&
                    this.vars.onRepeat &&
                    !t &&
                    this.parent &&
                    pt(this, "onRepeat"),
                  (p !== this._tDur && p) ||
                    this._tTime !== p ||
                    (e < 0 &&
                      this._startAt &&
                      !this._onUpdate &&
                      this._startAt.render(e, !0, !0),
                    (e || !d) &&
                      ((p === this._tDur && this._ts > 0) ||
                        (!p && this._ts < 0)) &&
                      _e(this, 1),
                    t ||
                      (e < 0 && !h) ||
                      (!p && !h) ||
                      (pt(
                        this,
                        p === f ? "onComplete" : "onReverseComplete",
                        !0,
                      ),
                      this._prom &&
                        !(p < f && this.timeScale() > 0) &&
                        this._prom())));
              }
            } else Pe(this, e, t, n);
            return this;
          }),
          (n.targets = function () {
            return this._targets;
          }),
          (n.invalidate = function () {
            return (
              (this._pt =
                this._op =
                this._startAt =
                this._onUpdate =
                this._lazy =
                this.ratio =
                  0),
              (this._ptLookup = []),
              this.timeline && this.timeline.invalidate(),
              e.prototype.invalidate.call(this)
            );
          }),
          (n.resetTo = function (e, t, n, r) {
            (f || Mt.wake(), this._ts || this.play());
            var i,
              A = Math.min(
                this._dur,
                (this._dp._time - this._start) * this._ts,
              );
            return (
              this._initted || qt(this, A),
              (i = this._ease(A / this._dur)),
              Zt(this, e, t, n, r, i, A)
                ? this.resetTo(e, t, n, r)
                : (Ue(this, 0),
                  this.parent ||
                    Be(
                      this._dp,
                      this,
                      "_first",
                      "_last",
                      this._dp._sort ? "_start" : 0,
                    ),
                  this.render(0))
            );
          }),
          (n.kill = function (e, t) {
            if ((void 0 === t && (t = "all"), !e && (!t || "all" === t)))
              return (
                (this._lazy = this._pt = 0),
                this.parent ? gt(this) : this
              );
            if (this.timeline) {
              var n = this.timeline.totalDuration();
              return (
                this.timeline.killTweensOf(e, t, jt && !0 !== jt.vars.overwrite)
                  ._first || gt(this),
                this.parent &&
                  n !== this.timeline.totalDuration() &&
                  Ne(this, (this._dur * this.timeline._tDur) / n, 0, 1),
                this
              );
            }
            var r,
              i,
              A,
              o,
              a,
              s,
              c,
              u = this._targets,
              l = e ? Ze(e) : u,
              h = this._ptLookup,
              f = this._pt;
            if ((!t || "all" === t) && we(u, l))
              return ("all" === t && (this._pt = 0), gt(this));
            ((r = this._op = this._op || []),
              "all" !== t &&
                (x(t) &&
                  ((a = {}),
                  Ae(t, function (e) {
                    return (a[e] = 1);
                  }),
                  (t = a)),
                (t = $t(u, t))),
              (c = u.length));
            while (c--)
              if (~l.indexOf(u[c]))
                for (a in ((i = h[c]),
                "all" === t
                  ? ((r[c] = t), (o = i), (A = {}))
                  : ((A = r[c] = r[c] || {}), (o = t)),
                o))
                  ((s = i && i[a]),
                    s &&
                      (("kill" in s.d && !0 !== s.d.kill(a)) ||
                        be(this, s, "_pt"),
                      delete i[a]),
                    "all" !== A && (A[a] = 1));
            return (this._initted && !this._pt && f && gt(this), this);
          }),
          (t.to = function (e, n) {
            return new t(e, n, arguments[2]);
          }),
          (t.from = function (e, t) {
            return ze(1, arguments);
          }),
          (t.delayedCall = function (e, n, r, i) {
            return new t(n, 0, {
              immediateRender: !1,
              lazy: !1,
              overwrite: !1,
              delay: e,
              onComplete: n,
              onReverseComplete: n,
              onCompleteParams: r,
              onReverseCompleteParams: r,
              callbackScope: i,
            });
          }),
          (t.fromTo = function (e, t, n) {
            return ze(2, arguments);
          }),
          (t.set = function (e, n) {
            return (
              (n.duration = 0),
              n.repeatDelay || (n.repeat = 0),
              new t(e, n)
            );
          }),
          (t.killTweensOf = function (e, t, n) {
            return o.killTweensOf(e, t, n);
          }),
          t
        );
      })(Vt);
      (de(An.prototype, {
        _targets: [],
        _lazy: 0,
        _startAt: 0,
        _op: 0,
        _onInit: 0,
      }),
        Ae("staggerTo,staggerFrom,staggerFromTo", function (e) {
          An[e] = function () {
            var t = new zt(),
              n = Ye.call(arguments, 0);
            return (
              n.splice("staggerFromTo" === e ? 5 : 4, 0, 0),
              t[e].apply(t, n)
            );
          };
        }));
      var on = function (e, t, n) {
          return (e[t] = n);
        },
        an = function (e, t, n) {
          return e[t](n);
        },
        sn = function (e, t, n, r) {
          return e[t](r.fp, n);
        },
        cn = function (e, t, n) {
          return e.setAttribute(t, n);
        },
        un = function (e, t) {
          return C(e[t]) ? an : M(e[t]) && e.setAttribute ? cn : on;
        },
        ln = function (e, t) {
          return t.set(t.t, t.p, Math.round(1e6 * (t.s + t.c * e)) / 1e6, t);
        },
        hn = function (e, t) {
          return t.set(t.t, t.p, !!(t.s + t.c * e), t);
        },
        fn = function (e, t) {
          var n = t._pt,
            r = "";
          if (!e && t.b) r = t.b;
          else if (1 === e && t.e) r = t.e;
          else {
            while (n)
              ((r =
                n.p +
                (n.m
                  ? n.m(n.s + n.c * e)
                  : Math.round(1e4 * (n.s + n.c * e)) / 1e4) +
                r),
                (n = n._next));
            r += t.c;
          }
          t.set(t.t, t.p, r, t);
        },
        dn = function (e, t) {
          var n = t._pt;
          while (n) (n.r(e, n.d), (n = n._next));
        },
        pn = function (e, t, n, r) {
          var i,
            A = this._pt;
          while (A) ((i = A._next), A.p === r && A.modifier(e, t, n), (A = i));
        },
        gn = function (e) {
          var t,
            n,
            r = this._pt;
          while (r)
            ((n = r._next),
              (r.p === e && !r.op) || r.op === e
                ? be(this, r, "_pt")
                : r.dep || (t = 1),
              (r = n));
          return !t;
        },
        mn = function (e, t, n, r) {
          r.mSet(e, t, r.m.call(r.tween, n, r.mt), r);
        },
        vn = function (e) {
          var t,
            n,
            r,
            i,
            A = e._pt;
          while (A) {
            ((t = A._next), (n = r));
            while (n && n.pr > A.pr) n = n._next;
            ((A._prev = n ? n._prev : i) ? (A._prev._next = A) : (r = A),
              (A._next = n) ? (n._prev = A) : (i = A),
              (A = t));
          }
          e._pt = r;
        },
        yn = (function () {
          function e(e, t, n, r, i, A, o, a, s) {
            ((this.t = t),
              (this.s = r),
              (this.c = i),
              (this.p = n),
              (this.r = A || ln),
              (this.d = o || this),
              (this.set = a || on),
              (this.pr = s || 0),
              (this._next = e),
              e && (e._prev = this));
          }
          var t = e.prototype;
          return (
            (t.modifier = function (e, t, n) {
              ((this.mSet = this.mSet || this.set),
                (this.set = mn),
                (this.m = e),
                (this.mt = n),
                (this.tween = t));
            }),
            e
          );
        })();
      (Ae(
        te +
          "parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger",
        function (e) {
          return (X[e] = 1);
        },
      ),
        (k.TweenMax = k.TweenLite = An),
        (k.TimelineLite = k.TimelineMax = zt),
        (o = new zt({
          sortChildren: !1,
          defaults: p,
          autoRemoveChildren: !0,
          id: "root",
          smoothChildTiming: !0,
        })),
        (d.stringFilter = Et));
      var wn = {
        registerPlugin: function () {
          for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++)
            t[n] = arguments[n];
          t.forEach(function (e) {
            return mt(e);
          });
        },
        timeline: function (e) {
          return new zt(e);
        },
        getTweensOf: function (e, t) {
          return o.getTweensOf(e, t);
        },
        getProperty: function (e, t, n, r) {
          x(e) && (e = Ze(e)[0]);
          var i = re(e || {}).get,
            A = n ? fe : he;
          return (
            "native" === n && (n = ""),
            e
              ? t
                ? A(((q[t] && q[t].get) || i)(e, t, n, r))
                : function (t, n, r) {
                    return A(((q[t] && q[t].get) || i)(e, t, n, r));
                  }
              : e
          );
        },
        quickSetter: function (e, t, n) {
          if (((e = Ze(e)), e.length > 1)) {
            var r = e.map(function (e) {
                return xn.quickSetter(e, t, n);
              }),
              i = r.length;
            return function (e) {
              var t = i;
              while (t--) r[t](e);
            };
          }
          e = e[0] || {};
          var A = q[t],
            o = re(e),
            a = (o.harness && (o.harness.aliases || {})[t]) || t,
            s = A
              ? function (t) {
                  var r = new A();
                  ((h._pt = 0),
                    r.init(e, n ? t + n : t, h, 0, [e]),
                    r.render(1, r),
                    h._pt && dn(1, h));
                }
              : o.set(e, a);
          return A
            ? s
            : function (t) {
                return s(e, a, n ? t + n : t, o, 1);
              };
        },
        quickTo: function (e, t, n) {
          var r,
            i = xn.to(
              e,
              ge(((r = {}), (r[t] = "+=0.1"), (r.paused = !0), r), n || {}),
            ),
            A = function (e, n, r) {
              return i.resetTo(t, e, n, r);
            };
          return ((A.tween = i), A);
        },
        isTweening: function (e) {
          return o.getTweensOf(e, !0).length > 0;
        },
        defaults: function (e) {
          return (e && e.ease && (e.ease = Rt(e.ease, p.ease)), me(p, e || {}));
        },
        config: function (e) {
          return me(d, e || {});
        },
        registerEffect: function (e) {
          var t = e.name,
            n = e.effect,
            r = e.plugins,
            i = e.defaults,
            A = e.extendTimeline;
          ((r || "").split(",").forEach(function (e) {
            return (
              e && !q[e] && !k[e] && j(t + " effect requires " + e + " plugin.")
            );
          }),
            (Z[t] = function (e, t, r) {
              return n(Ze(e), de(t || {}, i), r);
            }),
            A &&
              (zt.prototype[t] = function (e, n, r) {
                return this.add(Z[t](e, S(n) ? n : (r = n) && {}, this), r);
              }));
        },
        registerEase: function (e, t) {
          Ft[e] = Rt(t);
        },
        parseEase: function (e, t) {
          return arguments.length ? Rt(e, t) : Ft;
        },
        getById: function (e) {
          return o.getById(e);
        },
        exportRoot: function (e, t) {
          void 0 === e && (e = {});
          var n,
            r,
            i = new zt(e);
          ((i.smoothChildTiming = F(e.smoothChildTiming)),
            o.remove(i),
            (i._dp = 0),
            (i._time = i._tTime = o._time),
            (n = o._first));
          while (n)
            ((r = n._next),
              (!t &&
                !n._dur &&
                n instanceof An &&
                n.vars.onComplete === n._targets[0]) ||
                Le(i, n, n._start - n._delay),
              (n = r));
          return (Le(o, i, 0), i);
        },
        utils: {
          wrap: ct,
          wrapYoyo: ut,
          distribute: tt,
          random: it,
          snap: rt,
          normalize: at,
          getUnit: We,
          clamp: Xe,
          splitColor: Bt,
          toArray: Ze,
          selector: $e,
          mapRange: ht,
          pipe: At,
          unitize: ot,
          interpolate: ft,
          shuffle: et,
        },
        install: V,
        effects: Z,
        ticker: Mt,
        updateRoot: zt.updateRoot,
        plugins: q,
        globalTimeline: o,
        core: {
          PropTween: yn,
          globals: K,
          Tween: An,
          Timeline: zt,
          Animation: Vt,
          getCache: re,
          _removeLinkedListItem: be,
          suppressOverwrites: function (e) {
            return (A = e);
          },
        },
      };
      (Ae("to,from,fromTo,delayedCall,set,killTweensOf", function (e) {
        return (wn[e] = An[e]);
      }),
        Mt.add(zt.updateRoot),
        (h = wn.to({}, { duration: 0 })));
      var Bn = function (e, t) {
          var n = e._pt;
          while (n && n.p !== t && n.op !== t && n.fp !== t) n = n._next;
          return n;
        },
        bn = function (e, t) {
          var n,
            r,
            i,
            A = e._targets;
          for (n in t) {
            r = A.length;
            while (r--)
              ((i = e._ptLookup[r][n]),
                i &&
                  (i = i.d) &&
                  (i._pt && (i = Bn(i, n)),
                  i && i.modifier && i.modifier(t[n], e, A[r], n)));
          }
        },
        _n = function (e, t) {
          return {
            name: e,
            rawVars: 1,
            init: function (e, n, r) {
              r._onInit = function (e) {
                var r, i;
                if (
                  (x(n) &&
                    ((r = {}),
                    Ae(n, function (e) {
                      return (r[e] = 1);
                    }),
                    (n = r)),
                  t)
                ) {
                  for (i in ((r = {}), n)) r[i] = t(n[i]);
                  n = r;
                }
                bn(e, n);
              };
            },
          };
        },
        xn =
          wn.registerPlugin(
            {
              name: "attr",
              init: function (e, t, n, r, i) {
                var A, o;
                for (A in t)
                  ((o = this.add(
                    e,
                    "setAttribute",
                    (e.getAttribute(A) || 0) + "",
                    t[A],
                    r,
                    i,
                    0,
                    0,
                    A,
                  )),
                    o && (o.op = A),
                    this._props.push(A));
              },
            },
            {
              name: "endArray",
              init: function (e, t) {
                var n = t.length;
                while (n--) this.add(e, n, e[n] || 0, t[n]);
              },
            },
            _n("roundProps", nt),
            _n("modifiers"),
            _n("snap", rt),
          ) || wn;
      ((An.version = zt.version = xn.version = "3.10.4"), (u = 1), T() && St());
      (Ft.Power0,
        Ft.Power1,
        Ft.Power2,
        Ft.Power3,
        Ft.Power4,
        Ft.Linear,
        Ft.Quad,
        Ft.Cubic,
        Ft.Quart,
        Ft.Quint,
        Ft.Strong,
        Ft.Elastic,
        Ft.Back,
        Ft.SteppedEase,
        Ft.Bounce,
        Ft.Sine,
        Ft.Expo,
        Ft.Circ);
      /*!
       * CSSPlugin 3.10.4
       * https://greensock.com
       *
       * Copyright 2008-2022, GreenSock. All rights reserved.
       * Subject to the terms at https://greensock.com/standard-license or for
       * Club GreenSock members, the agreement issued with that membership.
       * @author: Jack Doyle, jack@greensock.com
       */ var Cn,
        En,
        Mn,
        Sn,
        Fn,
        Tn,
        Un,
        Qn = function () {
          return "undefined" !== typeof window;
        },
        Ln = {},
        In = 180 / Math.PI,
        Hn = Math.PI / 180,
        On = Math.atan2,
        Rn = 1e8,
        Pn = /([A-Z])/g,
        Dn = /(left|right|width|margin|padding|x)/i,
        Nn = /[\s,\(]\S/,
        kn = {
          autoAlpha: "opacity,visibility",
          scale: "scaleX,scaleY",
          alpha: "opacity",
        },
        Gn = function (e, t) {
          return t.set(
            t.t,
            t.p,
            Math.round(1e4 * (t.s + t.c * e)) / 1e4 + t.u,
            t,
          );
        },
        Vn = function (e, t) {
          return t.set(
            t.t,
            t.p,
            1 === e ? t.e : Math.round(1e4 * (t.s + t.c * e)) / 1e4 + t.u,
            t,
          );
        },
        zn = function (e, t) {
          return t.set(
            t.t,
            t.p,
            e ? Math.round(1e4 * (t.s + t.c * e)) / 1e4 + t.u : t.b,
            t,
          );
        },
        jn = function (e, t) {
          var n = t.s + t.c * e;
          t.set(t.t, t.p, ~~(n + (n < 0 ? -0.5 : 0.5)) + t.u, t);
        },
        Kn = function (e, t) {
          return t.set(t.t, t.p, e ? t.e : t.b, t);
        },
        Wn = function (e, t) {
          return t.set(t.t, t.p, 1 !== e ? t.b : t.e, t);
        },
        Xn = function (e, t, n) {
          return (e.style[t] = n);
        },
        Yn = function (e, t, n) {
          return e.style.setProperty(t, n);
        },
        Jn = function (e, t, n) {
          return (e._gsap[t] = n);
        },
        qn = function (e, t, n) {
          return (e._gsap.scaleX = e._gsap.scaleY = n);
        },
        Zn = function (e, t, n, r, i) {
          var A = e._gsap;
          ((A.scaleX = A.scaleY = n), A.renderTransform(i, A));
        },
        $n = function (e, t, n, r, i) {
          var A = e._gsap;
          ((A[t] = n), A.renderTransform(i, A));
        },
        er = "transform",
        tr = er + "Origin",
        nr = function (e, t) {
          var n = En.createElementNS
            ? En.createElementNS(
                (t || "http://www.w3.org/1999/xhtml").replace(/^https/, "http"),
                e,
              )
            : En.createElement(e);
          return n.style ? n : En.createElement(e);
        },
        rr = function e(t, n, r) {
          var i = getComputedStyle(t);
          return (
            i[n] ||
            i.getPropertyValue(n.replace(Pn, "-$1").toLowerCase()) ||
            i.getPropertyValue(n) ||
            (!r && e(t, Ar(n) || n, 1)) ||
            ""
          );
        },
        ir = "O,Moz,ms,Ms,Webkit".split(","),
        Ar = function (e, t, n) {
          var r = t || Fn,
            i = r.style,
            A = 5;
          if (e in i && !n) return e;
          e = e.charAt(0).toUpperCase() + e.substr(1);
          while (A-- && !(ir[A] + e in i));
          return A < 0 ? null : (3 === A ? "ms" : A >= 0 ? ir[A] : "") + e;
        },
        or = function () {
          Qn() &&
            window.document &&
            ((Cn = window),
            (En = Cn.document),
            (Mn = En.documentElement),
            (Fn = nr("div") || { style: {} }),
            nr("div"),
            (er = Ar(er)),
            (tr = er + "Origin"),
            (Fn.style.cssText =
              "border-width:0;line-height:0;position:absolute;padding:0"),
            (Un = !!Ar("perspective")),
            (Sn = 1));
        },
        ar = function e(t) {
          var n,
            r = nr(
              "svg",
              (this.ownerSVGElement &&
                this.ownerSVGElement.getAttribute("xmlns")) ||
                "http://www.w3.org/2000/svg",
            ),
            i = this.parentNode,
            A = this.nextSibling,
            o = this.style.cssText;
          if (
            (Mn.appendChild(r),
            r.appendChild(this),
            (this.style.display = "block"),
            t)
          )
            try {
              ((n = this.getBBox()),
                (this._gsapBBox = this.getBBox),
                (this.getBBox = e));
            } catch (a) {}
          else this._gsapBBox && (n = this._gsapBBox());
          return (
            i && (A ? i.insertBefore(this, A) : i.appendChild(this)),
            Mn.removeChild(r),
            (this.style.cssText = o),
            n
          );
        },
        sr = function (e, t) {
          var n = t.length;
          while (n--) if (e.hasAttribute(t[n])) return e.getAttribute(t[n]);
        },
        cr = function (e) {
          var t;
          try {
            t = e.getBBox();
          } catch (n) {
            t = ar.call(e, !0);
          }
          return (
            (t && (t.width || t.height)) ||
              e.getBBox === ar ||
              (t = ar.call(e, !0)),
            !t || t.width || t.x || t.y
              ? t
              : {
                  x: +sr(e, ["x", "cx", "x1"]) || 0,
                  y: +sr(e, ["y", "cy", "y1"]) || 0,
                  width: 0,
                  height: 0,
                }
          );
        },
        ur = function (e) {
          return !(!e.getCTM || (e.parentNode && !e.ownerSVGElement) || !cr(e));
        },
        lr = function (e, t) {
          if (t) {
            var n = e.style;
            (t in Ln && t !== tr && (t = er),
              n.removeProperty
                ? (("ms" !== t.substr(0, 2) && "webkit" !== t.substr(0, 6)) ||
                    (t = "-" + t),
                  n.removeProperty(t.replace(Pn, "-$1").toLowerCase()))
                : n.removeAttribute(t));
          }
        },
        hr = function (e, t, n, r, i, A) {
          var o = new yn(e._pt, t, n, 0, 1, A ? Wn : Kn);
          return ((e._pt = o), (o.b = r), (o.e = i), e._props.push(n), o);
        },
        fr = { deg: 1, rad: 1, turn: 1 },
        dr = function e(t, n, r, i) {
          var A,
            o,
            a,
            s,
            c = parseFloat(r) || 0,
            u = (r + "").trim().substr((c + "").length) || "px",
            l = Fn.style,
            h = Dn.test(n),
            f = "svg" === t.tagName.toLowerCase(),
            d = (f ? "client" : "offset") + (h ? "Width" : "Height"),
            p = 100,
            g = "px" === i,
            m = "%" === i;
          return i === u || !c || fr[i] || fr[u]
            ? c
            : ("px" !== u && !g && (c = e(t, n, r, "px")),
              (s = t.getCTM && ur(t)),
              (!m && "%" !== u) || (!Ln[n] && !~n.indexOf("adius"))
                ? ((l[h ? "width" : "height"] = p + (g ? u : i)),
                  (o =
                    ~n.indexOf("adius") || ("em" === i && t.appendChild && !f)
                      ? t
                      : t.parentNode),
                  s && (o = (t.ownerSVGElement || {}).parentNode),
                  (o && o !== En && o.appendChild) || (o = En.body),
                  (a = o._gsap),
                  a && m && a.width && h && a.time === Mt.time
                    ? oe((c / a.width) * p)
                    : ((m || "%" === u) && (l.position = rr(t, "position")),
                      o === t && (l.position = "static"),
                      o.appendChild(Fn),
                      (A = Fn[d]),
                      o.removeChild(Fn),
                      (l.position = "absolute"),
                      h &&
                        m &&
                        ((a = re(o)), (a.time = Mt.time), (a.width = o[d])),
                      oe(g ? (A * c) / p : A && c ? (p / A) * c : 0)))
                : ((A = s ? t.getBBox()[h ? "width" : "height"] : t[d]),
                  oe(m ? (c / A) * p : (c / 100) * A)));
        },
        pr = function (e, t, n, r) {
          var i;
          return (
            Sn || or(),
            t in kn &&
              "transform" !== t &&
              ((t = kn[t]), ~t.indexOf(",") && (t = t.split(",")[0])),
            Ln[t] && "transform" !== t
              ? ((i = Mr(e, r)),
                (i =
                  "transformOrigin" !== t
                    ? i[t]
                    : i.svg
                      ? i.origin
                      : Sr(rr(e, tr)) + " " + i.zOrigin + "px"))
              : ((i = e.style[t]),
                (!i || "auto" === i || r || ~(i + "").indexOf("calc(")) &&
                  (i =
                    (wr[t] && wr[t](e, t, n)) ||
                    rr(e, t) ||
                    ie(e, t) ||
                    ("opacity" === t ? 1 : 0))),
            n && !~(i + "").trim().indexOf(" ") ? dr(e, t, i, n) + n : i
          );
        },
        gr = function (e, t, n, r) {
          if (!n || "none" === n) {
            var i = Ar(t, e, 1),
              A = i && rr(e, i, 1);
            A && A !== n
              ? ((t = i), (n = A))
              : "borderColor" === t && (n = rr(e, "borderTopColor"));
          }
          var o,
            a,
            s,
            c,
            u,
            l,
            h,
            f,
            p,
            g,
            m,
            v,
            y = new yn(this._pt, e.style, t, 0, 1, fn),
            w = 0,
            B = 0;
          if (
            ((y.b = n),
            (y.e = r),
            (n += ""),
            (r += ""),
            "auto" === r &&
              ((e.style[t] = r), (r = rr(e, t) || r), (e.style[t] = n)),
            (o = [n, r]),
            Et(o),
            (n = o[0]),
            (r = o[1]),
            (s = n.match(O) || []),
            (v = r.match(O) || []),
            v.length)
          ) {
            while ((a = O.exec(r)))
              ((h = a[0]),
                (p = r.substring(w, a.index)),
                u
                  ? (u = (u + 1) % 5)
                  : ("rgba(" !== p.substr(-5) && "hsla(" !== p.substr(-5)) ||
                    (u = 1),
                h !== (l = s[B++] || "") &&
                  ((c = parseFloat(l) || 0),
                  (m = l.substr((c + "").length)),
                  "=" === h.charAt(1) && (h = se(c, h) + m),
                  (f = parseFloat(h)),
                  (g = h.substr((f + "").length)),
                  (w = O.lastIndex - g.length),
                  g ||
                    ((g = g || d.units[t] || m),
                    w === r.length && ((r += g), (y.e += g))),
                  m !== g && (c = dr(e, t, l, g) || 0),
                  (y._pt = {
                    _next: y._pt,
                    p: p || 1 === B ? p : ",",
                    s: c,
                    c: f - c,
                    m: (u && u < 4) || "zIndex" === t ? Math.round : 0,
                  })));
            y.c = w < r.length ? r.substring(w, r.length) : "";
          } else y.r = "display" === t && "none" === r ? Wn : Kn;
          return (P.test(r) && (y.e = 0), (this._pt = y), y);
        },
        mr = {
          top: "0%",
          bottom: "100%",
          left: "0%",
          right: "100%",
          center: "50%",
        },
        vr = function (e) {
          var t = e.split(" "),
            n = t[0],
            r = t[1] || "50%";
          return (
            ("top" !== n && "bottom" !== n && "left" !== r && "right" !== r) ||
              ((e = n), (n = r), (r = e)),
            (t[0] = mr[n] || n),
            (t[1] = mr[r] || r),
            t.join(" ")
          );
        },
        yr = function (e, t) {
          if (t.tween && t.tween._time === t.tween._dur) {
            var n,
              r,
              i,
              A = t.t,
              o = A.style,
              a = t.u,
              s = A._gsap;
            if ("all" === a || !0 === a) ((o.cssText = ""), (r = 1));
            else {
              ((a = a.split(",")), (i = a.length));
              while (--i > -1)
                ((n = a[i]),
                  Ln[n] && ((r = 1), (n = "transformOrigin" === n ? tr : er)),
                  lr(A, n));
            }
            r &&
              (lr(A, er),
              s &&
                (s.svg && A.removeAttribute("transform"),
                Mr(A, 1),
                (s.uncache = 1)));
          }
        },
        wr = {
          clearProps: function (e, t, n, r, i) {
            if ("isFromStart" !== i.data) {
              var A = (e._pt = new yn(e._pt, t, n, 0, 0, yr));
              return (
                (A.u = r),
                (A.pr = -10),
                (A.tween = i),
                e._props.push(n),
                1
              );
            }
          },
        },
        Br = [1, 0, 0, 1, 0, 0],
        br = {},
        _r = function (e) {
          return "matrix(1, 0, 0, 1, 0, 0)" === e || "none" === e || !e;
        },
        xr = function (e) {
          var t = rr(e, er);
          return _r(t) ? Br : t.substr(7).match(H).map(oe);
        },
        Cr = function (e, t) {
          var n,
            r,
            i,
            A,
            o = e._gsap || re(e),
            a = e.style,
            s = xr(e);
          return o.svg && e.getAttribute("transform")
            ? ((i = e.transform.baseVal.consolidate().matrix),
              (s = [i.a, i.b, i.c, i.d, i.e, i.f]),
              "1,0,0,1,0,0" === s.join(",") ? Br : s)
            : (s !== Br ||
                e.offsetParent ||
                e === Mn ||
                o.svg ||
                ((i = a.display),
                (a.display = "block"),
                (n = e.parentNode),
                (n && e.offsetParent) ||
                  ((A = 1), (r = e.nextSibling), Mn.appendChild(e)),
                (s = xr(e)),
                i ? (a.display = i) : lr(e, "display"),
                A &&
                  (r
                    ? n.insertBefore(e, r)
                    : n
                      ? n.appendChild(e)
                      : Mn.removeChild(e))),
              t && s.length > 6 ? [s[0], s[1], s[4], s[5], s[12], s[13]] : s);
        },
        Er = function (e, t, n, r, i, A) {
          var o,
            a,
            s,
            c,
            u = e._gsap,
            l = i || Cr(e, !0),
            h = u.xOrigin || 0,
            f = u.yOrigin || 0,
            d = u.xOffset || 0,
            p = u.yOffset || 0,
            g = l[0],
            m = l[1],
            v = l[2],
            y = l[3],
            w = l[4],
            B = l[5],
            b = t.split(" "),
            _ = parseFloat(b[0]) || 0,
            x = parseFloat(b[1]) || 0;
          (n
            ? l !== Br &&
              (a = g * y - m * v) &&
              ((s = _ * (y / a) + x * (-v / a) + (v * B - y * w) / a),
              (c = _ * (-m / a) + x * (g / a) - (g * B - m * w) / a),
              (_ = s),
              (x = c))
            : ((o = cr(e)),
              (_ = o.x + (~b[0].indexOf("%") ? (_ / 100) * o.width : _)),
              (x =
                o.y +
                (~(b[1] || b[0]).indexOf("%") ? (x / 100) * o.height : x))),
            r || (!1 !== r && u.smooth)
              ? ((w = _ - h),
                (B = x - f),
                (u.xOffset = d + (w * g + B * v) - w),
                (u.yOffset = p + (w * m + B * y) - B))
              : (u.xOffset = u.yOffset = 0),
            (u.xOrigin = _),
            (u.yOrigin = x),
            (u.smooth = !!r),
            (u.origin = t),
            (u.originIsAbsolute = !!n),
            (e.style[tr] = "0px 0px"),
            A &&
              (hr(A, u, "xOrigin", h, _),
              hr(A, u, "yOrigin", f, x),
              hr(A, u, "xOffset", d, u.xOffset),
              hr(A, u, "yOffset", p, u.yOffset)),
            e.setAttribute("data-svg-origin", _ + " " + x));
        },
        Mr = function (e, t) {
          var n = e._gsap || new Gt(e);
          if ("x" in n && !t && !n.uncache) return n;
          var r,
            i,
            A,
            o,
            a,
            s,
            c,
            u,
            l,
            h,
            f,
            p,
            g,
            m,
            v,
            y,
            w,
            B,
            b,
            _,
            x,
            C,
            E,
            M,
            S,
            F,
            T,
            U,
            Q,
            L,
            I,
            H,
            O = e.style,
            R = n.scaleX < 0,
            P = "px",
            D = "deg",
            N = rr(e, tr) || "0";
          return (
            (r = i = A = s = c = u = l = h = f = 0),
            (o = a = 1),
            (n.svg = !(!e.getCTM || !ur(e))),
            (m = Cr(e, n.svg)),
            n.svg &&
              ((M =
                (!n.uncache || "0px 0px" === N) &&
                !t &&
                e.getAttribute("data-svg-origin")),
              Er(e, M || N, !!M || n.originIsAbsolute, !1 !== n.smooth, m)),
            (p = n.xOrigin || 0),
            (g = n.yOrigin || 0),
            m !== Br &&
              ((B = m[0]),
              (b = m[1]),
              (_ = m[2]),
              (x = m[3]),
              (r = C = m[4]),
              (i = E = m[5]),
              6 === m.length
                ? ((o = Math.sqrt(B * B + b * b)),
                  (a = Math.sqrt(x * x + _ * _)),
                  (s = B || b ? On(b, B) * In : 0),
                  (l = _ || x ? On(_, x) * In + s : 0),
                  l && (a *= Math.abs(Math.cos(l * Hn))),
                  n.svg &&
                    ((r -= p - (p * B + g * _)), (i -= g - (p * b + g * x))))
                : ((H = m[6]),
                  (L = m[7]),
                  (T = m[8]),
                  (U = m[9]),
                  (Q = m[10]),
                  (I = m[11]),
                  (r = m[12]),
                  (i = m[13]),
                  (A = m[14]),
                  (v = On(H, Q)),
                  (c = v * In),
                  v &&
                    ((y = Math.cos(-v)),
                    (w = Math.sin(-v)),
                    (M = C * y + T * w),
                    (S = E * y + U * w),
                    (F = H * y + Q * w),
                    (T = C * -w + T * y),
                    (U = E * -w + U * y),
                    (Q = H * -w + Q * y),
                    (I = L * -w + I * y),
                    (C = M),
                    (E = S),
                    (H = F)),
                  (v = On(-_, Q)),
                  (u = v * In),
                  v &&
                    ((y = Math.cos(-v)),
                    (w = Math.sin(-v)),
                    (M = B * y - T * w),
                    (S = b * y - U * w),
                    (F = _ * y - Q * w),
                    (I = x * w + I * y),
                    (B = M),
                    (b = S),
                    (_ = F)),
                  (v = On(b, B)),
                  (s = v * In),
                  v &&
                    ((y = Math.cos(v)),
                    (w = Math.sin(v)),
                    (M = B * y + b * w),
                    (S = C * y + E * w),
                    (b = b * y - B * w),
                    (E = E * y - C * w),
                    (B = M),
                    (C = S)),
                  c &&
                    Math.abs(c) + Math.abs(s) > 359.9 &&
                    ((c = s = 0), (u = 180 - u)),
                  (o = oe(Math.sqrt(B * B + b * b + _ * _))),
                  (a = oe(Math.sqrt(E * E + H * H))),
                  (v = On(C, E)),
                  (l = Math.abs(v) > 2e-4 ? v * In : 0),
                  (f = I ? 1 / (I < 0 ? -I : I) : 0)),
              n.svg &&
                ((M = e.getAttribute("transform")),
                (n.forceCSS =
                  e.setAttribute("transform", "") || !_r(rr(e, er))),
                M && e.setAttribute("transform", M))),
            Math.abs(l) > 90 &&
              Math.abs(l) < 270 &&
              (R
                ? ((o *= -1),
                  (l += s <= 0 ? 180 : -180),
                  (s += s <= 0 ? 180 : -180))
                : ((a *= -1), (l += l <= 0 ? 180 : -180))),
            (t = t || n.uncache),
            (n.x =
              r -
              ((n.xPercent =
                r &&
                ((!t && n.xPercent) ||
                  (Math.round(e.offsetWidth / 2) === Math.round(-r) ? -50 : 0)))
                ? (e.offsetWidth * n.xPercent) / 100
                : 0) +
              P),
            (n.y =
              i -
              ((n.yPercent =
                i &&
                ((!t && n.yPercent) ||
                  (Math.round(e.offsetHeight / 2) === Math.round(-i)
                    ? -50
                    : 0)))
                ? (e.offsetHeight * n.yPercent) / 100
                : 0) +
              P),
            (n.z = A + P),
            (n.scaleX = oe(o)),
            (n.scaleY = oe(a)),
            (n.rotation = oe(s) + D),
            (n.rotationX = oe(c) + D),
            (n.rotationY = oe(u) + D),
            (n.skewX = l + D),
            (n.skewY = h + D),
            (n.transformPerspective = f + P),
            (n.zOrigin = parseFloat(N.split(" ")[2]) || 0) && (O[tr] = Sr(N)),
            (n.xOffset = n.yOffset = 0),
            (n.force3D = d.force3D),
            (n.renderTransform = n.svg ? Hr : Un ? Ir : Tr),
            (n.uncache = 0),
            n
          );
        },
        Sr = function (e) {
          return (e = e.split(" "))[0] + " " + e[1];
        },
        Fr = function (e, t, n) {
          var r = We(t);
          return oe(parseFloat(t) + parseFloat(dr(e, "x", n + "px", r))) + r;
        },
        Tr = function (e, t) {
          ((t.z = "0px"),
            (t.rotationY = t.rotationX = "0deg"),
            (t.force3D = 0),
            Ir(e, t));
        },
        Ur = "0deg",
        Qr = "0px",
        Lr = ") ",
        Ir = function (e, t) {
          var n = t || this,
            r = n.xPercent,
            i = n.yPercent,
            A = n.x,
            o = n.y,
            a = n.z,
            s = n.rotation,
            c = n.rotationY,
            u = n.rotationX,
            l = n.skewX,
            h = n.skewY,
            f = n.scaleX,
            d = n.scaleY,
            p = n.transformPerspective,
            g = n.force3D,
            m = n.target,
            v = n.zOrigin,
            y = "",
            w = ("auto" === g && e && 1 !== e) || !0 === g;
          if (v && (u !== Ur || c !== Ur)) {
            var B,
              b = parseFloat(c) * Hn,
              _ = Math.sin(b),
              x = Math.cos(b);
            ((b = parseFloat(u) * Hn),
              (B = Math.cos(b)),
              (A = Fr(m, A, _ * B * -v)),
              (o = Fr(m, o, -Math.sin(b) * -v)),
              (a = Fr(m, a, x * B * -v + v)));
          }
          (p !== Qr && (y += "perspective(" + p + Lr),
            (r || i) && (y += "translate(" + r + "%, " + i + "%) "),
            (w || A !== Qr || o !== Qr || a !== Qr) &&
              (y +=
                a !== Qr || w
                  ? "translate3d(" + A + ", " + o + ", " + a + ") "
                  : "translate(" + A + ", " + o + Lr),
            s !== Ur && (y += "rotate(" + s + Lr),
            c !== Ur && (y += "rotateY(" + c + Lr),
            u !== Ur && (y += "rotateX(" + u + Lr),
            (l === Ur && h === Ur) || (y += "skew(" + l + ", " + h + Lr),
            (1 === f && 1 === d) || (y += "scale(" + f + ", " + d + Lr),
            (m.style[er] = y || "translate(0, 0)"));
        },
        Hr = function (e, t) {
          var n,
            r,
            i,
            A,
            o,
            a = t || this,
            s = a.xPercent,
            c = a.yPercent,
            u = a.x,
            l = a.y,
            h = a.rotation,
            f = a.skewX,
            d = a.skewY,
            p = a.scaleX,
            g = a.scaleY,
            m = a.target,
            v = a.xOrigin,
            y = a.yOrigin,
            w = a.xOffset,
            B = a.yOffset,
            b = a.forceCSS,
            _ = parseFloat(u),
            x = parseFloat(l);
          ((h = parseFloat(h)),
            (f = parseFloat(f)),
            (d = parseFloat(d)),
            d && ((d = parseFloat(d)), (f += d), (h += d)),
            h || f
              ? ((h *= Hn),
                (f *= Hn),
                (n = Math.cos(h) * p),
                (r = Math.sin(h) * p),
                (i = Math.sin(h - f) * -g),
                (A = Math.cos(h - f) * g),
                f &&
                  ((d *= Hn),
                  (o = Math.tan(f - d)),
                  (o = Math.sqrt(1 + o * o)),
                  (i *= o),
                  (A *= o),
                  d &&
                    ((o = Math.tan(d)),
                    (o = Math.sqrt(1 + o * o)),
                    (n *= o),
                    (r *= o))),
                (n = oe(n)),
                (r = oe(r)),
                (i = oe(i)),
                (A = oe(A)))
              : ((n = p), (A = g), (r = i = 0)),
            ((_ && !~(u + "").indexOf("px")) ||
              (x && !~(l + "").indexOf("px"))) &&
              ((_ = dr(m, "x", u, "px")), (x = dr(m, "y", l, "px"))),
            (v || y || w || B) &&
              ((_ = oe(_ + v - (v * n + y * i) + w)),
              (x = oe(x + y - (v * r + y * A) + B))),
            (s || c) &&
              ((o = m.getBBox()),
              (_ = oe(_ + (s / 100) * o.width)),
              (x = oe(x + (c / 100) * o.height))),
            (o =
              "matrix(" +
              n +
              "," +
              r +
              "," +
              i +
              "," +
              A +
              "," +
              _ +
              "," +
              x +
              ")"),
            m.setAttribute("transform", o),
            b && (m.style[er] = o));
        },
        Or = function (e, t, n, r, i) {
          var A,
            o,
            a = 360,
            s = x(i),
            c = parseFloat(i) * (s && ~i.indexOf("rad") ? In : 1),
            u = c - r,
            l = r + u + "deg";
          return (
            s &&
              ((A = i.split("_")[1]),
              "short" === A &&
                ((u %= a), u !== u % (a / 2) && (u += u < 0 ? a : -a)),
              "cw" === A && u < 0
                ? (u = ((u + a * Rn) % a) - ~~(u / a) * a)
                : "ccw" === A &&
                  u > 0 &&
                  (u = ((u - a * Rn) % a) - ~~(u / a) * a)),
            (e._pt = o = new yn(e._pt, t, n, r, u, Vn)),
            (o.e = l),
            (o.u = "deg"),
            e._props.push(n),
            o
          );
        },
        Rr = function (e, t) {
          for (var n in t) e[n] = t[n];
          return e;
        },
        Pr = function (e, t, n) {
          var r,
            i,
            A,
            o,
            a,
            s,
            c,
            u,
            l = Rr({}, n._gsap),
            h = "perspective,force3D,transformOrigin,svgOrigin",
            f = n.style;
          for (i in (l.svg
            ? ((A = n.getAttribute("transform")),
              n.setAttribute("transform", ""),
              (f[er] = t),
              (r = Mr(n, 1)),
              lr(n, er),
              n.setAttribute("transform", A))
            : ((A = getComputedStyle(n)[er]),
              (f[er] = t),
              (r = Mr(n, 1)),
              (f[er] = A)),
          Ln))
            ((A = l[i]),
              (o = r[i]),
              A !== o &&
                h.indexOf(i) < 0 &&
                ((c = We(A)),
                (u = We(o)),
                (a = c !== u ? dr(n, i, A, u) : parseFloat(A)),
                (s = parseFloat(o)),
                (e._pt = new yn(e._pt, r, i, a, s - a, Gn)),
                (e._pt.u = u || 0),
                e._props.push(i)));
          Rr(r, l);
        };
      Ae("padding,margin,Width,Radius", function (e, t) {
        var n = "Top",
          r = "Right",
          i = "Bottom",
          A = "Left",
          o = (t < 3 ? [n, r, i, A] : [n + A, n + r, i + r, i + A]).map(
            function (n) {
              return t < 2 ? e + n : "border" + n + e;
            },
          );
        wr[t > 1 ? "border" + e : e] = function (e, t, n, r, i) {
          var A, a;
          if (arguments.length < 4)
            return (
              (A = o.map(function (t) {
                return pr(e, t, n);
              })),
              (a = A.join(" ")),
              5 === a.split(A[0]).length ? A[0] : a
            );
          ((A = (r + "").split(" ")),
            (a = {}),
            o.forEach(function (e, t) {
              return (a[e] = A[t] = A[t] || A[((t - 1) / 2) | 0]);
            }),
            e.init(t, a, i));
        };
      });
      var Dr = {
        name: "css",
        register: or,
        targetTest: function (e) {
          return e.style && e.nodeType;
        },
        init: function (e, t, n, r, i) {
          var A,
            o,
            a,
            s,
            c,
            u,
            l,
            h,
            f,
            p,
            g,
            m,
            v,
            y,
            w,
            B = this._props,
            b = e.style,
            _ = n.vars.startAt;
          for (l in (Sn || or(), t))
            if (
              "autoRound" !== l &&
              ((o = t[l]), !q[l] || !Jt(l, t, n, r, e, i))
            )
              if (
                ((c = typeof o),
                (u = wr[l]),
                "function" === c && ((o = o.call(n, r, e, i)), (c = typeof o)),
                "string" === c && ~o.indexOf("random(") && (o = lt(o)),
                u)
              )
                u(this, e, l, o, n) && (w = 1);
              else if ("--" === l.substr(0, 2))
                ((A = (getComputedStyle(e).getPropertyValue(l) + "").trim()),
                  (o += ""),
                  (xt.lastIndex = 0),
                  xt.test(A) || ((h = We(A)), (f = We(o))),
                  f ? h !== f && (A = dr(e, l, A, f) + f) : h && (o += h),
                  this.add(b, "setProperty", A, o, r, i, 0, 0, l),
                  B.push(l));
              else if ("undefined" !== c) {
                if (
                  (_ && l in _
                    ? ((A =
                        "function" === typeof _[l]
                          ? _[l].call(n, r, e, i)
                          : _[l]),
                      x(A) && ~A.indexOf("random(") && (A = lt(A)),
                      We(A + "") || (A += d.units[l] || We(pr(e, l)) || ""),
                      "=" === (A + "").charAt(1) && (A = pr(e, l)))
                    : (A = pr(e, l)),
                  (s = parseFloat(A)),
                  (p = "string" === c && "=" === o.charAt(1) && o.substr(0, 2)),
                  p && (o = o.substr(2)),
                  (a = parseFloat(o)),
                  l in kn &&
                    ("autoAlpha" === l &&
                      (1 === s &&
                        "hidden" === pr(e, "visibility") &&
                        a &&
                        (s = 0),
                      hr(
                        this,
                        b,
                        "visibility",
                        s ? "inherit" : "hidden",
                        a ? "inherit" : "hidden",
                        !a,
                      )),
                    "scale" !== l &&
                      "transform" !== l &&
                      ((l = kn[l]), ~l.indexOf(",") && (l = l.split(",")[0]))),
                  (g = l in Ln),
                  g)
                )
                  if (
                    (m ||
                      ((v = e._gsap),
                      (v.renderTransform && !t.parseTransform) ||
                        Mr(e, t.parseTransform),
                      (y = !1 !== t.smoothOrigin && v.smooth),
                      (m = this._pt =
                        new yn(
                          this._pt,
                          b,
                          er,
                          0,
                          1,
                          v.renderTransform,
                          v,
                          0,
                          -1,
                        )),
                      (m.dep = 1)),
                    "scale" === l)
                  )
                    ((this._pt = new yn(
                      this._pt,
                      v,
                      "scaleY",
                      v.scaleY,
                      (p ? se(v.scaleY, p + a) : a) - v.scaleY || 0,
                    )),
                      B.push("scaleY", l),
                      (l += "X"));
                  else {
                    if ("transformOrigin" === l) {
                      ((o = vr(o)),
                        v.svg
                          ? Er(e, o, 0, y, 0, this)
                          : ((f = parseFloat(o.split(" ")[2]) || 0),
                            f !== v.zOrigin &&
                              hr(this, v, "zOrigin", v.zOrigin, f),
                            hr(this, b, l, Sr(A), Sr(o))));
                      continue;
                    }
                    if ("svgOrigin" === l) {
                      Er(e, o, 1, y, 0, this);
                      continue;
                    }
                    if (l in br) {
                      Or(this, v, l, s, p ? se(s, p + o) : o);
                      continue;
                    }
                    if ("smoothOrigin" === l) {
                      hr(this, v, "smooth", v.smooth, o);
                      continue;
                    }
                    if ("force3D" === l) {
                      v[l] = o;
                      continue;
                    }
                    if ("transform" === l) {
                      Pr(this, o, e);
                      continue;
                    }
                  }
                else l in b || (l = Ar(l) || l);
                if (
                  g ||
                  ((a || 0 === a) && (s || 0 === s) && !Nn.test(o) && l in b)
                )
                  ((h = (A + "").substr((s + "").length)),
                    a || (a = 0),
                    (f = We(o) || (l in d.units ? d.units[l] : h)),
                    h !== f && (s = dr(e, l, A, f)),
                    (this._pt = new yn(
                      this._pt,
                      g ? v : b,
                      l,
                      s,
                      (p ? se(s, p + a) : a) - s,
                      g || ("px" !== f && "zIndex" !== l) || !1 === t.autoRound
                        ? Gn
                        : jn,
                    )),
                    (this._pt.u = f || 0),
                    h !== f &&
                      "%" !== f &&
                      ((this._pt.b = A), (this._pt.r = zn)));
                else if (l in b) gr.call(this, e, l, A, p ? p + o : o);
                else {
                  if (!(l in e)) {
                    z(l, o);
                    continue;
                  }
                  this.add(e, l, A || e[l], p ? p + o : o, r, i);
                }
                B.push(l);
              }
          w && vn(this);
        },
        get: pr,
        aliases: kn,
        getSetter: function (e, t, n) {
          var r = kn[t];
          return (
            r && r.indexOf(",") < 0 && (t = r),
            t in Ln && t !== tr && (e._gsap.x || pr(e, "x"))
              ? n && Tn === n
                ? "scale" === t
                  ? qn
                  : Jn
                : (Tn = n || {}) && ("scale" === t ? Zn : $n)
              : e.style && !M(e.style[t])
                ? Xn
                : ~t.indexOf("-")
                  ? Yn
                  : un(e, t)
          );
        },
        core: { _removeProperty: lr, _getMatrix: Cr },
      };
      ((xn.utils.checkPrefix = Ar),
        (function (e, t, n, r) {
          var i = Ae(e + "," + t + "," + n, function (e) {
            Ln[e] = 1;
          });
          (Ae(t, function (e) {
            ((d.units[e] = "deg"), (br[e] = 1));
          }),
            (kn[i[13]] = e + "," + t),
            Ae(r, function (e) {
              var t = e.split(":");
              kn[t[1]] = i[t[0]];
            }));
        })(
          "x,y,z,scale,scaleX,scaleY,xPercent,yPercent",
          "rotation,rotationX,rotationY,skewX,skewY",
          "transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective",
          "0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY",
        ),
        Ae(
          "x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective",
          function (e) {
            d.units[e] = "px";
          },
        ),
        xn.registerPlugin(Dr));
      var Nr = xn.registerPlugin(Dr) || xn;
      Nr.core.Tween;
    },
    cffc: function (e, t, n) {
      var r = n("911a"),
        i = n("dbaf"),
        A = n("42ee"),
        o = n("6373"),
        a = n("0a48");
      e.exports = function (e, t) {
        var n = 1 == e,
          s = 2 == e,
          c = 3 == e,
          u = 4 == e,
          l = 6 == e,
          h = 5 == e || l,
          f = t || a;
        return function (t, a, d) {
          for (
            var p,
              g,
              m = A(t),
              v = i(m),
              y = r(a, d, 3),
              w = o(v.length),
              B = 0,
              b = n ? f(t, w) : s ? f(t, 0) : void 0;
            w > B;
            B++
          )
            if ((h || B in v) && ((p = v[B]), (g = y(p, B, m)), e))
              if (n) b[B] = g;
              else if (g)
                switch (e) {
                  case 3:
                    return !0;
                  case 5:
                    return p;
                  case 6:
                    return B;
                  case 2:
                    b.push(p);
                }
              else if (u) return !1;
          return l ? -1 : c || u ? u : b;
        };
      };
    },
    d012: function (e, t) {
      e.exports = {};
    },
    d039: function (e, t) {
      e.exports = function (e) {
        try {
          return !!e();
        } catch (t) {
          return !0;
        }
      };
    },
    d066: function (e, t, n) {
      var r = n("da84"),
        i = n("1626"),
        A = function (e) {
          return i(e) ? e : void 0;
        };
      e.exports = function (e, t) {
        return arguments.length < 2 ? A(r[e]) : r[e] && r[e][t];
      };
    },
    d0f4: function (e, t, n) {
      var r = n("9fe8"),
        i = n("4c8d").onFreeze;
      n("0a66")("seal", function (e) {
        return function (t) {
          return e && r(t) ? e(i(t)) : t;
        };
      });
    },
    d168: function (e, t, n) {
      "use strict";
      var r = n("93e0"),
        i = n("f083"),
        A = n("77ea"),
        o = n("c668"),
        a = n("4c8d"),
        s = n("8fc4"),
        c = n("928a"),
        u = n("9fe8"),
        l = n("f937"),
        h = n("ebe8"),
        f = n("27bd"),
        d = n("11e2");
      e.exports = function (e, t, n, p, g, m) {
        var v = r[e],
          y = v,
          w = g ? "set" : "add",
          B = y && y.prototype,
          b = {},
          _ = function (e) {
            var t = B[e];
            A(
              B,
              e,
              "delete" == e || "has" == e
                ? function (e) {
                    return !(m && !u(e)) && t.call(this, 0 === e ? 0 : e);
                  }
                : "get" == e
                  ? function (e) {
                      return m && !u(e)
                        ? void 0
                        : t.call(this, 0 === e ? 0 : e);
                    }
                  : "add" == e
                    ? function (e) {
                        return (t.call(this, 0 === e ? 0 : e), this);
                      }
                    : function (e, n) {
                        return (t.call(this, 0 === e ? 0 : e, n), this);
                      },
            );
          };
        if (
          "function" == typeof y &&
          (m ||
            (B.forEach &&
              !l(function () {
                new y().entries().next();
              })))
        ) {
          var x = new y(),
            C = x[w](m ? {} : -0, 1) != x,
            E = l(function () {
              x.has(1);
            }),
            M = h(function (e) {
              new y(e);
            }),
            S =
              !m &&
              l(function () {
                var e = new y(),
                  t = 5;
                while (t--) e[w](t, t);
                return !e.has(-0);
              });
          (M ||
            ((y = t(function (t, n) {
              c(t, y, e);
              var r = d(new v(), t, y);
              return (void 0 != n && s(n, g, r[w], r), r);
            })),
            (y.prototype = B),
            (B.constructor = y)),
            (E || S) && (_("delete"), _("has"), g && _("get")),
            (S || C) && _(w),
            m && B.clear && delete B.clear);
        } else
          ((y = p.getConstructor(t, e, g, w)),
            o(y.prototype, n),
            (a.NEED = !0));
        return (
          f(y, e),
          (b[e] = y),
          i(i.G + i.W + i.F * (y != v), b),
          m || p.setStrong(y, e, g),
          y
        );
      };
    },
    d1e7: function (e, t, n) {
      "use strict";
      var r = {}.propertyIsEnumerable,
        i = Object.getOwnPropertyDescriptor,
        A = i && !r.call({ 1: 2 }, 1);
      t.f = A
        ? function (e) {
            var t = i(this, e);
            return !!t && t.enumerable;
          }
        : r;
    },
    d248: function (e, t, n) {
      var r = n("f083");
      r(r.S, "Number", {
        isNaN: function (e) {
          return e != e;
        },
      });
    },
    d284: function (e, t, n) {
      var r = n("9fe8"),
        i = n("4c8d").onFreeze;
      n("0a66")("preventExtensions", function (e) {
        return function (t) {
          return e && r(t) ? e(i(t)) : t;
        };
      });
    },
    d2bb: function (e, t, n) {
      var r = n("e330"),
        i = n("825a"),
        A = n("3bbe");
      e.exports =
        Object.setPrototypeOf ||
        ("__proto__" in {}
          ? (function () {
              var e,
                t = !1,
                n = {};
              try {
                ((e = r(
                  Object.getOwnPropertyDescriptor(Object.prototype, "__proto__")
                    .set,
                )),
                  e(n, []),
                  (t = n instanceof Array));
              } catch (o) {}
              return function (n, r) {
                return (i(n), A(r), t ? e(n, r) : (n.__proto__ = r), n);
              };
            })()
          : void 0);
    },
    d49b: function (e, t, n) {
      var r = n("7bc9"),
        i = Math.pow,
        A = i(2, -52),
        o = i(2, -23),
        a = i(2, 127) * (2 - o),
        s = i(2, -126),
        c = function (e) {
          return e + 1 / A - 1 / A;
        };
      e.exports =
        Math.fround ||
        function (e) {
          var t,
            n,
            i = Math.abs(e),
            u = r(e);
          return i < s
            ? u * c(i / s / o) * s * o
            : ((t = (1 + o / A) * i),
              (n = t - (t - i)),
              n > a || n != n ? u * (1 / 0) : u * n);
        };
    },
    d516: function (e, t, n) {
      "use strict";
      var r = n("cee8"),
        i = n("f083"),
        A = n("77ea"),
        o = n("0713"),
        a = n("c053"),
        s = n("6ada"),
        c = n("27bd"),
        u = n("ed60"),
        l = n("de24")("iterator"),
        h = !([].keys && "next" in [].keys()),
        f = "@@iterator",
        d = "keys",
        p = "values",
        g = function () {
          return this;
        };
      e.exports = function (e, t, n, m, v, y, w) {
        s(n, t, m);
        var B,
          b,
          _,
          x = function (e) {
            if (!h && e in S) return S[e];
            switch (e) {
              case d:
                return function () {
                  return new n(this, e);
                };
              case p:
                return function () {
                  return new n(this, e);
                };
            }
            return function () {
              return new n(this, e);
            };
          },
          C = t + " Iterator",
          E = v == p,
          M = !1,
          S = e.prototype,
          F = S[l] || S[f] || (v && S[v]),
          T = F || x(v),
          U = v ? (E ? x("entries") : T) : void 0,
          Q = ("Array" == t && S.entries) || F;
        if (
          (Q &&
            ((_ = u(Q.call(new e()))),
            _ !== Object.prototype &&
              _.next &&
              (c(_, C, !0), r || "function" == typeof _[l] || o(_, l, g))),
          E &&
            F &&
            F.name !== p &&
            ((M = !0),
            (T = function () {
              return F.call(this);
            })),
          (r && !w) || (!h && !M && S[l]) || o(S, l, T),
          (a[t] = T),
          (a[C] = g),
          v)
        )
          if (
            ((B = { values: E ? T : x(p), keys: y ? T : x(d), entries: U }), w)
          )
            for (b in B) b in S || A(S, b, B[b]);
          else i(i.P + i.F * (h || M), t, B);
        return B;
      };
    },
    d537: function (e, t, n) {
      var r = n("f083"),
        i = n("4759");
      i &&
        r(r.S, "Reflect", {
          setPrototypeOf: function (e, t) {
            i.check(e, t);
            try {
              return (i.set(e, t), !0);
            } catch (n) {
              return !1;
            }
          },
        });
    },
    d58f: function (e, t, n) {
      var r = n("59ed"),
        i = n("7b0b"),
        A = n("44ad"),
        o = n("07fa"),
        a = TypeError,
        s = function (e) {
          return function (t, n, s, c) {
            r(n);
            var u = i(t),
              l = A(u),
              h = o(u),
              f = e ? h - 1 : 0,
              d = e ? -1 : 1;
            if (s < 2)
              while (1) {
                if (f in l) {
                  ((c = l[f]), (f += d));
                  break;
                }
                if (((f += d), e ? f < 0 : h <= f))
                  throw a("Reduce of empty array with no initial value");
              }
            for (; e ? f >= 0 : h > f; f += d) f in l && (c = n(c, l[f], f, u));
            return c;
          };
        };
      e.exports = { left: s(!1), right: s(!0) };
    },
    d5b2: function (e, t, n) {
      var r = n("1c6a"),
        i = n("d77f"),
        A = r.key,
        o = r.map,
        a = r.store;
      r.exp({
        deleteMetadata: function (e, t) {
          var n = arguments.length < 3 ? void 0 : A(arguments[2]),
            r = o(i(t), n, !1);
          if (void 0 === r || !r["delete"](e)) return !1;
          if (r.size) return !0;
          var s = a.get(t);
          return (s["delete"](n), !!s.size || a["delete"](t));
        },
      });
    },
    d5b8: function (e, t, n) {
      n("3a2f")("Array");
    },
    d610: function (e, t, n) {
      var r = n("f083"),
        i = n("6621"),
        A = n("2ce8"),
        o = n("d77f"),
        a = n("9fe8"),
        s = n("f937"),
        c = n("02ee"),
        u = (n("93e0").Reflect || {}).construct,
        l = s(function () {
          function e() {}
          return !(u(function () {}, [], e) instanceof e);
        }),
        h = !s(function () {
          u(function () {});
        });
      r(r.S + r.F * (l || h), "Reflect", {
        construct: function (e, t) {
          (A(e), o(t));
          var n = arguments.length < 3 ? e : A(arguments[2]);
          if (h && !l) return u(e, t, n);
          if (e == n) {
            switch (t.length) {
              case 0:
                return new e();
              case 1:
                return new e(t[0]);
              case 2:
                return new e(t[0], t[1]);
              case 3:
                return new e(t[0], t[1], t[2]);
              case 4:
                return new e(t[0], t[1], t[2], t[3]);
            }
            var r = [null];
            return (r.push.apply(r, t), new (c.apply(e, r))());
          }
          var s = n.prototype,
            f = i(a(s) ? s : Object.prototype),
            d = Function.apply.call(e, f, t);
          return a(d) ? d : f;
        },
      });
    },
    d77f: function (e, t, n) {
      var r = n("9fe8");
      e.exports = function (e) {
        if (!r(e)) throw TypeError(e + " is not an object!");
        return e;
      };
    },
    d804: function (e, t, n) {
      var r = n("f083"),
        i = n("d77f"),
        A = Object.isExtensible;
      r(r.S, "Reflect", {
        isExtensible: function (e) {
          return (i(e), !A || A(e));
        },
      });
    },
    d9b5: function (e, t, n) {
      var r = n("d066"),
        i = n("1626"),
        A = n("3a9b"),
        o = n("fdbf"),
        a = Object;
      e.exports = o
        ? function (e) {
            return "symbol" == typeof e;
          }
        : function (e) {
            var t = r("Symbol");
            return i(t) && A(t.prototype, a(e));
          };
    },
    d9e2: function (e, t, n) {
      var r = n("23e7"),
        i = n("da84"),
        A = n("2ba4"),
        o = n("e5cb"),
        a = "WebAssembly",
        s = i[a],
        c = 7 !== Error("e", { cause: 7 }).cause,
        u = function (e, t) {
          var n = {};
          ((n[e] = o(e, t, c)),
            r({ global: !0, constructor: !0, arity: 1, forced: c }, n));
        },
        l = function (e, t) {
          if (s && s[e]) {
            var n = {};
            ((n[e] = o(a + "." + e, t, c)),
              r(
                { target: a, stat: !0, constructor: !0, arity: 1, forced: c },
                n,
              ));
          }
        };
      (u("Error", function (e) {
        return function (t) {
          return A(e, this, arguments);
        };
      }),
        u("EvalError", function (e) {
          return function (t) {
            return A(e, this, arguments);
          };
        }),
        u("RangeError", function (e) {
          return function (t) {
            return A(e, this, arguments);
          };
        }),
        u("ReferenceError", function (e) {
          return function (t) {
            return A(e, this, arguments);
          };
        }),
        u("SyntaxError", function (e) {
          return function (t) {
            return A(e, this, arguments);
          };
        }),
        u("TypeError", function (e) {
          return function (t) {
            return A(e, this, arguments);
          };
        }),
        u("URIError", function (e) {
          return function (t) {
            return A(e, this, arguments);
          };
        }),
        l("CompileError", function (e) {
          return function (t) {
            return A(e, this, arguments);
          };
        }),
        l("LinkError", function (e) {
          return function (t) {
            return A(e, this, arguments);
          };
        }),
        l("RuntimeError", function (e) {
          return function (t) {
            return A(e, this, arguments);
          };
        }));
    },
    da84: function (e, t, n) {
      (function (t) {
        var n = function (e) {
          return e && e.Math == Math && e;
        };
        e.exports =
          n("object" == typeof globalThis && globalThis) ||
          n("object" == typeof window && window) ||
          n("object" == typeof self && self) ||
          n("object" == typeof t && t) ||
          (function () {
            return this;
          })() ||
          Function("return this")();
      }).call(this, n("c8ba"));
    },
    db4d: function (e, t, n) {
      "use strict";
      (function (e) {
        if ((n("6b90"), n("96cf"), n("76de"), e._babelPolyfill))
          throw new Error("only one instance of babel-polyfill is allowed");
        e._babelPolyfill = !0;
        var t = "defineProperty";
        function r(e, n, r) {
          e[n] || Object[t](e, n, { writable: !0, configurable: !0, value: r });
        }
        (r(String.prototype, "padLeft", "".padStart),
          r(String.prototype, "padRight", "".padEnd),
          "pop,reverse,shift,keys,values,entries,indexOf,every,some,forEach,map,filter,find,findIndex,includes,join,slice,concat,push,splice,unshift,sort,lastIndexOf,reduce,reduceRight,copyWithin,fill"
            .split(",")
            .forEach(function (e) {
              [][e] && r(Array, e, Function.call.bind([][e]));
            }));
      }).call(this, n("c8ba"));
    },
    dbaf: function (e, t, n) {
      var r = n("1c2d");
      e.exports = Object("z").propertyIsEnumerable(0)
        ? Object
        : function (e) {
            return "String" == r(e) ? e.split("") : Object(e);
          };
    },
    dbb2: function (e, t, n) {
      var r = n("30de"),
        i = n("68ae").concat("length", "prototype");
      t.f =
        Object.getOwnPropertyNames ||
        function (e) {
          return r(e, i);
        };
    },
    dbcc: function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("52d5");
      r(
        r.S +
          r.F *
            n("f937")(function () {
              function e() {}
              return !(Array.of.call(e) instanceof e);
            }),
        "Array",
        {
          of: function () {
            var e = 0,
              t = arguments.length,
              n = new ("function" == typeof this ? this : Array)(t);
            while (t > e) i(n, e, arguments[e++]);
            return ((n.length = t), n);
          },
        },
      );
    },
    dc3f: function (e, t) {
      e.exports =
        Math.log1p ||
        function (e) {
          return (e = +e) > -1e-8 && e < 1e-8
            ? e - (e * e) / 2
            : Math.log(1 + e);
        };
    },
    dc4a: function (e, t, n) {
      var r = n("59ed");
      e.exports = function (e, t) {
        var n = e[t];
        return null == n ? void 0 : r(n);
      };
    },
    dd46: function (e, t, n) {
      "use strict";
      n("e681")("anchor", function (e) {
        return function (t) {
          return e(this, "a", "name", t);
        };
      });
    },
    de24: function (e, t, n) {
      var r = n("de85")("wks"),
        i = n("5689"),
        A = n("93e0").Symbol,
        o = "function" == typeof A,
        a = (e.exports = function (e) {
          return r[e] || (r[e] = (o && A[e]) || (o ? A : i)("Symbol." + e));
        });
      a.store = r;
    },
    de85: function (e, t, n) {
      var r = n("0ae2"),
        i = n("93e0"),
        A = "__core-js_shared__",
        o = i[A] || (i[A] = {});
      (e.exports = function (e, t) {
        return o[e] || (o[e] = void 0 !== t ? t : {});
      })("versions", []).push({
        version: r.version,
        mode: n("cee8") ? "pure" : "global",
        copyright: "© 2020 Denis Pushkarev (zloirock.ru)",
      });
    },
    df59: function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("cffc")(4);
      r(r.P + r.F * !n("55c7")([].every, !0), "Array", {
        every: function (e) {
          return i(this, e, arguments[1]);
        },
      });
    },
    df75: function (e, t, n) {
      var r = n("ca84"),
        i = n("7839");
      e.exports =
        Object.keys ||
        function (e) {
          return r(e, i);
        };
    },
    dfd1: function (e, t, n) {
      var r = n("2761"),
        i = n("f083"),
        A = n("d77f"),
        o = n("019f");
      i(
        i.S +
          i.F *
            n("f937")(function () {
              Reflect.defineProperty(r.f({}, 1, { value: 1 }), 1, { value: 2 });
            }),
        "Reflect",
        {
          defineProperty: function (e, t, n) {
            (A(e), (t = o(t, !0)), A(n));
            try {
              return (r.f(e, t, n), !0);
            } catch (i) {
              return !1;
            }
          },
        },
      );
    },
    e03f: function (e, t, n) {
      var r = n("f083"),
        i = Math.asinh;
      function A(e) {
        return isFinite((e = +e)) && 0 != e
          ? e < 0
            ? -A(-e)
            : Math.log(e + Math.sqrt(e * e + 1))
          : e;
      }
      r(r.S + r.F * !(i && 1 / i(0) > 0), "Math", { asinh: A });
    },
    e056: function (e, t, n) {
      "use strict";
      var r = n("66ac"),
        i = RegExp.prototype.exec,
        A = String.prototype.replace,
        o = i,
        a = "lastIndex",
        s = (function () {
          var e = /a/,
            t = /b*/g;
          return (i.call(e, "a"), i.call(t, "a"), 0 !== e[a] || 0 !== t[a]);
        })(),
        c = void 0 !== /()??/.exec("")[1],
        u = s || c;
      (u &&
        (o = function (e) {
          var t,
            n,
            o,
            u,
            l = this;
          return (
            c && (n = new RegExp("^" + l.source + "$(?!\\s)", r.call(l))),
            s && (t = l[a]),
            (o = i.call(l, e)),
            s && o && (l[a] = l.global ? o.index + o[0].length : t),
            c &&
              o &&
              o.length > 1 &&
              A.call(o[0], n, function () {
                for (u = 1; u < arguments.length - 2; u++)
                  void 0 === arguments[u] && (o[u] = void 0);
              }),
            o
          );
        }),
        (e.exports = o));
    },
    e163: function (e, t, n) {
      var r = n("1a2d"),
        i = n("1626"),
        A = n("7b0b"),
        o = n("f772"),
        a = n("e177"),
        s = o("IE_PROTO"),
        c = Object,
        u = c.prototype;
      e.exports = a
        ? c.getPrototypeOf
        : function (e) {
            var t = A(e);
            if (r(t, s)) return t[s];
            var n = t.constructor;
            return i(n) && t instanceof n
              ? n.prototype
              : t instanceof c
                ? u
                : null;
          };
    },
    e171: function (e, t) {
      t.f = {}.propertyIsEnumerable;
    },
    e177: function (e, t, n) {
      var r = n("d039");
      e.exports = !r(function () {
        function e() {}
        return (
          (e.prototype.constructor = null),
          Object.getPrototypeOf(new e()) !== e.prototype
        );
      });
    },
    e330: function (e, t, n) {
      var r = n("40d5"),
        i = Function.prototype,
        A = i.bind,
        o = i.call,
        a = r && A.bind(o, o);
      e.exports = r
        ? function (e) {
            return e && a(e);
          }
        : function (e) {
            return (
              e &&
              function () {
                return o.apply(e, arguments);
              }
            );
          };
    },
    e391: function (e, t, n) {
      var r = n("577e");
      e.exports = function (e, t) {
        return void 0 === e ? (arguments.length < 2 ? "" : t) : r(e);
      };
    },
    e4a7: function (e, t, n) {
      "use strict";
      n("e681")("sub", function (e) {
        return function () {
          return e(this, "sub", "", "");
        };
      });
    },
    e5aa: function (e, t, n) {
      var r = n("d77f");
      e.exports = function (e, t, n, i) {
        try {
          return i ? t(r(n)[0], n[1]) : t(n);
        } catch (o) {
          var A = e["return"];
          throw (void 0 !== A && r(A.call(e)), o);
        }
      };
    },
    e5cb: function (e, t, n) {
      "use strict";
      var r = n("d066"),
        i = n("1a2d"),
        A = n("9112"),
        o = n("3a9b"),
        a = n("d2bb"),
        s = n("e893"),
        c = n("aeb0"),
        u = n("7156"),
        l = n("e391"),
        h = n("ab36"),
        f = n("c770"),
        d = n("b980"),
        p = n("83ab"),
        g = n("c430");
      e.exports = function (e, t, n, m) {
        var v = "stackTraceLimit",
          y = m ? 2 : 1,
          w = e.split("."),
          B = w[w.length - 1],
          b = r.apply(null, w);
        if (b) {
          var _ = b.prototype;
          if ((!g && i(_, "cause") && delete _.cause, !n)) return b;
          var x = r("Error"),
            C = t(function (e, t) {
              var n = l(m ? t : e, void 0),
                r = m ? new b(e) : new b();
              return (
                void 0 !== n && A(r, "message", n),
                d && A(r, "stack", f(r.stack, 2)),
                this && o(_, this) && u(r, this, C),
                arguments.length > y && h(r, arguments[y]),
                r
              );
            });
          if (
            ((C.prototype = _),
            "Error" !== B
              ? a
                ? a(C, x)
                : s(C, x, { name: !0 })
              : p && v in b && (c(C, b, v), c(C, b, "prepareStackTrace")),
            s(C, b),
            !g)
          )
            try {
              (_.name !== B && A(_, "name", B), (_.constructor = C));
            } catch (E) {}
          return C;
        }
      };
    },
    e681: function (e, t, n) {
      var r = n("f083"),
        i = n("f937"),
        A = n("688d"),
        o = /"/g,
        a = function (e, t, n, r) {
          var i = String(A(e)),
            a = "<" + t;
          return (
            "" !== n &&
              (a += " " + n + '="' + String(r).replace(o, "&quot;") + '"'),
            a + ">" + i + "</" + t + ">"
          );
        };
      e.exports = function (e, t) {
        var n = {};
        ((n[e] = t(a)),
          r(
            r.P +
              r.F *
                i(function () {
                  var t = ""[e]('"');
                  return t !== t.toLowerCase() || t.split('"').length > 3;
                }),
            "String",
            n,
          ));
      };
    },
    e735: function (e, t, n) {
      "use strict";
      var r = n("f083"),
        i = n("428b"),
        A = n("42ee"),
        o = n("6373"),
        a = n("9b6f"),
        s = n("0a48");
      (r(r.P, "Array", {
        flatten: function () {
          var e = arguments[0],
            t = A(this),
            n = o(t.length),
            r = s(t, 0);
          return (i(r, t, t, n, 0, void 0 === e ? 1 : a(e)), r);
        },
      }),
        n("66b7")("flatten"));
    },
    e7ff: function (e, t, n) {
      "use strict";
      var r = n("2ce8");
      function i(e) {
        var t, n;
        ((this.promise = new e(function (e, r) {
          if (void 0 !== t || void 0 !== n)
            throw TypeError("Bad Promise constructor");
          ((t = e), (n = r));
        })),
          (this.resolve = r(t)),
          (this.reject = r(n)));
      }
      e.exports.f = function (e) {
        return new i(e);
      };
    },
    e893: function (e, t, n) {
      var r = n("1a2d"),
        i = n("56ef"),
        A = n("06cf"),
        o = n("9bf2");
      e.exports = function (e, t, n) {
        for (var a = i(t), s = o.f, c = A.f, u = 0; u < a.length; u++) {
          var l = a[u];
          r(e, l) || (n && r(n, l)) || s(e, l, c(t, l));
        }
      };
    },
    e93f: function (e, t, n) {
      var r = n("93e0"),
        i = n("f083"),
        A = n("64ff"),
        o = [].slice,
        a = /MSIE .\./.test(A),
        s = function (e) {
          return function (t, n) {
            var r = arguments.length > 2,
              i = !!r && o.call(arguments, 2);
            return e(
              r
                ? function () {
                    ("function" == typeof t ? t : Function(t)).apply(this, i);
                  }
                : t,
              n,
            );
          };
        };
      i(i.G + i.B + i.F * a, {
        setTimeout: s(r.setTimeout),
        setInterval: s(r.setInterval),
      });
    },
    e960: function (e, t, n) {
      var r = n("9b6f"),
        i = n("688d");
      e.exports = function (e) {
        return function (t, n) {
          var A,
            o,
            a = String(i(t)),
            s = r(n),
            c = a.length;
          return s < 0 || s >= c
            ? e
              ? ""
              : void 0
            : ((A = a.charCodeAt(s)),
              A < 55296 ||
              A > 56319 ||
              s + 1 === c ||
              (o = a.charCodeAt(s + 1)) < 56320 ||
              o > 57343
                ? e
                  ? a.charAt(s)
                  : A
                : e
                  ? a.slice(s, s + 2)
                  : o - 56320 + ((A - 55296) << 10) + 65536);
        };
      };
    },
    e9d8: function (e, t, n) {
      var r = n("f083"),
        i = n("688d"),
        A = n("f937"),
        o = n("69b4"),
        a = "[" + o + "]",
        s = "​",
        c = RegExp("^" + a + a + "*"),
        u = RegExp(a + a + "*$"),
        l = function (e, t, n) {
          var i = {},
            a = A(function () {
              return !!o[e]() || s[e]() != s;
            }),
            c = (i[e] = a ? t(h) : o[e]);
          (n && (i[n] = c), r(r.P + r.F * a, "String", i));
        },
        h = (l.trim = function (e, t) {
          return (
            (e = String(i(e))),
            1 & t && (e = e.replace(c, "")),
            2 & t && (e = e.replace(u, "")),
            e
          );
        });
      e.exports = l;
    },
    ea98: function (e, t, n) {
      "use strict";
      var r = n("23e7"),
        i = n("e330"),
        A = n("1d80"),
        o = n("5926"),
        a = n("577e"),
        s = n("d039"),
        c = i("".charAt),
        u = s(function () {
          return "\ud842" !== "𠮷".at(-2);
        });
      r(
        { target: "String", proto: !0, forced: u },
        {
          at: function (e) {
            var t = a(A(this)),
              n = t.length,
              r = o(e),
              i = r >= 0 ? r : n + r;
            return i < 0 || i >= n ? void 0 : c(t, i);
          },
        },
      );
    },
    eaeb: function (e, t, n) {
      var r = n("dbb2"),
        i = n("10dd"),
        A = n("d77f"),
        o = n("93e0").Reflect;
      e.exports =
        (o && o.ownKeys) ||
        function (e) {
          var t = r.f(A(e)),
            n = i.f;
          return n ? t.concat(n(e)) : t;
        };
    },
    eb8c: function (e, t, n) {
      "use strict";
      var r = n("9fe8"),
        i = n("ed60"),
        A = n("de24")("hasInstance"),
        o = Function.prototype;
      A in o ||
        n("2761").f(o, A, {
          value: function (e) {
            if ("function" != typeof this || !r(e)) return !1;
            if (!r(this.prototype)) return e instanceof this;
            while ((e = i(e))) if (this.prototype === e) return !0;
            return !1;
          },
        });
    },
    eb9a: function (e, t, n) {
      var r,
        i,
        A,
        o = n("911a"),
        a = n("09db"),
        s = n("7433"),
        c = n("8ad7"),
        u = n("93e0"),
        l = u.process,
        h = u.setImmediate,
        f = u.clearImmediate,
        d = u.MessageChannel,
        p = u.Dispatch,
        g = 0,
        m = {},
        v = "onreadystatechange",
        y = function () {
          var e = +this;
          if (m.hasOwnProperty(e)) {
            var t = m[e];
            (delete m[e], t());
          }
        },
        w = function (e) {
          y.call(e.data);
        };
      ((h && f) ||
        ((h = function (e) {
          var t = [],
            n = 1;
          while (arguments.length > n) t.push(arguments[n++]);
          return (
            (m[++g] = function () {
              a("function" == typeof e ? e : Function(e), t);
            }),
            r(g),
            g
          );
        }),
        (f = function (e) {
          delete m[e];
        }),
        "process" == n("1c2d")(l)
          ? (r = function (e) {
              l.nextTick(o(y, e, 1));
            })
          : p && p.now
            ? (r = function (e) {
                p.now(o(y, e, 1));
              })
            : d
              ? ((i = new d()),
                (A = i.port2),
                (i.port1.onmessage = w),
                (r = o(A.postMessage, A, 1)))
              : u.addEventListener &&
                  "function" == typeof postMessage &&
                  !u.importScripts
                ? ((r = function (e) {
                    u.postMessage(e + "", "*");
                  }),
                  u.addEventListener("message", w, !1))
                : (r =
                    v in c("script")
                      ? function (e) {
                          s.appendChild(c("script"))[v] = function () {
                            (s.removeChild(this), y.call(e));
                          };
                        }
                      : function (e) {
                          setTimeout(o(y, e, 1), 0);
                        })),
        (e.exports = { set: h, clear: f }));
    },
    ebb5: function (e, t, n) {
      "use strict";
      var r,
        i,
        A,
        o = n("a981"),
        a = n("83ab"),
        s = n("da84"),
        c = n("1626"),
        u = n("861d"),
        l = n("1a2d"),
        h = n("f5df"),
        f = n("0d51"),
        d = n("9112"),
        p = n("cb2d"),
        g = n("9bf2").f,
        m = n("3a9b"),
        v = n("e163"),
        y = n("d2bb"),
        w = n("b622"),
        B = n("90e3"),
        b = n("69f3"),
        _ = b.enforce,
        x = b.get,
        C = s.Int8Array,
        E = C && C.prototype,
        M = s.Uint8ClampedArray,
        S = M && M.prototype,
        F = C && v(C),
        T = E && v(E),
        U = Object.prototype,
        Q = s.TypeError,
        L = w("toStringTag"),
        I = B("TYPED_ARRAY_TAG"),
        H = "TypedArrayConstructor",
        O = o && !!y && "Opera" !== h(s.opera),
        R = !1,
        P = {
          Int8Array: 1,
          Uint8Array: 1,
          Uint8ClampedArray: 1,
          Int16Array: 2,
          Uint16Array: 2,
          Int32Array: 4,
          Uint32Array: 4,
          Float32Array: 4,
          Float64Array: 8,
        },
        D = { BigInt64Array: 8, BigUint64Array: 8 },
        N = function (e) {
          if (!u(e)) return !1;
          var t = h(e);
          return "DataView" === t || l(P, t) || l(D, t);
        },
        k = function (e) {
          var t = v(e);
          if (u(t)) {
            var n = x(t);
            return n && l(n, H) ? n[H] : k(t);
          }
        },
        G = function (e) {
          if (!u(e)) return !1;
          var t = h(e);
          return l(P, t) || l(D, t);
        },
        V = function (e) {
          if (G(e)) return e;
          throw Q("Target is not a typed array");
        },
        z = function (e) {
          if (c(e) && (!y || m(F, e))) return e;
          throw Q(f(e) + " is not a typed array constructor");
        },
        j = function (e, t, n, r) {
          if (a) {
            if (n)
              for (var i in P) {
                var A = s[i];
                if (A && l(A.prototype, e))
                  try {
                    delete A.prototype[e];
                  } catch (o) {
                    try {
                      A.prototype[e] = t;
                    } catch (c) {}
                  }
              }
            (T[e] && !n) || p(T, e, n ? t : (O && E[e]) || t, r);
          }
        },
        K = function (e, t, n) {
          var r, i;
          if (a) {
            if (y) {
              if (n)
                for (r in P)
                  if (((i = s[r]), i && l(i, e)))
                    try {
                      delete i[e];
                    } catch (A) {}
              if (F[e] && !n) return;
              try {
                return p(F, e, n ? t : (O && F[e]) || t);
              } catch (A) {}
            }
            for (r in P) ((i = s[r]), !i || (i[e] && !n) || p(i, e, t));
          }
        };
      for (r in P)
        ((i = s[r]), (A = i && i.prototype), A ? (_(A)[H] = i) : (O = !1));
      for (r in D) ((i = s[r]), (A = i && i.prototype), A && (_(A)[H] = i));
      if (
        (!O || !c(F) || F === Function.prototype) &&
        ((F = function () {
          throw Q("Incorrect invocation");
        }),
        O)
      )
        for (r in P) s[r] && y(s[r], F);
      if ((!O || !T || T === U) && ((T = F.prototype), O))
        for (r in P) s[r] && y(s[r].prototype, T);
      if ((O && v(S) !== T && y(S, T), a && !l(T, L)))
        for (r in ((R = !0),
        g(T, L, {
          get: function () {
            return u(this) ? this[I] : void 0;
          },
        }),
        P))
          s[r] && d(s[r], I, r);
      e.exports = {
        NATIVE_ARRAY_BUFFER_VIEWS: O,
        TYPED_ARRAY_TAG: R && I,
        aTypedArray: V,
        aTypedArrayConstructor: z,
        exportTypedArrayMethod: j,
        exportTypedArrayStaticMethod: K,
        getTypedArrayConstructor: k,
        isView: N,
        isTypedArray: G,
        TypedArray: F,
        TypedArrayPrototype: T,
      };
    },
    ebb7: function (e, t, n) {
      var r = n("f083"),
        i = Math.PI / 180;
      r(r.S, "Math", {
        radians: function (e) {
          return e * i;
        },
      });
    },
    ebe8: function (e, t, n) {
      var r = n("de24")("iterator"),
        i = !1;
      try {
        var A = [7][r]();
        ((A["return"] = function () {
          i = !0;
        }),
          Array.from(A, function () {
            throw 2;
          }));
      } catch (o) {}
      e.exports = function (e, t) {
        if (!t && !i) return !1;
        var n = !1;
        try {
          var A = [7],
            a = A[r]();
          ((a.next = function () {
            return { done: (n = !0) };
          }),
            (A[r] = function () {
              return a;
            }),
            e(A));
        } catch (o) {}
        return n;
      };
    },
    ed60: function (e, t, n) {
      var r = n("2fb2"),
        i = n("42ee"),
        A = n("964f")("IE_PROTO"),
        o = Object.prototype;
      e.exports =
        Object.getPrototypeOf ||
        function (e) {
          return (
            (e = i(e)),
            r(e, A)
              ? e[A]
              : "function" == typeof e.constructor && e instanceof e.constructor
                ? e.constructor.prototype
                : e instanceof Object
                  ? o
                  : null
          );
        };
    },
    edd0: function (e, t, n) {
      var r = n("13d2"),
        i = n("9bf2");
      e.exports = function (e, t, n) {
        return (
          n.get && r(n.get, t, { getter: !0 }),
          n.set && r(n.set, t, { setter: !0 }),
          i.f(e, t, n)
        );
      };
    },
    ee7f: function (e, t, n) {
      var r = n("8d87"),
        i = n("ed60"),
        A = n("2fb2"),
        o = n("f083"),
        a = n("9fe8"),
        s = n("d77f");
      function c(e, t) {
        var n,
          o,
          u = arguments.length < 3 ? e : arguments[2];
        return s(e) === u
          ? e[t]
          : (n = r.f(e, t))
            ? A(n, "value")
              ? n.value
              : void 0 !== n.get
                ? n.get.call(u)
                : void 0
            : a((o = i(e)))
              ? c(o, t, u)
              : void 0;
      }
      o(o.S, "Reflect", { get: c });
    },
    f083: function (e, t, n) {
      var r = n("93e0"),
        i = n("0ae2"),
        A = n("0713"),
        o = n("77ea"),
        a = n("911a"),
        s = "prototype",
        c = function (e, t, n) {
          var u,
            l,
            h,
            f,
            d = e & c.F,
            p = e & c.G,
            g = e & c.S,
            m = e & c.P,
            v = e & c.B,
            y = p ? r : g ? r[t] || (r[t] = {}) : (r[t] || {})[s],
            w = p ? i : i[t] || (i[t] = {}),
            B = w[s] || (w[s] = {});
          for (u in (p && (n = t), n))
            ((l = !d && y && void 0 !== y[u]),
              (h = (l ? y : n)[u]),
              (f =
                v && l
                  ? a(h, r)
                  : m && "function" == typeof h
                    ? a(Function.call, h)
                    : h),
              y && o(y, u, h, e & c.U),
              w[u] != h && A(w, u, f),
              m && B[u] != h && (B[u] = h));
        };
      ((r.core = i),
        (c.F = 1),
        (c.G = 2),
        (c.S = 4),
        (c.P = 8),
        (c.B = 16),
        (c.W = 32),
        (c.U = 64),
        (c.R = 128),
        (e.exports = c));
    },
    f308: function (e, t, n) {
      var r,
        i = n("93e0"),
        A = n("0713"),
        o = n("5689"),
        a = o("typed_array"),
        s = o("view"),
        c = !(!i.ArrayBuffer || !i.DataView),
        u = c,
        l = 0,
        h = 9,
        f =
          "Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(
            ",",
          );
      while (l < h)
        (r = i[f[l++]])
          ? (A(r.prototype, a, !0), A(r.prototype, s, !0))
          : (u = !1);
      e.exports = { ABV: c, CONSTR: u, TYPED: a, VIEW: s };
    },
    f415: function (e, t, n) {
      n("1b1e")("Int16", 2, function (e) {
        return function (t, n, r) {
          return e(this, t, n, r);
        };
      });
    },
    f58c: function (e, t, n) {
      "use strict";
      var r = n("e960")(!0);
      n("d516")(
        String,
        "String",
        function (e) {
          ((this._t = String(e)), (this._i = 0));
        },
        function () {
          var e,
            t = this._t,
            n = this._i;
          return n >= t.length
            ? { value: void 0, done: !0 }
            : ((e = r(t, n)), (this._i += e.length), { value: e, done: !1 });
        },
      );
    },
    f5df: function (e, t, n) {
      var r = n("00ee"),
        i = n("1626"),
        A = n("c6b6"),
        o = n("b622"),
        a = o("toStringTag"),
        s = Object,
        c =
          "Arguments" ==
          A(
            (function () {
              return arguments;
            })(),
          ),
        u = function (e, t) {
          try {
            return e[t];
          } catch (n) {}
        };
      e.exports = r
        ? A
        : function (e) {
            var t, n, r;
            return void 0 === e
              ? "Undefined"
              : null === e
                ? "Null"
                : "string" == typeof (n = u((t = s(e)), a))
                  ? n
                  : c
                    ? A(t)
                    : "Object" == (r = A(t)) && i(t.callee)
                      ? "Arguments"
                      : r;
          };
    },
    f772: function (e, t, n) {
      var r = n("5692"),
        i = n("90e3"),
        A = r("keys");
      e.exports = function (e) {
        return A[e] || (A[e] = i(e));
      };
    },
    f787: function (e, t, n) {
      "use strict";
      n("e681")("small", function (e) {
        return function () {
          return e(this, "small", "", "");
        };
      });
    },
    f8cd: function (e, t, n) {
      var r = n("5926"),
        i = RangeError;
      e.exports = function (e) {
        var t = r(e);
        if (t < 0) throw i("The argument can't be less than 0");
        return t;
      };
    },
    f937: function (e, t) {
      e.exports = function (e) {
        try {
          return !!e();
        } catch (t) {
          return !0;
        }
      };
    },
    f945: function (e, t, n) {
      "use strict";
      var r = n("42ee"),
        i = n("6fc7"),
        A = n("6373");
      e.exports =
        [].copyWithin ||
        function (e, t) {
          var n = r(this),
            o = A(n.length),
            a = i(e, o),
            s = i(t, o),
            c = arguments.length > 2 ? arguments[2] : void 0,
            u = Math.min((void 0 === c ? o : i(c, o)) - s, o - a),
            l = 1;
          s < a && a < s + u && ((l = -1), (s += u - 1), (a += u - 1));
          while (u-- > 0)
            (s in n ? (n[a] = n[s]) : delete n[a], (a += l), (s += l));
          return n;
        };
    },
    f948: function (e, t, n) {
      "use strict";
      var r = n("f083");
      e.exports = function (e) {
        r(r.S, e, {
          of: function () {
            var e = arguments.length,
              t = new Array(e);
            while (e--) t[e] = arguments[e];
            return new this(t);
          },
        });
      };
    },
    f96c: function (e, t, n) {
      var r = n("f083"),
        i = n("1c2d");
      r(r.S, "Error", {
        isError: function (e) {
          return "Error" === i(e);
        },
      });
    },
    f97f: function (e, t, n) {
      e.exports =
        !n("c94e") &&
        !n("f937")(function () {
          return (
            7 !=
            Object.defineProperty(n("8ad7")("div"), "a", {
              get: function () {
                return 7;
              },
            }).a
          );
        });
    },
    f9f3: function (e, t, n) {
      var r = n("f083"),
        i = n("8539");
      r(r.G + r.F * (parseFloat != i), { parseFloat: i });
    },
    fa9e: function (e, t, n) {
      n("986a");
    },
    fb32: function (e, t) {
      e.exports = function (e, t) {
        return {
          enumerable: !(1 & e),
          configurable: !(2 & e),
          writable: !(4 & e),
          value: t,
        };
      };
    },
    fb3f: function (e, t, n) {
      "use strict";
      var r = n("5155"),
        i = {};
      ((i[n("de24")("toStringTag")] = "z"),
        i + "" != "[object z]" &&
          n("77ea")(
            Object.prototype,
            "toString",
            function () {
              return "[object " + r(this) + "]";
            },
            !0,
          ));
    },
    fb87: function (e, t) {
      e.exports = function (e, t) {
        return { value: t, done: !!e };
      };
    },
    fb8d: function (e, t, n) {
      var r = n("f083"),
        i = n("67fe");
      r(r.G + r.F * (parseInt != i), { parseInt: i });
    },
    fbd9: function (e, t, n) {
      n("f948")("WeakSet");
    },
    fc6a: function (e, t, n) {
      var r = n("44ad"),
        i = n("1d80");
      e.exports = function (e) {
        return r(i(e));
      };
    },
    fca6: function (e, t, n) {
      var r = n("f083");
      r(r.S + r.F * !n("c94e"), "Object", { defineProperty: n("2761").f });
    },
    fdbf: function (e, t, n) {
      var r = n("4930");
      e.exports = r && !Symbol.sham && "symbol" == typeof Symbol.iterator;
    },
    fe9d: function (e, t, n) {
      var r = n("f083");
      r(r.S, "Date", {
        now: function () {
          return new Date().getTime();
        },
      });
    },
    fef8: function (e, t, n) {
      "use strict";
      var r = n("5155"),
        i = RegExp.prototype.exec;
      e.exports = function (e, t) {
        var n = e.exec;
        if ("function" === typeof n) {
          var A = n.call(e, t);
          if ("object" !== typeof A)
            throw new TypeError(
              "RegExp exec method returned something other than an Object or null",
            );
          return A;
        }
        if ("RegExp" !== r(e))
          throw new TypeError("RegExp#exec called on incompatible receiver");
        return i.call(e, t);
      };
    },
  },
]);
