Facebook
From Reliable Hamster, 5 Years ago, written in JavaScript.
Embed
Download Paste or View Raw
Hits: 256
  1. !(function e(t, i, n) {
  2.     function r(a, s) {
  3.         if (!i[a]) {
  4.             if (!t[a]) {
  5.                 var l = "function" == typeof require && require;
  6.                 if (!s && l) return l(a, !0);
  7.                 if (o) return o(a, !0);
  8.                 var c = new Error("Cannot find module '" + a + "'");
  9.                 throw ((c.code = "MODULE_NOT_FOUND"), c);
  10.             }
  11.             var u = (i[a] = {
  12.                 exports: {}
  13.             });
  14.             t[a][0].call(
  15.                 u.exports,
  16.                 function (e) {
  17.                     var i = t[a][1][e];
  18.                     return r(i ? i : e);
  19.                 },
  20.                 u,
  21.                 u.exports,
  22.                 e,
  23.                 t,
  24.                 i,
  25.                 n
  26.             );
  27.         }
  28.         return i[a].exports;
  29.     }
  30.     for (var o = "function" == typeof require && require, a = 0; a < n.length; a++) r(n[a]);
  31.     return r;
  32. })({
  33.         1: [
  34.             function (e, t, i) {
  35.                 (function (t) {
  36.                     "use strict";
  37.                     if ((e("core-js/shim"), e("regenerator/runtime"), t._babelPolyfill)) throw new Error("only one instance of babel/polyfill is allowed");
  38.                     t._babelPolyfill = !0;
  39.                 }.call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}));
  40.             },
  41.             {
  42.                 "core-js/shim": 185,
  43.                 "regenerator/runtime": 186
  44.             },
  45.         ],
  46.         2: [
  47.             function (e, t, i) {
  48.                 t.exports = function (e) {
  49.                     if ("function" != typeof e) throw TypeError(e + " is not a function!");
  50.                     return e;
  51.                 };
  52.             },
  53.             {},
  54.         ],
  55.         3: [
  56.             function (e, t, i) {
  57.                 var n = e("./$.is-object");
  58.                 t.exports = function (e) {
  59.                     if (!n(e)) throw TypeError(e + " is not an object!");
  60.                     return e;
  61.                 };
  62.             },
  63.             {
  64.                 "./$.is-object": 37
  65.             },
  66.         ],
  67.         4: [
  68.             function (e, t, i) {
  69.                 "use strict";
  70.                 var n = e("./$.to-object"),
  71.                     r = e("./$.to-index"),
  72.                     o = e("./$.to-length");
  73.                 t.exports = [].copyWithin ||
  74.                     function (e, t) {
  75.                         var i = n(this),
  76.                             a = o(i.length),
  77.                             s = r(e, a),
  78.                             l = r(t, a),
  79.                             c = arguments[2],
  80.                             u = Math.min((void 0 === c ? a : r(c, a)) - l, a - s),
  81.                             h = 1;
  82.                         for (s > l && l + u > s && ((h = -1), (l += u - 1), (s += u - 1)); u-- > 0;) l in i ? (i[s] = i[l]) : delete i[s], (s += h), (l += h);
  83.                         return i;
  84.                     };
  85.             },
  86.             {
  87.                 "./$.to-index": 73,
  88.                 "./$.to-length": 76,
  89.                 "./$.to-object": 77
  90.             },
  91.         ],
  92.         5: [
  93.             function (e, t, i) {
  94.                 "use strict";
  95.                 var n = e("./$.to-object"),
  96.                     r = e("./$.to-index"),
  97.                     o = e("./$.to-length");
  98.                 t.exports = [].fill ||
  99.                     function (e) {
  100.                         for (var t = n(this, !0), i = o(t.length), a = r(arguments[1], i), s = arguments[2], l = void 0 === s ? i : r(s, i); l > a;) t[a++] = e;
  101.                         return t;
  102.                     };
  103.             },
  104.             {
  105.                 "./$.to-index": 73,
  106.                 "./$.to-length": 76,
  107.                 "./$.to-object": 77
  108.             },
  109.         ],
  110.         6: [
  111.             function (e, t, i) {
  112.                 var n = e("./$.to-iobject"),
  113.                     r = e("./$.to-length"),
  114.                     o = e("./$.to-index");
  115.                 t.exports = function (e) {
  116.                     return function (t, i, a) {
  117.                         var s,
  118.                             l = n(t),
  119.                             c = r(l.length),
  120.                             u = o(a, c);
  121.                         if (e && i != i) {
  122.                             for (; c > u;)
  123.                                 if (((s = l[u++]), s != s)) return !0;
  124.                         } else
  125.                             for (; c > u; u++)
  126.                                 if ((e || u in l) && l[u] === i) return e || u;
  127.                         return !e && -1;
  128.                     };
  129.                 };
  130.             },
  131.             {
  132.                 "./$.to-index": 73,
  133.                 "./$.to-iobject": 75,
  134.                 "./$.to-length": 76
  135.             },
  136.         ],
  137.         7: [
  138.             function (e, t, i) {
  139.                 var n = e("./$.ctx"),
  140.                     r = e("./$.is-object"),
  141.                     o = e("./$.iobject"),
  142.                     a = e("./$.to-object"),
  143.                     s = e("./$.to-length"),
  144.                     l = e("./$.is-array"),
  145.                     c = e("./$.wks")("species"),
  146.                     u = function (e, t) {
  147.                         var i;
  148.                         return l(e) && r((i = e.constructor)) && ((i = i[c]), null === i && (i = void 0)), new(void 0 === i ? Array : i)(t);
  149.                     };
  150.                 t.exports = function (e) {
  151.                     var t = 1 == e,
  152.                         i = 2 == e,
  153.                         r = 3 == e,
  154.                         l = 4 == e,
  155.                         c = 6 == e,
  156.                         h = 5 == e || c;
  157.                     return function (d, f, p) {
  158.                         for (var m, v, g = a(d), y = o(g), _ = n(f, p, 3), b = s(y.length), x = 0, w = t ? u(d, b) : i ? u(d, 0) : void 0; b > x; x++)
  159.                             if ((h || x in y) && ((m = y[x]), (v = _(m, x, g)), e))
  160.                                 if (t) w[x] = v;
  161.                                 else if (v)
  162.                             switch (e) {
  163.                             case 3:
  164.                                 return !0;
  165.                             case 5:
  166.                                 return m;
  167.                             case 6:
  168.                                 return x;
  169.                             case 2:
  170.                                 w.push(m);
  171.                             }
  172.                         else if (l) return !1;
  173.                         return c ? -1 : r || l ? l : w;
  174.                     };
  175.                 };
  176.             },
  177.             {
  178.                 "./$.ctx": 16,
  179.                 "./$.iobject": 33,
  180.                 "./$.is-array": 35,
  181.                 "./$.is-object": 37,
  182.                 "./$.to-length": 76,
  183.                 "./$.to-object": 77,
  184.                 "./$.wks": 80
  185.             },
  186.         ],
  187.         8: [
  188.             function (e, t, i) {
  189.                 var n = e("./$.to-object"),
  190.                     r = e("./$.iobject"),
  191.                     o = e("./$.enum-keys"),
  192.                     a = e("./$.has");
  193.                 t.exports = e("./$.fails")(function () {
  194.                         var e = Object.assign,
  195.                             t = {},
  196.                             i = {},
  197.                             n = Symbol(),
  198.                             r = "abcdefghijklmnopqrst";
  199.                         return (
  200.                             (t[n] = 7),
  201.                             r.split("").forEach(function (e) {
  202.                                 i[e] = e;
  203.                             }),
  204.                             7 != e({}, t)[n] || Object.keys(e({}, i)).join("") != r
  205.                         );
  206.                     }) ?
  207.                     function (e, t) {
  208.                         for (var i = n(e), s = arguments.length, l = 1; s > l;)
  209.                             for (var c, u = r(arguments[l++]), h = o(u), d = h.length, f = 0; d > f;) a(u, (c = h[f++])) && (i[c] = u[c]);
  210.                         return i;
  211.                     } :
  212.                     Object.assign;
  213.             },
  214.             {
  215.                 "./$.enum-keys": 20,
  216.                 "./$.fails": 23,
  217.                 "./$.has": 29,
  218.                 "./$.iobject": 33,
  219.                 "./$.to-object": 77
  220.             },
  221.         ],
  222.         9: [
  223.             function (e, t, i) {
  224.                 var n = e("./$.cof"),
  225.                     r = e("./$.wks")("toStringTag"),
  226.                     o =
  227.                     "Arguments" ==
  228.                     n(
  229.                         (function () {
  230.                             return arguments;
  231.                         })()
  232.                     );
  233.                 t.exports = function (e) {
  234.                     var t, i, a;
  235.                     return void 0 === e ? "Undefined" : null === e ? "Null" : "string" == typeof (i = (t = Object(e))[r]) ? i : o ? n(t) : "Object" == (a = n(t)) && "function" == typeof t.callee ? "Arguments" : a;
  236.                 };
  237.             },
  238.             {
  239.                 "./$.cof": 10,
  240.                 "./$.wks": 80
  241.             },
  242.         ],
  243.         10: [
  244.             function (e, t, i) {
  245.                 var n = {}.toString;
  246.                 t.exports = function (e) {
  247.                     return n.call(e).slice(8, -1);
  248.                 };
  249.             },
  250.             {},
  251.         ],
  252.         11: [
  253.             function (e, t, i) {
  254.                 "use strict";
  255.                 var n = e("./$"),
  256.                     r = e("./$.hide"),
  257.                     o = e("./$.ctx"),
  258.                     a = e("./$.species"),
  259.                     s = e("./$.strict-new"),
  260.                     l = e("./$.defined"),
  261.                     c = e("./$.for-of"),
  262.                     u = e("./$.iter-step"),
  263.                     h = e("./$.uid")("id"),
  264.                     d = e("./$.has"),
  265.                     f = e("./$.is-object"),
  266.                     p = Object.isExtensible || f,
  267.                     m = e("./$.support-desc"),
  268.                     v = m ? "_s" : "size",
  269.                     g = 0,
  270.                     y = function (e, t) {
  271.                         if (!f(e)) return "symbol" == typeof e ? e : ("string" == typeof e ? "S" : "P") + e;
  272.                         if (!d(e, h)) {
  273.                             if (!p(e)) return "F";
  274.                             if (!t) return "E";
  275.                             r(e, h, ++g);
  276.                         }
  277.                         return "O" + e[h];
  278.                     },
  279.                     _ = function (e, t) {
  280.                         var i,
  281.                             n = y(t);
  282.                         if ("F" !== n) return e._i[n];
  283.                         for (i = e._f; i; i = i.n)
  284.                             if (i.k == t) return i;
  285.                     };
  286.                 t.exports = {
  287.                     getConstructor: function (t, i, r, a) {
  288.                         var u = t(function (e, t) {
  289.                             s(e, u, i), (e._i = n.create(null)), (e._f = void 0), (e._l = void 0), (e[v] = 0), void 0 != t && c(t, r, e[a], e);
  290.                         });
  291.                         return (
  292.                             e("./$.mix")(u.prototype, {
  293.                                 clear: function () {
  294.                                     for (var e = this, t = e._i, i = e._f; i; i = i.n)(i.r = !0), i.p && (i.p = i.p.n = void 0), delete t[i.i];
  295.                                     (e._f = e._l = void 0), (e[v] = 0);
  296.                                 },
  297.                                 delete: function (e) {
  298.                                     var t = this,
  299.                                         i = _(t, e);
  300.                                     if (i) {
  301.                                         var n = i.n,
  302.                                             r = i.p;
  303.                                         delete t._i[i.i], (i.r = !0), r && (r.n = n), n && (n.p = r), t._f == i && (t._f = n), t._l == i && (t._l = r), t[v]--;
  304.                                     }
  305.                                     return !!i;
  306.                                 },
  307.                                 forEach: function (e) {
  308.                                     for (var t, i = o(e, arguments[1], 3);
  309.                                         (t = t ? t.n : this._f);)
  310.                                         for (i(t.v, t.k, this); t && t.r;) t = t.p;
  311.                                 },
  312.                                 has: function (e) {
  313.                                     return !!_(this, e);
  314.                                 },
  315.                             }),
  316.                             m &&
  317.                             n.setDesc(u.prototype, "size", {
  318.                                 get: function () {
  319.                                     return l(this[v]);
  320.                                 },
  321.                             }),
  322.                             u
  323.                         );
  324.                     },
  325.                     def: function (e, t, i) {
  326.                         var n,
  327.                             r,
  328.                             o = _(e, t);
  329.                         return o ? (o.v = i) : ((e._l = o = {
  330.                             i: (r = y(t, !0)),
  331.                             k: t,
  332.                             v: i,
  333.                             p: (n = e._l),
  334.                             n: void 0,
  335.                             r: !1
  336.                         }), e._f || (e._f = o), n && (n.n = o), e[v]++, "F" !== r && (e._i[r] = o)), e;
  337.                     },
  338.                     getEntry: _,
  339.                     setStrong: function (t, i, n) {
  340.                         e("./$.iter-define")(
  341.                                 t,
  342.                                 i,
  343.                                 function (e, t) {
  344.                                     (this._t = e), (this._k = t), (this._l = void 0);
  345.                                 },
  346.                                 function () {
  347.                                     for (var e = this, t = e._k, i = e._l; i && i.r;) i = i.p;
  348.                                     return e._t && (e._l = i = i ? i.n : e._t._f) ? ("keys" == t ? u(0, i.k) : "values" == t ? u(0, i.v) : u(0, [i.k, i.v])) : ((e._t = void 0), u(1));
  349.                                 },
  350.                                 n ? "entries" : "values",
  351.                                 !n,
  352.                                 !0
  353.                             ),
  354.                             a(t),
  355.                             a(e("./$.core")[i]);
  356.                     },
  357.                 };
  358.             },
  359.             {
  360.                 "./$": 45,
  361.                 "./$.core": 15,
  362.                 "./$.ctx": 16,
  363.                 "./$.defined": 18,
  364.                 "./$.for-of": 26,
  365.                 "./$.has": 29,
  366.                 "./$.hide": 30,
  367.                 "./$.is-object": 37,
  368.                 "./$.iter-define": 41,
  369.                 "./$.iter-step": 43,
  370.                 "./$.mix": 50,
  371.                 "./$.species": 63,
  372.                 "./$.strict-new": 64,
  373.                 "./$.support-desc": 70,
  374.                 "./$.uid": 78,
  375.             },
  376.         ],
  377.         12: [
  378.             function (e, t, i) {
  379.                 var n = e("./$.for-of"),
  380.                     r = e("./$.classof");
  381.                 t.exports = function (e) {
  382.                     return function () {
  383.                         if (r(this) != e) throw TypeError(e + "#toJSON isn't generic");
  384.                         var t = [];
  385.                         return n(this, !1, t.push, t), t;
  386.                     };
  387.                 };
  388.             },
  389.             {
  390.                 "./$.classof": 9,
  391.                 "./$.for-of": 26
  392.             },
  393.         ],
  394.         13: [
  395.             function (e, t, i) {
  396.                 "use strict";
  397.                 var n = e("./$.hide"),
  398.                     r = e("./$.an-object"),
  399.                     o = e("./$.strict-new"),
  400.                     a = e("./$.for-of"),
  401.                     s = e("./$.array-methods"),
  402.                     l = e("./$.uid")("weak"),
  403.                     c = e("./$.is-object"),
  404.                     u = e("./$.has"),
  405.                     h = Object.isExtensible || c,
  406.                     d = s(5),
  407.                     f = s(6),
  408.                     p = 0,
  409.                     m = function (e) {
  410.                         return e._l || (e._l = new v());
  411.                     },
  412.                     v = function () {
  413.                         this.a = [];
  414.                     },
  415.                     g = function (e, t) {
  416.                         return d(e.a, function (e) {
  417.                             return e[0] === t;
  418.                         });
  419.                     };
  420.                 (v.prototype = {
  421.                     get: function (e) {
  422.                         var t = g(this, e);
  423.                         return t ? t[1] : void 0;
  424.                     },
  425.                     has: function (e) {
  426.                         return !!g(this, e);
  427.                     },
  428.                     set: function (e, t) {
  429.                         var i = g(this, e);
  430.                         i ? (i[1] = t) : this.a.push([e, t]);
  431.                     },
  432.                     delete: function (e) {
  433.                         var t = f(this.a, function (t) {
  434.                             return t[0] === e;
  435.                         });
  436.                         return ~t && this.a.splice(t, 1), !!~t;
  437.                     },
  438.                 }),
  439.                 (t.exports = {
  440.                     getConstructor: function (t, i, n, r) {
  441.                         var s = t(function (e, t) {
  442.                             o(e, s, i), (e._i = p++), (e._l = void 0), void 0 != t && a(t, n, e[r], e);
  443.                         });
  444.                         return (
  445.                             e("./$.mix")(s.prototype, {
  446.                                 delete: function (e) {
  447.                                     return c(e) ? (h(e) ? u(e, l) && u(e[l], this._i) && delete e[l][this._i] : m(this)["delete"](e)) : !1;
  448.                                 },
  449.                                 has: function (e) {
  450.                                     return c(e) ? (h(e) ? u(e, l) && u(e[l], this._i) : m(this).has(e)) : !1;
  451.                                 },
  452.                             }),
  453.                             s
  454.                         );
  455.                     },
  456.                     def: function (e, t, i) {
  457.                         return h(r(t)) ? (u(t, l) || n(t, l, {}), (t[l][e._i] = i)) : m(e).set(t, i), e;
  458.                     },
  459.                     frozenStore: m,
  460.                     WEAK: l,
  461.                 });
  462.             },
  463.             {
  464.                 "./$.an-object": 3,
  465.                 "./$.array-methods": 7,
  466.                 "./$.for-of": 26,
  467.                 "./$.has": 29,
  468.                 "./$.hide": 30,
  469.                 "./$.is-object": 37,
  470.                 "./$.mix": 50,
  471.                 "./$.strict-new": 64,
  472.                 "./$.uid": 78
  473.             },
  474.         ],
  475.         14: [
  476.             function (e, t, i) {
  477.                 "use strict";
  478.                 var n = e("./$.global"),
  479.                     r = e("./$.def"),
  480.                     o = e("./$.for-of"),
  481.                     a = e("./$.strict-new");
  482.                 t.exports = function (t, i, s, l, c, u) {
  483.                     var h = n[t],
  484.                         d = h,
  485.                         f = c ? "set" : "add",
  486.                         p = d && d.prototype,
  487.                         m = {},
  488.                         v = function (t) {
  489.                             var i = p[t];
  490.                             e("./$.redef")(
  491.                                 p,
  492.                                 t,
  493.                                 "delete" == t ?
  494.                                 function (e) {
  495.                                     return i.call(this, 0 === e ? 0 : e);
  496.                                 } :
  497.                                 "has" == t ?
  498.                                 function (e) {
  499.                                     return i.call(this, 0 === e ? 0 : e);
  500.                                 } :
  501.                                 "get" == t ?
  502.                                 function (e) {
  503.                                     return i.call(this, 0 === e ? 0 : e);
  504.                                 } :
  505.                                 "add" == t ?
  506.                                 function (e) {
  507.                                     return i.call(this, 0 === e ? 0 : e), this;
  508.                                 } :
  509.                                 function (e, t) {
  510.                                     return i.call(this, 0 === e ? 0 : e, t), this;
  511.                                 }
  512.                             );
  513.                         };
  514.                     if (
  515.                         "function" == typeof d &&
  516.                         (u ||
  517.                             (p.forEach &&
  518.                                 !e("./$.fails")(function () {
  519.                                     new d().entries().next();
  520.                                 })))
  521.                     ) {
  522.                         var g,
  523.                             y = new d(),
  524.                             _ = y[f](u ? {} : -0, 1);
  525.                         e("./$.iter-detect")(function (e) {
  526.                                 new d(e);
  527.                             }) ||
  528.                             ((d = i(function (e, i) {
  529.                                     a(e, d, t);
  530.                                     var n = new h();
  531.                                     return void 0 != i && o(i, c, n[f], n), n;
  532.                                 })),
  533.                                 (d.prototype = p),
  534.                                 (p.constructor = d)),
  535.                             u ||
  536.                             y.forEach(function (e, t) {
  537.                                 g = 1 / t === -(1 / 0);
  538.                             }),
  539.                             g && (v("delete"), v("has"), c && v("get")),
  540.                             (g || _ !== y) && v(f),
  541.                             u && p.clear && delete p.clear;
  542.                     } else(d = l.getConstructor(i, t, c, f)), e("./$.mix")(d.prototype, s);
  543.                     return e("./$.tag")(d, t), (m[t] = d), r(r.G + r.W + r.F * (d != h), m), u || l.setStrong(d, t, c), d;
  544.                 };
  545.             },
  546.             {
  547.                 "./$.def": 17,
  548.                 "./$.fails": 23,
  549.                 "./$.for-of": 26,
  550.                 "./$.global": 28,
  551.                 "./$.iter-detect": 42,
  552.                 "./$.mix": 50,
  553.                 "./$.redef": 57,
  554.                 "./$.strict-new": 64,
  555.                 "./$.tag": 71
  556.             },
  557.         ],
  558.         15: [
  559.             function (e, t, i) {
  560.                 var n = (t.exports = {
  561.                     version: "1.2.1"
  562.                 });
  563.                 "number" == typeof __e && (__e = n);
  564.             },
  565.             {},
  566.         ],
  567.         16: [
  568.             function (e, t, i) {
  569.                 var n = e("./$.a-function");
  570.                 t.exports = function (e, t, i) {
  571.                     if ((n(e), void 0 === t)) return e;
  572.                     switch (i) {
  573.                     case 1:
  574.                         return function (i) {
  575.                             return e.call(t, i);
  576.                         };
  577.                     case 2:
  578.                         return function (i, n) {
  579.                             return e.call(t, i, n);
  580.                         };
  581.                     case 3:
  582.                         return function (i, n, r) {
  583.                             return e.call(t, i, n, r);
  584.                         };
  585.                     }
  586.                     return function () {
  587.                         return e.apply(t, arguments);
  588.                     };
  589.                 };
  590.             },
  591.             {
  592.                 "./$.a-function": 2
  593.             },
  594.         ],
  595.         17: [
  596.             function (e, t, i) {
  597.                 var n = e("./$.global"),
  598.                     r = e("./$.core"),
  599.                     o = e("./$.hide"),
  600.                     a = e("./$.redef"),
  601.                     s = "prototype",
  602.                     l = function (e, t) {
  603.                         return function () {
  604.                             return e.apply(t, arguments);
  605.                         };
  606.                     },
  607.                     c = function (e, t, i) {
  608.                         var u,
  609.                             h,
  610.                             d,
  611.                             f,
  612.                             p = e & c.G,
  613.                             m = e & c.P,
  614.                             v = p ? n : e & c.S ? n[t] || (n[t] = {}) : (n[t] || {})[s],
  615.                             g = p ? r : r[t] || (r[t] = {});
  616.                         p && (i = t);
  617.                         for (u in i)
  618.                             (h = !(e & c.F) && v && u in v),
  619.                             (d = (h ? v : i)[u]),
  620.                             (f = e & c.B && h ? l(d, n) : m && "function" == typeof d ? l(Function.call, d) : d),
  621.                             v && !h && a(v, u, d),
  622.                             g[u] != d && o(g, u, f),
  623.                             m && ((g[s] || (g[s] = {}))[u] = d);
  624.                     };
  625.                 (n.core = r), (c.F = 1), (c.G = 2), (c.S = 4), (c.P = 8), (c.B = 16), (c.W = 32), (t.exports = c);
  626.             },
  627.             {
  628.                 "./$.core": 15,
  629.                 "./$.global": 28,
  630.                 "./$.hide": 30,
  631.                 "./$.redef": 57
  632.             },
  633.         ],
  634.         18: [
  635.             function (e, t, i) {
  636.                 t.exports = function (e) {
  637.                     if (void 0 == e) throw TypeError("Can't call method on  " + e);
  638.                     return e;
  639.                 };
  640.             },
  641.             {},
  642.         ],
  643.         19: [
  644.             function (e, t, i) {
  645.                 var n = e("./$.is-object"),
  646.                     r = e("./$.global").document,
  647.                     o = n(r) && n(r.createElement);
  648.                 t.exports = function (e) {
  649.                     return o ? r.createElement(e) : {};
  650.                 };
  651.             },
  652.             {
  653.                 "./$.global": 28,
  654.                 "./$.is-object": 37
  655.             },
  656.         ],
  657.         20: [
  658.             function (e, t, i) {
  659.                 var n = e("./$");
  660.                 t.exports = function (e) {
  661.                     var t = n.getKeys(e),
  662.                         i = n.getSymbols;
  663.                     if (i)
  664.                         for (var r, o = i(e), a = n.isEnum, s = 0; o.length > s;) a.call(e, (r = o[s++])) && t.push(r);
  665.                     return t;
  666.                 };
  667.             },
  668.             {
  669.                 "./$": 45
  670.             },
  671.         ],
  672.         21: [
  673.             function (e, t, i) {
  674.                 t.exports =
  675.                     Math.expm1 ||
  676.                     function (e) {
  677.                         return 0 == (e = +e) ? e : e > -1e-6 && 1e-6 > e ? e + (e * e) / 2 : Math.exp(e) - 1;
  678.                     };
  679.             },
  680.             {},
  681.         ],
  682.         22: [
  683.             function (e, t, i) {
  684.                 t.exports = function (t) {
  685.                     var i = /./;
  686.                     try {
  687.                         "/./" [t](i);
  688.                     } catch (n) {
  689.                         try {
  690.                             return (i[e("./$.wks")("match")] = !1), !"/./" [t](i);
  691.                         } catch (n) {}
  692.                     }
  693.                     return !0;
  694.                 };
  695.             },
  696.             {
  697.                 "./$.wks": 80
  698.             },
  699.         ],
  700.         23: [
  701.             function (e, t, i) {
  702.                 t.exports = function (e) {
  703.                     try {
  704.                         return !!e();
  705.                     } catch (t) {
  706.                         return !0;
  707.                     }
  708.                 };
  709.             },
  710.             {},
  711.         ],
  712.         24: [
  713.             function (e, t, i) {
  714.                 "use strict";
  715.                 t.exports = function (t, i, n) {
  716.                     var r = e("./$.defined"),
  717.                         o = e("./$.wks")(t),
  718.                         a = "" [t];
  719.                     e("./$.fails")(function () {
  720.                             var e = {};
  721.                             return (
  722.                                 (e[o] = function () {
  723.                                     return 7;
  724.                                 }),
  725.                                 7 != "" [t](e)
  726.                             );
  727.                         }) &&
  728.                         (e("./$.redef")(String.prototype, t, n(r, o, a)),
  729.                             e("./$.hide")(
  730.                                 RegExp.prototype,
  731.                                 o,
  732.                                 2 == i ?
  733.                                 function (e, t) {
  734.                                     return a.call(e, this, t);
  735.                                 } :
  736.                                 function (e) {
  737.                                     return a.call(e, this);
  738.                                 }
  739.                             ));
  740.                 };
  741.             },
  742.             {
  743.                 "./$.defined": 18,
  744.                 "./$.fails": 23,
  745.                 "./$.hide": 30,
  746.                 "./$.redef": 57,
  747.                 "./$.wks": 80
  748.             },
  749.         ],
  750.         25: [
  751.             function (e, t, i) {
  752.                 "use strict";
  753.                 var n = e("./$.an-object");
  754.                 t.exports = function () {
  755.                     var e = n(this),
  756.                         t = "";
  757.                     return e.global && (t += "g"), e.ignoreCase && (t += "i"), e.multiline && (t += "m"), e.unicode && (t += "u"), e.sticky && (t += "y"), t;
  758.                 };
  759.             },
  760.             {
  761.                 "./$.an-object": 3
  762.             },
  763.         ],
  764.         26: [
  765.             function (e, t, i) {
  766.                 var n = e("./$.ctx"),
  767.                     r = e("./$.iter-call"),
  768.                     o = e("./$.is-array-iter"),
  769.                     a = e("./$.an-object"),
  770.                     s = e("./$.to-length"),
  771.                     l = e("./core.get-iterator-method");
  772.                 t.exports = function (e, t, i, c) {
  773.                     var u,
  774.                         h,
  775.                         d,
  776.                         f = l(e),
  777.                         p = n(i, c, t ? 2 : 1),
  778.                         m = 0;
  779.                     if ("function" != typeof f) throw TypeError(e + " is not iterable!");
  780.                     if (o(f))
  781.                         for (u = s(e.length); u > m; m++) t ? p(a((h = e[m]))[0], h[1]) : p(e[m]);
  782.                     else
  783.                         for (d = f.call(e); !(h = d.next()).done;) r(d, p, h.value, t);
  784.                 };
  785.             },
  786.             {
  787.                 "./$.an-object": 3,
  788.                 "./$.ctx": 16,
  789.                 "./$.is-array-iter": 34,
  790.                 "./$.iter-call": 39,
  791.                 "./$.to-length": 76,
  792.                 "./core.get-iterator-method": 81
  793.             },
  794.         ],
  795.         27: [
  796.             function (e, t, i) {
  797.                 var n = {}.toString,
  798.                     r = e("./$.to-iobject"),
  799.                     o = e("./$").getNames,
  800.                     a = "object" == typeof window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [],
  801.                     s = function (e) {
  802.                         try {
  803.                             return o(e);
  804.                         } catch (t) {
  805.                             return a.slice();
  806.                         }
  807.                     };
  808.                 t.exports.get = function (e) {
  809.                     return a && "[object Window]" == n.call(e) ? s(e) : o(r(e));
  810.                 };
  811.             },
  812.             {
  813.                 "./$": 45,
  814.                 "./$.to-iobject": 75
  815.             },
  816.         ],
  817.         28: [
  818.             function (e, t, i) {
  819.                 var n = "undefined",
  820.                     r = (t.exports = typeof window != n && window.Math == Math ? window : typeof self != n && self.Math == Math ? self : Function("return this")());
  821.                 "number" == typeof __g && (__g = r);
  822.             },
  823.             {},
  824.         ],
  825.         29: [
  826.             function (e, t, i) {
  827.                 var n = {}.hasOwnProperty;
  828.                 t.exports = function (e, t) {
  829.                     return n.call(e, t);
  830.                 };
  831.             },
  832.             {},
  833.         ],
  834.         30: [
  835.             function (e, t, i) {
  836.                 var n = e("./$"),
  837.                     r = e("./$.property-desc");
  838.                 t.exports = e("./$.support-desc") ?
  839.                     function (e, t, i) {
  840.                         return n.setDesc(e, t, r(1, i));
  841.                     } :
  842.                     function (e, t, i) {
  843.                         return (e[t] = i), e;
  844.                     };
  845.             },
  846.             {
  847.                 "./$": 45,
  848.                 "./$.property-desc": 56,
  849.                 "./$.support-desc": 70
  850.             },
  851.         ],
  852.         31: [
  853.             function (e, t, i) {
  854.                 t.exports = e("./$.global").document && document.documentElement;
  855.             },
  856.             {
  857.                 "./$.global": 28
  858.             },
  859.         ],
  860.         32: [
  861.             function (e, t, i) {
  862.                 t.exports = function (e, t, i) {
  863.                     var n = void 0 === i;
  864.                     switch (t.length) {
  865.                     case 0:
  866.                         return n ? e() : e.call(i);
  867.                     case 1:
  868.                         return n ? e(t[0]) : e.call(i, t[0]);
  869.                     case 2:
  870.                         return n ? e(t[0], t[1]) : e.call(i, t[0], t[1]);
  871.                     case 3:
  872.                         return n ? e(t[0], t[1], t[2]) : e.call(i, t[0], t[1], t[2]);
  873.                     case 4:
  874.                         return n ? e(t[0], t[1], t[2], t[3]) : e.call(i, t[0], t[1], t[2], t[3]);
  875.                     }
  876.                     return e.apply(i, t);
  877.                 };
  878.             },
  879.             {},
  880.         ],
  881.         33: [
  882.             function (e, t, i) {
  883.                 var n = e("./$.cof");
  884.                 t.exports =
  885.                     0 in Object("z") ?
  886.                     Object :
  887.                     function (e) {
  888.                         return "String" == n(e) ? e.split("") : Object(e);
  889.                     };
  890.             },
  891.             {
  892.                 "./$.cof": 10
  893.             },
  894.         ],
  895.         34: [
  896.             function (e, t, i) {
  897.                 var n = e("./$.iterators"),
  898.                     r = e("./$.wks")("iterator");
  899.                 t.exports = function (e) {
  900.                     return (n.Array || Array.prototype[r]) === e;
  901.                 };
  902.             },
  903.             {
  904.                 "./$.iterators": 44,
  905.                 "./$.wks": 80
  906.             },
  907.         ],
  908.         35: [
  909.             function (e, t, i) {
  910.                 var n = e("./$.cof");
  911.                 t.exports =
  912.                     Array.isArray ||
  913.                     function (e) {
  914.                         return "Array" == n(e);
  915.                     };
  916.             },
  917.             {
  918.                 "./$.cof": 10
  919.             },
  920.         ],
  921.         36: [
  922.             function (e, t, i) {
  923.                 var n = e("./$.is-object"),
  924.                     r = Math.floor;
  925.                 t.exports = function (e) {
  926.                     return !n(e) && isFinite(e) && r(e) === e;
  927.                 };
  928.             },
  929.             {
  930.                 "./$.is-object": 37
  931.             },
  932.         ],
  933.         37: [
  934.             function (e, t, i) {
  935.                 t.exports = function (e) {
  936.                     return "object" == typeof e ? null !== e : "function" == typeof e;
  937.                 };
  938.             },
  939.             {},
  940.         ],
  941.         38: [
  942.             function (e, t, i) {
  943.                 var n = e("./$.is-object"),
  944.                     r = e("./$.cof"),
  945.                     o = e("./$.wks")("match");
  946.                 t.exports = function (e) {
  947.                     var t;
  948.                     return n(e) && (void 0 !== (t = e[o]) ? !!t : "RegExp" == r(e));
  949.                 };
  950.             },
  951.             {
  952.                 "./$.cof": 10,
  953.                 "./$.is-object": 37,
  954.                 "./$.wks": 80
  955.             },
  956.         ],
  957.         39: [
  958.             function (e, t, i) {
  959.                 var n = e("./$.an-object");
  960.                 t.exports = function (e, t, i, r) {
  961.                     try {
  962.                         return r ? t(n(i)[0], i[1]) : t(i);
  963.                     } catch (o) {
  964.                         var a = e["return"];
  965.                         throw (void 0 !== a && n(a.call(e)), o);
  966.                     }
  967.                 };
  968.             },
  969.             {
  970.                 "./$.an-object": 3
  971.             },
  972.         ],
  973.         40: [
  974.             function (e, t, i) {
  975.                 "use strict";
  976.                 var n = e("./$"),
  977.                     r = {};
  978.                 e("./$.hide")(r, e("./$.wks")("iterator"), function () {
  979.                         return this;
  980.                     }),
  981.                     (t.exports = function (t, i, o) {
  982.                         (t.prototype = n.create(r, {
  983.                             next: e("./$.property-desc")(1, o)
  984.                         })), e("./$.tag")(t, i + " Iterator");
  985.                     });
  986.             },
  987.             {
  988.                 "./$": 45,
  989.                 "./$.hide": 30,
  990.                 "./$.property-desc": 56,
  991.                 "./$.tag": 71,
  992.                 "./$.wks": 80
  993.             },
  994.         ],
  995.         41: [
  996.             function (e, t, i) {
  997.                 "use strict";
  998.                 var n = e("./$.library"),
  999.                     r = e("./$.def"),
  1000.                     o = e("./$.redef"),
  1001.                     a = e("./$.hide"),
  1002.                     s = e("./$.has"),
  1003.                     l = e("./$.wks")("iterator"),
  1004.                     c = e("./$.iterators"),
  1005.                     u = !([].keys && "next" in [].keys()),
  1006.                     h = "@@iterator",
  1007.                     d = "keys",
  1008.                     f = "values",
  1009.                     p = function () {
  1010.                         return this;
  1011.                     };
  1012.                 t.exports = function (t, i, m, v, g, y, _) {
  1013.                     e("./$.iter-create")(m, i, v);
  1014.                     var b,
  1015.                         x,
  1016.                         w = function (e) {
  1017.                             switch (e) {
  1018.                             case d:
  1019.                                 return function () {
  1020.                                     return new m(this, e);
  1021.                                 };
  1022.                             case f:
  1023.                                 return function () {
  1024.                                     return new m(this, e);
  1025.                                 };
  1026.                             }
  1027.                             return function () {
  1028.                                 return new m(this, e);
  1029.                             };
  1030.                         },
  1031.                         M = i + " Iterator",
  1032.                         T = t.prototype,
  1033.                         S = T[l] || T[h] || (g && T[g]),
  1034.                         E = S || w(g);
  1035.                     if (S) {
  1036.                         var A = e("./$").getProto(E.call(new t()));
  1037.                         e("./$.tag")(A, M, !0), !n && s(T, h) && a(A, l, p);
  1038.                     }
  1039.                     if (((!n || _) && a(T, l, E), (c[i] = E), (c[M] = p), g))
  1040.                         if (((b = {
  1041.                                 keys: y ? E : w(d),
  1042.                                 values: g == f ? E : w(f),
  1043.                                 entries: g != f ? E : w("entries")
  1044.                             }), _))
  1045.                             for (x in b) x in T || o(T, x, b[x]);
  1046.                         else r(r.P + r.F * u, i, b);
  1047.                 };
  1048.             },
  1049.             {
  1050.                 "./$": 45,
  1051.                 "./$.def": 17,
  1052.                 "./$.has": 29,
  1053.                 "./$.hide": 30,
  1054.                 "./$.iter-create": 40,
  1055.                 "./$.iterators": 44,
  1056.                 "./$.library": 47,
  1057.                 "./$.redef": 57,
  1058.                 "./$.tag": 71,
  1059.                 "./$.wks": 80
  1060.             },
  1061.         ],
  1062.         42: [
  1063.             function (e, t, i) {
  1064.                 var n = e("./$.wks")("iterator"),
  1065.                     r = !1;
  1066.                 try {
  1067.                     var o = [7][n]();
  1068.                     (o["return"] = function () {
  1069.                         r = !0;
  1070.                     }),
  1071.                     Array.from(o, function () {
  1072.                         throw 2;
  1073.                     });
  1074.                 } catch (a) {}
  1075.                 t.exports = function (e) {
  1076.                     if (!r) return !1;
  1077.                     var t = !1;
  1078.                     try {
  1079.                         var i = [7],
  1080.                             o = i[n]();
  1081.                         (o.next = function () {
  1082.                             t = !0;
  1083.                         }),
  1084.                         (i[n] = function () {
  1085.                             return o;
  1086.                         }),
  1087.                         e(i);
  1088.                     } catch (a) {}
  1089.                     return t;
  1090.                 };
  1091.             },
  1092.             {
  1093.                 "./$.wks": 80
  1094.             },
  1095.         ],
  1096.         43: [
  1097.             function (e, t, i) {
  1098.                 t.exports = function (e, t) {
  1099.                     return {
  1100.                         value: t,
  1101.                         done: !!e
  1102.                     };
  1103.                 };
  1104.             },
  1105.             {},
  1106.         ],
  1107.         44: [
  1108.             function (e, t, i) {
  1109.                 t.exports = {};
  1110.             },
  1111.             {},
  1112.         ],
  1113.         45: [
  1114.             function (e, t, i) {
  1115.                 var n = Object;
  1116.                 t.exports = {
  1117.                     create: n.create,
  1118.                     getProto: n.getPrototypeOf,
  1119.                     isEnum: {}.propertyIsEnumerable,
  1120.                     getDesc: n.getOwnPropertyDescriptor,
  1121.                     setDesc: n.defineProperty,
  1122.                     setDescs: n.defineProperties,
  1123.                     getKeys: n.keys,
  1124.                     getNames: n.getOwnPropertyNames,
  1125.                     getSymbols: n.getOwnPropertySymbols,
  1126.                     each: [].forEach,
  1127.                 };
  1128.             },
  1129.             {},
  1130.         ],
  1131.         46: [
  1132.             function (e, t, i) {
  1133.                 var n = e("./$"),
  1134.                     r = e("./$.to-iobject");
  1135.                 t.exports = function (e, t) {
  1136.                     for (var i, o = r(e), a = n.getKeys(o), s = a.length, l = 0; s > l;)
  1137.                         if (o[(i = a[l++])] === t) return i;
  1138.                 };
  1139.             },
  1140.             {
  1141.                 "./$": 45,
  1142.                 "./$.to-iobject": 75
  1143.             },
  1144.         ],
  1145.         47: [
  1146.             function (e, t, i) {
  1147.                 t.exports = !1;
  1148.             },
  1149.             {},
  1150.         ],
  1151.         48: [
  1152.             function (e, t, i) {
  1153.                 t.exports =
  1154.                     Math.log1p ||
  1155.                     function (e) {
  1156.                         return (e = +e) > -1e-8 && 1e-8 > e ? e - (e * e) / 2 : Math.log(1 + e);
  1157.                     };
  1158.             },
  1159.             {},
  1160.         ],
  1161.         49: [
  1162.             function (e, t, i) {
  1163.                 var n,
  1164.                     r,
  1165.                     o,
  1166.                     a = e("./$.global"),
  1167.                     s = e("./$.task").set,
  1168.                     l = a.MutationObserver || a.WebKitMutationObserver,
  1169.                     c = a.process,
  1170.                     u = "process" == e("./$.cof")(c),
  1171.                     h = function () {
  1172.                         var e, t;
  1173.                         for (u && (e = c.domain) && ((c.domain = null), e.exit()); n;)(t = n.domain), t && t.enter(), n.fn.call(), t && t.exit(), (n = n.next);
  1174.                         (r = void 0), e && e.enter();
  1175.                     };
  1176.                 if (u)
  1177.                     o = function () {
  1178.                         c.nextTick(h);
  1179.                     };
  1180.                 else if (l) {
  1181.                     var d = 1,
  1182.                         f = document.createTextNode("");
  1183.                     new l(h).observe(f, {
  1184.                             characterData: !0
  1185.                         }),
  1186.                         (o = function () {
  1187.                             f.data = d = -d;
  1188.                         });
  1189.                 } else
  1190.                     o = function () {
  1191.                         s.call(a, h);
  1192.                     };
  1193.                 t.exports = function (e) {
  1194.                     var t = {
  1195.                         fn: e,
  1196.                         next: void 0,
  1197.                         domain: u && c.domain
  1198.                     };
  1199.                     r && (r.next = t), n || ((n = t), o()), (r = t);
  1200.                 };
  1201.             },
  1202.             {
  1203.                 "./$.cof": 10,
  1204.                 "./$.global": 28,
  1205.                 "./$.task": 72
  1206.             },
  1207.         ],
  1208.         50: [
  1209.             function (e, t, i) {
  1210.                 var n = e("./$.redef");
  1211.                 t.exports = function (e, t) {
  1212.                     for (var i in t) n(e, i, t[i]);
  1213.                     return e;
  1214.                 };
  1215.             },
  1216.             {
  1217.                 "./$.redef": 57
  1218.             },
  1219.         ],
  1220.         51: [
  1221.             function (e, t, i) {
  1222.                 t.exports = function (t, i) {
  1223.                     var n = e("./$.def"),
  1224.                         r = (e("./$.core").Object || {})[t] || Object[t],
  1225.                         o = {};
  1226.                     (o[t] = i(r)),
  1227.                     n(
  1228.                         n.S +
  1229.                         n.F *
  1230.                         e("./$.fails")(function () {
  1231.                             r(1);
  1232.                         }),
  1233.                         "Object",
  1234.                         o
  1235.                     );
  1236.                 };
  1237.             },
  1238.             {
  1239.                 "./$.core": 15,
  1240.                 "./$.def": 17,
  1241.                 "./$.fails": 23
  1242.             },
  1243.         ],
  1244.         52: [
  1245.             function (e, t, i) {
  1246.                 var n = e("./$"),
  1247.                     r = e("./$.has"),
  1248.                     o = e("./$.to-iobject");
  1249.                 t.exports = function (e) {
  1250.                     return function (t) {
  1251.                         for (var i, a = o(t), s = n.getKeys(a), l = s.length, c = 0, u = []; l > c;) r(a, (i = s[c++])) && u.push(e ? [i, a[i]] : a[i]);
  1252.                         return u;
  1253.                     };
  1254.                 };
  1255.             },
  1256.             {
  1257.                 "./$": 45,
  1258.                 "./$.has": 29,
  1259.                 "./$.to-iobject": 75
  1260.             },
  1261.         ],
  1262.         53: [
  1263.             function (e, t, i) {
  1264.                 var n = e("./$"),
  1265.                     r = e("./$.an-object"),
  1266.                     o = e("./$.global").Reflect;
  1267.                 t.exports =
  1268.                     (o && o.ownKeys) ||
  1269.                     function (e) {
  1270.                         var t = n.getNames(r(e)),
  1271.                             i = n.getSymbols;
  1272.                         return i ? t.concat(i(e)) : t;
  1273.                     };
  1274.             },
  1275.             {
  1276.                 "./$": 45,
  1277.                 "./$.an-object": 3,
  1278.                 "./$.global": 28
  1279.             },
  1280.         ],
  1281.         54: [
  1282.             function (e, t, i) {
  1283.                 "use strict";
  1284.                 var n = e("./$.path"),
  1285.                     r = e("./$.invoke"),
  1286.                     o = e("./$.a-function");
  1287.                 t.exports = function () {
  1288.                     for (var e = o(this), t = arguments.length, i = Array(t), a = 0, s = n._, l = !1; t > a;)(i[a] = arguments[a++]) === s && (l = !0);
  1289.                     return function () {
  1290.                         var n,
  1291.                             o = this,
  1292.                             a = arguments.length,
  1293.                             c = 0,
  1294.                             u = 0;
  1295.                         if (!l && !a) return r(e, i, o);
  1296.                         if (((n = i.slice()), l))
  1297.                             for (; t > c; c++) n[c] === s && (n[c] = arguments[u++]);
  1298.                         for (; a > u;) n.push(arguments[u++]);
  1299.                         return r(e, n, o);
  1300.                     };
  1301.                 };
  1302.             },
  1303.             {
  1304.                 "./$.a-function": 2,
  1305.                 "./$.invoke": 32,
  1306.                 "./$.path": 55
  1307.             },
  1308.         ],
  1309.         55: [
  1310.             function (e, t, i) {
  1311.                 t.exports = e("./$.global");
  1312.             },
  1313.             {
  1314.                 "./$.global": 28
  1315.             },
  1316.         ],
  1317.         56: [
  1318.             function (e, t, i) {
  1319.                 t.exports = function (e, t) {
  1320.                     return {
  1321.                         enumerable: !(1 & e),
  1322.                         configurable: !(2 & e),
  1323.                         writable: !(4 & e),
  1324.                         value: t
  1325.                     };
  1326.                 };
  1327.             },
  1328.             {},
  1329.         ],
  1330.         57: [
  1331.             function (e, t, i) {
  1332.                 var n = e("./$.global"),
  1333.                     r = e("./$.hide"),
  1334.                     o = e("./$.uid")("src"),
  1335.                     a = "toString",
  1336.                     s = Function[a],
  1337.                     l = ("" + s).split(a);
  1338.                 (e("./$.core").inspectSource = function (e) {
  1339.                     return s.call(e);
  1340.                 }),
  1341.                 (t.exports = function (e, t, i, a) {
  1342.                     "function" == typeof i && (r(i, o, e[t] ? "" + e[t] : l.join(String(t))), "name" in i || (i.name = t)), e === n ? (e[t] = i) : (a || delete e[t], r(e, t, i));
  1343.                 })(Function.prototype, a, function () {
  1344.                     return ("function" == typeof this && this[o]) || s.call(this);
  1345.                 });
  1346.             },
  1347.             {
  1348.                 "./$.core": 15,
  1349.                 "./$.global": 28,
  1350.                 "./$.hide": 30,
  1351.                 "./$.uid": 78
  1352.             },
  1353.         ],
  1354.         58: [
  1355.             function (e, t, i) {
  1356.                 t.exports = function (e, t) {
  1357.                     var i =
  1358.                         t === Object(t) ?
  1359.                         function (e) {
  1360.                             return t[e];
  1361.                         } :
  1362.                         t;
  1363.                     return function (t) {
  1364.                         return String(t).replace(e, i);
  1365.                     };
  1366.                 };
  1367.             },
  1368.             {},
  1369.         ],
  1370.         59: [
  1371.             function (e, t, i) {
  1372.                 t.exports =
  1373.                     Object.is ||
  1374.                     function (e, t) {
  1375.                         return e === t ? 0 !== e || 1 / e === 1 / t : e != e && t != t;
  1376.                     };
  1377.             },
  1378.             {},
  1379.         ],
  1380.         60: [
  1381.             function (e, t, i) {
  1382.                 var n = e("./$").getDesc,
  1383.                     r = e("./$.is-object"),
  1384.                     o = e("./$.an-object"),
  1385.                     a = function (e, t) {
  1386.                         if ((o(e), !r(t) && null !== t)) throw TypeError(t + ": can't set as prototype!");
  1387.                     };
  1388.                 t.exports = {
  1389.                     set: Object.setPrototypeOf ||
  1390.                         ("__proto__" in {} ?
  1391.                             (function (t, i, r) {
  1392.                                 try {
  1393.                                     (r = e("./$.ctx")(Function.call, n(Object.prototype, "__proto__").set, 2)), r(t, []), (i = !(t instanceof Array));
  1394.                                 } catch (o) {
  1395.                                     i = !0;
  1396.                                 }
  1397.                                 return function (e, t) {
  1398.                                     return a(e, t), i ? (e.__proto__ = t) : r(e, t), e;
  1399.                                 };
  1400.                             })({}, !1) :
  1401.                             void 0),
  1402.                     check: a,
  1403.                 };
  1404.             },
  1405.             {
  1406.                 "./$": 45,
  1407.                 "./$.an-object": 3,
  1408.                 "./$.ctx": 16,
  1409.                 "./$.is-object": 37
  1410.             },
  1411.         ],
  1412.         61: [
  1413.             function (e, t, i) {
  1414.                 var n = e("./$.global"),
  1415.                     r = "__core-js_shared__",
  1416.                     o = n[r] || (n[r] = {});
  1417.                 t.exports = function (e) {
  1418.                     return o[e] || (o[e] = {});
  1419.                 };
  1420.             },
  1421.             {
  1422.                 "./$.global": 28
  1423.             },
  1424.         ],
  1425.         62: [
  1426.             function (e, t, i) {
  1427.                 t.exports =
  1428.                     Math.sign ||
  1429.                     function (e) {
  1430.                         return 0 == (e = +e) || e != e ? e : 0 > e ? -1 : 1;
  1431.                     };
  1432.             },
  1433.             {},
  1434.         ],
  1435.         63: [
  1436.             function (e, t, i) {
  1437.                 "use strict";
  1438.                 var n = e("./$"),
  1439.                     r = e("./$.wks")("species");
  1440.                 t.exports = function (t) {
  1441.                     !e("./$.support-desc") ||
  1442.                         r in t ||
  1443.                         n.setDesc(t, r, {
  1444.                             configurable: !0,
  1445.                             get: function () {
  1446.                                 return this;
  1447.                             },
  1448.                         });
  1449.                 };
  1450.             },
  1451.             {
  1452.                 "./$": 45,
  1453.                 "./$.support-desc": 70,
  1454.                 "./$.wks": 80
  1455.             },
  1456.         ],
  1457.         64: [
  1458.             function (e, t, i) {
  1459.                 t.exports = function (e, t, i) {
  1460.                     if (!(e instanceof t)) throw TypeError(i + ": use the 'new' operator!");
  1461.                     return e;
  1462.                 };
  1463.             },
  1464.             {},
  1465.         ],
  1466.         65: [
  1467.             function (e, t, i) {
  1468.                 var n = e("./$.to-integer"),
  1469.                     r = e("./$.defined");
  1470.                 t.exports = function (e) {
  1471.                     return function (t, i) {
  1472.                         var o,
  1473.                             a,
  1474.                             s = String(r(t)),
  1475.                             l = n(i),
  1476.                             c = s.length;
  1477.                         return 0 > l || l >= c ?
  1478.                             e ?
  1479.                             "" :
  1480.                             void 0 :
  1481.                             ((o = s.charCodeAt(l)), 55296 > o || o > 56319 || l + 1 === c || (a = s.charCodeAt(l + 1)) < 56320 || a > 57343 ? (e ? s.charAt(l) : o) : e ? s.slice(l, l + 2) : ((o - 55296) << 10) + (a - 56320) + 65536);
  1482.                     };
  1483.                 };
  1484.             },
  1485.             {
  1486.                 "./$.defined": 18,
  1487.                 "./$.to-integer": 74
  1488.             },
  1489.         ],
  1490.         66: [
  1491.             function (e, t, i) {
  1492.                 var n = e("./$.is-regexp"),
  1493.                     r = e("./$.defined");
  1494.                 t.exports = function (e, t, i) {
  1495.                     if (n(t)) throw TypeError("String#" + i + " doesn't accept regex!");
  1496.                     return String(r(e));
  1497.                 };
  1498.             },
  1499.             {
  1500.                 "./$.defined": 18,
  1501.                 "./$.is-regexp": 38
  1502.             },
  1503.         ],
  1504.         67: [
  1505.             function (e, t, i) {
  1506.                 var n = e("./$.to-length"),
  1507.                     r = e("./$.string-repeat"),
  1508.                     o = e("./$.defined");
  1509.                 t.exports = function (e, t, i, a) {
  1510.                     var s = String(o(e)),
  1511.                         l = s.length,
  1512.                         c = void 0 === i ? " " : String(i),
  1513.                         u = n(t);
  1514.                     if (l >= u) return s;
  1515.                     "" == c && (c = " ");
  1516.                     var h = u - l,
  1517.                         d = r.call(c, Math.ceil(h / c.length));
  1518.                     return d.length > h && (d = d.slice(0, h)), a ? d + s : s + d;
  1519.                 };
  1520.             },
  1521.             {
  1522.                 "./$.defined": 18,
  1523.                 "./$.string-repeat": 68,
  1524.                 "./$.to-length": 76
  1525.             },
  1526.         ],
  1527.         68: [
  1528.             function (e, t, i) {
  1529.                 "use strict";
  1530.                 var n = e("./$.to-integer"),
  1531.                     r = e("./$.defined");
  1532.                 t.exports = function (e) {
  1533.                     var t = String(r(this)),
  1534.                         i = "",
  1535.                         o = n(e);
  1536.                     if (0 > o || o == 1 / 0) throw RangeError("Count can't be negative");
  1537.                     for (; o > 0;
  1538.                         (o >>>= 1) && (t += t)) 1 & o && (i += t);
  1539.                     return i;
  1540.                 };
  1541.             },
  1542.             {
  1543.                 "./$.defined": 18,
  1544.                 "./$.to-integer": 74
  1545.             },
  1546.         ],
  1547.         69: [
  1548.             function (e, t, i) {
  1549.                 var n = function (e, t) {
  1550.                         return (e = String(o(e))), 1 & t && (e = e.replace(c, "")), 2 & t && (e = e.replace(u, "")), e;
  1551.                     },
  1552.                     r = e("./$.def"),
  1553.                     o = e("./$.defined"),
  1554.                     a = "       n fr   ᠎              
  1555.  
  1556. ",
  1557.                     s = "[" + a + "]",
  1558.                     l = "​…",
  1559.                     c = RegExp("^" + s + s + "*"),
  1560.                     u = RegExp(s + s + "*$");
  1561.                 t.exports = function (t, i) {
  1562.                     var o = {};
  1563.                     (o[t] = i(n)),
  1564.                     r(
  1565.                         r.P +
  1566.                         r.F *
  1567.                         e("./$.fails")(function () {
  1568.                             return !!a[t]() || l[t]() != l;
  1569.                         }),
  1570.                         "String",
  1571.                         o
  1572.                     );
  1573.                 };
  1574.             },
  1575.             {
  1576.                 "./$.def": 17,
  1577.                 "./$.defined": 18,
  1578.                 "./$.fails": 23
  1579.             },
  1580.         ],
  1581.         70: [
  1582.             function (e, t, i) {
  1583.                 t.exports = !e("./$.fails")(function () {
  1584.                     return (
  1585.                         7 !=
  1586.                         Object.defineProperty({}, "a", {
  1587.                             get: function () {
  1588.                                 return 7;
  1589.                             },
  1590.                         }).a
  1591.                     );
  1592.                 });
  1593.             },
  1594.             {
  1595.                 "./$.fails": 23
  1596.             },
  1597.         ],
  1598.         71: [
  1599.             function (e, t, i) {
  1600.                 var n = e("./$.has"),
  1601.                     r = e("./$.hide"),
  1602.                     o = e("./$.wks")("toStringTag");
  1603.                 t.exports = function (e, t, i) {
  1604.                     e && !n((e = i ? e : e.prototype), o) && r(e, o, t);
  1605.                 };
  1606.             },
  1607.             {
  1608.                 "./$.has": 29,
  1609.                 "./$.hide": 30,
  1610.                 "./$.wks": 80
  1611.             },
  1612.         ],
  1613.         72: [
  1614.             function (e, t, i) {
  1615.                 "use strict";
  1616.                 var n,
  1617.                     r,
  1618.                     o,
  1619.                     a = e("./$.ctx"),
  1620.                     s = e("./$.invoke"),
  1621.                     l = e("./$.html"),
  1622.                     c = e("./$.dom-create"),
  1623.                     u = e("./$.global"),
  1624.                     h = u.process,
  1625.                     d = u.setImmediate,
  1626.                     f = u.clearImmediate,
  1627.                     p = u.MessageChannel,
  1628.                     m = 0,
  1629.                     v = {},
  1630.                     g = "onreadystatechange",
  1631.                     y = function () {
  1632.                         var e = +this;
  1633.                         if (v.hasOwnProperty(e)) {
  1634.                             var t = v[e];
  1635.                             delete v[e], t();
  1636.                         }
  1637.                     },
  1638.                     _ = function (e) {
  1639.                         y.call(e.data);
  1640.                     };
  1641.                 (d && f) ||
  1642.                 ((d = function (e) {
  1643.                         for (var t = [], i = 1; arguments.length > i;) t.push(arguments[i++]);
  1644.                         return (
  1645.                             (v[++m] = function () {
  1646.                                 s("function" == typeof e ? e : Function(e), t);
  1647.                             }),
  1648.                             n(m),
  1649.                             m
  1650.                         );
  1651.                     }),
  1652.                     (f = function (e) {
  1653.                         delete v[e];
  1654.                     }),
  1655.                     "process" == e("./$.cof")(h) ?
  1656.                     (n = function (e) {
  1657.                         h.nextTick(a(y, e, 1));
  1658.                     }) :
  1659.                     p ?
  1660.                     ((r = new p()), (o = r.port2), (r.port1.onmessage = _), (n = a(o.postMessage, o, 1))) :
  1661.                     u.addEventListener && "function" == typeof postMessage && !u.importScripts ?
  1662.                     ((n = function (e) {
  1663.                             u.postMessage(e + "", "*");
  1664.                         }),
  1665.                         u.addEventListener("message", _, !1)) :
  1666.                     (n =
  1667.                         g in c("script") ?
  1668.                         function (e) {
  1669.                             l.appendChild(c("script"))[g] = function () {
  1670.                                 l.removeChild(this), y.call(e);
  1671.                             };
  1672.                         } :
  1673.                         function (e) {
  1674.                             setTimeout(a(y, e, 1), 0);
  1675.                         })),
  1676.                 (t.exports = {
  1677.                     set: d,
  1678.                     clear: f
  1679.                 });
  1680.             },
  1681.             {
  1682.                 "./$.cof": 10,
  1683.                 "./$.ctx": 16,
  1684.                 "./$.dom-create": 19,
  1685.                 "./$.global": 28,
  1686.                 "./$.html": 31,
  1687.                 "./$.invoke": 32
  1688.             },
  1689.         ],
  1690.         73: [
  1691.             function (e, t, i) {
  1692.                 var n = e("./$.to-integer"),
  1693.                     r = Math.max,
  1694.                     o = Math.min;
  1695.                 t.exports = function (e, t) {
  1696.                     return (e = n(e)), 0 > e ? r(e + t, 0) : o(e, t);
  1697.                 };
  1698.             },
  1699.             {
  1700.                 "./$.to-integer": 74
  1701.             },
  1702.         ],
  1703.         74: [
  1704.             function (e, t, i) {
  1705.                 var n = Math.ceil,
  1706.                     r = Math.floor;
  1707.                 t.exports = function (e) {
  1708.                     return isNaN((e = +e)) ? 0 : (e > 0 ? r : n)(e);
  1709.                 };
  1710.             },
  1711.             {},
  1712.         ],
  1713.         75: [
  1714.             function (e, t, i) {
  1715.                 var n = e("./$.iobject"),
  1716.                     r = e("./$.defined");
  1717.                 t.exports = function (e) {
  1718.                     return n(r(e));
  1719.                 };
  1720.             },
  1721.             {
  1722.                 "./$.defined": 18,
  1723.                 "./$.iobject": 33
  1724.             },
  1725.         ],
  1726.         76: [
  1727.             function (e, t, i) {
  1728.                 var n = e("./$.to-integer"),
  1729.                     r = Math.min;
  1730.                 t.exports = function (e) {
  1731.                     return e > 0 ? r(n(e), 9007199254740991) : 0;
  1732.                 };
  1733.             },
  1734.             {
  1735.                 "./$.to-integer": 74
  1736.             },
  1737.         ],
  1738.         77: [
  1739.             function (e, t, i) {
  1740.                 var n = e("./$.defined");
  1741.                 t.exports = function (e) {
  1742.                     return Object(n(e));
  1743.                 };
  1744.             },
  1745.             {
  1746.                 "./$.defined": 18
  1747.             },
  1748.         ],
  1749.         78: [
  1750.             function (e, t, i) {
  1751.                 var n = 0,
  1752.                     r = Math.random();
  1753.                 t.exports = function (e) {
  1754.                     return "Symbol(".concat(void 0 === e ? "" : e, ")_", (++n + r).toString(36));
  1755.                 };
  1756.             },
  1757.             {},
  1758.         ],
  1759.         79: [
  1760.             function (e, t, i) {
  1761.                 var n = e("./$.wks")("unscopables");
  1762.                 void 0 == [][n] && e("./$.hide")(Array.prototype, n, {}),
  1763.                     (t.exports = function (e) {
  1764.                         [][n][e] = !0;
  1765.                     });
  1766.             },
  1767.             {
  1768.                 "./$.hide": 30,
  1769.                 "./$.wks": 80
  1770.             },
  1771.         ],
  1772.         80: [
  1773.             function (e, t, i) {
  1774.                 var n = e("./$.shared")("wks"),
  1775.                     r = e("./$.global").Symbol;
  1776.                 t.exports = function (t) {
  1777.                     return n[t] || (n[t] = (r && r[t]) || (r || e("./$.uid"))("Symbol." + t));
  1778.                 };
  1779.             },
  1780.             {
  1781.                 "./$.global": 28,
  1782.                 "./$.shared": 61,
  1783.                 "./$.uid": 78
  1784.             },
  1785.         ],
  1786.         81: [
  1787.             function (e, t, i) {
  1788.                 var n = e("./$.classof"),
  1789.                     r = e("./$.wks")("iterator"),
  1790.                     o = e("./$.iterators");
  1791.                 t.exports = e("./$.core").getIteratorMethod = function (e) {
  1792.                     return void 0 != e ? e[r] || e["@@iterator"] || o[n(e)] : void 0;
  1793.                 };
  1794.             },
  1795.             {
  1796.                 "./$.classof": 9,
  1797.                 "./$.core": 15,
  1798.                 "./$.iterators": 44,
  1799.                 "./$.wks": 80
  1800.             },
  1801.         ],
  1802.         82: [
  1803.             function (e, t, i) {
  1804.                 "use strict";
  1805.                 var n,
  1806.                     r = e("./$"),
  1807.                     o = e("./$.support-desc"),
  1808.                     a = e("./$.property-desc"),
  1809.                     s = e("./$.html"),
  1810.                     l = e("./$.dom-create"),
  1811.                     c = e("./$.has"),
  1812.                     u = e("./$.cof"),
  1813.                     h = e("./$.def"),
  1814.                     d = e("./$.invoke"),
  1815.                     f = e("./$.array-methods"),
  1816.                     p = e("./$.uid")("__proto__"),
  1817.                     m = e("./$.is-object"),
  1818.                     v = e("./$.an-object"),
  1819.                     g = e("./$.a-function"),
  1820.                     y = e("./$.to-object"),
  1821.                     _ = e("./$.to-iobject"),
  1822.                     b = e("./$.to-integer"),
  1823.                     x = e("./$.to-index"),
  1824.                     w = e("./$.to-length"),
  1825.                     M = e("./$.iobject"),
  1826.                     T = e("./$.fails"),
  1827.                     S = Object.prototype,
  1828.                     E = [],
  1829.                     A = E.slice,
  1830.                     C = E.join,
  1831.                     P = r.setDesc,
  1832.                     L = r.getDesc,
  1833.                     R = r.setDescs,
  1834.                     O = e("./$.array-includes")(!1),
  1835.                     k = {};
  1836.                 o ||
  1837.                     ((n = !T(function () {
  1838.                             return (
  1839.                                 7 !=
  1840.                                 P(l("div"), "a", {
  1841.                                     get: function () {
  1842.                                         return 7;
  1843.                                     },
  1844.                                 }).a
  1845.                             );
  1846.                         })),
  1847.                         (r.setDesc = function (e, t, i) {
  1848.                             if (n)
  1849.                                 try {
  1850.                                     return P(e, t, i);
  1851.                                 } catch (r) {}
  1852.                             if ("get" in i || "set" in i) throw TypeError("Accessors not supported!");
  1853.                             return "value" in i && (v(e)[t] = i.value), e;
  1854.                         }),
  1855.                         (r.getDesc = function (e, t) {
  1856.                             if (n)
  1857.                                 try {
  1858.                                     return L(e, t);
  1859.                                 } catch (i) {}
  1860.                             return c(e, t) ? a(!S.propertyIsEnumerable.call(e, t), e[t]) : void 0;
  1861.                         }),
  1862.                         (r.setDescs = R = function (e, t) {
  1863.                             v(e);
  1864.                             for (var i, n = r.getKeys(t), o = n.length, a = 0; o > a;) r.setDesc(e, (i = n[a++]), t[i]);
  1865.                             return e;
  1866.                         })),
  1867.                     h(h.S + h.F * !o, "Object", {
  1868.                         getOwnPropertyDescriptor: r.getDesc,
  1869.                         defineProperty: r.setDesc,
  1870.                         defineProperties: R
  1871.                     });
  1872.                 var D = "constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","),
  1873.                     I = D.concat("length", "prototype"),
  1874.                     N = D.length,
  1875.                     U = function () {
  1876.                         var e,
  1877.                             t = l("iframe"),
  1878.                             i = N,
  1879.                             n = ">";
  1880.                         for (t.style.display = "none", s.appendChild(t), t.src = "javascript:", e = t.contentWindow.document, e.open(), e.write("<script>document.F=Object</script" + n), e.close(), U = e.F; i--;) delete U.prototype[D[i]];
  1881.                         return U();
  1882.                     },
  1883.                     j = function (e, t) {
  1884.                         return function (i) {
  1885.                             var n,
  1886.                                 r = _(i),
  1887.                                 o = 0,
  1888.                                 a = [];
  1889.                             for (n in r) n != p && c(r, n) && a.push(n);
  1890.                             for (; t > o;) c(r, (n = e[o++])) && (~O(a, n) || a.push(n));
  1891.                             return a;
  1892.                         };
  1893.                     },
  1894.                     B = function () {};
  1895.                 h(h.S, "Object", {
  1896.                     getPrototypeOf: (r.getProto =
  1897.                         r.getProto ||
  1898.                         function (e) {
  1899.                             return (e = y(e)), c(e, p) ? e[p] : "function" == typeof e.constructor && e instanceof e.constructor ? e.constructor.prototype : e instanceof Object ? S : null;
  1900.                         }),
  1901.                     getOwnPropertyNames: (r.getNames = r.getNames || j(I, I.length, !0)),
  1902.                     create: (r.create =
  1903.                         r.create ||
  1904.                         function (e, t) {
  1905.                             var i;
  1906.                             return null !== e ? ((B.prototype = v(e)), (i = new B()), (B.prototype = null), (i[p] = e)) : (i = U()), void 0 === t ? i : R(i, t);
  1907.                         }),
  1908.                     keys: (r.getKeys = r.getKeys || j(D, N, !1)),
  1909.                 });
  1910.                 var F = function (e, t, i) {
  1911.                     if (!(t in k)) {
  1912.                         for (var n = [], r = 0; t > r; r++) n[r] = "a[" + r + "]";
  1913.                         k[t] = Function("F,a", "return new F(" + n.join(",") + ")");
  1914.                     }
  1915.                     return k[t](e, i);
  1916.                 };
  1917.                 h(h.P, "Function", {
  1918.                     bind: function (e) {
  1919.                         var t = g(this),
  1920.                             i = A.call(arguments, 1),
  1921.                             n = function () {
  1922.                                 var r = i.concat(A.call(arguments));
  1923.                                 return this instanceof n ? F(t, r.length, r) : d(t, r, e);
  1924.                             };
  1925.                         return m(t.prototype) && (n.prototype = t.prototype), n;
  1926.                     },
  1927.                 });
  1928.                 var V = T(function () {
  1929.                     s && A.call(s);
  1930.                 });
  1931.                 h(h.P + h.F * V, "Array", {
  1932.                         slice: function (e, t) {
  1933.                             var i = w(this.length),
  1934.                                 n = u(this);
  1935.                             if (((t = void 0 === t ? i : t), "Array" == n)) return A.call(this, e, t);
  1936.                             for (var r = x(e, i), o = x(t, i), a = w(o - r), s = Array(a), l = 0; a > l; l++) s[l] = "String" == n ? this.charAt(r + l) : this[r + l];
  1937.                             return s;
  1938.                         },
  1939.                     }),
  1940.                     h(h.P + h.F * (M != Object), "Array", {
  1941.                         join: function () {
  1942.                             return C.apply(M(this), arguments);
  1943.                         },
  1944.                     }),
  1945.                     h(h.S, "Array", {
  1946.                         isArray: e("./$.is-array")
  1947.                     });
  1948.                 var G = function (e) {
  1949.                         return function (t, i) {
  1950.                             g(t);
  1951.                             var n = M(this),
  1952.                                 r = w(n.length),
  1953.                                 o = e ? r - 1 : 0,
  1954.                                 a = e ? -1 : 1;
  1955.                             if (arguments.length < 2)
  1956.                                 for (;;) {
  1957.                                     if (o in n) {
  1958.                                         (i = n[o]), (o += a);
  1959.                                         break;
  1960.                                     }
  1961.                                     if (((o += a), e ? 0 > o : o >= r)) throw TypeError("Reduce of empty array with no initial value");
  1962.                                 }
  1963.                             for (; e ? o >= 0 : r > o; o += a) o in n && (i = t(i, n[o], o, this));
  1964.                             return i;
  1965.                         };
  1966.                     },
  1967.                     z = function (e) {
  1968.                         return function (t) {
  1969.                             return e(this, t, arguments[1]);
  1970.                         };
  1971.                     };
  1972.                 h(h.P, "Array", {
  1973.                         forEach: (r.each = r.each || z(f(0))),
  1974.                         map: z(f(1)),
  1975.                         filter: z(f(2)),
  1976.                         some: z(f(3)),
  1977.                         every: z(f(4)),
  1978.                         reduce: G(!1),
  1979.                         reduceRight: G(!0),
  1980.                         indexOf: z(O),
  1981.                         lastIndexOf: function (e, t) {
  1982.                             var i = _(this),
  1983.                                 n = w(i.length),
  1984.                                 r = n - 1;
  1985.                             for (arguments.length > 1 && (r = Math.min(r, b(t))), 0 > r && (r = w(n + r)); r >= 0; r--)
  1986.                                 if (r in i && i[r] === e) return r;
  1987.                             return -1;
  1988.                         },
  1989.                     }),
  1990.                     h(h.S, "Date", {
  1991.                         now: function () {
  1992.                             return +new Date();
  1993.                         },
  1994.                     });
  1995.                 var $ = function (e) {
  1996.                         return e > 9 ? e : "0" + e;
  1997.                     },
  1998.                     H = new Date(-5e13 - 1),
  1999.                     W = !(
  2000.                         H.toISOString &&
  2001.                         "0385-07-25T07:06:39.999Z" == H.toISOString() &&
  2002.                         T(function () {
  2003.                             new Date(NaN).toISOString();
  2004.                         })
  2005.                     );
  2006.                 h(h.P + h.F * W, "Date", {
  2007.                     toISOString: function () {
  2008.                         if (!isFinite(this)) throw RangeError("Invalid time value");
  2009.                         var e = this,
  2010.                             t = e.getUTCFullYear(),
  2011.                             i = e.getUTCMilliseconds(),
  2012.                             n = 0 > t ? "-" : t > 9999 ? "+" : "";
  2013.                         return (
  2014.                             n +
  2015.                             ("00000" + Math.abs(t)).slice(n ? -6 : -4) +
  2016.                             "-" +
  2017.                             $(e.getUTCMonth() + 1) +
  2018.                             "-" +
  2019.                             $(e.getUTCDate()) +
  2020.                             "T" +
  2021.                             $(e.getUTCHours()) +
  2022.                             ":" +
  2023.                             $(e.getUTCMinutes()) +
  2024.                             ":" +
  2025.                             $(e.getUTCSeconds()) +
  2026.                             "." +
  2027.                             (i > 99 ? i : "0" + $(i)) +
  2028.                             "Z"
  2029.                         );
  2030.                     },
  2031.                 });
  2032.             },
  2033.             {
  2034.                 "./$": 45,
  2035.                 "./$.a-function": 2,
  2036.                 "./$.an-object": 3,
  2037.                 "./$.array-includes": 6,
  2038.                 "./$.array-methods": 7,
  2039.                 "./$.cof": 10,
  2040.                 "./$.def": 17,
  2041.                 "./$.dom-create": 19,
  2042.                 "./$.fails": 23,
  2043.                 "./$.has": 29,
  2044.                 "./$.html": 31,
  2045.                 "./$.invoke": 32,
  2046.                 "./$.iobject": 33,
  2047.                 "./$.is-array": 35,
  2048.                 "./$.is-object": 37,
  2049.                 "./$.property-desc": 56,
  2050.                 "./$.support-desc": 70,
  2051.                 "./$.to-index": 73,
  2052.                 "./$.to-integer": 74,
  2053.                 "./$.to-iobject": 75,
  2054.                 "./$.to-length": 76,
  2055.                 "./$.to-object": 77,
  2056.                 "./$.uid": 78,
  2057.             },
  2058.         ],
  2059.         83: [
  2060.             function (e, t, i) {
  2061.                 "use strict";
  2062.                 var n = e("./$.def");
  2063.                 n(n.P, "Array", {
  2064.                     copyWithin: e("./$.array-copy-within")
  2065.                 }), e("./$.unscope")("copyWithin");
  2066.             },
  2067.             {
  2068.                 "./$.array-copy-within": 4,
  2069.                 "./$.def": 17,
  2070.                 "./$.unscope": 79
  2071.             },
  2072.         ],
  2073.         84: [
  2074.             function (e, t, i) {
  2075.                 var n = e("./$.def");
  2076.                 n(n.P, "Array", {
  2077.                     fill: e("./$.array-fill")
  2078.                 }), e("./$.unscope")("fill");
  2079.             },
  2080.             {
  2081.                 "./$.array-fill": 5,
  2082.                 "./$.def": 17,
  2083.                 "./$.unscope": 79
  2084.             },
  2085.         ],
  2086.         85: [
  2087.             function (e, t, i) {
  2088.                 "use strict";
  2089.                 var n = "findIndex",
  2090.                     r = e("./$.def"),
  2091.                     o = !0,
  2092.                     a = e("./$.array-methods")(6);
  2093.                 n in [] &&
  2094.                     Array(1)[n](function () {
  2095.                         o = !1;
  2096.                     }),
  2097.                     r(r.P + r.F * o, "Array", {
  2098.                         findIndex: function (e) {
  2099.                             return a(this, e, arguments[1]);
  2100.                         },
  2101.                     }),
  2102.                     e("./$.unscope")(n);
  2103.             },
  2104.             {
  2105.                 "./$.array-methods": 7,
  2106.                 "./$.def": 17,
  2107.                 "./$.unscope": 79
  2108.             },
  2109.         ],
  2110.         86: [
  2111.             function (e, t, i) {
  2112.                 "use strict";
  2113.                 var n = "find",
  2114.                     r = e("./$.def"),
  2115.                     o = !0,
  2116.                     a = e("./$.array-methods")(5);
  2117.                 n in [] &&
  2118.                     Array(1)[n](function () {
  2119.                         o = !1;
  2120.                     }),
  2121.                     r(r.P + r.F * o, "Array", {
  2122.                         find: function (e) {
  2123.                             return a(this, e, arguments[1]);
  2124.                         },
  2125.                     }),
  2126.                     e("./$.unscope")(n);
  2127.             },
  2128.             {
  2129.                 "./$.array-methods": 7,
  2130.                 "./$.def": 17,
  2131.                 "./$.unscope": 79
  2132.             },
  2133.         ],
  2134.         87: [
  2135.             function (e, t, i) {
  2136.                 "use strict";
  2137.                 var n = e("./$.ctx"),
  2138.                     r = e("./$.def"),
  2139.                     o = e("./$.to-object"),
  2140.                     a = e("./$.iter-call"),
  2141.                     s = e("./$.is-array-iter"),
  2142.                     l = e("./$.to-length"),
  2143.                     c = e("./core.get-iterator-method");
  2144.                 r(
  2145.                     r.S +
  2146.                     r.F *
  2147.                     !e("./$.iter-detect")(function (e) {
  2148.                         Array.from(e);
  2149.                     }),
  2150.                     "Array", {
  2151.                         from: function (e) {
  2152.                             var t,
  2153.                                 i,
  2154.                                 r,
  2155.                                 u,
  2156.                                 h = o(e),
  2157.                                 d = "function" == typeof this ? this : Array,
  2158.                                 f = arguments[1],
  2159.                                 p = void 0 !== f,
  2160.                                 m = 0,
  2161.                                 v = c(h);
  2162.                             if ((p && (f = n(f, arguments[2], 2)), void 0 == v || (d == Array && s(v))))
  2163.                                 for (t = l(h.length), i = new d(t); t > m; m++) i[m] = p ? f(h[m], m) : h[m];
  2164.                             else
  2165.                                 for (u = v.call(h), i = new d(); !(r = u.next()).done; m++) i[m] = p ? a(u, f, [r.value, m], !0) : r.value;
  2166.                             return (i.length = m), i;
  2167.                         },
  2168.                     }
  2169.                 );
  2170.             },
  2171.             {
  2172.                 "./$.ctx": 16,
  2173.                 "./$.def": 17,
  2174.                 "./$.is-array-iter": 34,
  2175.                 "./$.iter-call": 39,
  2176.                 "./$.iter-detect": 42,
  2177.                 "./$.to-length": 76,
  2178.                 "./$.to-object": 77,
  2179.                 "./core.get-iterator-method": 81
  2180.             },
  2181.         ],
  2182.         88: [
  2183.             function (e, t, i) {
  2184.                 "use strict";
  2185.                 var n = e("./$.unscope"),
  2186.                     r = e("./$.iter-step"),
  2187.                     o = e("./$.iterators"),
  2188.                     a = e("./$.to-iobject");
  2189.                 e("./$.iter-define")(
  2190.                         Array,
  2191.                         "Array",
  2192.                         function (e, t) {
  2193.                             (this._t = a(e)), (this._i = 0), (this._k = t);
  2194.                         },
  2195.                         function () {
  2196.                             var e = this._t,
  2197.                                 t = this._k,
  2198.                                 i = this._i++;
  2199.                             return !e || i >= e.length ? ((this._t = void 0), r(1)) : "keys" == t ? r(0, i) : "values" == t ? r(0, e[i]) : r(0, [i, e[i]]);
  2200.                         },
  2201.                         "values"
  2202.                     ),
  2203.                     (o.Arguments = o.Array),
  2204.                     n("keys"),
  2205.                     n("values"),
  2206.                     n("entries");
  2207.             },
  2208.             {
  2209.                 "./$.iter-define": 41,
  2210.                 "./$.iter-step": 43,
  2211.                 "./$.iterators": 44,
  2212.                 "./$.to-iobject": 75,
  2213.                 "./$.unscope": 79
  2214.             },
  2215.         ],
  2216.         89: [
  2217.             function (e, t, i) {
  2218.                 "use strict";
  2219.                 var n = e("./$.def");
  2220.                 n(
  2221.                     n.S +
  2222.                     n.F *
  2223.                     e("./$.fails")(function () {
  2224.                         function e() {}
  2225.                         return !(Array.of.call(e) instanceof e);
  2226.                     }),
  2227.                     "Array", {
  2228.                         of: function () {
  2229.                             for (var e = 0, t = arguments.length, i = new("function" == typeof this ? this : Array)(t); t > e;) i[e] = arguments[e++];
  2230.                             return (i.length = t), i;
  2231.                         },
  2232.                     }
  2233.                 );
  2234.             },
  2235.             {
  2236.                 "./$.def": 17,
  2237.                 "./$.fails": 23
  2238.             },
  2239.         ],
  2240.         90: [
  2241.             function (e, t, i) {
  2242.                 e("./$.species")(Array);
  2243.             },
  2244.             {
  2245.                 "./$.species": 63
  2246.             },
  2247.         ],
  2248.         91: [
  2249.             function (e, t, i) {
  2250.                 "use strict";
  2251.                 var n = e("./$"),
  2252.                     r = e("./$.is-object"),
  2253.                     o = e("./$.wks")("hasInstance"),
  2254.                     a = Function.prototype;
  2255.                 o in a ||
  2256.                     n.setDesc(a, o, {
  2257.                         value: function (e) {
  2258.                             if ("function" != typeof this || !r(e)) return !1;
  2259.                             if (!r(this.prototype)) return e instanceof this;
  2260.                             for (;
  2261.                                 (e = n.getProto(e));)
  2262.                                 if (this.prototype === e) return !0;
  2263.                             return !1;
  2264.                         },
  2265.                     });
  2266.             },
  2267.             {
  2268.                 "./$": 45,
  2269.                 "./$.is-object": 37,
  2270.                 "./$.wks": 80
  2271.             },
  2272.         ],
  2273.         92: [
  2274.             function (e, t, i) {
  2275.                 var n = e("./$").setDesc,
  2276.                     r = e("./$.property-desc"),
  2277.                     o = e("./$.has"),
  2278.                     a = Function.prototype,
  2279.                     s = /^s*function ([^ (]*)/,
  2280.                     l = "name";
  2281.                 l in a ||
  2282.                     (e("./$.support-desc") &&
  2283.                         n(a, l, {
  2284.                             configurable: !0,
  2285.                             get: function () {
  2286.                                 var e = ("" + this).match(s),
  2287.                                     t = e ? e[1] : "";
  2288.                                 return o(this, l) || n(this, l, r(5, t)), t;
  2289.                             },
  2290.                         }));
  2291.             },
  2292.             {
  2293.                 "./$": 45,
  2294.                 "./$.has": 29,
  2295.                 "./$.property-desc": 56,
  2296.                 "./$.support-desc": 70
  2297.             },
  2298.         ],
  2299.         93: [
  2300.             function (e, t, i) {
  2301.                 "use strict";
  2302.                 var n = e("./$.collection-strong");
  2303.                 e("./$.collection")(
  2304.                     "Map",
  2305.                     function (e) {
  2306.                         return function () {
  2307.                             return e(this, arguments[0]);
  2308.                         };
  2309.                     }, {
  2310.                         get: function (e) {
  2311.                             var t = n.getEntry(this, e);
  2312.                             return t && t.v;
  2313.                         },
  2314.                         set: function (e, t) {
  2315.                             return n.def(this, 0 === e ? 0 : e, t);
  2316.                         },
  2317.                     },
  2318.                     n,
  2319.                     !0
  2320.                 );
  2321.             },
  2322.             {
  2323.                 "./$.collection": 14,
  2324.                 "./$.collection-strong": 11
  2325.             },
  2326.         ],
  2327.         94: [
  2328.             function (e, t, i) {
  2329.                 var n = e("./$.def"),
  2330.                     r = e("./$.log1p"),
  2331.                     o = Math.sqrt,
  2332.                     a = Math.acosh;
  2333.                 n(n.S + n.F * !(a && 710 == Math.floor(a(Number.MAX_VALUE))), "Math", {
  2334.                     acosh: function (e) {
  2335.                         return (e = +e) < 1 ? NaN : e > 94906265.62425156 ? Math.log(e) + Math.LN2 : r(e - 1 + o(e - 1) * o(e + 1));
  2336.                     },
  2337.                 });
  2338.             },
  2339.             {
  2340.                 "./$.def": 17,
  2341.                 "./$.log1p": 48
  2342.             },
  2343.         ],
  2344.         95: [
  2345.             function (e, t, i) {
  2346.                 function n(e) {
  2347.                     return isFinite((e = +e)) && 0 != e ? (0 > e ? -n(-e) : Math.log(e + Math.sqrt(e * e + 1))) : e;
  2348.                 }
  2349.                 var r = e("./$.def");
  2350.                 r(r.S, "Math", {
  2351.                     asinh: n
  2352.                 });
  2353.             },
  2354.             {
  2355.                 "./$.def": 17
  2356.             },
  2357.         ],
  2358.         96: [
  2359.             function (e, t, i) {
  2360.                 var n = e("./$.def");
  2361.                 n(n.S, "Math", {
  2362.                     atanh: function (e) {
  2363.                         return 0 == (e = +e) ? e : Math.log((1 + e) / (1 - e)) / 2;
  2364.                     },
  2365.                 });
  2366.             },
  2367.             {
  2368.                 "./$.def": 17
  2369.             },
  2370.         ],
  2371.         97: [
  2372.             function (e, t, i) {
  2373.                 var n = e("./$.def"),
  2374.                     r = e("./$.sign");
  2375.                 n(n.S, "Math", {
  2376.                     cbrt: function (e) {
  2377.                         return r((e = +e)) * Math.pow(Math.abs(e), 1 / 3);
  2378.                     },
  2379.                 });
  2380.             },
  2381.             {
  2382.                 "./$.def": 17,
  2383.                 "./$.sign": 62
  2384.             },
  2385.         ],
  2386.         98: [
  2387.             function (e, t, i) {
  2388.                 var n = e("./$.def");
  2389.                 n(n.S, "Math", {
  2390.                     clz32: function (e) {
  2391.                         return (e >>>= 0) ? 31 - Math.floor(Math.log(e + 0.5) * Math.LOG2E) : 32;
  2392.                     },
  2393.                 });
  2394.             },
  2395.             {
  2396.                 "./$.def": 17
  2397.             },
  2398.         ],
  2399.         99: [
  2400.             function (e, t, i) {
  2401.                 var n = e("./$.def"),
  2402.                     r = Math.exp;
  2403.                 n(n.S, "Math", {
  2404.                     cosh: function (e) {
  2405.                         return (r((e = +e)) + r(-e)) / 2;
  2406.                     },
  2407.                 });
  2408.             },
  2409.             {
  2410.                 "./$.def": 17
  2411.             },
  2412.         ],
  2413.         100: [
  2414.             function (e, t, i) {
  2415.                 var n = e("./$.def");
  2416.                 n(n.S, "Math", {
  2417.                     expm1: e("./$.expm1")
  2418.                 });
  2419.             },
  2420.             {
  2421.                 "./$.def": 17,
  2422.                 "./$.expm1": 21
  2423.             },
  2424.         ],
  2425.         101: [
  2426.             function (e, t, i) {
  2427.                 var n = e("./$.def"),
  2428.                     r = e("./$.sign"),
  2429.                     o = Math.pow,
  2430.                     a = o(2, -52),
  2431.                     s = o(2, -23),
  2432.                     l = o(2, 127) * (2 - s),
  2433.                     c = o(2, -126),
  2434.                     u = function (e) {
  2435.                         return e + 1 / a - 1 / a;
  2436.                     };
  2437.                 n(n.S, "Math", {
  2438.                     fround: function (e) {
  2439.                         var t,
  2440.                             i,
  2441.                             n = Math.abs(e),
  2442.                             o = r(e);
  2443.                         return c > n ? o * u(n / c / s) * c * s : ((t = (1 + s / a) * n), (i = t - (t - n)), i > l || i != i ? o * (1 / 0) : o * i);
  2444.                     },
  2445.                 });
  2446.             },
  2447.             {
  2448.                 "./$.def": 17,
  2449.                 "./$.sign": 62
  2450.             },
  2451.         ],
  2452.         102: [
  2453.             function (e, t, i) {
  2454.                 var n = e("./$.def"),
  2455.                     r = Math.abs;
  2456.                 n(n.S, "Math", {
  2457.                     hypot: function (e, t) {
  2458.                         for (var i, n, o = 0, a = 0, s = arguments.length, l = 0; s > a;)(i = r(arguments[a++])), i > l ? ((n = l / i), (o = o * n * n + 1), (l = i)) : i > 0 ? ((n = i / l), (o += n * n)) : (o += i);
  2459.                         return l === 1 / 0 ? 1 / 0 : l * Math.sqrt(o);
  2460.                     },
  2461.                 });
  2462.             },
  2463.             {
  2464.                 "./$.def": 17
  2465.             },
  2466.         ],
  2467.         103: [
  2468.             function (e, t, i) {
  2469.                 var n = e("./$.def");
  2470.                 n(
  2471.                     n.S +
  2472.                     n.F *
  2473.                     e("./$.fails")(function () {
  2474.                         return -5 != Math.imul(4294967295, 5);
  2475.                     }),
  2476.                     "Math", {
  2477.                         imul: function (e, t) {
  2478.                             var i = 65535,
  2479.                                 n = +e,
  2480.                                 r = +t,
  2481.                                 o = i & n,
  2482.                                 a = i & r;
  2483.                             return 0 | (o * a + ((((i & (n >>> 16)) * a + o * (i & (r >>> 16))) << 16) >>> 0));
  2484.                         },
  2485.                     }
  2486.                 );
  2487.             },
  2488.             {
  2489.                 "./$.def": 17,
  2490.                 "./$.fails": 23
  2491.             },
  2492.         ],
  2493.         104: [
  2494.             function (e, t, i) {
  2495.                 var n = e("./$.def");
  2496.                 n(n.S, "Math", {
  2497.                     log10: function (e) {
  2498.                         return Math.log(e) / Math.LN10;
  2499.                     },
  2500.                 });
  2501.             },
  2502.             {
  2503.                 "./$.def": 17
  2504.             },
  2505.         ],
  2506.         105: [
  2507.             function (e, t, i) {
  2508.                 var n = e("./$.def");
  2509.                 n(n.S, "Math", {
  2510.                     log1p: e("./$.log1p")
  2511.                 });
  2512.             },
  2513.             {
  2514.                 "./$.def": 17,
  2515.                 "./$.log1p": 48
  2516.             },
  2517.         ],
  2518.         106: [
  2519.             function (e, t, i) {
  2520.                 var n = e("./$.def");
  2521.                 n(n.S, "Math", {
  2522.                     log2: function (e) {
  2523.                         return Math.log(e) / Math.LN2;
  2524.                     },
  2525.                 });
  2526.             },
  2527.             {
  2528.                 "./$.def": 17
  2529.             },
  2530.         ],
  2531.         107: [
  2532.             function (e, t, i) {
  2533.                 var n = e("./$.def");
  2534.                 n(n.S, "Math", {
  2535.                     sign: e("./$.sign")
  2536.                 });
  2537.             },
  2538.             {
  2539.                 "./$.def": 17,
  2540.                 "./$.sign": 62
  2541.             },
  2542.         ],
  2543.         108: [
  2544.             function (e, t, i) {
  2545.                 var n = e("./$.def"),
  2546.                     r = e("./$.expm1"),
  2547.                     o = Math.exp;
  2548.                 n(
  2549.                     n.S +
  2550.                     n.F *
  2551.                     e("./$.fails")(function () {
  2552.                         return -2e-17 != !Math.sinh(-2e-17);
  2553.                     }),
  2554.                     "Math", {
  2555.                         sinh: function (e) {
  2556.                             return Math.abs((e = +e)) < 1 ? (r(e) - r(-e)) / 2 : (o(e - 1) - o(-e - 1)) * (Math.E / 2);
  2557.                         },
  2558.                     }
  2559.                 );
  2560.             },
  2561.             {
  2562.                 "./$.def": 17,
  2563.                 "./$.expm1": 21,
  2564.                 "./$.fails": 23
  2565.             },
  2566.         ],
  2567.         109: [
  2568.             function (e, t, i) {
  2569.                 var n = e("./$.def"),
  2570.                     r = e("./$.expm1"),
  2571.                     o = Math.exp;
  2572.                 n(n.S, "Math", {
  2573.                     tanh: function (e) {
  2574.                         var t = r((e = +e)),
  2575.                             i = r(-e);
  2576.                         return t == 1 / 0 ? 1 : i == 1 / 0 ? -1 : (t - i) / (o(e) + o(-e));
  2577.                     },
  2578.                 });
  2579.             },
  2580.             {
  2581.                 "./$.def": 17,
  2582.                 "./$.expm1": 21
  2583.             },
  2584.         ],
  2585.         110: [
  2586.             function (e, t, i) {
  2587.                 var n = e("./$.def");
  2588.                 n(n.S, "Math", {
  2589.                     trunc: function (e) {
  2590.                         return (e > 0 ? Math.floor : Math.ceil)(e);
  2591.                     },
  2592.                 });
  2593.             },
  2594.             {
  2595.                 "./$.def": 17
  2596.             },
  2597.         ],
  2598.         111: [
  2599.             function (e, t, i) {
  2600.                 "use strict";
  2601.                 var n = e("./$"),
  2602.                     r = e("./$.global"),
  2603.                     o = e("./$.has"),
  2604.                     a = e("./$.cof"),
  2605.                     s = e("./$.is-object"),
  2606.                     l = e("./$.fails"),
  2607.                     c = "Number",
  2608.                     u = r[c],
  2609.                     h = u,
  2610.                     d = u.prototype,
  2611.                     f = a(n.create(d)) == c,
  2612.                     p = function (e) {
  2613.                         var t, i;
  2614.                         if ("function" == typeof (t = e.valueOf) && !s((i = t.call(e)))) return i;
  2615.                         if ("function" == typeof (t = e.toString) && !s((i = t.call(e)))) return i;
  2616.                         throw TypeError("Can't convert object to number");
  2617.                     },
  2618.                     m = function (e) {
  2619.                         if ((s(e) && (e = p(e)), "string" == typeof e && e.length > 2 && 48 == e.charCodeAt(0))) {
  2620.                             var t = !1;
  2621.                             switch (e.charCodeAt(1)) {
  2622.                             case 66:
  2623.                             case 98:
  2624.                                 t = !0;
  2625.                             case 79:
  2626.                             case 111:
  2627.                                 return parseInt(e.slice(2), t ? 2 : 8);
  2628.                             }
  2629.                         }
  2630.                         return +e;
  2631.                     };
  2632.                 (u("0o1") && u("0b1")) ||
  2633.                 ((u = function (e) {
  2634.                         var t = this;
  2635.                         return t instanceof u &&
  2636.                             (f ?
  2637.                                 l(function () {
  2638.                                     d.valueOf.call(t);
  2639.                                 }) :
  2640.                                 a(t) != c) ?
  2641.                             new h(m(e)) :
  2642.                             m(e);
  2643.                     }),
  2644.                     n.each.call(
  2645.                         e("./$.support-desc") ?
  2646.                         n.getNames(h) :
  2647.                         "MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),
  2648.                         function (e) {
  2649.                             o(h, e) && !o(u, e) && n.setDesc(u, e, n.getDesc(h, e));
  2650.                         }
  2651.                     ),
  2652.                     (u.prototype = d),
  2653.                     (d.constructor = u),
  2654.                     e("./$.redef")(r, c, u));
  2655.             },
  2656.             {
  2657.                 "./$": 45,
  2658.                 "./$.cof": 10,
  2659.                 "./$.fails": 23,
  2660.                 "./$.global": 28,
  2661.                 "./$.has": 29,
  2662.                 "./$.is-object": 37,
  2663.                 "./$.redef": 57,
  2664.                 "./$.support-desc": 70
  2665.             },
  2666.         ],
  2667.         112: [
  2668.             function (e, t, i) {
  2669.                 var n = e("./$.def");
  2670.                 n(n.S, "Number", {
  2671.                     EPSILON: Math.pow(2, -52)
  2672.                 });
  2673.             },
  2674.             {
  2675.                 "./$.def": 17
  2676.             },
  2677.         ],
  2678.         113: [
  2679.             function (e, t, i) {
  2680.                 var n = e("./$.def"),
  2681.                     r = e("./$.global").isFinite;
  2682.                 n(n.S, "Number", {
  2683.                     isFinite: function (e) {
  2684.                         return "number" == typeof e && r(e);
  2685.                     },
  2686.                 });
  2687.             },
  2688.             {
  2689.                 "./$.def": 17,
  2690.                 "./$.global": 28
  2691.             },
  2692.         ],
  2693.         114: [
  2694.             function (e, t, i) {
  2695.                 var n = e("./$.def");
  2696.                 n(n.S, "Number", {
  2697.                     isInteger: e("./$.is-integer")
  2698.                 });
  2699.             },
  2700.             {
  2701.                 "./$.def": 17,
  2702.                 "./$.is-integer": 36
  2703.             },
  2704.         ],
  2705.         115: [
  2706.             function (e, t, i) {
  2707.                 var n = e("./$.def");
  2708.                 n(n.S, "Number", {
  2709.                     isNaN: function (e) {
  2710.                         return e != e;
  2711.                     },
  2712.                 });
  2713.             },
  2714.             {
  2715.                 "./$.def": 17
  2716.             },
  2717.         ],
  2718.         116: [
  2719.             function (e, t, i) {
  2720.                 var n = e("./$.def"),
  2721.                     r = e("./$.is-integer"),
  2722.                     o = Math.abs;
  2723.                 n(n.S, "Number", {
  2724.                     isSafeInteger: function (e) {
  2725.                         return r(e) && o(e) <= 9007199254740991;
  2726.                     },
  2727.                 });
  2728.             },
  2729.             {
  2730.                 "./$.def": 17,
  2731.                 "./$.is-integer": 36
  2732.             },
  2733.         ],
  2734.         117: [
  2735.             function (e, t, i) {
  2736.                 var n = e("./$.def");
  2737.                 n(n.S, "Number", {
  2738.                     MAX_SAFE_INTEGER: 9007199254740991
  2739.                 });
  2740.             },
  2741.             {
  2742.                 "./$.def": 17
  2743.             },
  2744.         ],
  2745.         118: [
  2746.             function (e, t, i) {
  2747.                 var n = e("./$.def");
  2748.                 n(n.S, "Number", {
  2749.                     MIN_SAFE_INTEGER: -9007199254740991
  2750.                 });
  2751.             },
  2752.             {
  2753.                 "./$.def": 17
  2754.             },
  2755.         ],
  2756.         119: [
  2757.             function (e, t, i) {
  2758.                 var n = e("./$.def");
  2759.                 n(n.S, "Number", {
  2760.                     parseFloat: parseFloat
  2761.                 });
  2762.             },
  2763.             {
  2764.                 "./$.def": 17
  2765.             },
  2766.         ],
  2767.         120: [
  2768.             function (e, t, i) {
  2769.                 var n = e("./$.def");
  2770.                 n(n.S, "Number", {
  2771.                     parseInt: parseInt
  2772.                 });
  2773.             },
  2774.             {
  2775.                 "./$.def": 17
  2776.             },
  2777.         ],
  2778.         121: [
  2779.             function (e, t, i) {
  2780.                 var n = e("./$.def");
  2781.                 n(n.S + n.F, "Object", {
  2782.                     assign: e("./$.assign")
  2783.                 });
  2784.             },
  2785.             {
  2786.                 "./$.assign": 8,
  2787.                 "./$.def": 17
  2788.             },
  2789.         ],
  2790.         122: [
  2791.             function (e, t, i) {
  2792.                 var n = e("./$.is-object");
  2793.                 e("./$.object-sap")("freeze", function (e) {
  2794.                     return function (t) {
  2795.                         return e && n(t) ? e(t) : t;
  2796.                     };
  2797.                 });
  2798.             },
  2799.             {
  2800.                 "./$.is-object": 37,
  2801.                 "./$.object-sap": 51
  2802.             },
  2803.         ],
  2804.         123: [
  2805.             function (e, t, i) {
  2806.                 var n = e("./$.to-iobject");
  2807.                 e("./$.object-sap")("getOwnPropertyDescriptor", function (e) {
  2808.                     return function (t, i) {
  2809.                         return e(n(t), i);
  2810.                     };
  2811.                 });
  2812.             },
  2813.             {
  2814.                 "./$.object-sap": 51,
  2815.                 "./$.to-iobject": 75
  2816.             },
  2817.         ],
  2818.         124: [
  2819.             function (e, t, i) {
  2820.                 e("./$.object-sap")("getOwnPropertyNames", function () {
  2821.                     return e("./$.get-names").get;
  2822.                 });
  2823.             },
  2824.             {
  2825.                 "./$.get-names": 27,
  2826.                 "./$.object-sap": 51
  2827.             },
  2828.         ],
  2829.         125: [
  2830.             function (e, t, i) {
  2831.                 var n = e("./$.to-object");
  2832.                 e("./$.object-sap")("getPrototypeOf", function (e) {
  2833.                     return function (t) {
  2834.                         return e(n(t));
  2835.                     };
  2836.                 });
  2837.             },
  2838.             {
  2839.                 "./$.object-sap": 51,
  2840.                 "./$.to-object": 77
  2841.             },
  2842.         ],
  2843.         126: [
  2844.             function (e, t, i) {
  2845.                 var n = e("./$.is-object");
  2846.                 e("./$.object-sap")("isExtensible", function (e) {
  2847.                     return function (t) {
  2848.                         return n(t) ? (e ? e(t) : !0) : !1;
  2849.                     };
  2850.                 });
  2851.             },
  2852.             {
  2853.                 "./$.is-object": 37,
  2854.                 "./$.object-sap": 51
  2855.             },
  2856.         ],
  2857.         127: [
  2858.             function (e, t, i) {
  2859.                 var n = e("./$.is-object");
  2860.                 e("./$.object-sap")("isFrozen", function (e) {
  2861.                     return function (t) {
  2862.                         return n(t) ? (e ? e(t) : !1) : !0;
  2863.                     };
  2864.                 });
  2865.             },
  2866.             {
  2867.                 "./$.is-object": 37,
  2868.                 "./$.object-sap": 51
  2869.             },
  2870.         ],
  2871.         128: [
  2872.             function (e, t, i) {
  2873.                 var n = e("./$.is-object");
  2874.                 e("./$.object-sap")("isSealed", function (e) {
  2875.                     return function (t) {
  2876.                         return n(t) ? (e ? e(t) : !1) : !0;
  2877.                     };
  2878.                 });
  2879.             },
  2880.             {
  2881.                 "./$.is-object": 37,
  2882.                 "./$.object-sap": 51
  2883.             },
  2884.         ],
  2885.         129: [
  2886.             function (e, t, i) {
  2887.                 var n = e("./$.def");
  2888.                 n(n.S, "Object", {
  2889.                     is: e("./$.same")
  2890.                 });
  2891.             },
  2892.             {
  2893.                 "./$.def": 17,
  2894.                 "./$.same": 59
  2895.             },
  2896.         ],
  2897.         130: [
  2898.             function (e, t, i) {
  2899.                 var n = e("./$.to-object");
  2900.                 e("./$.object-sap")("keys", function (e) {
  2901.                     return function (t) {
  2902.                         return e(n(t));
  2903.                     };
  2904.                 });
  2905.             },
  2906.             {
  2907.                 "./$.object-sap": 51,
  2908.                 "./$.to-object": 77
  2909.             },
  2910.         ],
  2911.         131: [
  2912.             function (e, t, i) {
  2913.                 var n = e("./$.is-object");
  2914.                 e("./$.object-sap")("preventExtensions", function (e) {
  2915.                     return function (t) {
  2916.                         return e && n(t) ? e(t) : t;
  2917.                     };
  2918.                 });
  2919.             },
  2920.             {
  2921.                 "./$.is-object": 37,
  2922.                 "./$.object-sap": 51
  2923.             },
  2924.         ],
  2925.         132: [
  2926.             function (e, t, i) {
  2927.                 var n = e("./$.is-object");
  2928.                 e("./$.object-sap")("seal", function (e) {
  2929.                     return function (t) {
  2930.                         return e && n(t) ? e(t) : t;
  2931.                     };
  2932.                 });
  2933.             },
  2934.             {
  2935.                 "./$.is-object": 37,
  2936.                 "./$.object-sap": 51
  2937.             },
  2938.         ],
  2939.         133: [
  2940.             function (e, t, i) {
  2941.                 var n = e("./$.def");
  2942.                 n(n.S, "Object", {
  2943.                     setPrototypeOf: e("./$.set-proto").set
  2944.                 });
  2945.             },
  2946.             {
  2947.                 "./$.def": 17,
  2948.                 "./$.set-proto": 60
  2949.             },
  2950.         ],
  2951.         134: [
  2952.             function (e, t, i) {
  2953.                 "use strict";
  2954.                 var n = e("./$.classof"),
  2955.                     r = {};
  2956.                 (r[e("./$.wks")("toStringTag")] = "z"),
  2957.                 r + "" != "[object z]" &&
  2958.                     e("./$.redef")(
  2959.                         Object.prototype,
  2960.                         "toString",
  2961.                         function () {
  2962.                             return "[object " + n(this) + "]";
  2963.                         },
  2964.                         !0
  2965.                     );
  2966.             },
  2967.             {
  2968.                 "./$.classof": 9,
  2969.                 "./$.redef": 57,
  2970.                 "./$.wks": 80
  2971.             },
  2972.         ],
  2973.         135: [
  2974.             function (e, t, i) {
  2975.                 "use strict";
  2976.                 var n,
  2977.                     r = e("./$"),
  2978.                     o = e("./$.library"),
  2979.                     a = e("./$.global"),
  2980.                     s = e("./$.ctx"),
  2981.                     l = e("./$.classof"),
  2982.                     c = e("./$.def"),
  2983.                     u = e("./$.is-object"),
  2984.                     h = e("./$.an-object"),
  2985.                     d = e("./$.a-function"),
  2986.                     f = e("./$.strict-new"),
  2987.                     p = e("./$.for-of"),
  2988.                     m = e("./$.set-proto").set,
  2989.                     v = e("./$.same"),
  2990.                     g = e("./$.species"),
  2991.                     y = e("./$.wks")("species"),
  2992.                     _ = e("./$.uid")("record"),
  2993.                     b = e("./$.microtask"),
  2994.                     x = "Promise",
  2995.                     w = a.process,
  2996.                     M = "process" == l(w),
  2997.                     T = a[x],
  2998.                     S = function (e) {
  2999.                         var t = new T(function () {});
  3000.                         return e && (t.constructor = Object), T.resolve(t) === t;
  3001.                     },
  3002.                     E = (function () {
  3003.                         function t(e) {
  3004.                             var i = new T(e);
  3005.                             return m(i, t.prototype), i;
  3006.                         }
  3007.                         var i = !1;
  3008.                         try {
  3009.                             if (((i = T && T.resolve && S()), m(t, T), (t.prototype = r.create(T.prototype, {
  3010.                                     constructor: {
  3011.                                         value: t
  3012.                                     }
  3013.                                 })), t.resolve(5).then(function () {}) instanceof t || (i = !1), i && e("./$.support-desc"))) {
  3014.                                 var n = !1;
  3015.                                 T.resolve(
  3016.                                         r.setDesc({}, "then", {
  3017.                                             get: function () {
  3018.                                                 n = !0;
  3019.                                             },
  3020.                                         })
  3021.                                     ),
  3022.                                     (i = n);
  3023.                             }
  3024.                         } catch (o) {
  3025.                             i = !1;
  3026.                         }
  3027.                         return i;
  3028.                     })(),
  3029.                     A = function (e) {
  3030.                         return u(e) && (E ? "Promise" == l(e) : _ in e);
  3031.                     },
  3032.                     C = function (e, t) {
  3033.                         return o && e === T && t === n ? !0 : v(e, t);
  3034.                     },
  3035.                     P = function (e) {
  3036.                         var t = h(e)[y];
  3037.                         return void 0 != t ? t : e;
  3038.                     },
  3039.                     L = function (e) {
  3040.                         var t;
  3041.                         return u(e) && "function" == typeof (t = e.then) ? t : !1;
  3042.                     },
  3043.                     R = function (e, t) {
  3044.                         if (!e.n) {
  3045.                             e.n = !0;
  3046.                             var i = e.c;
  3047.                             b(function () {
  3048.                                 for (
  3049.                                     var n = e.v,
  3050.                                         r = 1 == e.s,
  3051.                                         o = 0,
  3052.                                         s = function (t) {
  3053.                                             var i,
  3054.                                                 o,
  3055.                                                 a = r ? t.ok : t.fail;
  3056.                                             try {
  3057.                                                 a ? (r || (e.h = !0), (i = a === !0 ? n : a(n)), i === t.P ? t.rej(TypeError("Promise-chain cycle")) : (o = L(i)) ? o.call(i, t.res, t.rej) : t.res(i)) : t.rej(n);
  3058.                                             } catch (s) {
  3059.                                                 t.rej(s);
  3060.                                             }
  3061.                                         }; i.length > o;
  3062.  
  3063.                                 )
  3064.                                     s(i[o++]);
  3065.                                 (i.length = 0),
  3066.                                 (e.n = !1),
  3067.                                 t &&
  3068.                                     setTimeout(function () {
  3069.                                         var t,
  3070.                                             i,
  3071.                                             r = e.p;
  3072.                                         O(r) && (M ? w.emit("unhandledRejection", n, r) : (t = a.onunhandledrejection) ? t({
  3073.                                                 promise: r,
  3074.                                                 reason: n
  3075.                                             }) : (i = a.console) && i.error && i.error("Unhandled promise rejection", n)),
  3076.                                             (e.a = void 0);
  3077.                                     }, 1);
  3078.                             });
  3079.                         }
  3080.                     },
  3081.                     O = function (e) {
  3082.                         var t,
  3083.                             i = e[_],
  3084.                             n = i.a || i.c,
  3085.                             r = 0;
  3086.                         if (i.h) return !1;
  3087.                         for (; n.length > r;)
  3088.                             if (((t = n[r++]), t.fail || !O(t.P))) return !1;
  3089.                         return !0;
  3090.                     },
  3091.                     k = function (e) {
  3092.                         var t = this;
  3093.                         t.d || ((t.d = !0), (t = t.r || t), (t.v = e), (t.s = 2), (t.a = t.c.slice()), R(t, !0));
  3094.                     },
  3095.                     D = function (e) {
  3096.                         var t,
  3097.                             i = this;
  3098.                         if (!i.d) {
  3099.                             (i.d = !0), (i = i.r || i);
  3100.                             try {
  3101.                                 (t = L(e)) ?
  3102.                                 b(function () {
  3103.                                     var n = {
  3104.                                         r: i,
  3105.                                         d: !1
  3106.                                     };
  3107.                                     try {
  3108.                                         t.call(e, s(D, n, 1), s(k, n, 1));
  3109.                                     } catch (r) {
  3110.                                         k.call(n, r);
  3111.                                     }
  3112.                                 }): ((i.v = e), (i.s = 1), R(i, !1));
  3113.                             } catch (n) {
  3114.                                 k.call({
  3115.                                     r: i,
  3116.                                     d: !1
  3117.                                 }, n);
  3118.                             }
  3119.                         }
  3120.                     };
  3121.                 E ||
  3122.                     ((T = function (e) {
  3123.                             d(e);
  3124.                             var t = {
  3125.                                 p: f(this, T, x),
  3126.                                 c: [],
  3127.                                 a: void 0,
  3128.                                 s: 0,
  3129.                                 d: !1,
  3130.                                 v: void 0,
  3131.                                 h: !1,
  3132.                                 n: !1
  3133.                             };
  3134.                             this[_] = t;
  3135.                             try {
  3136.                                 e(s(D, t, 1), s(k, t, 1));
  3137.                             } catch (i) {
  3138.                                 k.call(t, i);
  3139.                             }
  3140.                         }),
  3141.                         e("./$.mix")(T.prototype, {
  3142.                             then: function (e, t) {
  3143.                                 var i = h(h(this).constructor)[y],
  3144.                                     n = {
  3145.                                         ok: "function" == typeof e ? e : !0,
  3146.                                         fail: "function" == typeof t ? t : !1
  3147.                                     },
  3148.                                     r = (n.P = new(void 0 != i ? i : T)(function (e, t) {
  3149.                                         (n.res = e), (n.rej = t);
  3150.                                     }));
  3151.                                 d(n.res), d(n.rej);
  3152.                                 var o = this[_];
  3153.                                 return o.c.push(n), o.a && o.a.push(n), o.s && R(o, !1), r;
  3154.                             },
  3155.                             catch: function (e) {
  3156.                                 return this.then(void 0, e);
  3157.                             },
  3158.                         })),
  3159.                     c(c.G + c.W + c.F * !E, {
  3160.                         Promise: T
  3161.                     }),
  3162.                     e("./$.tag")(T, x),
  3163.                     g(T),
  3164.                     g((n = e("./$.core")[x])),
  3165.                     c(c.S + c.F * !E, x, {
  3166.                         reject: function (e) {
  3167.                             return new this(function (t, i) {
  3168.                                 i(e);
  3169.                             });
  3170.                         },
  3171.                     }),
  3172.                     c(c.S + c.F * (!E || S(!0)), x, {
  3173.                         resolve: function (e) {
  3174.                             return A(e) && C(e.constructor, this) ?
  3175.                                 e :
  3176.                                 new this(function (t) {
  3177.                                     t(e);
  3178.                                 });
  3179.                         },
  3180.                     }),
  3181.                     c(
  3182.                         c.S +
  3183.                         c.F *
  3184.                         !(
  3185.                             E &&
  3186.                             e("./$.iter-detect")(function (e) {
  3187.                                 T.all(e)["catch"](function () {});
  3188.                             })
  3189.                         ),
  3190.                         x, {
  3191.                             all: function (e) {
  3192.                                 var t = P(this),
  3193.                                     i = [];
  3194.                                 return new t(function (n, o) {
  3195.                                     p(e, !1, i.push, i);
  3196.                                     var a = i.length,
  3197.                                         s = Array(a);
  3198.                                     a
  3199.                                         ?
  3200.                                         r.each.call(i, function (e, i) {
  3201.                                             t.resolve(e).then(function (e) {
  3202.                                                 (s[i] = e), --a || n(s);
  3203.                                             }, o);
  3204.                                         }) :
  3205.                                         n(s);
  3206.                                 });
  3207.                             },
  3208.                             race: function (e) {
  3209.                                 var t = P(this);
  3210.                                 return new t(function (i, n) {
  3211.                                     p(e, !1, function (e) {
  3212.                                         t.resolve(e).then(i, n);
  3213.                                     });
  3214.                                 });
  3215.                             },
  3216.                         }
  3217.                     );
  3218.             },
  3219.             {
  3220.                 "./$": 45,
  3221.                 "./$.a-function": 2,
  3222.                 "./$.an-object": 3,
  3223.                 "./$.classof": 9,
  3224.                 "./$.core": 15,
  3225.                 "./$.ctx": 16,
  3226.                 "./$.def": 17,
  3227.                 "./$.for-of": 26,
  3228.                 "./$.global": 28,
  3229.                 "./$.is-object": 37,
  3230.                 "./$.iter-detect": 42,
  3231.                 "./$.library": 47,
  3232.                 "./$.microtask": 49,
  3233.                 "./$.mix": 50,
  3234.                 "./$.same": 59,
  3235.                 "./$.set-proto": 60,
  3236.                 "./$.species": 63,
  3237.                 "./$.strict-new": 64,
  3238.                 "./$.support-desc": 70,
  3239.                 "./$.tag": 71,
  3240.                 "./$.uid": 78,
  3241.                 "./$.wks": 80,
  3242.             },
  3243.         ],
  3244.         136: [
  3245.             function (e, t, i) {
  3246.                 var n = e("./$.def"),
  3247.                     r = Function.apply;
  3248.                 n(n.S, "Reflect", {
  3249.                     apply: function (e, t, i) {
  3250.                         return r.call(e, t, i);
  3251.                     },
  3252.                 });
  3253.             },
  3254.             {
  3255.                 "./$.def": 17
  3256.             },
  3257.         ],
  3258.         137: [
  3259.             function (e, t, i) {
  3260.                 var n = e("./$"),
  3261.                     r = e("./$.def"),
  3262.                     o = e("./$.a-function"),
  3263.                     a = e("./$.an-object"),
  3264.                     s = e("./$.is-object"),
  3265.                     l = Function.bind || e("./$.core").Function.prototype.bind;
  3266.                 r(
  3267.                     r.S +
  3268.                     r.F *
  3269.                     e("./$.fails")(function () {
  3270.                         function e() {}
  3271.                         return !(Reflect.construct(function () {}, [], e) instanceof e);
  3272.                     }),
  3273.                     "Reflect", {
  3274.                         construct: function (e, t) {
  3275.                             o(e);
  3276.                             var i = arguments.length < 3 ? e : o(arguments[2]);
  3277.                             if (e == i) {
  3278.                                 if (void 0 != t)
  3279.                                     switch (a(t).length) {
  3280.                                     case 0:
  3281.                                         return new e();
  3282.                                     case 1:
  3283.                                         return new e(t[0]);
  3284.                                     case 2:
  3285.                                         return new e(t[0], t[1]);
  3286.                                     case 3:
  3287.                                         return new e(t[0], t[1], t[2]);
  3288.                                     case 4:
  3289.                                         return new e(t[0], t[1], t[2], t[3]);
  3290.                                     }
  3291.                                 var r = [null];
  3292.                                 return r.push.apply(r, t), new(l.apply(e, r))();
  3293.                             }
  3294.                             var c = i.prototype,
  3295.                                 u = n.create(s(c) ? c : Object.prototype),
  3296.                                 h = Function.apply.call(e, u, t);
  3297.                             return s(h) ? h : u;
  3298.                         },
  3299.                     }
  3300.                 );
  3301.             },
  3302.             {
  3303.                 "./$": 45,
  3304.                 "./$.a-function": 2,
  3305.                 "./$.an-object": 3,
  3306.                 "./$.core": 15,
  3307.                 "./$.def": 17,
  3308.                 "./$.fails": 23,
  3309.                 "./$.is-object": 37
  3310.             },
  3311.         ],
  3312.         138: [
  3313.             function (e, t, i) {
  3314.                 var n = e("./$"),
  3315.                     r = e("./$.def"),
  3316.                     o = e("./$.an-object");
  3317.                 r(
  3318.                     r.S +
  3319.                     r.F *
  3320.                     e("./$.fails")(function () {
  3321.                         Reflect.defineProperty(n.setDesc({}, 1, {
  3322.                             value: 1
  3323.                         }), 1, {
  3324.                             value: 2
  3325.                         });
  3326.                     }),
  3327.                     "Reflect", {
  3328.                         defineProperty: function (e, t, i) {
  3329.                             o(e);
  3330.                             try {
  3331.                                 return n.setDesc(e, t, i), !0;
  3332.                             } catch (r) {
  3333.                                 return !1;
  3334.                             }
  3335.                         },
  3336.                     }
  3337.                 );
  3338.             },
  3339.             {
  3340.                 "./$": 45,
  3341.                 "./$.an-object": 3,
  3342.                 "./$.def": 17,
  3343.                 "./$.fails": 23
  3344.             },
  3345.         ],
  3346.         139: [
  3347.             function (e, t, i) {
  3348.                 var n = e("./$.def"),
  3349.                     r = e("./$").getDesc,
  3350.                     o = e("./$.an-object");
  3351.                 n(n.S, "Reflect", {
  3352.                     deleteProperty: function (e, t) {
  3353.                         var i = r(o(e), t);
  3354.                         return i && !i.configurable ? !1 : delete e[t];
  3355.                     },
  3356.                 });
  3357.             },
  3358.             {
  3359.                 "./$": 45,
  3360.                 "./$.an-object": 3,
  3361.                 "./$.def": 17
  3362.             },
  3363.         ],
  3364.         140: [
  3365.             function (e, t, i) {
  3366.                 "use strict";
  3367.                 var n = e("./$.def"),
  3368.                     r = e("./$.an-object"),
  3369.                     o = function (e) {
  3370.                         (this._t = r(e)), (this._i = 0);
  3371.                         var t,
  3372.                             i = (this._k = []);
  3373.                         for (t in e) i.push(t);
  3374.                     };
  3375.                 e("./$.iter-create")(o, "Object", function () {
  3376.                         var e,
  3377.                             t = this,
  3378.                             i = t._k;
  3379.                         do
  3380.                             if (t._i >= i.length) return {
  3381.                                 value: void 0,
  3382.                                 done: !0
  3383.                             };
  3384.                         while (!((e = i[t._i++]) in t._t));
  3385.                         return {
  3386.                             value: e,
  3387.                             done: !1
  3388.                         };
  3389.                     }),
  3390.                     n(n.S, "Reflect", {
  3391.                         enumerate: function (e) {
  3392.                             return new o(e);
  3393.                         },
  3394.                     });
  3395.             },
  3396.             {
  3397.                 "./$.an-object": 3,
  3398.                 "./$.def": 17,
  3399.                 "./$.iter-create": 40
  3400.             },
  3401.         ],
  3402.         141: [
  3403.             function (e, t, i) {
  3404.                 var n = e("./$"),
  3405.                     r = e("./$.def"),
  3406.                     o = e("./$.an-object");
  3407.                 r(r.S, "Reflect", {
  3408.                     getOwnPropertyDescriptor: function (e, t) {
  3409.                         return n.getDesc(o(e), t);
  3410.                     },
  3411.                 });
  3412.             },
  3413.             {
  3414.                 "./$": 45,
  3415.                 "./$.an-object": 3,
  3416.                 "./$.def": 17
  3417.             },
  3418.         ],
  3419.         142: [
  3420.             function (e, t, i) {
  3421.                 var n = e("./$.def"),
  3422.                     r = e("./$").getProto,
  3423.                     o = e("./$.an-object");
  3424.                 n(n.S, "Reflect", {
  3425.                     getPrototypeOf: function (e) {
  3426.                         return r(o(e));
  3427.                     },
  3428.                 });
  3429.             },
  3430.             {
  3431.                 "./$": 45,
  3432.                 "./$.an-object": 3,
  3433.                 "./$.def": 17
  3434.             },
  3435.         ],
  3436.         143: [
  3437.             function (e, t, i) {
  3438.                 function n(e, t) {
  3439.                     var i,
  3440.                         a,
  3441.                         c = arguments.length < 3 ? e : arguments[2];
  3442.                     return l(e) === c ? e[t] : (i = r.getDesc(e, t)) ? (o(i, "value") ? i.value : void 0 !== i.get ? i.get.call(c) : void 0) : s((a = r.getProto(e))) ? n(a, t, c) : void 0;
  3443.                 }
  3444.                 var r = e("./$"),
  3445.                     o = e("./$.has"),
  3446.                     a = e("./$.def"),
  3447.                     s = e("./$.is-object"),
  3448.                     l = e("./$.an-object");
  3449.                 a(a.S, "Reflect", {
  3450.                     get: n
  3451.                 });
  3452.             },
  3453.             {
  3454.                 "./$": 45,
  3455.                 "./$.an-object": 3,
  3456.                 "./$.def": 17,
  3457.                 "./$.has": 29,
  3458.                 "./$.is-object": 37
  3459.             },
  3460.         ],
  3461.         144: [
  3462.             function (e, t, i) {
  3463.                 var n = e("./$.def");
  3464.                 n(n.S, "Reflect", {
  3465.                     has: function (e, t) {
  3466.                         return t in e;
  3467.                     },
  3468.                 });
  3469.             },
  3470.             {
  3471.                 "./$.def": 17
  3472.             },
  3473.         ],
  3474.         145: [
  3475.             function (e, t, i) {
  3476.                 var n = e("./$.def"),
  3477.                     r = e("./$.an-object"),
  3478.                     o = Object.isExtensible;
  3479.                 n(n.S, "Reflect", {
  3480.                     isExtensible: function (e) {
  3481.                         return r(e), o ? o(e) : !0;
  3482.                     },
  3483.                 });
  3484.             },
  3485.             {
  3486.                 "./$.an-object": 3,
  3487.                 "./$.def": 17
  3488.             },
  3489.         ],
  3490.         146: [
  3491.             function (e, t, i) {
  3492.                 var n = e("./$.def");
  3493.                 n(n.S, "Reflect", {
  3494.                     ownKeys: e("./$.own-keys")
  3495.                 });
  3496.             },
  3497.             {
  3498.                 "./$.def": 17,
  3499.                 "./$.own-keys": 53
  3500.             },
  3501.         ],
  3502.         147: [
  3503.             function (e, t, i) {
  3504.                 var n = e("./$.def"),
  3505.                     r = e("./$.an-object"),
  3506.                     o = Object.preventExtensions;
  3507.                 n(n.S, "Reflect", {
  3508.                     preventExtensions: function (e) {
  3509.                         r(e);
  3510.                         try {
  3511.                             return o && o(e), !0;
  3512.                         } catch (t) {
  3513.                             return !1;
  3514.                         }
  3515.                     },
  3516.                 });
  3517.             },
  3518.             {
  3519.                 "./$.an-object": 3,
  3520.                 "./$.def": 17
  3521.             },
  3522.         ],
  3523.         148: [
  3524.             function (e, t, i) {
  3525.                 var n = e("./$.def"),
  3526.                     r = e("./$.set-proto");
  3527.                 r &&
  3528.                     n(n.S, "Reflect", {
  3529.                         setPrototypeOf: function (e, t) {
  3530.                             r.check(e, t);
  3531.                             try {
  3532.                                 return r.set(e, t), !0;
  3533.                             } catch (i) {
  3534.                                 return !1;
  3535.                             }
  3536.                         },
  3537.                     });
  3538.             },
  3539.             {
  3540.                 "./$.def": 17,
  3541.                 "./$.set-proto": 60
  3542.             },
  3543.         ],
  3544.         149: [
  3545.             function (e, t, i) {
  3546.                 function n(e, t, i) {
  3547.                     var a,
  3548.                         u,
  3549.                         h = arguments.length < 4 ? e : arguments[3],
  3550.                         d = r.getDesc(l(e), t);
  3551.                     if (!d) {
  3552.                         if (c((u = r.getProto(e)))) return n(u, t, i, h);
  3553.                         d = s(0);
  3554.                     }
  3555.                     return o(d, "value") ? (d.writable !== !1 && c(h) ? ((a = r.getDesc(h, t) || s(0)), (a.value = i), r.setDesc(h, t, a), !0) : !1) : void 0 === d.set ? !1 : (d.set.call(h, i), !0);
  3556.                 }
  3557.                 var r = e("./$"),
  3558.                     o = e("./$.has"),
  3559.                     a = e("./$.def"),
  3560.                     s = e("./$.property-desc"),
  3561.                     l = e("./$.an-object"),
  3562.                     c = e("./$.is-object");
  3563.                 a(a.S, "Reflect", {
  3564.                     set: n
  3565.                 });
  3566.             },
  3567.             {
  3568.                 "./$": 45,
  3569.                 "./$.an-object": 3,
  3570.                 "./$.def": 17,
  3571.                 "./$.has": 29,
  3572.                 "./$.is-object": 37,
  3573.                 "./$.property-desc": 56
  3574.             },
  3575.         ],
  3576.         150: [
  3577.             function (e, t, i) {
  3578.                 var n = e("./$"),
  3579.                     r = e("./$.global"),
  3580.                     o = e("./$.is-regexp"),
  3581.                     a = e("./$.flags"),
  3582.                     s = r.RegExp,
  3583.                     l = s,
  3584.                     c = s.prototype,
  3585.                     u = /a/g,
  3586.                     h = /a/g,
  3587.                     d = new s(u) !== u;
  3588.                 !e("./$.support-desc") ||
  3589.                     (d &&
  3590.                         !e("./$.fails")(function () {
  3591.                             return (h[e("./$.wks")("match")] = !1), s(u) != u || s(h) == h || "/a/i" != s(u, "i");
  3592.                         })) ||
  3593.                     ((s = function (e, t) {
  3594.                             var i = o(e),
  3595.                                 n = void 0 === t;
  3596.                             return this instanceof s || !i || e.constructor !== s || !n ? (d ? new l(i && !n ? e.source : e, t) : l((i = e instanceof s) ? e.source : e, i && n ? a.call(e) : t)) : e;
  3597.                         }),
  3598.                         n.each.call(n.getNames(l), function (e) {
  3599.                             e in s ||
  3600.                                 n.setDesc(s, e, {
  3601.                                     configurable: !0,
  3602.                                     get: function () {
  3603.                                         return l[e];
  3604.                                     },
  3605.                                     set: function (t) {
  3606.                                         l[e] = t;
  3607.                                     },
  3608.                                 });
  3609.                         }),
  3610.                         (c.constructor = s),
  3611.                         (s.prototype = c),
  3612.                         e("./$.redef")(r, "RegExp", s)),
  3613.                     e("./$.species")(s);
  3614.             },
  3615.             {
  3616.                 "./$": 45,
  3617.                 "./$.fails": 23,
  3618.                 "./$.flags": 25,
  3619.                 "./$.global": 28,
  3620.                 "./$.is-regexp": 38,
  3621.                 "./$.redef": 57,
  3622.                 "./$.species": 63,
  3623.                 "./$.support-desc": 70,
  3624.                 "./$.wks": 80
  3625.             },
  3626.         ],
  3627.         151: [
  3628.             function (e, t, i) {
  3629.                 var n = e("./$");
  3630.                 e("./$.support-desc") && "g" != /./g.flags && n.setDesc(RegExp.prototype, "flags", {
  3631.                     configurable: !0,
  3632.                     get: e("./$.flags")
  3633.                 });
  3634.             },
  3635.             {
  3636.                 "./$": 45,
  3637.                 "./$.flags": 25,
  3638.                 "./$.support-desc": 70
  3639.             },
  3640.         ],
  3641.         152: [
  3642.             function (e, t, i) {
  3643.                 e("./$.fix-re-wks")("match", 1, function (e, t) {
  3644.                     return function (i) {
  3645.                         "use strict";
  3646.                         var n = e(this),
  3647.                             r = void 0 == i ? void 0 : i[t];
  3648.                         return void 0 !== r ? r.call(i, n) : new RegExp(i)[t](String(n));
  3649.                     };
  3650.                 });
  3651.             },
  3652.             {
  3653.                 "./$.fix-re-wks": 24
  3654.             },
  3655.         ],
  3656.         153: [
  3657.             function (e, t, i) {
  3658.                 e("./$.fix-re-wks")("replace", 2, function (e, t, i) {
  3659.                     return function (n, r) {
  3660.                         "use strict";
  3661.                         var o = e(this),
  3662.                             a = void 0 == n ? void 0 : n[t];
  3663.                         return void 0 !== a ? a.call(n, o, r) : i.call(String(o), n, r);
  3664.                     };
  3665.                 });
  3666.             },
  3667.             {
  3668.                 "./$.fix-re-wks": 24
  3669.             },
  3670.         ],
  3671.         154: [
  3672.             function (e, t, i) {
  3673.                 e("./$.fix-re-wks")("search", 1, function (e, t) {
  3674.                     return function (i) {
  3675.                         "use strict";
  3676.                         var n = e(this),
  3677.                             r = void 0 == i ? void 0 : i[t];
  3678.                         return void 0 !== r ? r.call(i, n) : new RegExp(i)[t](String(n));
  3679.                     };
  3680.                 });
  3681.             },
  3682.             {
  3683.                 "./$.fix-re-wks": 24
  3684.             },
  3685.         ],
  3686.         155: [
  3687.             function (e, t, i) {
  3688.                 e("./$.fix-re-wks")("split", 2, function (e, t, i) {
  3689.                     return function (n, r) {
  3690.                         "use strict";
  3691.                         var o = e(this),
  3692.                             a = void 0 == n ? void 0 : n[t];
  3693.                         return void 0 !== a ? a.call(n, o, r) : i.call(String(o), n, r);
  3694.                     };
  3695.                 });
  3696.             },
  3697.             {
  3698.                 "./$.fix-re-wks": 24
  3699.             },
  3700.         ],
  3701.         156: [
  3702.             function (e, t, i) {
  3703.                 "use strict";
  3704.                 var n = e("./$.collection-strong");
  3705.                 e("./$.collection")(
  3706.                     "Set",
  3707.                     function (e) {
  3708.                         return function () {
  3709.                             return e(this, arguments[0]);
  3710.                         };
  3711.                     }, {
  3712.                         add: function (e) {
  3713.                             return n.def(this, (e = 0 === e ? 0 : e), e);
  3714.                         },
  3715.                     },
  3716.                     n
  3717.                 );
  3718.             },
  3719.             {
  3720.                 "./$.collection": 14,
  3721.                 "./$.collection-strong": 11
  3722.             },
  3723.         ],
  3724.         157: [
  3725.             function (e, t, i) {
  3726.                 "use strict";
  3727.                 var n = e("./$.def"),
  3728.                     r = e("./$.string-at")(!1);
  3729.                 n(n.P, "String", {
  3730.                     codePointAt: function (e) {
  3731.                         return r(this, e);
  3732.                     },
  3733.                 });
  3734.             },
  3735.             {
  3736.                 "./$.def": 17,
  3737.                 "./$.string-at": 65
  3738.             },
  3739.         ],
  3740.         158: [
  3741.             function (e, t, i) {
  3742.                 "use strict";
  3743.                 var n = e("./$.def"),
  3744.                     r = e("./$.to-length"),
  3745.                     o = e("./$.string-context"),
  3746.                     a = "endsWith",
  3747.                     s = "" [a];
  3748.                 n(n.P + n.F * e("./$.fails-is-regexp")(a), "String", {
  3749.                     endsWith: function (e) {
  3750.                         var t = o(this, e, a),
  3751.                             i = arguments[1],
  3752.                             n = r(t.length),
  3753.                             l = void 0 === i ? n : Math.min(r(i), n),
  3754.                             c = String(e);
  3755.                         return s ? s.call(t, c, l) : t.slice(l - c.length, l) === c;
  3756.                     },
  3757.                 });
  3758.             },
  3759.             {
  3760.                 "./$.def": 17,
  3761.                 "./$.fails-is-regexp": 22,
  3762.                 "./$.string-context": 66,
  3763.                 "./$.to-length": 76
  3764.             },
  3765.         ],
  3766.         159: [
  3767.             function (e, t, i) {
  3768.                 var n = e("./$.def"),
  3769.                     r = e("./$.to-index"),
  3770.                     o = String.fromCharCode,
  3771.                     a = String.fromCodePoint;
  3772.                 n(n.S + n.F * (!!a && 1 != a.length), "String", {
  3773.                     fromCodePoint: function (e) {
  3774.                         for (var t, i = [], n = arguments.length, a = 0; n > a;) {
  3775.                             if (((t = +arguments[a++]), r(t, 1114111) !== t)) throw RangeError(t + " is not a valid code point");
  3776.                             i.push(65536 > t ? o(t) : o(((t -= 65536) >> 10) + 55296, (t % 1024) + 56320));
  3777.                         }
  3778.                         return i.join("");
  3779.                     },
  3780.                 });
  3781.             },
  3782.             {
  3783.                 "./$.def": 17,
  3784.                 "./$.to-index": 73
  3785.             },
  3786.         ],
  3787.         160: [
  3788.             function (e, t, i) {
  3789.                 "use strict";
  3790.                 var n = e("./$.def"),
  3791.                     r = e("./$.string-context"),
  3792.                     o = "includes";
  3793.                 n(n.P + n.F * e("./$.fails-is-regexp")(o), "String", {
  3794.                     includes: function (e) {
  3795.                         return !!~r(this, e, o).indexOf(e, arguments[1]);
  3796.                     },
  3797.                 });
  3798.             },
  3799.             {
  3800.                 "./$.def": 17,
  3801.                 "./$.fails-is-regexp": 22,
  3802.                 "./$.string-context": 66
  3803.             },
  3804.         ],
  3805.         161: [
  3806.             function (e, t, i) {
  3807.                 "use strict";
  3808.                 var n = e("./$.string-at")(!0);
  3809.                 e("./$.iter-define")(
  3810.                     String,
  3811.                     "String",
  3812.                     function (e) {
  3813.                         (this._t = String(e)), (this._i = 0);
  3814.                     },
  3815.                     function () {
  3816.                         var e,
  3817.                             t = this._t,
  3818.                             i = this._i;
  3819.                         return i >= t.length ? {
  3820.                             value: void 0,
  3821.                             done: !0
  3822.                         } : ((e = n(t, i)), (this._i += e.length), {
  3823.                             value: e,
  3824.                             done: !1
  3825.                         });
  3826.                     }
  3827.                 );
  3828.             },
  3829.             {
  3830.                 "./$.iter-define": 41,
  3831.                 "./$.string-at": 65
  3832.             },
  3833.         ],
  3834.         162: [
  3835.             function (e, t, i) {
  3836.                 var n = e("./$.def"),
  3837.                     r = e("./$.to-iobject"),
  3838.                     o = e("./$.to-length");
  3839.                 n(n.S, "String", {
  3840.                     raw: function (e) {
  3841.                         for (var t = r(e.raw), i = o(t.length), n = arguments.length, a = [], s = 0; i > s;) a.push(String(t[s++])), n > s && a.push(String(arguments[s]));
  3842.                         return a.join("");
  3843.                     },
  3844.                 });
  3845.             },
  3846.             {
  3847.                 "./$.def": 17,
  3848.                 "./$.to-iobject": 75,
  3849.                 "./$.to-length": 76
  3850.             },
  3851.         ],
  3852.         163: [
  3853.             function (e, t, i) {
  3854.                 var n = e("./$.def");
  3855.                 n(n.P, "String", {
  3856.                     repeat: e("./$.string-repeat")
  3857.                 });
  3858.             },
  3859.             {
  3860.                 "./$.def": 17,
  3861.                 "./$.string-repeat": 68
  3862.             },
  3863.         ],
  3864.         164: [
  3865.             function (e, t, i) {
  3866.                 "use strict";
  3867.                 var n = e("./$.def"),
  3868.                     r = e("./$.to-length"),
  3869.                     o = e("./$.string-context"),
  3870.                     a = "startsWith",
  3871.                     s = "" [a];
  3872.                 n(n.P + n.F * e("./$.fails-is-regexp")(a), "String", {
  3873.                     startsWith: function (e) {
  3874.                         var t = o(this, e, a),
  3875.                             i = r(Math.min(arguments[1], t.length)),
  3876.                             n = String(e);
  3877.                         return s ? s.call(t, n, i) : t.slice(i, i + n.length) === n;
  3878.                     },
  3879.                 });
  3880.             },
  3881.             {
  3882.                 "./$.def": 17,
  3883.                 "./$.fails-is-regexp": 22,
  3884.                 "./$.string-context": 66,
  3885.                 "./$.to-length": 76
  3886.             },
  3887.         ],
  3888.         165: [
  3889.             function (e, t, i) {
  3890.                 "use strict";
  3891.                 e("./$.string-trim")("trim", function (e) {
  3892.                     return function () {
  3893.                         return e(this, 3);
  3894.                     };
  3895.                 });
  3896.             },
  3897.             {
  3898.                 "./$.string-trim": 69
  3899.             },
  3900.         ],
  3901.         166: [
  3902.             function (e, t, i) {
  3903.                 "use strict";
  3904.                 var n = e("./$"),
  3905.                     r = e("./$.global"),
  3906.                     o = e("./$.has"),
  3907.                     a = e("./$.support-desc"),
  3908.                     s = e("./$.def"),
  3909.                     l = e("./$.redef"),
  3910.                     c = e("./$.fails"),
  3911.                     u = e("./$.shared"),
  3912.                     h = e("./$.tag"),
  3913.                     d = e("./$.uid"),
  3914.                     f = e("./$.wks"),
  3915.                     p = e("./$.keyof"),
  3916.                     m = e("./$.get-names"),
  3917.                     v = e("./$.enum-keys"),
  3918.                     g = e("./$.is-array"),
  3919.                     y = (e("./$.is-object"), e("./$.an-object")),
  3920.                     _ = e("./$.to-iobject"),
  3921.                     b = e("./$.property-desc"),
  3922.                     x = n.getDesc,
  3923.                     w = n.setDesc,
  3924.                     M = n.create,
  3925.                     T = m.get,
  3926.                     S = r.Symbol,
  3927.                     E = r.JSON,
  3928.                     A = E && E.stringify,
  3929.                     C = !1,
  3930.                     P = f("_hidden"),
  3931.                     L = n.isEnum,
  3932.                     R = u("symbol-registry"),
  3933.                     O = u("symbols"),
  3934.                     k = "function" == typeof S,
  3935.                     D = Object.prototype,
  3936.                     I =
  3937.                     a &&
  3938.                     c(function () {
  3939.                         return (
  3940.                             7 !=
  3941.                             M(
  3942.                                 w({}, "a", {
  3943.                                     get: function () {
  3944.                                         return w(this, "a", {
  3945.                                             value: 7
  3946.                                         }).a;
  3947.                                     },
  3948.                                 })
  3949.                             ).a
  3950.                         );
  3951.                     }) ?
  3952.                     function (e, t, i) {
  3953.                         var n = x(D, t);
  3954.                         n && delete D[t], w(e, t, i), n && e !== D && w(D, t, n);
  3955.                     } :
  3956.                     w,
  3957.                     N = function (e) {
  3958.                         var t = (O[e] = M(S.prototype));
  3959.                         return (
  3960.                             (t._k = e),
  3961.                             a &&
  3962.                             C &&
  3963.                             I(D, e, {
  3964.                                 configurable: !0,
  3965.                                 set: function (t) {
  3966.                                     o(this, P) && o(this[P], e) && (this[P][e] = !1), I(this, e, b(1, t));
  3967.                                 },
  3968.                             }),
  3969.                             t
  3970.                         );
  3971.                     },
  3972.                     U = function (e) {
  3973.                         return "symbol" == typeof e;
  3974.                     },
  3975.                     j = function (e, t, i) {
  3976.                         return i && o(O, t) ? (i.enumerable ? (o(e, P) && e[P][t] && (e[P][t] = !1), (i = M(i, {
  3977.                             enumerable: b(0, !1)
  3978.                         }))) : (o(e, P) || w(e, P, b(1, {})), (e[P][t] = !0)), I(e, t, i)) : w(e, t, i);
  3979.                     },
  3980.                     B = function (e, t) {
  3981.                         y(e);
  3982.                         for (var i, n = v((t = _(t))), r = 0, o = n.length; o > r;) j(e, (i = n[r++]), t[i]);
  3983.                         return e;
  3984.                     },
  3985.                     F = function (e, t) {
  3986.                         return void 0 === t ? M(e) : B(M(e), t);
  3987.                     },
  3988.                     V = function (e) {
  3989.                         var t = L.call(this, e);
  3990.                         return t || !o(this, e) || !o(O, e) || (o(this, P) && this[P][e]) ? t : !0;
  3991.                     },
  3992.                     G = function (e, t) {
  3993.                         var i = x((e = _(e)), t);
  3994.                         return !i || !o(O, t) || (o(e, P) && e[P][t]) || (i.enumerable = !0), i;
  3995.                     },
  3996.                     z = function (e) {
  3997.                         for (var t, i = T(_(e)), n = [], r = 0; i.length > r;) o(O, (t = i[r++])) || t == P || n.push(t);
  3998.                         return n;
  3999.                     },
  4000.                     $ = function (e) {
  4001.                         for (var t, i = T(_(e)), n = [], r = 0; i.length > r;) o(O, (t = i[r++])) && n.push(O[t]);
  4002.                         return n;
  4003.                     },
  4004.                     H = function (e) {
  4005.                         for (var t, i, n = [e], r = 1; arguments.length > r;) n.push(arguments[r++]);
  4006.                         return (
  4007.                             (t = n[1]),
  4008.                             "function" == typeof t && (i = t),
  4009.                             (i || !g(t)) &&
  4010.                             (t = function (e, t) {
  4011.                                 return i && (t = i.call(this, e, t)), U(t) ? void 0 : t;
  4012.                             }),
  4013.                             (n[1] = t),
  4014.                             A.apply(E, n)
  4015.                         );
  4016.                     },
  4017.                     W = c(function () {
  4018.                         var e = S();
  4019.                         return "[null]" != A([e]) || "{}" != A({
  4020.                             a: e
  4021.                         }) || "{}" != A(Object(e));
  4022.                     });
  4023.                 k ||
  4024.                     ((S = function () {
  4025.                             if (U(this)) throw TypeError("Symbol is not a constructor");
  4026.                             return N(d(arguments[0]));
  4027.                         }),
  4028.                         l(S.prototype, "toString", function () {
  4029.                             return this._k;
  4030.                         }),
  4031.                         (U = function (e) {
  4032.                             return e instanceof S;
  4033.                         }),
  4034.                         (n.create = F),
  4035.                         (n.isEnum = V),
  4036.                         (n.getDesc = G),
  4037.                         (n.setDesc = j),
  4038.                         (n.setDescs = B),
  4039.                         (n.getNames = m.get = z),
  4040.                         (n.getSymbols = $),
  4041.                         a && !e("./$.library") && l(D, "propertyIsEnumerable", V, !0));
  4042.                 var X = {
  4043.                     for: function (e) {
  4044.                         return o(R, (e += "")) ? R[e] : (R[e] = S(e));
  4045.                     },
  4046.                     keyFor: function (e) {
  4047.                         return p(R, e);
  4048.                     },
  4049.                     useSetter: function () {
  4050.                         C = !0;
  4051.                     },
  4052.                     useSimple: function () {
  4053.                         C = !1;
  4054.                     },
  4055.                 };
  4056.                 n.each.call("hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","), function (e) {
  4057.                         var t = f(e);
  4058.                         X[e] = k ? t : N(t);
  4059.                     }),
  4060.                     (C = !0),
  4061.                     s(s.G + s.W, {
  4062.                         Symbol: S
  4063.                     }),
  4064.                     s(s.S, "Symbol", X),
  4065.                     s(s.S + s.F * !k, "Object", {
  4066.                         create: F,
  4067.                         defineProperty: j,
  4068.                         defineProperties: B,
  4069.                         getOwnPropertyDescriptor: G,
  4070.                         getOwnPropertyNames: z,
  4071.                         getOwnPropertySymbols: $
  4072.                     }),
  4073.                     E && s(s.S + s.F * (!k || W), "JSON", {
  4074.                         stringify: H
  4075.                     }),
  4076.                     h(S, "Symbol"),
  4077.                     h(Math, "Math", !0),
  4078.                     h(r.JSON, "JSON", !0);
  4079.             },
  4080.             {
  4081.                 "./$": 45,
  4082.                 "./$.an-object": 3,
  4083.                 "./$.def": 17,
  4084.                 "./$.enum-keys": 20,
  4085.                 "./$.fails": 23,
  4086.                 "./$.get-names": 27,
  4087.                 "./$.global": 28,
  4088.                 "./$.has": 29,
  4089.                 "./$.is-array": 35,
  4090.                 "./$.is-object": 37,
  4091.                 "./$.keyof": 46,
  4092.                 "./$.library": 47,
  4093.                 "./$.property-desc": 56,
  4094.                 "./$.redef": 57,
  4095.                 "./$.shared": 61,
  4096.                 "./$.support-desc": 70,
  4097.                 "./$.tag": 71,
  4098.                 "./$.to-iobject": 75,
  4099.                 "./$.uid": 78,
  4100.                 "./$.wks": 80,
  4101.             },
  4102.         ],
  4103.         167: [
  4104.             function (e, t, i) {
  4105.                 "use strict";
  4106.                 var n = e("./$"),
  4107.                     r = e("./$.collection-weak"),
  4108.                     o = e("./$.is-object"),
  4109.                     a = e("./$.has"),
  4110.                     s = r.frozenStore,
  4111.                     l = r.WEAK,
  4112.                     c = Object.isExtensible || o,
  4113.                     u = {},
  4114.                     h = e("./$.collection")(
  4115.                         "WeakMap",
  4116.                         function (e) {
  4117.                             return function () {
  4118.                                 return e(this, arguments[0]);
  4119.                             };
  4120.                         }, {
  4121.                             get: function (e) {
  4122.                                 if (o(e)) {
  4123.                                     if (!c(e)) return s(this).get(e);
  4124.                                     if (a(e, l)) return e[l][this._i];
  4125.                                 }
  4126.                             },
  4127.                             set: function (e, t) {
  4128.                                 return r.def(this, e, t);
  4129.                             },
  4130.                         },
  4131.                         r,
  4132.                         !0,
  4133.                         !0
  4134.                     );
  4135.                 7 != new h().set((Object.freeze || Object)(u), 7).get(u) &&
  4136.                     n.each.call(["delete", "has", "get", "set"], function (t) {
  4137.                         var i = h.prototype,
  4138.                             n = i[t];
  4139.                         e("./$.redef")(i, t, function (e, i) {
  4140.                             if (o(e) && !c(e)) {
  4141.                                 var r = s(this)[t](e, i);
  4142.                                 return "set" == t ? this : r;
  4143.                             }
  4144.                             return n.call(this, e, i);
  4145.                         });
  4146.                     });
  4147.             },
  4148.             {
  4149.                 "./$": 45,
  4150.                 "./$.collection": 14,
  4151.                 "./$.collection-weak": 13,
  4152.                 "./$.has": 29,
  4153.                 "./$.is-object": 37,
  4154.                 "./$.redef": 57
  4155.             },
  4156.         ],
  4157.         168: [
  4158.             function (e, t, i) {
  4159.                 "use strict";
  4160.                 var n = e("./$.collection-weak");
  4161.                 e("./$.collection")(
  4162.                     "WeakSet",
  4163.                     function (e) {
  4164.                         return function () {
  4165.                             return e(this, arguments[0]);
  4166.                         };
  4167.                     }, {
  4168.                         add: function (e) {
  4169.                             return n.def(this, e, !0);
  4170.                         },
  4171.                     },
  4172.                     n,
  4173.                     !1,
  4174.                     !0
  4175.                 );
  4176.             },
  4177.             {
  4178.                 "./$.collection": 14,
  4179.                 "./$.collection-weak": 13
  4180.             },
  4181.         ],
  4182.         169: [
  4183.             function (e, t, i) {
  4184.                 "use strict";
  4185.                 var n = e("./$.def"),
  4186.                     r = e("./$.array-includes")(!0);
  4187.                 n(n.P, "Array", {
  4188.                         includes: function (e) {
  4189.                             return r(this, e, arguments[1]);
  4190.                         },
  4191.                     }),
  4192.                     e("./$.unscope")("includes");
  4193.             },
  4194.             {
  4195.                 "./$.array-includes": 6,
  4196.                 "./$.def": 17,
  4197.                 "./$.unscope": 79
  4198.             },
  4199.         ],
  4200.         170: [
  4201.             function (e, t, i) {
  4202.                 var n = e("./$.def");
  4203.                 n(n.P, "Map", {
  4204.                     toJSON: e("./$.collection-to-json")("Map")
  4205.                 });
  4206.             },
  4207.             {
  4208.                 "./$.collection-to-json": 12,
  4209.                 "./$.def": 17
  4210.             },
  4211.         ],
  4212.         171: [
  4213.             function (e, t, i) {
  4214.                 var n = e("./$.def"),
  4215.                     r = e("./$.object-to-array")(!0);
  4216.                 n(n.S, "Object", {
  4217.                     entries: function (e) {
  4218.                         return r(e);
  4219.                     },
  4220.                 });
  4221.             },
  4222.             {
  4223.                 "./$.def": 17,
  4224.                 "./$.object-to-array": 52
  4225.             },
  4226.         ],
  4227.         172: [
  4228.             function (e, t, i) {
  4229.                 var n = e("./$"),
  4230.                     r = e("./$.def"),
  4231.                     o = e("./$.own-keys"),
  4232.                     a = e("./$.to-iobject"),
  4233.                     s = e("./$.property-desc");
  4234.                 r(r.S, "Object", {
  4235.                     getOwnPropertyDescriptors: function (e) {
  4236.                         for (var t, i, r = a(e), l = n.setDesc, c = n.getDesc, u = o(r), h = {}, d = 0; u.length > d;)(i = c(r, (t = u[d++]))), t in h ? l(h, t, s(0, i)) : (h[t] = i);
  4237.                         return h;
  4238.                     },
  4239.                 });
  4240.             },
  4241.             {
  4242.                 "./$": 45,
  4243.                 "./$.def": 17,
  4244.                 "./$.own-keys": 53,
  4245.                 "./$.property-desc": 56,
  4246.                 "./$.to-iobject": 75
  4247.             },
  4248.         ],
  4249.         173: [
  4250.             function (e, t, i) {
  4251.                 var n = e("./$.def"),
  4252.                     r = e("./$.object-to-array")(!1);
  4253.                 n(n.S, "Object", {
  4254.                     values: function (e) {
  4255.                         return r(e);
  4256.                     },
  4257.                 });
  4258.             },
  4259.             {
  4260.                 "./$.def": 17,
  4261.                 "./$.object-to-array": 52
  4262.             },
  4263.         ],
  4264.         174: [
  4265.             function (e, t, i) {
  4266.                 var n = e("./$.def"),
  4267.                     r = e("./$.replacer")(/[\^$*+?.()|[]{}]/g, "\$&");
  4268.                 n(n.S, "RegExp", {
  4269.                     escape: function (e) {
  4270.                         return r(e);
  4271.                     },
  4272.                 });
  4273.             },
  4274.             {
  4275.                 "./$.def": 17,
  4276.                 "./$.replacer": 58
  4277.             },
  4278.         ],
  4279.         175: [
  4280.             function (e, t, i) {
  4281.                 var n = e("./$.def");
  4282.                 n(n.P, "Set", {
  4283.                     toJSON: e("./$.collection-to-json")("Set")
  4284.                 });
  4285.             },
  4286.             {
  4287.                 "./$.collection-to-json": 12,
  4288.                 "./$.def": 17
  4289.             },
  4290.         ],
  4291.         176: [
  4292.             function (e, t, i) {
  4293.                 "use strict";
  4294.                 var n = e("./$.def"),
  4295.                     r = e("./$.string-at")(!0);
  4296.                 n(n.P, "String", {
  4297.                     at: function (e) {
  4298.                         return r(this, e);
  4299.                     },
  4300.                 });
  4301.             },
  4302.             {
  4303.                 "./$.def": 17,
  4304.                 "./$.string-at": 65
  4305.             },
  4306.         ],
  4307.         177: [
  4308.             function (e, t, i) {
  4309.                 "use strict";
  4310.                 var n = e("./$.def"),
  4311.                     r = e("./$.string-pad");
  4312.                 n(n.P, "String", {
  4313.                     padLeft: function (e) {
  4314.                         return r(this, e, arguments[1], !0);
  4315.                     },
  4316.                 });
  4317.             },
  4318.             {
  4319.                 "./$.def": 17,
  4320.                 "./$.string-pad": 67
  4321.             },
  4322.         ],
  4323.         178: [
  4324.             function (e, t, i) {
  4325.                 "use strict";
  4326.                 var n = e("./$.def"),
  4327.                     r = e("./$.string-pad");
  4328.                 n(n.P, "String", {
  4329.                     padRight: function (e) {
  4330.                         return r(this, e, arguments[1], !1);
  4331.                     },
  4332.                 });
  4333.             },
  4334.             {
  4335.                 "./$.def": 17,
  4336.                 "./$.string-pad": 67
  4337.             },
  4338.         ],
  4339.         179: [
  4340.             function (e, t, i) {
  4341.                 "use strict";
  4342.                 e("./$.string-trim")("trimLeft", function (e) {
  4343.                     return function () {
  4344.                         return e(this, 1);
  4345.                     };
  4346.                 });
  4347.             },
  4348.             {
  4349.                 "./$.string-trim": 69
  4350.             },
  4351.         ],
  4352.         180: [
  4353.             function (e, t, i) {
  4354.                 "use strict";
  4355.                 e("./$.string-trim")("trimRight", function (e) {
  4356.                     return function () {
  4357.                         return e(this, 2);
  4358.                     };
  4359.                 });
  4360.             },
  4361.             {
  4362.                 "./$.string-trim": 69
  4363.             },
  4364.         ],
  4365.         181: [
  4366.             function (e, t, i) {
  4367.                 var n = e("./$"),
  4368.                     r = e("./$.def"),
  4369.                     o = e("./$.core").Array || Array,
  4370.                     a = {},
  4371.                     s = function (t, i) {
  4372.                         n.each.call(t.split(","), function (t) {
  4373.                             void 0 == i && t in o ? (a[t] = o[t]) : t in [] && (a[t] = e("./$.ctx")(Function.call, [][t], i));
  4374.                         });
  4375.                     };
  4376.                 s("pop,reverse,shift,keys,values,entries", 1),
  4377.                     s("indexOf,every,some,forEach,map,filter,find,findIndex,includes", 3),
  4378.                     s("join,slice,concat,push,splice,unshift,sort,lastIndexOf,reduce,reduceRight,copyWithin,fill"),
  4379.                     r(r.S, "Array", a);
  4380.             },
  4381.             {
  4382.                 "./$": 45,
  4383.                 "./$.core": 15,
  4384.                 "./$.ctx": 16,
  4385.                 "./$.def": 17
  4386.             },
  4387.         ],
  4388.         182: [
  4389.             function (e, t, i) {
  4390.                 e("./es6.array.iterator");
  4391.                 var n = e("./$.global"),
  4392.                     r = e("./$.hide"),
  4393.                     o = e("./$.iterators"),
  4394.                     a = e("./$.wks")("iterator"),
  4395.                     s = n.NodeList,
  4396.                     l = n.HTMLCollection,
  4397.                     c = s && s.prototype,
  4398.                     u = l && l.prototype,
  4399.                     h = (o.NodeList = o.HTMLCollection = o.Array);
  4400.                 !s || a in c || r(c, a, h), !l || a in u || r(u, a, h);
  4401.             },
  4402.             {
  4403.                 "./$.global": 28,
  4404.                 "./$.hide": 30,
  4405.                 "./$.iterators": 44,
  4406.                 "./$.wks": 80,
  4407.                 "./es6.array.iterator": 88
  4408.             },
  4409.         ],
  4410.         183: [
  4411.             function (e, t, i) {
  4412.                 var n = e("./$.def"),
  4413.                     r = e("./$.task");
  4414.                 n(n.G + n.B, {
  4415.                     setImmediate: r.set,
  4416.                     clearImmediate: r.clear
  4417.                 });
  4418.             },
  4419.             {
  4420.                 "./$.def": 17,
  4421.                 "./$.task": 72
  4422.             },
  4423.         ],
  4424.         184: [
  4425.             function (e, t, i) {
  4426.                 var n = e("./$.global"),
  4427.                     r = e("./$.def"),
  4428.                     o = e("./$.invoke"),
  4429.                     a = e("./$.partial"),
  4430.                     s = n.navigator,
  4431.                     l = !!s && /MSIE ../.test(s.userAgent),
  4432.                     c = function (e) {
  4433.                         return l ?
  4434.                             function (t, i) {
  4435.                                 return e(o(a, [].slice.call(arguments, 2), "function" == typeof t ? t : Function(t)), i);
  4436.                             } :
  4437.                             e;
  4438.                     };
  4439.                 r(r.G + r.B + r.F * l, {
  4440.                     setTimeout: c(n.setTimeout),
  4441.                     setInterval: c(n.setInterval)
  4442.                 });
  4443.             },
  4444.             {
  4445.                 "./$.def": 17,
  4446.                 "./$.global": 28,
  4447.                 "./$.invoke": 32,
  4448.                 "./$.partial": 54
  4449.             },
  4450.         ],
  4451.         185: [
  4452.             function (e, t, i) {
  4453.                 e("./modules/es5"),
  4454.                     e("./modules/es6.symbol"),
  4455.                     e("./modules/es6.object.assign"),
  4456.                     e("./modules/es6.object.is"),
  4457.                     e("./modules/es6.object.set-prototype-of"),
  4458.                     e("./modules/es6.object.to-string"),
  4459.                     e("./modules/es6.object.freeze"),
  4460.                     e("./modules/es6.object.seal"),
  4461.                     e("./modules/es6.object.prevent-extensions"),
  4462.                     e("./modules/es6.object.is-frozen"),
  4463.                     e("./modules/es6.object.is-sealed"),
  4464.                     e("./modules/es6.object.is-extensible"),
  4465.                     e("./modules/es6.object.get-own-property-descriptor"),
  4466.                     e("./modules/es6.object.get-prototype-of"),
  4467.                     e("./modules/es6.object.keys"),
  4468.                     e("./modules/es6.object.get-own-property-names"),
  4469.                     e("./modules/es6.function.name"),
  4470.                     e("./modules/es6.function.has-instance"),
  4471.                     e("./modules/es6.number.constructor"),
  4472.                     e("./modules/es6.number.epsilon"),
  4473.                     e("./modules/es6.number.is-finite"),
  4474.                     e("./modules/es6.number.is-integer"),
  4475.                     e("./modules/es6.number.is-nan"),
  4476.                     e("./modules/es6.number.is-safe-integer"),
  4477.                     e("./modules/es6.number.max-safe-integer"),
  4478.                     e("./modules/es6.number.min-safe-integer"),
  4479.                     e("./modules/es6.number.parse-float"),
  4480.                     e("./modules/es6.number.parse-int"),
  4481.                     e("./modules/es6.math.acosh"),
  4482.                     e("./modules/es6.math.asinh"),
  4483.                     e("./modules/es6.math.atanh"),
  4484.                     e("./modules/es6.math.cbrt"),
  4485.                     e("./modules/es6.math.clz32"),
  4486.                     e("./modules/es6.math.cosh"),
  4487.                     e("./modules/es6.math.expm1"),
  4488.                     e("./modules/es6.math.fround"),
  4489.                     e("./modules/es6.math.hypot"),
  4490.                     e("./modules/es6.math.imul"),
  4491.                     e("./modules/es6.math.log10"),
  4492.                     e("./modules/es6.math.log1p"),
  4493.                     e("./modules/es6.math.log2"),
  4494.                     e("./modules/es6.math.sign"),
  4495.                     e("./modules/es6.math.sinh"),
  4496.                     e("./modules/es6.math.tanh"),
  4497.                     e("./modules/es6.math.trunc"),
  4498.                     e("./modules/es6.string.from-code-point"),
  4499.                     e("./modules/es6.string.raw"),
  4500.                     e("./modules/es6.string.trim"),
  4501.                     e("./modules/es6.string.iterator"),
  4502.                     e("./modules/es6.string.code-point-at"),
  4503.                     e("./modules/es6.string.ends-with"),
  4504.                     e("./modules/es6.string.includes"),
  4505.                     e("./modules/es6.string.repeat"),
  4506.                     e("./modules/es6.string.starts-with"),
  4507.                     e("./modules/es6.array.from"),
  4508.                     e("./modules/es6.array.of"),
  4509.                     e("./modules/es6.array.iterator"),
  4510.                     e("./modules/es6.array.species"),
  4511.                     e("./modules/es6.array.copy-within"),
  4512.                     e("./modules/es6.array.fill"),
  4513.                     e("./modules/es6.array.find"),
  4514.                     e("./modules/es6.array.find-index"),
  4515.                     e("./modules/es6.regexp.constructor"),
  4516.                     e("./modules/es6.regexp.flags"),
  4517.                     e("./modules/es6.regexp.match"),
  4518.                     e("./modules/es6.regexp.replace"),
  4519.                     e("./modules/es6.regexp.search"),
  4520.                     e("./modules/es6.regexp.split"),
  4521.                     e("./modules/es6.promise"),
  4522.                     e("./modules/es6.map"),
  4523.                     e("./modules/es6.set"),
  4524.                     e("./modules/es6.weak-map"),
  4525.                     e("./modules/es6.weak-set"),
  4526.                     e("./modules/es6.reflect.apply"),
  4527.                     e("./modules/es6.reflect.construct"),
  4528.                     e("./modules/es6.reflect.define-property"),
  4529.                     e("./modules/es6.reflect.delete-property"),
  4530.                     e("./modules/es6.reflect.enumerate"),
  4531.                     e("./modules/es6.reflect.get"),
  4532.                     e("./modules/es6.reflect.get-own-property-descriptor"),
  4533.                     e("./modules/es6.reflect.get-prototype-of"),
  4534.                     e("./modules/es6.reflect.has"),
  4535.                     e("./modules/es6.reflect.is-extensible"),
  4536.                     e("./modules/es6.reflect.own-keys"),
  4537.                     e("./modules/es6.reflect.prevent-extensions"),
  4538.                     e("./modules/es6.reflect.set"),
  4539.                     e("./modules/es6.reflect.set-prototype-of"),
  4540.                     e("./modules/es7.array.includes"),
  4541.                     e("./modules/es7.string.at"),
  4542.                     e("./modules/es7.string.pad-left"),
  4543.                     e("./modules/es7.string.pad-right"),
  4544.                     e("./modules/es7.string.trim-left"),
  4545.                     e("./modules/es7.string.trim-right"),
  4546.                     e("./modules/es7.regexp.escape"),
  4547.                     e("./modules/es7.object.get-own-property-descriptors"),
  4548.                     e("./modules/es7.object.values"),
  4549.                     e("./modules/es7.object.entries"),
  4550.                     e("./modules/es7.map.to-json"),
  4551.                     e("./modules/es7.set.to-json"),
  4552.                     e("./modules/js.array.statics"),
  4553.                     e("./modules/web.timers"),
  4554.                     e("./modules/web.immediate"),
  4555.                     e("./modules/web.dom.iterable"),
  4556.                     (t.exports = e("./modules/$.core"));
  4557.             },
  4558.             {
  4559.                 "./modules/$.core": 15,
  4560.                 "./modules/es5": 82,
  4561.                 "./modules/es6.array.copy-within": 83,
  4562.                 "./modules/es6.array.fill": 84,
  4563.                 "./modules/es6.array.find": 86,
  4564.                 "./modules/es6.array.find-index": 85,
  4565.                 "./modules/es6.array.from": 87,
  4566.                 "./modules/es6.array.iterator": 88,
  4567.                 "./modules/es6.array.of": 89,
  4568.                 "./modules/es6.array.species": 90,
  4569.                 "./modules/es6.function.has-instance": 91,
  4570.                 "./modules/es6.function.name": 92,
  4571.                 "./modules/es6.map": 93,
  4572.                 "./modules/es6.math.acosh": 94,
  4573.                 "./modules/es6.math.asinh": 95,
  4574.                 "./modules/es6.math.atanh": 96,
  4575.                 "./modules/es6.math.cbrt": 97,
  4576.                 "./modules/es6.math.clz32": 98,
  4577.                 "./modules/es6.math.cosh": 99,
  4578.                 "./modules/es6.math.expm1": 100,
  4579.                 "./modules/es6.math.fround": 101,
  4580.                 "./modules/es6.math.hypot": 102,
  4581.                 "./modules/es6.math.imul": 103,
  4582.                 "./modules/es6.math.log10": 104,
  4583.                 "./modules/es6.math.log1p": 105,
  4584.                 "./modules/es6.math.log2": 106,
  4585.                 "./modules/es6.math.sign": 107,
  4586.                 "./modules/es6.math.sinh": 108,
  4587.                 "./modules/es6.math.tanh": 109,
  4588.                 "./modules/es6.math.trunc": 110,
  4589.                 "./modules/es6.number.constructor": 111,
  4590.                 "./modules/es6.number.epsilon": 112,
  4591.                 "./modules/es6.number.is-finite": 113,
  4592.                 "./modules/es6.number.is-integer": 114,
  4593.                 "./modules/es6.number.is-nan": 115,
  4594.                 "./modules/es6.number.is-safe-integer": 116,
  4595.                 "./modules/es6.number.max-safe-integer": 117,
  4596.                 "./modules/es6.number.min-safe-integer": 118,
  4597.                 "./modules/es6.number.parse-float": 119,
  4598.                 "./modules/es6.number.parse-int": 120,
  4599.                 "./modules/es6.object.assign": 121,
  4600.                 "./modules/es6.object.freeze": 122,
  4601.                 "./modules/es6.object.get-own-property-descriptor": 123,
  4602.                 "./modules/es6.object.get-own-property-names": 124,
  4603.                 "./modules/es6.object.get-prototype-of": 125,
  4604.                 "./modules/es6.object.is": 129,
  4605.                 "./modules/es6.object.is-extensible": 126,
  4606.                 "./modules/es6.object.is-frozen": 127,
  4607.                 "./modules/es6.object.is-sealed": 128,
  4608.                 "./modules/es6.object.keys": 130,
  4609.                 "./modules/es6.object.prevent-extensions": 131,
  4610.                 "./modules/es6.object.seal": 132,
  4611.                 "./modules/es6.object.set-prototype-of": 133,
  4612.                 "./modules/es6.object.to-string": 134,
  4613.                 "./modules/es6.promise": 135,
  4614.                 "./modules/es6.reflect.apply": 136,
  4615.                 "./modules/es6.reflect.construct": 137,
  4616.                 "./modules/es6.reflect.define-property": 138,
  4617.                 "./modules/es6.reflect.delete-property": 139,
  4618.                 "./modules/es6.reflect.enumerate": 140,
  4619.                 "./modules/es6.reflect.get": 143,
  4620.                 "./modules/es6.reflect.get-own-property-descriptor": 141,
  4621.                 "./modules/es6.reflect.get-prototype-of": 142,
  4622.                 "./modules/es6.reflect.has": 144,
  4623.                 "./modules/es6.reflect.is-extensible": 145,
  4624.                 "./modules/es6.reflect.own-keys": 146,
  4625.                 "./modules/es6.reflect.prevent-extensions": 147,
  4626.                 "./modules/es6.reflect.set": 149,
  4627.                 "./modules/es6.reflect.set-prototype-of": 148,
  4628.                 "./modules/es6.regexp.constructor": 150,
  4629.                 "./modules/es6.regexp.flags": 151,
  4630.                 "./modules/es6.regexp.match": 152,
  4631.                 "./modules/es6.regexp.replace": 153,
  4632.                 "./modules/es6.regexp.search": 154,
  4633.                 "./modules/es6.regexp.split": 155,
  4634.                 "./modules/es6.set": 156,
  4635.                 "./modules/es6.string.code-point-at": 157,
  4636.                 "./modules/es6.string.ends-with": 158,
  4637.                 "./modules/es6.string.from-code-point": 159,
  4638.                 "./modules/es6.string.includes": 160,
  4639.                 "./modules/es6.string.iterator": 161,
  4640.                 "./modules/es6.string.raw": 162,
  4641.                 "./modules/es6.string.repeat": 163,
  4642.                 "./modules/es6.string.starts-with": 164,
  4643.                 "./modules/es6.string.trim": 165,
  4644.                 "./modules/es6.symbol": 166,
  4645.                 "./modules/es6.weak-map": 167,
  4646.                 "./modules/es6.weak-set": 168,
  4647.                 "./modules/es7.array.includes": 169,
  4648.                 "./modules/es7.map.to-json": 170,
  4649.                 "./modules/es7.object.entries": 171,
  4650.                 "./modules/es7.object.get-own-property-descriptors": 172,
  4651.                 "./modules/es7.object.values": 173,
  4652.                 "./modules/es7.regexp.escape": 174,
  4653.                 "./modules/es7.set.to-json": 175,
  4654.                 "./modules/es7.string.at": 176,
  4655.                 "./modules/es7.string.pad-left": 177,
  4656.                 "./modules/es7.string.pad-right": 178,
  4657.                 "./modules/es7.string.trim-left": 179,
  4658.                 "./modules/es7.string.trim-right": 180,
  4659.                 "./modules/js.array.statics": 181,
  4660.                 "./modules/web.dom.iterable": 182,
  4661.                 "./modules/web.immediate": 183,
  4662.                 "./modules/web.timers": 184,
  4663.             },
  4664.         ],
  4665.         186: [
  4666.             function (e, t, i) {
  4667.                 (function (e, i) {
  4668.                     !(function (i) {
  4669.                         "use strict";
  4670.  
  4671.                         function n(e, t, i, n) {
  4672.                             var r = Object.create((t || o).prototype);
  4673.                             return (r._invoke = h(e, i || null, new p(n || []))), r;
  4674.                         }
  4675.  
  4676.                         function r(e, t, i) {
  4677.                             try {
  4678.                                 return {
  4679.                                     type: "normal",
  4680.                                     arg: e.call(t, i)
  4681.                                 };
  4682.                             } catch (n) {
  4683.                                 return {
  4684.                                     type: "throw",
  4685.                                     arg: n
  4686.                                 };
  4687.                             }
  4688.                         }
  4689.  
  4690.                         function o() {}
  4691.  
  4692.                         function a() {}
  4693.  
  4694.                         function s() {}
  4695.  
  4696.                         function l(e) {
  4697.                             ["next", "throw", "return"].forEach(function (t) {
  4698.                                 e[t] = function (e) {
  4699.                                     return this._invoke(t, e);
  4700.                                 };
  4701.                             });
  4702.                         }
  4703.  
  4704.                         function c(e) {
  4705.                             this.arg = e;
  4706.                         }
  4707.  
  4708.                         function u(t) {
  4709.                             function i(e, i) {
  4710.                                 var n = t[e](i),
  4711.                                     r = n.value;
  4712.                                 return r instanceof c ?
  4713.                                     Promise.resolve(r.arg).then(o, a) :
  4714.                                     Promise.resolve(r).then(function (e) {
  4715.                                         return (n.value = e), n;
  4716.                                     });
  4717.                             }
  4718.  
  4719.                             function n(e, t) {
  4720.                                 var n = r ?
  4721.                                     r.then(function () {
  4722.                                         return i(e, t);
  4723.                                     }) :
  4724.                                     new Promise(function (n) {
  4725.                                         n(i(e, t));
  4726.                                     });
  4727.                                 return (r = n["catch"](function (e) {})), n;
  4728.                             }
  4729.                             "object" == typeof e && e.domain && (i = e.domain.bind(i));
  4730.                             var r,
  4731.                                 o = i.bind(t, "next"),
  4732.                                 a = i.bind(t, "throw");
  4733.                             i.bind(t, "return");
  4734.                             this._invoke = n;
  4735.                         }
  4736.  
  4737.                         function h(e, t, i) {
  4738.                             var n = w;
  4739.                             return function (o, a) {
  4740.                                 if (n === T) throw new Error("Generator is already running");
  4741.                                 if (n === S) {
  4742.                                     if ("throw" === o) throw a;
  4743.                                     return v();
  4744.                                 }
  4745.                                 for (;;) {
  4746.                                     var s = i.delegate;
  4747.                                     if (s) {
  4748.                                         if ("return" === o || ("throw" === o && s.iterator[o] === g)) {
  4749.                                             i.delegate = null;
  4750.                                             var l = s.iterator["return"];
  4751.                                             if (l) {
  4752.                                                 var c = r(l, s.iterator, a);
  4753.                                                 if ("throw" === c.type) {
  4754.                                                     (o = "throw"), (a = c.arg);
  4755.                                                     continue;
  4756.                                                 }
  4757.                                             }
  4758.                                             if ("return" === o) continue;
  4759.                                         }
  4760.                                         var c = r(s.iterator[o], s.iterator, a);
  4761.                                         if ("throw" === c.type) {
  4762.                                             (i.delegate = null), (o = "throw"), (a = c.arg);
  4763.                                             continue;
  4764.                                         }
  4765.                                         (o = "next"), (a = g);
  4766.                                         var u = c.arg;
  4767.                                         if (!u.done) return (n = M), u;
  4768.                                         (i[s.resultName] = u.value), (i.next = s.nextLoc), (i.delegate = null);
  4769.                                     }
  4770.                                     if ("next" === o) n === M ? (i.sent = a) : (i.sent = g);
  4771.                                     else if ("throw" === o) {
  4772.                                         if (n === w) throw ((n = S), a);
  4773.                                         i.dispatchException(a) && ((o = "next"), (a = g));
  4774.                                     } else "return" === o && i.abrupt("return", a);
  4775.                                     n = T;
  4776.                                     var c = r(e, t, i);
  4777.                                     if ("normal" === c.type) {
  4778.                                         n = i.done ? S : M;
  4779.                                         var u = {
  4780.                                             value: c.arg,
  4781.                                             done: i.done
  4782.                                         };
  4783.                                         if (c.arg !== E) return u;
  4784.                                         i.delegate && "next" === o && (a = g);
  4785.                                     } else "throw" === c.type && ((n = S), (o = "throw"), (a = c.arg));
  4786.                                 }
  4787.                             };
  4788.                         }
  4789.  
  4790.                         function d(e) {
  4791.                             var t = {
  4792.                                 tryLoc: e[0]
  4793.                             };
  4794.                             1 in e && (t.catchLoc = e[1]), 2 in e && ((t.finallyLoc = e[2]), (t.afterLoc = e[3])), this.tryEntries.push(t);
  4795.                         }
  4796.  
  4797.                         function f(e) {
  4798.                             var t = e.completion || {};
  4799.                             (t.type = "normal"), delete t.arg, (e.completion = t);
  4800.                         }
  4801.  
  4802.                         function p(e) {
  4803.                             (this.tryEntries = [{
  4804.                                 tryLoc: "root"
  4805.                             }]), e.forEach(d, this), this.reset(!0);
  4806.                         }
  4807.  
  4808.                         function m(e) {
  4809.                             if (e) {
  4810.                                 var t = e[_];
  4811.                                 if (t) return t.call(e);
  4812.                                 if ("function" == typeof e.next) return e;
  4813.                                 if (!isNaN(e.length)) {
  4814.                                     var i = -1,
  4815.                                         n = function r() {
  4816.                                             for (; ++i < e.length;)
  4817.                                                 if (y.call(e, i)) return (r.value = e[i]), (r.done = !1), r;
  4818.                                             return (r.value = g), (r.done = !0), r;
  4819.                                         };
  4820.                                     return (n.next = n);
  4821.                                 }
  4822.                             }
  4823.                             return {
  4824.                                 next: v
  4825.                             };
  4826.                         }
  4827.  
  4828.                         function v() {
  4829.                             return {
  4830.                                 value: g,
  4831.                                 done: !0
  4832.                             };
  4833.                         }
  4834.                         var g,
  4835.                             y = Object.prototype.hasOwnProperty,
  4836.                             _ = ("function" == typeof Symbol && Symbol.iterator) || "@@iterator",
  4837.                             b = "object" == typeof t,
  4838.                             x = i.regeneratorRuntime;
  4839.                         if (x) return void(b && (t.exports = x));
  4840.                         (x = i.regeneratorRuntime = b ? t.exports : {}), (x.wrap = n);
  4841.                         var w = "suspendedStart",
  4842.                             M = "suspendedYield",
  4843.                             T = "executing",
  4844.                             S = "completed",
  4845.                             E = {},
  4846.                             A = (s.prototype = o.prototype);
  4847.                         (a.prototype = A.constructor = s),
  4848.                         (s.constructor = a),
  4849.                         (a.displayName = "GeneratorFunction"),
  4850.                         (x.isGeneratorFunction = function (e) {
  4851.                             var t = "function" == typeof e && e.constructor;
  4852.                             return t ? t === a || "GeneratorFunction" === (t.displayName || t.name) : !1;
  4853.                         }),
  4854.                         (x.mark = function (e) {
  4855.                             return (e.__proto__ = s), (e.prototype = Object.create(A)), e;
  4856.                         }),
  4857.                         (x.awrap = function (e) {
  4858.                             return new c(e);
  4859.                         }),
  4860.                         l(u.prototype),
  4861.                             (x.async = function (e, t, i, r) {
  4862.                                 var o = new u(n(e, t, i, r));
  4863.                                 return x.isGeneratorFunction(t) ?
  4864.                                     o :
  4865.                                     o.next().then(function (e) {
  4866.                                         return e.done ? e.value : o.next();
  4867.                                     });
  4868.                             }),
  4869.                             l(A),
  4870.                             (A[_] = function () {
  4871.                                 return this;
  4872.                             }),
  4873.                             (A.toString = function () {
  4874.                                 return "[object Generator]";
  4875.                             }),
  4876.                             (x.keys = function (e) {
  4877.                                 var t = [];
  4878.                                 for (var i in e) t.push(i);
  4879.                                 return (
  4880.                                     t.reverse(),
  4881.                                     function n() {
  4882.                                         for (; t.length;) {
  4883.                                             var i = t.pop();
  4884.                                             if (i in e) return (n.value = i), (n.done = !1), n;
  4885.                                         }
  4886.                                         return (n.done = !0), n;
  4887.                                     }
  4888.                                 );
  4889.                             }),
  4890.                             (x.values = m),
  4891.                             (p.prototype = {
  4892.                                 constructor: p,
  4893.                                 reset: function (e) {
  4894.                                     if (((this.prev = 0), (this.next = 0), (this.sent = g), (this.done = !1), (this.delegate = null), this.tryEntries.forEach(f), !e))
  4895.                                         for (var t in this) "t" === t.charAt(0) && y.call(this, t) && !isNaN(+t.slice(1)) && (this[t] = g);
  4896.                                 },
  4897.                                 stop: function () {
  4898.                                     this.done = !0;
  4899.                                     var e = this.tryEntries[0],
  4900.                                         t = e.completion;
  4901.                                     if ("throw" === t.type) throw t.arg;
  4902.                                     return this.rval;
  4903.                                 },
  4904.                                 dispatchException: function (e) {
  4905.                                     function t(t, n) {
  4906.                                         return (o.type = "throw"), (o.arg = e), (i.next = t), !!n;
  4907.                                     }
  4908.                                     if (this.done) throw e;
  4909.                                     for (var i = this, n = this.tryEntries.length - 1; n >= 0; --n) {
  4910.                                         var r = this.tryEntries[n],
  4911.                                             o = r.completion;
  4912.                                         if ("root" === r.tryLoc) return t("end");
  4913.                                         if (r.tryLoc <= this.prev) {
  4914.                                             var a = y.call(r, "catchLoc"),
  4915.                                                 s = y.call(r, "finallyLoc");
  4916.                                             if (a && s) {
  4917.                                                 if (this.prev < r.catchLoc) return t(r.catchLoc, !0);
  4918.                                                 if (this.prev < r.finallyLoc) return t(r.finallyLoc);
  4919.                                             } else if (a) {
  4920.                                                 if (this.prev < r.catchLoc) return t(r.catchLoc, !0);
  4921.                                             } else {
  4922.                                                 if (!s) throw new Error("try statement without catch or finally");
  4923.                                                 if (this.prev < r.finallyLoc) return t(r.finallyLoc);
  4924.                                             }
  4925.                                         }
  4926.                                     }
  4927.                                 },
  4928.                                 abrupt: function (e, t) {
  4929.                                     for (var i = this.tryEntries.length - 1; i >= 0; --i) {
  4930.                                         var n = this.tryEntries[i];
  4931.                                         if (n.tryLoc <= this.prev && y.call(n, "finallyLoc") && this.prev < n.finallyLoc) {
  4932.                                             var r = n;
  4933.                                             break;
  4934.                                         }
  4935.                                     }
  4936.                                     r && ("break" === e || "continue" === e) && r.tryLoc <= t && t <= r.finallyLoc && (r = null);
  4937.                                     var o = r ? r.completion : {};
  4938.                                     return (o.type = e), (o.arg = t), r ? (this.next = r.finallyLoc) : this.complete(o), E;
  4939.                                 },
  4940.                                 complete: function (e, t) {
  4941.                                     if ("throw" === e.type) throw e.arg;
  4942.                                     "break" === e.type || "continue" === e.type ? (this.next = e.arg) : "return" === e.type ? ((this.rval = e.arg), (this.next = "end")) : "normal" === e.type && t && (this.next = t);
  4943.                                 },
  4944.                                 finish: function (e) {
  4945.                                     for (var t = this.tryEntries.length - 1; t >= 0; --t) {
  4946.                                         var i = this.tryEntries[t];
  4947.                                         if (i.finallyLoc === e) return this.complete(i.completion, i.afterLoc), f(i), E;
  4948.                                     }
  4949.                                 },
  4950.                                 catch: function (e) {
  4951.                                     for (var t = this.tryEntries.length - 1; t >= 0; --t) {
  4952.                                         var i = this.tryEntries[t];
  4953.                                         if (i.tryLoc === e) {
  4954.                                             var n = i.completion;
  4955.                                             if ("throw" === n.type) {
  4956.                                                 var r = n.arg;
  4957.                                                 f(i);
  4958.                                             }
  4959.                                             return r;
  4960.                                         }
  4961.                                     }
  4962.                                     throw new Error("illegal catch attempt");
  4963.                                 },
  4964.                                 delegateYield: function (e, t, i) {
  4965.                                     return (this.delegate = {
  4966.                                         iterator: m(e),
  4967.                                         resultName: t,
  4968.                                         nextLoc: i
  4969.                                     }), E;
  4970.                                 },
  4971.                             });
  4972.                     })("object" == typeof i ? i : "object" == typeof window ? window : "object" == typeof self ? self : this);
  4973.                 }.call(this, e("_process"), "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}));
  4974.             },
  4975.             {
  4976.                 _process: 189
  4977.             },
  4978.         ],
  4979.         187: [
  4980.             function (e, t, i) {
  4981.                 t.exports = e("./lib/polyfill");
  4982.             },
  4983.             {
  4984.                 "./lib/polyfill": 1
  4985.             },
  4986.         ],
  4987.         188: [
  4988.             function (e, t, i) {
  4989.                 function n() {
  4990.                     (this._events = this._events || {}), (this._maxListeners = this._maxListeners || void 0);
  4991.                 }
  4992.  
  4993.                 function r(e) {
  4994.                     return "function" == typeof e;
  4995.                 }
  4996.  
  4997.                 function o(e) {
  4998.                     return "number" == typeof e;
  4999.                 }
  5000.  
  5001.                 function a(e) {
  5002.                     return "object" == typeof e && null !== e;
  5003.                 }
  5004.  
  5005.                 function s(e) {
  5006.                     return void 0 === e;
  5007.                 }
  5008.                 (t.exports = n),
  5009.                 (n.EventEmitter = n),
  5010.                 (n.prototype._events = void 0),
  5011.                 (n.prototype._maxListeners = void 0),
  5012.                 (n.defaultMaxListeners = 10),
  5013.                 (n.prototype.setMaxListeners = function (e) {
  5014.                     if (!o(e) || 0 > e || isNaN(e)) throw TypeError("n must be a positive number");
  5015.                     return (this._maxListeners = e), this;
  5016.                 }),
  5017.                 (n.prototype.emit = function (e) {
  5018.                     var t, i, n, o, l, c;
  5019.                     if ((this._events || (this._events = {}), "error" === e && (!this._events.error || (a(this._events.error) && !this._events.error.length)))) {
  5020.                         if (((t = arguments[1]), t instanceof Error)) throw t;
  5021.                         throw TypeError('Uncaught, unspecified "error" event.');
  5022.                     }
  5023.                     if (((i = this._events[e]), s(i))) return !1;
  5024.                     if (r(i))
  5025.                         switch (arguments.length) {
  5026.                         case 1:
  5027.                             i.call(this);
  5028.                             break;
  5029.                         case 2:
  5030.                             i.call(this, arguments[1]);
  5031.                             break;
  5032.                         case 3:
  5033.                             i.call(this, arguments[1], arguments[2]);
  5034.                             break;
  5035.                         default:
  5036.                             for (n = arguments.length, o = new Array(n - 1), l = 1; n > l; l++) o[l - 1] = arguments[l];
  5037.                             i.apply(this, o);
  5038.                         }
  5039.                     else if (a(i)) {
  5040.                         for (n = arguments.length, o = new Array(n - 1), l = 1; n > l; l++) o[l - 1] = arguments[l];
  5041.                         for (c = i.slice(), n = c.length, l = 0; n > l; l++) c[l].apply(this, o);
  5042.                     }
  5043.                     return !0;
  5044.                 }),
  5045.                 (n.prototype.addListener = function (e, t) {
  5046.                     var i;
  5047.                     if (!r(t)) throw TypeError("listener must be a function");
  5048.                     if (
  5049.                         (this._events || (this._events = {}),
  5050.                             this._events.newListener && this.emit("newListener", e, r(t.listener) ? t.listener : t),
  5051.                             this._events[e] ? (a(this._events[e]) ? this._events[e].push(t) : (this._events[e] = [this._events[e], t])) : (this._events[e] = t),
  5052.                             a(this._events[e]) && !this._events[e].warned)
  5053.                     ) {
  5054.                         var i;
  5055.                         (i = s(this._maxListeners) ? n.defaultMaxListeners : this._maxListeners),
  5056.                         i &&
  5057.                             i > 0 &&
  5058.                             this._events[e].length > i &&
  5059.                             ((this._events[e].warned = !0),
  5060.                                 console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.", this._events[e].length),
  5061.                                 "function" == typeof console.trace && console.trace());
  5062.                     }
  5063.                     return this;
  5064.                 }),
  5065.                 (n.prototype.on = n.prototype.addListener),
  5066.                 (n.prototype.once = function (e, t) {
  5067.                     function i() {
  5068.                         this.removeListener(e, i), n || ((n = !0), t.apply(this, arguments));
  5069.                     }
  5070.                     if (!r(t)) throw TypeError("listener must be a function");
  5071.                     var n = !1;
  5072.                     return (i.listener = t), this.on(e, i), this;
  5073.                 }),
  5074.                 (n.prototype.removeListener = function (e, t) {
  5075.                     var i, n, o, s;
  5076.                     if (!r(t)) throw TypeError("listener must be a function");
  5077.                     if (!this._events || !this._events[e]) return this;
  5078.                     if (((i = this._events[e]), (o = i.length), (n = -1), i === t || (r(i.listener) && i.listener === t))) delete this._events[e], this._events.removeListener && this.emit("removeListener", e, t);
  5079.                     else if (a(i)) {
  5080.                         for (s = o; s-- > 0;)
  5081.                             if (i[s] === t || (i[s].listener && i[s].listener === t)) {
  5082.                                 n = s;
  5083.                                 break;
  5084.                             }
  5085.                         if (0 > n) return this;
  5086.                         1 === i.length ? ((i.length = 0), delete this._events[e]) : i.splice(n, 1), this._events.removeListener && this.emit("removeListener", e, t);
  5087.                     }
  5088.                     return this;
  5089.                 }),
  5090.                 (n.prototype.removeAllListeners = function (e) {
  5091.                     var t, i;
  5092.                     if (!this._events) return this;
  5093.                     if (!this._events.removeListener) return 0 === arguments.length ? (this._events = {}) : this._events[e] && delete this._events[e], this;
  5094.                     if (0 === arguments.length) {
  5095.                         for (t in this._events) "removeListener" !== t && this.removeAllListeners(t);
  5096.                         return this.removeAllListeners("removeListener"), (this._events = {}), this;
  5097.                     }
  5098.                     if (((i = this._events[e]), r(i))) this.removeListener(e, i);
  5099.                     else
  5100.                         for (; i.length;) this.removeListener(e, i[i.length - 1]);
  5101.                     return delete this._events[e], this;
  5102.                 }),
  5103.                 (n.prototype.listeners = function (e) {
  5104.                     var t;
  5105.                     return (t = this._events && this._events[e] ? (r(this._events[e]) ? [this._events[e]] : this._events[e].slice()) : []);
  5106.                 }),
  5107.                 (n.listenerCount = function (e, t) {
  5108.                     var i;
  5109.                     return (i = e._events && e._events[t] ? (r(e._events[t]) ? 1 : e._events[t].length) : 0);
  5110.                 });
  5111.             },
  5112.             {},
  5113.         ],
  5114.         189: [
  5115.             function (e, t, i) {
  5116.                 function n() {
  5117.                     (u = !1), s.length ? (c = s.concat(c)) : (h = -1), c.length && r();
  5118.                 }
  5119.  
  5120.                 function r() {
  5121.                     if (!u) {
  5122.                         var e = setTimeout(n);
  5123.                         u = !0;
  5124.                         for (var t = c.length; t;) {
  5125.                             for (s = c, c = []; ++h < t;) s && s[h].run();
  5126.                             (h = -1), (t = c.length);
  5127.                         }
  5128.                         (s = null), (u = !1), clearTimeout(e);
  5129.                     }
  5130.                 }
  5131.  
  5132.                 function o(e, t) {
  5133.                     (this.fun = e), (this.array = t);
  5134.                 }
  5135.  
  5136.                 function a() {}
  5137.                 var s,
  5138.                     l = (t.exports = {}),
  5139.                     c = [],
  5140.                     u = !1,
  5141.                     h = -1;
  5142.                 (l.nextTick = function (e) {
  5143.                     var t = new Array(arguments.length - 1);
  5144.                     if (arguments.length > 1)
  5145.                         for (var i = 1; i < arguments.length; i++) t[i - 1] = arguments[i];
  5146.                     c.push(new o(e, t)), 1 !== c.length || u || setTimeout(r, 0);
  5147.                 }),
  5148.                 (o.prototype.run = function () {
  5149.                     this.fun.apply(null, this.array);
  5150.                 }),
  5151.                 (l.title = "browser"),
  5152.                 (l.browser = !0),
  5153.                 (l.env = {}),
  5154.                 (l.argv = []),
  5155.                 (l.version = ""),
  5156.                 (l.versions = {}),
  5157.                 (l.on = a),
  5158.                 (l.addListener = a),
  5159.                 (l.once = a),
  5160.                 (l.off = a),
  5161.                 (l.removeListener = a),
  5162.                 (l.removeAllListeners = a),
  5163.                 (l.emit = a),
  5164.                 (l.binding = function (e) {
  5165.                     throw new Error("process.binding is not supported");
  5166.                 }),
  5167.                 (l.cwd = function () {
  5168.                     return "/";
  5169.                 }),
  5170.                 (l.chdir = function (e) {
  5171.                     throw new Error("process.chdir is not supported");
  5172.                 }),
  5173.                 (l.umask = function () {
  5174.                     return 0;
  5175.                 });
  5176.             },
  5177.             {},
  5178.         ],
  5179.         190: [
  5180.             function (e, t, i) {
  5181.                 (t.exports = e("./vendor/dat.gui")), (t.exports.color = e("./vendor/dat.color"));
  5182.             },
  5183.             {
  5184.                 "./vendor/dat.color": 191,
  5185.                 "./vendor/dat.gui": 192
  5186.             },
  5187.         ],
  5188.         191: [
  5189.             function (e, t, i) {
  5190.                 var n = (t.exports = n || {});
  5191.                 (n.color = n.color || {}),
  5192.                 (n.utils = n.utils || {}),
  5193.                 (n.utils.common = (function () {
  5194.                     var e = Array.prototype.forEach,
  5195.                         t = Array.prototype.slice;
  5196.                     return {
  5197.                         BREAK: {},
  5198.                         extend: function (e) {
  5199.                             return (
  5200.                                 this.each(
  5201.                                     t.call(arguments, 1),
  5202.                                     function (t) {
  5203.                                         for (var i in t) this.isUndefined(t[i]) || (e[i] = t[i]);
  5204.                                     },
  5205.                                     this
  5206.                                 ),
  5207.                                 e
  5208.                             );
  5209.                         },
  5210.                         defaults: function (e) {
  5211.                             return (
  5212.                                 this.each(
  5213.                                     t.call(arguments, 1),
  5214.                                     function (t) {
  5215.                                         for (var i in t) this.isUndefined(e[i]) && (e[i] = t[i]);
  5216.                                     },
  5217.                                     this
  5218.                                 ),
  5219.                                 e
  5220.                             );
  5221.                         },
  5222.                         compose: function () {
  5223.                             var e = t.call(arguments);
  5224.                             return function () {
  5225.                                 for (var i = t.call(arguments), n = e.length - 1; n >= 0; n--) i = [e[n].apply(this, i)];
  5226.                                 return i[0];
  5227.                             };
  5228.                         },
  5229.                         each: function (t, i, n) {
  5230.                             if (e && t.forEach === e) t.forEach(i, n);
  5231.                             else if (t.length === t.length + 0) {
  5232.                                 for (var r = 0, o = t.length; o > r; r++)
  5233.                                     if (r in t && i.call(n, t[r], r) === this.BREAK) return;
  5234.                             } else
  5235.                                 for (var r in t)
  5236.                                     if (i.call(n, t[r], r) === this.BREAK) return;
  5237.                         },
  5238.                         defer: function (e) {
  5239.                             setTimeout(e, 0);
  5240.                         },
  5241.                         toArray: function (e) {
  5242.                             return e.toArray ? e.toArray() : t.call(e);
  5243.                         },
  5244.                         isUndefined: function (e) {
  5245.                             return void 0 === e;
  5246.                         },
  5247.                         isNull: function (e) {
  5248.                             return null === e;
  5249.                         },
  5250.                         isNaN: function (e) {
  5251.                             return e !== e;
  5252.                         },
  5253.                         isArray: Array.isArray ||
  5254.                             function (e) {
  5255.                                 return e.constructor === Array;
  5256.                             },
  5257.                         isObject: function (e) {
  5258.                             return e === Object(e);
  5259.                         },
  5260.                         isNumber: function (e) {
  5261.                             return e === e + 0;
  5262.                         },
  5263.                         isString: function (e) {
  5264.                             return e === e + "";
  5265.                         },
  5266.                         isBoolean: function (e) {
  5267.                             return e === !1 || e === !0;
  5268.                         },
  5269.                         isFunction: function (e) {
  5270.                             return "[object Function]" === Object.prototype.toString.call(e);
  5271.                         },
  5272.                     };
  5273.                 })()),
  5274.                 (n.color.toString = (function (e) {
  5275.                     return function (t) {
  5276.                         if (1 == t.a || e.isUndefined(t.a)) {
  5277.                             for (var i = t.hex.toString(16); i.length < 6;) i = "0" + i;
  5278.                             return "#" + i;
  5279.                         }
  5280.                         return "rgba(" + Math.round(t.r) + "," + Math.round(t.g) + "," + Math.round(t.b) + "," + t.a + ")";
  5281.                     };
  5282.                 })(n.utils.common)),
  5283.                 (n.Color = n.color.Color = (function (e, t, i, n) {
  5284.                     function r(e, t, i) {
  5285.                         Object.defineProperty(e, t, {
  5286.                             get: function () {
  5287.                                 return "RGB" === this.__state.space ? this.__state[t] : (a(this, t, i), this.__state[t]);
  5288.                             },
  5289.                             set: function (e) {
  5290.                                 "RGB" !== this.__state.space && (a(this, t, i), (this.__state.space = "RGB")), (this.__state[t] = e);
  5291.                             },
  5292.                         });
  5293.                     }
  5294.  
  5295.                     function o(e, t) {
  5296.                         Object.defineProperty(e, t, {
  5297.                             get: function () {
  5298.                                 return "HSV" === this.__state.space ? this.__state[t] : (s(this), this.__state[t]);
  5299.                             },
  5300.                             set: function (e) {
  5301.                                 "HSV" !== this.__state.space && (s(this), (this.__state.space = "HSV")), (this.__state[t] = e);
  5302.                             },
  5303.                         });
  5304.                     }
  5305.  
  5306.                     function a(e, i, r) {
  5307.                         if ("HEX" === e.__state.space) e.__state[i] = t.component_from_hex(e.__state.hex, r);
  5308.                         else {
  5309.                             if ("HSV" !== e.__state.space) throw "Corrupted color state";
  5310.                             n.extend(e.__state, t.hsv_to_rgb(e.__state.h, e.__state.s, e.__state.v));
  5311.                         }
  5312.                     }
  5313.  
  5314.                     function s(e) {
  5315.                         var i = t.rgb_to_hsv(e.r, e.g, e.b);
  5316.                         n.extend(e.__state, {
  5317.                             s: i.s,
  5318.                             v: i.v
  5319.                         }), n.isNaN(i.h) ? n.isUndefined(e.__state.h) && (e.__state.h = 0) : (e.__state.h = i.h);
  5320.                     }
  5321.                     var l = function () {
  5322.                         if (((this.__state = e.apply(this, arguments)), this.__state === !1)) throw "Failed to interpret color arguments";
  5323.                         this.__state.a = this.__state.a || 1;
  5324.                     };
  5325.                     return (
  5326.                         (l.COMPONENTS = ["r", "g", "b", "h", "s", "v", "hex", "a"]),
  5327.                         n.extend(l.prototype, {
  5328.                             toString: function () {
  5329.                                 return i(this);
  5330.                             },
  5331.                             toOriginal: function () {
  5332.                                 return this.__state.conversion.write(this);
  5333.                             },
  5334.                         }),
  5335.                         r(l.prototype, "r", 2),
  5336.                         r(l.prototype, "g", 1),
  5337.                         r(l.prototype, "b", 0),
  5338.                         o(l.prototype, "h"),
  5339.                         o(l.prototype, "s"),
  5340.                         o(l.prototype, "v"),
  5341.                         Object.defineProperty(l.prototype, "a", {
  5342.                             get: function () {
  5343.                                 return this.__state.a;
  5344.                             },
  5345.                             set: function (e) {
  5346.                                 this.__state.a = e;
  5347.                             },
  5348.                         }),
  5349.                         Object.defineProperty(l.prototype, "hex", {
  5350.                             get: function () {
  5351.                                 return "HEX" !== !this.__state.space && (this.__state.hex = t.rgb_to_hex(this.r, this.g, this.b)), this.__state.hex;
  5352.                             },
  5353.                             set: function (e) {
  5354.                                 (this.__state.space = "HEX"), (this.__state.hex = e);
  5355.                             },
  5356.                         }),
  5357.                         l
  5358.                     );
  5359.                 })(
  5360.                     (n.color.interpret = (function (e, t) {
  5361.                         var i,
  5362.                             n,
  5363.                             r = function () {
  5364.                                 n = !1;
  5365.                                 var e = arguments.length > 1 ? t.toArray(arguments) : arguments[0];
  5366.                                 return (
  5367.                                     t.each(o, function (r) {
  5368.                                         return r.litmus(e) ?
  5369.                                             (t.each(r.conversions, function (r, o) {
  5370.                                                     return (i = r.read(e)), n === !1 && i !== !1 ? ((n = i), (i.conversionName = o), (i.conversion = r), t.BREAK) : void 0;
  5371.                                                 }),
  5372.                                                 t.BREAK) :
  5373.                                             void 0;
  5374.                                     }),
  5375.                                     n
  5376.                                 );
  5377.                             },
  5378.                             o = [{
  5379.                                     litmus: t.isString,
  5380.                                     conversions: {
  5381.                                         THREE_CHAR_HEX: {
  5382.                                             read: function (e) {
  5383.                                                 var t = e.match(/^#([A-F0-9])([A-F0-9])([A-F0-9])$/i);
  5384.                                                 return null === t ? !1 : {
  5385.                                                     space: "HEX",
  5386.                                                     hex: parseInt("0x" + t[1].toString() + t[1].toString() + t[2].toString() + t[2].toString() + t[3].toString() + t[3].toString())
  5387.                                                 };
  5388.                                             },
  5389.                                             write: e,
  5390.                                         },
  5391.                                         SIX_CHAR_HEX: {
  5392.                                             read: function (e) {
  5393.                                                 var t = e.match(/^#([A-F0-9]{6})$/i);
  5394.                                                 return null === t ? !1 : {
  5395.                                                     space: "HEX",
  5396.                                                     hex: parseInt("0x" + t[1].toString())
  5397.                                                 };
  5398.                                             },
  5399.                                             write: e,
  5400.                                         },
  5401.                                         CSS_RGB: {
  5402.                                             read: function (e) {
  5403.                                                 var t = e.match(/^rgb(s*(.+)s*,s*(.+)s*,s*(.+)s*)/);
  5404.                                                 return null === t ? !1 : {
  5405.                                                     space: "RGB",
  5406.                                                     r: parseFloat(t[1]),
  5407.                                                     g: parseFloat(t[2]),
  5408.                                                     b: parseFloat(t[3])
  5409.                                                 };
  5410.                                             },
  5411.                                             write: e,
  5412.                                         },
  5413.                                         CSS_RGBA: {
  5414.                                             read: function (e) {
  5415.                                                 var t = e.match(/^rgba(s*(.+)s*,s*(.+)s*,s*(.+)s*,s*(.+)s*)/);
  5416.                                                 return null === t ? !1 : {
  5417.                                                     space: "RGB",
  5418.                                                     r: parseFloat(t[1]),
  5419.                                                     g: parseFloat(t[2]),
  5420.                                                     b: parseFloat(t[3]),
  5421.                                                     a: parseFloat(t[4])
  5422.                                                 };
  5423.                                             },
  5424.                                             write: e,
  5425.                                         },
  5426.                                     },
  5427.                                 },
  5428.                                 {
  5429.                                     litmus: t.isNumber,
  5430.                                     conversions: {
  5431.                                         HEX: {
  5432.                                             read: function (e) {
  5433.                                                 return {
  5434.                                                     space: "HEX",
  5435.                                                     hex: e,
  5436.                                                     conversionName: "HEX"
  5437.                                                 };
  5438.                                             },
  5439.                                             write: function (e) {
  5440.                                                 return e.hex;
  5441.                                             },
  5442.                                         },
  5443.                                     },
  5444.                                 },
  5445.                                 {
  5446.                                     litmus: t.isArray,
  5447.                                     conversions: {
  5448.                                         RGB_ARRAY: {
  5449.                                             read: function (e) {
  5450.                                                 return 3 != e.length ? !1 : {
  5451.                                                     space: "RGB",
  5452.                                                     r: e[0],
  5453.                                                     g: e[1],
  5454.                                                     b: e[2]
  5455.                                                 };
  5456.                                             },
  5457.                                             write: function (e) {
  5458.                                                 return [e.r, e.g, e.b];
  5459.                                             },
  5460.                                         },
  5461.                                         RGBA_ARRAY: {
  5462.                                             read: function (e) {
  5463.                                                 return 4 != e.length ? !1 : {
  5464.                                                     space: "RGB",
  5465.                                                     r: e[0],
  5466.                                                     g: e[1],
  5467.                                                     b: e[2],
  5468.                                                     a: e[3]
  5469.                                                 };
  5470.                                             },
  5471.                                             write: function (e) {
  5472.                                                 return [e.r, e.g, e.b, e.a];
  5473.                                             },
  5474.                                         },
  5475.                                     },
  5476.                                 },
  5477.                                 {
  5478.                                     litmus: t.isObject,
  5479.                                     conversions: {
  5480.                                         RGBA_OBJ: {
  5481.                                             read: function (e) {
  5482.                                                 return t.isNumber(e.r) && t.isNumber(e.g) && t.isNumber(e.b) && t.isNumber(e.a) ? {
  5483.                                                     space: "RGB",
  5484.                                                     r: e.r,
  5485.                                                     g: e.g,
  5486.                                                     b: e.b,
  5487.                                                     a: e.a
  5488.                                                 } : !1;
  5489.                                             },
  5490.                                             write: function (e) {
  5491.                                                 return {
  5492.                                                     r: e.r,
  5493.                                                     g: e.g,
  5494.                                                     b: e.b,
  5495.                                                     a: e.a
  5496.                                                 };
  5497.                                             },
  5498.                                         },
  5499.                                         RGB_OBJ: {
  5500.                                             read: function (e) {
  5501.                                                 return t.isNumber(e.r) && t.isNumber(e.g) && t.isNumber(e.b) ? {
  5502.                                                     space: "RGB",
  5503.                                                     r: e.r,
  5504.                                                     g: e.g,
  5505.                                                     b: e.b
  5506.                                                 } : !1;
  5507.                                             },
  5508.                                             write: function (e) {
  5509.                                                 return {
  5510.                                                     r: e.r,
  5511.                                                     g: e.g,
  5512.                                                     b: e.b
  5513.                                                 };
  5514.                                             },
  5515.                                         },
  5516.                                         HSVA_OBJ: {
  5517.                                             read: function (e) {
  5518.                                                 return t.isNumber(e.h) && t.isNumber(e.s) && t.isNumber(e.v) && t.isNumber(e.a) ? {
  5519.                                                     space: "HSV",
  5520.                                                     h: e.h,
  5521.                                                     s: e.s,
  5522.                                                     v: e.v,
  5523.                                                     a: e.a
  5524.                                                 } : !1;
  5525.                                             },
  5526.                                             write: function (e) {
  5527.                                                 return {
  5528.                                                     h: e.h,
  5529.                                                     s: e.s,
  5530.                                                     v: e.v,
  5531.                                                     a: e.a
  5532.                                                 };
  5533.                                             },
  5534.                                         },
  5535.                                         HSV_OBJ: {
  5536.                                             read: function (e) {
  5537.                                                 return t.isNumber(e.h) && t.isNumber(e.s) && t.isNumber(e.v) ? {
  5538.                                                     space: "HSV",
  5539.                                                     h: e.h,
  5540.                                                     s: e.s,
  5541.                                                     v: e.v
  5542.                                                 } : !1;
  5543.                                             },
  5544.                                             write: function (e) {
  5545.                                                 return {
  5546.                                                     h: e.h,
  5547.                                                     s: e.s,
  5548.                                                     v: e.v
  5549.                                                 };
  5550.                                             },
  5551.                                         },
  5552.                                     },
  5553.                                 },
  5554.                             ];
  5555.                         return r;
  5556.                     })(n.color.toString, n.utils.common)),
  5557.                     (n.color.math = (function () {
  5558.                         var e;
  5559.                         return {
  5560.                             hsv_to_rgb: function (e, t, i) {
  5561.                                 var n = Math.floor(e / 60) % 6,
  5562.                                     r = e / 60 - Math.floor(e / 60),
  5563.                                     o = i * (1 - t),
  5564.                                     a = i * (1 - r * t),
  5565.                                     s = i * (1 - (1 - r) * t),
  5566.                                     l = [
  5567.                                         [i, s, o],
  5568.                                         [a, i, o],
  5569.                                         [o, i, s],
  5570.                                         [o, a, i],
  5571.                                         [s, o, i],
  5572.                                         [i, o, a],
  5573.                                     ][n];
  5574.                                 return {
  5575.                                     r: 255 * l[0],
  5576.                                     g: 255 * l[1],
  5577.                                     b: 255 * l[2]
  5578.                                 };
  5579.                             },
  5580.                             rgb_to_hsv: function (e, t, i) {
  5581.                                 var n,
  5582.                                     r,
  5583.                                     o = Math.min(e, t, i),
  5584.                                     a = Math.max(e, t, i),
  5585.                                     s = a - o;
  5586.                                 return 0 == a ? {
  5587.                                     h: NaN,
  5588.                                     s: 0,
  5589.                                     v: 0
  5590.                                 } : ((r = s / a), (n = e == a ? (t - i) / s : t == a ? 2 + (i - e) / s : 4 + (e - t) / s), (n /= 6), 0 > n && (n += 1), {
  5591.                                     h: 360 * n,
  5592.                                     s: r,
  5593.                                     v: a / 255
  5594.                                 });
  5595.                             },
  5596.                             rgb_to_hex: function (e, t, i) {
  5597.                                 var n = this.hex_with_component(0, 2, e);
  5598.                                 return (n = this.hex_with_component(n, 1, t)), (n = this.hex_with_component(n, 0, i));
  5599.                             },
  5600.                             component_from_hex: function (e, t) {
  5601.                                 return (e >> (8 * t)) & 255;
  5602.                             },
  5603.                             hex_with_component: function (t, i, n) {
  5604.                                 return (n << (e = 8 * i)) | (t & ~(255 << e));
  5605.                             },
  5606.                         };
  5607.                     })()),
  5608.                     n.color.toString,
  5609.                     n.utils.common
  5610.                 ));
  5611.             },
  5612.             {},
  5613.         ],
  5614.         192: [
  5615.             function (e, t, i) {
  5616.                 var n = (t.exports = n || {});
  5617.                 (n.gui = n.gui || {}),
  5618.                 (n.utils = n.utils || {}),
  5619.                 (n.controllers = n.controllers || {}),
  5620.                 (n.dom = n.dom || {}),
  5621.                 (n.color = n.color || {}),
  5622.                 (n.utils.css = (function () {
  5623.                     return {
  5624.                         load: function (e, t) {
  5625.                             t = t || document;
  5626.                             var i = t.createElement("link");
  5627.                             (i.type = "text/css"), (i.rel = "stylesheet"), (i.href = e), t.getElementsByTagName("head")[0].appendChild(i);
  5628.                         },
  5629.                         inject: function (e, t) {
  5630.                             t = t || document;
  5631.                             var i = document.createElement("style");
  5632.                             (i.type = "text/css"), (i.innerHTML = e), t.getElementsByTagName("head")[0].appendChild(i);
  5633.                         },
  5634.                     };
  5635.                 })()),
  5636.                 (n.utils.common = (function () {
  5637.                     var e = Array.prototype.forEach,
  5638.                         t = Array.prototype.slice;
  5639.                     return {
  5640.                         BREAK: {},
  5641.                         extend: function (e) {
  5642.                             return (
  5643.                                 this.each(
  5644.                                     t.call(arguments, 1),
  5645.                                     function (t) {
  5646.                                         for (var i in t) this.isUndefined(t[i]) || (e[i] = t[i]);
  5647.                                     },
  5648.                                     this
  5649.                                 ),
  5650.                                 e
  5651.                             );
  5652.                         },
  5653.                         defaults: function (e) {
  5654.                             return (
  5655.                                 this.each(
  5656.                                     t.call(arguments, 1),
  5657.                                     function (t) {
  5658.                                         for (var i in t) this.isUndefined(e[i]) && (e[i] = t[i]);
  5659.                                     },
  5660.                                     this
  5661.                                 ),
  5662.                                 e
  5663.                             );
  5664.                         },
  5665.                         compose: function () {
  5666.                             var e = t.call(arguments);
  5667.                             return function () {
  5668.                                 for (var i = t.call(arguments), n = e.length - 1; n >= 0; n--) i = [e[n].apply(this, i)];
  5669.                                 return i[0];
  5670.                             };
  5671.                         },
  5672.                         each: function (t, i, n) {
  5673.                             if (e && t.forEach === e) t.forEach(i, n);
  5674.                             else if (t.length === t.length + 0) {
  5675.                                 for (var r = 0, o = t.length; o > r; r++)
  5676.                                     if (r in t && i.call(n, t[r], r) === this.BREAK) return;
  5677.                             } else
  5678.                                 for (var r in t)
  5679.                                     if (i.call(n, t[r], r) === this.BREAK) return;
  5680.                         },
  5681.                         defer: function (e) {
  5682.                             setTimeout(e, 0);
  5683.                         },
  5684.                         toArray: function (e) {
  5685.                             return e.toArray ? e.toArray() : t.call(e);
  5686.                         },
  5687.                         isUndefined: function (e) {
  5688.                             return void 0 === e;
  5689.                         },
  5690.                         isNull: function (e) {
  5691.                             return null === e;
  5692.                         },
  5693.                         isNaN: function (e) {
  5694.                             return e !== e;
  5695.                         },
  5696.                         isArray: Array.isArray ||
  5697.                             function (e) {
  5698.                                 return e.constructor === Array;
  5699.                             },
  5700.                         isObject: function (e) {
  5701.                             return e === Object(e);
  5702.                         },
  5703.                         isNumber: function (e) {
  5704.                             return e === e + 0;
  5705.                         },
  5706.                         isString: function (e) {
  5707.                             return e === e + "";
  5708.                         },
  5709.                         isBoolean: function (e) {
  5710.                             return e === !1 || e === !0;
  5711.                         },
  5712.                         isFunction: function (e) {
  5713.                             return "[object Function]" === Object.prototype.toString.call(e);
  5714.                         },
  5715.                     };
  5716.                 })()),
  5717.                 (n.controllers.Controller = (function (e) {
  5718.                     var t = function (e, t) {
  5719.                         (this.initialValue = e[t]), (this.domElement = document.createElement("div")), (this.object = e), (this.property = t), (this.__onChange = void 0), (this.__onFinishChange = void 0);
  5720.                     };
  5721.                     return (
  5722.                         e.extend(t.prototype, {
  5723.                             onChange: function (e) {
  5724.                                 return (this.__onChange = e), this;
  5725.                             },
  5726.                             onFinishChange: function (e) {
  5727.                                 return (this.__onFinishChange = e), this;
  5728.                             },
  5729.                             setValue: function (e) {
  5730.                                 return (this.object[this.property] = e), this.__onChange && this.__onChange.call(this, e), this.updateDisplay(), this;
  5731.                             },
  5732.                             getValue: function () {
  5733.                                 return this.object[this.property];
  5734.                             },
  5735.                             updateDisplay: function () {
  5736.                                 return this;
  5737.                             },
  5738.                             isModified: function () {
  5739.                                 return this.initialValue !== this.getValue();
  5740.                             },
  5741.                         }),
  5742.                         t
  5743.                     );
  5744.                 })(n.utils.common)),
  5745.                 (n.dom.dom = (function (e) {
  5746.                     function t(t) {
  5747.                         if ("0" === t || e.isUndefined(t)) return 0;
  5748.                         var i = t.match(r);
  5749.                         return e.isNull(i) ? 0 : parseFloat(i[1]);
  5750.                     }
  5751.                     var i = {
  5752.                             HTMLEvents: ["change"],
  5753.                             MouseEvents: ["click", "mousemove", "mousedown", "mouseup", "mouseover"],
  5754.                             KeyboardEvents: ["keydown"]
  5755.                         },
  5756.                         n = {};
  5757.                     e.each(i, function (t, i) {
  5758.                         e.each(t, function (e) {
  5759.                             n[e] = i;
  5760.                         });
  5761.                     });
  5762.                     var r = /(d+(.d+)?)px/,
  5763.                         o = {
  5764.                             makeSelectable: function (e, t) {
  5765.                                 void 0 !== e &&
  5766.                                     void 0 !== e.style &&
  5767.                                     ((e.onselectstart = t ?
  5768.                                             function () {
  5769.                                                 return !1;
  5770.                                             } :
  5771.                                             function () {}),
  5772.                                         (e.style.MozUserSelect = t ? "auto" : "none"),
  5773.                                         (e.style.KhtmlUserSelect = t ? "auto" : "none"),
  5774.                                         (e.unselectable = t ? "on" : "off"));
  5775.                             },
  5776.                             makeFullscreen: function (t, i, n) {
  5777.                                 e.isUndefined(i) && (i = !0), e.isUndefined(n) && (n = !0), (t.style.position = "absolute"), i && ((t.style.left = 0), (t.style.right = 0)), n && ((t.style.top = 0), (t.style.bottom = 0));
  5778.                             },
  5779.                             fakeEvent: function (t, i, r, o) {
  5780.                                 r = r || {};
  5781.                                 var a = n[i];
  5782.                                 if (!a) throw new Error("Event type " + i + " not supported.");
  5783.                                 var s = document.createEvent(a);
  5784.                                 switch (a) {
  5785.                                 case "MouseEvents":
  5786.                                     var l = r.x || r.clientX || 0,
  5787.                                         c = r.y || r.clientY || 0;
  5788.                                     s.initMouseEvent(i, r.bubbles || !1, r.cancelable || !0, window, r.clickCount || 1, 0, 0, l, c, !1, !1, !1, !1, 0, null);
  5789.                                     break;
  5790.                                 case "KeyboardEvents":
  5791.                                     var u = s.initKeyboardEvent || s.initKeyEvent;
  5792.                                     e.defaults(r, {
  5793.                                             cancelable: !0,
  5794.                                             ctrlKey: !1,
  5795.                                             altKey: !1,
  5796.                                             shiftKey: !1,
  5797.                                             metaKey: !1,
  5798.                                             keyCode: void 0,
  5799.                                             charCode: void 0
  5800.                                         }),
  5801.                                         u(i, r.bubbles || !1, r.cancelable, window, r.ctrlKey, r.altKey, r.shiftKey, r.metaKey, r.keyCode, r.charCode);
  5802.                                     break;
  5803.                                 default:
  5804.                                     s.initEvent(i, r.bubbles || !1, r.cancelable || !0);
  5805.                                 }
  5806.                                 e.defaults(s, o), t.dispatchEvent(s);
  5807.                             },
  5808.                             bind: function (e, t, i, n) {
  5809.                                 return (n = n || !1), e.addEventListener ? e.addEventListener(t, i, n) : e.attachEvent && e.attachEvent("on" + t, i), o;
  5810.                             },
  5811.                             unbind: function (e, t, i, n) {
  5812.                                 return (n = n || !1), e.removeEventListener ? e.removeEventListener(t, i, n) : e.detachEvent && e.detachEvent("on" + t, i), o;
  5813.                             },
  5814.                             addClass: function (e, t) {
  5815.                                 if (void 0 === e.className) e.className = t;
  5816.                                 else if (e.className !== t) {
  5817.                                     var i = e.className.split(/ +/); -
  5818.                                     1 == i.indexOf(t) && (i.push(t), (e.className = i.join(" ").replace(/^s+/, "").replace(/s+$/, "")));
  5819.                                 }
  5820.                                 return o;
  5821.                             },
  5822.                             removeClass: function (e, t) {
  5823.                                 if (t)
  5824.                                     if (void 0 === e.className);
  5825.                                     else if (e.className === t) e.removeAttribute("class");
  5826.                                 else {
  5827.                                     var i = e.className.split(/ +/),
  5828.                                         n = i.indexOf(t); -
  5829.                                     1 != n && (i.splice(n, 1), (e.className = i.join(" ")));
  5830.                                 } else e.className = void 0;
  5831.                                 return o;
  5832.                             },
  5833.                             hasClass: function (e, t) {
  5834.                                 return new RegExp("(?:^|\s+)" + t + "(?:\s+|$)").test(e.className) || !1;
  5835.                             },
  5836.                             getWidth: function (e) {
  5837.                                 var i = getComputedStyle(e);
  5838.                                 return t(i["border-left-width"]) + t(i["border-right-width"]) + t(i["padding-left"]) + t(i["padding-right"]) + t(i.width);
  5839.                             },
  5840.                             getHeight: function (e) {
  5841.                                 var i = getComputedStyle(e);
  5842.                                 return t(i["border-top-width"]) + t(i["border-bottom-width"]) + t(i["padding-top"]) + t(i["padding-bottom"]) + t(i.height);
  5843.                             },
  5844.                             getOffset: function (e) {
  5845.                                 var t = {
  5846.                                     left: 0,
  5847.                                     top: 0
  5848.                                 };
  5849.                                 if (e.offsetParent)
  5850.                                     do(t.left += e.offsetLeft), (t.top += e.offsetTop);
  5851.                                     while ((e = e.offsetParent));
  5852.                                 return t;
  5853.                             },
  5854.                             isActive: function (e) {
  5855.                                 return e === document.activeElement && (e.type || e.href);
  5856.                             },
  5857.                         };
  5858.                     return o;
  5859.                 })(n.utils.common)),
  5860.                 (n.controllers.OptionController = (function (e, t, i) {
  5861.                     var n = function (e, r, o) {
  5862.                         n.superclass.call(this, e, r);
  5863.                         var a = this;
  5864.                         if (((this.__select = document.createElement("select")), i.isArray(o))) {
  5865.                             var s = {};
  5866.                             i.each(o, function (e) {
  5867.                                     s[e] = e;
  5868.                                 }),
  5869.                                 (o = s);
  5870.                         }
  5871.                         i.each(o, function (e, t) {
  5872.                                 var i = document.createElement("option");
  5873.                                 (i.innerHTML = t), i.setAttribute("value", e), a.__select.appendChild(i);
  5874.                             }),
  5875.                             this.updateDisplay(),
  5876.                             t.bind(this.__select, "change", function () {
  5877.                                 var e = this.options[this.selectedIndex].value;
  5878.                                 a.setValue(e);
  5879.                             }),
  5880.                             this.domElement.appendChild(this.__select);
  5881.                     };
  5882.                     return (
  5883.                         (n.superclass = e),
  5884.                         i.extend(n.prototype, e.prototype, {
  5885.                             setValue: function (e) {
  5886.                                 var t = n.superclass.prototype.setValue.call(this, e);
  5887.                                 return this.__onFinishChange && this.__onFinishChange.call(this, this.getValue()), t;
  5888.                             },
  5889.                             updateDisplay: function () {
  5890.                                 return (this.__select.value = this.getValue()), n.superclass.prototype.updateDisplay.call(this);
  5891.                             },
  5892.                         }),
  5893.                         n
  5894.                     );
  5895.                 })(n.controllers.Controller, n.dom.dom, n.utils.common)),
  5896.                 (n.controllers.NumberController = (function (e, t) {
  5897.                     function i(e) {
  5898.                         return (e = e.toString()), e.indexOf(".") > -1 ? e.length - e.indexOf(".") - 1 : 0;
  5899.                     }
  5900.                     var n = function (e, r, o) {
  5901.                         n.superclass.call(this, e, r),
  5902.                             (o = o || {}),
  5903.                             (this.__min = o.min),
  5904.                             (this.__max = o.max),
  5905.                             (this.__step = o.step),
  5906.                             t.isUndefined(this.__step) ?
  5907.                             0 == this.initialValue ?
  5908.                             (this.__impliedStep = 1) :
  5909.                             (this.__impliedStep = Math.pow(10, Math.floor(Math.log(this.initialValue) / Math.LN10)) / 10) :
  5910.                             (this.__impliedStep = this.__step),
  5911.                             (this.__precision = i(this.__impliedStep));
  5912.                     };
  5913.                     return (
  5914.                         (n.superclass = e),
  5915.                         t.extend(n.prototype, e.prototype, {
  5916.                             setValue: function (e) {
  5917.                                 return (
  5918.                                     void 0 !== this.__min && e < this.__min ? (e = this.__min) : void 0 !== this.__max && e > this.__max && (e = this.__max),
  5919.                                     void 0 !== this.__step && e % this.__step != 0 && (e = Math.round(e / this.__step) * this.__step),
  5920.                                     n.superclass.prototype.setValue.call(this, e)
  5921.                                 );
  5922.                             },
  5923.                             min: function (e) {
  5924.                                 return (this.__min = e), this;
  5925.                             },
  5926.                             max: function (e) {
  5927.                                 return (this.__max = e), this;
  5928.                             },
  5929.                             step: function (e) {
  5930.                                 return (this.__step = e), this;
  5931.                             },
  5932.                         }),
  5933.                         n
  5934.                     );
  5935.                 })(n.controllers.Controller, n.utils.common)),
  5936.                 (n.controllers.NumberControllerBox = (function (e, t, i) {
  5937.                     function n(e, t) {
  5938.                         var i = Math.pow(10, t);
  5939.                         return Math.round(e * i) / i;
  5940.                     }
  5941.                     var r = function (e, n, o) {
  5942.                         function a() {
  5943.                             var e = parseFloat(d.__input.value);
  5944.                             i.isNaN(e) || d.setValue(e);
  5945.                         }
  5946.  
  5947.                         function s() {
  5948.                             a(), d.__onFinishChange && d.__onFinishChange.call(d, d.getValue());
  5949.                         }
  5950.  
  5951.                         function l(e) {
  5952.                             t.bind(window, "mousemove", c), t.bind(window, "mouseup", u), (h = e.clientY);
  5953.                         }
  5954.  
  5955.                         function c(e) {
  5956.                             var t = h - e.clientY;
  5957.                             d.setValue(d.getValue() + t * d.__impliedStep), (h = e.clientY);
  5958.                         }
  5959.  
  5960.                         function u() {
  5961.                             t.unbind(window, "mousemove", c), t.unbind(window, "mouseup", u);
  5962.                         }
  5963.                         (this.__truncationSuspended = !1), r.superclass.call(this, e, n, o);
  5964.                         var h,
  5965.                             d = this;
  5966.                         (this.__input = document.createElement("input")),
  5967.                         this.__input.setAttribute("type", "text"),
  5968.                             t.bind(this.__input, "change", a),
  5969.                             t.bind(this.__input, "blur", s),
  5970.                             t.bind(this.__input, "mousedown", l),
  5971.                             t.bind(this.__input, "keydown", function (e) {
  5972.                                 13 === e.keyCode && ((d.__truncationSuspended = !0), this.blur(), (d.__truncationSuspended = !1));
  5973.                             }),
  5974.                             this.updateDisplay(),
  5975.                             this.domElement.appendChild(this.__input);
  5976.                     };
  5977.                     return (
  5978.                         (r.superclass = e),
  5979.                         i.extend(r.prototype, e.prototype, {
  5980.                             updateDisplay: function () {
  5981.                                 return (this.__input.value = this.__truncationSuspended ? this.getValue() : n(this.getValue(), this.__precision)), r.superclass.prototype.updateDisplay.call(this);
  5982.                             },
  5983.                         }),
  5984.                         r
  5985.                     );
  5986.                 })(n.controllers.NumberController, n.dom.dom, n.utils.common)),
  5987.                 (n.controllers.NumberControllerSlider = (function (e, t, i, n, r) {
  5988.                     function o(e, t, i, n, r) {
  5989.                         return n + (r - n) * ((e - t) / (i - t));
  5990.                     }
  5991.                     var a = function (e, i, n, r, s) {
  5992.                         function l(e) {
  5993.                             t.bind(window, "mousemove", c), t.bind(window, "mouseup", u), c(e);
  5994.                         }
  5995.  
  5996.                         function c(e) {
  5997.                             e.preventDefault();
  5998.                             var i = t.getOffset(h.__background),
  5999.                                 n = t.getWidth(h.__background);
  6000.                             return h.setValue(o(e.clientX, i.left, i.left + n, h.__min, h.__max)), !1;
  6001.                         }
  6002.  
  6003.                         function u() {
  6004.                             t.unbind(window, "mousemove", c), t.unbind(window, "mouseup", u), h.__onFinishChange && h.__onFinishChange.call(h, h.getValue());
  6005.                         }
  6006.                         a.superclass.call(this, e, i, {
  6007.                             min: n,
  6008.                             max: r,
  6009.                             step: s
  6010.                         });
  6011.                         var h = this;
  6012.                         (this.__background = document.createElement("div")),
  6013.                         (this.__foreground = document.createElement("div")),
  6014.                         t.bind(this.__background, "mousedown", l),
  6015.                             t.addClass(this.__background, "slider"),
  6016.                             t.addClass(this.__foreground, "slider-fg"),
  6017.                             this.updateDisplay(),
  6018.                             this.__background.appendChild(this.__foreground),
  6019.                             this.domElement.appendChild(this.__background);
  6020.                     };
  6021.                     return (
  6022.                         (a.superclass = e),
  6023.                         (a.useDefaultStyles = function () {
  6024.                             i.inject(r);
  6025.                         }),
  6026.                         n.extend(a.prototype, e.prototype, {
  6027.                             updateDisplay: function () {
  6028.                                 var e = (this.getValue() - this.__min) / (this.__max - this.__min);
  6029.                                 return (this.__foreground.style.width = 100 * e + "%"), a.superclass.prototype.updateDisplay.call(this);
  6030.                             },
  6031.                         }),
  6032.                         a
  6033.                     );
  6034.                 })(
  6035.                     n.controllers.NumberController,
  6036.                     n.dom.dom,
  6037.                     n.utils.css,
  6038.                     n.utils.common,
  6039.                     ".slider {n  box-shadow: inset 0 2px 4px rgba(0,0,0,0.15);n  height: 1em;n  border-radius: 1em;n  background-color: #eee;n  padding: 0 0.5em;n  overflow: hidden;n}nn.slider-fg {n  padding: 1px 0 2px 0;n  background-color: #aaa;n  height: 1em;n  margin-left: -0.5em;n  padding-right: 0.5em;n  border-radius: 1em 0 0 1em;n}nn.slider-fg:after {n  display: inline-block;n  border-radius: 1em;n  background-color: #fff;n  border:  1px solid #aaa;n  content: '';n  float: right;n  margin-right: -1em;n  margin-top: -1px;n  height: 0.9em;n  width: 0.9em;n}"
  6040.                 )),
  6041.                 (n.controllers.FunctionController = (function (e, t, i) {
  6042.                     var n = function (e, i, r) {
  6043.                         n.superclass.call(this, e, i);
  6044.                         var o = this;
  6045.                         (this.__button = document.createElement("div")),
  6046.                         (this.__button.innerHTML = void 0 === r ? "Fire" : r),
  6047.                         t.bind(this.__button, "click", function (e) {
  6048.                                 return e.preventDefault(), o.fire(), !1;
  6049.                             }),
  6050.                             t.addClass(this.__button, "button"),
  6051.                             this.domElement.appendChild(this.__button);
  6052.                     };
  6053.                     return (
  6054.                         (n.superclass = e),
  6055.                         i.extend(n.prototype, e.prototype, {
  6056.                             fire: function () {
  6057.                                 this.__onChange && this.__onChange.call(this), this.__onFinishChange && this.__onFinishChange.call(this, this.getValue()), this.getValue().call(this.object);
  6058.                             },
  6059.                         }),
  6060.                         n
  6061.                     );
  6062.                 })(n.controllers.Controller, n.dom.dom, n.utils.common)),
  6063.                 (n.controllers.BooleanController = (function (e, t, i) {
  6064.                     var n = function (e, i) {
  6065.                         function r() {
  6066.                             o.setValue(!o.__prev);
  6067.                         }
  6068.                         n.superclass.call(this, e, i);
  6069.                         var o = this;
  6070.                         (this.__prev = this.getValue()),
  6071.                         (this.__checkbox = document.createElement("input")),
  6072.                         this.__checkbox.setAttribute("type", "checkbox"),
  6073.                             t.bind(this.__checkbox, "change", r, !1),
  6074.                             this.domElement.appendChild(this.__checkbox),
  6075.                             this.updateDisplay();
  6076.                     };
  6077.                     return (
  6078.                         (n.superclass = e),
  6079.                         i.extend(n.prototype, e.prototype, {
  6080.                             setValue: function (e) {
  6081.                                 var t = n.superclass.prototype.setValue.call(this, e);
  6082.                                 return this.__onFinishChange && this.__onFinishChange.call(this, this.getValue()), (this.__prev = this.getValue()), t;
  6083.                             },
  6084.                             updateDisplay: function () {
  6085.                                 return this.getValue() === !0 ? (this.__checkbox.setAttribute("checked", "checked"), (this.__checkbox.checked = !0)) : (this.__checkbox.checked = !1), n.superclass.prototype.updateDisplay.call(this);
  6086.                             },
  6087.                         }),
  6088.                         n
  6089.                     );
  6090.                 })(n.controllers.Controller, n.dom.dom, n.utils.common)),
  6091.                 (n.color.toString = (function (e) {
  6092.                     return function (t) {
  6093.                         if (1 == t.a || e.isUndefined(t.a)) {
  6094.                             for (var i = t.hex.toString(16); i.length < 6;) i = "0" + i;
  6095.                             return "#" + i;
  6096.                         }
  6097.                         return "rgba(" + Math.round(t.r) + "," + Math.round(t.g) + "," + Math.round(t.b) + "," + t.a + ")";
  6098.                     };
  6099.                 })(n.utils.common)),
  6100.                 (n.color.interpret = (function (e, t) {
  6101.                     var i,
  6102.                         n,
  6103.                         r = function () {
  6104.                             n = !1;
  6105.                             var e = arguments.length > 1 ? t.toArray(arguments) : arguments[0];
  6106.                             return (
  6107.                                 t.each(o, function (r) {
  6108.                                     return r.litmus(e) ?
  6109.                                         (t.each(r.conversions, function (r, o) {
  6110.                                                 return (i = r.read(e)), n === !1 && i !== !1 ? ((n = i), (i.conversionName = o), (i.conversion = r), t.BREAK) : void 0;
  6111.                                             }),
  6112.                                             t.BREAK) :
  6113.                                         void 0;
  6114.                                 }),
  6115.                                 n
  6116.                             );
  6117.                         },
  6118.                         o = [{
  6119.                                 litmus: t.isString,
  6120.                                 conversions: {
  6121.                                     THREE_CHAR_HEX: {
  6122.                                         read: function (e) {
  6123.                                             var t = e.match(/^#([A-F0-9])([A-F0-9])([A-F0-9])$/i);
  6124.                                             return null === t ? !1 : {
  6125.                                                 space: "HEX",
  6126.                                                 hex: parseInt("0x" + t[1].toString() + t[1].toString() + t[2].toString() + t[2].toString() + t[3].toString() + t[3].toString())
  6127.                                             };
  6128.                                         },
  6129.                                         write: e,
  6130.                                     },
  6131.                                     SIX_CHAR_HEX: {
  6132.                                         read: function (e) {
  6133.                                             var t = e.match(/^#([A-F0-9]{6})$/i);
  6134.                                             return null === t ? !1 : {
  6135.                                                 space: "HEX",
  6136.                                                 hex: parseInt("0x" + t[1].toString())
  6137.                                             };
  6138.                                         },
  6139.                                         write: e,
  6140.                                     },
  6141.                                     CSS_RGB: {
  6142.                                         read: function (e) {
  6143.                                             var t = e.match(/^rgb(s*(.+)s*,s*(.+)s*,s*(.+)s*)/);
  6144.                                             return null === t ? !1 : {
  6145.                                                 space: "RGB",
  6146.                                                 r: parseFloat(t[1]),
  6147.                                                 g: parseFloat(t[2]),
  6148.                                                 b: parseFloat(t[3])
  6149.                                             };
  6150.                                         },
  6151.                                         write: e,
  6152.                                     },
  6153.                                     CSS_RGBA: {
  6154.                                         read: function (e) {
  6155.                                             var t = e.match(/^rgba(s*(.+)s*,s*(.+)s*,s*(.+)s*,s*(.+)s*)/);
  6156.                                             return null === t ? !1 : {
  6157.                                                 space: "RGB",
  6158.                                                 r: parseFloat(t[1]),
  6159.                                                 g: parseFloat(t[2]),
  6160.                                                 b: parseFloat(t[3]),
  6161.                                                 a: parseFloat(t[4])
  6162.                                             };
  6163.                                         },
  6164.                                         write: e,
  6165.                                     },
  6166.                                 },
  6167.                             },
  6168.                             {
  6169.                                 litmus: t.isNumber,
  6170.                                 conversions: {
  6171.                                     HEX: {
  6172.                                         read: function (e) {
  6173.                                             return {
  6174.                                                 space: "HEX",
  6175.                                                 hex: e,
  6176.                                                 conversionName: "HEX"
  6177.                                             };
  6178.                                         },
  6179.                                         write: function (e) {
  6180.                                             return e.hex;
  6181.                                         },
  6182.                                     },
  6183.                                 },
  6184.                             },
  6185.                             {
  6186.                                 litmus: t.isArray,
  6187.                                 conversions: {
  6188.                                     RGB_ARRAY: {
  6189.                                         read: function (e) {
  6190.                                             return 3 != e.length ? !1 : {
  6191.                                                 space: "RGB",
  6192.                                                 r: e[0],
  6193.                                                 g: e[1],
  6194.                                                 b: e[2]
  6195.                                             };
  6196.                                         },
  6197.                                         write: function (e) {
  6198.                                             return [e.r, e.g, e.b];
  6199.                                         },
  6200.                                     },
  6201.                                     RGBA_ARRAY: {
  6202.                                         read: function (e) {
  6203.                                             return 4 != e.length ? !1 : {
  6204.                                                 space: "RGB",
  6205.                                                 r: e[0],
  6206.                                                 g: e[1],
  6207.                                                 b: e[2],
  6208.                                                 a: e[3]
  6209.                                             };
  6210.                                         },
  6211.                                         write: function (e) {
  6212.                                             return [e.r, e.g, e.b, e.a];
  6213.                                         },
  6214.                                     },
  6215.                                 },
  6216.                             },
  6217.                             {
  6218.                                 litmus: t.isObject,
  6219.                                 conversions: {
  6220.                                     RGBA_OBJ: {
  6221.                                         read: function (e) {
  6222.                                             return t.isNumber(e.r) && t.isNumber(e.g) && t.isNumber(e.b) && t.isNumber(e.a) ? {
  6223.                                                 space: "RGB",
  6224.                                                 r: e.r,
  6225.                                                 g: e.g,
  6226.                                                 b: e.b,
  6227.                                                 a: e.a
  6228.                                             } : !1;
  6229.                                         },
  6230.                                         write: function (e) {
  6231.                                             return {
  6232.                                                 r: e.r,
  6233.                                                 g: e.g,
  6234.                                                 b: e.b,
  6235.                                                 a: e.a
  6236.                                             };
  6237.                                         },
  6238.                                     },
  6239.                                     RGB_OBJ: {
  6240.                                         read: function (e) {
  6241.                                             return t.isNumber(e.r) && t.isNumber(e.g) && t.isNumber(e.b) ? {
  6242.                                                 space: "RGB",
  6243.                                                 r: e.r,
  6244.                                                 g: e.g,
  6245.                                                 b: e.b
  6246.                                             } : !1;
  6247.                                         },
  6248.                                         write: function (e) {
  6249.                                             return {
  6250.                                                 r: e.r,
  6251.                                                 g: e.g,
  6252.                                                 b: e.b
  6253.                                             };
  6254.                                         },
  6255.                                     },
  6256.                                     HSVA_OBJ: {
  6257.                                         read: function (e) {
  6258.                                             return t.isNumber(e.h) && t.isNumber(e.s) && t.isNumber(e.v) && t.isNumber(e.a) ? {
  6259.                                                 space: "HSV",
  6260.                                                 h: e.h,
  6261.                                                 s: e.s,
  6262.                                                 v: e.v,
  6263.                                                 a: e.a
  6264.                                             } : !1;
  6265.                                         },
  6266.                                         write: function (e) {
  6267.                                             return {
  6268.                                                 h: e.h,
  6269.                                                 s: e.s,
  6270.                                                 v: e.v,
  6271.                                                 a: e.a
  6272.                                             };
  6273.                                         },
  6274.                                     },
  6275.                                     HSV_OBJ: {
  6276.                                         read: function (e) {
  6277.                                             return t.isNumber(e.h) && t.isNumber(e.s) && t.isNumber(e.v) ? {
  6278.                                                 space: "HSV",
  6279.                                                 h: e.h,
  6280.                                                 s: e.s,
  6281.                                                 v: e.v
  6282.                                             } : !1;
  6283.                                         },
  6284.                                         write: function (e) {
  6285.                                             return {
  6286.                                                 h: e.h,
  6287.                                                 s: e.s,
  6288.                                                 v: e.v
  6289.                                             };
  6290.                                         },
  6291.                                     },
  6292.                                 },
  6293.                             },
  6294.                         ];
  6295.                     return r;
  6296.                 })(n.color.toString, n.utils.common)),
  6297.                 (n.GUI = n.gui.GUI = (function (e, t, i, n, r, o, a, s, l, c, u, h, d, f, p) {
  6298.                     function m(e, t, i, o) {
  6299.                         if (void 0 === t[i]) throw new Error("Object " + t + ' has no property "' + i + '"');
  6300.                         var a;
  6301.                         if (o.color) a = new u(t, i);
  6302.                         else {
  6303.                             var s = [t, i].concat(o.factoryArgs);
  6304.                             a = n.apply(e, s);
  6305.                         }
  6306.                         o.before instanceof r && (o.before = o.before.__li), y(e, a), f.addClass(a.domElement, "c");
  6307.                         var l = document.createElement("span");
  6308.                         f.addClass(l, "property-name"), (l.innerHTML = a.property);
  6309.                         var c = document.createElement("div");
  6310.                         c.appendChild(l), c.appendChild(a.domElement);
  6311.                         var h = v(e, c, o.before);
  6312.                         return f.addClass(h, j.CLASS_CONTROLLER_ROW), f.addClass(h, typeof a.getValue()), g(e, h, a), e.__controllers.push(a), a;
  6313.                     }
  6314.  
  6315.                     function v(e, t, i) {
  6316.                         var n = document.createElement("li");
  6317.                         return t && n.appendChild(t), i ? e.__ul.insertBefore(n, params.before) : e.__ul.appendChild(n), e.onResize(), n;
  6318.                     }
  6319.  
  6320.                     function g(e, t, i) {
  6321.                         if (
  6322.                             ((i.__li = t),
  6323.                                 (i.__gui = e),
  6324.                                 p.extend(i, {
  6325.                                     options: function (t) {
  6326.                                         return arguments.length > 1 ?
  6327.                                             (i.remove(), m(e, i.object, i.property, {
  6328.                                                 before: i.__li.nextElementSibling,
  6329.                                                 factoryArgs: [p.toArray(arguments)]
  6330.                                             })) :
  6331.                                             p.isArray(t) || p.isObject(t) ?
  6332.                                             (i.remove(), m(e, i.object, i.property, {
  6333.                                                 before: i.__li.nextElementSibling,
  6334.                                                 factoryArgs: [t]
  6335.                                             })) :
  6336.                                             void 0;
  6337.                                     },
  6338.                                     name: function (e) {
  6339.                                         return (i.__li.firstElementChild.firstElementChild.innerHTML = e), i;
  6340.                                     },
  6341.                                     listen: function () {
  6342.                                         return i.__gui.listen(i), i;
  6343.                                     },
  6344.                                     remove: function () {
  6345.                                         return i.__gui.remove(i), i;
  6346.                                     },
  6347.                                 }),
  6348.                                 i instanceof l)
  6349.                         ) {
  6350.                             var n = new s(i.object, i.property, {
  6351.                                 min: i.__min,
  6352.                                 max: i.__max,
  6353.                                 step: i.__step
  6354.                             });
  6355.                             p.each(["updateDisplay", "onChange", "onFinishChange"], function (e) {
  6356.                                     var t = i[e],
  6357.                                         r = n[e];
  6358.                                     i[e] = n[e] = function () {
  6359.                                         var e = Array.prototype.slice.call(arguments);
  6360.                                         return t.apply(i, e), r.apply(n, e);
  6361.                                     };
  6362.                                 }),
  6363.                                 f.addClass(t, "has-slider"),
  6364.                                 i.domElement.insertBefore(n.domElement, i.domElement.firstElementChild);
  6365.                         } else if (i instanceof s) {
  6366.                             var r = function (t) {
  6367.                                 return p.isNumber(i.__min) && p.isNumber(i.__max) ? (i.remove(), m(e, i.object, i.property, {
  6368.                                     before: i.__li.nextElementSibling,
  6369.                                     factoryArgs: [i.__min, i.__max, i.__step]
  6370.                                 })) : t;
  6371.                             };
  6372.                             (i.min = p.compose(r, i.min)), (i.max = p.compose(r, i.max));
  6373.                         } else
  6374.                             i instanceof o ?
  6375.                             (f.bind(t, "click", function () {
  6376.                                     f.fakeEvent(i.__checkbox, "click");
  6377.                                 }),
  6378.                                 f.bind(i.__checkbox, "click", function (e) {
  6379.                                     e.stopPropagation();
  6380.                                 })) :
  6381.                             i instanceof a ?
  6382.                             (f.bind(t, "click", function () {
  6383.                                     f.fakeEvent(i.__button, "click");
  6384.                                 }),
  6385.                                 f.bind(t, "mouseover", function () {
  6386.                                     f.addClass(i.__button, "hover");
  6387.                                 }),
  6388.                                 f.bind(t, "mouseout", function () {
  6389.                                     f.removeClass(i.__button, "hover");
  6390.                                 })) :
  6391.                             i instanceof u &&
  6392.                             (f.addClass(t, "color"),
  6393.                                 (i.updateDisplay = p.compose(function (e) {
  6394.                                     return (t.style.borderLeftColor = i.__color.toString()), e;
  6395.                                 }, i.updateDisplay)),
  6396.                                 i.updateDisplay());
  6397.                         i.setValue = p.compose(function (t) {
  6398.                             return e.getRoot().__preset_select && i.isModified() && E(e.getRoot(), !0), t;
  6399.                         }, i.setValue);
  6400.                     }
  6401.  
  6402.                     function y(e, t) {
  6403.                         var i = e.getRoot(),
  6404.                             n = i.__rememberedObjects.indexOf(t.object);
  6405.                         if (-1 != n) {
  6406.                             var r = i.__rememberedObjectIndecesToControllers[n];
  6407.                             if ((void 0 === r && ((r = {}), (i.__rememberedObjectIndecesToControllers[n] = r)), (r[t.property] = t), i.load && i.load.remembered)) {
  6408.                                 var o,
  6409.                                     a = i.load.remembered;
  6410.                                 if (a[e.preset]) o = a[e.preset];
  6411.                                 else {
  6412.                                     if (!a[k]) return;
  6413.                                     o = a[k];
  6414.                                 }
  6415.                                 if (o[n] && void 0 !== o[n][t.property]) {
  6416.                                     var s = o[n][t.property];
  6417.                                     (t.initialValue = s), t.setValue(s);
  6418.                                 }
  6419.                             }
  6420.                         }
  6421.                     }
  6422.  
  6423.                     function _(e, t) {
  6424.                         return document.location.href + "." + t;
  6425.                     }
  6426.  
  6427.                     function b(e) {
  6428.                         function t() {
  6429.                             c.style.display = e.useLocalStorage ? "block" : "none";
  6430.                         }
  6431.                         var i = (e.__save_row = document.createElement("li"));
  6432.                         f.addClass(e.domElement, "has-save"), e.__ul.insertBefore(i, e.__ul.firstChild), f.addClass(i, "save-row");
  6433.                         var n = document.createElement("span");
  6434.                         (n.innerHTML = " "), f.addClass(n, "button gears");
  6435.                         var r = document.createElement("span");
  6436.                         (r.innerHTML = "Save"), f.addClass(r, "button"), f.addClass(r, "save");
  6437.                         var o = document.createElement("span");
  6438.                         (o.innerHTML = "New"), f.addClass(o, "button"), f.addClass(o, "save-as");
  6439.                         var a = document.createElement("span");
  6440.                         (a.innerHTML = "Revert"), f.addClass(a, "button"), f.addClass(a, "revert");
  6441.                         var s = (e.__preset_select = document.createElement("select"));
  6442.                         if (
  6443.                             (e.load && e.load.remembered ?
  6444.                                 p.each(e.load.remembered, function (t, i) {
  6445.                                     T(e, i, i == e.preset);
  6446.                                 }) :
  6447.                                 T(e, k, !1),
  6448.                                 f.bind(s, "change", function () {
  6449.                                     for (var t = 0; t < e.__preset_select.length; t++) e.__preset_select[t].innerHTML = e.__preset_select[t].value;
  6450.                                     e.preset = this.value;
  6451.                                 }),
  6452.                                 i.appendChild(s),
  6453.                                 i.appendChild(n),
  6454.                                 i.appendChild(r),
  6455.                                 i.appendChild(o),
  6456.                                 i.appendChild(a),
  6457.                                 D)
  6458.                         ) {
  6459.                             var l = document.getElementById("dg-save-locally"),
  6460.                                 c = document.getElementById("dg-local-explain");
  6461.                             l.style.display = "block";
  6462.                             var u = document.getElementById("dg-local-storage");
  6463.                             "true" === localStorage.getItem(_(e, "isLocal")) && u.setAttribute("checked", "checked"),
  6464.                                 t(),
  6465.                                 f.bind(u, "change", function () {
  6466.                                     (e.useLocalStorage = !e.useLocalStorage), t();
  6467.                                 });
  6468.                         }
  6469.                         var h = document.getElementById("dg-new-constructor");
  6470.                         f.bind(h, "keydown", function (e) {
  6471.                                 !e.metaKey || (67 !== e.which && 67 != e.keyCode) || C.hide();
  6472.                             }),
  6473.                             f.bind(n, "click", function () {
  6474.                                 (h.innerHTML = JSON.stringify(e.getSaveObject(), void 0, 2)), C.show(), h.focus(), h.select();
  6475.                             }),
  6476.                             f.bind(r, "click", function () {
  6477.                                 e.save();
  6478.                             }),
  6479.                             f.bind(o, "click", function () {
  6480.                                 var t = prompt("Enter a new preset name.");
  6481.                                 t && e.saveAs(t);
  6482.                             }),
  6483.                             f.bind(a, "click", function () {
  6484.                                 e.revert();
  6485.                             });
  6486.                     }
  6487.  
  6488.                     function x(e) {
  6489.                         function t(t) {
  6490.                             return t.preventDefault(), (r = t.clientX), f.addClass(e.__closeButton, j.CLASS_DRAG), f.bind(window, "mousemove", i), f.bind(window, "mouseup", n), !1;
  6491.                         }
  6492.  
  6493.                         function i(t) {
  6494.                             return t.preventDefault(), (e.width += r - t.clientX), e.onResize(), (r = t.clientX), !1;
  6495.                         }
  6496.  
  6497.                         function n() {
  6498.                             f.removeClass(e.__closeButton, j.CLASS_DRAG), f.unbind(window, "mousemove", i), f.unbind(window, "mouseup", n);
  6499.                         }
  6500.                         (e.__resize_handle = document.createElement("div")), p.extend(e.__resize_handle.style, {
  6501.                             width: "6px",
  6502.                             marginLeft: "-3px",
  6503.                             height: "200px",
  6504.                             cursor: "ew-resize",
  6505.                             position: "absolute"
  6506.                         });
  6507.                         var r;
  6508.                         f.bind(e.__resize_handle, "mousedown", t), f.bind(e.__closeButton, "mousedown", t), e.domElement.insertBefore(e.__resize_handle, e.domElement.firstElementChild);
  6509.                     }
  6510.  
  6511.                     function w(e, t) {
  6512.                         (e.domElement.style.width = t + "px"), e.__save_row && e.autoPlace && (e.__save_row.style.width = t + "px"), e.__closeButton && (e.__closeButton.style.width = t + "px");
  6513.                     }
  6514.  
  6515.                     function M(e, t) {
  6516.                         var i = {};
  6517.                         return (
  6518.                             p.each(e.__rememberedObjects, function (n, r) {
  6519.                                 var o = {},
  6520.                                     a = e.__rememberedObjectIndecesToControllers[r];
  6521.                                 p.each(a, function (e, i) {
  6522.                                         o[i] = t ? e.initialValue : e.getValue();
  6523.                                     }),
  6524.                                     (i[r] = o);
  6525.                             }),
  6526.                             i
  6527.                         );
  6528.                     }
  6529.  
  6530.                     function T(e, t, i) {
  6531.                         var n = document.createElement("option");
  6532.                         (n.innerHTML = t), (n.value = t), e.__preset_select.appendChild(n), i && (e.__preset_select.selectedIndex = e.__preset_select.length - 1);
  6533.                     }
  6534.  
  6535.                     function S(e) {
  6536.                         for (var t = 0; t < e.__preset_select.length; t++) e.__preset_select[t].value == e.preset && (e.__preset_select.selectedIndex = t);
  6537.                     }
  6538.  
  6539.                     function E(e, t) {
  6540.                         var i = e.__preset_select[e.__preset_select.selectedIndex];
  6541.                         t ? (i.innerHTML = i.value + "*") : (i.innerHTML = i.value);
  6542.                     }
  6543.  
  6544.                     function A(e) {
  6545.                         0 != e.length &&
  6546.                             h(function () {
  6547.                                 A(e);
  6548.                             }),
  6549.                             p.each(e, function (e) {
  6550.                                 e.updateDisplay();
  6551.                             });
  6552.                     }
  6553.                     e.inject(i);
  6554.                     var C,
  6555.                         P,
  6556.                         L = "dg",
  6557.                         R = 72,
  6558.                         O = 20,
  6559.                         k = "Default",
  6560.                         D = (function () {
  6561.                             try {
  6562.                                 return "localStorage" in window && null !== window.localStorage;
  6563.                             } catch (e) {
  6564.                                 return !1;
  6565.                             }
  6566.                         })(),
  6567.                         I = !0,
  6568.                         N = !1,
  6569.                         U = [],
  6570.                         j = function (e) {
  6571.                             function t() {
  6572.                                 localStorage.setItem(_(n, "gui"), JSON.stringify(n.getSaveObject()));
  6573.                             }
  6574.  
  6575.                             function i() {
  6576.                                 var e = n.getRoot();
  6577.                                 (e.width += 1),
  6578.                                 p.defer(function () {
  6579.                                     e.width -= 1;
  6580.                                 });
  6581.                             }
  6582.                             var n = this;
  6583.                             (this.domElement = document.createElement("div")),
  6584.                             (this.__ul = document.createElement("ul")),
  6585.                             this.domElement.appendChild(this.__ul),
  6586.                                 f.addClass(this.domElement, L),
  6587.                                 (this.__folders = {}),
  6588.                                 (this.__controllers = []),
  6589.                                 (this.__rememberedObjects = []),
  6590.                                 (this.__rememberedObjectIndecesToControllers = []),
  6591.                                 (this.__listening = []),
  6592.                                 (e = e || {}),
  6593.                                 (e = p.defaults(e, {
  6594.                                     autoPlace: !0,
  6595.                                     width: j.DEFAULT_WIDTH
  6596.                                 })),
  6597.                                 (e = p.defaults(e, {
  6598.                                     resizable: e.autoPlace,
  6599.                                     hideable: e.autoPlace
  6600.                                 })),
  6601.                                 p.isUndefined(e.load) ? (e.load = {
  6602.                                     preset: k
  6603.                                 }) : e.preset && (e.load.preset = e.preset),
  6604.                                 p.isUndefined(e.parent) && e.hideable && U.push(this),
  6605.                                 (e.resizable = p.isUndefined(e.parent) && e.resizable),
  6606.                                 e.autoPlace && p.isUndefined(e.scrollable) && (e.scrollable = !0);
  6607.                             var r = D && "true" === localStorage.getItem(_(this, "isLocal"));
  6608.                             if (
  6609.                                 (Object.defineProperties(this, {
  6610.                                         parent: {
  6611.                                             get: function () {
  6612.                                                 return e.parent;
  6613.                                             },
  6614.                                         },
  6615.                                         scrollable: {
  6616.                                             get: function () {
  6617.                                                 return e.scrollable;
  6618.                                             },
  6619.                                         },
  6620.                                         autoPlace: {
  6621.                                             get: function () {
  6622.                                                 return e.autoPlace;
  6623.                                             },
  6624.                                         },
  6625.                                         preset: {
  6626.                                             get: function () {
  6627.                                                 return n.parent ? n.getRoot().preset : e.load.preset;
  6628.                                             },
  6629.                                             set: function (t) {
  6630.                                                 n.parent ? (n.getRoot().preset = t) : (e.load.preset = t), S(this), n.revert();
  6631.                                             },
  6632.                                         },
  6633.                                         width: {
  6634.                                             get: function () {
  6635.                                                 return e.width;
  6636.                                             },
  6637.                                             set: function (t) {
  6638.                                                 (e.width = t), w(n, t);
  6639.                                             },
  6640.                                         },
  6641.                                         name: {
  6642.                                             get: function () {
  6643.                                                 return e.name;
  6644.                                             },
  6645.                                             set: function (t) {
  6646.                                                 (e.name = t), a && (a.innerHTML = e.name);
  6647.                                             },
  6648.                                         },
  6649.                                         closed: {
  6650.                                             get: function () {
  6651.                                                 return e.closed;
  6652.                                             },
  6653.                                             set: function (t) {
  6654.                                                 (e.closed = t),
  6655.                                                 e.closed ? f.addClass(n.__ul, j.CLASS_CLOSED) : f.removeClass(n.__ul, j.CLASS_CLOSED),
  6656.                                                     this.onResize(),
  6657.                                                     n.__closeButton && (n.__closeButton.innerHTML = t ? j.TEXT_OPEN : j.TEXT_CLOSED);
  6658.                                             },
  6659.                                         },
  6660.                                         load: {
  6661.                                             get: function () {
  6662.                                                 return e.load;
  6663.                                             },
  6664.                                         },
  6665.                                         useLocalStorage: {
  6666.                                             get: function () {
  6667.                                                 return r;
  6668.                                             },
  6669.                                             set: function (e) {
  6670.                                                 D && ((r = e), e ? f.bind(window, "unload", t) : f.unbind(window, "unload", t), localStorage.setItem(_(n, "isLocal"), e));
  6671.                                             },
  6672.                                         },
  6673.                                     }),
  6674.                                     p.isUndefined(e.parent))
  6675.                             ) {
  6676.                                 if (((e.closed = !1), f.addClass(this.domElement, j.CLASS_MAIN), f.makeSelectable(this.domElement, !1), D && r)) {
  6677.                                     n.useLocalStorage = !0;
  6678.                                     var o = localStorage.getItem(_(this, "gui"));
  6679.                                     o && (e.load = JSON.parse(o));
  6680.                                 }
  6681.                                 (this.__closeButton = document.createElement("div")),
  6682.                                 (this.__closeButton.innerHTML = j.TEXT_CLOSED),
  6683.                                 f.addClass(this.__closeButton, j.CLASS_CLOSE_BUTTON),
  6684.                                     this.domElement.appendChild(this.__closeButton),
  6685.                                     f.bind(this.__closeButton, "click", function () {
  6686.                                         n.closed = !n.closed;
  6687.                                     });
  6688.                             } else {
  6689.                                 void 0 === e.closed && (e.closed = !0);
  6690.                                 var a = document.createTextNode(e.name);
  6691.                                 f.addClass(a, "controller-name");
  6692.                                 var s = v(n, a),
  6693.                                     l = function (e) {
  6694.                                         return e.preventDefault(), (n.closed = !n.closed), !1;
  6695.                                     };
  6696.                                 f.addClass(this.__ul, j.CLASS_CLOSED), f.addClass(s, "title"), f.bind(s, "click", l), e.closed || (this.closed = !1);
  6697.                             }
  6698.                             e.autoPlace &&
  6699.                                 (p.isUndefined(e.parent) &&
  6700.                                     (I && ((P = document.createElement("div")), f.addClass(P, L), f.addClass(P, j.CLASS_AUTO_PLACE_CONTAINER), document.body.appendChild(P), (I = !1)),
  6701.                                         P.appendChild(this.domElement),
  6702.                                         f.addClass(this.domElement, j.CLASS_AUTO_PLACE)),
  6703.                                     this.parent || w(n, e.width)),
  6704.                                 f.bind(window, "resize", function () {
  6705.                                     n.onResize();
  6706.                                 }),
  6707.                                 f.bind(this.__ul, "webkitTransitionEnd", function () {
  6708.                                     n.onResize();
  6709.                                 }),
  6710.                                 f.bind(this.__ul, "transitionend", function () {
  6711.                                     n.onResize();
  6712.                                 }),
  6713.                                 f.bind(this.__ul, "oTransitionEnd", function () {
  6714.                                     n.onResize();
  6715.                                 }),
  6716.                                 this.onResize(),
  6717.                                 e.resizable && x(this);
  6718.                             n.getRoot();
  6719.                             e.parent || i();
  6720.                         };
  6721.                     return (
  6722.                         (j.toggleHide = function () {
  6723.                             (N = !N),
  6724.                             p.each(U, function (e) {
  6725.                                 (e.domElement.style.zIndex = N ? -999 : 999), (e.domElement.style.opacity = N ? 0 : 1);
  6726.                             });
  6727.                         }),
  6728.                         (j.CLASS_AUTO_PLACE = "a"),
  6729.                         (j.CLASS_AUTO_PLACE_CONTAINER = "ac"),
  6730.                         (j.CLASS_MAIN = "main"),
  6731.                         (j.CLASS_CONTROLLER_ROW = "cr"),
  6732.                         (j.CLASS_TOO_TALL = "taller-than-window"),
  6733.                         (j.CLASS_CLOSED = "closed"),
  6734.                         (j.CLASS_CLOSE_BUTTON = "close-button"),
  6735.                         (j.CLASS_DRAG = "drag"),
  6736.                         (j.DEFAULT_WIDTH = 245),
  6737.                         (j.TEXT_CLOSED = "Close Controls"),
  6738.                         (j.TEXT_OPEN = "Open Controls"),
  6739.                         f.bind(
  6740.                             window,
  6741.                             "keydown",
  6742.                             function (e) {
  6743.                                 "text" === document.activeElement.type || (e.which !== R && e.keyCode != R) || j.toggleHide();
  6744.                             },
  6745.                             !1
  6746.                         ),
  6747.                         p.extend(j.prototype, {
  6748.                             add: function (e, t) {
  6749.                                 return m(this, e, t, {
  6750.                                     factoryArgs: Array.prototype.slice.call(arguments, 2)
  6751.                                 });
  6752.                             },
  6753.                             addColor: function (e, t) {
  6754.                                 return m(this, e, t, {
  6755.                                     color: !0
  6756.                                 });
  6757.                             },
  6758.                             remove: function (e) {
  6759.                                 this.__ul.removeChild(e.__li), this.__controllers.slice(this.__controllers.indexOf(e), 1);
  6760.                                 var t = this;
  6761.                                 p.defer(function () {
  6762.                                     t.onResize();
  6763.                                 });
  6764.                             },
  6765.                             destroy: function () {
  6766.                                 this.autoPlace && P.removeChild(this.domElement);
  6767.                             },
  6768.                             addFolder: function (e) {
  6769.                                 if (void 0 !== this.__folders[e]) throw new Error('You already have a folder in this GUI by the name "' + e + '"');
  6770.                                 var t = {
  6771.                                     name: e,
  6772.                                     parent: this
  6773.                                 };
  6774.                                 (t.autoPlace = this.autoPlace), this.load && this.load.folders && this.load.folders[e] && ((t.closed = this.load.folders[e].closed), (t.load = this.load.folders[e]));
  6775.                                 var i = new j(t);
  6776.                                 this.__folders[e] = i;
  6777.                                 var n = v(this, i.domElement);
  6778.                                 return f.addClass(n, "folder"), i;
  6779.                             },
  6780.                             open: function () {
  6781.                                 this.closed = !1;
  6782.                             },
  6783.                             close: function () {
  6784.                                 this.closed = !0;
  6785.                             },
  6786.                             onResize: function () {
  6787.                                 var e = this.getRoot();
  6788.                                 if (e.scrollable) {
  6789.                                     var t = f.getOffset(e.__ul).top,
  6790.                                         i = 0;
  6791.                                     p.each(e.__ul.childNodes, function (t) {
  6792.                                             (e.autoPlace && t === e.__save_row) || (i += f.getHeight(t));
  6793.                                         }),
  6794.                                         window.innerHeight - t - O < i ?
  6795.                                         (f.addClass(e.domElement, j.CLASS_TOO_TALL), (e.__ul.style.height = window.innerHeight - t - O + "px")) :
  6796.                                         (f.removeClass(e.domElement, j.CLASS_TOO_TALL), (e.__ul.style.height = "auto"));
  6797.                                 }
  6798.                                 e.__resize_handle &&
  6799.                                     p.defer(function () {
  6800.                                         e.__resize_handle.style.height = e.__ul.offsetHeight + "px";
  6801.                                     }),
  6802.                                     e.__closeButton && (e.__closeButton.style.width = e.width + "px");
  6803.                             },
  6804.                             remember: function () {
  6805.                                 if ((p.isUndefined(C) && ((C = new d()), (C.domElement.innerHTML = t)), this.parent)) throw new Error("You can only call remember on a top level GUI.");
  6806.                                 var e = this;
  6807.                                 p.each(Array.prototype.slice.call(arguments), function (t) {
  6808.                                         0 == e.__rememberedObjects.length && b(e), -1 == e.__rememberedObjects.indexOf(t) && e.__rememberedObjects.push(t);
  6809.                                     }),
  6810.                                     this.autoPlace && w(this, this.width);
  6811.                             },
  6812.                             getRoot: function () {
  6813.                                 for (var e = this; e.parent;) e = e.parent;
  6814.                                 return e;
  6815.                             },
  6816.                             getSaveObject: function () {
  6817.                                 var e = this.load;
  6818.                                 return (
  6819.                                     (e.closed = this.closed),
  6820.                                     this.__rememberedObjects.length > 0 && ((e.preset = this.preset), e.remembered || (e.remembered = {}), (e.remembered[this.preset] = M(this))),
  6821.                                     (e.folders = {}),
  6822.                                     p.each(this.__folders, function (t, i) {
  6823.                                         e.folders[i] = t.getSaveObject();
  6824.                                     }),
  6825.                                     e
  6826.                                 );
  6827.                             },
  6828.                             save: function () {
  6829.                                 this.load.remembered || (this.load.remembered = {}), (this.load.remembered[this.preset] = M(this)), E(this, !1);
  6830.                             },
  6831.                             saveAs: function (e) {
  6832.                                 this.load.remembered || ((this.load.remembered = {}), (this.load.remembered[k] = M(this, !0))), (this.load.remembered[e] = M(this)), (this.preset = e), T(this, e, !0);
  6833.                             },
  6834.                             revert: function (e) {
  6835.                                 p.each(
  6836.                                         this.__controllers,
  6837.                                         function (t) {
  6838.                                             this.getRoot().load.remembered ? y(e || this.getRoot(), t) : t.setValue(t.initialValue);
  6839.                                         },
  6840.                                         this
  6841.                                     ),
  6842.                                     p.each(this.__folders, function (e) {
  6843.                                         e.revert(e);
  6844.                                     }),
  6845.                                     e || E(this.getRoot(), !1);
  6846.                             },
  6847.                             listen: function (e) {
  6848.                                 var t = 0 == this.__listening.length;
  6849.                                 this.__listening.push(e), t && A(this.__listening);
  6850.                             },
  6851.                         }),
  6852.                         j
  6853.                     );
  6854.                 })(
  6855.                     n.utils.css,
  6856.                     '<div id="dg-save" class="dg dialogue">nn  Here's the new load parameter for your <code>GUI</code>'s constructor:nn  <textarea id="dg-new-constructor"></textarea>nn  <div id="dg-save-locally">nn    <input id="dg-local-storage" type="checkbox"/> Automatically saven    values to <code>localStorage</code> on exit.nn    <div id="dg-local-explain">The values saved to <code>localStorage</code> willn      override those passed to <code>dat.GUI</code>'s constructor. This makes itn      easier to work incrementally, but <code>localStorage</code> is fragile,n      and your friends may not see the same values you do.n      n    </div>n    n  </div>nn</div>',
  6857.                    ".dg ul{list-style:none;margin:0;padding:0;width:100%;clear:both}.dg.ac{position:fixed;top:0;left:0;right:0;height:0;z-index:0}.dg:not(.ac) .main{overflow:hidden}.dg.main{-webkit-transition:opacity 0.1s linear;-o-transition:opacity 0.1s linear;-moz-transition:opacity 0.1s linear;transition:opacity 0.1s linear}.dg.main.taller-than-window{overflow-y:auto}.dg.main.taller-than-window .close-button{opacity:1;margin-top:-1px;border-top:1px solid #2c2c2c}.dg.main ul.closed .close-button{opacity:1 !important}.dg.main:hover .close-button,.dg.main .close-button.drag{opacity:1}.dg.main .close-button{-webkit-transition:opacity 0.1s linear;-o-transition:opacity 0.1s linear;-moz-transition:opacity 0.1s linear;transition:opacity 0.1s linear;border:0;position:absolute;line-height:19px;height:20px;cursor:pointer;text-align:center;background-color:#000}.dg.main .close-button:hover{background-color:#111}.dg.a{float:right;margin-right:15px;overflow-x:hidden}.dg.a.has-save ul{margin-top:27px}.dg.a.has-save ul.closed{margin-top:0}.dg.a .save-row{position:fixed;top:0;z-index:1002}.dg li{-webkit-transition:height 0.1s ease-out;-o-transition:height 0.1s ease-out;-moz-transition:height 0.1s ease-out;transition:height 0.1s ease-out}.dg li:not(.folder){cursor:auto;height:27px;line-height:27px;overflow:hidden;padding:0 4px 0 5px}.dg li.folder{padding:0;border-left:4px solid rgba(0,0,0,0)}.dg li.title{cursor:pointer;margin-left:-4px}.dg .closed li:not(.title),.dg .closed ul li,.dg .closed ul li > *{height:0;overflow:hidden;border:0}.dg .cr{clear:both;padding-left:3px;height:27px}.dg .property-name{cursor:default;float:left;clear:left;width:40%;overflow:hidden;text-overflow:ellipsis}.dg .c{float:left;width:60%}.dg .c input[type=text]{border:0;margin-top:4px;padding:3px;width:100%;float:right}.dg .has-slider input[type=text]{width:30%;margin-left:0}.dg .slider{float:left;width:66%;margin-left:-5px;margin-right:0;height:19px;margin-top:4px}.dg .slider-fg{height:100%}.dg .c input[type=checkbox]{margin-top:9px}.dg .c select{margin-top:5px}.dg .cr.function,.dg .cr.function .property-name,.dg .cr.function *,.dg .cr.boolean,.dg .cr.boolean *{cursor:pointer}.dg .selector{display:none;position:absolute;margin-left:-9px;margin-top:23px;z-index:10}.dg .c:hover .selector,.dg .selector.drag{display:block}.dg li.save-row{padding:0}.dg li.save-row .button{display:inline-block;padding:0px 6px}.dg.dialogue{background-color:#222;width:460px;padding:15px;font-size:13px;line-height:15px}#dg-new-constructor{padding:10px;color:#222;font-family:Monaco, monospace;font-size:10px;border:0;resize:none;box-shadow:inset 1px 1px 1px #888;word-wrap:break-word;margin:12px 0;display:block;width:440px;overflow-y:scroll;height:100px;position:relative}#dg-local-explain{display:none;font-size:11px;line-height:17px;border-radius:3px;background-color:#333;padding:8px;margin-top:10px}#dg-local-explain code{font-size:10px}#dat-gui-save-locally{display:none}.dg{color:#eee;font:11px 'Lucida Grande', sans-serif;text-shadow:0 -1px 0 #111}.dg.main::-webkit-scrollbar{width:5px;background:#1a1a1a}.dg.main::-webkit-scrollbar-corner{height:0;display:none}.dg.main::-webkit-scrollbar-thumb{border-radius:5px;background:#676767}.dg li:not(.folder){background:#1a1a1a;border-bottom:1px solid #2c2c2c}.dg li.save-row{line-height:25px;background:#dad5cb;border:0}.dg li.save-row select{margin-left:5px;width:108px}.dg li.save-row .button{margin-left:5px;margin-top:1px;border-radius:2px;font-size:9px;line-height:7px;padding:4px 4px 5px 4px;background:#c5bdad;color:#fff;text-shadow:0 1px 0 #b0a58f;box-shadow:0 -1px 0 #b0a58f;cursor:pointer}.dg li.save-row .button.gears{background:#c5bdad url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAANCAYAAAB/9ZQ7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQJJREFUeNpiYKAU/P//PwGIC/ApCABiBSAW+I8AClAcgKxQ4T9hoMAEUrxx2QSGN6+egDX+/vWT4e7N82AMYoPAx/evwWoYoSYbACX2s7KxCxzcsezDh3evFoDEBYTEEqycggWAzA9AuUSQQgeYPa9fPv6/YWm/Acx5IPb7ty/fw+QZblw67vDs8R0YHyQhgObx+yAJkBqmG5dPPDh1aPOGR/eugW0G4vlIoTIfyFcA+QekhhHJhPdQxbiAIguMBTQZrPD7108M6roWYDFQiIAAv6Aow/1bFwXgis+f2LUAynwoIaNcz8XNx3Dl7MEJUDGQpx9gtQ8YCueB+D26OECAAQDadt7e46D42QAAAABJRU5ErkJggg==) 2px 1px no-repeat;height:7px;width:8px}.dg li.save-row .button:hover{background-color:#bab19e;box-shadow:0 -1px 0 #b0a58f}.dg li.folder{border-bottom:0}.dg li.title{padding-left:16px;background:#000 url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlI+hKgFxoCgAOw==) 6px 10px no-repeat;cursor:pointer;border-bottom:1px solid rgba(255,255,255,0.2)}.dg .closed li.title{background-image:url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlGIWqMCbWAEAOw==)}.dg .cr.boolean{border-left:3px solid #806787}.dg .cr.function{border-left:3px solid #e61d5f}.dg .cr.number{border-left:3px solid #2fa1d6}.dg .cr.number input[type=text]{color:#2fa1d6}.dg .cr.string{border-left:3px solid #1ed36f}.dg .cr.string input[type=text]{color:#1ed36f}.dg .cr.function:hover,.dg .cr.boolean:hover{background:#111}.dg .c input[type=text]{background:#303030;outline:none}.dg .c input[type=text]:hover{background:#3c3c3c}.dg .c input[type=text]:focus{background:#494949;color:#fff}.dg .c .slider{background:#303030;cursor:ew-resize}.dg .c .slider-fg{background:#2fa1d6}.dg .c .slider:hover{background:#3c3c3c}.dg .c .slider:hover .slider-fg{background:#44abda}n",
  6858.                    (n.controllers.factory = (function (e, t, i, n, r, o, a) {
  6859.                        return function (s, l) {
  6860.                            var c = s[l];
  6861.                            return a.isArray(arguments[2]) || a.isObject(arguments[2]) ?
  6862.                                new e(s, l, arguments[2]) :
  6863.                                a.isNumber(c) ?
  6864.                                a.isNumber(arguments[2]) && a.isNumber(arguments[3]) ?
  6865.                                new i(s, l, arguments[2], arguments[3]) :
  6866.                                new t(s, l, {
  6867.                                    min: arguments[2],
  6868.                                    max: arguments[3]
  6869.                                }) :
  6870.                                a.isString(c) ?
  6871.                                new n(s, l) :
  6872.                                a.isFunction(c) ?
  6873.                                new r(s, l, "") :
  6874.                                a.isBoolean(c) ?
  6875.                                new o(s, l) :
  6876.                                void 0;
  6877.                        };
  6878.                    })(
  6879.                        n.controllers.OptionController,
  6880.                        n.controllers.NumberControllerBox,
  6881.                        n.controllers.NumberControllerSlider,
  6882.                        (n.controllers.StringController = (function (e, t, i) {
  6883.                            var n = function (e, i) {
  6884.                                function r() {
  6885.                                    a.setValue(a.__input.value);
  6886.                                }
  6887.  
  6888.                                function o() {
  6889.                                    a.__onFinishChange && a.__onFinishChange.call(a, a.getValue());
  6890.                                }
  6891.                                n.superclass.call(this, e, i);
  6892.                                var a = this;
  6893.                                (this.__input = document.createElement("input")),
  6894.                                this.__input.setAttribute("type", "text"),
  6895.                                    t.bind(this.__input, "keyup", r),
  6896.                                    t.bind(this.__input, "change", r),
  6897.                                    t.bind(this.__input, "blur", o),
  6898.                                    t.bind(this.__input, "keydown", function (e) {
  6899.                                        13 === e.keyCode && this.blur();
  6900.                                    }),
  6901.                                    this.updateDisplay(),
  6902.                                    this.domElement.appendChild(this.__input);
  6903.                            };
  6904.                            return (
  6905.                                (n.superclass = e),
  6906.                                i.extend(n.prototype, e.prototype, {
  6907.                                    updateDisplay: function () {
  6908.                                        return t.isActive(this.__input) || (this.__input.value = this.getValue()), n.superclass.prototype.updateDisplay.call(this);
  6909.                                    },
  6910.                                }),
  6911.                                n
  6912.                            );
  6913.                        })(n.controllers.Controller, n.dom.dom, n.utils.common)),
  6914.                        n.controllers.FunctionController,
  6915.                        n.controllers.BooleanController,
  6916.                        n.utils.common
  6917.                    )),
  6918.                    n.controllers.Controller,
  6919.                    n.controllers.BooleanController,
  6920.                    n.controllers.FunctionController,
  6921.                    n.controllers.NumberControllerBox,
  6922.                    n.controllers.NumberControllerSlider,
  6923.                    n.controllers.OptionController,
  6924.                    (n.controllers.ColorController = (function (e, t, i, n, r) {
  6925.                        function o(e, t, i, n) {
  6926.                            (e.style.background = ""),
  6927.                            r.each(l, function (r) {
  6928.                                e.style.cssText += "background: " + r + "linear-gradient(" + t + ", " + i + " 0%, " + n + " 100%); ";
  6929.                            });
  6930.                        }
  6931.  
  6932.                        function a(e) {
  6933.                            (e.style.background = ""),
  6934.                            (e.style.cssText += "background: -moz-linear-gradient(top,  #ff0000 0%, #ff00ff 17%, #0000ff 34%, #00ffff 50%, #00ff00 67%, #ffff00 84%, #ff0000 100%);"),
  6935.                            (e.style.cssText += "background: -webkit-linear-gradient(top,  #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);"),
  6936.                            (e.style.cssText += "background: -o-linear-gradient(top,  #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);"),
  6937.                            (e.style.cssText += "background: -ms-linear-gradient(top,  #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);"),
  6938.                            (e.style.cssText += "background: linear-gradient(top,  #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);");
  6939.                        }
  6940.                        var s = function (e, l) {
  6941.                            function c(e) {
  6942.                                f(e), t.bind(window, "mousemove", f), t.bind(window, "mouseup", u);
  6943.                            }
  6944.  
  6945.                            function u() {
  6946.                                t.unbind(window, "mousemove", f), t.unbind(window, "mouseup", u);
  6947.                            }
  6948.  
  6949.                            function h() {
  6950.                                var e = n(this.value);
  6951.                                e !== !1 ? ((m.__color.__state = e), m.setValue(m.__color.toOriginal())) : (this.value = m.__color.toString());
  6952.                            }
  6953.  
  6954.                            function d() {
  6955.                                t.unbind(window, "mousemove", p), t.unbind(window, "mouseup", d);
  6956.                            }
  6957.  
  6958.                            function f(e) {
  6959.                                e.preventDefault();
  6960.                                var i = t.getWidth(m.__saturation_field),
  6961.                                    n = t.getOffset(m.__saturation_field),
  6962.                                    r = (e.clientX - n.left + document.body.scrollLeft) / i,
  6963.                                    o = 1 - (e.clientY - n.top + document.body.scrollTop) / i;
  6964.                                return o > 1 ? (o = 1) : 0 > o && (o = 0), r > 1 ? (r = 1) : 0 > r && (r = 0), (m.__color.v = o), (m.__color.s = r), m.setValue(m.__color.toOriginal()), !1;
  6965.                            }
  6966.  
  6967.                            function p(e) {
  6968.                                e.preventDefault();
  6969.                                var i = t.getHeight(m.__hue_field),
  6970.                                    n = t.getOffset(m.__hue_field),
  6971.                                    r = 1 - (e.clientY - n.top + document.body.scrollTop) / i;
  6972.                                return r > 1 ? (r = 1) : 0 > r && (r = 0), (m.__color.h = 360 * r), m.setValue(m.__color.toOriginal()), !1;
  6973.                            }
  6974.                            s.superclass.call(this, e, l), (this.__color = new i(this.getValue())), (this.__temp = new i(0));
  6975.                            var m = this;
  6976.                            (this.domElement = document.createElement("div")),
  6977.                            t.makeSelectable(this.domElement, !1),
  6978.                                (this.__selector = document.createElement("div")),
  6979.                                (this.__selector.className = "selector"),
  6980.                                (this.__saturation_field = document.createElement("div")),
  6981.                                (this.__saturation_field.className = "saturation-field"),
  6982.                                (this.__field_knob = document.createElement("div")),
  6983.                                (this.__field_knob.className = "field-knob"),
  6984.                                (this.__field_knob_border = "2px solid "),
  6985.                                (this.__hue_knob = document.createElement("div")),
  6986.                                (this.__hue_knob.className = "hue-knob"),
  6987.                                (this.__hue_field = document.createElement("div")),
  6988.                                (this.__hue_field.className = "hue-field"),
  6989.                                (this.__input = document.createElement("input")),
  6990.                                (this.__input.type = "text"),
  6991.                                (this.__input_textShadow = "0 1px 1px "),
  6992.                                t.bind(this.__input, "keydown", function (e) {
  6993.                                    13 === e.keyCode && h.call(this);
  6994.                                }),
  6995.                                t.bind(this.__input, "blur", h),
  6996.                                t.bind(this.__selector, "mousedown", function (e) {
  6997.                                    t.addClass(this, "drag").bind(window, "mouseup", function (e) {
  6998.                                        t.removeClass(m.__selector, "drag");
  6999.                                    });
  7000.                                });
  7001.                            var v = document.createElement("div");
  7002.                            r.extend(this.__selector.style, {
  7003.                                    width: "122px",
  7004.                                    height: "102px",
  7005.                                    padding: "3px",
  7006.                                    backgroundColor: "#222",
  7007.                                    boxShadow: "0px 1px 3px rgba(0,0,0,0.3)"
  7008.                                }),
  7009.                                r.extend(this.__field_knob.style, {
  7010.                                    position: "absolute",
  7011.                                    width: "12px",
  7012.                                    height: "12px",
  7013.                                    border: this.__field_knob_border + (this.__color.v < 0.5 ? "#fff" : "#000"),
  7014.                                    boxShadow: "0px 1px 3px rgba(0,0,0,0.5)",
  7015.                                    borderRadius: "12px",
  7016.                                    zIndex: 1,
  7017.                                }),
  7018.                                r.extend(this.__hue_knob.style, {
  7019.                                    position: "absolute",
  7020.                                    width: "15px",
  7021.                                    height: "2px",
  7022.                                    borderRight: "4px solid #fff",
  7023.                                    zIndex: 1
  7024.                                }),
  7025.                                r.extend(this.__saturation_field.style, {
  7026.                                    width: "100px",
  7027.                                    height: "100px",
  7028.                                    border: "1px solid #555",
  7029.                                    marginRight: "3px",
  7030.                                    display: "inline-block",
  7031.                                    cursor: "pointer"
  7032.                                }),
  7033.                                r.extend(v.style, {
  7034.                                    width: "100%",
  7035.                                    height: "100%",
  7036.                                    background: "none"
  7037.                                }),
  7038.                                o(v, "top", "rgba(0,0,0,0)", "#000"),
  7039.                                r.extend(this.__hue_field.style, {
  7040.                                    width: "15px",
  7041.                                    height: "100px",
  7042.                                    display: "inline-block",
  7043.                                    border: "1px solid #555",
  7044.                                    cursor: "ns-resize"
  7045.                                }),
  7046.                                a(this.__hue_field),
  7047.                                r.extend(this.__input.style, {
  7048.                                    outline: "none",
  7049.                                    textAlign: "center",
  7050.                                    color: "#fff",
  7051.                                    border: 0,
  7052.                                    fontWeight: "bold",
  7053.                                    textShadow: this.__input_textShadow + "rgba(0,0,0,0.7)"
  7054.                                }),
  7055.                                t.bind(this.__saturation_field, "mousedown", c),
  7056.                                t.bind(this.__field_knob, "mousedown", c),
  7057.                                t.bind(this.__hue_field, "mousedown", function (e) {
  7058.                                    p(e), t.bind(window, "mousemove", p), t.bind(window, "mouseup", d);
  7059.                                }),
  7060.                                this.__saturation_field.appendChild(v),
  7061.                                this.__selector.appendChild(this.__field_knob),
  7062.                                this.__selector.appendChild(this.__saturation_field),
  7063.                                this.__selector.appendChild(this.__hue_field),
  7064.                                this.__hue_field.appendChild(this.__hue_knob),
  7065.                                this.domElement.appendChild(this.__input),
  7066.                                this.domElement.appendChild(this.__selector),
  7067.                                this.updateDisplay();
  7068.                        };
  7069.                        (s.superclass = e),
  7070.                        r.extend(s.prototype, e.prototype, {
  7071.                            updateDisplay: function () {
  7072.                                var e = n(this.getValue());
  7073.                                if (e !== !1) {
  7074.                                    var t = !1;
  7075.                                    r.each(
  7076.                                            i.COMPONENTS,
  7077.                                            function (i) {
  7078.                                                return r.isUndefined(e[i]) || r.isUndefined(this.__color.__state[i]) || e[i] === this.__color.__state[i] ? void 0 : ((t = !0), {});
  7079.                                            },
  7080.                                            this
  7081.                                        ),
  7082.                                        t && r.extend(this.__color.__state, e);
  7083.                                }
  7084.                                r.extend(this.__temp.__state, this.__color.__state), (this.__temp.a = 1);
  7085.                                var a = this.__color.v < 0.5 || this.__color.s > 0.5 ? 255 : 0,
  7086.                                    s = 255 - a;
  7087.                                r.extend(this.__field_knob.style, {
  7088.                                        marginLeft: 100 * this.__color.s - 7 + "px",
  7089.                                        marginTop: 100 * (1 - this.__color.v) - 7 + "px",
  7090.                                        backgroundColor: this.__temp.toString(),
  7091.                                        border: this.__field_knob_border + "rgb(" + a + "," + a + "," + a + ")",
  7092.                                    }),
  7093.                                    (this.__hue_knob.style.marginTop = 100 * (1 - this.__color.h / 360) + "px"),
  7094.                                    (this.__temp.s = 1),
  7095.                                    (this.__temp.v = 1),
  7096.                                    o(this.__saturation_field, "left", "#fff", this.__temp.toString()),
  7097.                                    r.extend(this.__input.style, {
  7098.                                        backgroundColor: (this.__input.value = this.__color.toString()),
  7099.                                        color: "rgb(" + a + "," + a + "," + a + ")",
  7100.                                        textShadow: this.__input_textShadow + "rgba(" + s + "," + s + "," + s + ",.7)",
  7101.                                    });
  7102.                            },
  7103.                        });
  7104.                        var l = ["-moz-", "-o-", "-webkit-", "-ms-", ""];
  7105.                        return s;
  7106.                    })(
  7107.                        n.controllers.Controller,
  7108.                        n.dom.dom,
  7109.                        (n.color.Color = (function (e, t, i, n) {
  7110.                            function r(e, t, i) {
  7111.                                Object.defineProperty(e, t, {
  7112.                                    get: function () {
  7113.                                        return "RGB" === this.__state.space ? this.__state[t] : (a(this, t, i), this.__state[t]);
  7114.                                    },
  7115.                                    set: function (e) {
  7116.                                        "RGB" !== this.__state.space && (a(this, t, i), (this.__state.space = "RGB")), (this.__state[t] = e);
  7117.                                    },
  7118.                                });
  7119.                            }
  7120.  
  7121.                            function o(e, t) {
  7122.                                Object.defineProperty(e, t, {
  7123.                                    get: function () {
  7124.                                        return "HSV" === this.__state.space ? this.__state[t] : (s(this), this.__state[t]);
  7125.                                    },
  7126.                                    set: function (e) {
  7127.                                        "HSV" !== this.__state.space && (s(this), (this.__state.space = "HSV")), (this.__state[t] = e);
  7128.                                    },
  7129.                                });
  7130.                            }
  7131.  
  7132.                            function a(e, i, r) {
  7133.                                if ("HEX" === e.__state.space) e.__state[i] = t.component_from_hex(e.__state.hex, r);
  7134.                                else {
  7135.                                    if ("HSV" !== e.__state.space) throw "Corrupted color state";
  7136.                                    n.extend(e.__state, t.hsv_to_rgb(e.__state.h, e.__state.s, e.__state.v));
  7137.                                }
  7138.                            }
  7139.  
  7140.                            function s(e) {
  7141.                                var i = t.rgb_to_hsv(e.r, e.g, e.b);
  7142.                                n.extend(e.__state, {
  7143.                                    s: i.s,
  7144.                                    v: i.v
  7145.                                }), n.isNaN(i.h) ? n.isUndefined(e.__state.h) && (e.__state.h = 0) : (e.__state.h = i.h);
  7146.                            }
  7147.                            var l = function () {
  7148.                                if (((this.__state = e.apply(this, arguments)), this.__state === !1)) throw "Failed to interpret color arguments";
  7149.                                this.__state.a = this.__state.a || 1;
  7150.                            };
  7151.                            return (
  7152.                                (l.COMPONENTS = ["r", "g", "b", "h", "s", "v", "hex", "a"]),
  7153.                                n.extend(l.prototype, {
  7154.                                    toString: function () {
  7155.                                        return i(this);
  7156.                                    },
  7157.                                    toOriginal: function () {
  7158.                                        return this.__state.conversion.write(this);
  7159.                                    },
  7160.                                }),
  7161.                                r(l.prototype, "r", 2),
  7162.                                r(l.prototype, "g", 1),
  7163.                                r(l.prototype, "b", 0),
  7164.                                o(l.prototype, "h"),
  7165.                                o(l.prototype, "s"),
  7166.                                o(l.prototype, "v"),
  7167.                                Object.defineProperty(l.prototype, "a", {
  7168.                                    get: function () {
  7169.                                        return this.__state.a;
  7170.                                    },
  7171.                                    set: function (e) {
  7172.                                        this.__state.a = e;
  7173.                                    },
  7174.                                }),
  7175.                                Object.defineProperty(l.prototype, "hex", {
  7176.                                    get: function () {
  7177.                                        return "HEX" !== !this.__state.space && (this.__state.hex = t.rgb_to_hex(this.r, this.g, this.b)), this.__state.hex;
  7178.                                    },
  7179.                                    set: function (e) {
  7180.                                        (this.__state.space = "HEX"), (this.__state.hex = e);
  7181.                                    },
  7182.                                }),
  7183.                                l
  7184.                            );
  7185.                        })(
  7186.                            n.color.interpret,
  7187.                            (n.color.math = (function () {
  7188.                                var e;
  7189.                                return {
  7190.                                    hsv_to_rgb: function (e, t, i) {
  7191.                                        var n = Math.floor(e / 60) % 6,
  7192.                                            r = e / 60 - Math.floor(e / 60),
  7193.                                            o = i * (1 - t),
  7194.                                            a = i * (1 - r * t),
  7195.                                            s = i * (1 - (1 - r) * t),
  7196.                                            l = [
  7197.                                                [i, s, o],
  7198.                                                [a, i, o],
  7199.                                                [o, i, s],
  7200.                                                [o, a, i],
  7201.                                                [s, o, i],
  7202.                                                [i, o, a],
  7203.                                            ][n];
  7204.                                        return {
  7205.                                            r: 255 * l[0],
  7206.                                            g: 255 * l[1],
  7207.                                            b: 255 * l[2]
  7208.                                        };
  7209.                                    },
  7210.                                    rgb_to_hsv: function (e, t, i) {
  7211.                                        var n,
  7212.                                            r,
  7213.                                            o = Math.min(e, t, i),
  7214.                                            a = Math.max(e, t, i),
  7215.                                            s = a - o;
  7216.                                        return 0 == a ? {
  7217.                                            h: NaN,
  7218.                                            s: 0,
  7219.                                            v: 0
  7220.                                        } : ((r = s / a), (n = e == a ? (t - i) / s : t == a ? 2 + (i - e) / s : 4 + (e - t) / s), (n /= 6), 0 > n && (n += 1), {
  7221.                                            h: 360 * n,
  7222.                                            s: r,
  7223.                                            v: a / 255
  7224.                                        });
  7225.                                    },
  7226.                                    rgb_to_hex: function (e, t, i) {
  7227.                                        var n = this.hex_with_component(0, 2, e);
  7228.                                        return (n = this.hex_with_component(n, 1, t)), (n = this.hex_with_component(n, 0, i));
  7229.                                    },
  7230.                                    component_from_hex: function (e, t) {
  7231.                                        return (e >> (8 * t)) & 255;
  7232.                                    },
  7233.                                    hex_with_component: function (t, i, n) {
  7234.                                        return (n << (e = 8 * i)) | (t & ~(255 << e));
  7235.                                    },
  7236.                                };
  7237.                            })()),
  7238.                            n.color.toString,
  7239.                            n.utils.common
  7240.                        )),
  7241.                        n.color.interpret,
  7242.                        n.utils.common
  7243.                    )),
  7244.                    (n.utils.requestAnimationFrame = (function () {
  7245.                        return (
  7246.                            window.webkitRequestAnimationFrame ||
  7247.                            window.mozRequestAnimationFrame ||
  7248.                            window.oRequestAnimationFrame ||
  7249.                            window.msRequestAnimationFrame ||
  7250.                            function (e, t) {
  7251.                                window.setTimeout(e, 1e3 / 60);
  7252.                            }
  7253.                        );
  7254.                    })()),
  7255.                    (n.dom.CenteredDiv = (function (e, t) {
  7256.                        var i = function () {
  7257.                            (this.backgroundElement = document.createElement("div")),
  7258.                            t.extend(this.backgroundElement.style, {
  7259.                                    backgroundColor: "rgba(0,0,0,0.8)",
  7260.                                    top: 0,
  7261.                                    left: 0,
  7262.                                    display: "none",
  7263.                                    zIndex: "1000",
  7264.                                    opacity: 0,
  7265.                                    WebkitTransition: "opacity 0.2s linear",
  7266.                                }),
  7267.                                e.makeFullscreen(this.backgroundElement),
  7268.                                (this.backgroundElement.style.position = "fixed"),
  7269.                                (this.domElement = document.createElement("div")),
  7270.                                t.extend(this.domElement.style, {
  7271.                                    position: "fixed",
  7272.                                    display: "none",
  7273.                                    zIndex: "1001",
  7274.                                    opacity: 0,
  7275.                                    WebkitTransition: "-webkit-transform 0.2s ease-out, opacity 0.2s linear"
  7276.                                }),
  7277.                                document.body.appendChild(this.backgroundElement),
  7278.                                document.body.appendChild(this.domElement);
  7279.                            var i = this;
  7280.                            e.bind(this.backgroundElement, "click", function () {
  7281.                                i.hide();
  7282.                            });
  7283.                        };
  7284.                        return (
  7285.                            (i.prototype.show = function () {
  7286.                                var e = this;
  7287.                                (this.backgroundElement.style.display = "block"),
  7288.                                (this.domElement.style.display = "block"),
  7289.                                (this.domElement.style.opacity = 0),
  7290.                                (this.domElement.style.webkitTransform = "scale(1.1)"),
  7291.                                this.layout(),
  7292.                                    t.defer(function () {
  7293.                                        (e.backgroundElement.style.opacity = 1), (e.domElement.style.opacity = 1), (e.domElement.style.webkitTransform = "scale(1)");
  7294.                                    });
  7295.                            }),
  7296.                            (i.prototype.hide = function () {
  7297.                                var t = this,
  7298.                                    i = function () {
  7299.                                        (t.domElement.style.display = "none"),
  7300.                                        (t.backgroundElement.style.display = "none"),
  7301.                                        e.unbind(t.domElement, "webkitTransitionEnd", i),
  7302.                                            e.unbind(t.domElement, "transitionend", i),
  7303.                                            e.unbind(t.domElement, "oTransitionEnd", i);
  7304.                                    };
  7305.                                e.bind(this.domElement, "webkitTransitionEnd", i),
  7306.                                    e.bind(this.domElement, "transitionend", i),
  7307.                                    e.bind(this.domElement, "oTransitionEnd", i),
  7308.                                    (this.backgroundElement.style.opacity = 0),
  7309.                                    (this.domElement.style.opacity = 0),
  7310.                                    (this.domElement.style.webkitTransform = "scale(1.1)");
  7311.                            }),
  7312.                            (i.prototype.layout = function () {
  7313.                                (this.domElement.style.left = window.innerWidth / 2 - e.getWidth(this.domElement) / 2 + "px"), (this.domElement.style.top = window.innerHeight / 2 - e.getHeight(this.domElement) / 2 + "px");
  7314.                            }),
  7315.                            i
  7316.                        );
  7317.                    })(n.dom.dom, n.utils.common)),
  7318.                    n.dom.dom,
  7319.                    n.utils.common
  7320.                ));
  7321.            },
  7322.            {},
  7323.        ],
  7324.        193: [
  7325.            function (e, t, i) {
  7326.                !(function (e, i) {
  7327.                    "undefined" != typeof t ? (t.exports = i()) : "function" == typeof define && "object" == typeof define.amd ? define(i) : (this[e] = i());
  7328.                })("domready", function () {
  7329.                    var e,
  7330.                        t = [],
  7331.                        i = document,
  7332.                        n = i.documentElement.doScroll,
  7333.                        r = "DOMContentLoaded",
  7334.                        o = (n ? /^loaded|^c/ : /^loaded|^i|^c/).test(i.readyState);
  7335.                    return (
  7336.                        o ||
  7337.                        i.addEventListener(
  7338.                            r,
  7339.                            (e = function () {
  7340.                                for (i.removeEventListener(r, e), o = 1;
  7341.                                    (e = t.shift());) e();
  7342.                            })
  7343.                        ),
  7344.                        function (e) {
  7345.                            o ? setTimeout(e, 0) : t.push(e);
  7346.                        }
  7347.                    );
  7348.                });
  7349.            },
  7350.            {},
  7351.        ],
  7352.        194: [
  7353.            function (e, t, i) {
  7354.                "use strict";
  7355.                var n,
  7356.                    r,
  7357.                    o,
  7358.                    a,
  7359.                    s,
  7360.                    l,
  7361.                    c,
  7362.                    u = e("d"),
  7363.                    h = e("es5-ext/object/valid-callable"),
  7364.                    d = Function.prototype.apply,
  7365.                    f = Function.prototype.call,
  7366.                    p = Object.create,
  7367.                    m = Object.defineProperty,
  7368.                    v = Object.defineProperties,
  7369.                    g = Object.prototype.hasOwnProperty,
  7370.                    y = {
  7371.                        configurable: !0,
  7372.                        enumerable: !1,
  7373.                        writable: !0
  7374.                    };
  7375.                (n = function (e, t) {
  7376.                    var i;
  7377.                    return h(t), g.call(this, "__ee__") ? (i = this.__ee__) : ((i = y.value = p(null)), m(this, "__ee__", y), (y.value = null)), i[e] ? ("object" == typeof i[e] ? i[e].push(t) : (i[e] = [i[e], t])) : (i[e] = t), this;
  7378.                }),
  7379.                (r = function (e, t) {
  7380.                    var i, r;
  7381.                    return (
  7382.                        h(t),
  7383.                        (r = this),
  7384.                        n.call(
  7385.                            this,
  7386.                            e,
  7387.                            (i = function () {
  7388.                                o.call(r, e, i), d.call(t, this, arguments);
  7389.                            })
  7390.                        ),
  7391.                        (i.__eeOnceListener__ = t),
  7392.                        this
  7393.                    );
  7394.                }),
  7395.                (o = function (e, t) {
  7396.                    var i, n, r, o;
  7397.                    if ((h(t), !g.call(this, "__ee__"))) return this;
  7398.                    if (((i = this.__ee__), !i[e])) return this;
  7399.                    if (((n = i[e]), "object" == typeof n))
  7400.                        for (o = 0;
  7401.                            (r = n[o]); ++o)(r === t || r.__eeOnceListener__ === t) && (2 === n.length ? (i[e] = n[o ? 0 : 1]) : n.splice(o, 1));
  7402.                    else(n === t || n.__eeOnceListener__ === t) && delete i[e];
  7403.                    return this;
  7404.                }),
  7405.                (a = function (e) {
  7406.                    var t, i, n, r, o;
  7407.                    if (g.call(this, "__ee__") && (r = this.__ee__[e]))
  7408.                        if ("object" == typeof r) {
  7409.                            for (i = arguments.length, o = new Array(i - 1), t = 1; i > t; ++t) o[t - 1] = arguments[t];
  7410.                            for (r = r.slice(), t = 0;
  7411.                                (n = r[t]); ++t) d.call(n, this, o);
  7412.                        } else
  7413.                            switch (arguments.length) {
  7414.                            case 1:
  7415.                                f.call(r, this);
  7416.                                break;
  7417.                            case 2:
  7418.                                f.call(r, this, arguments[1]);
  7419.                                break;
  7420.                            case 3:
  7421.                                f.call(r, this, arguments[1], arguments[2]);
  7422.                                break;
  7423.                            default:
  7424.                                for (i = arguments.length, o = new Array(i - 1), t = 1; i > t; ++t) o[t - 1] = arguments[t];
  7425.                                d.call(r, this, o);
  7426.                            }
  7427.                }),
  7428.                (s = {
  7429.                    on: n,
  7430.                    once: r,
  7431.                    off: o,
  7432.                    emit: a
  7433.                }),
  7434.                (l = {
  7435.                    on: u(n),
  7436.                    once: u(r),
  7437.                    off: u(o),
  7438.                    emit: u(a)
  7439.                }),
  7440.                (c = v({}, l)),
  7441.                (t.exports = i = function (e) {
  7442.                    return null == e ? p(c) : v(Object(e), l);
  7443.                }),
  7444.                (i.methods = s);
  7445.            },
  7446.            {
  7447.                d: 195,
  7448.                "es5-ext/object/valid-callable": 204
  7449.            },
  7450.        ],
  7451.        195: [
  7452.            function (e, t, i) {
  7453.                "use strict";
  7454.                var n,
  7455.                    r = e("es5-ext/object/assign"),
  7456.                    o = e("es5-ext/object/normalize-options"),
  7457.                    a = e("es5-ext/object/is-callable"),
  7458.                    s = e("es5-ext/string/#/contains");
  7459.                (n = t.exports = function (e, t) {
  7460.                    var i, n, a, l, c;
  7461.                    return (
  7462.                        arguments.length < 2 || "string" != typeof e ? ((l = t), (t = e), (e = null)) : (l = arguments[2]),
  7463.                        null == e ? ((i = a = !0), (n = !1)) : ((i = s.call(e, "c")), (n = s.call(e, "e")), (a = s.call(e, "w"))),
  7464.                        (c = {
  7465.                            value: t,
  7466.                            configurable: i,
  7467.                            enumerable: n,
  7468.                            writable: a
  7469.                        }),
  7470.                        l ? r(o(l), c) : c
  7471.                    );
  7472.                }),
  7473.                (n.gs = function (e, t, i) {
  7474.                    var n, l, c, u;
  7475.                    return (
  7476.                        "string" != typeof e ? ((c = i), (i = t), (t = e), (e = null)) : (c = arguments[3]),
  7477.                        null == t ? (t = void 0) : a(t) ? (null == i ? (i = void 0) : a(i) || ((c = i), (i = void 0))) : ((c = t), (t = i = void 0)),
  7478.                        null == e ? ((n = !0), (l = !1)) : ((n = s.call(e, "c")), (l = s.call(e, "e"))),
  7479.                        (u = {
  7480.                            get: t,
  7481.                            set: i,
  7482.                            configurable: n,
  7483.                            enumerable: l
  7484.                        }),
  7485.                        c ? r(o(c), u) : u
  7486.                    );
  7487.                });
  7488.            },
  7489.            {
  7490.                "es5-ext/object/assign": 196,
  7491.                "es5-ext/object/is-callable": 199,
  7492.                "es5-ext/object/normalize-options": 203,
  7493.                "es5-ext/string/#/contains": 206
  7494.            },
  7495.        ],
  7496.        196: [
  7497.            function (e, t, i) {
  7498.                "use strict";
  7499.                t.exports = e("./is-implemented")() ? Object.assign : e("./shim");
  7500.            },
  7501.            {
  7502.                "./is-implemented": 197,
  7503.                "./shim": 198
  7504.            },
  7505.        ],
  7506.        197: [
  7507.            function (e, t, i) {
  7508.                "use strict";
  7509.                t.exports = function () {
  7510.                    var e,
  7511.                        t = Object.assign;
  7512.                    return "function" != typeof t ? !1 : ((e = {
  7513.                        foo: "raz"
  7514.                    }), t(e, {
  7515.                        bar: "dwa"
  7516.                    }, {
  7517.                        trzy: "trzy"
  7518.                    }), e.foo + e.bar + e.trzy === "razdwatrzy");
  7519.                };
  7520.            },
  7521.            {},
  7522.        ],
  7523.        198: [
  7524.            function (e, t, i) {
  7525.                "use strict";
  7526.                var n = e("../keys"),
  7527.                    r = e("../valid-value"),
  7528.                    o = Math.max;
  7529.                t.exports = function (e, t) {
  7530.                    var i,
  7531.                        a,
  7532.                        s,
  7533.                        l = o(arguments.length, 2);
  7534.                    for (
  7535.                        e = Object(r(e)),
  7536.                        s = function (n) {
  7537.                            try {
  7538.                                e[n] = t[n];
  7539.                            } catch (r) {
  7540.                                i || (i = r);
  7541.                            }
  7542.                        },
  7543.                        a = 1; l > a;
  7544.                        ++a
  7545.                    )
  7546.                        (t = arguments[a]), n(t).forEach(s);
  7547.                    if (void 0 !== i) throw i;
  7548.                    return e;
  7549.                };
  7550.            },
  7551.            {
  7552.                "../keys": 200,
  7553.                "../valid-value": 205
  7554.            },
  7555.        ],
  7556.        199: [
  7557.            function (e, t, i) {
  7558.                "use strict";
  7559.                t.exports = function (e) {
  7560.                    return "function" == typeof e;
  7561.                };
  7562.            },
  7563.            {},
  7564.        ],
  7565.        200: [
  7566.            function (e, t, i) {
  7567.                "use strict";
  7568.                t.exports = e("./is-implemented")() ? Object.keys : e("./shim");
  7569.            },
  7570.            {
  7571.                "./is-implemented": 201,
  7572.                "./shim": 202
  7573.            },
  7574.        ],
  7575.        201: [
  7576.            function (e, t, i) {
  7577.                "use strict";
  7578.                t.exports = function () {
  7579.                    try {
  7580.                        return Object.keys("primitive"), !0;
  7581.                    } catch (e) {
  7582.                        return !1;
  7583.                    }
  7584.                };
  7585.            },
  7586.            {},
  7587.        ],
  7588.        202: [
  7589.            function (e, t, i) {
  7590.                "use strict";
  7591.                var n = Object.keys;
  7592.                t.exports = function (e) {
  7593.                    return n(null == e ? e : Object(e));
  7594.                };
  7595.            },
  7596.            {},
  7597.        ],
  7598.        203: [
  7599.            function (e, t, i) {
  7600.                "use strict";
  7601.                var n = Array.prototype.forEach,
  7602.                    r = Object.create,
  7603.                    o = function (e, t) {
  7604.                        var i;
  7605.                        for (i in e) t[i] = e[i];
  7606.                    };
  7607.                t.exports = function (e) {
  7608.                    var t = r(null);
  7609.                    return (
  7610.                        n.call(arguments, function (e) {
  7611.                            null != e && o(Object(e), t);
  7612.                        }),
  7613.                        t
  7614.                    );
  7615.                };
  7616.            },
  7617.            {},
  7618.        ],
  7619.        204: [
  7620.            function (e, t, i) {
  7621.                "use strict";
  7622.                t.exports = function (e) {
  7623.                    if ("function" != typeof e) throw new TypeError(e + " is not a function");
  7624.                    return e;
  7625.                };
  7626.            },
  7627.            {},
  7628.        ],
  7629.        205: [
  7630.            function (e, t, i) {
  7631.                "use strict";
  7632.                t.exports = function (e) {
  7633.                    if (null == e) throw new TypeError("Cannot use null or undefined");
  7634.                    return e;
  7635.                };
  7636.            },
  7637.            {},
  7638.        ],
  7639.        206: [
  7640.            function (e, t, i) {
  7641.                "use strict";
  7642.                t.exports = e("./is-implemented")() ? String.prototype.contains : e("./shim");
  7643.            },
  7644.            {
  7645.                "./is-implemented": 207,
  7646.                "./shim": 208
  7647.            },
  7648.        ],
  7649.        207: [
  7650.            function (e, t, i) {
  7651.                "use strict";
  7652.                var n = "razdwatrzy";
  7653.                t.exports = function () {
  7654.                    return "function" != typeof n.contains ? !1 : n.contains("dwa") === !0 && n.contains("foo") === !1;
  7655.                };
  7656.            },
  7657.            {},
  7658.        ],
  7659.        208: [
  7660.            function (e, t, i) {
  7661.                "use strict";
  7662.                var n = String.prototype.indexOf;
  7663.                t.exports = function (e) {
  7664.                    return n.call(this, e, arguments[1]) > -1;
  7665.                };
  7666.            },
  7667.            {},
  7668.        ],
  7669.        209: [
  7670.            function (e, t, i) {
  7671.                (function (e) {
  7672.                    var i = "undefined" != typeof t && t.exports && "undefined" != typeof e ? e : this || window;
  7673.                    (i._gsQueue || (i._gsQueue = [])).push(function () {
  7674.                            "use strict";
  7675.                            i._gsDefine(
  7676.                                    "TweenMax",
  7677.                                    ["core.Animation", "core.SimpleTimeline", "TweenLite"],
  7678.                                    function (e, t, i) {
  7679.                                        var n = function (e) {
  7680.                                                var t,
  7681.                                                    i = [],
  7682.                                                    n = e.length;
  7683.                                                for (t = 0; t !== n; i.push(e[t++]));
  7684.                                                return i;
  7685.                                            },
  7686.                                            r = function (e, t, i) {
  7687.                                                var n,
  7688.                                                    r,
  7689.                                                    o = e.cycle;
  7690.                                                for (n in o)(r = o[n]), (e[n] = "function" == typeof r ? r.call(t[i], i) : r[i % r.length]);
  7691.                                                delete e.cycle;
  7692.                                            },
  7693.                                            o = function (e, t, n) {
  7694.                                                i.call(this, e, t, n),
  7695.                                                    (this._cycle = 0),
  7696.                                                    (this._yoyo = this.vars.yoyo === !0),
  7697.                                                    (this._repeat = this.vars.repeat || 0),
  7698.                                                    (this._repeatDelay = this.vars.repeatDelay || 0),
  7699.                                                    (this._dirty = !0),
  7700.                                                    (this.render = o.prototype.render);
  7701.                                            },
  7702.                                            a = 1e-10,
  7703.                                            s = i._internals,
  7704.                                            l = s.isSelector,
  7705.                                            c = s.isArray,
  7706.                                            u = (o.prototype = i.to({}, 0.1, {})),
  7707.                                            h = [];
  7708.                                        (o.version = "1.18.0"),
  7709.                                        (u.constructor = o),
  7710.                                        (u.kill()._gc = !1),
  7711.                                        (o.killTweensOf = o.killDelayedCallsTo = i.killTweensOf),
  7712.                                        (o.getTweensOf = i.getTweensOf),
  7713.                                        (o.lagSmoothing = i.lagSmoothing),
  7714.                                        (o.ticker = i.ticker),
  7715.                                        (o.render = i.render),
  7716.                                        (u.invalidate = function () {
  7717.                                            return (this._yoyo = this.vars.yoyo === !0), (this._repeat = this.vars.repeat || 0), (this._repeatDelay = this.vars.repeatDelay || 0), this._uncache(!0), i.prototype.invalidate.call(this);
  7718.                                        }),
  7719.                                        (u.updateTo = function (e, t) {
  7720.                                            var n,
  7721.                                                r = this.ratio,
  7722.                                                o = this.vars.immediateRender || e.immediateRender;
  7723.                                            t &&
  7724.                                                this._startTime < this._timeline._time &&
  7725.                                                ((this._startTime = this._timeline._time), this._uncache(!1), this._gc ? this._enabled(!0, !1) : this._timeline.insert(this, this._startTime - this._delay));
  7726.                                            for (n in e) this.vars[n] = e[n];
  7727.                                            if (this._initted || o)
  7728.                                                if (t)(this._initted = !1), o && this.render(0, !0, !0);
  7729.                                                else if ((this._gc && this._enabled(!0, !1), this._notifyPluginsOfEnabled && this._firstPT && i._onPluginEvent("_onDisable", this), this._time / this._duration > 0.998)) {
  7730.                                                var a = this._time;
  7731.                                                this.render(0, !0, !1), (this._initted = !1), this.render(a, !0, !1);
  7732.                                            } else if (this._time > 0 || o) {
  7733.                                                (this._initted = !1), this._init();
  7734.                                                for (var s, l = 1 / (1 - r), c = this._firstPT; c;)(s = c.s + c.c), (c.c *= l), (c.s = s - c.c), (c = c._next);
  7735.                                            }
  7736.                                            return this;
  7737.                                        }),
  7738.                                        (u.render = function (e, t, i) {
  7739.                                            this._initted || (0 === this._duration && this.vars.repeat && this.invalidate());
  7740.                                            var n,
  7741.                                                r,
  7742.                                                o,
  7743.                                                l,
  7744.                                                c,
  7745.                                                u,
  7746.                                                h,
  7747.                                                d,
  7748.                                                f = this._dirty ? this.totalDuration() : this._totalDuration,
  7749.                                                p = this._time,
  7750.                                                m = this._totalTime,
  7751.                                                v = this._cycle,
  7752.                                                g = this._duration,
  7753.                                                y = this._rawPrevTime;
  7754.                                            if (
  7755.                                                (e >= f ?
  7756.                                                    ((this._totalTime = f),
  7757.                                                        (this._cycle = this._repeat),
  7758.                                                        this._yoyo && 0 !== (1 & this._cycle) ?
  7759.                                                        ((this._time = 0), (this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0)) :
  7760.                                                        ((this._time = g), (this.ratio = this._ease._calcEnd ? this._ease.getRatio(1) : 1)),
  7761.                                                        this._reversed || ((n = !0), (r = "onComplete"), (i = i || this._timeline.autoRemoveChildren)),
  7762.                                                        0 === g &&
  7763.                                                        (this._initted || !this.vars.lazy || i) &&
  7764.                                                        (this._startTime === this._timeline._duration && (e = 0),
  7765.                                                            (0 === e || 0 > y || y === a) && y !== e && ((i = !0), y > a && (r = "onReverseComplete")),
  7766.                                                            (this._rawPrevTime = d = !t || e || y === e ? e : a))) :
  7767.                                                    1e-7 > e ?
  7768.                                                    ((this._totalTime = this._time = this._cycle = 0),
  7769.                                                        (this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0),
  7770.                                                        (0 !== m || (0 === g && y > 0)) && ((r = "onReverseComplete"), (n = this._reversed)),
  7771.                                                        0 > e && ((this._active = !1), 0 === g && (this._initted || !this.vars.lazy || i) && (y >= 0 && (i = !0), (this._rawPrevTime = d = !t || e || y === e ? e : a))),
  7772.                                                        this._initted || (i = !0)) :
  7773.                                                    ((this._totalTime = this._time = e),
  7774.                                                        0 !== this._repeat &&
  7775.                                                        ((l = g + this._repeatDelay),
  7776.                                                            (this._cycle = (this._totalTime / l) >> 0),
  7777.                                                            0 !== this._cycle && this._cycle === this._totalTime / l && this._cycle--,
  7778.                                                            (this._time = this._totalTime - this._cycle * l),
  7779.                                                            this._yoyo && 0 !== (1 & this._cycle) && (this._time = g - this._time),
  7780.                                                            this._time > g ? (this._time = g) : this._time < 0 && (this._time = 0)),
  7781.                                                        this._easeType ?
  7782.                                                        ((c = this._time / g),
  7783.                                                            (u = this._easeType),
  7784.                                                            (h = this._easePower),
  7785.                                                            (1 === u || (3 === u && c >= 0.5)) && (c = 1 - c),
  7786.                                                            3 === u && (c *= 2),
  7787.                                                            1 === h ? (c *= c) : 2 === h ? (c *= c * c) : 3 === h ? (c *= c * c * c) : 4 === h && (c *= c * c * c * c),
  7788.                                                            1 === u ? (this.ratio = 1 - c) : 2 === u ? (this.ratio = c) : this._time / g < 0.5 ? (this.ratio = c / 2) : (this.ratio = 1 - c / 2)) :
  7789.                                                        (this.ratio = this._ease.getRatio(this._time / g))),
  7790.                                                    p === this._time && !i && v === this._cycle)
  7791.                                            )
  7792.                                                return void(m !== this._totalTime && this._onUpdate && (t || this._callback("onUpdate")));
  7793.                                            if (!this._initted) {
  7794.                                                if ((this._init(), !this._initted || this._gc)) return;
  7795.                                                if (!i && this._firstPT && ((this.vars.lazy !== !1 && this._duration) || (this.vars.lazy && !this._duration)))
  7796.                                                    return (this._time = p), (this._totalTime = m), (this._rawPrevTime = y), (this._cycle = v), s.lazyTweens.push(this), void(this._lazy = [e, t]);
  7797.                                                this._time && !n ? (this.ratio = this._ease.getRatio(this._time / g)) : n && this._ease._calcEnd && (this.ratio = this._ease.getRatio(0 === this._time ? 0 : 1));
  7798.                                            }
  7799.                                            for (
  7800.                                                this._lazy !== !1 && (this._lazy = !1),
  7801.                                                this._active || (!this._paused && this._time !== p && e >= 0 && (this._active = !0)),
  7802.                                                0 === m &&
  7803.                                                (2 === this._initted && e > 0 && this._init(),
  7804.                                                    this._startAt && (e >= 0 ? this._startAt.render(e, t, i) : r || (r = "_dummyGS")),
  7805.                                                    this.vars.onStart && (0 !== this._totalTime || 0 === g) && (t || this._callback("onStart"))),
  7806.                                                o = this._firstPT; o;
  7807.  
  7808.                                            )
  7809.                                                o.f ? o.t[o.p](o.c * this.ratio + o.s) : (o.t[o.p] = o.c * this.ratio + o.s), (o = o._next);
  7810.                                            this._onUpdate && (0 > e && this._startAt && this._startTime && this._startAt.render(e, t, i), t || ((this._totalTime !== m || n) && this._callback("onUpdate"))),
  7811.                                                this._cycle !== v && (t || this._gc || (this.vars.onRepeat && this._callback("onRepeat"))),
  7812.                                                r &&
  7813.                                                (!this._gc || i) &&
  7814.                                                (0 > e && this._startAt && !this._onUpdate && this._startTime && this._startAt.render(e, t, i),
  7815.                                                    n && (this._timeline.autoRemoveChildren && this._enabled(!1, !1), (this._active = !1)),
  7816.                                                    !t && this.vars[r] && this._callback(r),
  7817.                                                    0 === g && this._rawPrevTime === a && d !== a && (this._rawPrevTime = 0));
  7818.                                        }),
  7819.                                        (o.to = function (e, t, i) {
  7820.                                            return new o(e, t, i);
  7821.                                        }),
  7822.                                        (o.from = function (e, t, i) {
  7823.                                            return (i.runBackwards = !0), (i.immediateRender = 0 != i.immediateRender), new o(e, t, i);
  7824.                                        }),
  7825.                                        (o.fromTo = function (e, t, i, n) {
  7826.                                            return (n.startAt = i), (n.immediateRender = 0 != n.immediateRender && 0 != i.immediateRender), new o(e, t, n);
  7827.                                        }),
  7828.                                        (o.staggerTo = o.allTo = function (e, t, a, s, u, d, f) {
  7829.                                            s = s || 0;
  7830.                                            var p,
  7831.                                                m,
  7832.                                                v,
  7833.                                                g,
  7834.                                                y = a.delay || 0,
  7835.                                                _ = [],
  7836.                                                b = function () {
  7837.                                                    a.onComplete && a.onComplete.apply(a.onCompleteScope || this, arguments), u.apply(f || a.callbackScope || this, d || h);
  7838.                                                },
  7839.                                                x = a.cycle,
  7840.                                                w = a.startAt && a.startAt.cycle;
  7841.                                            for (c(e) || ("string" == typeof e && (e = i.selector(e) || e), l(e) && (e = n(e))), e = e || [], 0 > s && ((e = n(e)), e.reverse(), (s *= -1)), p = e.length - 1, v = 0; p >= v; v++) {
  7842.                                                m = {};
  7843.                                                for (g in a) m[g] = a[g];
  7844.                                                if ((x && r(m, e, v), w)) {
  7845.                                                    w = m.startAt = {};
  7846.                                                    for (g in a.startAt) w[g] = a.startAt[g];
  7847.                                                    r(m.startAt, e, v);
  7848.                                                }
  7849.                                                (m.delay = y), v === p && u && (m.onComplete = b), (_[v] = new o(e[v], t, m)), (y += s);
  7850.                                            }
  7851.                                            return _;
  7852.                                        }),
  7853.                                        (o.staggerFrom = o.allFrom = function (e, t, i, n, r, a, s) {
  7854.                                            return (i.runBackwards = !0), (i.immediateRender = 0 != i.immediateRender), o.staggerTo(e, t, i, n, r, a, s);
  7855.                                        }),
  7856.                                        (o.staggerFromTo = o.allFromTo = function (e, t, i, n, r, a, s, l) {
  7857.                                            return (n.startAt = i), (n.immediateRender = 0 != n.immediateRender && 0 != i.immediateRender), o.staggerTo(e, t, n, r, a, s, l);
  7858.                                        }),
  7859.                                        (o.delayedCall = function (e, t, i, n, r) {
  7860.                                            return new o(t, 0, {
  7861.                                                delay: e,
  7862.                                                onComplete: t,
  7863.                                                onCompleteParams: i,
  7864.                                                callbackScope: n,
  7865.                                                onReverseComplete: t,
  7866.                                                onReverseCompleteParams: i,
  7867.                                                immediateRender: !1,
  7868.                                                useFrames: r,
  7869.                                                overwrite: 0
  7870.                                            });
  7871.                                        }),
  7872.                                        (o.set = function (e, t) {
  7873.                                            return new o(e, 0, t);
  7874.                                        }),
  7875.                                        (o.isTweening = function (e) {
  7876.                                            return i.getTweensOf(e, !0).length > 0;
  7877.                                        });
  7878.                                        var d = function (e, t) {
  7879.                                                for (var n = [], r = 0, o = e._first; o;) o instanceof i ? (n[r++] = o) : (t && (n[r++] = o), (n = n.concat(d(o, t))), (r = n.length)), (o = o._next);
  7880.                                                return n;
  7881.                                            },
  7882.                                            f = (o.getAllTweens = function (t) {
  7883.                                                return d(e._rootTimeline, t).concat(d(e._rootFramesTimeline, t));
  7884.                                            });
  7885.                                        (o.killAll = function (e, i, n, r) {
  7886.                                            null == i && (i = !0), null == n && (n = !0);
  7887.                                            var o,
  7888.                                                a,
  7889.                                                s,
  7890.                                                l = f(0 != r),
  7891.                                                c = l.length,
  7892.                                                u = i && n && r;
  7893.                                            for (s = 0; c > s; s++)(a = l[s]), (u || a instanceof t || ((o = a.target === a.vars.onComplete) && n) || (i && !o)) && (e ? a.totalTime(a._reversed ? 0 : a.totalDuration()) : a._enabled(!1, !1));
  7894.                                        }),
  7895.                                        (o.killChildTweensOf = function (e, t) {
  7896.                                            if (null != e) {
  7897.                                                var r,
  7898.                                                    a,
  7899.                                                    u,
  7900.                                                    h,
  7901.                                                    d,
  7902.                                                    f = s.tweenLookup;
  7903.                                                if (("string" == typeof e && (e = i.selector(e) || e), l(e) && (e = n(e)), c(e)))
  7904.                                                    for (h = e.length; --h > -1;) o.killChildTweensOf(e[h], t);
  7905.                                                else {
  7906.                                                    r = [];
  7907.                                                    for (u in f)
  7908.                                                        for (a = f[u].target.parentNode; a;) a === e && (r = r.concat(f[u].tweens)), (a = a.parentNode);
  7909.                                                    for (d = r.length, h = 0; d > h; h++) t && r[h].totalTime(r[h].totalDuration()), r[h]._enabled(!1, !1);
  7910.                                                }
  7911.                                            }
  7912.                                        });
  7913.                                        var p = function (e, i, n, r) {
  7914.                                            (i = i !== !1), (n = n !== !1), (r = r !== !1);
  7915.                                            for (var o, a, s = f(r), l = i && n && r, c = s.length; --c > -1;)(a = s[c]), (l || a instanceof t || ((o = a.target === a.vars.onComplete) && n) || (i && !o)) && a.paused(e);
  7916.                                        };
  7917.                                        return (
  7918.                                            (o.pauseAll = function (e, t, i) {
  7919.                                                p(!0, e, t, i);
  7920.                                            }),
  7921.                                            (o.resumeAll = function (e, t, i) {
  7922.                                                p(!1, e, t, i);
  7923.                                            }),
  7924.                                            (o.globalTimeScale = function (t) {
  7925.                                                var n = e._rootTimeline,
  7926.                                                    r = i.ticker.time;
  7927.                                                return arguments.length ?
  7928.                                                    ((t = t || a),
  7929.                                                        (n._startTime = r - ((r - n._startTime) * n._timeScale) / t),
  7930.                                                        (n = e._rootFramesTimeline),
  7931.                                                        (r = i.ticker.frame),
  7932.                                                        (n._startTime = r - ((r - n._startTime) * n._timeScale) / t),
  7933.                                                        (n._timeScale = e._rootTimeline._timeScale = t),
  7934.                                                        t) :
  7935.                                                    n._timeScale;
  7936.                                            }),
  7937.                                            (u.progress = function (e) {
  7938.                                                return arguments.length ? this.totalTime(this.duration() * (this._yoyo && 0 !== (1 & this._cycle) ? 1 - e : e) + this._cycle * (this._duration + this._repeatDelay), !1) : this._time / this.duration();
  7939.                                            }),
  7940.                                            (u.totalProgress = function (e) {
  7941.                                                return arguments.length ? this.totalTime(this.totalDuration() * e, !1) : this._totalTime / this.totalDuration();
  7942.                                            }),
  7943.                                            (u.time = function (e, t) {
  7944.                                                return arguments.length ?
  7945.                                                    (this._dirty && this.totalDuration(),
  7946.                                                        e > this._duration && (e = this._duration),
  7947.                                                        this._yoyo && 0 !== (1 & this._cycle) ?
  7948.                                                        (e = this._duration - e + this._cycle * (this._duration + this._repeatDelay)) :
  7949.                                                        0 !== this._repeat && (e += this._cycle * (this._duration + this._repeatDelay)),
  7950.                                                        this.totalTime(e, t)) :
  7951.                                                    this._time;
  7952.                                            }),
  7953.                                            (u.duration = function (t) {
  7954.                                                return arguments.length ? e.prototype.duration.call(this, t) : this._duration;
  7955.                                            }),
  7956.                                            (u.totalDuration = function (e) {
  7957.                                                return arguments.length ?
  7958.                                                    -1 === this._repeat ?
  7959.                                                    this :
  7960.                                                    this.duration((e - this._repeat * this._repeatDelay) / (this._repeat + 1)) :
  7961.                                                    (this._dirty && ((this._totalDuration = -1 === this._repeat ? 999999999999 : this._duration * (this._repeat + 1) + this._repeatDelay * this._repeat), (this._dirty = !1)), this._totalDuration);
  7962.                                            }),
  7963.                                            (u.repeat = function (e) {
  7964.                                                return arguments.length ? ((this._repeat = e), this._uncache(!0)) : this._repeat;
  7965.                                            }),
  7966.                                            (u.repeatDelay = function (e) {
  7967.                                                return arguments.length ? ((this._repeatDelay = e), this._uncache(!0)) : this._repeatDelay;
  7968.                                            }),
  7969.                                            (u.yoyo = function (e) {
  7970.                                                return arguments.length ? ((this._yoyo = e), this) : this._yoyo;
  7971.                                            }),
  7972.                                            o
  7973.                                        );
  7974.                                    },
  7975.                                    !0
  7976.                                ),
  7977.                                i._gsDefine(
  7978.                                    "TimelineLite",
  7979.                                    ["core.Animation", "core.SimpleTimeline", "TweenLite"],
  7980.                                    function (e, t, n) {
  7981.                                        var r = function (e) {
  7982.                                                t.call(this, e),
  7983.                                                    (this._labels = {}),
  7984.                                                    (this.autoRemoveChildren = this.vars.autoRemoveChildren === !0),
  7985.                                                    (this.smoothChildTiming = this.vars.smoothChildTiming === !0),
  7986.                                                    (this._sortChildren = !0),
  7987.                                                    (this._onUpdate = this.vars.onUpdate);
  7988.                                                var i,
  7989.                                                    n,
  7990.                                                    r = this.vars;
  7991.                                                for (n in r)(i = r[n]), c(i) && -1 !== i.join("").indexOf("{self}") && (r[n] = this._swapSelfInParams(i));
  7992.                                                c(r.tweens) && this.add(r.tweens, 0, r.align, r.stagger);
  7993.                                            },
  7994.                                            o = 1e-10,
  7995.                                            a = n._internals,
  7996.                                            s = (r._internals = {}),
  7997.                                            l = a.isSelector,
  7998.                                            c = a.isArray,
  7999.                                            u = a.lazyTweens,
  8000.                                            h = a.lazyRender,
  8001.                                            d = i._gsDefine.globals,
  8002.                                            f = function (e) {
  8003.                                                var t,
  8004.                                                    i = {};
  8005.                                                for (t in e) i[t] = e[t];
  8006.                                                return i;
  8007.                                            },
  8008.                                            p = function (e, t, i) {
  8009.                                                var n,
  8010.                                                    r,
  8011.                                                    o = e.cycle;
  8012.                                                for (n in o)(r = o[n]), (e[n] = "function" == typeof r ? r.call(t[i], i) : r[i % r.length]);
  8013.                                                delete e.cycle;
  8014.                                            },
  8015.                                            m = (s.pauseCallback = function () {}),
  8016.                                            v = function (e) {
  8017.                                                var t,
  8018.                                                    i = [],
  8019.                                                    n = e.length;
  8020.                                                for (t = 0; t !== n; i.push(e[t++]));
  8021.                                                return i;
  8022.                                            },
  8023.                                            g = (r.prototype = new t());
  8024.                                        return (
  8025.                                            (r.version = "1.18.0"),
  8026.                                            (g.constructor = r),
  8027.                                            (g.kill()._gc = g._forcingPlayhead = g._hasPause = !1),
  8028.                                            (g.to = function (e, t, i, r) {
  8029.                                                var o = (i.repeat && d.TweenMax) || n;
  8030.                                                return t ? this.add(new o(e, t, i), r) : this.set(e, i, r);
  8031.                                            }),
  8032.                                            (g.from = function (e, t, i, r) {
  8033.                                                return this.add(((i.repeat && d.TweenMax) || n).from(e, t, i), r);
  8034.                                            }),
  8035.                                            (g.fromTo = function (e, t, i, r, o) {
  8036.                                                var a = (r.repeat && d.TweenMax) || n;
  8037.                                                return t ? this.add(a.fromTo(e, t, i, r), o) : this.set(e, r, o);
  8038.                                            }),
  8039.                                            (g.staggerTo = function (e, t, i, o, a, s, c, u) {
  8040.                                                var h,
  8041.                                                    d,
  8042.                                                    m = new r({
  8043.                                                        onComplete: s,
  8044.                                                        onCompleteParams: c,
  8045.                                                        callbackScope: u,
  8046.                                                        smoothChildTiming: this.smoothChildTiming
  8047.                                                    }),
  8048.                                                    g = i.cycle;
  8049.                                                for ("string" == typeof e && (e = n.selector(e) || e), e = e || [], l(e) && (e = v(e)), o = o || 0, 0 > o && ((e = v(e)), e.reverse(), (o *= -1)), d = 0; d < e.length; d++)
  8050.                                                    (h = f(i)), h.startAt && ((h.startAt = f(h.startAt)), h.startAt.cycle && p(h.startAt, e, d)), g && p(h, e, d), m.to(e[d], t, h, d * o);
  8051.                                                return this.add(m, a);
  8052.                                            }),
  8053.                                            (g.staggerFrom = function (e, t, i, n, r, o, a, s) {
  8054.                                                return (i.immediateRender = 0 != i.immediateRender), (i.runBackwards = !0), this.staggerTo(e, t, i, n, r, o, a, s);
  8055.                                            }),
  8056.                                            (g.staggerFromTo = function (e, t, i, n, r, o, a, s, l) {
  8057.                                                return (n.startAt = i), (n.immediateRender = 0 != n.immediateRender && 0 != i.immediateRender), this.staggerTo(e, t, n, r, o, a, s, l);
  8058.                                            }),
  8059.                                            (g.call = function (e, t, i, r) {
  8060.                                                return this.add(n.delayedCall(0, e, t, i), r);
  8061.                                            }),
  8062.                                            (g.set = function (e, t, i) {
  8063.                                                return (i = this._parseTimeOrLabel(i, 0, !0)), null == t.immediateRender && (t.immediateRender = i === this._time && !this._paused), this.add(new n(e, 0, t), i);
  8064.                                            }),
  8065.                                            (r.exportRoot = function (e, t) {
  8066.                                                (e = e || {}), null == e.smoothChildTiming && (e.smoothChildTiming = !0);
  8067.                                                var i,
  8068.                                                    o,
  8069.                                                    a = new r(e),
  8070.                                                    s = a._timeline;
  8071.                                                for (null == t && (t = !0), s._remove(a, !0), a._startTime = 0, a._rawPrevTime = a._time = a._totalTime = s._time, i = s._first; i;)
  8072.                                                    (o = i._next), (t && i instanceof n && i.target === i.vars.onComplete) || a.add(i, i._startTime - i._delay), (i = o);
  8073.                                                return s.add(a, 0), a;
  8074.                                            }),
  8075.                                            (g.add = function (i, o, a, s) {
  8076.                                                var l, u, h, d, f, p;
  8077.                                                if (("number" != typeof o && (o = this._parseTimeOrLabel(o, 0, !0, i)), !(i instanceof e))) {
  8078.                                                    if (i instanceof Array || (i && i.push && c(i))) {
  8079.                                                        for (a = a || "normal", s = s || 0, l = o, u = i.length, h = 0; u > h; h++)
  8080.                                                            c((d = i[h])) && (d = new r({
  8081.                                                                tweens: d
  8082.                                                            })),
  8083.                                                            this.add(d, l),
  8084.                                                            "string" != typeof d && "function" != typeof d && ("sequence" === a ? (l = d._startTime + d.totalDuration() / d._timeScale) : "start" === a && (d._startTime -= d.delay())),
  8085.                                                            (l += s);
  8086.                                                        return this._uncache(!0);
  8087.                                                    }
  8088.                                                    if ("string" == typeof i) return this.addLabel(i, o);
  8089.                                                    if ("function" != typeof i) throw "Cannot add " + i + " into the timeline; it is not a tween, timeline, function, or string.";
  8090.                                                    i = n.delayedCall(0, i);
  8091.                                                }
  8092.                                                if ((t.prototype.add.call(this, i, o), (this._gc || this._time === this._duration) && !this._paused && this._duration < this.duration()))
  8093.                                                    for (f = this, p = f.rawTime() > i._startTime; f._timeline;) p && f._timeline.smoothChildTiming ? f.totalTime(f._totalTime, !0) : f._gc && f._enabled(!0, !1), (f = f._timeline);
  8094.                                                return this;
  8095.                                            }),
  8096.                                            (g.remove = function (t) {
  8097.                                                if (t instanceof e) {
  8098.                                                    this._remove(t, !1);
  8099.                                                    var i = (t._timeline = t.vars.useFrames ? e._rootFramesTimeline : e._rootTimeline);
  8100.                                                    return (t._startTime = (t._paused ? t._pauseTime : i._time) - (t._reversed ? t.totalDuration() - t._totalTime : t._totalTime) / t._timeScale), this;
  8101.                                                }
  8102.                                                if (t instanceof Array || (t && t.push && c(t))) {
  8103.                                                    for (var n = t.length; --n > -1;) this.remove(t[n]);
  8104.                                                    return this;
  8105.                                                }
  8106.                                                return "string" == typeof t ? this.removeLabel(t) : this.kill(null, t);
  8107.                                            }),
  8108.                                            (g._remove = function (e, i) {
  8109.                                                t.prototype._remove.call(this, e, i);
  8110.                                                var n = this._last;
  8111.                                                return (
  8112.                                                    n ?
  8113.                                                    this._time > n._startTime + n._totalDuration / n._timeScale && ((this._time = this.duration()), (this._totalTime = this._totalDuration)) :
  8114.                                                    (this._time = this._totalTime = this._duration = this._totalDuration = 0),
  8115.                                                    this
  8116.                                                );
  8117.                                            }),
  8118.                                            (g.append = function (e, t) {
  8119.                                                return this.add(e, this._parseTimeOrLabel(null, t, !0, e));
  8120.                                            }),
  8121.                                            (g.insert = g.insertMultiple = function (e, t, i, n) {
  8122.                                                return this.add(e, t || 0, i, n);
  8123.                                            }),
  8124.                                            (g.appendMultiple = function (e, t, i, n) {
  8125.                                                return this.add(e, this._parseTimeOrLabel(null, t, !0, e), i, n);
  8126.                                            }),
  8127.                                            (g.addLabel = function (e, t) {
  8128.                                                return (this._labels[e] = this._parseTimeOrLabel(t)), this;
  8129.                                            }),
  8130.                                            (g.addPause = function (e, t, i, r) {
  8131.                                                var o = n.delayedCall(0, m, i, r || this);
  8132.                                                return (o.vars.onComplete = o.vars.onReverseComplete = t), (o.data = "isPause"), (this._hasPause = !0), this.add(o, e);
  8133.                                            }),
  8134.                                            (g.removeLabel = function (e) {
  8135.                                                return delete this._labels[e], this;
  8136.                                            }),
  8137.                                            (g.getLabelTime = function (e) {
  8138.                                                return null != this._labels[e] ? this._labels[e] : -1;
  8139.                                            }),
  8140.                                            (g._parseTimeOrLabel = function (t, i, n, r) {
  8141.                                                var o;
  8142.                                                if (r instanceof e && r.timeline === this) this.remove(r);
  8143.                                                else if (r && (r instanceof Array || (r.push && c(r))))
  8144.                                                    for (o = r.length; --o > -1;) r[o] instanceof e && r[o].timeline === this && this.remove(r[o]);
  8145.                                                if ("string" == typeof i) return this._parseTimeOrLabel(i, n && "number" == typeof t && null == this._labels[i] ? t - this.duration() : 0, n);
  8146.                                                if (((i = i || 0), "string" != typeof t || (!isNaN(t) && null == this._labels[t]))) null == t && (t = this.duration());
  8147.                                                else {
  8148.                                                    if (((o = t.indexOf("=")), -1 === o)) return null == this._labels[t] ? (n ? (this._labels[t] = this.duration() + i) : i) : this._labels[t] + i;
  8149.                                                    (i = parseInt(t.charAt(o - 1) + "1", 10) * Number(t.substr(o + 1))), (t = o > 1 ? this._parseTimeOrLabel(t.substr(0, o - 1), 0, n) : this.duration());
  8150.                                                }
  8151.                                                return Number(t) + i;
  8152.                                            }),
  8153.                                            (g.seek = function (e, t) {
  8154.                                                return this.totalTime("number" == typeof e ? e : this._parseTimeOrLabel(e), t !== !1);
  8155.                                            }),
  8156.                                            (g.stop = function () {
  8157.                                                return this.paused(!0);
  8158.                                            }),
  8159.                                            (g.gotoAndPlay = function (e, t) {
  8160.                                                return this.play(e, t);
  8161.                                            }),
  8162.                                            (g.gotoAndStop = function (e, t) {
  8163.                                                return this.pause(e, t);
  8164.                                            }),
  8165.                                            (g.render = function (e, t, i) {
  8166.                                                this._gc && this._enabled(!0, !1);
  8167.                                                var n,
  8168.                                                    r,
  8169.                                                    a,
  8170.                                                    s,
  8171.                                                    l,
  8172.                                                    c,
  8173.                                                    d = this._dirty ? this.totalDuration() : this._totalDuration,
  8174.                                                    f = this._time,
  8175.                                                    p = this._startTime,
  8176.                                                    m = this._timeScale,
  8177.                                                    v = this._paused;
  8178.                                                if (e >= d)
  8179.                                                    (this._totalTime = this._time = d),
  8180.                                                    this._reversed ||
  8181.                                                    this._hasPausedChild() ||
  8182.                                                    ((r = !0),
  8183.                                                        (s = "onComplete"),
  8184.                                                        (l = !!this._timeline.autoRemoveChildren),
  8185.                                                        0 === this._duration &&
  8186.                                                        (0 === e || this._rawPrevTime < 0 || this._rawPrevTime === o) &&
  8187.                                                        this._rawPrevTime !== e &&
  8188.                                                        this._first &&
  8189.                                                        ((l = !0), this._rawPrevTime > o && (s = "onReverseComplete"))),
  8190.                                                    (this._rawPrevTime = this._duration || !t || e || this._rawPrevTime === e ? e : o),
  8191.                                                    (e = d + 1e-4);
  8192.                                                else if (1e-7 > e)
  8193.                                                    if (
  8194.                                                        ((this._totalTime = this._time = 0),
  8195.                                                            (0 !== f || (0 === this._duration && this._rawPrevTime !== o && (this._rawPrevTime > 0 || (0 > e && this._rawPrevTime >= 0)))) && ((s = "onReverseComplete"), (r = this._reversed)),
  8196.                                                            0 > e)
  8197.                                                    )
  8198.                                                        (this._active = !1),
  8199.                                                        this._timeline.autoRemoveChildren && this._reversed ? ((l = r = !0), (s = "onReverseComplete")) : this._rawPrevTime >= 0 && this._first && (l = !0),
  8200.                                                        (this._rawPrevTime = e);
  8201.                                                    else {
  8202.                                                        if (((this._rawPrevTime = this._duration || !t || e || this._rawPrevTime === e ? e : o), 0 === e && r))
  8203.                                                            for (n = this._first; n && 0 === n._startTime;) n._duration || (r = !1), (n = n._next);
  8204.                                                        (e = 0), this._initted || (l = !0);
  8205.                                                    }
  8206.                                                else {
  8207.                                                    if (this._hasPause && !this._forcingPlayhead && !t) {
  8208.                                                        if (e >= f)
  8209.                                                            for (n = this._first; n && n._startTime <= e && !c;) n._duration || "isPause" !== n.data || n.ratio || (0 === n._startTime && 0 === this._rawPrevTime) || (c = n), (n = n._next);
  8210.                                                        else
  8211.                                                            for (n = this._last; n && n._startTime >= e && !c;) n._duration || ("isPause" === n.data && n._rawPrevTime > 0 && (c = n)), (n = n._prev);
  8212.                                                        c && ((this._time = e = c._startTime), (this._totalTime = e + this._cycle * (this._totalDuration + this._repeatDelay)));
  8213.                                                    }
  8214.                                                    this._totalTime = this._time = this._rawPrevTime = e;
  8215.                                                }
  8216.                                                if ((this._time !== f && this._first) || i || l || c) {
  8217.                                                    if (
  8218.                                                        (this._initted || (this._initted = !0),
  8219.                                                            this._active || (!this._paused && this._time !== f && e > 0 && (this._active = !0)),
  8220.                                                            0 === f && this.vars.onStart && 0 !== this._time && (t || this._callback("onStart")),
  8221.                                                            this._time >= f)
  8222.                                                    )
  8223.                                                        for (n = this._first; n && ((a = n._next), !this._paused || v);)
  8224.                                                            (n._active || (n._startTime <= this._time && !n._paused && !n._gc)) &&
  8225.                                                            (c === n && this.pause(),
  8226.                                                                n._reversed ? n.render((n._dirty ? n.totalDuration() : n._totalDuration) - (e - n._startTime) * n._timeScale, t, i) : n.render((e - n._startTime) * n._timeScale, t, i)),
  8227.                                                            (n = a);
  8228.                                                    else
  8229.                                                        for (n = this._last; n && ((a = n._prev), !this._paused || v);) {
  8230.                                                            if (n._active || (n._startTime <= f && !n._paused && !n._gc)) {
  8231.                                                                if (c === n) {
  8232.                                                                    for (c = n._prev; c && c.endTime() > this._time;)
  8233.                                                                        c.render(c._reversed ? c.totalDuration() - (e - c._startTime) * c._timeScale : (e - c._startTime) * c._timeScale, t, i), (c = c._prev);
  8234.                                                                    (c = null), this.pause();
  8235.                                                                }
  8236.                                                                n._reversed ? n.render((n._dirty ? n.totalDuration() : n._totalDuration) - (e - n._startTime) * n._timeScale, t, i) : n.render((e - n._startTime) * n._timeScale, t, i);
  8237.                                                            }
  8238.                                                            n = a;
  8239.                                                        }
  8240.                                                    this._onUpdate && (t || (u.length && h(), this._callback("onUpdate"))),
  8241.                                                        s &&
  8242.                                                        (this._gc ||
  8243.                                                            ((p === this._startTime || m !== this._timeScale) &&
  8244.                                                                (0 === this._time || d >= this.totalDuration()) &&
  8245.                                                                (r && (u.length && h(), this._timeline.autoRemoveChildren && this._enabled(!1, !1), (this._active = !1)), !t && this.vars[s] && this._callback(s))));
  8246.                                                }
  8247.                                            }),
  8248.                                            (g._hasPausedChild = function () {
  8249.                                                for (var e = this._first; e;) {
  8250.                                                    if (e._paused || (e instanceof r && e._hasPausedChild())) return !0;
  8251.                                                    e = e._next;
  8252.                                                }
  8253.                                                return !1;
  8254.                                            }),
  8255.                                            (g.getChildren = function (e, t, i, r) {
  8256.                                                r = r || -9999999999;
  8257.                                                for (var o = [], a = this._first, s = 0; a;)
  8258.                                                    a._startTime < r || (a instanceof n ? t !== !1 && (o[s++] = a) : (i !== !1 && (o[s++] = a), e !== !1 && ((o = o.concat(a.getChildren(!0, t, i))), (s = o.length)))), (a = a._next);
  8259.                                                return o;
  8260.                                            }),
  8261.                                            (g.getTweensOf = function (e, t) {
  8262.                                                var i,
  8263.                                                    r,
  8264.                                                    o = this._gc,
  8265.                                                    a = [],
  8266.                                                    s = 0;
  8267.                                                for (o && this._enabled(!0, !0), i = n.getTweensOf(e), r = i.length; --r > -1;)(i[r].timeline === this || (t && this._contains(i[r]))) && (a[s++] = i[r]);
  8268.                                                return o && this._enabled(!1, !0), a;
  8269.                                            }),
  8270.                                            (g.recent = function () {
  8271.                                                return this._recent;
  8272.                                            }),
  8273.                                            (g._contains = function (e) {
  8274.                                                for (var t = e.timeline; t;) {
  8275.                                                    if (t === this) return !0;
  8276.                                                    t = t.timeline;
  8277.                                                }
  8278.                                                return !1;
  8279.                                            }),
  8280.                                            (g.shiftChildren = function (e, t, i) {
  8281.                                                i = i || 0;
  8282.                                                for (var n, r = this._first, o = this._labels; r;) r._startTime >= i && (r._startTime += e), (r = r._next);
  8283.                                                if (t)
  8284.                                                    for (n in o) o[n] >= i && (o[n] += e);
  8285.                                                return this._uncache(!0);
  8286.                                            }),
  8287.                                            (g._kill = function (e, t) {
  8288.                                                if (!e && !t) return this._enabled(!1, !1);
  8289.                                                for (var i = t ? this.getTweensOf(t) : this.getChildren(!0, !0, !1), n = i.length, r = !1; --n > -1;) i[n]._kill(e, t) && (r = !0);
  8290.                                                return r;
  8291.                                            }),
  8292.                                            (g.clear = function (e) {
  8293.                                                var t = this.getChildren(!1, !0, !0),
  8294.                                                    i = t.length;
  8295.                                                for (this._time = this._totalTime = 0; --i > -1;) t[i]._enabled(!1, !1);
  8296.                                                return e !== !1 && (this._labels = {}), this._uncache(!0);
  8297.                                            }),
  8298.                                            (g.invalidate = function () {
  8299.                                                for (var t = this._first; t;) t.invalidate(), (t = t._next);
  8300.                                                return e.prototype.invalidate.call(this);
  8301.                                            }),
  8302.                                            (g._enabled = function (e, i) {
  8303.                                                if (e === this._gc)
  8304.                                                    for (var n = this._first; n;) n._enabled(e, !0), (n = n._next);
  8305.                                                return t.prototype._enabled.call(this, e, i);
  8306.                                            }),
  8307.                                            (g.totalTime = function (t, i, n) {
  8308.                                                this._forcingPlayhead = !0;
  8309.                                                var r = e.prototype.totalTime.apply(this, arguments);
  8310.                                                return (this._forcingPlayhead = !1), r;
  8311.                                            }),
  8312.                                            (g.duration = function (e) {
  8313.                                                return arguments.length ? (0 !== this.duration() && 0 !== e && this.timeScale(this._duration / e), this) : (this._dirty && this.totalDuration(), this._duration);
  8314.                                            }),
  8315.                                            (g.totalDuration = function (e) {
  8316.                                                if (!arguments.length) {
  8317.                                                    if (this._dirty) {
  8318.                                                        for (var t, i, n = 0, r = this._last, o = 999999999999; r;)
  8319.                                                            (t = r._prev),
  8320.                                                            r._dirty && r.totalDuration(),
  8321.                                                            r._startTime > o && this._sortChildren && !r._paused ? this.add(r, r._startTime - r._delay) : (o = r._startTime),
  8322.                                                            r._startTime < 0 &&
  8323.                                                            !r._paused &&
  8324.                                                            ((n -= r._startTime), this._timeline.smoothChildTiming && (this._startTime += r._startTime / this._timeScale), this.shiftChildren(-r._startTime, !1, -9999999999), (o = 0)),
  8325.                                                            (i = r._startTime + r._totalDuration / r._timeScale),
  8326.                                                            i > n && (n = i),
  8327.                                                            (r = t);
  8328.                                                        (this._duration = this._totalDuration = n), (this._dirty = !1);
  8329.                                                    }
  8330.                                                    return this._totalDuration;
  8331.                                                }
  8332.                                                return 0 !== this.totalDuration() && 0 !== e && this.timeScale(this._totalDuration / e), this;
  8333.                                            }),
  8334.                                            (g.paused = function (t) {
  8335.                                                if (!t)
  8336.                                                    for (var i = this._first, n = this._time; i;) i._startTime === n && "isPause" === i.data && (i._rawPrevTime = 0), (i = i._next);
  8337.                                                return e.prototype.paused.apply(this, arguments);
  8338.                                            }),
  8339.                                            (g.usesFrames = function () {
  8340.                                                for (var t = this._timeline; t._timeline;) t = t._timeline;
  8341.                                                return t === e._rootFramesTimeline;
  8342.                                            }),
  8343.                                            (g.rawTime = function () {
  8344.                                                return this._paused ? this._totalTime : (this._timeline.rawTime() - this._startTime) * this._timeScale;
  8345.                                            }),
  8346.                                            r
  8347.                                        );
  8348.                                    },
  8349.                                    !0
  8350.                                ),
  8351.                                i._gsDefine(
  8352.                                    "TimelineMax",
  8353.                                    ["TimelineLite", "TweenLite", "easing.Ease"],
  8354.                                    function (e, t, i) {
  8355.                                        var n = function (t) {
  8356.                                                e.call(this, t), (this._repeat = this.vars.repeat || 0), (this._repeatDelay = this.vars.repeatDelay || 0), (this._cycle = 0), (this._yoyo = this.vars.yoyo === !0), (this._dirty = !0);
  8357.                                            },
  8358.                                            r = 1e-10,
  8359.                                            o = t._internals,
  8360.                                            a = o.lazyTweens,
  8361.                                            s = o.lazyRender,
  8362.                                            l = new i(null, null, 1, 0),
  8363.                                            c = (n.prototype = new e());
  8364.                                        return (
  8365.                                            (c.constructor = n),
  8366.                                            (c.kill()._gc = !1),
  8367.                                            (n.version = "1.18.0"),
  8368.                                            (c.invalidate = function () {
  8369.                                                return (this._yoyo = this.vars.yoyo === !0), (this._repeat = this.vars.repeat || 0), (this._repeatDelay = this.vars.repeatDelay || 0), this._uncache(!0), e.prototype.invalidate.call(this);
  8370.                                            }),
  8371.                                            (c.addCallback = function (e, i, n, r) {
  8372.                                                return this.add(t.delayedCall(0, e, n, r), i);
  8373.                                            }),
  8374.                                            (c.removeCallback = function (e, t) {
  8375.                                                if (e)
  8376.                                                    if (null == t) this._kill(null, e);
  8377.                                                    else
  8378.                                                        for (var i = this.getTweensOf(e, !1), n = i.length, r = this._parseTimeOrLabel(t); --n > -1;) i[n]._startTime === r && i[n]._enabled(!1, !1);
  8379.                                                return this;
  8380.                                            }),
  8381.                                            (c.removePause = function (t) {
  8382.                                                return this.removeCallback(e._internals.pauseCallback, t);
  8383.                                            }),
  8384.                                            (c.tweenTo = function (e, i) {
  8385.                                                i = i || {};
  8386.                                                var n,
  8387.                                                    r,
  8388.                                                    o,
  8389.                                                    a = {
  8390.                                                        ease: l,
  8391.                                                        useFrames: this.usesFrames(),
  8392.                                                        immediateRender: !1
  8393.                                                    };
  8394.                                                for (r in i) a[r] = i[r];
  8395.                                                return (
  8396.                                                    (a.time = this._parseTimeOrLabel(e)),
  8397.                                                    (n = Math.abs(Number(a.time) - this._time) / this._timeScale || 0.001),
  8398.                                                    (o = new t(this, n, a)),
  8399.                                                    (a.onStart = function () {
  8400.                                                        o.target.paused(!0),
  8401.                                                            o.vars.time !== o.target.time() && n === o.duration() && o.duration(Math.abs(o.vars.time - o.target.time()) / o.target._timeScale),
  8402.                                                            i.onStart && o._callback("onStart");
  8403.                                                    }),
  8404.                                                    o
  8405.                                                );
  8406.                                            }),
  8407.                                            (c.tweenFromTo = function (e, t, i) {
  8408.                                                (i = i || {}), (e = this._parseTimeOrLabel(e)), (i.startAt = {
  8409.                                                    onComplete: this.seek,
  8410.                                                    onCompleteParams: [e],
  8411.                                                    callbackScope: this
  8412.                                                }), (i.immediateRender = i.immediateRender !== !1);
  8413.                                                var n = this.tweenTo(t, i);
  8414.                                                return n.duration(Math.abs(n.vars.time - e) / this._timeScale || 0.001);
  8415.                                            }),
  8416.                                            (c.render = function (e, t, i) {
  8417.                                                this._gc && this._enabled(!0, !1);
  8418.                                                var n,
  8419.                                                    o,
  8420.                                                    l,
  8421.                                                    c,
  8422.                                                    u,
  8423.                                                    h,
  8424.                                                    d,
  8425.                                                    f = this._dirty ? this.totalDuration() : this._totalDuration,
  8426.                                                    p = this._duration,
  8427.                                                    m = this._time,
  8428.                                                    v = this._totalTime,
  8429.                                                    g = this._startTime,
  8430.                                                    y = this._timeScale,
  8431.                                                    _ = this._rawPrevTime,
  8432.                                                    b = this._paused,
  8433.                                                    x = this._cycle;
  8434.                                                if (e >= f)
  8435.                                                    this._locked || ((this._totalTime = f), (this._cycle = this._repeat)),
  8436.                                                    this._reversed ||
  8437.                                                    this._hasPausedChild() ||
  8438.                                                    ((o = !0),
  8439.                                                        (c = "onComplete"),
  8440.                                                        (u = !!this._timeline.autoRemoveChildren),
  8441.                                                        0 === this._duration && (0 === e || 0 > _ || _ === r) && _ !== e && this._first && ((u = !0), _ > r && (c = "onReverseComplete"))),
  8442.                                                    (this._rawPrevTime = this._duration || !t || e || this._rawPrevTime === e ? e : r),
  8443.                                                    this._yoyo && 0 !== (1 & this._cycle) ? (this._time = e = 0) : ((this._time = p), (e = p + 1e-4));
  8444.                                                else if (1e-7 > e)
  8445.                                                    if (
  8446.                                                        (this._locked || (this._totalTime = this._cycle = 0),
  8447.                                                            (this._time = 0),
  8448.                                                            (0 !== m || (0 === p && _ !== r && (_ > 0 || (0 > e && _ >= 0)) && !this._locked)) && ((c = "onReverseComplete"), (o = this._reversed)),
  8449.                                                            0 > e)
  8450.                                                    )
  8451.                                                        (this._active = !1), this._timeline.autoRemoveChildren && this._reversed ? ((u = o = !0), (c = "onReverseComplete")) : _ >= 0 && this._first && (u = !0), (this._rawPrevTime = e);
  8452.                                                    else {
  8453.                                                        if (((this._rawPrevTime = p || !t || e || this._rawPrevTime === e ? e : r), 0 === e && o))
  8454.                                                            for (n = this._first; n && 0 === n._startTime;) n._duration || (o = !1), (n = n._next);
  8455.                                                        (e = 0), this._initted || (u = !0);
  8456.                                                    }
  8457.                                                else if (
  8458.                                                    (0 === p && 0 > _ && (u = !0),
  8459.                                                        (this._time = this._rawPrevTime = e),
  8460.                                                        this._locked ||
  8461.                                                        ((this._totalTime = e),
  8462.                                                            0 !== this._repeat &&
  8463.                                                            ((h = p + this._repeatDelay),
  8464.                                                                (this._cycle = (this._totalTime / h) >> 0),
  8465.                                                                0 !== this._cycle && this._cycle === this._totalTime / h && this._cycle--,
  8466.                                                                (this._time = this._totalTime - this._cycle * h),
  8467.                                                                this._yoyo && 0 !== (1 & this._cycle) && (this._time = p - this._time),
  8468.                                                                this._time > p ? ((this._time = p), (e = p + 1e-4)) : this._time < 0 ? (this._time = e = 0) : (e = this._time))),
  8469.                                                        this._hasPause && !this._forcingPlayhead && !t)
  8470.                                                ) {
  8471.                                                    if (((e = this._time), e >= m))
  8472.                                                        for (n = this._first; n && n._startTime <= e && !d;) n._duration || "isPause" !== n.data || n.ratio || (0 === n._startTime && 0 === this._rawPrevTime) || (d = n), (n = n._next);
  8473.                                                    else
  8474.                                                        for (n = this._last; n && n._startTime >= e && !d;) n._duration || ("isPause" === n.data && n._rawPrevTime > 0 && (d = n)), (n = n._prev);
  8475.                                                    d && ((this._time = e = d._startTime), (this._totalTime = e + this._cycle * (this._totalDuration + this._repeatDelay)));
  8476.                                                }
  8477.                                                if (this._cycle !== x && !this._locked) {
  8478.                                                    var w = this._yoyo && 0 !== (1 & x),
  8479.                                                        M = w === (this._yoyo && 0 !== (1 & this._cycle)),
  8480.                                                        T = this._totalTime,
  8481.                                                        S = this._cycle,
  8482.                                                        E = this._rawPrevTime,
  8483.                                                        A = this._time;
  8484.                                                    if (
  8485.                                                        ((this._totalTime = x * p),
  8486.                                                            this._cycle < x ? (w = !w) : (this._totalTime += p),
  8487.                                                            (this._time = m),
  8488.                                                            (this._rawPrevTime = 0 === p ? _ - 1e-4 : _),
  8489.                                                            (this._cycle = x),
  8490.                                                            (this._locked = !0),
  8491.                                                            (m = w ? 0 : p),
  8492.                                                            this.render(m, t, 0 === p),
  8493.                                                            t || this._gc || (this.vars.onRepeat && this._callback("onRepeat")),
  8494.                                                            M && ((m = w ? p + 1e-4 : -1e-4), this.render(m, !0, !1)),
  8495.                                                            (this._locked = !1),
  8496.                                                            this._paused && !b)
  8497.                                                    )
  8498.                                                        return;
  8499.                                                    (this._time = A), (this._totalTime = T), (this._cycle = S), (this._rawPrevTime = E);
  8500.                                                }
  8501.                                                if (!((this._time !== m && this._first) || i || u || d)) return void(v !== this._totalTime && this._onUpdate && (t || this._callback("onUpdate")));
  8502.                                                if (
  8503.                                                    (this._initted || (this._initted = !0),
  8504.                                                        this._active || (!this._paused && this._totalTime !== v && e > 0 && (this._active = !0)),
  8505.                                                        0 === v && this.vars.onStart && 0 !== this._totalTime && (t || this._callback("onStart")),
  8506.                                                        this._time >= m)
  8507.                                                )
  8508.                                                    for (n = this._first; n && ((l = n._next), !this._paused || b);)
  8509.                                                        (n._active || (n._startTime <= this._time && !n._paused && !n._gc)) &&
  8510.                                                        (d === n && this.pause(),
  8511.                                                            n._reversed ? n.render((n._dirty ? n.totalDuration() : n._totalDuration) - (e - n._startTime) * n._timeScale, t, i) : n.render((e - n._startTime) * n._timeScale, t, i)),
  8512.                                                        (n = l);
  8513.                                                else
  8514.                                                    for (n = this._last; n && ((l = n._prev), !this._paused || b);) {
  8515.                                                        if (n._active || (n._startTime <= m && !n._paused && !n._gc)) {
  8516.                                                            if (d === n) {
  8517.                                                                for (d = n._prev; d && d.endTime() > this._time;)
  8518.                                                                    d.render(d._reversed ? d.totalDuration() - (e - d._startTime) * d._timeScale : (e - d._startTime) * d._timeScale, t, i), (d = d._prev);
  8519.                                                                (d = null), this.pause();
  8520.                                                            }
  8521.                                                            n._reversed ? n.render((n._dirty ? n.totalDuration() : n._totalDuration) - (e - n._startTime) * n._timeScale, t, i) : n.render((e - n._startTime) * n._timeScale, t, i);
  8522.                                                        }
  8523.                                                        n = l;
  8524.                                                    }
  8525.                                                this._onUpdate && (t || (a.length && s(), this._callback("onUpdate"))),
  8526.                                                    c &&
  8527.                                                    (this._locked ||
  8528.                                                        this._gc ||
  8529.                                                        ((g === this._startTime || y !== this._timeScale) &&
  8530.                                                            (0 === this._time || f >= this.totalDuration()) &&
  8531.                                                            (o && (a.length && s(), this._timeline.autoRemoveChildren && this._enabled(!1, !1), (this._active = !1)), !t && this.vars[c] && this._callback(c))));
  8532.                                            }),
  8533.                                            (c.getActive = function (e, t, i) {
  8534.                                                null == e && (e = !0), null == t && (t = !0), null == i && (i = !1);
  8535.                                                var n,
  8536.                                                    r,
  8537.                                                    o = [],
  8538.                                                    a = this.getChildren(e, t, i),
  8539.                                                    s = 0,
  8540.                                                    l = a.length;
  8541.                                                for (n = 0; l > n; n++)(r = a[n]), r.isActive() && (o[s++] = r);
  8542.                                                return o;
  8543.                                            }),
  8544.                                            (c.getLabelAfter = function (e) {
  8545.                                                e || (0 !== e && (e = this._time));
  8546.                                                var t,
  8547.                                                    i = this.getLabelsArray(),
  8548.                                                    n = i.length;
  8549.                                                for (t = 0; n > t; t++)
  8550.                                                    if (i[t].time > e) return i[t].name;
  8551.                                                return null;
  8552.                                            }),
  8553.                                            (c.getLabelBefore = function (e) {
  8554.                                                null == e && (e = this._time);
  8555.                                                for (var t = this.getLabelsArray(), i = t.length; --i > -1;)
  8556.                                                    if (t[i].time < e) return t[i].name;
  8557.                                                return null;
  8558.                                            }),
  8559.                                            (c.getLabelsArray = function () {
  8560.                                                var e,
  8561.                                                    t = [],
  8562.                                                    i = 0;
  8563.                                                for (e in this._labels) t[i++] = {
  8564.                                                    time: this._labels[e],
  8565.                                                    name: e
  8566.                                                };
  8567.                                                return (
  8568.                                                    t.sort(function (e, t) {
  8569.                                                        return e.time - t.time;
  8570.                                                    }),
  8571.                                                    t
  8572.                                                );
  8573.                                            }),
  8574.                                            (c.progress = function (e, t) {
  8575.                                                return arguments.length ?
  8576.                                                    this.totalTime(this.duration() * (this._yoyo && 0 !== (1 & this._cycle) ? 1 - e : e) + this._cycle * (this._duration + this._repeatDelay), t) :
  8577.                                                    this._time / this.duration();
  8578.                                            }),
  8579.                                            (c.totalProgress = function (e, t) {
  8580.                                                return arguments.length ? this.totalTime(this.totalDuration() * e, t) : this._totalTime / this.totalDuration();
  8581.                                            }),
  8582.                                            (c.totalDuration = function (t) {
  8583.                                                return arguments.length ?
  8584.                                                    -1 === this._repeat ?
  8585.                                                    this :
  8586.                                                    this.duration((t - this._repeat * this._repeatDelay) / (this._repeat + 1)) :
  8587.                                                    (this._dirty && (e.prototype.totalDuration.call(this), (this._totalDuration = -1 === this._repeat ? 999999999999 : this._duration * (this._repeat + 1) + this._repeatDelay * this._repeat)),
  8588.                                                        this._totalDuration);
  8589.                                            }),
  8590.                                            (c.time = function (e, t) {
  8591.                                                return arguments.length ?
  8592.                                                    (this._dirty && this.totalDuration(),
  8593.                                                        e > this._duration && (e = this._duration),
  8594.                                                        this._yoyo && 0 !== (1 & this._cycle) ?
  8595.                                                        (e = this._duration - e + this._cycle * (this._duration + this._repeatDelay)) :
  8596.                                                        0 !== this._repeat && (e += this._cycle * (this._duration + this._repeatDelay)),
  8597.                                                        this.totalTime(e, t)) :
  8598.                                                    this._time;
  8599.                                            }),
  8600.                                            (c.repeat = function (e) {
  8601.                                                return arguments.length ? ((this._repeat = e), this._uncache(!0)) : this._repeat;
  8602.                                            }),
  8603.                                            (c.repeatDelay = function (e) {
  8604.                                                return arguments.length ? ((this._repeatDelay = e), this._uncache(!0)) : this._repeatDelay;
  8605.                                            }),
  8606.                                            (c.yoyo = function (e) {
  8607.                                                return arguments.length ? ((this._yoyo = e), this) : this._yoyo;
  8608.                                            }),
  8609.                                            (c.currentLabel = function (e) {
  8610.                                                return arguments.length ? this.seek(e, !0) : this.getLabelBefore(this._time + 1e-8);
  8611.                                            }),
  8612.                                            n
  8613.                                        );
  8614.                                    },
  8615.                                    !0
  8616.                                ),
  8617.                                (function () {
  8618.                                    var e = 180 / Math.PI,
  8619.                                        t = [],
  8620.                                        n = [],
  8621.                                        r = [],
  8622.                                        o = {},
  8623.                                        a = i._gsDefine.globals,
  8624.                                        s = function (e, t, i, n) {
  8625.                                            (this.a = e), (this.b = t), (this.c = i), (this.d = n), (this.da = n - e), (this.ca = i - e), (this.ba = t - e);
  8626.                                        },
  8627.                                        l = ",x,y,z,left,top,right,bottom,marginTop,marginLeft,marginRight,marginBottom,paddingLeft,paddingTop,paddingRight,paddingBottom,backgroundPosition,backgroundPosition_y,",
  8628.                                        c = function (e, t, i, n) {
  8629.                                            var r = {
  8630.                                                    a: e
  8631.                                                },
  8632.                                                o = {},
  8633.                                                a = {},
  8634.                                                s = {
  8635.                                                    c: n
  8636.                                                },
  8637.                                                l = (e + t) / 2,
  8638.                                                c = (t + i) / 2,
  8639.                                                u = (i + n) / 2,
  8640.                                                h = (l + c) / 2,
  8641.                                                d = (c + u) / 2,
  8642.                                                f = (d - h) / 8;
  8643.                                            return (r.b = l + (e - l) / 4), (o.b = h + f), (r.c = o.a = (r.b + o.b) / 2), (o.c = a.a = (h + d) / 2), (a.b = d - f), (s.b = u + (n - u) / 4), (a.c = s.a = (a.b + s.b) / 2), [r, o, a, s];
  8644.                                        },
  8645.                                        u = function (e, i, o, a, s) {
  8646.                                            var l,
  8647.                                                u,
  8648.                                                h,
  8649.                                                d,
  8650.                                                f,
  8651.                                                p,
  8652.                                                m,
  8653.                                                v,
  8654.                                                g,
  8655.                                                y,
  8656.                                                _,
  8657.                                                b,
  8658.                                                x,
  8659.                                                w = e.length - 1,
  8660.                                                M = 0,
  8661.                                                T = e[0].a;
  8662.                                            for (l = 0; w > l; l++)
  8663.                                                (f = e[M]),
  8664.                                                (u = f.a),
  8665.                                                (h = f.d),
  8666.                                                (d = e[M + 1].d),
  8667.                                                s ?
  8668.                                                ((_ = t[l]),
  8669.                                                    (b = n[l]),
  8670.                                                    (x = ((b + _) * i * 0.25) / (a ? 0.5 : r[l] || 0.5)),
  8671.                                                    (p = h - (h - u) * (a ? 0.5 * i : 0 !== _ ? x / _ : 0)),
  8672.                                                    (m = h + (d - h) * (a ? 0.5 * i : 0 !== b ? x / b : 0)),
  8673.                                                    (v = h - (p + (((m - p) * ((3 * _) / (_ + b) + 0.5)) / 4 || 0)))) :
  8674.                                                ((p = h - (h - u) * i * 0.5), (m = h + (d - h) * i * 0.5), (v = h - (p + m) / 2)),
  8675.                                                (p += v),
  8676.                                                (m += v),
  8677.                                                (f.c = g = p),
  8678.                                                0 !== l ? (f.b = T) : (f.b = T = f.a + 0.6 * (f.c - f.a)),
  8679.                                                (f.da = h - u),
  8680.                                                (f.ca = g - u),
  8681.                                                (f.ba = T - u),
  8682.                                                o ? ((y = c(u, T, g, h)), e.splice(M, 1, y[0], y[1], y[2], y[3]), (M += 4)) : M++,
  8683.                                                (T = m);
  8684.                                            (f = e[M]), (f.b = T), (f.c = T + 0.4 * (f.d - T)), (f.da = f.d - f.a), (f.ca = f.c - f.a), (f.ba = T - f.a), o && ((y = c(f.a, T, f.c, f.d)), e.splice(M, 1, y[0], y[1], y[2], y[3]));
  8685.                                        },
  8686.                                        h = function (e, i, r, o) {
  8687.                                            var a,
  8688.                                                l,
  8689.                                                c,
  8690.                                                u,
  8691.                                                h,
  8692.                                                d,
  8693.                                                f = [];
  8694.                                            if (o)
  8695.                                                for (e = [o].concat(e), l = e.length; --l > -1;) "string" == typeof (d = e[l][i]) && "=" === d.charAt(1) && (e[l][i] = o[i] + Number(d.charAt(0) + d.substr(2)));
  8696.                                            if (((a = e.length - 2), 0 > a)) return (f[0] = new s(e[0][i], 0, 0, e[-1 > a ? 0 : 1][i])), f;
  8697.                                            for (l = 0; a > l; l++)(c = e[l][i]), (u = e[l + 1][i]), (f[l] = new s(c, 0, 0, u)), r && ((h = e[l + 2][i]), (t[l] = (t[l] || 0) + (u - c) * (u - c)), (n[l] = (n[l] || 0) + (h - u) * (h - u)));
  8698.                                            return (f[l] = new s(e[l][i], 0, 0, e[l + 1][i])), f;
  8699.                                        },
  8700.                                        d = function (e, i, a, s, c, d) {
  8701.                                            var f,
  8702.                                                p,
  8703.                                                m,
  8704.                                                v,
  8705.                                                g,
  8706.                                                y,
  8707.                                                _,
  8708.                                                b,
  8709.                                                x = {},
  8710.                                                w = [],
  8711.                                                M = d || e[0];
  8712.                                            (c = "string" == typeof c ? "," + c + "," : l), null == i && (i = 1);
  8713.                                            for (p in e[0]) w.push(p);
  8714.                                            if (e.length > 1) {
  8715.                                                for (b = e[e.length - 1], _ = !0, f = w.length; --f > -1;)
  8716.                                                    if (((p = w[f]), Math.abs(M[p] - b[p]) > 0.05)) {
  8717.                                                        _ = !1;
  8718.                                                        break;
  8719.                                                    }
  8720.                                                _ && ((e = e.concat()), d && e.unshift(d), e.push(e[1]), (d = e[e.length - 3]));
  8721.                                            }
  8722.                                            for (t.length = n.length = r.length = 0, f = w.length; --f > -1;)(p = w[f]), (o[p] = -1 !== c.indexOf("," + p + ",")), (x[p] = h(e, p, o[p], d));
  8723.                                            for (f = t.length; --f > -1;)(t[f] = Math.sqrt(t[f])), (n[f] = Math.sqrt(n[f]));
  8724.                                            if (!s) {
  8725.                                                for (f = w.length; --f > -1;)
  8726.                                                    if (o[p])
  8727.                                                        for (m = x[w[f]], y = m.length - 1, v = 0; y > v; v++)(g = m[v + 1].da / n[v] + m[v].da / t[v]), (r[v] = (r[v] || 0) + g * g);
  8728.                                                for (f = r.length; --f > -1;) r[f] = Math.sqrt(r[f]);
  8729.                                            }
  8730.                                            for (f = w.length, v = a ? 4 : 1; --f > -1;)(p = w[f]), (m = x[p]), u(m, i, a, s, o[p]), _ && (m.splice(0, v), m.splice(m.length - v, v));
  8731.                                            return x;
  8732.                                        },
  8733.                                        f = function (e, t, i) {
  8734.                                            t = t || "soft";
  8735.                                            var n,
  8736.                                                r,
  8737.                                                o,
  8738.                                                a,
  8739.                                                l,
  8740.                                                c,
  8741.                                                u,
  8742.                                                h,
  8743.                                                d,
  8744.                                                f,
  8745.                                                p,
  8746.                                                m = {},
  8747.                                                v = "cubic" === t ? 3 : 2,
  8748.                                                g = "soft" === t,
  8749.                                                y = [];
  8750.                                            if ((g && i && (e = [i].concat(e)), null == e || e.length < v + 1)) throw "invalid Bezier data";
  8751.                                            for (d in e[0]) y.push(d);
  8752.                                            for (c = y.length; --c > -1;) {
  8753.                                                for (d = y[c], m[d] = l = [], f = 0, h = e.length, u = 0; h > u; u++)
  8754.                                                    (n = null == i ? e[u][d] : "string" == typeof (p = e[u][d]) && "=" === p.charAt(1) ? i[d] + Number(p.charAt(0) + p.substr(2)) : Number(p)),
  8755.                                                    g && u > 1 && h - 1 > u && (l[f++] = (n + l[f - 2]) / 2),
  8756.                                                    (l[f++] = n);
  8757.                                                for (h = f - v + 1, f = 0, u = 0; h > u; u += v)
  8758.                                                    (n = l[u]), (r = l[u + 1]), (o = l[u + 2]), (a = 2 === v ? 0 : l[u + 3]), (l[f++] = p = 3 === v ? new s(n, r, o, a) : new s(n, (2 * r + n) / 3, (2 * r + o) / 3, o));
  8759.                                                l.length = f;
  8760.                                            }
  8761.                                            return m;
  8762.                                        },
  8763.                                        p = function (e, t, i) {
  8764.                                            for (var n, r, o, a, s, l, c, u, h, d, f, p = 1 / i, m = e.length; --m > -1;)
  8765.                                                for (d = e[m], o = d.a, a = d.d - o, s = d.c - o, l = d.b - o, n = r = 0, u = 1; i >= u; u++)
  8766.                                                    (c = p * u), (h = 1 - c), (n = r - (r = (c * c * a + 3 * h * (c * s + h * l)) * c)), (f = m * i + u - 1), (t[f] = (t[f] || 0) + n * n);
  8767.                                        },
  8768.                                        m = function (e, t) {
  8769.                                            t = t >> 0 || 6;
  8770.                                            var i,
  8771.                                                n,
  8772.                                                r,
  8773.                                                o,
  8774.                                                a = [],
  8775.                                                s = [],
  8776.                                                l = 0,
  8777.                                                c = 0,
  8778.                                                u = t - 1,
  8779.                                                h = [],
  8780.                                                d = [];
  8781.                                            for (i in e) p(e[i], a, t);
  8782.                                            for (r = a.length, n = 0; r > n; n++)(l += Math.sqrt(a[n])), (o = n % t), (d[o] = l), o === u && ((c += l), (o = (n / t) >> 0), (h[o] = d), (s[o] = c), (l = 0), (d = []));
  8783.                                            return {
  8784.                                                length: c,
  8785.                                                lengths: s,
  8786.                                                segments: h
  8787.                                            };
  8788.                                        },
  8789.                                        v = i._gsDefine.plugin({
  8790.                                            propName: "bezier",
  8791.                                            priority: -1,
  8792.                                            version: "1.3.4",
  8793.                                            API: 2,
  8794.                                            global: !0,
  8795.                                            init: function (e, t, i) {
  8796.                                                (this._target = e),
  8797.                                                t instanceof Array && (t = {
  8798.                                                        values: t
  8799.                                                    }),
  8800.                                                    (this._func = {}),
  8801.                                                    (this._round = {}),
  8802.                                                    (this._props = []),
  8803.                                                    (this._timeRes = null == t.timeResolution ? 6 : parseInt(t.timeResolution, 10));
  8804.                                                var n,
  8805.                                                    r,
  8806.                                                    o,
  8807.                                                    a,
  8808.                                                    s,
  8809.                                                    l = t.values || [],
  8810.                                                    c = {},
  8811.                                                    u = l[0],
  8812.                                                    h = t.autoRotate || i.vars.orientToBezier;
  8813.                                                this._autoRotate = h ? (h instanceof Array ? h : [
  8814.                                                    ["x", "y", "rotation", h === !0 ? 0 : Number(h) || 0]
  8815.                                                ]) : null;
  8816.                                                for (n in u) this._props.push(n);
  8817.                                                for (o = this._props.length; --o > -1;)
  8818.                                                    (n = this._props[o]),
  8819.                                                    this._overwriteProps.push(n),
  8820.                                                    (r = this._func[n] = "function" == typeof e[n]),
  8821.                                                    (c[n] = r ? e[n.indexOf("set") || "function" != typeof e["get" + n.substr(3)] ? n : "get" + n.substr(3)]() : parseFloat(e[n])),
  8822.                                                    s || (c[n] !== l[0][n] && (s = c));
  8823.                                                if (
  8824.                                                    ((this._beziers = "cubic" !== t.type && "quadratic" !== t.type && "soft" !== t.type ? d(l, isNaN(t.curviness) ? 1 : t.curviness, !1, "thruBasic" === t.type, t.correlate, s) : f(l, t.type, c)),
  8825.                                                        (this._segCount = this._beziers[n].length),
  8826.                                                        this._timeRes)
  8827.                                                ) {
  8828.                                                    var p = m(this._beziers, this._timeRes);
  8829.                                                    (this._length = p.length),
  8830.                                                    (this._lengths = p.lengths),
  8831.                                                    (this._segments = p.segments),
  8832.                                                    (this._l1 = this._li = this._s1 = this._si = 0),
  8833.                                                    (this._l2 = this._lengths[0]),
  8834.                                                    (this._curSeg = this._segments[0]),
  8835.                                                    (this._s2 = this._curSeg[0]),
  8836.                                                    (this._prec = 1 / this._curSeg.length);
  8837.                                                }
  8838.                                                if ((h = this._autoRotate))
  8839.                                                    for (this._initialRotations = [], h[0] instanceof Array || (this._autoRotate = h = [h]), o = h.length; --o > -1;) {
  8840.                                                        for (a = 0; 3 > a; a++)(n = h[o][a]), (this._func[n] = "function" == typeof e[n] ? e[n.indexOf("set") || "function" != typeof e["get" + n.substr(3)] ? n : "get" + n.substr(3)] : !1);
  8841.                                                        (n = h[o][2]), (this._initialRotations[o] = this._func[n] ? this._func[n].call(this._target) : this._target[n]);
  8842.                                                    }
  8843.                                                return (this._startRatio = i.vars.runBackwards ? 1 : 0), !0;
  8844.                                            },
  8845.                                            set: function (t) {
  8846.                                                var i,
  8847.                                                    n,
  8848.                                                    r,
  8849.                                                    o,
  8850.                                                    a,
  8851.                                                    s,
  8852.                                                    l,
  8853.                                                    c,
  8854.                                                    u,
  8855.                                                    h,
  8856.                                                    d = this._segCount,
  8857.                                                    f = this._func,
  8858.                                                    p = this._target,
  8859.                                                    m = t !== this._startRatio;
  8860.                                                if (this._timeRes) {
  8861.                                                    if (((u = this._lengths), (h = this._curSeg), (t *= this._length), (r = this._li), t > this._l2 && d - 1 > r)) {
  8862.                                                        for (c = d - 1; c > r && (this._l2 = u[++r]) <= t;);
  8863.                                                        (this._l1 = u[r - 1]), (this._li = r), (this._curSeg = h = this._segments[r]), (this._s2 = h[(this._s1 = this._si = 0)]);
  8864.                                                    } else if (t < this._l1 && r > 0) {
  8865.                                                        for (; r > 0 && (this._l1 = u[--r]) >= t;);
  8866.                                                        0 === r && t < this._l1 ? (this._l1 = 0) : r++,
  8867.                                                            (this._l2 = u[r]),
  8868.                                                            (this._li = r),
  8869.                                                            (this._curSeg = h = this._segments[r]),
  8870.                                                            (this._s1 = h[(this._si = h.length - 1) - 1] || 0),
  8871.                                                            (this._s2 = h[this._si]);
  8872.                                                    }
  8873.                                                    if (((i = r), (t -= this._l1), (r = this._si), t > this._s2 && r < h.length - 1)) {
  8874.                                                        for (c = h.length - 1; c > r && (this._s2 = h[++r]) <= t;);
  8875.                                                        (this._s1 = h[r - 1]), (this._si = r);
  8876.                                                    } else if (t < this._s1 && r > 0) {
  8877.                                                        for (; r > 0 && (this._s1 = h[--r]) >= t;);
  8878.                                                        0 === r && t < this._s1 ? (this._s1 = 0) : r++, (this._s2 = h[r]), (this._si = r);
  8879.                                                    }
  8880.                                                    s = (r + (t - this._s1) / (this._s2 - this._s1)) * this._prec;
  8881.                                                } else(i = 0 > t ? 0 : t >= 1 ? d - 1 : (d * t) >> 0), (s = (t - i * (1 / d)) * d);
  8882.                                                for (n = 1 - s, r = this._props.length; --r > -1;)
  8883.                                                    (o = this._props[r]), (a = this._beziers[o][i]), (l = (s * s * a.da + 3 * n * (s * a.ca + n * a.ba)) * s + a.a), this._round[o] && (l = Math.round(l)), f[o] ? p[o](l) : (p[o] = l);
  8884.                                                if (this._autoRotate) {
  8885.                                                    var v,
  8886.                                                        g,
  8887.                                                        y,
  8888.                                                        _,
  8889.                                                        b,
  8890.                                                        x,
  8891.                                                        w,
  8892.                                                        M = this._autoRotate;
  8893.                                                    for (r = M.length; --r > -1;)
  8894.                                                        (o = M[r][2]),
  8895.                                                        (x = M[r][3] || 0),
  8896.                                                        (w = M[r][4] === !0 ? 1 : e),
  8897.                                                        (a = this._beziers[M[r][0]]),
  8898.                                                        (v = this._beziers[M[r][1]]),
  8899.                                                        a &&
  8900.                                                        v &&
  8901.                                                        ((a = a[i]),
  8902.                                                            (v = v[i]),
  8903.                                                            (g = a.a + (a.b - a.a) * s),
  8904.                                                            (_ = a.b + (a.c - a.b) * s),
  8905.                                                            (g += (_ - g) * s),
  8906.                                                            (_ += (a.c + (a.d - a.c) * s - _) * s),
  8907.                                                            (y = v.a + (v.b - v.a) * s),
  8908.                                                            (b = v.b + (v.c - v.b) * s),
  8909.                                                            (y += (b - y) * s),
  8910.                                                            (b += (v.c + (v.d - v.c) * s - b) * s),
  8911.                                                            (l = m ? Math.atan2(b - y, _ - g) * w + x : this._initialRotations[r]),
  8912.                                                            f[o] ? p[o](l) : (p[o] = l));
  8913.                                                }
  8914.                                            },
  8915.                                        }),
  8916.                                        g = v.prototype;
  8917.                                    (v.bezierThrough = d),
  8918.                                    (v.cubicToQuadratic = c),
  8919.                                    (v._autoCSS = !0),
  8920.                                    (v.quadraticToCubic = function (e, t, i) {
  8921.                                        return new s(e, (2 * t + e) / 3, (2 * t + i) / 3, i);
  8922.                                    }),
  8923.                                    (v._cssRegister = function () {
  8924.                                        var e = a.CSSPlugin;
  8925.                                        if (e) {
  8926.                                            var t = e._internals,
  8927.                                                i = t._parseToProxy,
  8928.                                                n = t._setPluginRatio,
  8929.                                                r = t.CSSPropTween;
  8930.                                            t._registerComplexSpecialProp("bezier", {
  8931.                                                parser: function (e, t, o, a, s, l) {
  8932.                                                    t instanceof Array && (t = {
  8933.                                                        values: t
  8934.                                                    }), (l = new v());
  8935.                                                    var c,
  8936.                                                        u,
  8937.                                                        h,
  8938.                                                        d = t.values,
  8939.                                                        f = d.length - 1,
  8940.                                                        p = [],
  8941.                                                        m = {};
  8942.                                                    if (0 > f) return s;
  8943.                                                    for (c = 0; f >= c; c++)(h = i(e, d[c], a, s, l, f !== c)), (p[c] = h.end);
  8944.                                                    for (u in t) m[u] = t[u];
  8945.                                                    return (
  8946.                                                        (m.values = p),
  8947.                                                        (s = new r(e, "bezier", 0, 0, h.pt, 2)),
  8948.                                                        (s.data = h),
  8949.                                                        (s.plugin = l),
  8950.                                                        (s.setRatio = n),
  8951.                                                        0 === m.autoRotate && (m.autoRotate = !0),
  8952.                                                        !m.autoRotate ||
  8953.                                                        m.autoRotate instanceof Array ||
  8954.                                                        ((c = m.autoRotate === !0 ? 0 : Number(m.autoRotate)),
  8955.                                                            (m.autoRotate = null != h.end.left ? [
  8956.                                                                ["left", "top", "rotation", c, !1]
  8957.                                                            ] : null != h.end.x ? [
  8958.                                                                ["x", "y", "rotation", c, !1]
  8959.                                                            ] : !1)),
  8960.                                                        m.autoRotate && (a._transform || a._enableTransforms(!1), (h.autoRotate = a._target._gsTransform)),
  8961.                                                        l._onInitTween(h.proxy, m, a._tween),
  8962.                                                        s
  8963.                                                    );
  8964.                                                },
  8965.                                            });
  8966.                                        }
  8967.                                    }),
  8968.                                    (g._roundProps = function (e, t) {
  8969.                                        for (var i = this._overwriteProps, n = i.length; --n > -1;)(e[i[n]] || e.bezier || e.bezierThrough) && (this._round[i[n]] = t);
  8970.                                    }),
  8971.                                    (g._kill = function (e) {
  8972.                                        var t,
  8973.                                            i,
  8974.                                            n = this._props;
  8975.                                        for (t in this._beziers)
  8976.                                            if (t in e)
  8977.                                                for (delete this._beziers[t], delete this._func[t], i = n.length; --i > -1;) n[i] === t && n.splice(i, 1);
  8978.                                        return this._super._kill.call(this, e);
  8979.                                    });
  8980.                                })(),
  8981.                                i._gsDefine(
  8982.                                    "plugins.CSSPlugin",
  8983.                                    ["plugins.TweenPlugin", "TweenLite"],
  8984.                                    function (e, t) {
  8985.                                        var n,
  8986.                                            r,
  8987.                                            o,
  8988.                                            a,
  8989.                                            s = function () {
  8990.                                                e.call(this, "css"), (this._overwriteProps.length = 0), (this.setRatio = s.prototype.setRatio);
  8991.                                            },
  8992.                                            l = i._gsDefine.globals,
  8993.                                            c = {},
  8994.                                            u = (s.prototype = new e("css"));
  8995.                                        (u.constructor = s),
  8996.                                        (s.version = "1.18.0"),
  8997.                                        (s.API = 2),
  8998.                                        (s.defaultTransformPerspective = 0),
  8999.                                        (s.defaultSkewType = "compensated"),
  9000.                                        (s.defaultSmoothOrigin = !0),
  9001.                                        (u = "px"),
  9002.                                        (s.suffixMap = {
  9003.                                            top: u,
  9004.                                            right: u,
  9005.                                            bottom: u,
  9006.                                            left: u,
  9007.                                            width: u,
  9008.                                            height: u,
  9009.                                            fontSize: u,
  9010.                                            padding: u,
  9011.                                            margin: u,
  9012.                                            perspective: u,
  9013.                                            lineHeight: ""
  9014.                                        });
  9015.                                        var h,
  9016.                                            d,
  9017.                                            f,
  9018.                                            p,
  9019.                                            m,
  9020.                                            v,
  9021.                                            g = /(?:d|-d|.d|-.d)+/g,
  9022.                                            y = /(?:d|-d|.d|-.d|+=d|-=d|+=.d|-=.d)+/g,
  9023.                                            _ = /(?:+=|-=|-|b)[d-.]+[a-zA-Z0-9]*(?:%|b)/gi,
  9024.                                            b = /(?![+-]?d*.?d+|[+-]|e[+-]d+)[^0-9]/g,
  9025.                                            x = /(?:d|-|+|=|#|.)*/g,
  9026.                                            w = /opacity *= *([^)]*)/i,
  9027.                                            M = /opacity:([^;]*)/i,
  9028.                                            T = /alpha(opacity *=.+?)/i,
  9029.                                            S = /^(rgb|hsl)/,
  9030.                                            E = /([A-Z])/g,
  9031.                                            A = /-([a-z])/gi,
  9032.                                            C = /(^(?:url("|url())|(?:("))$|)$)/gi,
  9033.                                            P = function (e, t) {
  9034.                                                return t.toUpperCase();
  9035.                                            },
  9036.                                            L = /(?:Left|Right|Width)/i,
  9037.                                            R = /(M11|M12|M21|M22)=[d-.e]+/gi,
  9038.                                            O = /progid:DXImageTransform.Microsoft.Matrix(.+?)/i,
  9039.                                            k = /,(?=[^)]*(?:(|$))/gi,
  9040.                                            D = Math.PI / 180,
  9041.                                            I = 180 / Math.PI,
  9042.                                            N = {},
  9043.                                            U = document,
  9044.                                            j = function (e) {
  9045.                                                return U.createElementNS ? U.createElementNS("http://www.w3.org/1999/xhtml", e) : U.createElement(e);
  9046.                                            },
  9047.                                            B = j("div"),
  9048.                                            F = j("img"),
  9049.                                            V = (s._internals = {
  9050.                                                _specialProps: c
  9051.                                            }),
  9052.                                            G = navigator.userAgent,
  9053.                                            z = (function () {
  9054.                                                var e = G.indexOf("Android"),
  9055.                                                    t = j("a");
  9056.                                                return (
  9057.                                                    (f = -1 !== G.indexOf("Safari") && -1 === G.indexOf("Chrome") && (-1 === e || Number(G.substr(e + 8, 1)) > 3)),
  9058.                                                    (m = f && Number(G.substr(G.indexOf("Version/") + 8, 1)) < 6),
  9059.                                                    (p = -1 !== G.indexOf("Firefox")),
  9060.                                                    (/MSIE ([0-9]{1,}[.0-9]{0,})/.exec(G) || /Trident/.*rv:([0-9]{1,}[.0-9]{0,})/.exec(G)) && (v = parseFloat(RegExp.$1)),
  9061.                                                    t ? ((t.style.cssText = "top:1px;opacity:.55;"), /^0.55/.test(t.style.opacity)) : !1
  9062.                                                );
  9063.                                            })(),
  9064.                                            $ = function (e) {
  9065.                                                return w.test("string" == typeof e ? e : (e.currentStyle ? e.currentStyle.filter : e.style.filter) || "") ? parseFloat(RegExp.$1) / 100 : 1;
  9066.                                            },
  9067.                                            H = function (e) {
  9068.                                                window.console && console.log(e);
  9069.                                            },
  9070.                                            W = "",
  9071.                                            X = "",
  9072.                                            Y = function (e, t) {
  9073.                                                t = t || B;
  9074.                                                var i,
  9075.                                                    n,
  9076.                                                    r = t.style;
  9077.                                                if (void 0 !== r[e]) return e;
  9078.                                                for (e = e.charAt(0).toUpperCase() + e.substr(1), i = ["O", "Moz", "ms", "Ms", "Webkit"], n = 5; --n > -1 && void 0 === r[i[n] + e];);
  9079.                                                return n >= 0 ? ((X = 3 === n ? "ms" : i[n]), (W = "-" + X.toLowerCase() + "-"), X + e) : null;
  9080.                                            },
  9081.                                            q = U.defaultView ? U.defaultView.getComputedStyle : function () {},
  9082.                                            Z = (s.getStyle = function (e, t, i, n, r) {
  9083.                                                var o;
  9084.                                                return z || "opacity" !== t ?
  9085.                                                    (!n && e.style[t] ?
  9086.                                                        (o = e.style[t]) :
  9087.                                                        (i = i || q(e)) ?
  9088.                                                        (o = i[t] || i.getPropertyValue(t) || i.getPropertyValue(t.replace(E, "-$1").toLowerCase())) :
  9089.                                                        e.currentStyle && (o = e.currentStyle[t]),
  9090.                                                        null == r || (o && "none" !== o && "auto" !== o && "auto auto" !== o) ? o : r) :
  9091.                                                    $(e);
  9092.                                            }),
  9093.                                            K = (V.convertToPixels = function (e, i, n, r, o) {
  9094.                                                if ("px" === r || !r) return n;
  9095.                                                if ("auto" === r || !n) return 0;
  9096.                                                var a,
  9097.                                                    l,
  9098.                                                    c,
  9099.                                                    u = L.test(i),
  9100.                                                    h = e,
  9101.                                                    d = B.style,
  9102.                                                    f = 0 > n;
  9103.                                                if ((f && (n = -n), "%" === r && -1 !== i.indexOf("border"))) a = (n / 100) * (u ? e.clientWidth : e.clientHeight);
  9104.                                                else {
  9105.                                                    if (((d.cssText = "border:0 solid red;position:" + Z(e, "position") + ";line-height:0;"), "%" !== r && h.appendChild && "v" !== r.charAt(0) && "rem" !== r))
  9106.                                                        d[u ? "borderLeftWidth" : "borderTopWidth"] = n + r;
  9107.                                                    else {
  9108.                                                        if (((h = e.parentNode || U.body), (l = h._gsCache), (c = t.ticker.frame), l && u && l.time === c)) return (l.width * n) / 100;
  9109.                                                        d[u ? "width" : "height"] = n + r;
  9110.                                                    }
  9111.                                                    h.appendChild(B),
  9112.                                                        (a = parseFloat(B[u ? "offsetWidth" : "offsetHeight"])),
  9113.                                                        h.removeChild(B),
  9114.                                                        u && "%" === r && s.cacheWidths !== !1 && ((l = h._gsCache = h._gsCache || {}), (l.time = c), (l.width = (a / n) * 100)),
  9115.                                                        0 !== a || o || (a = K(e, i, n, r, !0));
  9116.                                                }
  9117.                                                return f ? -a : a;
  9118.                                            }),
  9119.                                            Q = (V.calculateOffset = function (e, t, i) {
  9120.                                                if ("absolute" !== Z(e, "position", i)) return 0;
  9121.                                                var n = "left" === t ? "Left" : "Top",
  9122.                                                    r = Z(e, "margin" + n, i);
  9123.                                                return e["offset" + n] - (K(e, t, parseFloat(r), r.replace(x, "")) || 0);
  9124.                                            }),
  9125.                                            J = function (e, t) {
  9126.                                                var i,
  9127.                                                    n,
  9128.                                                    r,
  9129.                                                    o = {};
  9130.                                                if ((t = t || q(e, null)))
  9131.                                                    if ((i = t.length))
  9132.                                                        for (; --i > -1;)(r = t[i]), (-1 === r.indexOf("-transform") || Ee === r) && (o[r.replace(A, P)] = t.getPropertyValue(r));
  9133.                                                    else
  9134.                                                        for (i in t)(-1 === i.indexOf("Transform") || Se === i) && (o[i] = t[i]);
  9135.                                                else if ((t = e.currentStyle || e.style))
  9136.                                                    for (i in t) "string" == typeof i && void 0 === o[i] && (o[i.replace(A, P)] = t[i]);
  9137.                                                return (
  9138.                                                    z || (o.opacity = $(e)),
  9139.                                                    (n = je(e, t, !1)),
  9140.                                                    (o.rotation = n.rotation),
  9141.                                                    (o.skewX = n.skewX),
  9142.                                                    (o.scaleX = n.scaleX),
  9143.                                                    (o.scaleY = n.scaleY),
  9144.                                                    (o.x = n.x),
  9145.                                                    (o.y = n.y),
  9146.                                                    Ce && ((o.z = n.z), (o.rotationX = n.rotationX), (o.rotationY = n.rotationY), (o.scaleZ = n.scaleZ)),
  9147.                                                    o.filters && delete o.filters,
  9148.                                                    o
  9149.                                                );
  9150.                                            },
  9151.                                            ee = function (e, t, i, n, r) {
  9152.                                                var o,
  9153.                                                    a,
  9154.                                                    s,
  9155.                                                    l = {},
  9156.                                                    c = e.style;
  9157.                                                for (a in i)
  9158.                                                    "cssText" !== a &&
  9159.                                                    "length" !== a &&
  9160.                                                    isNaN(a) &&
  9161.                                                    (t[a] !== (o = i[a]) || (r && r[a])) &&
  9162.                                                    -1 === a.indexOf("Origin") &&
  9163.                                                    ("number" == typeof o || "string" == typeof o) &&
  9164.                                                    ((l[a] = "auto" !== o || ("left" !== a && "top" !== a) ? (("" !== o && "auto" !== o && "none" !== o) || "string" != typeof t[a] || "" === t[a].replace(b, "") ? o : 0) : Q(e, a)),
  9165.                                                        void 0 !== c[a] && (s = new me(c, a, c[a], s)));
  9166.                                                if (n)
  9167.                                                    for (a in n) "className" !== a && (l[a] = n[a]);
  9168.                                                return {
  9169.                                                    difs: l,
  9170.                                                    firstMPT: s
  9171.                                                };
  9172.                                            },
  9173.                                            te = {
  9174.                                                width: ["Left", "Right"],
  9175.                                                height: ["Top", "Bottom"]
  9176.                                            },
  9177.                                            ie = ["marginLeft", "marginRight", "marginTop", "marginBottom"],
  9178.                                            ne = function (e, t, i) {
  9179.                                                var n = parseFloat("width" === t ? e.offsetWidth : e.offsetHeight),
  9180.                                                    r = te[t],
  9181.                                                    o = r.length;
  9182.                                                for (i = i || q(e, null); --o > -1;)(n -= parseFloat(Z(e, "padding" + r[o], i, !0)) || 0), (n -= parseFloat(Z(e, "border" + r[o] + "Width", i, !0)) || 0);
  9183.                                                return n;
  9184.                                            },
  9185.                                            re = function (e, t) {
  9186.                                                if ("contain" === e || "auto" === e || "auto auto" === e) return e + " ";
  9187.                                                (null == e || "" === e) && (e = "0 0");
  9188.                                                var i = e.split(" "),
  9189.                                                    n = -1 !== e.indexOf("left") ? "0%" : -1 !== e.indexOf("right") ? "100%" : i[0],
  9190.                                                    r = -1 !== e.indexOf("top") ? "0%" : -1 !== e.indexOf("bottom") ? "100%" : i[1];
  9191.                                                return (
  9192.                                                    null == r ? (r = "center" === n ? "50%" : "0") : "center" === r && (r = "50%"),
  9193.                                                    ("center" === n || (isNaN(parseFloat(n)) && -1 === (n + "").indexOf("="))) && (n = "50%"),
  9194.                                                    (e = n + " " + r + (i.length > 2 ? " " + i[2] : "")),
  9195.                                                    t &&
  9196.                                                    ((t.oxp = -1 !== n.indexOf("%")),
  9197.                                                        (t.oyp = -1 !== r.indexOf("%")),
  9198.                                                        (t.oxr = "=" === n.charAt(1)),
  9199.                                                        (t.oyr = "=" === r.charAt(1)),
  9200.                                                        (t.ox = parseFloat(n.replace(b, ""))),
  9201.                                                        (t.oy = parseFloat(r.replace(b, ""))),
  9202.                                                        (t.v = e)),
  9203.                                                    t || e
  9204.                                                );
  9205.                                            },
  9206.                                            oe = function (e, t) {
  9207.                                                return "string" == typeof e && "=" === e.charAt(1) ? parseInt(e.charAt(0) + "1", 10) * parseFloat(e.substr(2)) : parseFloat(e) - parseFloat(t);
  9208.                                            },
  9209.                                            ae = function (e, t) {
  9210.                                                return null == e ? t : "string" == typeof e && "=" === e.charAt(1) ? parseInt(e.charAt(0) + "1", 10) * parseFloat(e.substr(2)) + t : parseFloat(e);
  9211.                                            },
  9212.                                            se = function (e, t, i, n) {
  9213.                                                var r,
  9214.                                                    o,
  9215.                                                    a,
  9216.                                                    s,
  9217.                                                    l,
  9218.                                                    c = 1e-6;
  9219.                                                return (
  9220.                                                    null == e ?
  9221.                                                    (s = t) :
  9222.                                                    "number" == typeof e ?
  9223.                                                    (s = e) :
  9224.                                                    ((r = 360),
  9225.                                                        (o = e.split("_")),
  9226.                                                        (l = "=" === e.charAt(1)),
  9227.                                                        (a = (l ? parseInt(e.charAt(0) + "1", 10) * parseFloat(o[0].substr(2)) : parseFloat(o[0])) * (-1 === e.indexOf("rad") ? 1 : I) - (l ? 0 : t)),
  9228.                                                        o.length &&
  9229.                                                        (n && (n[i] = t + a),
  9230.                                                            -1 !== e.indexOf("short") && ((a %= r), a !== a % (r / 2) && (a = 0 > a ? a + r : a - r)),
  9231.                                                            -1 !== e.indexOf("_cw") && 0 > a ? (a = ((a + 9999999999 * r) % r) - ((a / r) | 0) * r) : -1 !== e.indexOf("ccw") && a > 0 && (a = ((a - 9999999999 * r) % r) - ((a / r) | 0) * r)),
  9232.                                                        (s = t + a)),
  9233.                                                    c > s && s > -c && (s = 0),
  9234.                                                    s
  9235.                                                );
  9236.                                            },
  9237.                                            le = {
  9238.                                                aqua: [0, 255, 255],
  9239.                                                lime: [0, 255, 0],
  9240.                                                silver: [192, 192, 192],
  9241.                                                black: [0, 0, 0],
  9242.                                                maroon: [128, 0, 0],
  9243.                                                teal: [0, 128, 128],
  9244.                                                blue: [0, 0, 255],
  9245.                                                navy: [0, 0, 128],
  9246.                                                white: [255, 255, 255],
  9247.                                                fuchsia: [255, 0, 255],
  9248.                                                olive: [128, 128, 0],
  9249.                                                yellow: [255, 255, 0],
  9250.                                                orange: [255, 165, 0],
  9251.                                                gray: [128, 128, 128],
  9252.                                                purple: [128, 0, 128],
  9253.                                                green: [0, 128, 0],
  9254.                                                red: [255, 0, 0],
  9255.                                                pink: [255, 192, 203],
  9256.                                                cyan: [0, 255, 255],
  9257.                                                transparent: [255, 255, 255, 0],
  9258.                                            },
  9259.                                            ce = function (e, t, i) {
  9260.                                                return (e = 0 > e ? e + 1 : e > 1 ? e - 1 : e), (255 * (1 > 6 * e ? t + (i - t) * e * 6 : 0.5 > e ? i : 2 > 3 * e ? t + (i - t) * (2 / 3 - e) * 6 : t) + 0.5) | 0;
  9261.                                            },
  9262.                                            ue = (s.parseColor = function (e, t) {
  9263.                                                var i, n, r, o, a, s, l, c, u, h, d;
  9264.                                                if (e)
  9265.                                                    if ("number" == typeof e) i = [e >> 16, (e >> 8) & 255, 255 & e];
  9266.                                                    else {
  9267.                                                        if (("," === e.charAt(e.length - 1) && (e = e.substr(0, e.length - 1)), le[e])) i = le[e];
  9268.                                                        else if ("#" === e.charAt(0))
  9269.                                                            4 === e.length && ((n = e.charAt(1)), (r = e.charAt(2)), (o = e.charAt(3)), (e = "#" + n + n + r + r + o + o)),
  9270.                                                            (e = parseInt(e.substr(1), 16)),
  9271.                                                            (i = [e >> 16, (e >> 8) & 255, 255 & e]);
  9272.                                                        else if ("hsl" === e.substr(0, 3))
  9273.                                                            if (((i = d = e.match(g)), t)) {
  9274.                                                                if (-1 !== e.indexOf("=")) return e.match(y);
  9275.                                                            } else
  9276.                                                                (a = (Number(i[0]) % 360) / 360),
  9277.                                                                (s = Number(i[1]) / 100),
  9278.                                                                (l = Number(i[2]) / 100),
  9279.                                                                (r = 0.5 >= l ? l * (s + 1) : l + s - l * s),
  9280.                                                                (n = 2 * l - r),
  9281.                                                                i.length > 3 && (i[3] = Number(e[3])),
  9282.                                                                (i[0] = ce(a + 1 / 3, n, r)),
  9283.                                                                (i[1] = ce(a, n, r)),
  9284.                                                                (i[2] = ce(a - 1 / 3, n, r));
  9285.                                                        else i = e.match(g) || le.transparent;
  9286.                                                        (i[0] = Number(i[0])), (i[1] = Number(i[1])), (i[2] = Number(i[2])), i.length > 3 && (i[3] = Number(i[3]));
  9287.                                                    }
  9288.                                                else i = le.black;
  9289.                                                return (
  9290.                                                    t &&
  9291.                                                    !d &&
  9292.                                                    ((n = i[0] / 255),
  9293.                                                        (r = i[1] / 255),
  9294.                                                        (o = i[2] / 255),
  9295.                                                        (c = Math.max(n, r, o)),
  9296.                                                        (u = Math.min(n, r, o)),
  9297.                                                        (l = (c + u) / 2),
  9298.                                                        c === u ?
  9299.                                                        (a = s = 0) :
  9300.                                                        ((h = c - u), (s = l > 0.5 ? h / (2 - c - u) : h / (c + u)), (a = c === n ? (r - o) / h + (o > r ? 6 : 0) : c === r ? (o - n) / h + 2 : (n - r) / h + 4), (a *= 60)),
  9301.                                                        (i[0] = (a + 0.5) | 0),
  9302.                                                        (i[1] = (100 * s + 0.5) | 0),
  9303.                                                        (i[2] = (100 * l + 0.5) | 0)),
  9304.                                                    i
  9305.                                                );
  9306.                                            }),
  9307.                                            he = function (e, t) {
  9308.                                                var i,
  9309.                                                    n,
  9310.                                                    r,
  9311.                                                    o = e.match(de) || [],
  9312.                                                    a = 0,
  9313.                                                    s = o.length ? "" : e;
  9314.                                                for (i = 0; i < o.length; i++)
  9315.                                                    (n = o[i]),
  9316.                                                    (r = e.substr(a, e.indexOf(n, a) - a)),
  9317.                                                    (a += r.length + n.length),
  9318.                                                    (n = ue(n, t)),
  9319.                                                    3 === n.length && n.push(1),
  9320.                                                    (s += r + (t ? "hsla(" + n[0] + "," + n[1] + "%," + n[2] + "%," + n[3] : "rgba(" + n.join(",")) + ")");
  9321.                                                return s;
  9322.                                            },
  9323.                                            de = "(?:\b(?:(?:rgb|rgba|hsl|hsla)\(.+?\))|\B#.+?\b";
  9324.                                        for (u in le) de += "|" + u + "\b";
  9325.                                        (de = new RegExp(de + ")", "gi")),
  9326.                                        (s.colorStringFilter = function (e) {
  9327.                                            var t,
  9328.                                                i = e[0] + e[1];
  9329.                                            (de.lastIndex = 0), de.test(i) && ((t = -1 !== i.indexOf("hsl(") || -1 !== i.indexOf("hsla(")), (e[0] = he(e[0], t)), (e[1] = he(e[1], t)));
  9330.                                        }),
  9331.                                        t.defaultStringFilter || (t.defaultStringFilter = s.colorStringFilter);
  9332.                                        var fe = function (e, t, i, n) {
  9333.                                                if (null == e)
  9334.                                                    return function (e) {
  9335.                                                        return e;
  9336.                                                    };
  9337.                                                var r,
  9338.                                                    o = t ? (e.match(de) || [""])[0] : "",
  9339.                                                    a = e.split(o).join("").match(_) || [],
  9340.                                                    s = e.substr(0, e.indexOf(a[0])),
  9341.                                                    l = ")" === e.charAt(e.length - 1) ? ")" : "",
  9342.                                                    c = -1 !== e.indexOf(" ") ? " " : ",",
  9343.                                                    u = a.length,
  9344.                                                    h = u > 0 ? a[0].replace(g, "") : "";
  9345.                                                return u ?
  9346.                                                    (r = t ?
  9347.                                                        function (e) {
  9348.                                                            var t, d, f, p;
  9349.                                                            if ("number" == typeof e) e += h;
  9350.                                                            else if (n && k.test(e)) {
  9351.                                                                for (p = e.replace(k, "|").split("|"), f = 0; f < p.length; f++) p[f] = r(p[f]);
  9352.                                                                return p.join(",");
  9353.                                                            }
  9354.                                                            if (((t = (e.match(de) || [o])[0]), (d = e.split(t).join("").match(_) || []), (f = d.length), u > f--))
  9355.                                                                for (; ++f < u;) d[f] = i ? d[((f - 1) / 2) | 0] : a[f];
  9356.                                                            return s + d.join(c) + c + t + l + (-1 !== e.indexOf("inset") ? " inset" : "");
  9357.                                                        } :
  9358.                                                        function (e) {
  9359.                                                            var t, o, d;
  9360.                                                            if ("number" == typeof e) e += h;
  9361.                                                            else if (n && k.test(e)) {
  9362.                                                                for (o = e.replace(k, "|").split("|"), d = 0; d < o.length; d++) o[d] = r(o[d]);
  9363.                                                                return o.join(",");
  9364.                                                            }
  9365.                                                            if (((t = e.match(_) || []), (d = t.length), u > d--))
  9366.                                                                for (; ++d < u;) t[d] = i ? t[((d - 1) / 2) | 0] : a[d];
  9367.                                                            return s + t.join(c) + l;
  9368.                                                        }) :
  9369.                                                    function (e) {
  9370.                                                        return e;
  9371.                                                    };
  9372.                                            },
  9373.                                            pe = function (e) {
  9374.                                                return (
  9375.                                                    (e = e.split(",")),
  9376.                                                    function (t, i, n, r, o, a, s) {
  9377.                                                        var l,
  9378.                                                            c = (i + "").split(" ");
  9379.                                                        for (s = {}, l = 0; 4 > l; l++) s[e[l]] = c[l] = c[l] || c[((l - 1) / 2) >> 0];
  9380.                                                        return r.parse(t, s, o, a);
  9381.                                                    }
  9382.                                                );
  9383.                                            },
  9384.                                            me =
  9385.                                            ((V._setPluginRatio = function (e) {
  9386.                                                    this.plugin.setRatio(e);
  9387.                                                    for (var t, i, n, r, o = this.data, a = o.proxy, s = o.firstMPT, l = 1e-6; s;)(t = a[s.v]), s.r ? (t = Math.round(t)) : l > t && t > -l && (t = 0), (s.t[s.p] = t), (s = s._next);
  9388.                                                    if ((o.autoRotate && (o.autoRotate.rotation = a.rotation), 1 === e))
  9389.                                                        for (s = o.firstMPT; s;) {
  9390.                                                            if (((i = s.t), i.type)) {
  9391.                                                                if (1 === i.type) {
  9392.                                                                    for (r = i.xs0 + i.s + i.xs1, n = 1; n < i.l; n++) r += i["xn" + n] + i["xs" + (n + 1)];
  9393.                                                                    i.e = r;
  9394.                                                                }
  9395.                                                            } else i.e = i.s + i.xs0;
  9396.                                                            s = s._next;
  9397.                                                        }
  9398.                                                }),
  9399.                                                function (e, t, i, n, r) {
  9400.                                                    (this.t = e), (this.p = t), (this.v = i), (this.r = r), n && ((n._prev = this), (this._next = n));
  9401.                                                }),
  9402.                                            ve =
  9403.                                            ((V._parseToProxy = function (e, t, i, n, r, o) {
  9404.                                                    var a,
  9405.                                                        s,
  9406.                                                        l,
  9407.                                                        c,
  9408.                                                        u,
  9409.                                                        h = n,
  9410.                                                        d = {},
  9411.                                                        f = {},
  9412.                                                        p = i._transform,
  9413.                                                        m = N;
  9414.                                                    for (i._transform = null, N = t, n = u = i.parse(e, t, n, r), N = m, o && ((i._transform = p), h && ((h._prev = null), h._prev && (h._prev._next = null))); n && n !== h;) {
  9415.                                                        if (n.type <= 1 && ((s = n.p), (f[s] = n.s + n.c), (d[s] = n.s), o || ((c = new me(n, "s", s, c, n.r)), (n.c = 0)), 1 === n.type))
  9416.                                                            for (a = n.l; --a > 0;)(l = "xn" + a), (s = n.p + "_" + l), (f[s] = n.data[l]), (d[s] = n[l]), o || (c = new me(n, l, s, c, n.rxp[l]));
  9417.                                                        n = n._next;
  9418.                                                    }
  9419.                                                    return {
  9420.                                                        proxy: d,
  9421.                                                        end: f,
  9422.                                                        firstMPT: c,
  9423.                                                        pt: u
  9424.                                                    };
  9425.                                                }),
  9426.                                                (V.CSSPropTween = function (e, t, i, r, o, s, l, c, u, h, d) {
  9427.                                                    (this.t = e),
  9428.                                                    (this.p = t),
  9429.                                                    (this.s = i),
  9430.                                                    (this.c = r),
  9431.                                                    (this.n = l || t),
  9432.                                                    e instanceof ve || a.push(this.n),
  9433.                                                        (this.r = c),
  9434.                                                        (this.type = s || 0),
  9435.                                                        u && ((this.pr = u), (n = !0)),
  9436.                                                        (this.b = void 0 === h ? i : h),
  9437.                                                        (this.e = void 0 === d ? i + r : d),
  9438.                                                        o && ((this._next = o), (o._prev = this));
  9439.                                                })),
  9440.                                            ge = function (e, t, i, n, r, o) {
  9441.                                                var a = new ve(e, t, i, n - i, r, -1, o);
  9442.                                                return (a.b = i), (a.e = a.xs0 = n), a;
  9443.                                            },
  9444.                                            ye = (s.parseComplex = function (e, t, i, n, r, o, a, s, l, c) {
  9445.                                                (i = i || o || ""), (a = new ve(e, t, 0, 0, a, c ? 2 : 1, null, !1, s, i, n)), (n += "");
  9446.                                                var u,
  9447.                                                    d,
  9448.                                                    f,
  9449.                                                    p,
  9450.                                                    m,
  9451.                                                    v,
  9452.                                                    _,
  9453.                                                    b,
  9454.                                                    x,
  9455.                                                    w,
  9456.                                                    M,
  9457.                                                    T,
  9458.                                                    S,
  9459.                                                    E = i.split(", ").join(",").split(" "),
  9460.                                                    A = n.split(", ").join(",").split(" "),
  9461.                                                    C = E.length,
  9462.                                                    P = h !== !1;
  9463.                                                for (
  9464.                                                    (-1 !== n.indexOf(",") || -1 !== i.indexOf(",")) && ((E = E.join(" ").replace(k, ", ").split(" ")), (A = A.join(" ").replace(k, ", ").split(" ")), (C = E.length)),
  9465.                                                    C !== A.length && ((E = (o || "").split(" ")), (C = E.length)),
  9466.                                                    a.plugin = l,
  9467.                                                    a.setRatio = c,
  9468.                                                    de.lastIndex = 0,
  9469.                                                    u = 0; C > u; u++
  9470.                                                )
  9471.                                                    if (((p = E[u]), (m = A[u]), (b = parseFloat(p)), b || 0 === b)) a.appendXtra("", b, oe(m, b), m.replace(y, ""), P && -1 !== m.indexOf("px"), !0);
  9472.                                                    else if (r && de.test(p))
  9473.                                                    (T = "," === m.charAt(m.length - 1) ? ")," : ")"),
  9474.                                                    (S = -1 !== m.indexOf("hsl") && z),
  9475.                                                    (p = ue(p, S)),
  9476.                                                    (m = ue(m, S)),
  9477.                                                    (x = p.length + m.length > 6),
  9478.                                                    x && !z && 0 === m[3] ?
  9479.                                                    ((a["xs" + a.l] += a.l ? " transparent" : "transparent"), (a.e = a.e.split(A[u]).join("transparent"))) :
  9480.                                                    (z || (x = !1),
  9481.                                                        S ?
  9482.                                                        a
  9483.                                                        .appendXtra(x ? "hsla(" : "hsl(", p[0], oe(m[0], p[0]), ",", !1, !0)
  9484.                                                        .appendXtra("", p[1], oe(m[1], p[1]), "%,", !1)
  9485.                                                        .appendXtra("", p[2], oe(m[2], p[2]), x ? "%," : "%" + T, !1) :
  9486.                                                        a
  9487.                                                        .appendXtra(x ? "rgba(" : "rgb(", p[0], m[0] - p[0], ",", !0, !0)
  9488.                                                        .appendXtra("", p[1], m[1] - p[1], ",", !0)
  9489.                                                        .appendXtra("", p[2], m[2] - p[2], x ? "," : T, !0),
  9490.                                                        x && ((p = p.length < 4 ? 1 : p[3]), a.appendXtra("", p, (m.length < 4 ? 1 : m[3]) - p, T, !1))),
  9491.                                                    (de.lastIndex = 0);
  9492.                                                else if ((v = p.match(g))) {
  9493.                                                    if (((_ = m.match(y)), !_ || _.length !== v.length)) return a;
  9494.                                                    for (f = 0, d = 0; d < v.length; d++)
  9495.                                                        (M = v[d]), (w = p.indexOf(M, f)), a.appendXtra(p.substr(f, w - f), Number(M), oe(_[d], M), "", P && "px" === p.substr(w + M.length, 2), 0 === d), (f = w + M.length);
  9496.                                                    a["xs" + a.l] += p.substr(f);
  9497.                                                } else a["xs" + a.l] += a.l ? " " + p : p;
  9498.                                                if (-1 !== n.indexOf("=") && a.data) {
  9499.                                                    for (T = a.xs0 + a.data.s, u = 1; u < a.l; u++) T += a["xs" + u] + a.data["xn" + u];
  9500.                                                    a.e = T + a["xs" + u];
  9501.                                                }
  9502.                                                return a.l || ((a.type = -1), (a.xs0 = a.e)), a.xfirst || a;
  9503.                                            }),
  9504.                                            _e = 9;
  9505.                                        for (u = ve.prototype, u.l = u.pr = 0; --_e > 0;)(u["xn" + _e] = 0), (u["xs" + _e] = "");
  9506.                                        (u.xs0 = ""),
  9507.                                        (u._next = u._prev = u.xfirst = u.data = u.plugin = u.setRatio = u.rxp = null),
  9508.                                        (u.appendXtra = function (e, t, i, n, r, o) {
  9509.                                            var a = this,
  9510.                                                s = a.l;
  9511.                                            return (
  9512.                                                (a["xs" + s] += o && s ? " " + e : e || ""),
  9513.                                                i || 0 === s || a.plugin ?
  9514.                                                (a.l++,
  9515.                                                    (a.type = a.setRatio ? 2 : 1),
  9516.                                                    (a["xs" + a.l] = n || ""),
  9517.                                                    s > 0 ?
  9518.                                                    ((a.data["xn" + s] = t + i), (a.rxp["xn" + s] = r), (a["xn" + s] = t), a.plugin || ((a.xfirst = new ve(a, "xn" + s, t, i, a.xfirst || a, 0, a.n, r, a.pr)), (a.xfirst.xs0 = 0)), a) :
  9519.                                                    ((a.data = {
  9520.                                                        s: t + i
  9521.                                                    }), (a.rxp = {}), (a.s = t), (a.c = i), (a.r = r), a)) :
  9522.                                                ((a["xs" + s] += t + (n || "")), a)
  9523.                                            );
  9524.                                        });
  9525.                                        var be = function (e, t) {
  9526.                                                (t = t || {}),
  9527.                                                (this.p = t.prefix ? Y(e) || e : e),
  9528.                                                (c[e] = c[this.p] = this),
  9529.                                                (this.format = t.formatter || fe(t.defaultValue, t.color, t.collapsible, t.multi)),
  9530.                                                t.parser && (this.parse = t.parser),
  9531.                                                    (this.clrs = t.color),
  9532.                                                    (this.multi = t.multi),
  9533.                                                    (this.keyword = t.keyword),
  9534.                                                    (this.dflt = t.defaultValue),
  9535.                                                    (this.pr = t.priority || 0);
  9536.                                            },
  9537.                                            xe = (V._registerComplexSpecialProp = function (e, t, i) {
  9538.                                                "object" != typeof t && (t = {
  9539.                                                    parser: i
  9540.                                                });
  9541.                                                var n,
  9542.                                                    r,
  9543.                                                    o = e.split(","),
  9544.                                                    a = t.defaultValue;
  9545.                                                for (i = i || [a], n = 0; n < o.length; n++)(t.prefix = 0 === n && t.prefix), (t.defaultValue = i[n] || a), (r = new be(o[n], t));
  9546.                                            }),
  9547.                                            we = function (e) {
  9548.                                                if (!c[e]) {
  9549.                                                    var t = e.charAt(0).toUpperCase() + e.substr(1) + "Plugin";
  9550.                                                    xe(e, {
  9551.                                                        parser: function (e, i, n, r, o, a, s) {
  9552.                                                            var u = l.com.greensock.plugins[t];
  9553.                                                            return u ? (u._cssRegister(), c[n].parse(e, i, n, r, o, a, s)) : (H("Error: " + t + " js file not loaded."), o);
  9554.                                                        },
  9555.                                                    });
  9556.                                                }
  9557.                                            };
  9558.                                        (u = be.prototype),
  9559.                                        (u.parseComplex = function (e, t, i, n, r, o) {
  9560.                                            var a,
  9561.                                                s,
  9562.                                                l,
  9563.                                                c,
  9564.                                                u,
  9565.                                                h,
  9566.                                                d = this.keyword;
  9567.                                            if ((this.multi && (k.test(i) || k.test(t) ? ((s = t.replace(k, "|").split("|")), (l = i.replace(k, "|").split("|"))) : d && ((s = [t]), (l = [i]))), l)) {
  9568.                                                for (c = l.length > s.length ? l.length : s.length, a = 0; c > a; a++)
  9569.                                                    (t = s[a] = s[a] || this.dflt),
  9570.                                                    (i = l[a] = l[a] || this.dflt),
  9571.                                                    d && ((u = t.indexOf(d)), (h = i.indexOf(d)), u !== h && (-1 === h ? (s[a] = s[a].split(d).join("")) : -1 === u && (s[a] += " " + d)));
  9572.                                                (t = s.join(", ")), (i = l.join(", "));
  9573.                                            }
  9574.                                            return ye(e, this.p, t, i, this.clrs, this.dflt, n, this.pr, r, o);
  9575.                                        }),
  9576.                                        (u.parse = function (e, t, i, n, r, a, s) {
  9577.                                            return this.parseComplex(e.style, this.format(Z(e, this.p, o, !1, this.dflt)), this.format(t), r, a);
  9578.                                        }),
  9579.                                        (s.registerSpecialProp = function (e, t, i) {
  9580.                                            xe(e, {
  9581.                                                parser: function (e, n, r, o, a, s, l) {
  9582.                                                    var c = new ve(e, r, 0, 0, a, 2, r, !1, i);
  9583.                                                    return (c.plugin = s), (c.setRatio = t(e, n, o._tween, r)), c;
  9584.                                                },
  9585.                                                priority: i,
  9586.                                            });
  9587.                                        }),
  9588.                                        (s.useSVGTransformAttr = f || p);
  9589.                                        var Me,
  9590.                                            Te = "scaleX,scaleY,scaleZ,x,y,z,skewX,skewY,rotation,rotationX,rotationY,perspective,xPercent,yPercent".split(","),
  9591.                                            Se = Y("transform"),
  9592.                                            Ee = W + "transform",
  9593.                                            Ae = Y("transformOrigin"),
  9594.                                            Ce = null !== Y("perspective"),
  9595.                                            Pe = (V.Transform = function () {
  9596.                                                (this.perspective = parseFloat(s.defaultTransformPerspective) || 0), (this.force3D = s.defaultForce3D !== !1 && Ce ? s.defaultForce3D || "auto" : !1);
  9597.                                            }),
  9598.                                            Le = window.SVGElement,
  9599.                                            Re = function (e, t, i) {
  9600.                                                var n,
  9601.                                                    r = U.createElementNS("http://www.w3.org/2000/svg", e),
  9602.                                                    o = /([a-z])([A-Z])/g;
  9603.                                                for (n in i) r.setAttributeNS(null, n.replace(o, "$1-$2").toLowerCase(), i[n]);
  9604.                                                return t.appendChild(r), r;
  9605.                                            },
  9606.                                            Oe = U.documentElement,
  9607.                                            ke = (function () {
  9608.                                                var e,
  9609.                                                    t,
  9610.                                                    i,
  9611.                                                    n = v || (/Android/i.test(G) && !window.chrome);
  9612.                                                return (
  9613.                                                    U.createElementNS &&
  9614.                                                    !n &&
  9615.                                                    ((e = Re("svg", Oe)),
  9616.                                                        (t = Re("rect", e, {
  9617.                                                            width: 100,
  9618.                                                            height: 50,
  9619.                                                            x: 100
  9620.                                                        })),
  9621.                                                        (i = t.getBoundingClientRect().width),
  9622.                                                        (t.style[Ae] = "50% 50%"),
  9623.                                                        (t.style[Se] = "scaleX(0.5)"),
  9624.                                                        (n = i === t.getBoundingClientRect().width && !(p && Ce)),
  9625.                                                        Oe.removeChild(e)),
  9626.                                                    n
  9627.                                                );
  9628.                                            })(),
  9629.                                            De = function (e, t, i, n, r) {
  9630.                                                var o,
  9631.                                                    a,
  9632.                                                    l,
  9633.                                                    c,
  9634.                                                    u,
  9635.                                                    h,
  9636.                                                    d,
  9637.                                                    f,
  9638.                                                    p,
  9639.                                                    m,
  9640.                                                    v,
  9641.                                                    g,
  9642.                                                    y,
  9643.                                                    _,
  9644.                                                    b = e._gsTransform,
  9645.                                                    x = Ue(e, !0);
  9646.                                                b && ((y = b.xOrigin), (_ = b.yOrigin)),
  9647.                                                    (!n || (o = n.split(" ")).length < 2) &&
  9648.                                                    ((d = e.getBBox()),
  9649.                                                        (t = re(t).split(" ")),
  9650.                                                        (o = [
  9651.                                                            (-1 !== t[0].indexOf("%") ? (parseFloat(t[0]) / 100) * d.width : parseFloat(t[0])) + d.x,
  9652.                                                            (-1 !== t[1].indexOf("%") ? (parseFloat(t[1]) / 100) * d.height : parseFloat(t[1])) + d.y,
  9653.                                                        ])),
  9654.                                                    (i.xOrigin = c = parseFloat(o[0])),
  9655.                                                    (i.yOrigin = u = parseFloat(o[1])),
  9656.                                                    n &&
  9657.                                                    x !== Ne &&
  9658.                                                    ((h = x[0]),
  9659.                                                        (d = x[1]),
  9660.                                                        (f = x[2]),
  9661.                                                        (p = x[3]),
  9662.                                                        (m = x[4]),
  9663.                                                        (v = x[5]),
  9664.                                                        (g = h * p - d * f),
  9665.                                                        (a = c * (p / g) + u * (-f / g) + (f * v - p * m) / g),
  9666.                                                        (l = c * (-d / g) + u * (h / g) - (h * v - d * m) / g),
  9667.                                                        (c = i.xOrigin = o[0] = a),
  9668.                                                        (u = i.yOrigin = o[1] = l)),
  9669.                                                    b &&
  9670.                                                    (r || (r !== !1 && s.defaultSmoothOrigin !== !1) ?
  9671.                                                        ((a = c - y), (l = u - _), (b.xOffset += a * x[0] + l * x[2] - a), (b.yOffset += a * x[1] + l * x[3] - l)) :
  9672.                                                        (b.xOffset = b.yOffset = 0)),
  9673.                                                    e.setAttribute("data-svg-origin", o.join(" "));
  9674.                                            },
  9675.                                            Ie = function (e) {
  9676.                                                return !!(Le && "function" == typeof e.getBBox && e.getCTM && (!e.parentNode || (e.parentNode.getBBox && e.parentNode.getCTM)));
  9677.                                            },
  9678.                                            Ne = [1, 0, 0, 1, 0, 0],
  9679.                                            Ue = function (e, t) {
  9680.                                                var i,
  9681.                                                    n,
  9682.                                                    r,
  9683.                                                    o,
  9684.                                                    a,
  9685.                                                    s = e._gsTransform || new Pe(),
  9686.                                                    l = 1e5;
  9687.                                                if (
  9688.                                                    (Se ?
  9689.                                                        (n = Z(e, Ee, null, !0)) :
  9690.                                                        e.currentStyle &&
  9691.                                                        ((n = e.currentStyle.filter.match(R)), (n = n && 4 === n.length ? [n[0].substr(4), Number(n[2].substr(4)), Number(n[1].substr(4)), n[3].substr(4), s.x || 0, s.y || 0].join(",") : "")),
  9692.                                                        (i = !n || "none" === n || "matrix(1, 0, 0, 1, 0, 0)" === n),
  9693.                                                        (s.svg || (e.getBBox && Ie(e))) &&
  9694.                                                        (i && -1 !== (e.style[Se] + "").indexOf("matrix") && ((n = e.style[Se]), (i = 0)),
  9695.                                                            (r = e.getAttribute("transform")),
  9696.                                                            i && r && (-1 !== r.indexOf("matrix") ? ((n = r), (i = 0)) : -1 !== r.indexOf("translate") && ((n = "matrix(1,0,0,1," + r.match(/(?:-|b)[d-.e]+b/gi).join(",") + ")"), (i = 0)))),
  9697.                                                        i)
  9698.                                                )
  9699.                                                    return Ne;
  9700.                                                for (r = (n || "").match(/(?:-|b)[d-.e]+b/gi) || [], _e = r.length; --_e > -1;)(o = Number(r[_e])), (r[_e] = (a = o - (o |= 0)) ? ((a * l + (0 > a ? -0.5 : 0.5)) | 0) / l + o : o);
  9701.                                                return t && r.length > 6 ? [r[0], r[1], r[4], r[5], r[12], r[13]] : r;
  9702.                                            },
  9703.                                            je = (V.getTransform = function (e, i, n, r) {
  9704.                                                if (e._gsTransform && n && !r) return e._gsTransform;
  9705.                                                var a,
  9706.                                                    l,
  9707.                                                    c,
  9708.                                                    u,
  9709.                                                    h,
  9710.                                                    d,
  9711.                                                    f = n ? e._gsTransform || new Pe() : new Pe(),
  9712.                                                    p = f.scaleX < 0,
  9713.                                                    m = 2e-5,
  9714.                                                    v = 1e5,
  9715.                                                    g = Ce ? parseFloat(Z(e, Ae, i, !1, "0 0 0").split(" ")[2]) || f.zOrigin || 0 : 0,
  9716.                                                    y = parseFloat(s.defaultTransformPerspective) || 0;
  9717.                                                if (((f.svg = !(!e.getBBox || !Ie(e))), f.svg && (De(e, Z(e, Ae, o, !1, "50% 50%") + "", f, e.getAttribute("data-svg-origin")), (Me = s.useSVGTransformAttr || ke)), (a = Ue(e)), a !== Ne)) {
  9718.                                                    if (16 === a.length) {
  9719.                                                        var _,
  9720.                                                            b,
  9721.                                                            x,
  9722.                                                            w,
  9723.                                                            M,
  9724.                                                            T = a[0],
  9725.                                                            S = a[1],
  9726.                                                            E = a[2],
  9727.                                                            A = a[3],
  9728.                                                            C = a[4],
  9729.                                                            P = a[5],
  9730.                                                            L = a[6],
  9731.                                                            R = a[7],
  9732.                                                            O = a[8],
  9733.                                                            k = a[9],
  9734.                                                            D = a[10],
  9735.                                                            N = a[12],
  9736.                                                            U = a[13],
  9737.                                                            j = a[14],
  9738.                                                            B = a[11],
  9739.                                                            F = Math.atan2(L, D);
  9740.                                                        f.zOrigin && ((j = -f.zOrigin), (N = O * j - a[12]), (U = k * j - a[13]), (j = D * j + f.zOrigin - a[14])),
  9741.                                                            (f.rotationX = F * I),
  9742.                                                            F &&
  9743.                                                            ((w = Math.cos(-F)),
  9744.                                                                (M = Math.sin(-F)),
  9745.                                                                (_ = C * w + O * M),
  9746.                                                                (b = P * w + k * M),
  9747.                                                                (x = L * w + D * M),
  9748.                                                                (O = C * -M + O * w),
  9749.                                                                (k = P * -M + k * w),
  9750.                                                                (D = L * -M + D * w),
  9751.                                                                (B = R * -M + B * w),
  9752.                                                                (C = _),
  9753.                                                                (P = b),
  9754.                                                                (L = x)),
  9755.                                                            (F = Math.atan2(O, D)),
  9756.                                                            (f.rotationY = F * I),
  9757.                                                            F &&
  9758.                                                            ((w = Math.cos(-F)),
  9759.                                                                (M = Math.sin(-F)),
  9760.                                                                (_ = T * w - O * M),
  9761.                                                                (b = S * w - k * M),
  9762.                                                                (x = E * w - D * M),
  9763.                                                                (k = S * M + k * w),
  9764.                                                                (D = E * M + D * w),
  9765.                                                                (B = A * M + B * w),
  9766.                                                                (T = _),
  9767.                                                                (S = b),
  9768.                                                                (E = x)),
  9769.                                                            (F = Math.atan2(S, T)),
  9770.                                                            (f.rotation = F * I),
  9771.                                                            F && ((w = Math.cos(-F)), (M = Math.sin(-F)), (T = T * w + C * M), (b = S * w + P * M), (P = S * -M + P * w), (L = E * -M + L * w), (S = b)),
  9772.                                                            f.rotationX && Math.abs(f.rotationX) + Math.abs(f.rotation) > 359.9 && ((f.rotationX = f.rotation = 0), (f.rotationY += 180)),
  9773.                                                            (f.scaleX = ((Math.sqrt(T * T + S * S) * v + 0.5) | 0) / v),
  9774.                                                            (f.scaleY = ((Math.sqrt(P * P + k * k) * v + 0.5) | 0) / v),
  9775.                                                            (f.scaleZ = ((Math.sqrt(L * L + D * D) * v + 0.5) | 0) / v),
  9776.                                                            (f.skewX = 0),
  9777.                                                            (f.perspective = B ? 1 / (0 > B ? -B : B) : 0),
  9778.                                                            (f.x = N),
  9779.                                                            (f.y = U),
  9780.                                                            (f.z = j),
  9781.                                                            f.svg && ((f.x -= f.xOrigin - (f.xOrigin * T - f.yOrigin * C)), (f.y -= f.yOrigin - (f.yOrigin * S - f.xOrigin * P)));
  9782.                                                    } else if ((!Ce || r || !a.length || f.x !== a[4] || f.y !== a[5] || (!f.rotationX && !f.rotationY)) && (void 0 === f.x || "none" !== Z(e, "display", i))) {
  9783.                                                        var V = a.length >= 6,
  9784.                                                            G = V ? a[0] : 1,
  9785.                                                            z = a[1] || 0,
  9786.                                                            $ = a[2] || 0,
  9787.                                                            H = V ? a[3] : 1;
  9788.                                                        (f.x = a[4] || 0),
  9789.                                                        (f.y = a[5] || 0),
  9790.                                                        (c = Math.sqrt(G * G + z * z)),
  9791.                                                        (u = Math.sqrt(H * H + $ * $)),
  9792.                                                        (h = G || z ? Math.atan2(z, G) * I : f.rotation || 0),
  9793.                                                        (d = $ || H ? Math.atan2($, H) * I + h : f.skewX || 0),
  9794.                                                        Math.abs(d) > 90 && Math.abs(d) < 270 && (p ? ((c *= -1), (d += 0 >= h ? 180 : -180), (h += 0 >= h ? 180 : -180)) : ((u *= -1), (d += 0 >= d ? 180 : -180))),
  9795.                                                            (f.scaleX = c),
  9796.                                                            (f.scaleY = u),
  9797.                                                            (f.rotation = h),
  9798.                                                            (f.skewX = d),
  9799.                                                            Ce && ((f.rotationX = f.rotationY = f.z = 0), (f.perspective = y), (f.scaleZ = 1)),
  9800.                                                            f.svg && ((f.x -= f.xOrigin - (f.xOrigin * G + f.yOrigin * $)), (f.y -= f.yOrigin - (f.xOrigin * z + f.yOrigin * H)));
  9801.                                                    }
  9802.                                                    f.zOrigin = g;
  9803.                                                    for (l in f) f[l] < m && f[l] > -m && (f[l] = 0);
  9804.                                                }
  9805.                                                return (
  9806.                                                    n &&
  9807.                                                    ((e._gsTransform = f),
  9808.                                                        f.svg &&
  9809.                                                        (Me && e.style[Se] ?
  9810.                                                            t.delayedCall(0.001, function () {
  9811.                                                                Ge(e.style, Se);
  9812.                                                            }) :
  9813.                                                            !Me &&
  9814.                                                            e.getAttribute("transform") &&
  9815.                                                            t.delayedCall(0.001, function () {
  9816.                                                                e.removeAttribute("transform");
  9817.                                                            }))),
  9818.                                                    f
  9819.                                                );
  9820.                                            }),
  9821.                                            Be = function (e) {
  9822.                                                var t,
  9823.                                                    i,
  9824.                                                    n = this.data,
  9825.                                                    r = -n.rotation * D,
  9826.                                                    o = r + n.skewX * D,
  9827.                                                    a = 1e5,
  9828.                                                    s = ((Math.cos(r) * n.scaleX * a) | 0) / a,
  9829.                                                    l = ((Math.sin(r) * n.scaleX * a) | 0) / a,
  9830.                                                    c = ((Math.sin(o) * -n.scaleY * a) | 0) / a,
  9831.                                                    u = ((Math.cos(o) * n.scaleY * a) | 0) / a,
  9832.                                                    h = this.t.style,
  9833.                                                    d = this.t.currentStyle;
  9834.                                                if (d) {
  9835.                                                    (i = l), (l = -c), (c = -i), (t = d.filter), (h.filter = "");
  9836.                                                    var f,
  9837.                                                        p,
  9838.                                                        m = this.t.offsetWidth,
  9839.                                                        g = this.t.offsetHeight,
  9840.                                                        y = "absolute" !== d.position,
  9841.                                                        _ = "progid:DXImageTransform.Microsoft.Matrix(M11=" + s + ", M12=" + l + ", M21=" + c + ", M22=" + u,
  9842.                                                        b = n.x + (m * n.xPercent) / 100,
  9843.                                                        M = n.y + (g * n.yPercent) / 100;
  9844.                                                    if (
  9845.                                                        (null != n.ox && ((f = (n.oxp ? m * n.ox * 0.01 : n.ox) - m / 2), (p = (n.oyp ? g * n.oy * 0.01 : n.oy) - g / 2), (b += f - (f * s + p * l)), (M += p - (f * c + p * u))),
  9846.                                                            y ? ((f = m / 2), (p = g / 2), (_ += ", Dx=" + (f - (f * s + p * l) + b) + ", Dy=" + (p - (f * c + p * u) + M) + ")")) : (_ += ", sizingMethod='auto expand')"),
  9847.                                                            -1 !== t.indexOf("DXImageTransform.Microsoft.Matrix(") ? (h.filter = t.replace(O, _)) : (h.filter = _ + " " + t),
  9848.                                                            (0 === e || 1 === e) &&
  9849.                                                            1 === s &&
  9850.                                                            0 === l &&
  9851.                                                            0 === c &&
  9852.                                                            1 === u &&
  9853.                                                            ((y && -1 === _.indexOf("Dx=0, Dy=0")) || (w.test(t) && 100 !== parseFloat(RegExp.$1)) || (-1 === t.indexOf(t.indexOf("Alpha")) && h.removeAttribute("filter"))),
  9854.                                                            !y)
  9855.                                                    ) {
  9856.                                                        var T,
  9857.                                                            S,
  9858.                                                            E,
  9859.                                                            A = 8 > v ? 1 : -1;
  9860.                                                        for (
  9861.                                                            f = n.ieOffsetX || 0,
  9862.                                                            p = n.ieOffsetY || 0,
  9863.                                                            n.ieOffsetX = Math.round((m - ((0 > s ? -s : s) * m + (0 > l ? -l : l) * g)) / 2 + b),
  9864.                                                            n.ieOffsetY = Math.round((g - ((0 > u ? -u : u) * g + (0 > c ? -c : c) * m)) / 2 + M),
  9865.                                                            _e = 0; 4 > _e; _e++
  9866.                                                        )
  9867.                                                            (S = ie[_e]),
  9868.                                                            (T = d[S]),
  9869.                                                            (i = -1 !== T.indexOf("px") ? parseFloat(T) : K(this.t, S, parseFloat(T), T.replace(x, "")) || 0),
  9870.                                                            (E = i !== n[S] ? (2 > _e ? -n.ieOffsetX : -n.ieOffsetY) : 2 > _e ? f - n.ieOffsetX : p - n.ieOffsetY),
  9871.                                                            (h[S] = (n[S] = Math.round(i - E * (0 === _e || 2 === _e ? 1 : A))) + "px");
  9872.                                                    }
  9873.                                                }
  9874.                                            },
  9875.                                            Fe = (V.set3DTransformRatio = V.setTransformRatio = function (e) {
  9876.                                                var t,
  9877.                                                    i,
  9878.                                                    n,
  9879.                                                    r,
  9880.                                                    o,
  9881.                                                    a,
  9882.                                                    s,
  9883.                                                    l,
  9884.                                                    c,
  9885.                                                    u,
  9886.                                                    h,
  9887.                                                    d,
  9888.                                                    f,
  9889.                                                    m,
  9890.                                                    v,
  9891.                                                    g,
  9892.                                                    y,
  9893.                                                    _,
  9894.                                                    b,
  9895.                                                    x,
  9896.                                                    w,
  9897.                                                    M,
  9898.                                                    T,
  9899.                                                    S = this.data,
  9900.                                                    E = this.t.style,
  9901.                                                    A = S.rotation,
  9902.                                                    C = S.rotationX,
  9903.                                                    P = S.rotationY,
  9904.                                                    L = S.scaleX,
  9905.                                                    R = S.scaleY,
  9906.                                                    O = S.scaleZ,
  9907.                                                    k = S.x,
  9908.                                                    I = S.y,
  9909.                                                    N = S.z,
  9910.                                                    U = S.svg,
  9911.                                                    j = S.perspective,
  9912.                                                    B = S.force3D;
  9913.                                                if (((((1 === e || 0 === e) && "auto" === B && (this.tween._totalTime === this.tween._totalDuration || !this.tween._totalTime)) || !B) && !N && !j && !P && !C) || (Me && U) || !Ce)
  9914.                                                    return void(A || S.skewX || U ?
  9915.                                                        ((A *= D),
  9916.                                                            (M = S.skewX * D),
  9917.                                                            (T = 1e5),
  9918.                                                            (t = Math.cos(A) * L),
  9919.                                                            (r = Math.sin(A) * L),
  9920.                                                            (i = Math.sin(A - M) * -R),
  9921.                                                            (o = Math.cos(A - M) * R),
  9922.                                                            M && "simple" === S.skewType && ((y = Math.tan(M)), (y = Math.sqrt(1 + y * y)), (i *= y), (o *= y), S.skewY && ((t *= y), (r *= y))),
  9923.                                                            U &&
  9924.                                                            ((k += S.xOrigin - (S.xOrigin * t + S.yOrigin * i) + S.xOffset),
  9925.                                                                (I += S.yOrigin - (S.xOrigin * r + S.yOrigin * o) + S.yOffset),
  9926.                                                                Me && (S.xPercent || S.yPercent) && ((m = this.t.getBBox()), (k += 0.01 * S.xPercent * m.width), (I += 0.01 * S.yPercent * m.height)),
  9927.                                                                (m = 1e-6),
  9928.                                                                m > k && k > -m && (k = 0),
  9929.                                                                m > I && I > -m && (I = 0)),
  9930.                                                            (b = ((t * T) | 0) / T + "," + ((r * T) | 0) / T + "," + ((i * T) | 0) / T + "," + ((o * T) | 0) / T + "," + k + "," + I + ")"),
  9931.                                                            U && Me ? this.t.setAttribute("transform", "matrix(" + b) : (E[Se] = (S.xPercent || S.yPercent ? "translate(" + S.xPercent + "%," + S.yPercent + "%) matrix(" : "matrix(") + b)) :
  9932.                                                        (E[Se] = (S.xPercent || S.yPercent ? "translate(" + S.xPercent + "%," + S.yPercent + "%) matrix(" : "matrix(") + L + ",0,0," + R + "," + k + "," + I + ")"));
  9933.                                                if ((p && ((m = 1e-4), m > L && L > -m && (L = O = 2e-5), m > R && R > -m && (R = O = 2e-5), !j || S.z || S.rotationX || S.rotationY || (j = 0)), A || S.skewX))
  9934.                                                    (A *= D),
  9935.                                                    (v = t = Math.cos(A)),
  9936.                                                    (g = r = Math.sin(A)),
  9937.                                                    S.skewX &&
  9938.                                                    ((A -= S.skewX * D),
  9939.                                                        (v = Math.cos(A)),
  9940.                                                        (g = Math.sin(A)),
  9941.                                                        "simple" === S.skewType && ((y = Math.tan(S.skewX * D)), (y = Math.sqrt(1 + y * y)), (v *= y), (g *= y), S.skewY && ((t *= y), (r *= y)))),
  9942.                                                    (i = -g),
  9943.                                                    (o = v);
  9944.                                                else {
  9945.                                                    if (!(P || C || 1 !== O || j || U))
  9946.                                                        return void(E[Se] =
  9947.                                                            (S.xPercent || S.yPercent ? "translate(" + S.xPercent + "%," + S.yPercent + "%) translate3d(" : "translate3d(") +
  9948.                                                            k +
  9949.                                                            "px," +
  9950.                                                            I +
  9951.                                                            "px," +
  9952.                                                            N +
  9953.                                                            "px)" +
  9954.                                                            (1 !== L || 1 !== R ? " scale(" + L + "," + R + ")" : ""));
  9955.                                                    (t = o = 1), (i = r = 0);
  9956.                                                }
  9957.                                                (c = 1),
  9958.                                                (n = a = s = l = u = h = 0),
  9959.                                                (d = j ? -1 / j : 0),
  9960.                                                (f = S.zOrigin),
  9961.                                                (m = 1e-6),
  9962.                                                (x = ","),
  9963.                                                (w = "0"),
  9964.                                                (A = P * D),
  9965.                                                A && ((v = Math.cos(A)), (g = Math.sin(A)), (s = -g), (u = d * -g), (n = t * g), (a = r * g), (c = v), (d *= v), (t *= v), (r *= v)),
  9966.                                                    (A = C * D),
  9967.                                                    A &&
  9968.                                                    ((v = Math.cos(A)),
  9969.                                                        (g = Math.sin(A)),
  9970.                                                        (y = i * v + n * g),
  9971.                                                        (_ = o * v + a * g),
  9972.                                                        (l = c * g),
  9973.                                                        (h = d * g),
  9974.                                                        (n = i * -g + n * v),
  9975.                                                        (a = o * -g + a * v),
  9976.                                                        (c *= v),
  9977.                                                        (d *= v),
  9978.                                                        (i = y),
  9979.                                                        (o = _)),
  9980.                                                    1 !== O && ((n *= O), (a *= O), (c *= O), (d *= O)),
  9981.                                                    1 !== R && ((i *= R), (o *= R), (l *= R), (h *= R)),
  9982.                                                    1 !== L && ((t *= L), (r *= L), (s *= L), (u *= L)),
  9983.                                                    (f || U) &&
  9984.                                                    (f && ((k += n * -f), (I += a * -f), (N += c * -f + f)),
  9985.                                                        U && ((k += S.xOrigin - (S.xOrigin * t + S.yOrigin * i) + S.xOffset), (I += S.yOrigin - (S.xOrigin * r + S.yOrigin * o) + S.yOffset)),
  9986.                                                        m > k && k > -m && (k = w),
  9987.                                                        m > I && I > -m && (I = w),
  9988.                                                        m > N && N > -m && (N = 0)),
  9989.                                                    (b = S.xPercent || S.yPercent ? "translate(" + S.xPercent + "%," + S.yPercent + "%) matrix3d(" : "matrix3d("),
  9990.                                                    (b += (m > t && t > -m ? w : t) + x + (m > r && r > -m ? w : r) + x + (m > s && s > -m ? w : s)),
  9991.                                                    (b += x + (m > u && u > -m ? w : u) + x + (m > i && i > -m ? w : i) + x + (m > o && o > -m ? w : o)),
  9992.                                                    C || P ?
  9993.                                                    ((b += x + (m > l && l > -m ? w : l) + x + (m > h && h > -m ? w : h) + x + (m > n && n > -m ? w : n)),
  9994.                                                        (b += x + (m > a && a > -m ? w : a) + x + (m > c && c > -m ? w : c) + x + (m > d && d > -m ? w : d) + x)) :
  9995.                                                    (b += ",0,0,0,0,1,0,"),
  9996.                                                    (b += k + x + I + x + N + x + (j ? 1 + -N / j : 1) + ")"),
  9997.                                                    (E[Se] = b);
  9998.                                            });
  9999.                                        (u = Pe.prototype),
  10000.                                        (u.x = u.y = u.z = u.skewX = u.skewY = u.rotation = u.rotationX = u.rotationY = u.zOrigin = u.xPercent = u.yPercent = u.xOffset = u.yOffset = 0),
  10001.                                        (u.scaleX = u.scaleY = u.scaleZ = 1),
  10002.                                        xe(
  10003.                                                "transform,scale,scaleX,scaleY,scaleZ,x,y,z,rotation,rotationX,rotationY,rotationZ,skewX,skewY,shortRotation,shortRotationX,shortRotationY,shortRotationZ,transformOrigin,svgOrigin,transformPerspective,directionalRotation,parseTransform,force3D,skewType,xPercent,yPercent,smoothOrigin", {
  10004.                                                    parser: function (e, t, i, n, r, a, l) {
  10005.                                                        if (n._lastParsedTransform === l) return r;
  10006.                                                        n._lastParsedTransform = l;
  10007.                                                        var c,
  10008.                                                            u,
  10009.                                                            h,
  10010.                                                            d,
  10011.                                                            f,
  10012.                                                            p,
  10013.                                                            m,
  10014.                                                            v,
  10015.                                                            g,
  10016.                                                            y,
  10017.                                                            _ = e._gsTransform,
  10018.                                                            b = e.style,
  10019.                                                            x = 1e-6,
  10020.                                                            w = Te.length,
  10021.                                                            M = l,
  10022.                                                            T = {},
  10023.                                                            S = "transformOrigin";
  10024.                                                        if (
  10025.                                                            (l.display ? ((d = Z(e, "display")), (b.display = "block"), (c = je(e, o, !0, l.parseTransform)), (b.display = d)) : (c = je(e, o, !0, l.parseTransform)),
  10026.                                                                (n._transform = c),
  10027.                                                                "string" == typeof M.transform && Se)
  10028.                                                        )
  10029.                                                            (d = B.style),
  10030.                                                            (d[Se] = M.transform),
  10031.                                                            (d.display = "block"),
  10032.                                                            (d.position = "absolute"),
  10033.                                                            U.body.appendChild(B),
  10034.                                                            (u = je(B, null, !1)),
  10035.                                                            U.body.removeChild(B),
  10036.                                                            u.perspective || (u.perspective = c.perspective),
  10037.                                                            null != M.xPercent && (u.xPercent = ae(M.xPercent, c.xPercent)),
  10038.                                                            null != M.yPercent && (u.yPercent = ae(M.yPercent, c.yPercent));
  10039.                                                        else if ("object" == typeof M) {
  10040.                                                            if (
  10041.                                                                ((u = {
  10042.                                                                        scaleX: ae(null != M.scaleX ? M.scaleX : M.scale, c.scaleX),
  10043.                                                                        scaleY: ae(null != M.scaleY ? M.scaleY : M.scale, c.scaleY),
  10044.                                                                        scaleZ: ae(M.scaleZ, c.scaleZ),
  10045.                                                                        x: ae(M.x, c.x),
  10046.                                                                        y: ae(M.y, c.y),
  10047.                                                                        z: ae(M.z, c.z),
  10048.                                                                        xPercent: ae(M.xPercent, c.xPercent),
  10049.                                                                        yPercent: ae(M.yPercent, c.yPercent),
  10050.                                                                        perspective: ae(M.transformPerspective, c.perspective),
  10051.                                                                    }),
  10052.                                                                    (v = M.directionalRotation),
  10053.                                                                    null != v)
  10054.                                                            )
  10055.                                                                if ("object" == typeof v)
  10056.                                                                    for (d in v) M[d] = v[d];
  10057.                                                                else M.rotation = v;
  10058.                                                            "string" == typeof M.x && -1 !== M.x.indexOf("%") && ((u.x = 0), (u.xPercent = ae(M.x, c.xPercent))),
  10059.                                                                "string" == typeof M.y && -1 !== M.y.indexOf("%") && ((u.y = 0), (u.yPercent = ae(M.y, c.yPercent))),
  10060.                                                                (u.rotation = se("rotation" in M ? M.rotation : "shortRotation" in M ? M.shortRotation + "_short" : "rotationZ" in M ? M.rotationZ : c.rotation, c.rotation, "rotation", T)),
  10061.                                                                Ce &&
  10062.                                                                ((u.rotationX = se("rotationX" in M ? M.rotationX : "shortRotationX" in M ? M.shortRotationX + "_short" : c.rotationX || 0, c.rotationX, "rotationX", T)),
  10063.                                                                    (u.rotationY = se("rotationY" in M ? M.rotationY : "shortRotationY" in M ? M.shortRotationY + "_short" : c.rotationY || 0, c.rotationY, "rotationY", T))),
  10064.                                                                (u.skewX = null == M.skewX ? c.skewX : se(M.skewX, c.skewX)),
  10065.                                                                (u.skewY = null == M.skewY ? c.skewY : se(M.skewY, c.skewY)),
  10066.                                                                (h = u.skewY - c.skewY) && ((u.skewX += h), (u.rotation += h));
  10067.                                                        }
  10068.                                                        for (
  10069.                                                            Ce && null != M.force3D && ((c.force3D = M.force3D), (m = !0)),
  10070.                                                            c.skewType = M.skewType || c.skewType || s.defaultSkewType,
  10071.                                                            p = c.force3D || c.z || c.rotationX || c.rotationY || u.z || u.rotationX || u.rotationY || u.perspective,
  10072.                                                            p || null == M.scale || (u.scaleZ = 1);
  10073.                                                            --w > -1;
  10074.  
  10075.                                                        )
  10076.                                                            (i = Te[w]),
  10077.                                                            (f = u[i] - c[i]),
  10078.                                                            (f > x || -x > f || null != M[i] || null != N[i]) && ((m = !0), (r = new ve(c, i, c[i], f, r)), i in T && (r.e = T[i]), (r.xs0 = 0), (r.plugin = a), n._overwriteProps.push(r.n));
  10079.                                                        return (
  10080.                                                            (f = M.transformOrigin),
  10081.                                                            c.svg &&
  10082.                                                            (f || M.svgOrigin) &&
  10083.                                                            ((g = c.xOffset),
  10084.                                                                (y = c.yOffset),
  10085.                                                                De(e, re(f), u, M.svgOrigin, M.smoothOrigin),
  10086.                                                                (r = ge(c, "xOrigin", (_ ? c : u).xOrigin, u.xOrigin, r, S)),
  10087.                                                                (r = ge(c, "yOrigin", (_ ? c : u).yOrigin, u.yOrigin, r, S)),
  10088.                                                                (g !== c.xOffset || y !== c.yOffset) && ((r = ge(c, "xOffset", _ ? g : c.xOffset, c.xOffset, r, S)), (r = ge(c, "yOffset", _ ? y : c.yOffset, c.yOffset, r, S))),
  10089.                                                                (f = Me ? null : "0px 0px")),
  10090.                                                            (f || (Ce && p && c.zOrigin)) &&
  10091.                                                            (Se ?
  10092.                                                                ((m = !0),
  10093.                                                                    (i = Ae),
  10094.                                                                    (f = (f || Z(e, i, o, !1, "50% 50%")) + ""),
  10095.                                                                    (r = new ve(b, i, 0, 0, r, -1, S)),
  10096.                                                                    (r.b = b[i]),
  10097.                                                                    (r.plugin = a),
  10098.                                                                    Ce ?
  10099.                                                                    ((d = c.zOrigin),
  10100.                                                                        (f = f.split(" ")),
  10101.                                                                        (c.zOrigin = (f.length > 2 && (0 === d || "0px" !== f[2]) ? parseFloat(f[2]) : d) || 0),
  10102.                                                                        (r.xs0 = r.e = f[0] + " " + (f[1] || "50%") + " 0px"),
  10103.                                                                        (r = new ve(c, "zOrigin", 0, 0, r, -1, r.n)),
  10104.                                                                        (r.b = d),
  10105.                                                                        (r.xs0 = r.e = c.zOrigin)) :
  10106.                                                                    (r.xs0 = r.e = f)) :
  10107.                                                                re(f + "", c)),
  10108.                                                            m && (n._transformType = (c.svg && Me) || (!p && 3 !== this._transformType) ? 2 : 3),
  10109.                                                            r
  10110.                                                        );
  10111.                                                    },
  10112.                                                    prefix: !0,
  10113.                                                }
  10114.                                            ),
  10115.                                            xe("boxShadow", {
  10116.                                                defaultValue: "0px 0px 0px 0px #999",
  10117.                                                prefix: !0,
  10118.                                                color: !0,
  10119.                                                multi: !0,
  10120.                                                keyword: "inset"
  10121.                                            }),
  10122.                                            xe("borderRadius", {
  10123.                                                defaultValue: "0px",
  10124.                                                parser: function (e, t, i, n, a, s) {
  10125.                                                    t = this.format(t);
  10126.                                                    var l,
  10127.                                                        c,
  10128.                                                        u,
  10129.                                                        h,
  10130.                                                        d,
  10131.                                                        f,
  10132.                                                        p,
  10133.                                                        m,
  10134.                                                        v,
  10135.                                                        g,
  10136.                                                        y,
  10137.                                                        _,
  10138.                                                        b,
  10139.                                                        x,
  10140.                                                        w,
  10141.                                                        M,
  10142.                                                        T = ["borderTopLeftRadius", "borderTopRightRadius", "borderBottomRightRadius", "borderBottomLeftRadius"],
  10143.                                                        S = e.style;
  10144.                                                    for (v = parseFloat(e.offsetWidth), g = parseFloat(e.offsetHeight), l = t.split(" "), c = 0; c < T.length; c++)
  10145.                                                        this.p.indexOf("border") && (T[c] = Y(T[c])),
  10146.                                                        (d = h = Z(e, T[c], o, !1, "0px")),
  10147.                                                        -1 !== d.indexOf(" ") && ((h = d.split(" ")), (d = h[0]), (h = h[1])),
  10148.                                                        (f = u = l[c]),
  10149.                                                        (p = parseFloat(d)),
  10150.                                                        (_ = d.substr((p + "").length)),
  10151.                                                        (b = "=" === f.charAt(1)),
  10152.                                                        b ?
  10153.                                                        ((m = parseInt(f.charAt(0) + "1", 10)), (f = f.substr(2)), (m *= parseFloat(f)), (y = f.substr((m + "").length - (0 > m ? 1 : 0)) || "")) :
  10154.                                                        ((m = parseFloat(f)), (y = f.substr((m + "").length))),
  10155.                                                        "" === y && (y = r[i] || _),
  10156.                                                        y !== _ &&
  10157.                                                        ((x = K(e, "borderLeft", p, _)),
  10158.                                                            (w = K(e, "borderTop", p, _)),
  10159.                                                            "%" === y ?
  10160.                                                            ((d = (x / v) * 100 + "%"), (h = (w / g) * 100 + "%")) :
  10161.                                                            "em" === y ?
  10162.                                                            ((M = K(e, "borderLeft", 1, "em")), (d = x / M + "em"), (h = w / M + "em")) :
  10163.                                                            ((d = x + "px"), (h = w + "px")),
  10164.                                                            b && ((f = parseFloat(d) + m + y), (u = parseFloat(h) + m + y))),
  10165.                                                        (a = ye(S, T[c], d + " " + h, f + " " + u, !1, "0px", a));
  10166.                                                    return a;
  10167.                                                },
  10168.                                                prefix: !0,
  10169.                                                formatter: fe("0px 0px 0px 0px", !1, !0),
  10170.                                            }),
  10171.                                            xe("backgroundPosition", {
  10172.                                                defaultValue: "0 0",
  10173.                                                parser: function (e, t, i, n, r, a) {
  10174.                                                    var s,
  10175.                                                        l,
  10176.                                                        c,
  10177.                                                        u,
  10178.                                                        h,
  10179.                                                        d,
  10180.                                                        f = "background-position",
  10181.                                                        p = o || q(e, null),
  10182.                                                        m = this.format(
  10183.                                                            (p ? (v ? p.getPropertyValue(f + "-x") + " " + p.getPropertyValue(f + "-y") : p.getPropertyValue(f)) : e.currentStyle.backgroundPositionX + " " + e.currentStyle.backgroundPositionY) ||
  10184.                                                            "0 0"
  10185.                                                        ),
  10186.                                                        g = this.format(t);
  10187.                                                    if ((-1 !== m.indexOf("%")) != (-1 !== g.indexOf("%")) && ((d = Z(e, "backgroundImage").replace(C, "")), d && "none" !== d)) {
  10188.                                                        for (s = m.split(" "), l = g.split(" "), F.setAttribute("src", d), c = 2; --c > -1;)
  10189.                                                            (m = s[c]),
  10190.                                                            (u = -1 !== m.indexOf("%")),
  10191.                                                            u !== (-1 !== l[c].indexOf("%")) &&
  10192.                                                            ((h = 0 === c ? e.offsetWidth - F.width : e.offsetHeight - F.height), (s[c] = u ? (parseFloat(m) / 100) * h + "px" : (parseFloat(m) / h) * 100 + "%"));
  10193.                                                        m = s.join(" ");
  10194.                                                    }
  10195.                                                    return this.parseComplex(e.style, m, g, r, a);
  10196.                                                },
  10197.                                                formatter: re,
  10198.                                            }),
  10199.                                            xe("backgroundSize", {
  10200.                                                defaultValue: "0 0",
  10201.                                                formatter: re
  10202.                                            }),
  10203.                                            xe("perspective", {
  10204.                                                defaultValue: "0px",
  10205.                                                prefix: !0
  10206.                                            }),
  10207.                                            xe("perspectiveOrigin", {
  10208.                                                defaultValue: "50% 50%",
  10209.                                                prefix: !0
  10210.                                            }),
  10211.                                            xe("transformStyle", {
  10212.                                                prefix: !0
  10213.                                            }),
  10214.                                            xe("backfaceVisibility", {
  10215.                                                prefix: !0
  10216.                                            }),
  10217.                                            xe("userSelect", {
  10218.                                                prefix: !0
  10219.                                            }),
  10220.                                            xe("margin", {
  10221.                                                parser: pe("marginTop,marginRight,marginBottom,marginLeft")
  10222.                                            }),
  10223.                                            xe("padding", {
  10224.                                                parser: pe("paddingTop,paddingRight,paddingBottom,paddingLeft")
  10225.                                            }),
  10226.                                            xe("clip", {
  10227.                                                defaultValue: "rect(0px,0px,0px,0px)",
  10228.                                                parser: function (e, t, i, n, r, a) {
  10229.                                                    var s, l, c;
  10230.                                                    return (
  10231.                                                        9 > v ?
  10232.                                                        ((l = e.currentStyle), (c = 8 > v ? " " : ","), (s = "rect(" + l.clipTop + c + l.clipRight + c + l.clipBottom + c + l.clipLeft + ")"), (t = this.format(t).split(",").join(c))) :
  10233.                                                        ((s = this.format(Z(e, this.p, o, !1, this.dflt))), (t = this.format(t))),
  10234.                                                        this.parseComplex(e.style, s, t, r, a)
  10235.                                                    );
  10236.                                                },
  10237.                                            }),
  10238.                                            xe("textShadow", {
  10239.                                                defaultValue: "0px 0px 0px #999",
  10240.                                                color: !0,
  10241.                                                multi: !0
  10242.                                            }),
  10243.                                            xe("autoRound,strictUnits", {
  10244.                                                parser: function (e, t, i, n, r) {
  10245.                                                    return r;
  10246.                                                },
  10247.                                            }),
  10248.                                            xe("border", {
  10249.                                                defaultValue: "0px solid #000",
  10250.                                                parser: function (e, t, i, n, r, a) {
  10251.                                                    return this.parseComplex(
  10252.                                                        e.style,
  10253.                                                        this.format(Z(e, "borderTopWidth", o, !1, "0px") + " " + Z(e, "borderTopStyle", o, !1, "solid") + " " + Z(e, "borderTopColor", o, !1, "#000")),
  10254.                                                        this.format(t),
  10255.                                                        r,
  10256.                                                        a
  10257.                                                    );
  10258.                                                },
  10259.                                                color: !0,
  10260.                                                formatter: function (e) {
  10261.                                                    var t = e.split(" ");
  10262.                                                    return t[0] + " " + (t[1] || "solid") + " " + (e.match(de) || ["#000"])[0];
  10263.                                                },
  10264.                                            }),
  10265.                                            xe("borderWidth", {
  10266.                                                parser: pe("borderTopWidth,borderRightWidth,borderBottomWidth,borderLeftWidth")
  10267.                                            }),
  10268.                                            xe("float,cssFloat,styleFloat", {
  10269.                                                parser: function (e, t, i, n, r, o) {
  10270.                                                    var a = e.style,
  10271.                                                        s = "cssFloat" in a ? "cssFloat" : "styleFloat";
  10272.                                                    return new ve(a, s, 0, 0, r, -1, i, !1, 0, a[s], t);
  10273.                                                },
  10274.                                            });
  10275.                                        var Ve = function (e) {
  10276.                                            var t,
  10277.                                                i = this.t,
  10278.                                                n = i.filter || Z(this.data, "filter") || "",
  10279.                                                r = (this.s + this.c * e) | 0;
  10280.                                            100 === r &&
  10281.                                                (-1 === n.indexOf("atrix(") && -1 === n.indexOf("radient(") && -1 === n.indexOf("oader(") ?
  10282.                                                    (i.removeAttribute("filter"), (t = !Z(this.data, "filter"))) :
  10283.                                                    ((i.filter = n.replace(T, "")), (t = !0))),
  10284.                                                t ||
  10285.                                                (this.xn1 && (i.filter = n = n || "alpha(opacity=" + r + ")"),
  10286.                                                    -1 === n.indexOf("pacity") ? (0 === r && this.xn1) || (i.filter = n + " alpha(opacity=" + r + ")") : (i.filter = n.replace(w, "opacity=" + r)));
  10287.                                        };
  10288.                                        xe("opacity,alpha,autoAlpha", {
  10289.                                            defaultValue: "1",
  10290.                                            parser: function (e, t, i, n, r, a) {
  10291.                                                var s = parseFloat(Z(e, "opacity", o, !1, "1")),
  10292.                                                    l = e.style,
  10293.                                                    c = "autoAlpha" === i;
  10294.                                                return (
  10295.                                                    "string" == typeof t && "=" === t.charAt(1) && (t = ("-" === t.charAt(0) ? -1 : 1) * parseFloat(t.substr(2)) + s),
  10296.                                                    c && 1 === s && "hidden" === Z(e, "visibility", o) && 0 !== t && (s = 0),
  10297.                                                    z ?
  10298.                                                    (r = new ve(l, "opacity", s, t - s, r)) :
  10299.                                                    ((r = new ve(l, "opacity", 100 * s, 100 * (t - s), r)),
  10300.                                                        (r.xn1 = c ? 1 : 0),
  10301.                                                        (l.zoom = 1),
  10302.                                                        (r.type = 2),
  10303.                                                        (r.b = "alpha(opacity=" + r.s + ")"),
  10304.                                                        (r.e = "alpha(opacity=" + (r.s + r.c) + ")"),
  10305.                                                        (r.data = e),
  10306.                                                        (r.plugin = a),
  10307.                                                        (r.setRatio = Ve)),
  10308.                                                    c &&
  10309.                                                    ((r = new ve(l, "visibility", 0, 0, r, -1, null, !1, 0, 0 !== s ? "inherit" : "hidden", 0 === t ? "hidden" : "inherit")),
  10310.                                                        (r.xs0 = "inherit"),
  10311.                                                        n._overwriteProps.push(r.n),
  10312.                                                        n._overwriteProps.push(i)),
  10313.                                                    r
  10314.                                                );
  10315.                                            },
  10316.                                        });
  10317.                                        var Ge = function (e, t) {
  10318.                                                t && (e.removeProperty ? (("ms" === t.substr(0, 2) || "webkit" === t.substr(0, 6)) && (t = "-" + t), e.removeProperty(t.replace(E, "-$1").toLowerCase())) : e.removeAttribute(t));
  10319.                                            },
  10320.                                            ze = function (e) {
  10321.                                                if (((this.t._gsClassPT = this), 1 === e || 0 === e)) {
  10322.                                                    this.t.setAttribute("class", 0 === e ? this.b : this.e);
  10323.                                                    for (var t = this.data, i = this.t.style; t;) t.v ? (i[t.p] = t.v) : Ge(i, t.p), (t = t._next);
  10324.                                                    1 === e && this.t._gsClassPT === this && (this.t._gsClassPT = null);
  10325.                                                } else this.t.getAttribute("class") !== this.e && this.t.setAttribute("class", this.e);
  10326.                                            };
  10327.                                        xe("className", {
  10328.                                            parser: function (e, t, i, r, a, s, l) {
  10329.                                                var c,
  10330.                                                    u,
  10331.                                                    h,
  10332.                                                    d,
  10333.                                                    f,
  10334.                                                    p = e.getAttribute("class") || "",
  10335.                                                    m = e.style.cssText;
  10336.                                                if (((a = r._classNamePT = new ve(e, i, 0, 0, a, 2)), (a.setRatio = ze), (a.pr = -11), (n = !0), (a.b = p), (u = J(e, o)), (h = e._gsClassPT))) {
  10337.                                                    for (d = {}, f = h.data; f;)(d[f.p] = 1), (f = f._next);
  10338.                                                    h.setRatio(1);
  10339.                                                }
  10340.                                                return (
  10341.                                                    (e._gsClassPT = a),
  10342.                                                    (a.e = "=" !== t.charAt(1) ? t : p.replace(new RegExp("\s*\b" + t.substr(2) + "\b"), "") + ("+" === t.charAt(0) ? " " + t.substr(2) : "")),
  10343.                                                    e.setAttribute("class", a.e),
  10344.                                                    (c = ee(e, u, J(e), l, d)),
  10345.                                                    e.setAttribute("class", p),
  10346.                                                    (a.data = c.firstMPT),
  10347.                                                    (e.style.cssText = m),
  10348.                                                    (a = a.xfirst = r.parse(e, c.difs, a, s))
  10349.                                                );
  10350.                                            },
  10351.                                        });
  10352.                                        var $e = function (e) {
  10353.                                            if ((1 === e || 0 === e) && this.data._totalTime === this.data._totalDuration && "isFromStart" !== this.data.data) {
  10354.                                                var t,
  10355.                                                    i,
  10356.                                                    n,
  10357.                                                    r,
  10358.                                                    o,
  10359.                                                    a = this.t.style,
  10360.                                                    s = c.transform.parse;
  10361.                                                if ("all" === this.e)(a.cssText = ""), (r = !0);
  10362.                                                else
  10363.                                                    for (t = this.e.split(" ").join("").split(","), n = t.length; --n > -1;)(i = t[n]), c[i] && (c[i].parse === s ? (r = !0) : (i = "transformOrigin" === i ? Ae : c[i].p)), Ge(a, i);
  10364.                                                r && (Ge(a, Se), (o = this.t._gsTransform), o && (o.svg && this.t.removeAttribute("data-svg-origin"), delete this.t._gsTransform));
  10365.                                            }
  10366.                                        };
  10367.                                        for (
  10368.                                            xe("clearProps", {
  10369.                                                parser: function (e, t, i, r, o) {
  10370.                                                    return (o = new ve(e, i, 0, 0, o, 2)), (o.setRatio = $e), (o.e = t), (o.pr = -10), (o.data = r._tween), (n = !0), o;
  10371.                                                },
  10372.                                            }),
  10373.                                            u = "bezier,throwProps,physicsProps,physics2D".split(","),
  10374.                                            _e = u.length; _e--;
  10375.  
  10376.                                        )
  10377.                                            we(u[_e]);
  10378.                                        (u = s.prototype),
  10379.                                        (u._firstPT = u._lastParsedTransform = u._transform = null),
  10380.                                        (u._onInitTween = function (e, t, i) {
  10381.                                            if (!e.nodeType) return !1;
  10382.                                            (this._target = e), (this._tween = i), (this._vars = t), (h = t.autoRound), (n = !1), (r = t.suffixMap || s.suffixMap), (o = q(e, "")), (a = this._overwriteProps);
  10383.                                            var l,
  10384.                                                u,
  10385.                                                p,
  10386.                                                v,
  10387.                                                g,
  10388.                                                y,
  10389.                                                _,
  10390.                                                b,
  10391.                                                x,
  10392.                                                w = e.style;
  10393.                                            if (
  10394.                                                (d && "" === w.zIndex && ((l = Z(e, "zIndex", o)), ("auto" === l || "" === l) && this._addLazySet(w, "zIndex", 0)),
  10395.                                                    "string" == typeof t &&
  10396.                                                    ((v = w.cssText), (l = J(e, o)), (w.cssText = v + ";" + t), (l = ee(e, l, J(e)).difs), !z && M.test(t) && (l.opacity = parseFloat(RegExp.$1)), (t = l), (w.cssText = v)),
  10397.                                                    t.className ? (this._firstPT = u = c.className.parse(e, t.className, "className", this, null, null, t)) : (this._firstPT = u = this.parse(e, t, null)),
  10398.                                                    this._transformType)
  10399.                                            ) {
  10400.                                                for (
  10401.                                                    x = 3 === this._transformType,
  10402.                                                    Se ?
  10403.                                                    f &&
  10404.                                                    ((d = !0),
  10405.                                                        "" === w.zIndex && ((_ = Z(e, "zIndex", o)), ("auto" === _ || "" === _) && this._addLazySet(w, "zIndex", 0)),
  10406.                                                        m && this._addLazySet(w, "WebkitBackfaceVisibility", this._vars.WebkitBackfaceVisibility || (x ? "visible" : "hidden"))) :
  10407.                                                    (w.zoom = 1),
  10408.                                                    p = u; p && p._next;
  10409.  
  10410.                                                )
  10411.                                                    p = p._next;
  10412.                                                (b = new ve(e, "transform", 0, 0, null, 2)), this._linkCSSP(b, null, p), (b.setRatio = Se ? Fe : Be), (b.data = this._transform || je(e, o, !0)), (b.tween = i), (b.pr = -1), a.pop();
  10413.                                            }
  10414.                                            if (n) {
  10415.                                                for (; u;) {
  10416.                                                    for (y = u._next, p = v; p && p.pr > u.pr;) p = p._next;
  10417.                                                    (u._prev = p ? p._prev : g) ? (u._prev._next = u) : (v = u), (u._next = p) ? (p._prev = u) : (g = u), (u = y);
  10418.                                                }
  10419.                                                this._firstPT = v;
  10420.                                            }
  10421.                                            return !0;
  10422.                                        }),
  10423.                                        (u.parse = function (e, t, i, n) {
  10424.                                            var a,
  10425.                                                s,
  10426.                                                l,
  10427.                                                u,
  10428.                                                d,
  10429.                                                f,
  10430.                                                p,
  10431.                                                m,
  10432.                                                v,
  10433.                                                g,
  10434.                                                y = e.style;
  10435.                                            for (a in t)
  10436.                                                (f = t[a]),
  10437.                                                (s = c[a]),
  10438.                                                s ?
  10439.                                                (i = s.parse(e, f, a, this, i, n, t)) :
  10440.                                                ((d = Z(e, a, o) + ""),
  10441.                                                    (v = "string" == typeof f),
  10442.                                                    "color" === a || "fill" === a || "stroke" === a || -1 !== a.indexOf("Color") || (v && S.test(f)) ?
  10443.                                                    (v || ((f = ue(f)), (f = (f.length > 3 ? "rgba(" : "rgb(") + f.join(",") + ")")), (i = ye(y, a, d, f, !0, "transparent", i, 0, n))) :
  10444.                                                    !v || (-1 === f.indexOf(" ") && -1 === f.indexOf(",")) ?
  10445.                                                    ((l = parseFloat(d)),
  10446.                                                        (p = l || 0 === l ? d.substr((l + "").length) : ""),
  10447.                                                        ("" === d || "auto" === d) &&
  10448.                                                        ("width" === a || "height" === a ?
  10449.                                                            ((l = ne(e, a, o)), (p = "px")) :
  10450.                                                            "left" === a || "top" === a ?
  10451.                                                            ((l = Q(e, a, o)), (p = "px")) :
  10452.                                                            ((l = "opacity" !== a ? 0 : 1), (p = ""))),
  10453.                                                        (g = v && "=" === f.charAt(1)),
  10454.                                                        g ? ((u = parseInt(f.charAt(0) + "1", 10)), (f = f.substr(2)), (u *= parseFloat(f)), (m = f.replace(x, ""))) : ((u = parseFloat(f)), (m = v ? f.replace(x, "") : "")),
  10455.                                                        "" === m && (m = a in r ? r[a] : p),
  10456.                                                        (f = u || 0 === u ? (g ? u + l : u) + m : t[a]),
  10457.                                                        p !== m &&
  10458.                                                        "" !== m &&
  10459.                                                        (u || 0 === u) &&
  10460.                                                        l &&
  10461.                                                        ((l = K(e, a, l, p)),
  10462.                                                            "%" === m ?
  10463.                                                            ((l /= K(e, a, 100, "%") / 100), t.strictUnits !== !0 && (d = l + "%")) :
  10464.                                                            "em" === m || "rem" === m ?
  10465.                                                            (l /= K(e, a, 1, m)) :
  10466.                                                            "px" !== m && ((u = K(e, a, u, m)), (m = "px")),
  10467.                                                            g && (u || 0 === u) && (f = u + l + m)),
  10468.                                                        g && (u += l),
  10469.                                                        (!l && 0 !== l) || (!u && 0 !== u) ?
  10470.                                                        void 0 !== y[a] && (f || (f + "" != "NaN" && null != f)) ?
  10471.                                                        ((i = new ve(y, a, u || l || 0, 0, i, -1, a, !1, 0, d, f)), (i.xs0 = "none" !== f || ("display" !== a && -1 === a.indexOf("Style")) ? f : d)) :
  10472.                                                        H("invalid " + a + " tween value: " + t[a]) :
  10473.                                                        ((i = new ve(y, a, l, u - l, i, 0, a, h !== !1 && ("px" === m || "zIndex" === a), 0, d, f)), (i.xs0 = m))) :
  10474.                                                    (i = ye(y, a, d, f, !0, null, i, 0, n))),
  10475.                                                n && i && !i.plugin && (i.plugin = n);
  10476.                                            return i;
  10477.                                        }),
  10478.                                        (u.setRatio = function (e) {
  10479.                                            var t,
  10480.                                                i,
  10481.                                                n,
  10482.                                                r = this._firstPT,
  10483.                                                o = 1e-6;
  10484.                                            if (1 !== e || (this._tween._time !== this._tween._duration && 0 !== this._tween._time))
  10485.                                                if (e || (this._tween._time !== this._tween._duration && 0 !== this._tween._time) || this._tween._rawPrevTime === -1e-6)
  10486.                                                    for (; r;) {
  10487.                                                        if (((t = r.c * e + r.s), r.r ? (t = Math.round(t)) : o > t && t > -o && (t = 0), r.type))
  10488.                                                            if (1 === r.type)
  10489.                                                                if (((n = r.l), 2 === n)) r.t[r.p] = r.xs0 + t + r.xs1 + r.xn1 + r.xs2;
  10490.                                                                else if (3 === n) r.t[r.p] = r.xs0 + t + r.xs1 + r.xn1 + r.xs2 + r.xn2 + r.xs3;
  10491.                                                        else if (4 === n) r.t[r.p] = r.xs0 + t + r.xs1 + r.xn1 + r.xs2 + r.xn2 + r.xs3 + r.xn3 + r.xs4;
  10492.                                                        else if (5 === n) r.t[r.p] = r.xs0 + t + r.xs1 + r.xn1 + r.xs2 + r.xn2 + r.xs3 + r.xn3 + r.xs4 + r.xn4 + r.xs5;
  10493.                                                        else {
  10494.                                                            for (i = r.xs0 + t + r.xs1, n = 1; n < r.l; n++) i += r["xn" + n] + r["xs" + (n + 1)];
  10495.                                                            r.t[r.p] = i;
  10496.                                                        } else -1 === r.type ? (r.t[r.p] = r.xs0) : r.setRatio && r.setRatio(e);
  10497.                                                        else r.t[r.p] = t + r.xs0;
  10498.                                                        r = r._next;
  10499.                                                    }
  10500.                                            else
  10501.                                                for (; r;) 2 !== r.type ? (r.t[r.p] = r.b) : r.setRatio(e), (r = r._next);
  10502.                                            else
  10503.                                                for (; r;) {
  10504.                                                    if (2 !== r.type)
  10505.                                                        if (r.r && -1 !== r.type)
  10506.                                                            if (((t = Math.round(r.s + r.c)), r.type)) {
  10507.                                                                if (1 === r.type) {
  10508.                                                                    for (n = r.l, i = r.xs0 + t + r.xs1, n = 1; n < r.l; n++) i += r["xn" + n] + r["xs" + (n + 1)];
  10509.                                                                    r.t[r.p] = i;
  10510.                                                                }
  10511.                                                            } else r.t[r.p] = t + r.xs0;
  10512.                                                    else r.t[r.p] = r.e;
  10513.                                                    else r.setRatio(e);
  10514.                                                    r = r._next;
  10515.                                                }
  10516.                                        }),
  10517.                                        (u._enableTransforms = function (e) {
  10518.                                            (this._transform = this._transform || je(this._target, o, !0)), (this._transformType = (this._transform.svg && Me) || (!e && 3 !== this._transformType) ? 2 : 3);
  10519.                                        });
  10520.                                        var He = function (e) {
  10521.                                            (this.t[this.p] = this.e), this.data._linkCSSP(this, this._next, null, !0);
  10522.                                        };
  10523.                                        (u._addLazySet = function (e, t, i) {
  10524.                                            var n = (this._firstPT = new ve(e, t, 0, 0, this._firstPT, 2));
  10525.                                            (n.e = i), (n.setRatio = He), (n.data = this);
  10526.                                        }),
  10527.                                        (u._linkCSSP = function (e, t, i, n) {
  10528.                                            return (
  10529.                                                e &&
  10530.                                                (t && (t._prev = e),
  10531.                                                    e._next && (e._next._prev = e._prev),
  10532.                                                    e._prev ? (e._prev._next = e._next) : this._firstPT === e && ((this._firstPT = e._next), (n = !0)),
  10533.                                                    i ? (i._next = e) : n || null !== this._firstPT || (this._firstPT = e),
  10534.                                                    (e._next = t),
  10535.                                                    (e._prev = i)),
  10536.                                                e
  10537.                                            );
  10538.                                        }),
  10539.                                        (u._kill = function (t) {
  10540.                                            var i,
  10541.                                                n,
  10542.                                                r,
  10543.                                                o = t;
  10544.                                            if (t.autoAlpha || t.alpha) {
  10545.                                                o = {};
  10546.                                                for (n in t) o[n] = t[n];
  10547.                                                (o.opacity = 1), o.autoAlpha && (o.visibility = 1);
  10548.                                            }
  10549.                                            return (
  10550.                                                t.className &&
  10551.                                                (i = this._classNamePT) &&
  10552.                                                ((r = i.xfirst),
  10553.                                                    r && r._prev ? this._linkCSSP(r._prev, i._next, r._prev._prev) : r === this._firstPT && (this._firstPT = i._next),
  10554.                                                    i._next && this._linkCSSP(i._next, i._next._next, r._prev),
  10555.                                                    (this._classNamePT = null)),
  10556.                                                e.prototype._kill.call(this, o)
  10557.                                            );
  10558.                                        });
  10559.                                        var We = function (e, t, i) {
  10560.                                            var n, r, o, a;
  10561.                                            if (e.slice)
  10562.                                                for (r = e.length; --r > -1;) We(e[r], t, i);
  10563.                                            else
  10564.                                                for (n = e.childNodes, r = n.length; --r > -1;)(o = n[r]), (a = o.type), o.style && (t.push(J(o)), i && i.push(o)), (1 !== a && 9 !== a && 11 !== a) || !o.childNodes.length || We(o, t, i);
  10565.                                        };
  10566.                                        return (
  10567.                                            (s.cascadeTo = function (e, i, n) {
  10568.                                                var r,
  10569.                                                    o,
  10570.                                                    a,
  10571.                                                    s,
  10572.                                                    l = t.to(e, i, n),
  10573.                                                    c = [l],
  10574.                                                    u = [],
  10575.                                                    h = [],
  10576.                                                    d = [],
  10577.                                                    f = t._internals.reservedProps;
  10578.                                                for (e = l._targets || l.target, We(e, u, d), l.render(i, !0, !0), We(e, h), l.render(0, !0, !0), l._enabled(!0), r = d.length; --r > -1;)
  10579.                                                    if (((o = ee(d[r], u[r], h[r])), o.firstMPT)) {
  10580.                                                        o = o.difs;
  10581.                                                        for (a in n) f[a] && (o[a] = n[a]);
  10582.                                                        s = {};
  10583.                                                        for (a in o) s[a] = u[r][a];
  10584.                                                        c.push(t.fromTo(d[r], i, s, o));
  10585.                                                    }
  10586.                                                return c;
  10587.                                            }),
  10588.                                            e.activate([s]),
  10589.                                            s
  10590.                                        );
  10591.                                    },
  10592.                                    !0
  10593.                                ),
  10594.                                (function () {
  10595.                                    var e = i._gsDefine.plugin({
  10596.                                            propName: "roundProps",
  10597.                                            version: "1.5",
  10598.                                            priority: -1,
  10599.                                            API: 2,
  10600.                                            init: function (e, t, i) {
  10601.                                                return (this._tween = i), !0;
  10602.                                            },
  10603.                                        }),
  10604.                                        t = function (e) {
  10605.                                            for (; e;) e.f || e.blob || (e.r = 1), (e = e._next);
  10606.                                        },
  10607.                                        n = e.prototype;
  10608.                                    (n._onInitAllProps = function () {
  10609.                                        for (var e, i, n, r = this._tween, o = r.vars.roundProps.join ? r.vars.roundProps : r.vars.roundProps.split(","), a = o.length, s = {}, l = r._propLookup.roundProps; --a > -1;) s[o[a]] = 1;
  10610.                                        for (a = o.length; --a > -1;)
  10611.                                            for (e = o[a], i = r._firstPT; i;)
  10612.                                                (n = i._next),
  10613.                                                i.pg ?
  10614.                                                i.t._roundProps(s, !0) :
  10615.                                                i.n === e &&
  10616.                                                (2 === i.f && i.t ?
  10617.                                                    t(i.t._firstPT) :
  10618.                                                    (this._add(i.t, e, i.s, i.c), n && (n._prev = i._prev), i._prev ? (i._prev._next = n) : r._firstPT === i && (r._firstPT = n), (i._next = i._prev = null), (r._propLookup[e] = l))),
  10619.                                                (i = n);
  10620.                                        return !1;
  10621.                                    }),
  10622.                                    (n._add = function (e, t, i, n) {
  10623.                                        this._addTween(e, t, i, i + n, t, !0), this._overwriteProps.push(t);
  10624.                                    });
  10625.                                })(),
  10626.                                (function () {
  10627.                                    i._gsDefine.plugin({
  10628.                                        propName: "attr",
  10629.                                        API: 2,
  10630.                                        version: "0.5.0",
  10631.                                        init: function (e, t, i) {
  10632.                                            var n;
  10633.                                            if ("function" != typeof e.setAttribute) return !1;
  10634.                                            for (n in t) this._addTween(e, "setAttribute", e.getAttribute(n) + "", t[n] + "", n, !1, n), this._overwriteProps.push(n);
  10635.                                            return !0;
  10636.                                        },
  10637.                                    });
  10638.                                })(),
  10639.                                (i._gsDefine.plugin({
  10640.                                    propName: "directionalRotation",
  10641.                                    version: "0.2.1",
  10642.                                    API: 2,
  10643.                                    init: function (e, t, i) {
  10644.                                        "object" != typeof t && (t = {
  10645.                                            rotation: t
  10646.                                        }), (this.finals = {});
  10647.                                        var n,
  10648.                                            r,
  10649.                                            o,
  10650.                                            a,
  10651.                                            s,
  10652.                                            l,
  10653.                                            c = t.useRadians === !0 ? 2 * Math.PI : 360,
  10654.                                            u = 1e-6;
  10655.                                        for (n in t)
  10656.                                            "useRadians" !== n &&
  10657.                                            ((l = (t[n] + "").split("_")),
  10658.                                                (r = l[0]),
  10659.                                                (o = parseFloat("function" != typeof e[n] ? e[n] : e[n.indexOf("set") || "function" != typeof e["get" + n.substr(3)] ? n : "get" + n.substr(3)]())),
  10660.                                                (a = this.finals[n] = "string" == typeof r && "=" === r.charAt(1) ? o + parseInt(r.charAt(0) + "1", 10) * Number(r.substr(2)) : Number(r) || 0),
  10661.                                                (s = a - o),
  10662.                                                l.length &&
  10663.                                                ((r = l.join("_")),
  10664.                                                    -1 !== r.indexOf("short") && ((s %= c), s !== s % (c / 2) && (s = 0 > s ? s + c : s - c)),
  10665.                                                    -1 !== r.indexOf("_cw") && 0 > s ? (s = ((s + 9999999999 * c) % c) - ((s / c) | 0) * c) : -1 !== r.indexOf("ccw") && s > 0 && (s = ((s - 9999999999 * c) % c) - ((s / c) | 0) * c)),
  10666.                                                (s > u || -u > s) && (this._addTween(e, n, o, o + s, n), this._overwriteProps.push(n)));
  10667.                                        return !0;
  10668.                                    },
  10669.                                    set: function (e) {
  10670.                                        var t;
  10671.                                        if (1 !== e) this._super.setRatio.call(this, e);
  10672.                                        else
  10673.                                            for (t = this._firstPT; t;) t.f ? t.t[t.p](this.finals[t.p]) : (t.t[t.p] = this.finals[t.p]), (t = t._next);
  10674.                                    },
  10675.                                })._autoCSS = !0),
  10676.                                i._gsDefine(
  10677.                                    "easing.Back",
  10678.                                    ["easing.Ease"],
  10679.                                    function (e) {
  10680.                                        var t,
  10681.                                            n,
  10682.                                            r,
  10683.                                            o = i.GreenSockGlobals || i,
  10684.                                            a = o.com.greensock,
  10685.                                            s = 2 * Math.PI,
  10686.                                            l = Math.PI / 2,
  10687.                                            c = a._class,
  10688.                                            u = function (t, i) {
  10689.                                                var n = c("easing." + t, function () {}, !0),
  10690.                                                    r = (n.prototype = new e());
  10691.                                                return (r.constructor = n), (r.getRatio = i), n;
  10692.                                            },
  10693.                                            h = e.register || function () {},
  10694.                                            d = function (e, t, i, n, r) {
  10695.                                                var o = c("easing." + e, {
  10696.                                                    easeOut: new t(),
  10697.                                                    easeIn: new i(),
  10698.                                                    easeInOut: new n()
  10699.                                                }, !0);
  10700.                                                return h(o, e), o;
  10701.                                            },
  10702.                                            f = function (e, t, i) {
  10703.                                                (this.t = e), (this.v = t), i && ((this.next = i), (i.prev = this), (this.c = i.v - t), (this.gap = i.t - e));
  10704.                                            },
  10705.                                            p = function (t, i) {
  10706.                                                var n = c(
  10707.                                                        "easing." + t,
  10708.                                                        function (e) {
  10709.                                                            (this._p1 = e || 0 === e ? e : 1.70158), (this._p2 = 1.525 * this._p1);
  10710.                                                        },
  10711.                                                        !0
  10712.                                                    ),
  10713.                                                    r = (n.prototype = new e());
  10714.                                                return (
  10715.                                                    (r.constructor = n),
  10716.                                                    (r.getRatio = i),
  10717.                                                    (r.config = function (e) {
  10718.                                                        return new n(e);
  10719.                                                    }),
  10720.                                                    n
  10721.                                                );
  10722.                                            },
  10723.                                            m = d(
  10724.                                                "Back",
  10725.                                                p("BackOut", function (e) {
  10726.                                                    return (e -= 1) * e * ((this._p1 + 1) * e + this._p1) + 1;
  10727.                                                }),
  10728.                                                p("BackIn", function (e) {
  10729.                                                    return e * e * ((this._p1 + 1) * e - this._p1);
  10730.                                                }),
  10731.                                                p("BackInOut", function (e) {
  10732.                                                    return (e *= 2) < 1 ? 0.5 * e * e * ((this._p2 + 1) * e - this._p2) : 0.5 * ((e -= 2) * e * ((this._p2 + 1) * e + this._p2) + 2);
  10733.                                                })
  10734.                                            ),
  10735.                                            v = c(
  10736.                                                "easing.SlowMo",
  10737.                                                function (e, t, i) {
  10738.                                                    (t = t || 0 === t ? t : 0.7),
  10739.                                                    null == e ? (e = 0.7) : e > 1 && (e = 1),
  10740.                                                        (this._p = 1 !== e ? t : 0),
  10741.                                                        (this._p1 = (1 - e) / 2),
  10742.                                                        (this._p2 = e),
  10743.                                                        (this._p3 = this._p1 + this._p2),
  10744.                                                        (this._calcEnd = i === !0);
  10745.                                                },
  10746.                                                !0
  10747.                                            ),
  10748.                                            g = (v.prototype = new e());
  10749.                                        return (
  10750.                                            (g.constructor = v),
  10751.                                            (g.getRatio = function (e) {
  10752.                                                var t = e + (0.5 - e) * this._p;
  10753.                                                return e < this._p1 ?
  10754.                                                    this._calcEnd ?
  10755.                                                    1 - (e = 1 - e / this._p1) * e :
  10756.                                                    t - (e = 1 - e / this._p1) * e * e * e * t :
  10757.                                                    e > this._p3 ?
  10758.                                                    this._calcEnd ?
  10759.                                                    1 - (e = (e - this._p3) / this._p1) * e :
  10760.                                                    t + (e - t) * (e = (e - this._p3) / this._p1) * e * e * e :
  10761.                                                    this._calcEnd ?
  10762.                                                    1 :
  10763.                                                    t;
  10764.                                            }),
  10765.                                            (v.ease = new v(0.7, 0.7)),
  10766.                                            (g.config = v.config = function (e, t, i) {
  10767.                                                return new v(e, t, i);
  10768.                                            }),
  10769.                                            (t = c(
  10770.                                                "easing.SteppedEase",
  10771.                                                function (e) {
  10772.                                                    (e = e || 1), (this._p1 = 1 / e), (this._p2 = e + 1);
  10773.                                                },
  10774.                                                !0
  10775.                                            )),
  10776.                                            (g = t.prototype = new e()),
  10777.                                            (g.constructor = t),
  10778.                                            (g.getRatio = function (e) {
  10779.                                                return 0 > e ? (e = 0) : e >= 1 && (e = 0.999999999), ((this._p2 * e) >> 0) * this._p1;
  10780.                                            }),
  10781.                                            (g.config = t.config = function (e) {
  10782.                                                return new t(e);
  10783.                                            }),
  10784.                                            (n = c(
  10785.                                                "easing.RoughEase",
  10786.                                                function (t) {
  10787.                                                    t = t || {};
  10788.                                                    for (
  10789.                                                        var i,
  10790.                                                            n,
  10791.                                                            r,
  10792.                                                            o,
  10793.                                                            a,
  10794.                                                            s,
  10795.                                                            l = t.taper || "none",
  10796.                                                            c = [],
  10797.                                                            u = 0,
  10798.                                                            h = 0 | (t.points || 20),
  10799.                                                            d = h,
  10800.                                                            p = t.randomize !== !1,
  10801.                                                            m = t.clamp === !0,
  10802.                                                            v = t.template instanceof e ? t.template : null,
  10803.                                                            g = "number" == typeof t.strength ? 0.4 * t.strength : 0.4;
  10804.                                                        --d > -1;
  10805.  
  10806.                                                    )
  10807.                                                        (i = p ? Math.random() : (1 / h) * d),
  10808.                                                        (n = v ? v.getRatio(i) : i),
  10809.                                                        "none" === l ?
  10810.                                                        (r = g) :
  10811.                                                        "out" === l ?
  10812.                                                        ((o = 1 - i), (r = o * o * g)) :
  10813.                                                        "in" === l ?
  10814.                                                        (r = i * i * g) :
  10815.                                                        0.5 > i ?
  10816.                                                        ((o = 2 * i), (r = o * o * 0.5 * g)) :
  10817.                                                        ((o = 2 * (1 - i)), (r = o * o * 0.5 * g)),
  10818.                                                        p ? (n += Math.random() * r - 0.5 * r) : d % 2 ? (n += 0.5 * r) : (n -= 0.5 * r),
  10819.                                                        m && (n > 1 ? (n = 1) : 0 > n && (n = 0)),
  10820.                                                        (c[u++] = {
  10821.                                                            x: i,
  10822.                                                            y: n
  10823.                                                        });
  10824.                                                    for (
  10825.                                                        c.sort(function (e, t) {
  10826.                                                            return e.x - t.x;
  10827.                                                        }),
  10828.                                                        s = new f(1, 1, null),
  10829.                                                        d = h;
  10830.                                                        --d > -1;
  10831.  
  10832.                                                    )
  10833.                                                        (a = c[d]), (s = new f(a.x, a.y, s));
  10834.                                                    this._prev = new f(0, 0, 0 !== s.t ? s : s.next);
  10835.                                                },
  10836.                                                !0
  10837.                                            )),
  10838.                                            (g = n.prototype = new e()),
  10839.                                            (g.constructor = n),
  10840.                                            (g.getRatio = function (e) {
  10841.                                                var t = this._prev;
  10842.                                                if (e > t.t) {
  10843.                                                    for (; t.next && e >= t.t;) t = t.next;
  10844.                                                    t = t.prev;
  10845.                                                } else
  10846.                                                    for (; t.prev && e <= t.t;) t = t.prev;
  10847.                                                return (this._prev = t), t.v + ((e - t.t) / t.gap) * t.c;
  10848.                                            }),
  10849.                                            (g.config = function (e) {
  10850.                                                return new n(e);
  10851.                                            }),
  10852.                                            (n.ease = new n()),
  10853.                                            d(
  10854.                                                "Bounce",
  10855.                                                u("BounceOut", function (e) {
  10856.                                                    return 1 / 2.75 > e ?
  10857.                                                        7.5625 * e * e :
  10858.                                                        2 / 2.75 > e ?
  10859.                                                        7.5625 * (e -= 1.5 / 2.75) * e + 0.75 :
  10860.                                                        2.5 / 2.75 > e ?
  10861.                                                        7.5625 * (e -= 2.25 / 2.75) * e + 0.9375 :
  10862.                                                        7.5625 * (e -= 2.625 / 2.75) * e + 0.984375;
  10863.                                                }),
  10864.                                                u("BounceIn", function (e) {
  10865.                                                    return (e = 1 - e) < 1 / 2.75 ?
  10866.                                                        1 - 7.5625 * e * e :
  10867.                                                        2 / 2.75 > e ?
  10868.                                                        1 - (7.5625 * (e -= 1.5 / 2.75) * e + 0.75) :
  10869.                                                        2.5 / 2.75 > e ?
  10870.                                                        1 - (7.5625 * (e -= 2.25 / 2.75) * e + 0.9375) :
  10871.                                                        1 - (7.5625 * (e -= 2.625 / 2.75) * e + 0.984375);
  10872.                                                }),
  10873.                                                u("BounceInOut", function (e) {
  10874.                                                    var t = 0.5 > e;
  10875.                                                    return (
  10876.                                                        (e = t ? 1 - 2 * e : 2 * e - 1),
  10877.                                                        (e =
  10878.                                                            1 / 2.75 > e ?
  10879.                                                            7.5625 * e * e :
  10880.                                                            2 / 2.75 > e ?
  10881.                                                            7.5625 * (e -= 1.5 / 2.75) * e + 0.75 :
  10882.                                                            2.5 / 2.75 > e ?
  10883.                                                            7.5625 * (e -= 2.25 / 2.75) * e + 0.9375 :
  10884.                                                            7.5625 * (e -= 2.625 / 2.75) * e + 0.984375),
  10885.                                                        t ? 0.5 * (1 - e) : 0.5 * e + 0.5
  10886.                                                    );
  10887.                                                })
  10888.                                            ),
  10889.                                            d(
  10890.                                                "Circ",
  10891.                                                u("CircOut", function (e) {
  10892.                                                    return Math.sqrt(1 - (e -= 1) * e);
  10893.                                                }),
  10894.                                                u("CircIn", function (e) {
  10895.                                                    return -(Math.sqrt(1 - e * e) - 1);
  10896.                                                }),
  10897.                                                u("CircInOut", function (e) {
  10898.                                                    return (e *= 2) < 1 ? -0.5 * (Math.sqrt(1 - e * e) - 1) : 0.5 * (Math.sqrt(1 - (e -= 2) * e) + 1);
  10899.                                                })
  10900.                                            ),
  10901.                                            (r = function (t, i, n) {
  10902.                                                var r = c(
  10903.                                                        "easing." + t,
  10904.                                                        function (e, t) {
  10905.                                                            (this._p1 = e >= 1 ? e : 1), (this._p2 = (t || n) / (1 > e ? e : 1)), (this._p3 = (this._p2 / s) * (Math.asin(1 / this._p1) || 0)), (this._p2 = s / this._p2);
  10906.                                                        },
  10907.                                                        !0
  10908.                                                    ),
  10909.                                                    o = (r.prototype = new e());
  10910.                                                return (
  10911.                                                    (o.constructor = r),
  10912.                                                    (o.getRatio = i),
  10913.                                                    (o.config = function (e, t) {
  10914.                                                        return new r(e, t);
  10915.                                                    }),
  10916.                                                    r
  10917.                                                );
  10918.                                            }),
  10919.                                            d(
  10920.                                                "Elastic",
  10921.                                                r(
  10922.                                                    "ElasticOut",
  10923.                                                    function (e) {
  10924.                                                        return this._p1 * Math.pow(2, -10 * e) * Math.sin((e - this._p3) * this._p2) + 1;
  10925.                                                    },
  10926.                                                    0.3
  10927.                                                ),
  10928.                                                r(
  10929.                                                    "ElasticIn",
  10930.                                                    function (e) {
  10931.                                                        return -(this._p1 * Math.pow(2, 10 * (e -= 1)) * Math.sin((e - this._p3) * this._p2));
  10932.                                                    },
  10933.                                                    0.3
  10934.                                                ),
  10935.                                                r(
  10936.                                                    "ElasticInOut",
  10937.                                                    function (e) {
  10938.                                                        return (e *= 2) < 1 ?
  10939.                                                            -0.5 * (this._p1 * Math.pow(2, 10 * (e -= 1)) * Math.sin((e - this._p3) * this._p2)) :
  10940.                                                            this._p1 * Math.pow(2, -10 * (e -= 1)) * Math.sin((e - this._p3) * this._p2) * 0.5 + 1;
  10941.                                                    },
  10942.                                                    0.45
  10943.                                                )
  10944.                                            ),
  10945.                                            d(
  10946.                                                "Expo",
  10947.                                                u("ExpoOut", function (e) {
  10948.                                                    return 1 - Math.pow(2, -10 * e);
  10949.                                                }),
  10950.                                                u("ExpoIn", function (e) {
  10951.                                                    return Math.pow(2, 10 * (e - 1)) - 0.001;
  10952.                                                }),
  10953.                                                u("ExpoInOut", function (e) {
  10954.                                                    return (e *= 2) < 1 ? 0.5 * Math.pow(2, 10 * (e - 1)) : 0.5 * (2 - Math.pow(2, -10 * (e - 1)));
  10955.                                                })
  10956.                                            ),
  10957.                                            d(
  10958.                                                "Sine",
  10959.                                                u("SineOut", function (e) {
  10960.                                                    return Math.sin(e * l);
  10961.                                                }),
  10962.                                                u("SineIn", function (e) {
  10963.                                                    return -Math.cos(e * l) + 1;
  10964.                                                }),
  10965.                                                u("SineInOut", function (e) {
  10966.                                                    return -0.5 * (Math.cos(Math.PI * e) - 1);
  10967.                                                })
  10968.                                            ),
  10969.                                            c(
  10970.                                                "easing.EaseLookup", {
  10971.                                                    find: function (t) {
  10972.                                                        return e.map[t];
  10973.                                                    },
  10974.                                                },
  10975.                                                !0
  10976.                                            ),
  10977.                                            h(o.SlowMo, "SlowMo", "ease,"),
  10978.                                            h(n, "RoughEase", "ease,"),
  10979.                                            h(t, "SteppedEase", "ease,"),
  10980.                                            m
  10981.                                        );
  10982.                                    },
  10983.                                    !0
  10984.                                );
  10985.                        }),
  10986.                        i._gsDefine && i._gsQueue.pop()(),
  10987.                        (function (e, i) {
  10988.                            "use strict";
  10989.                            var n = (e.GreenSockGlobals = e.GreenSockGlobals || e);
  10990.                            if (!n.TweenLite) {
  10991.                                var r,
  10992.                                    o,
  10993.                                    a,
  10994.                                    s,
  10995.                                    l,
  10996.                                    c = function (e) {
  10997.                                        var t,
  10998.                                            i = e.split("."),
  10999.                                            r = n;
  11000.                                        for (t = 0; t < i.length; t++) r[i[t]] = r = r[i[t]] || {};
  11001.                                        return r;
  11002.                                    },
  11003.                                    u = c("com.greensock"),
  11004.                                    h = 1e-10,
  11005.                                    d = function (e) {
  11006.                                        var t,
  11007.                                            i = [],
  11008.                                            n = e.length;
  11009.                                        for (t = 0; t !== n; i.push(e[t++]));
  11010.                                        return i;
  11011.                                    },
  11012.                                    f = function () {},
  11013.                                    p = (function () {
  11014.                                        var e = Object.prototype.toString,
  11015.                                            t = e.call([]);
  11016.                                        return function (i) {
  11017.                                            return null != i && (i instanceof Array || ("object" == typeof i && !!i.push && e.call(i) === t));
  11018.                                        };
  11019.                                    })(),
  11020.                                    m = {},
  11021.                                    v = function (r, o, a, s) {
  11022.                                        (this.sc = m[r] ? m[r].sc : []), (m[r] = this), (this.gsClass = null), (this.func = a);
  11023.                                        var l = [];
  11024.                                        (this.check = function (u) {
  11025.                                            for (var h, d, f, p, g, y = o.length, _ = y; --y > -1;)(h = m[o[y]] || new v(o[y], [])).gsClass ? ((l[y] = h.gsClass), _--) : u && h.sc.push(this);
  11026.                                            if (0 === _ && a)
  11027.                                                for (
  11028.                                                    d = ("com.greensock." + r).split("."),
  11029.                                                    f = d.pop(),
  11030.                                                    p = c(d.join("."))[f] = this.gsClass = a.apply(a, l),
  11031.                                                    s &&
  11032.                                                    ((n[f] = p),
  11033.                                                        (g = "undefined" != typeof t && t.exports),
  11034.                                                        !g && "function" == typeof define && define.amd ?
  11035.                                                        define((e.GreenSockAMDPath ? e.GreenSockAMDPath + "/" : "") + r.split(".").pop(), [], function () {
  11036.                                                            return p;
  11037.                                                        }) :
  11038.                                                        r === i && g && (t.exports = p)),
  11039.                                                    y = 0; y < this.sc.length; y++
  11040.                                                )
  11041.                                                    this.sc[y].check();
  11042.                                        }),
  11043.                                        this.check(!0);
  11044.                                    },
  11045.                                    g = (e._gsDefine = function (e, t, i, n) {
  11046.                                        return new v(e, t, i, n);
  11047.                                    }),
  11048.                                    y = (u._class = function (e, t, i) {
  11049.                                        return (
  11050.                                            (t = t || function () {}),
  11051.                                            g(
  11052.                                                e,
  11053.                                                [],
  11054.                                                function () {
  11055.                                                    return t;
  11056.                                                },
  11057.                                                i
  11058.                                            ),
  11059.                                            t
  11060.                                        );
  11061.                                    });
  11062.                                g.globals = n;
  11063.                                var _ = [0, 0, 1, 1],
  11064.                                    b = [],
  11065.                                    x = y(
  11066.                                        "easing.Ease",
  11067.                                        function (e, t, i, n) {
  11068.                                            (this._func = e), (this._type = i || 0), (this._power = n || 0), (this._params = t ? _.concat(t) : _);
  11069.                                        },
  11070.                                        !0
  11071.                                    ),
  11072.                                    w = (x.map = {}),
  11073.                                    M = (x.register = function (e, t, i, n) {
  11074.                                        for (var r, o, a, s, l = t.split(","), c = l.length, h = (i || "easeIn,easeOut,easeInOut").split(","); --c > -1;)
  11075.                                            for (o = l[c], r = n ? y("easing." + o, null, !0) : u.easing[o] || {}, a = h.length; --a > -1;)(s = h[a]), (w[o + "." + s] = w[s + o] = r[s] = e.getRatio ? e : e[s] || new e());
  11076.                                    });
  11077.                                for (
  11078.                                    a = x.prototype,
  11079.                                    a._calcEnd = !1,
  11080.                                    a.getRatio = function (e) {
  11081.                                        if (this._func) return (this._params[0] = e), this._func.apply(null, this._params);
  11082.                                        var t = this._type,
  11083.                                            i = this._power,
  11084.                                            n = 1 === t ? 1 - e : 2 === t ? e : 0.5 > e ? 2 * e : 2 * (1 - e);
  11085.                                        return 1 === i ? (n *= n) : 2 === i ? (n *= n * n) : 3 === i ? (n *= n * n * n) : 4 === i && (n *= n * n * n * n), 1 === t ? 1 - n : 2 === t ? n : 0.5 > e ? n / 2 : 1 - n / 2;
  11086.                                    },
  11087.                                    r = ["Linear", "Quad", "Cubic", "Quart", "Quint,Strong"],
  11088.                                    o = r.length;
  11089.                                    --o > -1;
  11090.  
  11091.                                )
  11092.                                    (a = r[o] + ",Power" + o), M(new x(null, null, 1, o), a, "easeOut", !0), M(new x(null, null, 2, o), a, "easeIn" + (0 === o ? ",easeNone" : "")), M(new x(null, null, 3, o), a, "easeInOut");
  11093.                                (w.linear = u.easing.Linear.easeIn), (w.swing = u.easing.Quad.easeInOut);
  11094.                                var T = y("events.EventDispatcher", function (e) {
  11095.                                    (this._listeners = {}), (this._eventTarget = e || this);
  11096.                                });
  11097.                                (a = T.prototype),
  11098.                                (a.addEventListener = function (e, t, i, n, r) {
  11099.                                    r = r || 0;
  11100.                                    var o,
  11101.                                        a,
  11102.                                        c = this._listeners[e],
  11103.                                        u = 0;
  11104.                                    for (null == c && (this._listeners[e] = c = []), a = c.length; --a > -1;)(o = c[a]), o.c === t && o.s === i ? c.splice(a, 1) : 0 === u && o.pr < r && (u = a + 1);
  11105.                                    c.splice(u, 0, {
  11106.                                        c: t,
  11107.                                        s: i,
  11108.                                        up: n,
  11109.                                        pr: r
  11110.                                    }), this !== s || l || s.wake();
  11111.                                }),
  11112.                                (a.removeEventListener = function (e, t) {
  11113.                                    var i,
  11114.                                        n = this._listeners[e];
  11115.                                    if (n)
  11116.                                        for (i = n.length; --i > -1;)
  11117.                                            if (n[i].c === t) return void n.splice(i, 1);
  11118.                                }),
  11119.                                (a.dispatchEvent = function (e) {
  11120.                                    var t,
  11121.                                        i,
  11122.                                        n,
  11123.                                        r = this._listeners[e];
  11124.                                    if (r)
  11125.                                        for (t = r.length, i = this._eventTarget; --t > -1;)(n = r[t]), n && (n.up ? n.c.call(n.s || i, {
  11126.                                            type: e,
  11127.                                            target: i
  11128.                                        }) : n.c.call(n.s || i));
  11129.                                });
  11130.                                var S = e.requestAnimationFrame,
  11131.                                    E = e.cancelAnimationFrame,
  11132.                                    A =
  11133.                                    Date.now ||
  11134.                                    function () {
  11135.                                        return new Date().getTime();
  11136.                                    },
  11137.                                    C = A();
  11138.                                for (r = ["ms", "moz", "webkit", "o"], o = r.length; --o > -1 && !S;)(S = e[r[o] + "RequestAnimationFrame"]), (E = e[r[o] + "CancelAnimationFrame"] || e[r[o] + "CancelRequestAnimationFrame"]);
  11139.                                y("Ticker", function (e, t) {
  11140.                                        var i,
  11141.                                            n,
  11142.                                            r,
  11143.                                            o,
  11144.                                            a,
  11145.                                            c = this,
  11146.                                            u = A(),
  11147.                                            d = t !== !1 && S,
  11148.                                            p = 500,
  11149.                                            m = 33,
  11150.                                            v = "tick",
  11151.                                            g = function (e) {
  11152.                                                var t,
  11153.                                                    s,
  11154.                                                    l = A() - C;
  11155.                                                l > p && (u += l - m),
  11156.                                                    (C += l),
  11157.                                                    (c.time = (C - u) / 1e3),
  11158.                                                    (t = c.time - a),
  11159.                                                    (!i || t > 0 || e === !0) && (c.frame++, (a += t + (t >= o ? 0.004 : o - t)), (s = !0)),
  11160.                                                    e !== !0 && (r = n(g)),
  11161.                                                    s && c.dispatchEvent(v);
  11162.                                            };
  11163.                                        T.call(c),
  11164.                                            (c.time = c.frame = 0),
  11165.                                            (c.tick = function () {
  11166.                                                g(!0);
  11167.                                            }),
  11168.                                            (c.lagSmoothing = function (e, t) {
  11169.                                                (p = e || 1 / h), (m = Math.min(t, p, 0));
  11170.                                            }),
  11171.                                            (c.sleep = function () {
  11172.                                                null != r && (d && E ? E(r) : clearTimeout(r), (n = f), (r = null), c === s && (l = !1));
  11173.                                            }),
  11174.                                            (c.wake = function () {
  11175.                                                null !== r ? c.sleep() : c.frame > 10 && (C = A() - p + 5),
  11176.                                                    (n =
  11177.                                                        0 === i ?
  11178.                                                        f :
  11179.                                                        d && S ?
  11180.                                                        S :
  11181.                                                        function (e) {
  11182.                                                            return setTimeout(e, (1e3 * (a - c.time) + 1) | 0);
  11183.                                                        }),
  11184.                                                    c === s && (l = !0),
  11185.                                                    g(2);
  11186.                                            }),
  11187.                                            (c.fps = function (e) {
  11188.                                                return arguments.length ? ((i = e), (o = 1 / (i || 60)), (a = this.time + o), void c.wake()) : i;
  11189.                                            }),
  11190.                                            (c.useRAF = function (e) {
  11191.                                                return arguments.length ? (c.sleep(), (d = e), void c.fps(i)) : d;
  11192.                                            }),
  11193.                                            c.fps(e),
  11194.                                            setTimeout(function () {
  11195.                                                d && c.frame < 5 && c.useRAF(!1);
  11196.                                            }, 1500);
  11197.                                    }),
  11198.                                    (a = u.Ticker.prototype = new u.events.EventDispatcher()),
  11199.                                    (a.constructor = u.Ticker);
  11200.                                var P = y("core.Animation", function (e, t) {
  11201.                                    if (
  11202.                                        ((this.vars = t = t || {}),
  11203.                                            (this._duration = this._totalDuration = e || 0),
  11204.                                            (this._delay = Number(t.delay) || 0),
  11205.                                            (this._timeScale = 1),
  11206.                                            (this._active = t.immediateRender === !0),
  11207.                                            (this.data = t.data),
  11208.                                            (this._reversed = t.reversed === !0),
  11209.                                            Y)
  11210.                                    ) {
  11211.                                        l || s.wake();
  11212.                                        var i = this.vars.useFrames ? X : Y;
  11213.                                        i.add(this, i._time), this.vars.paused && this.paused(!0);
  11214.                                    }
  11215.                                });
  11216.                                (s = P.ticker = new u.Ticker()),
  11217.                                (a = P.prototype),
  11218.                                (a._dirty = a._gc = a._initted = a._paused = !1),
  11219.                                (a._totalTime = a._time = 0),
  11220.                                (a._rawPrevTime = -1),
  11221.                                (a._next = a._last = a._onUpdate = a._timeline = a.timeline = null),
  11222.                                (a._paused = !1);
  11223.                                var L = function () {
  11224.                                    l && A() - C > 2e3 && s.wake(), setTimeout(L, 2e3);
  11225.                                };
  11226.                                L(),
  11227.                                    (a.play = function (e, t) {
  11228.                                        return null != e && this.seek(e, t), this.reversed(!1).paused(!1);
  11229.                                    }),
  11230.                                    (a.pause = function (e, t) {
  11231.                                        return null != e && this.seek(e, t), this.paused(!0);
  11232.                                    }),
  11233.                                    (a.resume = function (e, t) {
  11234.                                        return null != e && this.seek(e, t), this.paused(!1);
  11235.                                    }),
  11236.                                    (a.seek = function (e, t) {
  11237.                                        return this.totalTime(Number(e), t !== !1);
  11238.                                    }),
  11239.                                    (a.restart = function (e, t) {
  11240.                                        return this.reversed(!1)
  11241.                                            .paused(!1)
  11242.                                            .totalTime(e ? -this._delay : 0, t !== !1, !0);
  11243.                                    }),
  11244.                                    (a.reverse = function (e, t) {
  11245.                                        return null != e && this.seek(e || this.totalDuration(), t), this.reversed(!0).paused(!1);
  11246.                                    }),
  11247.                                    (a.render = function (e, t, i) {}),
  11248.                                    (a.invalidate = function () {
  11249.                                        return (this._time = this._totalTime = 0), (this._initted = this._gc = !1), (this._rawPrevTime = -1), (this._gc || !this.timeline) && this._enabled(!0), this;
  11250.                                    }),
  11251.                                    (a.isActive = function () {
  11252.                                        var e,
  11253.                                            t = this._timeline,
  11254.                                            i = this._startTime;
  11255.                                        return !t || (!this._gc && !this._paused && t.isActive() && (e = t.rawTime()) >= i && e < i + this.totalDuration() / this._timeScale);
  11256.                                    }),
  11257.                                    (a._enabled = function (e, t) {
  11258.                                        return (
  11259.                                            l || s.wake(),
  11260.                                            (this._gc = !e),
  11261.                                            (this._active = this.isActive()),
  11262.                                            t !== !0 && (e && !this.timeline ? this._timeline.add(this, this._startTime - this._delay) : !e && this.timeline && this._timeline._remove(this, !0)),
  11263.                                            !1
  11264.                                        );
  11265.                                    }),
  11266.                                    (a._kill = function (e, t) {
  11267.                                        return this._enabled(!1, !1);
  11268.                                    }),
  11269.                                    (a.kill = function (e, t) {
  11270.                                        return this._kill(e, t), this;
  11271.                                    }),
  11272.                                    (a._uncache = function (e) {
  11273.                                        for (var t = e ? this : this.timeline; t;)(t._dirty = !0), (t = t.timeline);
  11274.                                        return this;
  11275.                                    }),
  11276.                                    (a._swapSelfInParams = function (e) {
  11277.                                        for (var t = e.length, i = e.concat(); --t > -1;) "{self}" === e[t] && (i[t] = this);
  11278.                                        return i;
  11279.                                    }),
  11280.                                    (a._callback = function (e) {
  11281.                                        var t = this.vars;
  11282.                                        t[e].apply(t[e + "Scope"] || t.callbackScope || this, t[e + "Params"] || b);
  11283.                                    }),
  11284.                                    (a.eventCallback = function (e, t, i, n) {
  11285.                                        if ("on" === (e || "").substr(0, 2)) {
  11286.                                            var r = this.vars;
  11287.                                            if (1 === arguments.length) return r[e];
  11288.                                            null == t ? delete r[e] : ((r[e] = t), (r[e + "Params"] = p(i) && -1 !== i.join("").indexOf("{self}") ? this._swapSelfInParams(i) : i), (r[e + "Scope"] = n)),
  11289.                                                "onUpdate" === e && (this._onUpdate = t);
  11290.                                        }
  11291.                                        return this;
  11292.                                    }),
  11293.                                    (a.delay = function (e) {
  11294.                                        return arguments.length ? (this._timeline.smoothChildTiming && this.startTime(this._startTime + e - this._delay), (this._delay = e), this) : this._delay;
  11295.                                    }),
  11296.                                    (a.duration = function (e) {
  11297.                                        return arguments.length ?
  11298.                                            ((this._duration = this._totalDuration = e),
  11299.                                                this._uncache(!0),
  11300.                                                this._timeline.smoothChildTiming && this._time > 0 && this._time < this._duration && 0 !== e && this.totalTime(this._totalTime * (e / this._duration), !0),
  11301.                                                this) :
  11302.                                            ((this._dirty = !1), this._duration);
  11303.                                    }),
  11304.                                    (a.totalDuration = function (e) {
  11305.                                        return (this._dirty = !1), arguments.length ? this.duration(e) : this._totalDuration;
  11306.                                    }),
  11307.                                    (a.time = function (e, t) {
  11308.                                        return arguments.length ? (this._dirty && this.totalDuration(), this.totalTime(e > this._duration ? this._duration : e, t)) : this._time;
  11309.                                    }),
  11310.                                    (a.totalTime = function (e, t, i) {
  11311.                                        if ((l || s.wake(), !arguments.length)) return this._totalTime;
  11312.                                        if (this._timeline) {
  11313.                                            if ((0 > e && !i && (e += this.totalDuration()), this._timeline.smoothChildTiming)) {
  11314.                                                this._dirty && this.totalDuration();
  11315.                                                var n = this._totalDuration,
  11316.                                                    r = this._timeline;
  11317.                                                if ((e > n && !i && (e = n), (this._startTime = (this._paused ? this._pauseTime : r._time) - (this._reversed ? n - e : e) / this._timeScale), r._dirty || this._uncache(!1), r._timeline))
  11318.                                                    for (; r._timeline;) r._timeline._time !== (r._startTime + r._totalTime) / r._timeScale && r.totalTime(r._totalTime, !0), (r = r._timeline);
  11319.                                            }
  11320.                                            this._gc && this._enabled(!0, !1), (this._totalTime !== e || 0 === this._duration) && (I.length && Z(), this.render(e, t, !1), I.length && Z());
  11321.                                        }
  11322.                                        return this;
  11323.                                    }),
  11324.                                    (a.progress = a.totalProgress = function (e, t) {
  11325.                                        var i = this.duration();
  11326.                                        return arguments.length ? this.totalTime(i * e, t) : i ? this._time / i : this.ratio;
  11327.                                    }),
  11328.                                    (a.startTime = function (e) {
  11329.                                        return arguments.length ? (e !== this._startTime && ((this._startTime = e), this.timeline && this.timeline._sortChildren && this.timeline.add(this, e - this._delay)), this) : this._startTime;
  11330.                                    }),
  11331.                                    (a.endTime = function (e) {
  11332.                                        return this._startTime + (0 != e ? this.totalDuration() : this.duration()) / this._timeScale;
  11333.                                    }),
  11334.                                    (a.timeScale = function (e) {
  11335.                                        if (!arguments.length) return this._timeScale;
  11336.                                        if (((e = e || h), this._timeline && this._timeline.smoothChildTiming)) {
  11337.                                            var t = this._pauseTime,
  11338.                                                i = t || 0 === t ? t : this._timeline.totalTime();
  11339.                                            this._startTime = i - ((i - this._startTime) * this._timeScale) / e;
  11340.                                        }
  11341.                                        return (this._timeScale = e), this._uncache(!1);
  11342.                                    }),
  11343.                                    (a.reversed = function (e) {
  11344.                                        return arguments.length ?
  11345.                                            (e != this._reversed && ((this._reversed = e), this.totalTime(this._timeline && !this._timeline.smoothChildTiming ? this.totalDuration() - this._totalTime : this._totalTime, !0)), this) :
  11346.                                            this._reversed;
  11347.                                    }),
  11348.                                    (a.paused = function (e) {
  11349.                                        if (!arguments.length) return this._paused;
  11350.                                        var t,
  11351.                                            i,
  11352.                                            n = this._timeline;
  11353.                                        return (
  11354.                                            e != this._paused &&
  11355.                                            n &&
  11356.                                            (l || e || s.wake(),
  11357.                                                (t = n.rawTime()),
  11358.                                                (i = t - this._pauseTime),
  11359.                                                !e && n.smoothChildTiming && ((this._startTime += i), this._uncache(!1)),
  11360.                                                (this._pauseTime = e ? t : null),
  11361.                                                (this._paused = e),
  11362.                                                (this._active = this.isActive()),
  11363.                                                !e && 0 !== i && this._initted && this.duration() && ((t = n.smoothChildTiming ? this._totalTime : (t - this._startTime) / this._timeScale), this.render(t, t === this._totalTime, !0))),
  11364.                                            this._gc && !e && this._enabled(!0, !1),
  11365.                                            this
  11366.                                        );
  11367.                                    });
  11368.                                var R = y("core.SimpleTimeline", function (e) {
  11369.                                    P.call(this, 0, e), (this.autoRemoveChildren = this.smoothChildTiming = !0);
  11370.                                });
  11371.                                (a = R.prototype = new P()),
  11372.                                (a.constructor = R),
  11373.                                (a.kill()._gc = !1),
  11374.                                (a._first = a._last = a._recent = null),
  11375.                                (a._sortChildren = !1),
  11376.                                (a.add = a.insert = function (e, t, i, n) {
  11377.                                    var r, o;
  11378.                                    if (
  11379.                                        ((e._startTime = Number(t || 0) + e._delay),
  11380.                                            e._paused && this !== e._timeline && (e._pauseTime = e._startTime + (this.rawTime() - e._startTime) / e._timeScale),
  11381.                                            e.timeline && e.timeline._remove(e, !0),
  11382.                                            (e.timeline = e._timeline = this),
  11383.                                            e._gc && e._enabled(!0, !0),
  11384.                                            (r = this._last),
  11385.                                            this._sortChildren)
  11386.                                    )
  11387.                                        for (o = e._startTime; r && r._startTime > o;) r = r._prev;
  11388.                                    return (
  11389.                                        r ? ((e._next = r._next), (r._next = e)) : ((e._next = this._first), (this._first = e)),
  11390.                                        e._next ? (e._next._prev = e) : (this._last = e),
  11391.                                        (e._prev = r),
  11392.                                        (this._recent = e),
  11393.                                        this._timeline && this._uncache(!0),
  11394.                                        this
  11395.                                    );
  11396.                                }),
  11397.                                (a._remove = function (e, t) {
  11398.                                    return (
  11399.                                        e.timeline === this &&
  11400.                                        (t || e._enabled(!1, !0),
  11401.                                            e._prev ? (e._prev._next = e._next) : this._first === e && (this._first = e._next),
  11402.                                            e._next ? (e._next._prev = e._prev) : this._last === e && (this._last = e._prev),
  11403.                                            (e._next = e._prev = e.timeline = null),
  11404.                                            e === this._recent && (this._recent = this._last),
  11405.                                            this._timeline && this._uncache(!0)),
  11406.                                        this
  11407.                                    );
  11408.                                }),
  11409.                                (a.render = function (e, t, i) {
  11410.                                    var n,
  11411.                                        r = this._first;
  11412.                                    for (this._totalTime = this._time = this._rawPrevTime = e; r;)
  11413.                                        (n = r._next),
  11414.                                        (r._active || (e >= r._startTime && !r._paused)) &&
  11415.                                        (r._reversed ? r.render((r._dirty ? r.totalDuration() : r._totalDuration) - (e - r._startTime) * r._timeScale, t, i) : r.render((e - r._startTime) * r._timeScale, t, i)),
  11416.                                        (r = n);
  11417.                                }),
  11418.                                (a.rawTime = function () {
  11419.                                    return l || s.wake(), this._totalTime;
  11420.                                });
  11421.                                var O = y(
  11422.                                        "TweenLite",
  11423.                                        function (t, i, n) {
  11424.                                            if ((P.call(this, i, n), (this.render = O.prototype.render), null == t)) throw "Cannot tween a null target.";
  11425.                                            this.target = t = "string" != typeof t ? t : O.selector(t) || t;
  11426.                                            var r,
  11427.                                                o,
  11428.                                                a,
  11429.                                                s = t.jquery || (t.length && t !== e && t[0] && (t[0] === e || (t[0].nodeType && t[0].style && !t.nodeType))),
  11430.                                                l = this.vars.overwrite;
  11431.                                            if (((this._overwrite = l = null == l ? W[O.defaultOverwrite] : "number" == typeof l ? l >> 0 : W[l]), (s || t instanceof Array || (t.push && p(t))) && "number" != typeof t[0]))
  11432.                                                for (this._targets = a = d(t), this._propLookup = [], this._siblings = [], r = 0; r < a.length; r++)
  11433.                                                    (o = a[r]),
  11434.                                                    o ?
  11435.                                                    "string" != typeof o ?
  11436.                                                    o.length && o !== e && o[0] && (o[0] === e || (o[0].nodeType && o[0].style && !o.nodeType)) ?
  11437.                                                    (a.splice(r--, 1), (this._targets = a = a.concat(d(o)))) :
  11438.                                                    ((this._siblings[r] = K(o, this, !1)), 1 === l && this._siblings[r].length > 1 && J(o, this, null, 1, this._siblings[r])) :
  11439.                                                    ((o = a[r--] = O.selector(o)), "string" == typeof o && a.splice(r + 1, 1)) :
  11440.                                                    a.splice(r--, 1);
  11441.                                            else(this._propLookup = {}), (this._siblings = K(t, this, !1)), 1 === l && this._siblings.length > 1 && J(t, this, null, 1, this._siblings);
  11442.                                            (this.vars.immediateRender || (0 === i && 0 === this._delay && this.vars.immediateRender !== !1)) && ((this._time = -h), this.render(-this._delay));
  11443.                                        },
  11444.                                        !0
  11445.                                    ),
  11446.                                    k = function (t) {
  11447.                                        return t && t.length && t !== e && t[0] && (t[0] === e || (t[0].nodeType && t[0].style && !t.nodeType));
  11448.                                    },
  11449.                                    D = function (e, t) {
  11450.                                        var i,
  11451.                                            n = {};
  11452.                                        for (i in e)
  11453.                                            H[i] ||
  11454.                                            (i in t && "transform" !== i && "x" !== i && "y" !== i && "width" !== i && "height" !== i && "className" !== i && "border" !== i) ||
  11455.                                            !(!G[i] || (G[i] && G[i]._autoCSS)) ||
  11456.                                            ((n[i] = e[i]), delete e[i]);
  11457.                                        e.css = n;
  11458.                                    };
  11459.                                (a = O.prototype = new P()),
  11460.                                (a.constructor = O),
  11461.                                (a.kill()._gc = !1),
  11462.                                (a.ratio = 0),
  11463.                                (a._firstPT = a._targets = a._overwrittenProps = a._startAt = null),
  11464.                                (a._notifyPluginsOfEnabled = a._lazy = !1),
  11465.                                (O.version = "1.18.0"),
  11466.                                (O.defaultEase = a._ease = new x(null, null, 1, 1)),
  11467.                                (O.defaultOverwrite = "auto"),
  11468.                                (O.ticker = s),
  11469.                                (O.autoSleep = 120),
  11470.                                (O.lagSmoothing = function (e, t) {
  11471.                                    s.lagSmoothing(e, t);
  11472.                                }),
  11473.                                (O.selector =
  11474.                                    e.$ ||
  11475.                                    e.jQuery ||
  11476.                                    function (t) {
  11477.                                        var i = e.$ || e.jQuery;
  11478.                                        return i ?
  11479.                                            ((O.selector = i), i(t)) :
  11480.                                            "undefined" == typeof document ?
  11481.                                            t :
  11482.                                            document.querySelectorAll ?
  11483.                                            document.querySelectorAll(t) :
  11484.                                            document.getElementById("#" === t.charAt(0) ? t.substr(1) : t);
  11485.                                    });
  11486.                                var I = [],
  11487.                                    N = {},
  11488.                                    U = /(?:(-|-=|+=)?d*.?d*(?:e[-+]?d+)?)[0-9]/gi,
  11489.                                    j = function (e) {
  11490.                                        for (var t, i = this._firstPT, n = 1e-6; i;)
  11491.                                            (t = i.blob ? (e ? this.join("") : this.start) : i.c * e + i.s),
  11492.                                            i.r ? (t = Math.round(t)) : n > t && t > -n && (t = 0),
  11493.                                            i.f ? (i.fp ? i.t[i.p](i.fp, t) : i.t[i.p](t)) : (i.t[i.p] = t),
  11494.                                            (i = i._next);
  11495.                                    },
  11496.                                    B = function (e, t, i, n) {
  11497.                                        var r,
  11498.                                            o,
  11499.                                            a,
  11500.                                            s,
  11501.                                            l,
  11502.                                            c,
  11503.                                            u,
  11504.                                            h = [e, t],
  11505.                                            d = 0,
  11506.                                            f = "",
  11507.                                            p = 0;
  11508.                                        for (
  11509.                                            h.start = e, i && (i(h), (e = h[0]), (t = h[1])), h.length = 0, r = e.match(U) || [], o = t.match(U) || [], n && ((n._next = null), (n.blob = 1), (h._firstPT = n)), l = o.length, s = 0; l > s; s++
  11510.                                        )
  11511.                                            (u = o[s]),
  11512.                                            (c = t.substr(d, t.indexOf(u, d) - d)),
  11513.                                            (f += c || !s ? c : ","),
  11514.                                            (d += c.length),
  11515.                                            p ? (p = (p + 1) % 5) : "rgba(" === c.substr(-5) && (p = 1),
  11516.                                            u === r[s] || r.length <= s ?
  11517.                                            (f += u) :
  11518.                                            (f && (h.push(f), (f = "")),
  11519.                                                (a = parseFloat(r[s])),
  11520.                                                h.push(a),
  11521.                                                (h._firstPT = {
  11522.                                                    _next: h._firstPT,
  11523.                                                    t: h,
  11524.                                                    p: h.length - 1,
  11525.                                                    s: a,
  11526.                                                    c: ("=" === u.charAt(1) ? parseInt(u.charAt(0) + "1", 10) * parseFloat(u.substr(2)) : parseFloat(u) - a) || 0,
  11527.                                                    f: 0,
  11528.                                                    r: p && 4 > p,
  11529.                                                })),
  11530.                                            (d += u.length);
  11531.                                        return (f += t.substr(d)), f && h.push(f), (h.setRatio = j), h;
  11532.                                    },
  11533.                                    F = function (e, t, i, n, r, o, a, s) {
  11534.                                        var l,
  11535.                                            c,
  11536.                                            u = "get" === i ? e[t] : i,
  11537.                                            h = typeof e[t],
  11538.                                            d = "string" == typeof n && "=" === n.charAt(1),
  11539.                                            f = {
  11540.                                                t: e,
  11541.                                                p: t,
  11542.                                                s: u,
  11543.                                                f: "function" === h,
  11544.                                                pg: 0,
  11545.                                                n: r || t,
  11546.                                                r: o,
  11547.                                                pr: 0,
  11548.                                                c: d ? parseInt(n.charAt(0) + "1", 10) * parseFloat(n.substr(2)) : parseFloat(n) - u || 0
  11549.                                            };
  11550.                                        return (
  11551.                                            "number" !== h &&
  11552.                                            ("function" === h && "get" === i && ((c = t.indexOf("set") || "function" != typeof e["get" + t.substr(3)] ? t : "get" + t.substr(3)), (f.s = u = a ? e[c](a) : e[c]())),
  11553.                                                "string" == typeof u && (a || isNaN(u)) ?
  11554.                                                ((f.fp = a), (l = B(u, n, s || O.defaultStringFilter, f)), (f = {
  11555.                                                    t: l,
  11556.                                                    p: "setRatio",
  11557.                                                    s: 0,
  11558.                                                    c: 1,
  11559.                                                    f: 2,
  11560.                                                    pg: 0,
  11561.                                                    n: r || t,
  11562.                                                    pr: 0
  11563.                                                })) :
  11564.                                                d || (f.c = parseFloat(n) - parseFloat(u) || 0)),
  11565.                                            f.c ? ((f._next = this._firstPT) && (f._next._prev = f), (this._firstPT = f), f) : void 0
  11566.                                        );
  11567.                                    },
  11568.                                    V = (O._internals = {
  11569.                                        isArray: p,
  11570.                                        isSelector: k,
  11571.                                        lazyTweens: I,
  11572.                                        blobDif: B
  11573.                                    }),
  11574.                                    G = (O._plugins = {}),
  11575.                                    z = (V.tweenLookup = {}),
  11576.                                    $ = 0,
  11577.                                    H = (V.reservedProps = {
  11578.                                        ease: 1,
  11579.                                        delay: 1,
  11580.                                        overwrite: 1,
  11581.                                        onComplete: 1,
  11582.                                        onCompleteParams: 1,
  11583.                                        onCompleteScope: 1,
  11584.                                        useFrames: 1,
  11585.                                        runBackwards: 1,
  11586.                                        startAt: 1,
  11587.                                        onUpdate: 1,
  11588.                                        onUpdateParams: 1,
  11589.                                        onUpdateScope: 1,
  11590.                                        onStart: 1,
  11591.                                        onStartParams: 1,
  11592.                                        onStartScope: 1,
  11593.                                        onReverseComplete: 1,
  11594.                                        onReverseCompleteParams: 1,
  11595.                                        onReverseCompleteScope: 1,
  11596.                                        onRepeat: 1,
  11597.                                        onRepeatParams: 1,
  11598.                                        onRepeatScope: 1,
  11599.                                        easeParams: 1,
  11600.                                        yoyo: 1,
  11601.                                        immediateRender: 1,
  11602.                                        repeat: 1,
  11603.                                        repeatDelay: 1,
  11604.                                        data: 1,
  11605.                                        paused: 1,
  11606.                                        reversed: 1,
  11607.                                        autoCSS: 1,
  11608.                                        lazy: 1,
  11609.                                        onOverwrite: 1,
  11610.                                        callbackScope: 1,
  11611.                                        stringFilter: 1,
  11612.                                    }),
  11613.                                    W = {
  11614.                                        none: 0,
  11615.                                        all: 1,
  11616.                                        auto: 2,
  11617.                                        concurrent: 3,
  11618.                                        allOnStart: 4,
  11619.                                        preexisting: 5,
  11620.                                        true: 1,
  11621.                                        false: 0
  11622.                                    },
  11623.                                    X = (P._rootFramesTimeline = new R()),
  11624.                                    Y = (P._rootTimeline = new R()),
  11625.                                    q = 30,
  11626.                                    Z = (V.lazyRender = function () {
  11627.                                        var e,
  11628.                                            t = I.length;
  11629.                                        for (N = {}; --t > -1;)(e = I[t]), e && e._lazy !== !1 && (e.render(e._lazy[0], e._lazy[1], !0), (e._lazy = !1));
  11630.                                        I.length = 0;
  11631.                                    });
  11632.                                (Y._startTime = s.time),
  11633.                                (X._startTime = s.frame),
  11634.                                (Y._active = X._active = !0),
  11635.                                setTimeout(Z, 1),
  11636.                                    (P._updateRoot = O.render = function () {
  11637.                                        var e, t, i;
  11638.                                        if ((I.length && Z(), Y.render((s.time - Y._startTime) * Y._timeScale, !1, !1), X.render((s.frame - X._startTime) * X._timeScale, !1, !1), I.length && Z(), s.frame >= q)) {
  11639.                                            q = s.frame + (parseInt(O.autoSleep, 10) || 120);
  11640.                                            for (i in z) {
  11641.                                                for (t = z[i].tweens, e = t.length; --e > -1;) t[e]._gc && t.splice(e, 1);
  11642.                                                0 === t.length && delete z[i];
  11643.                                            }
  11644.                                            if (((i = Y._first), (!i || i._paused) && O.autoSleep && !X._first && 1 === s._listeners.tick.length)) {
  11645.                                                for (; i && i._paused;) i = i._next;
  11646.                                                i || s.sleep();
  11647.                                            }
  11648.                                        }
  11649.                                    }),
  11650.                                    s.addEventListener("tick", P._updateRoot);
  11651.                                var K = function (e, t, i) {
  11652.                                        var n,
  11653.                                            r,
  11654.                                            o = e._gsTweenID;
  11655.                                        if ((z[o || (e._gsTweenID = o = "t" + $++)] || (z[o] = {
  11656.                                                target: e,
  11657.                                                tweens: []
  11658.                                            }), t && ((n = z[o].tweens), (n[(r = n.length)] = t), i)))
  11659.                                            for (; --r > -1;) n[r] === t && n.splice(r, 1);
  11660.                                        return z[o].tweens;
  11661.                                    },
  11662.                                    Q = function (e, t, i, n) {
  11663.                                        var r,
  11664.                                            o,
  11665.                                            a = e.vars.onOverwrite;
  11666.                                        return a && (r = a(e, t, i, n)), (a = O.onOverwrite), a && (o = a(e, t, i, n)), r !== !1 && o !== !1;
  11667.                                    },
  11668.                                    J = function (e, t, i, n, r) {
  11669.                                        var o, a, s, l;
  11670.                                        if (1 === n || n >= 4) {
  11671.                                            for (l = r.length, o = 0; l > o; o++)
  11672.                                                if ((s = r[o]) !== t) s._gc || (s._kill(null, e, t) && (a = !0));
  11673.                                                else if (5 === n) break;
  11674.                                            return a;
  11675.                                        }
  11676.                                        var c,
  11677.                                            u = t._startTime + h,
  11678.                                            d = [],
  11679.                                            f = 0,
  11680.                                            p = 0 === t._duration;
  11681.                                        for (o = r.length; --o > -1;)
  11682.                                            (s = r[o]) === t ||
  11683.                                            s._gc ||
  11684.                                            s._paused ||
  11685.                                            (s._timeline !== t._timeline ?
  11686.                                                ((c = c || ee(t, 0, p)), 0 === ee(s, c, p) && (d[f++] = s)) :
  11687.                                                s._startTime <= u && s._startTime + s.totalDuration() / s._timeScale > u && (((p || !s._initted) && u - s._startTime <= 2e-10) || (d[f++] = s)));
  11688.                                        for (o = f; --o > -1;)
  11689.                                            if (((s = d[o]), 2 === n && s._kill(i, e, t) && (a = !0), 2 !== n || (!s._firstPT && s._initted))) {
  11690.                                                if (2 !== n && !Q(s, t)) continue;
  11691.                                                s._enabled(!1, !1) && (a = !0);
  11692.                                            }
  11693.                                        return a;
  11694.                                    },
  11695.                                    ee = function (e, t, i) {
  11696.                                        for (var n = e._timeline, r = n._timeScale, o = e._startTime; n._timeline;) {
  11697.                                            if (((o += n._startTime), (r *= n._timeScale), n._paused)) return -100;
  11698.                                            n = n._timeline;
  11699.                                        }
  11700.                                        return (o /= r), o > t ? o - t : (i && o === t) || (!e._initted && 2 * h > o - t) ? h : (o += e.totalDuration() / e._timeScale / r) > t + h ? 0 : o - t - h;
  11701.                                    };
  11702.                                (a._init = function () {
  11703.                                    var e,
  11704.                                        t,
  11705.                                        i,
  11706.                                        n,
  11707.                                        r,
  11708.                                        o = this.vars,
  11709.                                        a = this._overwrittenProps,
  11710.                                        s = this._duration,
  11711.                                        l = !!o.immediateRender,
  11712.                                        c = o.ease;
  11713.                                    if (o.startAt) {
  11714.                                        this._startAt && (this._startAt.render(-1, !0), this._startAt.kill()), (r = {});
  11715.                                        for (n in o.startAt) r[n] = o.startAt[n];
  11716.                                        if (((r.overwrite = !1), (r.immediateRender = !0), (r.lazy = l && o.lazy !== !1), (r.startAt = r.delay = null), (this._startAt = O.to(this.target, 0, r)), l))
  11717.                                            if (this._time > 0) this._startAt = null;
  11718.                                            else if (0 !== s) return;
  11719.                                    } else if (o.runBackwards && 0 !== s)
  11720.                                        if (this._startAt) this._startAt.render(-1, !0), this._startAt.kill(), (this._startAt = null);
  11721.                                        else {
  11722.                                            0 !== this._time && (l = !1), (i = {});
  11723.                                            for (n in o)(H[n] && "autoCSS" !== n) || (i[n] = o[n]);
  11724.                                            if (((i.overwrite = 0), (i.data = "isFromStart"), (i.lazy = l && o.lazy !== !1), (i.immediateRender = l), (this._startAt = O.to(this.target, 0, i)), l)) {
  11725.                                                if (0 === this._time) return;
  11726.                                            } else this._startAt._init(), this._startAt._enabled(!1), this.vars.immediateRender && (this._startAt = null);
  11727.                                        }
  11728.                                    if (
  11729.                                        ((this._ease = c = c ? (c instanceof x ? c : "function" == typeof c ? new x(c, o.easeParams) : w[c] || O.defaultEase) : O.defaultEase),
  11730.                                            o.easeParams instanceof Array && c.config && (this._ease = c.config.apply(c, o.easeParams)),
  11731.                                            (this._easeType = this._ease._type),
  11732.                                            (this._easePower = this._ease._power),
  11733.                                            (this._firstPT = null),
  11734.                                            this._targets)
  11735.                                    )
  11736.                                        for (e = this._targets.length; --e > -1;) this._initProps(this._targets[e], (this._propLookup[e] = {}), this._siblings[e], a ? a[e] : null) && (t = !0);
  11737.                                    else t = this._initProps(this.target, this._propLookup, this._siblings, a);
  11738.                                    if ((t && O._onPluginEvent("_onInitAllProps", this), a && (this._firstPT || ("function" != typeof this.target && this._enabled(!1, !1))), o.runBackwards))
  11739.                                        for (i = this._firstPT; i;)(i.s += i.c), (i.c = -i.c), (i = i._next);
  11740.                                    (this._onUpdate = o.onUpdate), (this._initted = !0);
  11741.                                }),
  11742.                                (a._initProps = function (t, i, n, r) {
  11743.                                    var o, a, s, l, c, u;
  11744.                                    if (null == t) return !1;
  11745.                                    N[t._gsTweenID] && Z(), this.vars.css || (t.style && t !== e && t.nodeType && G.css && this.vars.autoCSS !== !1 && D(this.vars, t));
  11746.                                    for (o in this.vars)
  11747.                                        if (((u = this.vars[o]), H[o])) u && (u instanceof Array || (u.push && p(u))) && -1 !== u.join("").indexOf("{self}") && (this.vars[o] = u = this._swapSelfInParams(u, this));
  11748.                                        else if (G[o] && (l = new G[o]())._onInitTween(t, this.vars[o], this)) {
  11749.                                        for (this._firstPT = c = {
  11750.                                                _next: this._firstPT,
  11751.                                                t: l,
  11752.                                                p: "setRatio",
  11753.                                                s: 0,
  11754.                                                c: 1,
  11755.                                                f: 1,
  11756.                                                n: o,
  11757.                                                pg: 1,
  11758.                                                pr: l._priority
  11759.                                            }, a = l._overwriteProps.length; --a > -1;)
  11760.                                            i[l._overwriteProps[a]] = this._firstPT;
  11761.                                        (l._priority || l._onInitAllProps) && (s = !0), (l._onDisable || l._onEnable) && (this._notifyPluginsOfEnabled = !0), c._next && (c._next._prev = c);
  11762.                                    } else i[o] = F.call(this, t, o, "get", u, o, 0, null, this.vars.stringFilter);
  11763.                                    return r && this._kill(r, t) ?
  11764.                                        this._initProps(t, i, n, r) :
  11765.                                        this._overwrite > 1 && this._firstPT && n.length > 1 && J(t, this, i, this._overwrite, n) ?
  11766.                                        (this._kill(i, t), this._initProps(t, i, n, r)) :
  11767.                                        (this._firstPT && ((this.vars.lazy !== !1 && this._duration) || (this.vars.lazy && !this._duration)) && (N[t._gsTweenID] = !0), s);
  11768.                                }),
  11769.                                (a.render = function (e, t, i) {
  11770.                                    var n,
  11771.                                        r,
  11772.                                        o,
  11773.                                        a,
  11774.                                        s = this._time,
  11775.                                        l = this._duration,
  11776.                                        c = this._rawPrevTime;
  11777.                                    if (e >= l)
  11778.                                        (this._totalTime = this._time = l),
  11779.                                        (this.ratio = this._ease._calcEnd ? this._ease.getRatio(1) : 1),
  11780.                                        this._reversed || ((n = !0), (r = "onComplete"), (i = i || this._timeline.autoRemoveChildren)),
  11781.                                        0 === l &&
  11782.                                        (this._initted || !this.vars.lazy || i) &&
  11783.                                        (this._startTime === this._timeline._duration && (e = 0),
  11784.                                            (0 === e || 0 > c || (c === h && "isPause" !== this.data)) && c !== e && ((i = !0), c > h && (r = "onReverseComplete")),
  11785.                                            (this._rawPrevTime = a = !t || e || c === e ? e : h));
  11786.                                    else if (1e-7 > e)
  11787.                                        (this._totalTime = this._time = 0),
  11788.                                        (this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0),
  11789.                                        (0 !== s || (0 === l && c > 0)) && ((r = "onReverseComplete"), (n = this._reversed)),
  11790.                                        0 > e &&
  11791.                                        ((this._active = !1),
  11792.                                            0 === l && (this._initted || !this.vars.lazy || i) && (c >= 0 && (c !== h || "isPause" !== this.data) && (i = !0), (this._rawPrevTime = a = !t || e || c === e ? e : h))),
  11793.                                        this._initted || (i = !0);
  11794.                                    else if (((this._totalTime = this._time = e), this._easeType)) {
  11795.                                        var u = e / l,
  11796.                                            d = this._easeType,
  11797.                                            f = this._easePower;
  11798.                                        (1 === d || (3 === d && u >= 0.5)) && (u = 1 - u),
  11799.                                        3 === d && (u *= 2),
  11800.                                            1 === f ? (u *= u) : 2 === f ? (u *= u * u) : 3 === f ? (u *= u * u * u) : 4 === f && (u *= u * u * u * u),
  11801.                                            1 === d ? (this.ratio = 1 - u) : 2 === d ? (this.ratio = u) : 0.5 > e / l ? (this.ratio = u / 2) : (this.ratio = 1 - u / 2);
  11802.                                    } else this.ratio = this._ease.getRatio(e / l);
  11803.                                    if (this._time !== s || i) {
  11804.                                        if (!this._initted) {
  11805.                                            if ((this._init(), !this._initted || this._gc)) return;
  11806.                                            if (!i && this._firstPT && ((this.vars.lazy !== !1 && this._duration) || (this.vars.lazy && !this._duration)))
  11807.                                                return (this._time = this._totalTime = s), (this._rawPrevTime = c), I.push(this), void(this._lazy = [e, t]);
  11808.                                            this._time && !n ? (this.ratio = this._ease.getRatio(this._time / l)) : n && this._ease._calcEnd && (this.ratio = this._ease.getRatio(0 === this._time ? 0 : 1));
  11809.                                        }
  11810.                                        for (
  11811.                                            this._lazy !== !1 && (this._lazy = !1),
  11812.                                            this._active || (!this._paused && this._time !== s && e >= 0 && (this._active = !0)),
  11813.                                            0 === s && (this._startAt && (e >= 0 ? this._startAt.render(e, t, i) : r || (r = "_dummyGS")), this.vars.onStart && (0 !== this._time || 0 === l) && (t || this._callback("onStart"))),
  11814.                                            o = this._firstPT; o;
  11815.  
  11816.                                        )
  11817.                                            o.f ? o.t[o.p](o.c * this.ratio + o.s) : (o.t[o.p] = o.c * this.ratio + o.s), (o = o._next);
  11818.                                        this._onUpdate && (0 > e && this._startAt && e !== -1e-4 && this._startAt.render(e, t, i), t || ((this._time !== s || n) && this._callback("onUpdate"))),
  11819.                                            r &&
  11820.                                            (!this._gc || i) &&
  11821.                                            (0 > e && this._startAt && !this._onUpdate && e !== -1e-4 && this._startAt.render(e, t, i),
  11822.                                                n && (this._timeline.autoRemoveChildren && this._enabled(!1, !1), (this._active = !1)),
  11823.                                                !t && this.vars[r] && this._callback(r),
  11824.                                                0 === l && this._rawPrevTime === h && a !== h && (this._rawPrevTime = 0));
  11825.                                    }
  11826.                                }),
  11827.                                (a._kill = function (e, t, i) {
  11828.                                    if (("all" === e && (e = null), null == e && (null == t || t === this.target))) return (this._lazy = !1), this._enabled(!1, !1);
  11829.                                    t = "string" != typeof t ? t || this._targets || this.target : O.selector(t) || t;
  11830.                                    var n,
  11831.                                        r,
  11832.                                        o,
  11833.                                        a,
  11834.                                        s,
  11835.                                        l,
  11836.                                        c,
  11837.                                        u,
  11838.                                        h,
  11839.                                        d = i && this._time && i._startTime === this._startTime && this._timeline === i._timeline;
  11840.                                    if ((p(t) || k(t)) && "number" != typeof t[0])
  11841.                                        for (n = t.length; --n > -1;) this._kill(e, t[n], i) && (l = !0);
  11842.                                    else {
  11843.                                        if (this._targets) {
  11844.                                            for (n = this._targets.length; --n > -1;)
  11845.                                                if (t === this._targets[n]) {
  11846.                                                    (s = this._propLookup[n] || {}), (this._overwrittenProps = this._overwrittenProps || []), (r = this._overwrittenProps[n] = e ? this._overwrittenProps[n] || {} : "all");
  11847.                                                    break;
  11848.                                                }
  11849.                                        } else {
  11850.                                            if (t !== this.target) return !1;
  11851.                                            (s = this._propLookup), (r = this._overwrittenProps = e ? this._overwrittenProps || {} : "all");
  11852.                                        }
  11853.                                        if (s) {
  11854.                                            if (((c = e || s), (u = e !== r && "all" !== r && e !== s && ("object" != typeof e || !e._tempKill)), i && (O.onOverwrite || this.vars.onOverwrite))) {
  11855.                                                for (o in c) s[o] && (h || (h = []), h.push(o));
  11856.                                                if ((h || !e) && !Q(this, i, t, h)) return !1;
  11857.                                            }
  11858.                                            for (o in c)
  11859.                                                (a = s[o]) &&
  11860.                                                (d && (a.f ? a.t[a.p](a.s) : (a.t[a.p] = a.s), (l = !0)),
  11861.                                                    a.pg && a.t._kill(c) && (l = !0),
  11862.                                                    (a.pg && 0 !== a.t._overwriteProps.length) ||
  11863.                                                    (a._prev ? (a._prev._next = a._next) : a === this._firstPT && (this._firstPT = a._next), a._next && (a._next._prev = a._prev), (a._next = a._prev = null)),
  11864.                                                    delete s[o]),
  11865.                                                u && (r[o] = 1);
  11866.                                            !this._firstPT && this._initted && this._enabled(!1, !1);
  11867.                                        }
  11868.                                    }
  11869.                                    return l;
  11870.                                }),
  11871.                                (a.invalidate = function () {
  11872.                                    return (
  11873.                                        this._notifyPluginsOfEnabled && O._onPluginEvent("_onDisable", this),
  11874.                                        (this._firstPT = this._overwrittenProps = this._startAt = this._onUpdate = null),
  11875.                                        (this._notifyPluginsOfEnabled = this._active = this._lazy = !1),
  11876.                                        (this._propLookup = this._targets ? {} : []),
  11877.                                        P.prototype.invalidate.call(this),
  11878.                                        this.vars.immediateRender && ((this._time = -h), this.render(-this._delay)),
  11879.                                        this
  11880.                                    );
  11881.                                }),
  11882.                                (a._enabled = function (e, t) {
  11883.                                    if ((l || s.wake(), e && this._gc)) {
  11884.                                        var i,
  11885.                                            n = this._targets;
  11886.                                        if (n)
  11887.                                            for (i = n.length; --i > -1;) this._siblings[i] = K(n[i], this, !0);
  11888.                                        else this._siblings = K(this.target, this, !0);
  11889.                                    }
  11890.                                    return P.prototype._enabled.call(this, e, t), this._notifyPluginsOfEnabled && this._firstPT ? O._onPluginEvent(e ? "_onEnable" : "_onDisable", this) : !1;
  11891.                                }),
  11892.                                (O.to = function (e, t, i) {
  11893.                                    return new O(e, t, i);
  11894.                                }),
  11895.                                (O.from = function (e, t, i) {
  11896.                                    return (i.runBackwards = !0), (i.immediateRender = 0 != i.immediateRender), new O(e, t, i);
  11897.                                }),
  11898.                                (O.fromTo = function (e, t, i, n) {
  11899.                                    return (n.startAt = i), (n.immediateRender = 0 != n.immediateRender && 0 != i.immediateRender), new O(e, t, n);
  11900.                                }),
  11901.                                (O.delayedCall = function (e, t, i, n, r) {
  11902.                                    return new O(t, 0, {
  11903.                                        delay: e,
  11904.                                        onComplete: t,
  11905.                                        onCompleteParams: i,
  11906.                                        callbackScope: n,
  11907.                                        onReverseComplete: t,
  11908.                                        onReverseCompleteParams: i,
  11909.                                        immediateRender: !1,
  11910.                                        lazy: !1,
  11911.                                        useFrames: r,
  11912.                                        overwrite: 0
  11913.                                    });
  11914.                                }),
  11915.                                (O.set = function (e, t) {
  11916.                                    return new O(e, 0, t);
  11917.                                }),
  11918.                                (O.getTweensOf = function (e, t) {
  11919.                                    if (null == e) return [];
  11920.                                    e = "string" != typeof e ? e : O.selector(e) || e;
  11921.                                    var i, n, r, o;
  11922.                                    if ((p(e) || k(e)) && "number" != typeof e[0]) {
  11923.                                        for (i = e.length, n = []; --i > -1;) n = n.concat(O.getTweensOf(e[i], t));
  11924.                                        for (i = n.length; --i > -1;)
  11925.                                            for (o = n[i], r = i; --r > -1;) o === n[r] && n.splice(i, 1);
  11926.                                    } else
  11927.                                        for (n = K(e).concat(), i = n.length; --i > -1;)(n[i]._gc || (t && !n[i].isActive())) && n.splice(i, 1);
  11928.                                    return n;
  11929.                                }),
  11930.                                (O.killTweensOf = O.killDelayedCallsTo = function (e, t, i) {
  11931.                                    "object" == typeof t && ((i = t), (t = !1));
  11932.                                    for (var n = O.getTweensOf(e, t), r = n.length; --r > -1;) n[r]._kill(i, e);
  11933.                                });
  11934.                                var te = y(
  11935.                                    "plugins.TweenPlugin",
  11936.                                    function (e, t) {
  11937.                                        (this._overwriteProps = (e || "").split(",")), (this._propName = this._overwriteProps[0]), (this._priority = t || 0), (this._super = te.prototype);
  11938.                                    },
  11939.                                    !0
  11940.                                );
  11941.                                if (
  11942.                                    ((a = te.prototype),
  11943.                                        (te.version = "1.18.0"),
  11944.                                        (te.API = 2),
  11945.                                        (a._firstPT = null),
  11946.                                        (a._addTween = F),
  11947.                                        (a.setRatio = j),
  11948.                                        (a._kill = function (e) {
  11949.                                            var t,
  11950.                                                i = this._overwriteProps,
  11951.                                                n = this._firstPT;
  11952.                                            if (null != e[this._propName]) this._overwriteProps = [];
  11953.                                            else
  11954.                                                for (t = i.length; --t > -1;) null != e[i[t]] && i.splice(t, 1);
  11955.                                            for (; n;) null != e[n.n] && (n._next && (n._next._prev = n._prev), n._prev ? ((n._prev._next = n._next), (n._prev = null)) : this._firstPT === n && (this._firstPT = n._next)), (n = n._next);
  11956.                                            return !1;
  11957.                                        }),
  11958.                                        (a._roundProps = function (e, t) {
  11959.                                            for (var i = this._firstPT; i;)(e[this._propName] || (null != i.n && e[i.n.split(this._propName + "_").join("")])) && (i.r = t), (i = i._next);
  11960.                                        }),
  11961.                                        (O._onPluginEvent = function (e, t) {
  11962.                                            var i,
  11963.                                                n,
  11964.                                                r,
  11965.                                                o,
  11966.                                                a,
  11967.                                                s = t._firstPT;
  11968.                                            if ("_onInitAllProps" === e) {
  11969.                                                for (; s;) {
  11970.                                                    for (a = s._next, n = r; n && n.pr > s.pr;) n = n._next;
  11971.                                                    (s._prev = n ? n._prev : o) ? (s._prev._next = s) : (r = s), (s._next = n) ? (n._prev = s) : (o = s), (s = a);
  11972.                                                }
  11973.                                                s = t._firstPT = r;
  11974.                                            }
  11975.                                            for (; s;) s.pg && "function" == typeof s.t[e] && s.t[e]() && (i = !0), (s = s._next);
  11976.                                            return i;
  11977.                                        }),
  11978.                                        (te.activate = function (e) {
  11979.                                            for (var t = e.length; --t > -1;) e[t].API === te.API && (G[new e[t]()._propName] = e[t]);
  11980.                                            return !0;
  11981.                                        }),
  11982.                                        (g.plugin = function (e) {
  11983.                                            if (!(e && e.propName && e.init && e.API)) throw "illegal plugin definition.";
  11984.                                            var t,
  11985.                                                i = e.propName,
  11986.                                                n = e.priority || 0,
  11987.                                                r = e.overwriteProps,
  11988.                                                o = {
  11989.                                                    init: "_onInitTween",
  11990.                                                    set: "setRatio",
  11991.                                                    kill: "_kill",
  11992.                                                    round: "_roundProps",
  11993.                                                    initAll: "_onInitAllProps"
  11994.                                                },
  11995.                                                a = y(
  11996.                                                    "plugins." + i.charAt(0).toUpperCase() + i.substr(1) + "Plugin",
  11997.                                                    function () {
  11998.                                                        te.call(this, i, n), (this._overwriteProps = r || []);
  11999.                                                    },
  12000.                                                    e.global === !0
  12001.                                                ),
  12002.                                                s = (a.prototype = new te(i));
  12003.                                            (s.constructor = a), (a.API = e.API);
  12004.                                            for (t in o) "function" == typeof e[t] && (s[o[t]] = e[t]);
  12005.                                            return (a.version = e.version), te.activate([a]), a;
  12006.                                        }),
  12007.                                        (r = e._gsQueue))
  12008.                                ) {
  12009.                                    for (o = 0; o < r.length; o++) r[o]();
  12010.                                    for (a in m) m[a].func || e.console.log("GSAP encountered missing dependency: com.greensock." + a);
  12011.                                }
  12012.                                l = !1;
  12013.                            }
  12014.                        })("undefined" != typeof t && t.exports && "undefined" != typeof e ? e : this || window, "TweenMax");
  12015.                }.call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}));
  12016.            },
  12017.            {},
  12018.        ],
  12019.        210: [
  12020.            function (e, t, i) {
  12021.                "use strict";
  12022.  
  12023.                function n() {
  12024.                    r.call(this), this.setMaxListeners(20);
  12025.                }
  12026.                var r = e("events").EventEmitter;
  12027.                (n.prototype = Object.create(r.prototype)),
  12028.                (n.prototype.constructor = n),
  12029.                (n.prototype.off = function (e, t) {
  12030.                    return t ? this.removeListener(e, t) : e ? this.removeAllListeners(e) : this.removeAllListeners();
  12031.                }),
  12032.                (t.exports = n);
  12033.            },
  12034.            {
  12035.                events: 188
  12036.            },
  12037.        ],
  12038.        211: [
  12039.            function (e, t, i) {
  12040.                "use strict";
  12041.  
  12042.                function n(e) {
  12043.                    function t(t, i) {
  12044.                        if (e.verbose) {
  12045.                            var n = (i.size / 1024).toFixed() + "kb";
  12046.                            console.log("Imagepack --> Unpacked", t, "image/" + i.type, n);
  12047.                        }
  12048.                        d[t] = i;
  12049.                    }
  12050.  
  12051.                    function i(e) {
  12052.                        return e.replace(/�/g, "");
  12053.                    }
  12054.  
  12055.                    function n(e) {
  12056.                        var t = String.fromCharCode.apply(null, new Uint8Array(e));
  12057.                        return i(t);
  12058.                    }
  12059.  
  12060.                    function o(e) {
  12061.                        var t = new Image(),
  12062.                            i = function () {
  12063.                                t.removeEventListener("load", i), URL.revokeObjectURL(t.src), (t = null);
  12064.                            };
  12065.                        return t.addEventListener("load", i), (t.src = a(e)), t;
  12066.                    }
  12067.  
  12068.                    function a(e) {
  12069.                        var t = d[e];
  12070.                        if (!t) throw new Error("[ERROR] Imagepack " + e + " not found");
  12071.                        var i = new Blob([new Uint8Array(t.contents)], {
  12072.                            type: "image/" + t.type
  12073.                        });
  12074.                        return URL.createObjectURL(i);
  12075.                    }
  12076.  
  12077.                    function s() {
  12078.                        return Object.keys(d).sort();
  12079.                    }
  12080.  
  12081.                    function l(i) {
  12082.                        for (var r = new DataView(i), o = 128, a = 4, l = 8, c = 0; c < r.byteLength;) {
  12083.                            var u = n(i.slice(c, c + o));
  12084.                            c += o;
  12085.                            var d = r.getUint32(c);
  12086.                            c += a;
  12087.                            var f = n(i.slice(c, c + l));
  12088.                            c += l;
  12089.                            var p = i.slice(c, c + d);
  12090.                            (c += d), t(u, {
  12091.                                name: u,
  12092.                                contents: p,
  12093.                                type: f,
  12094.                                size: d
  12095.                            });
  12096.                        }
  12097.                        return e.verbose && console.log("Imagepack --> Unpacked " + s().length + " images"), h.emit("load", s()), h;
  12098.                    }
  12099.  
  12100.                    function c(t) {
  12101.                        var i = new XMLHttpRequest();
  12102.                        i.open("GET", t, !0),
  12103.                            (i.responseType = "arraybuffer"),
  12104.                            i.addEventListener("load", function () {
  12105.                                i.status < 400 ? l(i.response) : n();
  12106.                            }),
  12107.                            i.addEventListener("progress", function (e) {
  12108.                                e.lengthComputable && h.emit("progress", e.loaded / e.total);
  12109.                            });
  12110.                        var n = function () {
  12111.                            var t = "[ERROR] imagepack " + i.status + " " + e.path;
  12112.                            if (!h.listeners("error").length) throw new Error(t);
  12113.                            h.emit("error", t);
  12114.                        };
  12115.                        return i.addEventListener("error", n), i.send(), h;
  12116.                    }
  12117.  
  12118.                    function u() {
  12119.                        return (d = {}), h;
  12120.                    }
  12121.                    (window.Blob && window.DataView) || console.warn("Imagepack --> Unsupported browser");
  12122.                    var h,
  12123.                        d = {};
  12124.                    return (h = Object.create(r.prototype, {
  12125.                        _events: {
  12126.                            value: {}
  12127.                        },
  12128.                        load: {
  12129.                            value: c
  12130.                        },
  12131.                        unpack: {
  12132.                            value: l
  12133.                        },
  12134.                        getURI: {
  12135.                            value: a
  12136.                        },
  12137.                        getImage: {
  12138.                            value: o
  12139.                        },
  12140.                        getKeys: {
  12141.                            value: s
  12142.                        },
  12143.                        destroy: {
  12144.                            value: u
  12145.                        }
  12146.                    })), Object.freeze(h);
  12147.                }
  12148.                var r = e("./emitter.js");
  12149.                if (!ArrayBuffer.prototype.slice) {
  12150.                    var o = ArrayBuffer.prototype;
  12151.                    o.slice = function (e, t) {
  12152.                        if (
  12153.                            (void 0 === e && (e = 0),
  12154.                                void 0 === t && (t = this.byteLength),
  12155.                                (e = Math.floor(e)),
  12156.                                (t = Math.floor(t)),
  12157.                                0 > e && (e += this.byteLength),
  12158.                                0 > t && (t += this.byteLength),
  12159.                                (e = Math.min(Math.max(0, e), this.byteLength)),
  12160.                                (t = Math.min(Math.max(0, t), this.byteLength)),
  12161.                                0 >= t - e)
  12162.                        )
  12163.                            return new ArrayBuffer(0);
  12164.                        var i = new ArrayBuffer(t - e),
  12165.                            n = new Uint8Array(i),
  12166.                            r = new Uint8Array(this, e, t - e);
  12167.                        return n.set(r), i;
  12168.                    };
  12169.                }
  12170.                t.exports = n;
  12171.            },
  12172.            {
  12173.                "./emitter.js": 210
  12174.            },
  12175.        ],
  12176.        212: [
  12177.            function (e, t, i) {
  12178.                (function () {
  12179.                    var e;
  12180.                    (e = "undefined" != typeof i && null !== i ? i : this),
  12181.                    (e.Lethargy = (function () {
  12182.                        function e(e, t, i) {
  12183.                            (this.stability = null != e ? Math.abs(e) : 8),
  12184.                            (this.sensitivity = null != t ? 1 + Math.abs(t) : 100),
  12185.                            (this.tolerance = null != i ? 1 + Math.abs(i) : 1.1),
  12186.                            (this.lastUpDeltas = function () {
  12187.                                var e, t, i;
  12188.                                for (i = [], e = 1, t = 2 * this.stability; t >= 1 ? t >= e : e >= t; t >= 1 ? e++ : e--) i.push(null);
  12189.                                return i;
  12190.                            }.call(this)),
  12191.                            (this.lastDownDeltas = function () {
  12192.                                var e, t, i;
  12193.                                for (i = [], e = 1, t = 2 * this.stability; t >= 1 ? t >= e : e >= t; t >= 1 ? e++ : e--) i.push(null);
  12194.                                return i;
  12195.                            }.call(this)),
  12196.                            (this.deltasTimestamp = function () {
  12197.                                var e, t, i;
  12198.                                for (i = [], e = 1, t = 2 * this.stability; t >= 1 ? t >= e : e >= t; t >= 1 ? e++ : e--) i.push(null);
  12199.                                return i;
  12200.                            }.call(this));
  12201.                        }
  12202.                        return (
  12203.                            (e.prototype.check = function (e) {
  12204.                                var t;
  12205.                                return (
  12206.                                    null != e.originalEvent.wheelDelta ?
  12207.                                    (t = e.originalEvent.wheelDelta) :
  12208.                                    null != e.originalEvent.deltaY ?
  12209.                                    (t = -40 * e.originalEvent.deltaY) :
  12210.                                    (null != e.originalEvent.detail || 0 === e.originalEvent.detail) && (t = -40 * e.originalEvent.detail),
  12211.                                    this.deltasTimestamp.push(Date.now()),
  12212.                                    this.deltasTimestamp.shift(),
  12213.                                    t > 0 ? (this.lastUpDeltas.push(t), this.lastUpDeltas.shift(), this.isInertia(1)) : (this.lastDownDeltas.push(t), this.lastDownDeltas.shift(), this.isInertia(-1))
  12214.                                );
  12215.                            }),
  12216.                            (e.prototype.isInertia = function (e) {
  12217.                                var t, i, n, r, o, a, s;
  12218.                                return (
  12219.                                    (t = -1 === e ? this.lastDownDeltas : this.lastUpDeltas),
  12220.                                    null === t[0] ?
  12221.                                    e :
  12222.                                    this.deltasTimestamp[2 * this.stability - 2] + 150 > Date.now() && t[0] === t[2 * this.stability - 1] ?
  12223.                                    !1 :
  12224.                                    ((n = t.slice(0, this.stability)),
  12225.                                        (i = t.slice(this.stability, 2 * this.stability)),
  12226.                                        (s = n.reduce(function (e, t) {
  12227.                                            return e + t;
  12228.                                        })),
  12229.                                        (o = i.reduce(function (e, t) {
  12230.                                            return e + t;
  12231.                                        })),
  12232.                                        (a = s / n.length),
  12233.                                        (r = o / i.length),
  12234.                                        Math.abs(a) < Math.abs(r * this.tolerance) && this.sensitivity < Math.abs(r) ? e : !1)
  12235.                                );
  12236.                            }),
  12237.                            (e.prototype.showLastUpDeltas = function () {
  12238.                                return this.lastUpDeltas;
  12239.                            }),
  12240.                            (e.prototype.showLastDownDeltas = function () {
  12241.                                return this.lastDownDeltas;
  12242.                            }),
  12243.                            e
  12244.                        );
  12245.                    })());
  12246.                }.call(this));
  12247.            },
  12248.            {},
  12249.        ],
  12250.        213: [
  12251.            function (e, t, i) {
  12252.                !(function (e, t) {
  12253.                    "object" == typeof i && i && "string" != typeof i.nodeName ? t(i) : "function" == typeof define && define.amd ? define(["exports"], t) : ((e.Mustache = {}), t(e.Mustache));
  12254.                })(this, function (e) {
  12255.                    function t(e) {
  12256.                        return "function" == typeof e;
  12257.                    }
  12258.  
  12259.                    function i(e) {
  12260.                        return m(e) ? "array" : typeof e;
  12261.                    }
  12262.  
  12263.                    function n(e) {
  12264.                        return e.replace(/[-[]{}()*+?.,\^$|#s]/g, "\$&");
  12265.                    }
  12266.  
  12267.                    function r(e, t) {
  12268.                        return null != e && "object" == typeof e && t in e;
  12269.                    }
  12270.  
  12271.                    function o(e, t) {
  12272.                        return v.call(e, t);
  12273.                    }
  12274.  
  12275.                    function a(e) {
  12276.                        return !o(g, e);
  12277.                    }
  12278.  
  12279.                    function s(e) {
  12280.                        return String(e).replace(/[&<>"'`=/]/g, function (e) {
  12281.                             return y[e];
  12282.                         });
  12283.                     }
  12284.  
  12285.                     function l(t, i) {
  12286.                         function r() {
  12287.                             if (g && !y)
  12288.                                 for (; v.length;) delete p[v.pop()];
  12289.                             else v = [];
  12290.                             (g = !1), (y = !1);
  12291.                         }
  12292.  
  12293.                         function o(e) {
  12294.                             if (("string" == typeof e && (e = e.split(b, 2)), !m(e) || 2 !== e.length)) throw new Error("Invalid tags: " + e);
  12295.                             (s = new RegExp(n(e[0]) + "\s*")), (l = new RegExp("\s*" + n(e[1]))), (d = new RegExp("\s*" + n("}" + e[1])));
  12296.                         }
  12297.                         if (!t) return [];
  12298.                         var s,
  12299.                             l,
  12300.                             d,
  12301.                             f = [],
  12302.                             p = [],
  12303.                             v = [],
  12304.                             g = !1,
  12305.                             y = !1;
  12306.                         o(i || e.tags);
  12307.                         for (var T, S, E, A, C, P, L = new h(t); !L.eos();) {
  12308.                             if (((T = L.pos), (E = L.scanUntil(s))))
  12309.                                 for (var R = 0, O = E.length; O > R; ++R)(A = E.charAt(R)), a(A) ? v.push(p.length) : (y = !0), p.push(["text", A, T, T + 1]), (T += 1), "n" === A && r();
  12310.                             if (!L.scan(s)) break;
  12311.                             if (
  12312.                                 ((g = !0),
  12313.                                     (S = L.scan(M) || "name"),
  12314.                                     L.scan(_),
  12315.                                     "=" === S ? ((E = L.scanUntil(x)), L.scan(x), L.scanUntil(l)) : "{" === S ? ((E = L.scanUntil(d)), L.scan(w), L.scanUntil(l), (S = "&")) : (E = L.scanUntil(l)),
  12316.                                     !L.scan(l))
  12317.                             )
  12318.                                 throw new Error("Unclosed tag at " + L.pos);
  12319.                             if (((C = [S, E, T, L.pos]), p.push(C), "#" === S || "^" === S)) f.push(C);
  12320.                             else if ("/" === S) {
  12321.                                 if (((P = f.pop()), !P)) throw new Error('Unopened section "' + E + '" at ' + T);
  12322.                                 if (P[1] !== E) throw new Error('Unclosed section "' + P[1] + '" at ' + T);
  12323.                             } else "name" === S || "{" === S || "&" === S ? (y = !0) : "=" === S && o(E);
  12324.                         }
  12325.                         if ((P = f.pop())) throw new Error('Unclosed section "' + P[1] + '" at ' + L.pos);
  12326.                         return u(c(p));
  12327.                     }
  12328.  
  12329.                     function c(e) {
  12330.                         for (var t, i, n = [], r = 0, o = e.length; o > r; ++r)(t = e[r]), t && ("text" === t[0] && i && "text" === i[0] ? ((i[1] += t[1]), (i[3] = t[3])) : (n.push(t), (i = t)));
  12331.                         return n;
  12332.                     }
  12333.  
  12334.                     function u(e) {
  12335.                         for (var t, i, n = [], r = n, o = [], a = 0, s = e.length; s > a; ++a)
  12336.                             switch (((t = e[a]), t[0])) {
  12337.                             case "#":
  12338.                             case "^":
  12339.                                 r.push(t), o.push(t), (r = t[4] = []);
  12340.                                 break;
  12341.                             case "/":
  12342.                                 (i = o.pop()), (i[5] = t[2]), (r = o.length > 0 ? o[o.length - 1][4] : n);
  12343.                                 break;
  12344.                             default:
  12345.                                 r.push(t);
  12346.                             }
  12347.                         return n;
  12348.                     }
  12349.  
  12350.                     function h(e) {
  12351.                         (this.string = e), (this.tail = e), (this.pos = 0);
  12352.                     }
  12353.  
  12354.                     function d(e, t) {
  12355.                         (this.view = e), (this.cache = {
  12356.                             ".": this.view
  12357.                         }), (this.parent = t);
  12358.                     }
  12359.  
  12360.                     function f() {
  12361.                         this.cache = {};
  12362.                     }
  12363.                     var p = Object.prototype.toString,
  12364.                         m =
  12365.                         Array.isArray ||
  12366.                         function (e) {
  12367.                             return "[object Array]" === p.call(e);
  12368.                         },
  12369.                         v = RegExp.prototype.test,
  12370.                         g = /S/,
  12371.                         y = {
  12372.                             "&": "&",
  12373.                             "<": "<",
  12374.                             ">": ">",
  12375.                             '"': """,
  12376.                            "'": "'",
  12377.                            "/": "/",
  12378.                            "`": "`",
  12379.                            "=": "="
  12380.                        },
  12381.                        _ = /s*/,
  12382.                        b = /s+/,
  12383.                        x = /s*=/,
  12384.                        w = /s*}/,
  12385.                        M = /#|^|/|>|{|&|=|!/;
  12386.                    (h.prototype.eos = function () {
  12387.                        return "" === this.tail;
  12388.                    }),
  12389.                    (h.prototype.scan = function (e) {
  12390.                        var t = this.tail.match(e);
  12391.                        if (!t || 0 !== t.index) return "";
  12392.                        var i = t[0];
  12393.                        return (this.tail = this.tail.substring(i.length)), (this.pos += i.length), i;
  12394.                    }),
  12395.                    (h.prototype.scanUntil = function (e) {
  12396.                        var t,
  12397.                            i = this.tail.search(e);
  12398.                        switch (i) {
  12399.                        case -1:
  12400.                            (t = this.tail), (this.tail = "");
  12401.                            break;
  12402.                        case 0:
  12403.                            t = "";
  12404.                            break;
  12405.                        default:
  12406.                            (t = this.tail.substring(0, i)), (this.tail = this.tail.substring(i));
  12407.                        }
  12408.                        return (this.pos += t.length), t;
  12409.                    }),
  12410.                    (d.prototype.push = function (e) {
  12411.                        return new d(e, this);
  12412.                    }),
  12413.                    (d.prototype.lookup = function (e) {
  12414.                        var i,
  12415.                            n = this.cache;
  12416.                        if (n.hasOwnProperty(e)) i = n[e];
  12417.                        else {
  12418.                            for (var o, a, s = this, l = !1; s;) {
  12419.                                if (e.indexOf(".") > 0)
  12420.                                    for (i = s.view, o = e.split("."), a = 0; null != i && a < o.length;) a === o.length - 1 && (l = r(i, o[a])), (i = i[o[a++]]);
  12421.                                else(i = s.view[e]), (l = r(s.view, e));
  12422.                                if (l) break;
  12423.                                s = s.parent;
  12424.                            }
  12425.                            n[e] = i;
  12426.                        }
  12427.                        return t(i) && (i = i.call(this.view)), i;
  12428.                    }),
  12429.                    (f.prototype.clearCache = function () {
  12430.                        this.cache = {};
  12431.                    }),
  12432.                    (f.prototype.parse = function (e, t) {
  12433.                        var i = this.cache,
  12434.                            n = i[e];
  12435.                        return null == n && (n = i[e] = l(e, t)), n;
  12436.                    }),
  12437.                    (f.prototype.render = function (e, t, i) {
  12438.                        var n = this.parse(e),
  12439.                            r = t instanceof d ? t : new d(t);
  12440.                        return this.renderTokens(n, r, i, e);
  12441.                    }),
  12442.                    (f.prototype.renderTokens = function (e, t, i, n) {
  12443.                        for (var r, o, a, s = "", l = 0, c = e.length; c > l; ++l)
  12444.                            (a = void 0),
  12445.                            (r = e[l]),
  12446.                            (o = r[0]),
  12447.                            "#" === o ?
  12448.                            (a = this.renderSection(r, t, i, n)) :
  12449.                            "^" === o ?
  12450.                            (a = this.renderInverted(r, t, i, n)) :
  12451.                            ">" === o ?
  12452.                            (a = this.renderPartial(r, t, i, n)) :
  12453.                            "&" === o ?
  12454.                            (a = this.unescapedValue(r, t)) :
  12455.                            "name" === o ?
  12456.                            (a = this.escapedValue(r, t)) :
  12457.                            "text" === o && (a = this.rawValue(r)),
  12458.                            void 0 !== a && (s += a);
  12459.                        return s;
  12460.                    }),
  12461.                    (f.prototype.renderSection = function (e, i, n, r) {
  12462.                        function o(e) {
  12463.                            return a.render(e, i, n);
  12464.                        }
  12465.                        var a = this,
  12466.                            s = "",
  12467.                            l = i.lookup(e[1]);
  12468.                        if (l) {
  12469.                            if (m(l))
  12470.                                for (var c = 0, u = l.length; u > c; ++c) s += this.renderTokens(e[4], i.push(l[c]), n, r);
  12471.                            else if ("object" == typeof l || "string" == typeof l || "number" == typeof l) s += this.renderTokens(e[4], i.push(l), n, r);
  12472.                            else if (t(l)) {
  12473.                                if ("string" != typeof r) throw new Error("Cannot use higher-order sections without the original template");
  12474.                                (l = l.call(i.view, r.slice(e[3], e[5]), o)), null != l && (s += l);
  12475.                            } else s += this.renderTokens(e[4], i, n, r);
  12476.                            return s;
  12477.                        }
  12478.                    }),
  12479.                    (f.prototype.renderInverted = function (e, t, i, n) {
  12480.                        var r = t.lookup(e[1]);
  12481.                        return !r || (m(r) && 0 === r.length) ? this.renderTokens(e[4], t, i, n) : void 0;
  12482.                    }),
  12483.                    (f.prototype.renderPartial = function (e, i, n) {
  12484.                        if (n) {
  12485.                            var r = t(n) ? n(e[1]) : n[e[1]];
  12486.                            return null != r ? this.renderTokens(this.parse(r), i, n, r) : void 0;
  12487.                        }
  12488.                    }),
  12489.                    (f.prototype.unescapedValue = function (e, t) {
  12490.                        var i = t.lookup(e[1]);
  12491.                        return null != i ? i : void 0;
  12492.                    }),
  12493.                    (f.prototype.escapedValue = function (t, i) {
  12494.                        var n = i.lookup(t[1]);
  12495.                        return null != n ? e.escape(n) : void 0;
  12496.                    }),
  12497.                    (f.prototype.rawValue = function (e) {
  12498.                        return e[1];
  12499.                    }),
  12500.                    (e.name = "mustache.js"),
  12501.                    (e.version = "2.2.1"),
  12502.                    (e.tags = ["{{", "}}"]);
  12503.                    var T = new f();
  12504.                    (e.clearCache = function () {
  12505.                        return T.clearCache();
  12506.                    }),
  12507.                    (e.parse = function (e, t) {
  12508.                        return T.parse(e, t);
  12509.                    }),
  12510.                    (e.render = function (e, t, n) {
  12511.                        if ("string" != typeof e) throw new TypeError('Invalid template! Template should be a "string" but "' + i(e) + '" was given as the first argument for mustache#render(template, view, partials)');
  12512.                        return T.render(e, t, n);
  12513.                    }),
  12514.                    (e.to_html = function (i, n, r, o) {
  12515.                        var a = e.render(i, n, r);
  12516.                        return t(o) ? void o(a) : a;
  12517.                    }),
  12518.                    (e.escape = s),
  12519.                    (e.Scanner = h),
  12520.                    (e.Context = d),
  12521.                    (e.Writer = f);
  12522.                });
  12523.            },
  12524.            {},
  12525.        ],
  12526.        214: [
  12527.            function (e, t, i) {
  12528.                t.exports = function (e) {
  12529.                    function t(t, n) {
  12530.                        function r() {
  12531.                            return ((2 * Math.PI) / 60 / 60) * v.autoRotateSpeed;
  12532.                        }
  12533.  
  12534.                        function o() {
  12535.                            return Math.pow(0.95, v.zoomSpeed);
  12536.                        }
  12537.  
  12538.                        function a(e) {
  12539.                            if (v.enabled !== !1) {
  12540.                                if ((e.preventDefault(), e.button === v.mouseButtons.ORBIT)) {
  12541.                                    if (v.noRotate === !0) return;
  12542.                                    (N = I.ROTATE), y.set(e.clientX, e.clientY);
  12543.                                } else if (e.button === v.mouseButtons.ZOOM) {
  12544.                                    if (v.noZoom === !0) return;
  12545.                                    (N = I.DOLLY), E.set(e.clientX, e.clientY);
  12546.                                } else if (e.button === v.mouseButtons.PAN) {
  12547.                                    if (v.noPan === !0) return;
  12548.                                    (N = I.PAN), x.set(e.clientX, e.clientY);
  12549.                                }
  12550.                                N !== I.NONE && (document.addEventListener("mousemove", s, !1), document.addEventListener("mouseup", l, !1), v.dispatchEvent(F));
  12551.                            }
  12552.                        }
  12553.  
  12554.                        function s(e) {
  12555.                            if (v.enabled !== !1) {
  12556.                                e.preventDefault();
  12557.                                var t = v.domElement === document ? v.domElement.body : v.domElement;
  12558.                                if (N === I.ROTATE) {
  12559.                                    if (v.noRotate === !0) return;
  12560.                                    _.set(e.clientX, e.clientY), b.subVectors(_, y), v.rotateLeft(((2 * Math.PI * b.x) / t.clientWidth) * v.rotateSpeed), v.rotateUp(((2 * Math.PI * b.y) / t.clientHeight) * v.rotateSpeed), y.copy(_);
  12561.                                } else if (N === I.DOLLY) {
  12562.                                    if (v.noZoom === !0) return;
  12563.                                    A.set(e.clientX, e.clientY), C.subVectors(A, E), C.y > 0 ? v.dollyIn() : C.y < 0 && v.dollyOut(), E.copy(A);
  12564.                                } else if (N === I.PAN) {
  12565.                                    if (v.noPan === !0) return;
  12566.                                    w.set(e.clientX, e.clientY), M.subVectors(w, x), v.pan(M.x, M.y), x.copy(w);
  12567.                                }
  12568.                                N !== I.NONE && v.update();
  12569.                            }
  12570.                        }
  12571.  
  12572.                        function l() {
  12573.                            v.enabled !== !1 && (document.removeEventListener("mousemove", s, !1), document.removeEventListener("mouseup", l, !1), v.dispatchEvent(V), (N = I.NONE));
  12574.                        }
  12575.  
  12576.                        function c(e) {
  12577.                            if (v.enabled !== !1 && v.noZoom !== !0 && N === I.NONE) {
  12578.                                e.preventDefault(), e.stopPropagation();
  12579.                                var t = 0;
  12580.                                void 0 !== e.wheelDelta ? (t = e.wheelDelta) : void 0 !== e.detail && (t = -e.detail), t > 0 ? v.dollyOut() : 0 > t && v.dollyIn(), v.update(), v.dispatchEvent(F), v.dispatchEvent(V);
  12581.                            }
  12582.                        }
  12583.  
  12584.                        function u(e) {
  12585.                            if (v.enabled !== !1 && v.noKeys !== !0 && v.noPan !== !0)
  12586.                                switch (e.keyCode) {
  12587.                                case v.keys.UP:
  12588.                                    v.pan(0, v.keyPanSpeed), v.update();
  12589.                                    break;
  12590.                                case v.keys.BOTTOM:
  12591.                                    v.pan(0, -v.keyPanSpeed), v.update();
  12592.                                    break;
  12593.                                case v.keys.LEFT:
  12594.                                    v.pan(v.keyPanSpeed, 0), v.update();
  12595.                                    break;
  12596.                                case v.keys.RIGHT:
  12597.                                    v.pan(-v.keyPanSpeed, 0), v.update();
  12598.                                }
  12599.                        }
  12600.  
  12601.                        function h(e) {
  12602.                            if (v.enabled !== !1) {
  12603.                                switch (e.touches.length) {
  12604.                                case 1:
  12605.                                    if (v.noRotate === !0) return;
  12606.                                    (N = I.TOUCH_ROTATE), y.set(e.touches[0].pageX, e.touches[0].pageY);
  12607.                                    break;
  12608.                                case 2:
  12609.                                    if (v.noZoom === !0) return;
  12610.                                    N = I.TOUCH_DOLLY;
  12611.                                    var t = e.touches[0].pageX - e.touches[1].pageX,
  12612.                                        i = e.touches[0].pageY - e.touches[1].pageY,
  12613.                                        n = Math.sqrt(t * t + i * i);
  12614.                                    E.set(0, n);
  12615.                                    break;
  12616.                                case 3:
  12617.                                    if (v.noPan === !0) return;
  12618.                                    (N = I.TOUCH_PAN), x.set(e.touches[0].pageX, e.touches[0].pageY);
  12619.                                    break;
  12620.                                default:
  12621.                                    N = I.NONE;
  12622.                                }
  12623.                                N !== I.NONE && v.dispatchEvent(F);
  12624.                            }
  12625.                        }
  12626.  
  12627.                        function d(e) {
  12628.                            if (v.enabled !== !1) {
  12629.                                e.preventDefault(), e.stopPropagation();
  12630.                                var t = v.domElement === document ? v.domElement.body : v.domElement;
  12631.                                switch (e.touches.length) {
  12632.                                case 1:
  12633.                                    if (v.noRotate === !0) return;
  12634.                                    if (N !== I.TOUCH_ROTATE) return;
  12635.                                    _.set(e.touches[0].pageX, e.touches[0].pageY),
  12636.                                        b.subVectors(_, y),
  12637.                                        v.rotateLeft(((2 * Math.PI * b.x) / t.clientWidth) * v.rotateSpeed),
  12638.                                        v.rotateUp(((2 * Math.PI * b.y) / t.clientHeight) * v.rotateSpeed),
  12639.                                        y.copy(_),
  12640.                                        v.update();
  12641.                                    break;
  12642.                                case 2:
  12643.                                    if (v.noZoom === !0) return;
  12644.                                    if (N !== I.TOUCH_DOLLY) return;
  12645.                                    var i = e.touches[0].pageX - e.touches[1].pageX,
  12646.                                        n = e.touches[0].pageY - e.touches[1].pageY,
  12647.                                        r = Math.sqrt(i * i + n * n);
  12648.                                    A.set(0, r), C.subVectors(A, E), C.y > 0 ? v.dollyOut() : C.y < 0 && v.dollyIn(), E.copy(A), v.update();
  12649.                                    break;
  12650.                                case 3:
  12651.                                    if (v.noPan === !0) return;
  12652.                                    if (N !== I.TOUCH_PAN) return;
  12653.                                    w.set(e.touches[0].pageX, e.touches[0].pageY), M.subVectors(w, x), v.pan(M.x, M.y), x.copy(w), v.update();
  12654.                                    break;
  12655.                                default:
  12656.                                    N = I.NONE;
  12657.                                }
  12658.                            }
  12659.                        }
  12660.  
  12661.                        function f() {
  12662.                            v.enabled !== !1 && (v.dispatchEvent(V), (N = I.NONE));
  12663.                        }
  12664.                        (this.object = t),
  12665.                        (this.domElement = void 0 !== n ? n : document),
  12666.                        (this.enabled = !0),
  12667.                        (this.target = new e.Vector3()),
  12668.                        (this.center = this.target),
  12669.                        (this.noZoom = !1),
  12670.                        (this.zoomSpeed = 1),
  12671.                        (this.minDistance = 0),
  12672.                        (this.maxDistance = 1 / 0),
  12673.                        (this.minZoom = 0),
  12674.                        (this.maxZoom = 1 / 0),
  12675.                        (this.noRotate = !1),
  12676.                        (this.rotateSpeed = 1),
  12677.                        (this.noPan = !1),
  12678.                        (this.keyPanSpeed = 7),
  12679.                        (this.autoRotate = !1),
  12680.                        (this.autoRotateSpeed = 2),
  12681.                        (this.minPolarAngle = 0),
  12682.                        (this.maxPolarAngle = Math.PI),
  12683.                        (this.minAzimuthAngle = -(1 / 0)),
  12684.                        (this.maxAzimuthAngle = 1 / 0),
  12685.                        (this.noKeys = !1),
  12686.                        (this.keys = {
  12687.                            LEFT: 37,
  12688.                            UP: 38,
  12689.                            RIGHT: 39,
  12690.                            BOTTOM: 40
  12691.                        }),
  12692.                        (this.mouseButtons = {
  12693.                            ORBIT: i.LEFT,
  12694.                            ZOOM: i.MIDDLE,
  12695.                            PAN: i.RIGHT
  12696.                        });
  12697.                        var p,
  12698.                            m,
  12699.                            v = this,
  12700.                            g = 1e-6,
  12701.                            y = new e.Vector2(),
  12702.                            _ = new e.Vector2(),
  12703.                            b = new e.Vector2(),
  12704.                            x = new e.Vector2(),
  12705.                            w = new e.Vector2(),
  12706.                            M = new e.Vector2(),
  12707.                            T = new e.Vector3(),
  12708.                            S = new e.Vector3(),
  12709.                            E = new e.Vector2(),
  12710.                            A = new e.Vector2(),
  12711.                            C = new e.Vector2(),
  12712.                            P = 0,
  12713.                            L = 0,
  12714.                            R = 1,
  12715.                            O = new e.Vector3(),
  12716.                            k = new e.Vector3(),
  12717.                            D = new e.Quaternion(),
  12718.                            I = {
  12719.                                NONE: -1,
  12720.                                ROTATE: 0,
  12721.                                DOLLY: 1,
  12722.                                PAN: 2,
  12723.                                TOUCH_ROTATE: 3,
  12724.                                TOUCH_DOLLY: 4,
  12725.                                TOUCH_PAN: 5
  12726.                            },
  12727.                            N = I.NONE;
  12728.                        (this.target0 = this.target.clone()), (this.position0 = this.object.position.clone()), (this.zoom0 = this.object.zoom);
  12729.                        var U = new e.Quaternion().setFromUnitVectors(t.up, new e.Vector3(0, 1, 0)),
  12730.                            j = U.clone().inverse(),
  12731.                            B = {
  12732.                                type: "change"
  12733.                            },
  12734.                            F = {
  12735.                                type: "start"
  12736.                            },
  12737.                            V = {
  12738.                                type: "end"
  12739.                            };
  12740.                        (this.rotateLeft = function (e) {
  12741.                            void 0 === e && (e = r()), (L -= e);
  12742.                        }),
  12743.                        (this.rotateUp = function (e) {
  12744.                            void 0 === e && (e = r()), (P -= e);
  12745.                        }),
  12746.                        (this.panLeft = function (e) {
  12747.                            var t = this.object.matrix.elements;
  12748.                            T.set(t[0], t[1], t[2]), T.multiplyScalar(-e), O.add(T);
  12749.                        }),
  12750.                        (this.panUp = function (e) {
  12751.                            var t = this.object.matrix.elements;
  12752.                            T.set(t[4], t[5], t[6]), T.multiplyScalar(e), O.add(T);
  12753.                        }),
  12754.                        (this.pan = function (t, i) {
  12755.                            var n = v.domElement === document ? v.domElement.body : v.domElement;
  12756.                            if (v.object instanceof e.PerspectiveCamera) {
  12757.                                var r = v.object.position,
  12758.                                    o = r.clone().sub(v.target),
  12759.                                    a = o.length();
  12760.                                (a *= Math.tan(((v.object.fov / 2) * Math.PI) / 180)), v.panLeft((2 * t * a) / n.clientHeight), v.panUp((2 * i * a) / n.clientHeight);
  12761.                            } else
  12762.                                v.object instanceof e.OrthographicCamera ?
  12763.                                (v.panLeft((t * (v.object.right - v.object.left)) / n.clientWidth), v.panUp((i * (v.object.top - v.object.bottom)) / n.clientHeight)) :
  12764.                                console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled.");
  12765.                        }),
  12766.                        (this.dollyIn = function (t) {
  12767.                            void 0 === t && (t = o()),
  12768.                                v.object instanceof e.PerspectiveCamera ?
  12769.                                (R /= t) :
  12770.                                v.object instanceof e.OrthographicCamera ?
  12771.                                ((v.object.zoom = Math.max(this.minZoom, Math.min(this.maxZoom, this.object.zoom * t))), v.object.updateProjectionMatrix(), v.dispatchEvent(B)) :
  12772.                                console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.");
  12773.                        }),
  12774.                        (this.dollyOut = function (t) {
  12775.                            void 0 === t && (t = o()),
  12776.                                v.object instanceof e.PerspectiveCamera ?
  12777.                                (R *= t) :
  12778.                                v.object instanceof e.OrthographicCamera ?
  12779.                                ((v.object.zoom = Math.max(this.minZoom, Math.min(this.maxZoom, this.object.zoom / t))), v.object.updateProjectionMatrix(), v.dispatchEvent(B)) :
  12780.                                console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.");
  12781.                        }),
  12782.                        (this.update = function () {
  12783.                            var e = this.object.position;
  12784.                            S.copy(e).sub(this.target),
  12785.                                S.applyQuaternion(U),
  12786.                                (p = Math.atan2(S.x, S.z)),
  12787.                                (m = Math.atan2(Math.sqrt(S.x * S.x + S.z * S.z), S.y)),
  12788.                                this.autoRotate && N === I.NONE && this.rotateLeft(r()),
  12789.                                (p += L),
  12790.                                (m += P),
  12791.                                (p = Math.max(this.minAzimuthAngle, Math.min(this.maxAzimuthAngle, p))),
  12792.                                (m = Math.max(this.minPolarAngle, Math.min(this.maxPolarAngle, m))),
  12793.                                (m = Math.max(g, Math.min(Math.PI - g, m)));
  12794.                            var t = S.length() * R;
  12795.                            (t = Math.max(this.minDistance, Math.min(this.maxDistance, t))),
  12796.                            this.target.add(O),
  12797.                                (S.x = t * Math.sin(m) * Math.sin(p)),
  12798.                                (S.y = t * Math.cos(m)),
  12799.                                (S.z = t * Math.sin(m) * Math.cos(p)),
  12800.                                S.applyQuaternion(j),
  12801.                                e.copy(this.target).add(S),
  12802.                                this.object.lookAt(this.target),
  12803.                                (L = 0),
  12804.                                (P = 0),
  12805.                                (R = 1),
  12806.                                O.set(0, 0, 0),
  12807.                                (k.distanceToSquared(this.object.position) > g || 8 * (1 - D.dot(this.object.quaternion)) > g) && (this.dispatchEvent(B), k.copy(this.object.position), D.copy(this.object.quaternion));
  12808.                        }),
  12809.                        (this.reset = function () {
  12810.                            (N = I.NONE), this.target.copy(this.target0), this.object.position.copy(this.position0), (this.object.zoom = this.zoom0), this.object.updateProjectionMatrix(), this.dispatchEvent(B), this.update();
  12811.                        }),
  12812.                        (this.getPolarAngle = function () {
  12813.                            return m;
  12814.                        }),
  12815.                        (this.getAzimuthalAngle = function () {
  12816.                            return p;
  12817.                        }),
  12818.                        this.domElement.addEventListener(
  12819.                                "contextmenu",
  12820.                                function (e) {
  12821.                                    e.preventDefault();
  12822.                                },
  12823.                                !1
  12824.                            ),
  12825.                            this.domElement.addEventListener("mousedown", a, !1),
  12826.                            this.domElement.addEventListener("mousewheel", c, !1),
  12827.                            this.domElement.addEventListener("DOMMouseScroll", c, !1),
  12828.                            this.domElement.addEventListener("touchstart", h, !1),
  12829.                            this.domElement.addEventListener("touchend", f, !1),
  12830.                            this.domElement.addEventListener("touchmove", d, !1),
  12831.                            window.addEventListener("keydown", u, !1),
  12832.                            this.update();
  12833.                    }
  12834.                    var i = e.MOUSE;
  12835.                    return i || (i = {
  12836.                        LEFT: 0,
  12837.                        MIDDLE: 1,
  12838.                        RIGHT: 2
  12839.                    }), (t.prototype = Object.create(e.EventDispatcher.prototype)), (t.prototype.constructor = t), t;
  12840.                };
  12841.            },
  12842.            {},
  12843.        ],
  12844.        215: [
  12845.            function (e, t, i) {
  12846.                var n = {
  12847.                    REVISION: "79"
  12848.                };
  12849.                "function" == typeof define && define.amd ? define("three", n) : "undefined" != typeof i && "undefined" != typeof t && (t.exports = n),
  12850.                    void 0 === Number.EPSILON && (Number.EPSILON = Math.pow(2, -52)),
  12851.                    void 0 === Math.sign &&
  12852.                    (Math.sign = function (e) {
  12853.                        return 0 > e ? -1 : e > 0 ? 1 : +e;
  12854.                    }),
  12855.                    void 0 === Function.prototype.name &&
  12856.                    Object.defineProperty(Function.prototype, "name", {
  12857.                        get: function () {
  12858.                            return this.toString().match(/^s*functions*(S*)s*(/)[1];
  12859.                        },
  12860.                    }),
  12861.                    void 0 === Object.assign &&
  12862.                    !(function () {
  12863.                        Object.assign = function (e) {
  12864.                            "use strict";
  12865.                            if (void 0 === e || null === e) throw new TypeError("Cannot convert undefined or null to object");
  12866.                            for (var t = Object(e), i = 1; i < arguments.length; i++) {
  12867.                                var n = arguments[i];
  12868.                                if (void 0 !== n && null !== n)
  12869.                                    for (var r in n) Object.prototype.hasOwnProperty.call(n, r) && (t[r] = n[r]);
  12870.                            }
  12871.                            return t;
  12872.                        };
  12873.                    })(),
  12874.                    Object.assign(n, {
  12875.                        MOUSE: {
  12876.                            LEFT: 0,
  12877.                            MIDDLE: 1,
  12878.                            RIGHT: 2
  12879.                        },
  12880.                        CullFaceNone: 0,
  12881.                        CullFaceBack: 1,
  12882.                        CullFaceFront: 2,
  12883.                        CullFaceFrontBack: 3,
  12884.                        FrontFaceDirectionCW: 0,
  12885.                        FrontFaceDirectionCCW: 1,
  12886.                        BasicShadowMap: 0,
  12887.                        PCFShadowMap: 1,
  12888.                        PCFSoftShadowMap: 2,
  12889.                        FrontSide: 0,
  12890.                        BackSide: 1,
  12891.                        DoubleSide: 2,
  12892.                        FlatShading: 1,
  12893.                        SmoothShading: 2,
  12894.                        NoColors: 0,
  12895.                        FaceColors: 1,
  12896.                        VertexColors: 2,
  12897.                        NoBlending: 0,
  12898.                        NormalBlending: 1,
  12899.                        AdditiveBlending: 2,
  12900.                        SubtractiveBlending: 3,
  12901.                        MultiplyBlending: 4,
  12902.                        CustomBlending: 5,
  12903.                        AddEquation: 100,
  12904.                        SubtractEquation: 101,
  12905.                        ReverseSubtractEquation: 102,
  12906.                        MinEquation: 103,
  12907.                        MaxEquation: 104,
  12908.                        ZeroFactor: 200,
  12909.                        OneFactor: 201,
  12910.                        SrcColorFactor: 202,
  12911.                        OneMinusSrcColorFactor: 203,
  12912.                        SrcAlphaFactor: 204,
  12913.                        OneMinusSrcAlphaFactor: 205,
  12914.                        DstAlphaFactor: 206,
  12915.                        OneMinusDstAlphaFactor: 207,
  12916.                        DstColorFactor: 208,
  12917.                        OneMinusDstColorFactor: 209,
  12918.                        SrcAlphaSaturateFactor: 210,
  12919.                        NeverDepth: 0,
  12920.                        AlwaysDepth: 1,
  12921.                        LessDepth: 2,
  12922.                        LessEqualDepth: 3,
  12923.                        EqualDepth: 4,
  12924.                        GreaterEqualDepth: 5,
  12925.                        GreaterDepth: 6,
  12926.                        NotEqualDepth: 7,
  12927.                        MultiplyOperation: 0,
  12928.                        MixOperation: 1,
  12929.                        AddOperation: 2,
  12930.                        NoToneMapping: 0,
  12931.                        LinearToneMapping: 1,
  12932.                        ReinhardToneMapping: 2,
  12933.                        Uncharted2ToneMapping: 3,
  12934.                        CineonToneMapping: 4,
  12935.                        UVMapping: 300,
  12936.                        CubeReflectionMapping: 301,
  12937.                        CubeRefractionMapping: 302,
  12938.                        EquirectangularReflectionMapping: 303,
  12939.                        EquirectangularRefractionMapping: 304,
  12940.                        SphericalReflectionMapping: 305,
  12941.                        CubeUVReflectionMapping: 306,
  12942.                        CubeUVRefractionMapping: 307,
  12943.                        RepeatWrapping: 1e3,
  12944.                        ClampToEdgeWrapping: 1001,
  12945.                        MirroredRepeatWrapping: 1002,
  12946.                        NearestFilter: 1003,
  12947.                        NearestMipMapNearestFilter: 1004,
  12948.                        NearestMipMapLinearFilter: 1005,
  12949.                        LinearFilter: 1006,
  12950.                        LinearMipMapNearestFilter: 1007,
  12951.                        LinearMipMapLinearFilter: 1008,
  12952.                        UnsignedByteType: 1009,
  12953.                        ByteType: 1010,
  12954.                        ShortType: 1011,
  12955.                        UnsignedShortType: 1012,
  12956.                        IntType: 1013,
  12957.                        UnsignedIntType: 1014,
  12958.                        FloatType: 1015,
  12959.                        HalfFloatType: 1025,
  12960.                        UnsignedShort4444Type: 1016,
  12961.                        UnsignedShort5551Type: 1017,
  12962.                        UnsignedShort565Type: 1018,
  12963.                        AlphaFormat: 1019,
  12964.                        RGBFormat: 1020,
  12965.                        RGBAFormat: 1021,
  12966.                        LuminanceFormat: 1022,
  12967.                        LuminanceAlphaFormat: 1023,
  12968.                        RGBEFormat: n.RGBAFormat,
  12969.                        DepthFormat: 1026,
  12970.                        RGB_S3TC_DXT1_Format: 2001,
  12971.                        RGBA_S3TC_DXT1_Format: 2002,
  12972.                        RGBA_S3TC_DXT3_Format: 2003,
  12973.                        RGBA_S3TC_DXT5_Format: 2004,
  12974.                        RGB_PVRTC_4BPPV1_Format: 2100,
  12975.                        RGB_PVRTC_2BPPV1_Format: 2101,
  12976.                        RGBA_PVRTC_4BPPV1_Format: 2102,
  12977.                        RGBA_PVRTC_2BPPV1_Format: 2103,
  12978.                        RGB_ETC1_Format: 2151,
  12979.                        LoopOnce: 2200,
  12980.                        LoopRepeat: 2201,
  12981.                        LoopPingPong: 2202,
  12982.                        InterpolateDiscrete: 2300,
  12983.                        InterpolateLinear: 2301,
  12984.                        InterpolateSmooth: 2302,
  12985.                        ZeroCurvatureEnding: 2400,
  12986.                        ZeroSlopeEnding: 2401,
  12987.                        WrapAroundEnding: 2402,
  12988.                        TrianglesDrawMode: 0,
  12989.                        TriangleStripDrawMode: 1,
  12990.                        TriangleFanDrawMode: 2,
  12991.                        LinearEncoding: 3e3,
  12992.                        sRGBEncoding: 3001,
  12993.                        GammaEncoding: 3007,
  12994.                        RGBEEncoding: 3002,
  12995.                        LogLuvEncoding: 3003,
  12996.                        RGBM7Encoding: 3004,
  12997.                        RGBM16Encoding: 3005,
  12998.                        RGBDEncoding: 3006,
  12999.                        BasicDepthPacking: 3200,
  13000.                        RGBADepthPacking: 3201,
  13001.                    }),
  13002.                    (n.Color = function (e, t, i) {
  13003.                        return void 0 === t && void 0 === i ? this.set(e) : this.setRGB(e, t, i);
  13004.                    }),
  13005.                    (n.Color.prototype = {
  13006.                        constructor: n.Color,
  13007.                        r: 1,
  13008.                        g: 1,
  13009.                        b: 1,
  13010.                        set: function (e) {
  13011.                            return e instanceof n.Color ? this.copy(e) : "number" == typeof e ? this.setHex(e) : "string" == typeof e && this.setStyle(e), this;
  13012.                        },
  13013.                        setScalar: function (e) {
  13014.                            (this.r = e), (this.g = e), (this.b = e);
  13015.                        },
  13016.                        setHex: function (e) {
  13017.                            return (e = Math.floor(e)), (this.r = ((e >> 16) & 255) / 255), (this.g = ((e >> 8) & 255) / 255), (this.b = (255 & e) / 255), this;
  13018.                        },
  13019.                        setRGB: function (e, t, i) {
  13020.                            return (this.r = e), (this.g = t), (this.b = i), this;
  13021.                        },
  13022.                        setHSL: (function () {
  13023.                            function e(e, t, i) {
  13024.                                return 0 > i && (i += 1), i > 1 && (i -= 1), 1 / 6 > i ? e + 6 * (t - e) * i : 0.5 > i ? t : 2 / 3 > i ? e + 6 * (t - e) * (2 / 3 - i) : e;
  13025.                            }
  13026.                            return function (t, i, r) {
  13027.                                if (((t = n.Math.euclideanModulo(t, 1)), (i = n.Math.clamp(i, 0, 1)), (r = n.Math.clamp(r, 0, 1)), 0 === i)) this.r = this.g = this.b = r;
  13028.                                else {
  13029.                                    var o = 0.5 >= r ? r * (1 + i) : r + i - r * i,
  13030.                                        a = 2 * r - o;
  13031.                                    (this.r = e(a, o, t + 1 / 3)), (this.g = e(a, o, t)), (this.b = e(a, o, t - 1 / 3));
  13032.                                }
  13033.                                return this;
  13034.                            };
  13035.                        })(),
  13036.                        setStyle: function (e) {
  13037.                            function t(t) {
  13038.                                void 0 !== t && parseFloat(t) < 1 && console.warn("THREE.Color: Alpha component of " + e + " will be ignored.");
  13039.                            }
  13040.                            var i;
  13041.                            if ((i = /^((?:rgb|hsl)a?)(s*([^)]*))/.exec(e))) {
  13042.                                var r,
  13043.                                    o = i[1],
  13044.                                    a = i[2];
  13045.                                switch (o) {
  13046.                                case "rgb":
  13047.                                case "rgba":
  13048.                                    if ((r = /^(d+)s*,s*(d+)s*,s*(d+)s*(,s*([0-9]*.?[0-9]+)s*)?$/.exec(a)))
  13049.                                        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;
  13050.                                    if ((r = /^(d+)%s*,s*(d+)%s*,s*(d+)%s*(,s*([0-9]*.?[0-9]+)s*)?$/.exec(a)))
  13051.                                        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;
  13052.                                    break;
  13053.                                case "hsl":
  13054.                                case "hsla":
  13055.                                    if ((r = /^([0-9]*.?[0-9]+)s*,s*(d+)%s*,s*(d+)%s*(,s*([0-9]*.?[0-9]+)s*)?$/.exec(a))) {
  13056.                                        var s = parseFloat(r[1]) / 360,
  13057.                                            l = parseInt(r[2], 10) / 100,
  13058.                                            c = parseInt(r[3], 10) / 100;
  13059.                                        return t(r[5]), this.setHSL(s, l, c);
  13060.                                    }
  13061.                                }
  13062.                            } else if ((i = /^#([A-Fa-f0-9]+)$/.exec(e))) {
  13063.                                var u = i[1],
  13064.                                    h = u.length;
  13065.                                if (3 === h) return (this.r = parseInt(u.charAt(0) + u.charAt(0), 16) / 255), (this.g = parseInt(u.charAt(1) + u.charAt(1), 16) / 255), (this.b = parseInt(u.charAt(2) + u.charAt(2), 16) / 255), this;
  13066.                                if (6 === h) return (this.r = parseInt(u.charAt(0) + u.charAt(1), 16) / 255), (this.g = parseInt(u.charAt(2) + u.charAt(3), 16) / 255), (this.b = parseInt(u.charAt(4) + u.charAt(5), 16) / 255), this;
  13067.                            }
  13068.                            if (e && e.length > 0) {
  13069.                                var u = n.ColorKeywords[e];
  13070.                                void 0 !== u ? this.setHex(u) : console.warn("THREE.Color: Unknown color " + e);
  13071.                            }
  13072.                            return this;
  13073.                        },
  13074.                        clone: function () {
  13075.                            return new this.constructor(this.r, this.g, this.b);
  13076.                        },
  13077.                        copy: function (e) {
  13078.                            return (this.r = e.r), (this.g = e.g), (this.b = e.b), this;
  13079.                        },
  13080.                        copyGammaToLinear: function (e, t) {
  13081.                            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;
  13082.                        },
  13083.                        copyLinearToGamma: function (e, t) {
  13084.                            void 0 === t && (t = 2);
  13085.                            var i = t > 0 ? 1 / t : 1;
  13086.                            return (this.r = Math.pow(e.r, i)), (this.g = Math.pow(e.g, i)), (this.b = Math.pow(e.b, i)), this;
  13087.                        },
  13088.                        convertGammaToLinear: function () {
  13089.                            var e = this.r,
  13090.                                t = this.g,
  13091.                                i = this.b;
  13092.                            return (this.r = e * e), (this.g = t * t), (this.b = i * i), this;
  13093.                        },
  13094.                        convertLinearToGamma: function () {
  13095.                            return (this.r = Math.sqrt(this.r)), (this.g = Math.sqrt(this.g)), (this.b = Math.sqrt(this.b)), this;
  13096.                        },
  13097.                        getHex: function () {
  13098.                            return ((255 * this.r) << 16) ^ ((255 * this.g) << 8) ^ ((255 * this.b) << 0);
  13099.                        },
  13100.                        getHexString: function () {
  13101.                            return ("000000" + this.getHex().toString(16)).slice(-6);
  13102.                        },
  13103.                        getHSL: function (e) {
  13104.                            var t,
  13105.                                i,
  13106.                                n = e || {
  13107.                                    h: 0,
  13108.                                    s: 0,
  13109.                                    l: 0
  13110.                                },
  13111.                                r = this.r,
  13112.                                o = this.g,
  13113.                                a = this.b,
  13114.                                s = Math.max(r, o, a),
  13115.                                l = Math.min(r, o, a),
  13116.                                c = (l + s) / 2;
  13117.                            if (l === s)(t = 0), (i = 0);
  13118.                            else {
  13119.                                var u = s - l;
  13120.                                switch (((i = 0.5 >= c ? u / (s + l) : u / (2 - s - l)), s)) {
  13121.                                case r:
  13122.                                    t = (o - a) / u + (a > o ? 6 : 0);
  13123.                                    break;
  13124.                                case o:
  13125.                                    t = (a - r) / u + 2;
  13126.                                    break;
  13127.                                case a:
  13128.                                    t = (r - o) / u + 4;
  13129.                                }
  13130.                                t /= 6;
  13131.                            }
  13132.                            return (n.h = t), (n.s = i), (n.l = c), n;
  13133.                        },
  13134.                        getStyle: function () {
  13135.                            return "rgb(" + ((255 * this.r) | 0) + "," + ((255 * this.g) | 0) + "," + ((255 * this.b) | 0) + ")";
  13136.                        },
  13137.                        offsetHSL: function (e, t, i) {
  13138.                            var n = this.getHSL();
  13139.                            return (n.h += e), (n.s += t), (n.l += i), this.setHSL(n.h, n.s, n.l), this;
  13140.                        },
  13141.                        add: function (e) {
  13142.                            return (this.r += e.r), (this.g += e.g), (this.b += e.b), this;
  13143.                        },
  13144.                        addColors: function (e, t) {
  13145.                            return (this.r = e.r + t.r), (this.g = e.g + t.g), (this.b = e.b + t.b), this;
  13146.                        },
  13147.                        addScalar: function (e) {
  13148.                            return (this.r += e), (this.g += e), (this.b += e), this;
  13149.                        },
  13150.                        sub: function (e) {
  13151.                            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;
  13152.                        },
  13153.                        multiply: function (e) {
  13154.                            return (this.r *= e.r), (this.g *= e.g), (this.b *= e.b), this;
  13155.                        },
  13156.                        multiplyScalar: function (e) {
  13157.                            return (this.r *= e), (this.g *= e), (this.b *= e), this;
  13158.                        },
  13159.                        lerp: function (e, t) {
  13160.                            return (this.r += (e.r - this.r) * t), (this.g += (e.g - this.g) * t), (this.b += (e.b - this.b) * t), this;
  13161.                        },
  13162.                        equals: function (e) {
  13163.                            return e.r === this.r && e.g === this.g && e.b === this.b;
  13164.                        },
  13165.                        fromArray: function (e, t) {
  13166.                            return void 0 === t && (t = 0), (this.r = e[t]), (this.g = e[t + 1]), (this.b = e[t + 2]), this;
  13167.                        },
  13168.                        toArray: function (e, t) {
  13169.                            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;
  13170.                        },
  13171.                    }),
  13172.                    (n.ColorKeywords = {
  13173.                        aliceblue: 15792383,
  13174.                        antiquewhite: 16444375,
  13175.                        aqua: 65535,
  13176.                        aquamarine: 8388564,
  13177.                        azure: 15794175,
  13178.                        beige: 16119260,
  13179.                        bisque: 16770244,
  13180.                        black: 0,
  13181.                        blanchedalmond: 16772045,
  13182.                        blue: 255,
  13183.                        blueviolet: 9055202,
  13184.                        brown: 10824234,
  13185.                        burlywood: 14596231,
  13186.                        cadetblue: 6266528,
  13187.                        chartreuse: 8388352,
  13188.                        chocolate: 13789470,
  13189.                        coral: 16744272,
  13190.                        cornflowerblue: 6591981,
  13191.                        cornsilk: 16775388,
  13192.                        crimson: 14423100,
  13193.                        cyan: 65535,
  13194.                        darkblue: 139,
  13195.                        darkcyan: 35723,
  13196.                        darkgoldenrod: 12092939,
  13197.                        darkgray: 11119017,
  13198.                        darkgreen: 25600,
  13199.                        darkgrey: 11119017,
  13200.                        darkkhaki: 12433259,
  13201.                        darkmagenta: 9109643,
  13202.                        darkolivegreen: 5597999,
  13203.                        darkorange: 16747520,
  13204.                        darkorchid: 10040012,
  13205.                        darkred: 9109504,
  13206.                        darksalmon: 15308410,
  13207.                        darkseagreen: 9419919,
  13208.                        darkslateblue: 4734347,
  13209.                        darkslategray: 3100495,
  13210.                        darkslategrey: 3100495,
  13211.                        darkturquoise: 52945,
  13212.                        darkviolet: 9699539,
  13213.                        deeppink: 16716947,
  13214.                        deepskyblue: 49151,
  13215.                        dimgray: 6908265,
  13216.                        dimgrey: 6908265,
  13217.                        dodgerblue: 2003199,
  13218.                        firebrick: 11674146,
  13219.                        floralwhite: 16775920,
  13220.                        forestgreen: 2263842,
  13221.                        fuchsia: 16711935,
  13222.                        gainsboro: 14474460,
  13223.                        ghostwhite: 16316671,
  13224.                        gold: 16766720,
  13225.                        goldenrod: 14329120,
  13226.                        gray: 8421504,
  13227.                        green: 32768,
  13228.                        greenyellow: 11403055,
  13229.                        grey: 8421504,
  13230.                        honeydew: 15794160,
  13231.                        hotpink: 16738740,
  13232.                        indianred: 13458524,
  13233.                        indigo: 4915330,
  13234.                        ivory: 16777200,
  13235.                        khaki: 15787660,
  13236.                        lavender: 15132410,
  13237.                        lavenderblush: 16773365,
  13238.                        lawngreen: 8190976,
  13239.                        lemonchiffon: 16775885,
  13240.                        lightblue: 11393254,
  13241.                        lightcoral: 15761536,
  13242.                        lightcyan: 14745599,
  13243.                        lightgoldenrodyellow: 16448210,
  13244.                        lightgray: 13882323,
  13245.                        lightgreen: 9498256,
  13246.                        lightgrey: 13882323,
  13247.                        lightpink: 16758465,
  13248.                        lightsalmon: 16752762,
  13249.                        lightseagreen: 2142890,
  13250.                        lightskyblue: 8900346,
  13251.                        lightslategray: 7833753,
  13252.                        lightslategrey: 7833753,
  13253.                        lightsteelblue: 11584734,
  13254.                        lightyellow: 16777184,
  13255.                        lime: 65280,
  13256.                        limegreen: 3329330,
  13257.                        linen: 16445670,
  13258.                        magenta: 16711935,
  13259.                        maroon: 8388608,
  13260.                        mediumaquamarine: 6737322,
  13261.                        mediumblue: 205,
  13262.                        mediumorchid: 12211667,
  13263.                        mediumpurple: 9662683,
  13264.                        mediumseagreen: 3978097,
  13265.                        mediumslateblue: 8087790,
  13266.                        mediumspringgreen: 64154,
  13267.                        mediumturquoise: 4772300,
  13268.                        mediumvioletred: 13047173,
  13269.                        midnightblue: 1644912,
  13270.                        mintcream: 16121850,
  13271.                        mistyrose: 16770273,
  13272.                        moccasin: 16770229,
  13273.                        navajowhite: 16768685,
  13274.                        navy: 128,
  13275.                        oldlace: 16643558,
  13276.                        olive: 8421376,
  13277.                        olivedrab: 7048739,
  13278.                        orange: 16753920,
  13279.                        orangered: 16729344,
  13280.                        orchid: 14315734,
  13281.                        palegoldenrod: 15657130,
  13282.                        palegreen: 10025880,
  13283.                        paleturquoise: 11529966,
  13284.                        palevioletred: 14381203,
  13285.                        papayawhip: 16773077,
  13286.                        peachpuff: 16767673,
  13287.                        peru: 13468991,
  13288.                        pink: 16761035,
  13289.                        plum: 14524637,
  13290.                        powderblue: 11591910,
  13291.                        purple: 8388736,
  13292.                        red: 16711680,
  13293.                        rosybrown: 12357519,
  13294.                        royalblue: 4286945,
  13295.                        saddlebrown: 9127187,
  13296.                        salmon: 16416882,
  13297.                        sandybrown: 16032864,
  13298.                        seagreen: 3050327,
  13299.                        seashell: 16774638,
  13300.                        sienna: 10506797,
  13301.                        silver: 12632256,
  13302.                        skyblue: 8900331,
  13303.                        slateblue: 6970061,
  13304.                        slategray: 7372944,
  13305.                        slategrey: 7372944,
  13306.                        snow: 16775930,
  13307.                        springgreen: 65407,
  13308.                        steelblue: 4620980,
  13309.                        tan: 13808780,
  13310.                        teal: 32896,
  13311.                        thistle: 14204888,
  13312.                        tomato: 16737095,
  13313.                        turquoise: 4251856,
  13314.                        violet: 15631086,
  13315.                        wheat: 16113331,
  13316.                        white: 16777215,
  13317.                        whitesmoke: 16119285,
  13318.                        yellow: 16776960,
  13319.                        yellowgreen: 10145074,
  13320.                    }),
  13321.                    (n.Quaternion = function (e, t, i, n) {
  13322.                        (this._x = e || 0), (this._y = t || 0), (this._z = i || 0), (this._w = void 0 !== n ? n : 1);
  13323.                    }),
  13324.                    (n.Quaternion.prototype = {
  13325.                        constructor: n.Quaternion,
  13326.                        get x() {
  13327.                            return this._x;
  13328.                        },
  13329.                        set x(e) {
  13330.                            (this._x = e), this.onChangeCallback();
  13331.                        },
  13332.                        get y() {
  13333.                            return this._y;
  13334.                        },
  13335.                        set y(e) {
  13336.                            (this._y = e), this.onChangeCallback();
  13337.                        },
  13338.                        get z() {
  13339.                            return this._z;
  13340.                        },
  13341.                        set z(e) {
  13342.                            (this._z = e), this.onChangeCallback();
  13343.                        },
  13344.                        get w() {
  13345.                            return this._w;
  13346.                        },
  13347.                        set w(e) {
  13348.                            (this._w = e), this.onChangeCallback();
  13349.                        },
  13350.                        set: function (e, t, i, n) {
  13351.                            return (this._x = e), (this._y = t), (this._z = i), (this._w = n), this.onChangeCallback(), this;
  13352.                        },
  13353.                        clone: function () {
  13354.                            return new this.constructor(this._x, this._y, this._z, this._w);
  13355.                        },
  13356.                        copy: function (e) {
  13357.                            return (this._x = e.x), (this._y = e.y), (this._z = e.z), (this._w = e.w), this.onChangeCallback(), this;
  13358.                        },
  13359.                        setFromEuler: function (e, t) {
  13360.                            if (e instanceof n.Euler == !1) throw new Error("THREE.Quaternion: .setFromEuler() now expects a Euler rotation rather than a Vector3 and order.");
  13361.                            var i = Math.cos(e._x / 2),
  13362.                                r = Math.cos(e._y / 2),
  13363.                                o = Math.cos(e._z / 2),
  13364.                                a = Math.sin(e._x / 2),
  13365.                                s = Math.sin(e._y / 2),
  13366.                                l = Math.sin(e._z / 2),
  13367.                                c = e.order;
  13368.                            return (
  13369.                                "XYZ" === c ?
  13370.                                ((this._x = a * r * o + i * s * l), (this._y = i * s * o - a * r * l), (this._z = i * r * l + a * s * o), (this._w = i * r * o - a * s * l)) :
  13371.                                "YXZ" === c ?
  13372.                                ((this._x = a * r * o + i * s * l), (this._y = i * s * o - a * r * l), (this._z = i * r * l - a * s * o), (this._w = i * r * o + a * s * l)) :
  13373.                                "ZXY" === c ?
  13374.                                ((this._x = a * r * o - i * s * l), (this._y = i * s * o + a * r * l), (this._z = i * r * l + a * s * o), (this._w = i * r * o - a * s * l)) :
  13375.                                "ZYX" === c ?
  13376.                                ((this._x = a * r * o - i * s * l), (this._y = i * s * o + a * r * l), (this._z = i * r * l - a * s * o), (this._w = i * r * o + a * s * l)) :
  13377.                                "YZX" === c ?
  13378.                                ((this._x = a * r * o + i * s * l), (this._y = i * s * o + a * r * l), (this._z = i * r * l - a * s * o), (this._w = i * r * o - a * s * l)) :
  13379.                                "XZY" === c && ((this._x = a * r * o - i * s * l), (this._y = i * s * o - a * r * l), (this._z = i * r * l + a * s * o), (this._w = i * r * o + a * s * l)),
  13380.                                t !== !1 && this.onChangeCallback(),
  13381.                                this
  13382.                            );
  13383.                        },
  13384.                        setFromAxisAngle: function (e, t) {
  13385.                            var i = t / 2,
  13386.                                n = Math.sin(i);
  13387.                            return (this._x = e.x * n), (this._y = e.y * n), (this._z = e.z * n), (this._w = Math.cos(i)), this.onChangeCallback(), this;
  13388.                        },
  13389.                        setFromRotationMatrix: function (e) {
  13390.                            var t,
  13391.                                i = e.elements,
  13392.                                n = i[0],
  13393.                                r = i[4],
  13394.                                o = i[8],
  13395.                                a = i[1],
  13396.                                s = i[5],
  13397.                                l = i[9],
  13398.                                c = i[2],
  13399.                                u = i[6],
  13400.                                h = i[10],
  13401.                                d = n + s + h;
  13402.                            return (
  13403.                                d > 0 ?
  13404.                                ((t = 0.5 / Math.sqrt(d + 1)), (this._w = 0.25 / t), (this._x = (u - l) * t), (this._y = (o - c) * t), (this._z = (a - r) * t)) :
  13405.                                n > s && n > h ?
  13406.                                ((t = 2 * Math.sqrt(1 + n - s - h)), (this._w = (u - l) / t), (this._x = 0.25 * t), (this._y = (r + a) / t), (this._z = (o + c) / t)) :
  13407.                                s > h ?
  13408.                                ((t = 2 * Math.sqrt(1 + s - n - h)), (this._w = (o - c) / t), (this._x = (r + a) / t), (this._y = 0.25 * t), (this._z = (l + u) / t)) :
  13409.                                ((t = 2 * Math.sqrt(1 + h - n - s)), (this._w = (a - r) / t), (this._x = (o + c) / t), (this._y = (l + u) / t), (this._z = 0.25 * t)),
  13410.                                this.onChangeCallback(),
  13411.                                this
  13412.                            );
  13413.                        },
  13414.                        setFromUnitVectors: (function () {
  13415.                            var e,
  13416.                                t,
  13417.                                i = 1e-6;
  13418.                            return function (r, o) {
  13419.                                return (
  13420.                                    void 0 === e && (e = new n.Vector3()),
  13421.                                    (t = r.dot(o) + 1),
  13422.                                    i > t ? ((t = 0), Math.abs(r.x) > Math.abs(r.z) ? e.set(-r.y, r.x, 0) : e.set(0, -r.z, r.y)) : e.crossVectors(r, o),
  13423.                                    (this._x = e.x),
  13424.                                    (this._y = e.y),
  13425.                                    (this._z = e.z),
  13426.                                    (this._w = t),
  13427.                                    this.normalize()
  13428.                                );
  13429.                            };
  13430.                        })(),
  13431.                        inverse: function () {
  13432.                            return this.conjugate().normalize();
  13433.                        },
  13434.                        conjugate: function () {
  13435.                            return (this._x *= -1), (this._y *= -1), (this._z *= -1), this.onChangeCallback(), this;
  13436.                        },
  13437.                        dot: function (e) {
  13438.                            return this._x * e._x + this._y * e._y + this._z * e._z + this._w * e._w;
  13439.                        },
  13440.                        lengthSq: function () {
  13441.                            return this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w;
  13442.                        },
  13443.                        length: function () {
  13444.                            return Math.sqrt(this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w);
  13445.                        },
  13446.                        normalize: function () {
  13447.                            var e = this.length();
  13448.                            return (
  13449.                                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)),
  13450.                                this.onChangeCallback(),
  13451.                                this
  13452.                            );
  13453.                        },
  13454.                        multiply: function (e, t) {
  13455.                            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);
  13456.                        },
  13457.                        premultiply: function (e) {
  13458.                            return this.multiplyQuaternions(e, this);
  13459.                        },
  13460.                        multiplyQuaternions: function (e, t) {
  13461.                            var i = e._x,
  13462.                                n = e._y,
  13463.                                r = e._z,
  13464.                                o = e._w,
  13465.                                a = t._x,
  13466.                                s = t._y,
  13467.                                l = t._z,
  13468.                                c = t._w;
  13469.                            return (this._x = i * c + o * a + n * l - r * s), (this._y = n * c + o * s + r * a - i * l), (this._z = r * c + o * l + i * s - n * a), (this._w = o * c - i * a - n * s - r * l), this.onChangeCallback(), this;
  13470.                        },
  13471.                        slerp: function (e, t) {
  13472.                            if (0 === t) return this;
  13473.                            if (1 === t) return this.copy(e);
  13474.                            var i = this._x,
  13475.                                n = this._y,
  13476.                                r = this._z,
  13477.                                o = this._w,
  13478.                                a = o * e._w + i * e._x + n * e._y + r * e._z;
  13479.                            if ((0 > a ? ((this._w = -e._w), (this._x = -e._x), (this._y = -e._y), (this._z = -e._z), (a = -a)) : this.copy(e), a >= 1)) return (this._w = o), (this._x = i), (this._y = n), (this._z = r), this;
  13480.                            var s = Math.sqrt(1 - a * a);
  13481.                            if (Math.abs(s) < 0.001) return (this._w = 0.5 * (o + this._w)), (this._x = 0.5 * (i + this._x)), (this._y = 0.5 * (n + this._y)), (this._z = 0.5 * (r + this._z)), this;
  13482.                            var l = Math.atan2(s, a),
  13483.                                c = Math.sin((1 - t) * l) / s,
  13484.                                u = Math.sin(t * l) / s;
  13485.                            return (this._w = o * c + this._w * u), (this._x = i * c + this._x * u), (this._y = n * c + this._y * u), (this._z = r * c + this._z * u), this.onChangeCallback(), this;
  13486.                        },
  13487.                        equals: function (e) {
  13488.                            return e._x === this._x && e._y === this._y && e._z === this._z && e._w === this._w;
  13489.                        },
  13490.                        fromArray: function (e, t) {
  13491.                            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;
  13492.                        },
  13493.                        toArray: function (e, t) {
  13494.                            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;
  13495.                        },
  13496.                        onChange: function (e) {
  13497.                            return (this.onChangeCallback = e), this;
  13498.                        },
  13499.                        onChangeCallback: function () {},
  13500.                    }),
  13501.                    Object.assign(n.Quaternion, {
  13502.                        slerp: function (e, t, i, n) {
  13503.                            return i.copy(e).slerp(t, n);
  13504.                        },
  13505.                        slerpFlat: function (e, t, i, n, r, o, a) {
  13506.                            var s = i[n + 0],
  13507.                                l = i[n + 1],
  13508.                                c = i[n + 2],
  13509.                                u = i[n + 3],
  13510.                                h = r[o + 0],
  13511.                                d = r[o + 1],
  13512.                                f = r[o + 2],
  13513.                                p = r[o + 3];
  13514.                            if (u !== p || s !== h || l !== d || c !== f) {
  13515.                                var m = 1 - a,
  13516.                                    v = s * h + l * d + c * f + u * p,
  13517.                                    g = v >= 0 ? 1 : -1,
  13518.                                    y = 1 - v * v;
  13519.                                if (y > Number.EPSILON) {
  13520.                                    var _ = Math.sqrt(y),
  13521.                                        b = Math.atan2(_, v * g);
  13522.                                    (m = Math.sin(m * b) / _), (a = Math.sin(a * b) / _);
  13523.                                }
  13524.                                var x = a * g;
  13525.                                if (((s = s * m + h * x), (l = l * m + d * x), (c = c * m + f * x), (u = u * m + p * x), m === 1 - a)) {
  13526.                                    var w = 1 / Math.sqrt(s * s + l * l + c * c + u * u);
  13527.                                    (s *= w), (l *= w), (c *= w), (u *= w);
  13528.                                }
  13529.                            }
  13530.                            (e[t] = s), (e[t + 1] = l), (e[t + 2] = c), (e[t + 3] = u);
  13531.                        },
  13532.                    }),
  13533.                    (n.Vector2 = function (e, t) {
  13534.                        (this.x = e || 0), (this.y = t || 0);
  13535.                    }),
  13536.                    (n.Vector2.prototype = {
  13537.                        constructor: n.Vector2,
  13538.                        get width() {
  13539.                            return this.x;
  13540.                        },
  13541.                        set width(e) {
  13542.                            this.x = e;
  13543.                        },
  13544.                        get height() {
  13545.                            return this.y;
  13546.                        },
  13547.                        set height(e) {
  13548.                            this.y = e;
  13549.                        },
  13550.                        set: function (e, t) {
  13551.                            return (this.x = e), (this.y = t), this;
  13552.                        },
  13553.                        setScalar: function (e) {
  13554.                            return (this.x = e), (this.y = e), this;
  13555.                        },
  13556.                        setX: function (e) {
  13557.                            return (this.x = e), this;
  13558.                        },
  13559.                        setY: function (e) {
  13560.                            return (this.y = e), this;
  13561.                        },
  13562.                        setComponent: function (e, t) {
  13563.                            switch (e) {
  13564.                            case 0:
  13565.                                this.x = t;
  13566.                                break;
  13567.                            case 1:
  13568.                                this.y = t;
  13569.                                break;
  13570.                            default:
  13571.                                throw new Error("index is out of range: " + e);
  13572.                            }
  13573.                        },
  13574.                        getComponent: function (e) {
  13575.                            switch (e) {
  13576.                            case 0:
  13577.                                return this.x;
  13578.                            case 1:
  13579.                                return this.y;
  13580.                            default:
  13581.                                throw new Error("index is out of range: " + e);
  13582.                            }
  13583.                        },
  13584.                        clone: function () {
  13585.                            return new this.constructor(this.x, this.y);
  13586.                        },
  13587.                        copy: function (e) {
  13588.                            return (this.x = e.x), (this.y = e.y), this;
  13589.                        },
  13590.                        add: function (e, t) {
  13591.                            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);
  13592.                        },
  13593.                        addScalar: function (e) {
  13594.                            return (this.x += e), (this.y += e), this;
  13595.                        },
  13596.                        addVectors: function (e, t) {
  13597.                            return (this.x = e.x + t.x), (this.y = e.y + t.y), this;
  13598.                        },
  13599.                        addScaledVector: function (e, t) {
  13600.                            return (this.x += e.x * t), (this.y += e.y * t), this;
  13601.                        },
  13602.                        sub: function (e, t) {
  13603.                            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);
  13604.                        },
  13605.                        subScalar: function (e) {
  13606.                            return (this.x -= e), (this.y -= e), this;
  13607.                        },
  13608.                        subVectors: function (e, t) {
  13609.                            return (this.x = e.x - t.x), (this.y = e.y - t.y), this;
  13610.                        },
  13611.                        multiply: function (e) {
  13612.                            return (this.x *= e.x), (this.y *= e.y), this;
  13613.                        },
  13614.                        multiplyScalar: function (e) {
  13615.                            return isFinite(e) ? ((this.x *= e), (this.y *= e)) : ((this.x = 0), (this.y = 0)), this;
  13616.                        },
  13617.                        divide: function (e) {
  13618.                            return (this.x /= e.x), (this.y /= e.y), this;
  13619.                        },
  13620.                        divideScalar: function (e) {
  13621.                            return this.multiplyScalar(1 / e);
  13622.                        },
  13623.                        min: function (e) {
  13624.                            return (this.x = Math.min(this.x, e.x)), (this.y = Math.min(this.y, e.y)), this;
  13625.                        },
  13626.                        max: function (e) {
  13627.                            return (this.x = Math.max(this.x, e.x)), (this.y = Math.max(this.y, e.y)), this;
  13628.                        },
  13629.                        clamp: function (e, t) {
  13630.                            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;
  13631.                        },
  13632.                        clampScalar: (function () {
  13633.                            var e, t;
  13634.                            return function (i, r) {
  13635.                                return void 0 === e && ((e = new n.Vector2()), (t = new n.Vector2())), e.set(i, i), t.set(r, r), this.clamp(e, t);
  13636.                            };
  13637.                        })(),
  13638.                        clampLength: function (e, t) {
  13639.                            var i = this.length();
  13640.                            return this.multiplyScalar(Math.max(e, Math.min(t, i)) / i);
  13641.                        },
  13642.                        floor: function () {
  13643.                            return (this.x = Math.floor(this.x)), (this.y = Math.floor(this.y)), this;
  13644.                        },
  13645.                        ceil: function () {
  13646.                            return (this.x = Math.ceil(this.x)), (this.y = Math.ceil(this.y)), this;
  13647.                        },
  13648.                        round: function () {
  13649.                            return (this.x = Math.round(this.x)), (this.y = Math.round(this.y)), this;
  13650.                        },
  13651.                        roundToZero: function () {
  13652.                            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;
  13653.                        },
  13654.                        negate: function () {
  13655.                            return (this.x = -this.x), (this.y = -this.y), this;
  13656.                        },
  13657.                        dot: function (e) {
  13658.                            return this.x * e.x + this.y * e.y;
  13659.                        },
  13660.                        lengthSq: function () {
  13661.                            return this.x * this.x + this.y * this.y;
  13662.                        },
  13663.                        length: function () {
  13664.                            return Math.sqrt(this.x * this.x + this.y * this.y);
  13665.                        },
  13666.                        lengthManhattan: function () {
  13667.                            return Math.abs(this.x) + Math.abs(this.y);
  13668.                        },
  13669.                        normalize: function () {
  13670.                            return this.divideScalar(this.length());
  13671.                        },
  13672.                        angle: function () {
  13673.                            var e = Math.atan2(this.y, this.x);
  13674.                            return 0 > e && (e += 2 * Math.PI), e;
  13675.                        },
  13676.                        distanceTo: function (e) {
  13677.                            return Math.sqrt(this.distanceToSquared(e));
  13678.                        },
  13679.                        distanceToSquared: function (e) {
  13680.                            var t = this.x - e.x,
  13681.                                i = this.y - e.y;
  13682.                            return t * t + i * i;
  13683.                        },
  13684.                        distanceToManhattan: function (e) {
  13685.                            return Math.abs(this.x - e.x) + Math.abs(this.y - e.y);
  13686.                        },
  13687.                        setLength: function (e) {
  13688.                            return this.multiplyScalar(e / this.length());
  13689.                        },
  13690.                        lerp: function (e, t) {
  13691.                            return (this.x += (e.x - this.x) * t), (this.y += (e.y - this.y) * t), this;
  13692.                        },
  13693.                        lerpVectors: function (e, t, i) {
  13694.                            return this.subVectors(t, e).multiplyScalar(i).add(e);
  13695.                        },
  13696.                        equals: function (e) {
  13697.                            return e.x === this.x && e.y === this.y;
  13698.                        },
  13699.                        fromArray: function (e, t) {
  13700.                            return void 0 === t && (t = 0), (this.x = e[t]), (this.y = e[t + 1]), this;
  13701.                        },
  13702.                        toArray: function (e, t) {
  13703.                            return void 0 === e && (e = []), void 0 === t && (t = 0), (e[t] = this.x), (e[t + 1] = this.y), e;
  13704.                        },
  13705.                        fromAttribute: function (e, t, i) {
  13706.                            return void 0 === i && (i = 0), (t = t * e.itemSize + i), (this.x = e.array[t]), (this.y = e.array[t + 1]), this;
  13707.                        },
  13708.                        rotateAround: function (e, t) {
  13709.                            var i = Math.cos(t),
  13710.                                n = Math.sin(t),
  13711.                                r = this.x - e.x,
  13712.                                o = this.y - e.y;
  13713.                            return (this.x = r * i - o * n + e.x), (this.y = r * n + o * i + e.y), this;
  13714.                        },
  13715.                    }),
  13716.                    (n.Vector3 = function (e, t, i) {
  13717.                        (this.x = e || 0), (this.y = t || 0), (this.z = i || 0);
  13718.                    }),
  13719.                    (n.Vector3.prototype = {
  13720.                        constructor: n.Vector3,
  13721.                        set: function (e, t, i) {
  13722.                            return (this.x = e), (this.y = t), (this.z = i), this;
  13723.                        },
  13724.                        setScalar: function (e) {
  13725.                            return (this.x = e), (this.y = e), (this.z = e), this;
  13726.                        },
  13727.                        setX: function (e) {
  13728.                            return (this.x = e), this;
  13729.                        },
  13730.                        setY: function (e) {
  13731.                            return (this.y = e), this;
  13732.                        },
  13733.                        setZ: function (e) {
  13734.                            return (this.z = e), this;
  13735.                        },
  13736.                        setComponent: function (e, t) {
  13737.                            switch (e) {
  13738.                            case 0:
  13739.                                this.x = t;
  13740.                                break;
  13741.                            case 1:
  13742.                                this.y = t;
  13743.                                break;
  13744.                            case 2:
  13745.                                this.z = t;
  13746.                                break;
  13747.                            default:
  13748.                                throw new Error("index is out of range: " + e);
  13749.                            }
  13750.                        },
  13751.                        getComponent: function (e) {
  13752.                            switch (e) {
  13753.                            case 0:
  13754.                                return this.x;
  13755.                            case 1:
  13756.                                return this.y;
  13757.                            case 2:
  13758.                                return this.z;
  13759.                            default:
  13760.                                throw new Error("index is out of range: " + e);
  13761.                            }
  13762.                        },
  13763.                        clone: function () {
  13764.                            return new this.constructor(this.x, this.y, this.z);
  13765.                        },
  13766.                        copy: function (e) {
  13767.                            return (this.x = e.x), (this.y = e.y), (this.z = e.z), this;
  13768.                        },
  13769.                        add: function (e, t) {
  13770.                            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);
  13771.                        },
  13772.                        addScalar: function (e) {
  13773.                            return (this.x += e), (this.y += e), (this.z += e), this;
  13774.                        },
  13775.                        addVectors: function (e, t) {
  13776.                            return (this.x = e.x + t.x), (this.y = e.y + t.y), (this.z = e.z + t.z), this;
  13777.                        },
  13778.                        addScaledVector: function (e, t) {
  13779.                            return (this.x += e.x * t), (this.y += e.y * t), (this.z += e.z * t), this;
  13780.                        },
  13781.                        sub: function (e, t) {
  13782.                            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);
  13783.                        },
  13784.                        subScalar: function (e) {
  13785.                            return (this.x -= e), (this.y -= e), (this.z -= e), this;
  13786.                        },
  13787.                        subVectors: function (e, t) {
  13788.                            return (this.x = e.x - t.x), (this.y = e.y - t.y), (this.z = e.z - t.z), this;
  13789.                        },
  13790.                        multiply: function (e, t) {
  13791.                            return void 0 !== t ?
  13792.                                (console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."), this.multiplyVectors(e, t)) :
  13793.                                ((this.x *= e.x), (this.y *= e.y), (this.z *= e.z), this);
  13794.                        },
  13795.                        multiplyScalar: function (e) {
  13796.                            return isFinite(e) ? ((this.x *= e), (this.y *= e), (this.z *= e)) : ((this.x = 0), (this.y = 0), (this.z = 0)), this;
  13797.                        },
  13798.                        multiplyVectors: function (e, t) {
  13799.                            return (this.x = e.x * t.x), (this.y = e.y * t.y), (this.z = e.z * t.z), this;
  13800.                        },
  13801.                        applyEuler: (function () {
  13802.                            var e;
  13803.                            return function (t) {
  13804.                                return (
  13805.                                    t instanceof n.Euler == !1 && console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order."),
  13806.                                    void 0 === e && (e = new n.Quaternion()),
  13807.                                    this.applyQuaternion(e.setFromEuler(t))
  13808.                                );
  13809.                            };
  13810.                        })(),
  13811.                        applyAxisAngle: (function () {
  13812.                            var e;
  13813.                            return function (t, i) {
  13814.                                return void 0 === e && (e = new n.Quaternion()), this.applyQuaternion(e.setFromAxisAngle(t, i));
  13815.                            };
  13816.                        })(),
  13817.                        applyMatrix3: function (e) {
  13818.                            var t = this.x,
  13819.                                i = this.y,
  13820.                                n = this.z,
  13821.                                r = e.elements;
  13822.                            return (this.x = r[0] * t + r[3] * i + r[6] * n), (this.y = r[1] * t + r[4] * i + r[7] * n), (this.z = r[2] * t + r[5] * i + r[8] * n), this;
  13823.                        },
  13824.                        applyMatrix4: function (e) {
  13825.                            var t = this.x,
  13826.                                i = this.y,
  13827.                                n = this.z,
  13828.                                r = e.elements;
  13829.                            return (this.x = r[0] * t + r[4] * i + r[8] * n + r[12]), (this.y = r[1] * t + r[5] * i + r[9] * n + r[13]), (this.z = r[2] * t + r[6] * i + r[10] * n + r[14]), this;
  13830.                        },
  13831.                        applyProjection: function (e) {
  13832.                            var t = this.x,
  13833.                                i = this.y,
  13834.                                n = this.z,
  13835.                                r = e.elements,
  13836.                                o = 1 / (r[3] * t + r[7] * i + r[11] * n + r[15]);
  13837.                            return (this.x = (r[0] * t + r[4] * i + r[8] * n + r[12]) * o), (this.y = (r[1] * t + r[5] * i + r[9] * n + r[13]) * o), (this.z = (r[2] * t + r[6] * i + r[10] * n + r[14]) * o), this;
  13838.                        },
  13839.                        applyQuaternion: function (e) {
  13840.                            var t = this.x,
  13841.                                i = this.y,
  13842.                                n = this.z,
  13843.                                r = e.x,
  13844.                                o = e.y,
  13845.                                a = e.z,
  13846.                                s = e.w,
  13847.                                l = s * t + o * n - a * i,
  13848.                                c = s * i + a * t - r * n,
  13849.                                u = s * n + r * i - o * t,
  13850.                                h = -r * t - o * i - a * n;
  13851.                            return (this.x = l * s + h * -r + c * -a - u * -o), (this.y = c * s + h * -o + u * -r - l * -a), (this.z = u * s + h * -a + l * -o - c * -r), this;
  13852.                        },
  13853.                        project: (function () {
  13854.                            var e;
  13855.                            return function (t) {
  13856.                                return void 0 === e && (e = new n.Matrix4()), e.multiplyMatrices(t.projectionMatrix, e.getInverse(t.matrixWorld)), this.applyProjection(e);
  13857.                            };
  13858.                        })(),
  13859.                        unproject: (function () {
  13860.                            var e;
  13861.                            return function (t) {
  13862.                                return void 0 === e && (e = new n.Matrix4()), e.multiplyMatrices(t.matrixWorld, e.getInverse(t.projectionMatrix)), this.applyProjection(e);
  13863.                            };
  13864.                        })(),
  13865.                        transformDirection: function (e) {
  13866.                            var t = this.x,
  13867.                                i = this.y,
  13868.                                n = this.z,
  13869.                                r = e.elements;
  13870.                            return (this.x = r[0] * t + r[4] * i + r[8] * n), (this.y = r[1] * t + r[5] * i + r[9] * n), (this.z = r[2] * t + r[6] * i + r[10] * n), this.normalize();
  13871.                        },
  13872.                        divide: function (e) {
  13873.                            return (this.x /= e.x), (this.y /= e.y), (this.z /= e.z), this;
  13874.                        },
  13875.                        divideScalar: function (e) {
  13876.                            return this.multiplyScalar(1 / e);
  13877.                        },
  13878.                        min: function (e) {
  13879.                            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;
  13880.                        },
  13881.                        max: function (e) {
  13882.                            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;
  13883.                        },
  13884.                        clamp: function (e, t) {
  13885.                            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;
  13886.                        },
  13887.                        clampScalar: (function () {
  13888.                            var e, t;
  13889.                            return function (i, r) {
  13890.                                return void 0 === e && ((e = new n.Vector3()), (t = new n.Vector3())), e.set(i, i, i), t.set(r, r, r), this.clamp(e, t);
  13891.                            };
  13892.                        })(),
  13893.                        clampLength: function (e, t) {
  13894.                            var i = this.length();
  13895.                            return this.multiplyScalar(Math.max(e, Math.min(t, i)) / i);
  13896.                        },
  13897.                        floor: function () {
  13898.                            return (this.x = Math.floor(this.x)), (this.y = Math.floor(this.y)), (this.z = Math.floor(this.z)), this;
  13899.                        },
  13900.                        ceil: function () {
  13901.                            return (this.x = Math.ceil(this.x)), (this.y = Math.ceil(this.y)), (this.z = Math.ceil(this.z)), this;
  13902.                        },
  13903.                        round: function () {
  13904.                            return (this.x = Math.round(this.x)), (this.y = Math.round(this.y)), (this.z = Math.round(this.z)), this;
  13905.                        },
  13906.                        roundToZero: function () {
  13907.                            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;
  13908.                        },
  13909.                        negate: function () {
  13910.                            return (this.x = -this.x), (this.y = -this.y), (this.z = -this.z), this;
  13911.                        },
  13912.                        dot: function (e) {
  13913.                            return this.x * e.x + this.y * e.y + this.z * e.z;
  13914.                        },
  13915.                        lengthSq: function () {
  13916.                            return this.x * this.x + this.y * this.y + this.z * this.z;
  13917.                        },
  13918.                        length: function () {
  13919.                            return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
  13920.                        },
  13921.                        lengthManhattan: function () {
  13922.                            return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z);
  13923.                        },
  13924.                        normalize: function () {
  13925.                            return this.divideScalar(this.length());
  13926.                        },
  13927.                        setLength: function (e) {
  13928.                            return this.multiplyScalar(e / this.length());
  13929.                        },
  13930.                        lerp: function (e, t) {
  13931.                            return (this.x += (e.x - this.x) * t), (this.y += (e.y - this.y) * t), (this.z += (e.z - this.z) * t), this;
  13932.                        },
  13933.                        lerpVectors: function (e, t, i) {
  13934.                            return this.subVectors(t, e).multiplyScalar(i).add(e);
  13935.                        },
  13936.                        cross: function (e, t) {
  13937.                            if (void 0 !== t) return console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."), this.crossVectors(e, t);
  13938.                            var i = this.x,
  13939.                                n = this.y,
  13940.                                r = this.z;
  13941.                            return (this.x = n * e.z - r * e.y), (this.y = r * e.x - i * e.z), (this.z = i * e.y - n * e.x), this;
  13942.                        },
  13943.                        crossVectors: function (e, t) {
  13944.                            var i = e.x,
  13945.                                n = e.y,
  13946.                                r = e.z,
  13947.                                o = t.x,
  13948.                                a = t.y,
  13949.                                s = t.z;
  13950.                            return (this.x = n * s - r * a), (this.y = r * o - i * s), (this.z = i * a - n * o), this;
  13951.                        },
  13952.                        projectOnVector: function (e) {
  13953.                            var t = e.dot(this) / e.lengthSq();
  13954.                            return this.copy(e).multiplyScalar(t);
  13955.                        },
  13956.                        projectOnPlane: (function () {
  13957.                            var e;
  13958.                            return function (t) {
  13959.                                return void 0 === e && (e = new n.Vector3()), e.copy(this).projectOnVector(t), this.sub(e);
  13960.                            };
  13961.                        })(),
  13962.                        reflect: (function () {
  13963.                            var e;
  13964.                            return function (t) {
  13965.                                return void 0 === e && (e = new n.Vector3()), this.sub(e.copy(t).multiplyScalar(2 * this.dot(t)));
  13966.                            };
  13967.                        })(),
  13968.                        angleTo: function (e) {
  13969.                            var t = this.dot(e) / Math.sqrt(this.lengthSq() * e.lengthSq());
  13970.                            return Math.acos(n.Math.clamp(t, -1, 1));
  13971.                        },
  13972.                        distanceTo: function (e) {
  13973.                            return Math.sqrt(this.distanceToSquared(e));
  13974.                        },
  13975.                        distanceToSquared: function (e) {
  13976.                            var t = this.x - e.x,
  13977.                                i = this.y - e.y,
  13978.                                n = this.z - e.z;
  13979.                            return t * t + i * i + n * n;
  13980.                        },
  13981.                        distanceToManhattan: function (e) {
  13982.                            return Math.abs(this.x - e.x) + Math.abs(this.y - e.y) + Math.abs(this.z - e.z);
  13983.                        },
  13984.                        setFromSpherical: function (e) {
  13985.                            var t = Math.sin(e.phi) * e.radius;
  13986.                            return (this.x = t * Math.sin(e.theta)), (this.y = Math.cos(e.phi) * e.radius), (this.z = t * Math.cos(e.theta)), this;
  13987.                        },
  13988.                        setFromMatrixPosition: function (e) {
  13989.                            return this.setFromMatrixColumn(e, 3);
  13990.                        },
  13991.                        setFromMatrixScale: function (e) {
  13992.                            var t = this.setFromMatrixColumn(e, 0).length(),
  13993.                                i = this.setFromMatrixColumn(e, 1).length(),
  13994.                                n = this.setFromMatrixColumn(e, 2).length();
  13995.                            return (this.x = t), (this.y = i), (this.z = n), this;
  13996.                        },
  13997.                        setFromMatrixColumn: function (e, t) {
  13998.                            if ("number" == typeof e) {
  13999.                                console.warn("THREE.Vector3: setFromMatrixColumn now expects ( matrix, index ).");
  14000.                                var i = e;
  14001.                                (e = t), (t = i);
  14002.                            }
  14003.                            return this.fromArray(e.elements, 4 * t);
  14004.                        },
  14005.                        equals: function (e) {
  14006.                            return e.x === this.x && e.y === this.y && e.z === this.z;
  14007.                        },
  14008.                        fromArray: function (e, t) {
  14009.                            return void 0 === t && (t = 0), (this.x = e[t]), (this.y = e[t + 1]), (this.z = e[t + 2]), this;
  14010.                        },
  14011.                        toArray: function (e, t) {
  14012.                            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;
  14013.                        },
  14014.                        fromAttribute: function (e, t, i) {
  14015.                            return void 0 === i && (i = 0), (t = t * e.itemSize + i), (this.x = e.array[t]), (this.y = e.array[t + 1]), (this.z = e.array[t + 2]), this;
  14016.                        },
  14017.                    }),
  14018.                    (n.Vector4 = function (e, t, i, n) {
  14019.                        (this.x = e || 0), (this.y = t || 0), (this.z = i || 0), (this.w = void 0 !== n ? n : 1);
  14020.                    }),
  14021.                    (n.Vector4.prototype = {
  14022.                        constructor: n.Vector4,
  14023.                        set: function (e, t, i, n) {
  14024.                            return (this.x = e), (this.y = t), (this.z = i), (this.w = n), this;
  14025.                        },
  14026.                        setScalar: function (e) {
  14027.                            return (this.x = e), (this.y = e), (this.z = e), (this.w = e), this;
  14028.                        },
  14029.                        setX: function (e) {
  14030.                            return (this.x = e), this;
  14031.                        },
  14032.                        setY: function (e) {
  14033.                            return (this.y = e), this;
  14034.                        },
  14035.                        setZ: function (e) {
  14036.                            return (this.z = e), this;
  14037.                        },
  14038.                        setW: function (e) {
  14039.                            return (this.w = e), this;
  14040.                        },
  14041.                        setComponent: function (e, t) {
  14042.                            switch (e) {
  14043.                            case 0:
  14044.                                this.x = t;
  14045.                                break;
  14046.                            case 1:
  14047.                                this.y = t;
  14048.                                break;
  14049.                            case 2:
  14050.                                this.z = t;
  14051.                                break;
  14052.                            case 3:
  14053.                                this.w = t;
  14054.                                break;
  14055.                            default:
  14056.                                throw new Error("index is out of range: " + e);
  14057.                            }
  14058.                        },
  14059.                        getComponent: function (e) {
  14060.                            switch (e) {
  14061.                            case 0:
  14062.                                return this.x;
  14063.                            case 1:
  14064.                                return this.y;
  14065.                            case 2:
  14066.                                return this.z;
  14067.                            case 3:
  14068.                                return this.w;
  14069.                            default:
  14070.                                throw new Error("index is out of range: " + e);
  14071.                            }
  14072.                        },
  14073.                        clone: function () {
  14074.                            return new this.constructor(this.x, this.y, this.z, this.w);
  14075.                        },
  14076.                        copy: function (e) {
  14077.                            return (this.x = e.x), (this.y = e.y), (this.z = e.z), (this.w = void 0 !== e.w ? e.w : 1), this;
  14078.                        },
  14079.                        add: function (e, t) {
  14080.                            return void 0 !== t ?
  14081.                                (console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."), this.addVectors(e, t)) :
  14082.                                ((this.x += e.x), (this.y += e.y), (this.z += e.z), (this.w += e.w), this);
  14083.                        },
  14084.                        addScalar: function (e) {
  14085.                            return (this.x += e), (this.y += e), (this.z += e), (this.w += e), this;
  14086.                        },
  14087.                        addVectors: function (e, t) {
  14088.                            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;
  14089.                        },
  14090.                        addScaledVector: function (e, t) {
  14091.                            return (this.x += e.x * t), (this.y += e.y * t), (this.z += e.z * t), (this.w += e.w * t), this;
  14092.                        },
  14093.                        sub: function (e, t) {
  14094.                            return void 0 !== t ?
  14095.                                (console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."), this.subVectors(e, t)) :
  14096.                                ((this.x -= e.x), (this.y -= e.y), (this.z -= e.z), (this.w -= e.w), this);
  14097.                        },
  14098.                        subScalar: function (e) {
  14099.                            return (this.x -= e), (this.y -= e), (this.z -= e), (this.w -= e), this;
  14100.                        },
  14101.                        subVectors: function (e, t) {
  14102.                            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;
  14103.                        },
  14104.                        multiplyScalar: function (e) {
  14105.                            return isFinite(e) ? ((this.x *= e), (this.y *= e), (this.z *= e), (this.w *= e)) : ((this.x = 0), (this.y = 0), (this.z = 0), (this.w = 0)), this;
  14106.                        },
  14107.                        applyMatrix4: function (e) {
  14108.                            var t = this.x,
  14109.                                i = this.y,
  14110.                                n = this.z,
  14111.                                r = this.w,
  14112.                                o = e.elements;
  14113.                            return (
  14114.                                (this.x = o[0] * t + o[4] * i + o[8] * n + o[12] * r),
  14115.                                (this.y = o[1] * t + o[5] * i + o[9] * n + o[13] * r),
  14116.                                (this.z = o[2] * t + o[6] * i + o[10] * n + o[14] * r),
  14117.                                (this.w = o[3] * t + o[7] * i + o[11] * n + o[15] * r),
  14118.                                this
  14119.                            );
  14120.                        },
  14121.                        divideScalar: function (e) {
  14122.                            return this.multiplyScalar(1 / e);
  14123.                        },
  14124.                        setAxisAngleFromQuaternion: function (e) {
  14125.                            this.w = 2 * Math.acos(e.w);
  14126.                            var t = Math.sqrt(1 - e.w * e.w);
  14127.                            return 1e-4 > t ? ((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;
  14128.                        },
  14129.                        setAxisAngleFromRotationMatrix: function (e) {
  14130.                            var t,
  14131.                                i,
  14132.                                n,
  14133.                                r,
  14134.                                o = 0.01,
  14135.                                a = 0.1,
  14136.                                s = e.elements,
  14137.                                l = s[0],
  14138.                                c = s[4],
  14139.                                u = s[8],
  14140.                                h = s[1],
  14141.                                d = s[5],
  14142.                                f = s[9],
  14143.                                p = s[2],
  14144.                                m = s[6],
  14145.                                v = s[10];
  14146.                            if (Math.abs(c - h) < o && Math.abs(u - p) < o && Math.abs(f - m) < o) {
  14147.                                if (Math.abs(c + h) < a && Math.abs(u + p) < a && Math.abs(f + m) < a && Math.abs(l + d + v - 3) < a) return this.set(1, 0, 0, 0), this;
  14148.                                t = Math.PI;
  14149.                                var g = (l + 1) / 2,
  14150.                                    y = (d + 1) / 2,
  14151.                                    _ = (v + 1) / 2,
  14152.                                    b = (c + h) / 4,
  14153.                                    x = (u + p) / 4,
  14154.                                    w = (f + m) / 4;
  14155.                                return (
  14156.                                    g > y && g > _ ?
  14157.                                    o > g ?
  14158.                                    ((i = 0), (n = 0.707106781), (r = 0.707106781)) :
  14159.                                    ((i = Math.sqrt(g)), (n = b / i), (r = x / i)) :
  14160.                                    y > _ ?
  14161.                                    o > y ?
  14162.                                    ((i = 0.707106781), (n = 0), (r = 0.707106781)) :
  14163.                                    ((n = Math.sqrt(y)), (i = b / n), (r = w / n)) :
  14164.                                    o > _ ?
  14165.                                    ((i = 0.707106781), (n = 0.707106781), (r = 0)) :
  14166.                                    ((r = Math.sqrt(_)), (i = x / r), (n = w / r)),
  14167.                                    this.set(i, n, r, t),
  14168.                                    this
  14169.                                );
  14170.                            }
  14171.                            var M = Math.sqrt((m - f) * (m - f) + (u - p) * (u - p) + (h - c) * (h - c));
  14172.                            return Math.abs(M) < 0.001 && (M = 1), (this.x = (m - f) / M), (this.y = (u - p) / M), (this.z = (h - c) / M), (this.w = Math.acos((l + d + v - 1) / 2)), this;
  14173.                        },
  14174.                        min: function (e) {
  14175.                            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;
  14176.                        },
  14177.                        max: function (e) {
  14178.                            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;
  14179.                        },
  14180.                        clamp: function (e, t) {
  14181.                            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;
  14182.                        },
  14183.                        clampScalar: (function () {
  14184.                            var e, t;
  14185.                            return function (i, r) {
  14186.                                return void 0 === e && ((e = new n.Vector4()), (t = new n.Vector4())), e.set(i, i, i, i), t.set(r, r, r, r), this.clamp(e, t);
  14187.                            };
  14188.                        })(),
  14189.                        floor: function () {
  14190.                            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;
  14191.                        },
  14192.                        ceil: function () {
  14193.                            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;
  14194.                        },
  14195.                        round: function () {
  14196.                            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;
  14197.                        },
  14198.                        roundToZero: function () {
  14199.                            return (
  14200.                                (this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x)),
  14201.                                (this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y)),
  14202.                                (this.z = this.z < 0 ? Math.ceil(this.z) : Math.floor(this.z)),
  14203.                                (this.w = this.w < 0 ? Math.ceil(this.w) : Math.floor(this.w)),
  14204.                                this
  14205.                            );
  14206.                        },
  14207.                        negate: function () {
  14208.                            return (this.x = -this.x), (this.y = -this.y), (this.z = -this.z), (this.w = -this.w), this;
  14209.                        },
  14210.                        dot: function (e) {
  14211.                            return this.x * e.x + this.y * e.y + this.z * e.z + this.w * e.w;
  14212.                        },
  14213.                        lengthSq: function () {
  14214.                            return this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w;
  14215.                        },
  14216.                        length: function () {
  14217.                            return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w);
  14218.                        },
  14219.                        lengthManhattan: function () {
  14220.                            return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z) + Math.abs(this.w);
  14221.                        },
  14222.                        normalize: function () {
  14223.                            return this.divideScalar(this.length());
  14224.                        },
  14225.                        setLength: function (e) {
  14226.                            return this.multiplyScalar(e / this.length());
  14227.                        },
  14228.                        lerp: function (e, t) {
  14229.                            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;
  14230.                        },
  14231.                        lerpVectors: function (e, t, i) {
  14232.                            return this.subVectors(t, e).multiplyScalar(i).add(e);
  14233.                        },
  14234.                        equals: function (e) {
  14235.                            return e.x === this.x && e.y === this.y && e.z === this.z && e.w === this.w;
  14236.                        },
  14237.                        fromArray: function (e, t) {
  14238.                            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;
  14239.                        },
  14240.                        toArray: function (e, t) {
  14241.                            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;
  14242.                        },
  14243.                        fromAttribute: function (e, t, i) {
  14244.                            return void 0 === i && (i = 0), (t = t * e.itemSize + i), (this.x = e.array[t]), (this.y = e.array[t + 1]), (this.z = e.array[t + 2]), (this.w = e.array[t + 3]), this;
  14245.                        },
  14246.                    }),
  14247.                    (n.Euler = function (e, t, i, r) {
  14248.                        (this._x = e || 0), (this._y = t || 0), (this._z = i || 0), (this._order = r || n.Euler.DefaultOrder);
  14249.                    }),
  14250.                    (n.Euler.RotationOrders = ["XYZ", "YZX", "ZXY", "XZY", "YXZ", "ZYX"]),
  14251.                    (n.Euler.DefaultOrder = "XYZ"),
  14252.                    (n.Euler.prototype = {
  14253.                        constructor: n.Euler,
  14254.                        get x() {
  14255.                            return this._x;
  14256.                        },
  14257.                        set x(e) {
  14258.                            (this._x = e), this.onChangeCallback();
  14259.                        },
  14260.                        get y() {
  14261.                            return this._y;
  14262.                        },
  14263.                        set y(e) {
  14264.                            (this._y = e), this.onChangeCallback();
  14265.                        },
  14266.                        get z() {
  14267.                            return this._z;
  14268.                        },
  14269.                        set z(e) {
  14270.                            (this._z = e), this.onChangeCallback();
  14271.                        },
  14272.                        get order() {
  14273.                            return this._order;
  14274.                        },
  14275.                        set order(e) {
  14276.                            (this._order = e), this.onChangeCallback();
  14277.                        },
  14278.                        set: function (e, t, i, n) {
  14279.                            return (this._x = e), (this._y = t), (this._z = i), (this._order = n || this._order), this.onChangeCallback(), this;
  14280.                        },
  14281.                        clone: function () {
  14282.                            return new this.constructor(this._x, this._y, this._z, this._order);
  14283.                        },
  14284.                        copy: function (e) {
  14285.                            return (this._x = e._x), (this._y = e._y), (this._z = e._z), (this._order = e._order), this.onChangeCallback(), this;
  14286.                        },
  14287.                        setFromRotationMatrix: function (e, t, i) {
  14288.                            var r = n.Math.clamp,
  14289.                                o = e.elements,
  14290.                                a = o[0],
  14291.                                s = o[4],
  14292.                                l = o[8],
  14293.                                c = o[1],
  14294.                                u = o[5],
  14295.                                h = o[9],
  14296.                                d = o[2],
  14297.                                f = o[6],
  14298.                                p = o[10];
  14299.                            return (
  14300.                                (t = t || this._order),
  14301.                                "XYZ" === t ?
  14302.                                ((this._y = Math.asin(r(l, -1, 1))), Math.abs(l) < 0.99999 ? ((this._x = Math.atan2(-h, p)), (this._z = Math.atan2(-s, a))) : ((this._x = Math.atan2(f, u)), (this._z = 0))) :
  14303.                                "YXZ" === t ?
  14304.                                ((this._x = Math.asin(-r(h, -1, 1))), Math.abs(h) < 0.99999 ? ((this._y = Math.atan2(l, p)), (this._z = Math.atan2(c, u))) : ((this._y = Math.atan2(-d, a)), (this._z = 0))) :
  14305.                                "ZXY" === t ?
  14306.                                ((this._x = Math.asin(r(f, -1, 1))), Math.abs(f) < 0.99999 ? ((this._y = Math.atan2(-d, p)), (this._z = Math.atan2(-s, u))) : ((this._y = 0), (this._z = Math.atan2(c, a)))) :
  14307.                                "ZYX" === t ?
  14308.                                ((this._y = Math.asin(-r(d, -1, 1))), Math.abs(d) < 0.99999 ? ((this._x = Math.atan2(f, p)), (this._z = Math.atan2(c, a))) : ((this._x = 0), (this._z = Math.atan2(-s, u)))) :
  14309.                                "YZX" === t ?
  14310.                                ((this._z = Math.asin(r(c, -1, 1))), Math.abs(c) < 0.99999 ? ((this._x = Math.atan2(-h, u)), (this._y = Math.atan2(-d, a))) : ((this._x = 0), (this._y = Math.atan2(l, p)))) :
  14311.                                "XZY" === t ?
  14312.                                ((this._z = Math.asin(-r(s, -1, 1))), Math.abs(s) < 0.99999 ? ((this._x = Math.atan2(f, u)), (this._y = Math.atan2(l, a))) : ((this._x = Math.atan2(-h, p)), (this._y = 0))) :
  14313.                                console.warn("THREE.Euler: .setFromRotationMatrix() given unsupported order: " + t),
  14314.                                (this._order = t),
  14315.                                i !== !1 && this.onChangeCallback(),
  14316.                                this
  14317.                            );
  14318.                        },
  14319.                        setFromQuaternion: (function () {
  14320.                            var e;
  14321.                            return function (t, i, r) {
  14322.                                return void 0 === e && (e = new n.Matrix4()), e.makeRotationFromQuaternion(t), this.setFromRotationMatrix(e, i, r);
  14323.                            };
  14324.                        })(),
  14325.                        setFromVector3: function (e, t) {
  14326.                            return this.set(e.x, e.y, e.z, t || this._order);
  14327.                        },
  14328.                        reorder: (function () {
  14329.                            var e = new n.Quaternion();
  14330.                            return function (t) {
  14331.                                return e.setFromEuler(this), this.setFromQuaternion(e, t);
  14332.                            };
  14333.                        })(),
  14334.                        equals: function (e) {
  14335.                            return e._x === this._x && e._y === this._y && e._z === this._z && e._order === this._order;
  14336.                        },
  14337.                        fromArray: function (e) {
  14338.                            return (this._x = e[0]), (this._y = e[1]), (this._z = e[2]), void 0 !== e[3] && (this._order = e[3]), this.onChangeCallback(), this;
  14339.                        },
  14340.                        toArray: function (e, t) {
  14341.                            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;
  14342.                        },
  14343.                        toVector3: function (e) {
  14344.                            return e ? e.set(this._x, this._y, this._z) : new n.Vector3(this._x, this._y, this._z);
  14345.                        },
  14346.                        onChange: function (e) {
  14347.                            return (this.onChangeCallback = e), this;
  14348.                        },
  14349.                        onChangeCallback: function () {},
  14350.                    }),
  14351.                    (n.Line3 = function (e, t) {
  14352.                        (this.start = void 0 !== e ? e : new n.Vector3()), (this.end = void 0 !== t ? t : new n.Vector3());
  14353.                    }),
  14354.                    (n.Line3.prototype = {
  14355.                        constructor: n.Line3,
  14356.                        set: function (e, t) {
  14357.                            return this.start.copy(e), this.end.copy(t), this;
  14358.                        },
  14359.                        clone: function () {
  14360.                            return new this.constructor().copy(this);
  14361.                        },
  14362.                        copy: function (e) {
  14363.                            return this.start.copy(e.start), this.end.copy(e.end), this;
  14364.                        },
  14365.                        center: function (e) {
  14366.                            var t = e || new n.Vector3();
  14367.                            return t.addVectors(this.start, this.end).multiplyScalar(0.5);
  14368.                        },
  14369.                        delta: function (e) {
  14370.                            var t = e || new n.Vector3();
  14371.                            return t.subVectors(this.end, this.start);
  14372.                        },
  14373.                        distanceSq: function () {
  14374.                            return this.start.distanceToSquared(this.end);
  14375.                        },
  14376.                        distance: function () {
  14377.                            return this.start.distanceTo(this.end);
  14378.                        },
  14379.                        at: function (e, t) {
  14380.                            var i = t || new n.Vector3();
  14381.                            return this.delta(i).multiplyScalar(e).add(this.start);
  14382.                        },
  14383.                        closestPointToPointParameter: (function () {
  14384.                            var e = new n.Vector3(),
  14385.                                t = new n.Vector3();
  14386.                            return function (i, r) {
  14387.                                e.subVectors(i, this.start), t.subVectors(this.end, this.start);
  14388.                                var o = t.dot(t),
  14389.                                    a = t.dot(e),
  14390.                                    s = a / o;
  14391.                                return r && (s = n.Math.clamp(s, 0, 1)), s;
  14392.                            };
  14393.                        })(),
  14394.                        closestPointToPoint: function (e, t, i) {
  14395.                            var r = this.closestPointToPointParameter(e, t),
  14396.                                o = i || new n.Vector3();
  14397.                            return this.delta(o).multiplyScalar(r).add(this.start);
  14398.                        },
  14399.                        applyMatrix4: function (e) {
  14400.                            return this.start.applyMatrix4(e), this.end.applyMatrix4(e), this;
  14401.                        },
  14402.                        equals: function (e) {
  14403.                            return e.start.equals(this.start) && e.end.equals(this.end);
  14404.                        },
  14405.                    }),
  14406.                    (n.Box2 = function (e, t) {
  14407.                        (this.min = void 0 !== e ? e : new n.Vector2(+(1 / 0), +(1 / 0))), (this.max = void 0 !== t ? t : new n.Vector2(-(1 / 0), -(1 / 0)));
  14408.                    }),
  14409.                    (n.Box2.prototype = {
  14410.                        constructor: n.Box2,
  14411.                        set: function (e, t) {
  14412.                            return this.min.copy(e), this.max.copy(t), this;
  14413.                        },
  14414.                        setFromPoints: function (e) {
  14415.                            this.makeEmpty();
  14416.                            for (var t = 0, i = e.length; i > t; t++) this.expandByPoint(e[t]);
  14417.                            return this;
  14418.                        },
  14419.                        setFromCenterAndSize: (function () {
  14420.                            var e = new n.Vector2();
  14421.                            return function (t, i) {
  14422.                                var n = e.copy(i).multiplyScalar(0.5);
  14423.                                return this.min.copy(t).sub(n), this.max.copy(t).add(n), this;
  14424.                            };
  14425.                        })(),
  14426.                        clone: function () {
  14427.                            return new this.constructor().copy(this);
  14428.                        },
  14429.                        copy: function (e) {
  14430.                            return this.min.copy(e.min), this.max.copy(e.max), this;
  14431.                        },
  14432.                        makeEmpty: function () {
  14433.                            return (this.min.x = this.min.y = +(1 / 0)), (this.max.x = this.max.y = -(1 / 0)), this;
  14434.                        },
  14435.                        isEmpty: function () {
  14436.                            return this.max.x < this.min.x || this.max.y < this.min.y;
  14437.                        },
  14438.                        center: function (e) {
  14439.                            var t = e || new n.Vector2();
  14440.                            return t.addVectors(this.min, this.max).multiplyScalar(0.5);
  14441.                        },
  14442.                        size: function (e) {
  14443.                            var t = e || new n.Vector2();
  14444.                            return t.subVectors(this.max, this.min);
  14445.                        },
  14446.                        expandByPoint: function (e) {
  14447.                            return this.min.min(e), this.max.max(e), this;
  14448.                        },
  14449.                        expandByVector: function (e) {
  14450.                            return this.min.sub(e), this.max.add(e), this;
  14451.                        },
  14452.                        expandByScalar: function (e) {
  14453.                            return this.min.addScalar(-e), this.max.addScalar(e), this;
  14454.                        },
  14455.                        containsPoint: function (e) {
  14456.                            return e.x < this.min.x || e.x > this.max.x || e.y < this.min.y || e.y > this.max.y ? !1 : !0;
  14457.                        },
  14458.                        containsBox: function (e) {
  14459.                            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 ? !0 : !1;
  14460.                        },
  14461.                        getParameter: function (e, t) {
  14462.                            var i = t || new n.Vector2();
  14463.                            return i.set((e.x - this.min.x) / (this.max.x - this.min.x), (e.y - this.min.y) / (this.max.y - this.min.y));
  14464.                        },
  14465.                        intersectsBox: function (e) {
  14466.                            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 ? !1 : !0;
  14467.                        },
  14468.                        clampPoint: function (e, t) {
  14469.                            var i = t || new n.Vector2();
  14470.                            return i.copy(e).clamp(this.min, this.max);
  14471.                        },
  14472.                        distanceToPoint: (function () {
  14473.                            var e = new n.Vector2();
  14474.                            return function (t) {
  14475.                                var i = e.copy(t).clamp(this.min, this.max);
  14476.                                return i.sub(t).length();
  14477.                            };
  14478.                        })(),
  14479.                        intersect: function (e) {
  14480.                            return this.min.max(e.min), this.max.min(e.max), this;
  14481.                        },
  14482.                        union: function (e) {
  14483.                            return this.min.min(e.min), this.max.max(e.max), this;
  14484.                        },
  14485.                        translate: function (e) {
  14486.                            return this.min.add(e), this.max.add(e), this;
  14487.                        },
  14488.                        equals: function (e) {
  14489.                            return e.min.equals(this.min) && e.max.equals(this.max);
  14490.                        },
  14491.                    }),
  14492.                    (n.Box3 = function (e, t) {
  14493.                        (this.min = void 0 !== e ? e : new n.Vector3(+(1 / 0), +(1 / 0), +(1 / 0))), (this.max = void 0 !== t ? t : new n.Vector3(-(1 / 0), -(1 / 0), -(1 / 0)));
  14494.                    }),
  14495.                    (n.Box3.prototype = {
  14496.                        constructor: n.Box3,
  14497.                        set: function (e, t) {
  14498.                            return this.min.copy(e), this.max.copy(t), this;
  14499.                        },
  14500.                        setFromArray: function (e) {
  14501.                            for (var t = +(1 / 0), i = +(1 / 0), n = +(1 / 0), r = -(1 / 0), o = -(1 / 0), a = -(1 / 0), s = 0, l = e.length; l > s; s += 3) {
  14502.                                var c = e[s],
  14503.                                    u = e[s + 1],
  14504.                                    h = e[s + 2];
  14505.                                t > c && (t = c), i > u && (i = u), n > h && (n = h), c > r && (r = c), u > o && (o = u), h > a && (a = h);
  14506.                            }
  14507.                            this.min.set(t, i, n), this.max.set(r, o, a);
  14508.                        },
  14509.                        setFromPoints: function (e) {
  14510.                            this.makeEmpty();
  14511.                            for (var t = 0, i = e.length; i > t; t++) this.expandByPoint(e[t]);
  14512.                            return this;
  14513.                        },
  14514.                        setFromCenterAndSize: (function () {
  14515.                            var e = new n.Vector3();
  14516.                            return function (t, i) {
  14517.                                var n = e.copy(i).multiplyScalar(0.5);
  14518.                                return this.min.copy(t).sub(n), this.max.copy(t).add(n), this;
  14519.                            };
  14520.                        })(),
  14521.                        setFromObject: (function () {
  14522.                            var e = new n.Vector3();
  14523.                            return function (t) {
  14524.                                var i = this;
  14525.                                return (
  14526.                                    t.updateMatrixWorld(!0),
  14527.                                    this.makeEmpty(),
  14528.                                    t.traverse(function (t) {
  14529.                                        var r = t.geometry;
  14530.                                        if (void 0 !== r)
  14531.                                            if (r instanceof n.Geometry)
  14532.                                                for (var o = r.vertices, a = 0, s = o.length; s > a; a++) e.copy(o[a]), e.applyMatrix4(t.matrixWorld), i.expandByPoint(e);
  14533.                                            else if (r instanceof n.BufferGeometry) {
  14534.                                            var l = r.attributes.position;
  14535.                                            if (void 0 !== l) {
  14536.                                                var c, u, h;
  14537.                                                l instanceof n.InterleavedBufferAttribute ? ((c = l.data.array), (u = l.offset), (h = l.data.stride)) : ((c = l.array), (u = 0), (h = 3));
  14538.                                                for (var a = u, s = c.length; s > a; a += h) e.fromArray(c, a), e.applyMatrix4(t.matrixWorld), i.expandByPoint(e);
  14539.                                            }
  14540.                                        }
  14541.                                    }),
  14542.                                    this
  14543.                                );
  14544.                            };
  14545.                        })(),
  14546.                        clone: function () {
  14547.                            return new this.constructor().copy(this);
  14548.                        },
  14549.                        copy: function (e) {
  14550.                            return this.min.copy(e.min), this.max.copy(e.max), this;
  14551.                        },
  14552.                        makeEmpty: function () {
  14553.                            return (this.min.x = this.min.y = this.min.z = +(1 / 0)), (this.max.x = this.max.y = this.max.z = -(1 / 0)), this;
  14554.                        },
  14555.                        isEmpty: function () {
  14556.                            return this.max.x < this.min.x || this.max.y < this.min.y || this.max.z < this.min.z;
  14557.                        },
  14558.                        center: function (e) {
  14559.                            var t = e || new n.Vector3();
  14560.                            return t.addVectors(this.min, this.max).multiplyScalar(0.5);
  14561.                        },
  14562.                        size: function (e) {
  14563.                            var t = e || new n.Vector3();
  14564.                            return t.subVectors(this.max, this.min);
  14565.                        },
  14566.                        expandByPoint: function (e) {
  14567.                            return this.min.min(e), this.max.max(e), this;
  14568.                        },
  14569.                        expandByVector: function (e) {
  14570.                            return this.min.sub(e), this.max.add(e), this;
  14571.                        },
  14572.                        expandByScalar: function (e) {
  14573.                            return this.min.addScalar(-e), this.max.addScalar(e), this;
  14574.                        },
  14575.                        containsPoint: function (e) {
  14576.                            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 ? !1 : !0;
  14577.                        },
  14578.                        containsBox: function (e) {
  14579.                            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 ? !0 : !1;
  14580.                        },
  14581.                        getParameter: function (e, t) {
  14582.                            var i = t || new n.Vector3();
  14583.                            return i.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));
  14584.                        },
  14585.                        intersectsBox: function (e) {
  14586.                            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 ? !1 : !0;
  14587.                        },
  14588.                        intersectsSphere: (function () {
  14589.                            var e;
  14590.                            return function (t) {
  14591.                                return void 0 === e && (e = new n.Vector3()), this.clampPoint(t.center, e), e.distanceToSquared(t.center) <= t.radius * t.radius;
  14592.                            };
  14593.                        })(),
  14594.                        intersectsPlane: function (e) {
  14595.                            var t, i;
  14596.                            return (
  14597.                                e.normal.x > 0 ? ((t = e.normal.x * this.min.x), (i = e.normal.x * this.max.x)) : ((t = e.normal.x * this.max.x), (i = e.normal.x * this.min.x)),
  14598.                                e.normal.y > 0 ? ((t += e.normal.y * this.min.y), (i += e.normal.y * this.max.y)) : ((t += e.normal.y * this.max.y), (i += e.normal.y * this.min.y)),
  14599.                                e.normal.z > 0 ? ((t += e.normal.z * this.min.z), (i += e.normal.z * this.max.z)) : ((t += e.normal.z * this.max.z), (i += e.normal.z * this.min.z)),
  14600.                                t <= e.constant && i >= e.constant
  14601.                            );
  14602.                        },
  14603.                        clampPoint: function (e, t) {
  14604.                            var i = t || new n.Vector3();
  14605.                            return i.copy(e).clamp(this.min, this.max);
  14606.                        },
  14607.                        distanceToPoint: (function () {
  14608.                            var e = new n.Vector3();
  14609.                            return function (t) {
  14610.                                var i = e.copy(t).clamp(this.min, this.max);
  14611.                                return i.sub(t).length();
  14612.                            };
  14613.                        })(),
  14614.                        getBoundingSphere: (function () {
  14615.                            var e = new n.Vector3();
  14616.                            return function (t) {
  14617.                                var i = t || new n.Sphere();
  14618.                                return (i.center = this.center()), (i.radius = 0.5 * this.size(e).length()), i;
  14619.                            };
  14620.                        })(),
  14621.                        intersect: function (e) {
  14622.                            return this.min.max(e.min), this.max.min(e.max), this.isEmpty() && this.makeEmpty(), this;
  14623.                        },
  14624.                        union: function (e) {
  14625.                            return this.min.min(e.min), this.max.max(e.max), this;
  14626.                        },
  14627.                        applyMatrix4: (function () {
  14628.                            var e = [new n.Vector3(), new n.Vector3(), new n.Vector3(), new n.Vector3(), new n.Vector3(), new n.Vector3(), new n.Vector3(), new n.Vector3()];
  14629.                            return function (t) {
  14630.                                return this.isEmpty() ?
  14631.                                    this :
  14632.                                    (e[0].set(this.min.x, this.min.y, this.min.z).applyMatrix4(t),
  14633.                                        e[1].set(this.min.x, this.min.y, this.max.z).applyMatrix4(t),
  14634.                                        e[2].set(this.min.x, this.max.y, this.min.z).applyMatrix4(t),
  14635.                                        e[3].set(this.min.x, this.max.y, this.max.z).applyMatrix4(t),
  14636.                                        e[4].set(this.max.x, this.min.y, this.min.z).applyMatrix4(t),
  14637.                                        e[5].set(this.max.x, this.min.y, this.max.z).applyMatrix4(t),
  14638.                                        e[6].set(this.max.x, this.max.y, this.min.z).applyMatrix4(t),
  14639.                                        e[7].set(this.max.x, this.max.y, this.max.z).applyMatrix4(t),
  14640.                                        this.setFromPoints(e),
  14641.                                        this);
  14642.                            };
  14643.                        })(),
  14644.                        translate: function (e) {
  14645.                            return this.min.add(e), this.max.add(e), this;
  14646.                        },
  14647.                        equals: function (e) {
  14648.                            return e.min.equals(this.min) && e.max.equals(this.max);
  14649.                        },
  14650.                    }),
  14651.                    (n.Matrix3 = function () {
  14652.                        (this.elements = new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1])), arguments.length > 0 && console.error("THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.");
  14653.                    }),
  14654.                    (n.Matrix3.prototype = {
  14655.                        constructor: n.Matrix3,
  14656.                        set: function (e, t, i, n, r, o, a, s, l) {
  14657.                            var c = this.elements;
  14658.                            return (c[0] = e), (c[1] = n), (c[2] = a), (c[3] = t), (c[4] = r), (c[5] = s), (c[6] = i), (c[7] = o), (c[8] = l), this;
  14659.                        },
  14660.                        identity: function () {
  14661.                            return this.set(1, 0, 0, 0, 1, 0, 0, 0, 1), this;
  14662.                        },
  14663.                        clone: function () {
  14664.                            return new this.constructor().fromArray(this.elements);
  14665.                        },
  14666.                        copy: function (e) {
  14667.                            var t = e.elements;
  14668.                            return this.set(t[0], t[3], t[6], t[1], t[4], t[7], t[2], t[5], t[8]), this;
  14669.                        },
  14670.                        setFromMatrix4: function (e) {
  14671.                            var t = e.elements;
  14672.                            return this.set(t[0], t[4], t[8], t[1], t[5], t[9], t[2], t[6], t[10]), this;
  14673.                        },
  14674.                        applyToVector3Array: (function () {
  14675.                            var e;
  14676.                            return function (t, i, r) {
  14677.                                void 0 === e && (e = new n.Vector3()), void 0 === i && (i = 0), void 0 === r && (r = t.length);
  14678.                                for (var o = 0, a = i; r > o; o += 3, a += 3) e.fromArray(t, a), e.applyMatrix3(this), e.toArray(t, a);
  14679.                                return t;
  14680.                            };
  14681.                        })(),
  14682.                        applyToBuffer: (function () {
  14683.                            var e;
  14684.                            return function (t, i, r) {
  14685.                                void 0 === e && (e = new n.Vector3()), void 0 === i && (i = 0), void 0 === r && (r = t.length / t.itemSize);
  14686.                                for (var o = 0, a = i; r > o; o++, a++)(e.x = t.getX(a)), (e.y = t.getY(a)), (e.z = t.getZ(a)), e.applyMatrix3(this), t.setXYZ(e.x, e.y, e.z);
  14687.                                return t;
  14688.                            };
  14689.                        })(),
  14690.                        multiplyScalar: function (e) {
  14691.                            var t = this.elements;
  14692.                            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;
  14693.                        },
  14694.                        determinant: function () {
  14695.                            var e = this.elements,
  14696.                                t = e[0],
  14697.                                i = e[1],
  14698.                                n = e[2],
  14699.                                r = e[3],
  14700.                                o = e[4],
  14701.                                a = e[5],
  14702.                                s = e[6],
  14703.                                l = e[7],
  14704.                                c = e[8];
  14705.                            return t * o * c - t * a * l - i * r * c + i * a * s + n * r * l - n * o * s;
  14706.                        },
  14707.                        getInverse: function (e, t) {
  14708.                            e instanceof n.Matrix4 && console.error("THREE.Matrix3.getInverse no longer takes a Matrix4 argument.");
  14709.                            var i = e.elements,
  14710.                                r = this.elements,
  14711.                                o = i[0],
  14712.                                a = i[1],
  14713.                                s = i[2],
  14714.                                l = i[3],
  14715.                                c = i[4],
  14716.                                u = i[5],
  14717.                                h = i[6],
  14718.                                d = i[7],
  14719.                                f = i[8],
  14720.                                p = f * c - u * d,
  14721.                                m = u * h - f * l,
  14722.                                v = d * l - c * h,
  14723.                                g = o * p + a * m + s * v;
  14724.                            if (0 === g) {
  14725.                                var y = "THREE.Matrix3.getInverse(): can't invert matrix, determinant is 0";
  14726.                                if (t) throw new Error(y);
  14727.                                return console.warn(y), this.identity();
  14728.                            }
  14729.                            var _ = 1 / g;
  14730.                            return (
  14731.                                (r[0] = p * _),
  14732.                                (r[1] = (s * d - f * a) * _),
  14733.                                (r[2] = (u * a - s * c) * _),
  14734.                                (r[3] = m * _),
  14735.                                (r[4] = (f * o - s * h) * _),
  14736.                                (r[5] = (s * l - u * o) * _),
  14737.                                (r[6] = v * _),
  14738.                                (r[7] = (a * h - d * o) * _),
  14739.                                (r[8] = (c * o - a * l) * _),
  14740.                                this
  14741.                            );
  14742.                        },
  14743.                        transpose: function () {
  14744.                            var e,
  14745.                                t = this.elements;
  14746.                            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;
  14747.                        },
  14748.                        flattenToArrayOffset: function (e, t) {
  14749.                            return console.warn("THREE.Matrix3: .flattenToArrayOffset is deprecated - just use .toArray instead."), this.toArray(e, t);
  14750.                        },
  14751.                        getNormalMatrix: function (e) {
  14752.                            return this.setFromMatrix4(e).getInverse(this).transpose();
  14753.                        },
  14754.                        transposeIntoArray: function (e) {
  14755.                            var t = this.elements;
  14756.                            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;
  14757.                        },
  14758.                        fromArray: function (e) {
  14759.                            return this.elements.set(e), this;
  14760.                        },
  14761.                        toArray: function (e, t) {
  14762.                            void 0 === e && (e = []), void 0 === t && (t = 0);
  14763.                            var i = this.elements;
  14764.                            return (e[t] = i[0]), (e[t + 1] = i[1]), (e[t + 2] = i[2]), (e[t + 3] = i[3]), (e[t + 4] = i[4]), (e[t + 5] = i[5]), (e[t + 6] = i[6]), (e[t + 7] = i[7]), (e[t + 8] = i[8]), e;
  14765.                        },
  14766.                    }),
  14767.                    (n.Matrix4 = function () {
  14768.                        (this.elements = new Float32Array([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1])), arguments.length > 0 && console.error("THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.");
  14769.                    }),
  14770.                    (n.Matrix4.prototype = {
  14771.                        constructor: n.Matrix4,
  14772.                        set: function (e, t, i, n, r, o, a, s, l, c, u, h, d, f, p, m) {
  14773.                            var v = this.elements;
  14774.                            return (v[0] = e), (v[4] = t), (v[8] = i), (v[12] = n), (v[1] = r), (v[5] = o), (v[9] = a), (v[13] = s), (v[2] = l), (v[6] = c), (v[10] = u), (v[14] = h), (v[3] = d), (v[7] = f), (v[11] = p), (v[15] = m), this;
  14775.                        },
  14776.                        identity: function () {
  14777.                            return this.set(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1), this;
  14778.                        },
  14779.                        clone: function () {
  14780.                            return new n.Matrix4().fromArray(this.elements);
  14781.                        },
  14782.                        copy: function (e) {
  14783.                            return this.elements.set(e.elements), this;
  14784.                        },
  14785.                        copyPosition: function (e) {
  14786.                            var t = this.elements,
  14787.                                i = e.elements;
  14788.                            return (t[12] = i[12]), (t[13] = i[13]), (t[14] = i[14]), this;
  14789.                        },
  14790.                        extractBasis: function (e, t, i) {
  14791.                            return e.setFromMatrixColumn(this, 0), t.setFromMatrixColumn(this, 1), i.setFromMatrixColumn(this, 2), this;
  14792.                        },
  14793.                        makeBasis: function (e, t, i) {
  14794.                            return this.set(e.x, t.x, i.x, 0, e.y, t.y, i.y, 0, e.z, t.z, i.z, 0, 0, 0, 0, 1), this;
  14795.                        },
  14796.                        extractRotation: (function () {
  14797.                            var e;
  14798.                            return function (t) {
  14799.                                void 0 === e && (e = new n.Vector3());
  14800.                                var i = this.elements,
  14801.                                    r = t.elements,
  14802.                                    o = 1 / e.setFromMatrixColumn(t, 0).length(),
  14803.                                    a = 1 / e.setFromMatrixColumn(t, 1).length(),
  14804.                                    s = 1 / e.setFromMatrixColumn(t, 2).length();
  14805.                                return (i[0] = r[0] * o), (i[1] = r[1] * o), (i[2] = r[2] * o), (i[4] = r[4] * a), (i[5] = r[5] * a), (i[6] = r[6] * a), (i[8] = r[8] * s), (i[9] = r[9] * s), (i[10] = r[10] * s), this;
  14806.                            };
  14807.                        })(),
  14808.                        makeRotationFromEuler: function (e) {
  14809.                            e instanceof n.Euler == !1 && console.error("THREE.Matrix: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");
  14810.                            var t = this.elements,
  14811.                                i = e.x,
  14812.                                r = e.y,
  14813.                                o = e.z,
  14814.                                a = Math.cos(i),
  14815.                                s = Math.sin(i),
  14816.                                l = Math.cos(r),
  14817.                                c = Math.sin(r),
  14818.                                u = Math.cos(o),
  14819.                                h = Math.sin(o);
  14820.                            if ("XYZ" === e.order) {
  14821.                                var d = a * u,
  14822.                                    f = a * h,
  14823.                                    p = s * u,
  14824.                                    m = s * h;
  14825.                                (t[0] = l * u), (t[4] = -l * h), (t[8] = c), (t[1] = f + p * c), (t[5] = d - m * c), (t[9] = -s * l), (t[2] = m - d * c), (t[6] = p + f * c), (t[10] = a * l);
  14826.                            } else if ("YXZ" === e.order) {
  14827.                                var v = l * u,
  14828.                                    g = l * h,
  14829.                                    y = c * u,
  14830.                                    _ = c * h;
  14831.                                (t[0] = v + _ * s), (t[4] = y * s - g), (t[8] = a * c), (t[1] = a * h), (t[5] = a * u), (t[9] = -s), (t[2] = g * s - y), (t[6] = _ + v * s), (t[10] = a * l);
  14832.                            } else if ("ZXY" === e.order) {
  14833.                                var v = l * u,
  14834.                                    g = l * h,
  14835.                                    y = c * u,
  14836.                                    _ = c * h;
  14837.                                (t[0] = v - _ * s), (t[4] = -a * h), (t[8] = y + g * s), (t[1] = g + y * s), (t[5] = a * u), (t[9] = _ - v * s), (t[2] = -a * c), (t[6] = s), (t[10] = a * l);
  14838.                            } else if ("ZYX" === e.order) {
  14839.                                var d = a * u,
  14840.                                    f = a * h,
  14841.                                    p = s * u,
  14842.                                    m = s * h;
  14843.                                (t[0] = l * u), (t[4] = p * c - f), (t[8] = d * c + m), (t[1] = l * h), (t[5] = m * c + d), (t[9] = f * c - p), (t[2] = -c), (t[6] = s * l), (t[10] = a * l);
  14844.                            } else if ("YZX" === e.order) {
  14845.                                var b = a * l,
  14846.                                    x = a * c,
  14847.                                    w = s * l,
  14848.                                    M = s * c;
  14849.                                (t[0] = l * u), (t[4] = M - b * h), (t[8] = w * h + x), (t[1] = h), (t[5] = a * u), (t[9] = -s * u), (t[2] = -c * u), (t[6] = x * h + w), (t[10] = b - M * h);
  14850.                            } else if ("XZY" === e.order) {
  14851.                                var b = a * l,
  14852.                                    x = a * c,
  14853.                                    w = s * l,
  14854.                                    M = s * c;
  14855.                                (t[0] = l * u), (t[4] = -h), (t[8] = c * u), (t[1] = b * h + M), (t[5] = a * u), (t[9] = x * h - w), (t[2] = w * h - x), (t[6] = s * u), (t[10] = M * h + b);
  14856.                            }
  14857.                            return (t[3] = 0), (t[7] = 0), (t[11] = 0), (t[12] = 0), (t[13] = 0), (t[14] = 0), (t[15] = 1), this;
  14858.                        },
  14859.                        makeRotationFromQuaternion: function (e) {
  14860.                            var t = this.elements,
  14861.                                i = e.x,
  14862.                                n = e.y,
  14863.                                r = e.z,
  14864.                                o = e.w,
  14865.                                a = i + i,
  14866.                                s = n + n,
  14867.                                l = r + r,
  14868.                                c = i * a,
  14869.                                u = i * s,
  14870.                                h = i * l,
  14871.                                d = n * s,
  14872.                                f = n * l,
  14873.                                p = r * l,
  14874.                                m = o * a,
  14875.                                v = o * s,
  14876.                                g = o * l;
  14877.                            return (
  14878.                                (t[0] = 1 - (d + p)),
  14879.                                (t[4] = u - g),
  14880.                                (t[8] = h + v),
  14881.                                (t[1] = u + g),
  14882.                                (t[5] = 1 - (c + p)),
  14883.                                (t[9] = f - m),
  14884.                                (t[2] = h - v),
  14885.                                (t[6] = f + m),
  14886.                                (t[10] = 1 - (c + d)),
  14887.                                (t[3] = 0),
  14888.                                (t[7] = 0),
  14889.                                (t[11] = 0),
  14890.                                (t[12] = 0),
  14891.                                (t[13] = 0),
  14892.                                (t[14] = 0),
  14893.                                (t[15] = 1),
  14894.                                this
  14895.                            );
  14896.                        },
  14897.                        lookAt: (function () {
  14898.                            var e, t, i;
  14899.                            return function (r, o, a) {
  14900.                                void 0 === e && ((e = new n.Vector3()), (t = new n.Vector3()), (i = new n.Vector3()));
  14901.                                var s = this.elements;
  14902.                                return (
  14903.                                    i.subVectors(r, o).normalize(),
  14904.                                    0 === i.lengthSq() && (i.z = 1),
  14905.                                    e.crossVectors(a, i).normalize(),
  14906.                                    0 === e.lengthSq() && ((i.z += 1e-4), e.crossVectors(a, i).normalize()),
  14907.                                    t.crossVectors(i, e),
  14908.                                    (s[0] = e.x),
  14909.                                    (s[4] = t.x),
  14910.                                    (s[8] = i.x),
  14911.                                    (s[1] = e.y),
  14912.                                    (s[5] = t.y),
  14913.                                    (s[9] = i.y),
  14914.                                    (s[2] = e.z),
  14915.                                    (s[6] = t.z),
  14916.                                    (s[10] = i.z),
  14917.                                    this
  14918.                                );
  14919.                            };
  14920.                        })(),
  14921.                        multiply: function (e, t) {
  14922.                            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);
  14923.                        },
  14924.                        premultiply: function (e) {
  14925.                            return this.multiplyMatrices(e, this);
  14926.                        },
  14927.                        multiplyMatrices: function (e, t) {
  14928.                            var i = e.elements,
  14929.                                n = t.elements,
  14930.                                r = this.elements,
  14931.                                o = i[0],
  14932.                                a = i[4],
  14933.                                s = i[8],
  14934.                                l = i[12],
  14935.                                c = i[1],
  14936.                                u = i[5],
  14937.                                h = i[9],
  14938.                                d = i[13],
  14939.                                f = i[2],
  14940.                                p = i[6],
  14941.                                m = i[10],
  14942.                                v = i[14],
  14943.                                g = i[3],
  14944.                                y = i[7],
  14945.                                _ = i[11],
  14946.                                b = i[15],
  14947.                                x = n[0],
  14948.                                w = n[4],
  14949.                                M = n[8],
  14950.                                T = n[12],
  14951.                                S = n[1],
  14952.                                E = n[5],
  14953.                                A = n[9],
  14954.                                C = n[13],
  14955.                                P = n[2],
  14956.                                L = n[6],
  14957.                                R = n[10],
  14958.                                O = n[14],
  14959.                                k = n[3],
  14960.                                D = n[7],
  14961.                                I = n[11],
  14962.                                N = n[15];
  14963.                            return (
  14964.                                (r[0] = o * x + a * S + s * P + l * k),
  14965.                                (r[4] = o * w + a * E + s * L + l * D),
  14966.                                (r[8] = o * M + a * A + s * R + l * I),
  14967.                                (r[12] = o * T + a * C + s * O + l * N),
  14968.                                (r[1] = c * x + u * S + h * P + d * k),
  14969.                                (r[5] = c * w + u * E + h * L + d * D),
  14970.                                (r[9] = c * M + u * A + h * R + d * I),
  14971.                                (r[13] = c * T + u * C + h * O + d * N),
  14972.                                (r[2] = f * x + p * S + m * P + v * k),
  14973.                                (r[6] = f * w + p * E + m * L + v * D),
  14974.                                (r[10] = f * M + p * A + m * R + v * I),
  14975.                                (r[14] = f * T + p * C + m * O + v * N),
  14976.                                (r[3] = g * x + y * S + _ * P + b * k),
  14977.                                (r[7] = g * w + y * E + _ * L + b * D),
  14978.                                (r[11] = g * M + y * A + _ * R + b * I),
  14979.                                (r[15] = g * T + y * C + _ * O + b * N),
  14980.                                this
  14981.                            );
  14982.                        },
  14983.                        multiplyToArray: function (e, t, i) {
  14984.                            var n = this.elements;
  14985.                            return (
  14986.                                this.multiplyMatrices(e, t),
  14987.                                (i[0] = n[0]),
  14988.                                (i[1] = n[1]),
  14989.                                (i[2] = n[2]),
  14990.                                (i[3] = n[3]),
  14991.                                (i[4] = n[4]),
  14992.                                (i[5] = n[5]),
  14993.                                (i[6] = n[6]),
  14994.                                (i[7] = n[7]),
  14995.                                (i[8] = n[8]),
  14996.                                (i[9] = n[9]),
  14997.                                (i[10] = n[10]),
  14998.                                (i[11] = n[11]),
  14999.                                (i[12] = n[12]),
  15000.                                (i[13] = n[13]),
  15001.                                (i[14] = n[14]),
  15002.                                (i[15] = n[15]),
  15003.                                this
  15004.                            );
  15005.                        },
  15006.                        multiplyScalar: function (e) {
  15007.                            var t = this.elements;
  15008.                            return (
  15009.                                (t[0] *= e),
  15010.                                (t[4] *= e),
  15011.                                (t[8] *= e),
  15012.                                (t[12] *= e),
  15013.                                (t[1] *= e),
  15014.                                (t[5] *= e),
  15015.                                (t[9] *= e),
  15016.                                (t[13] *= e),
  15017.                                (t[2] *= e),
  15018.                                (t[6] *= e),
  15019.                                (t[10] *= e),
  15020.                                (t[14] *= e),
  15021.                                (t[3] *= e),
  15022.                                (t[7] *= e),
  15023.                                (t[11] *= e),
  15024.                                (t[15] *= e),
  15025.                                this
  15026.                            );
  15027.                        },
  15028.                        applyToVector3Array: (function () {
  15029.                            var e;
  15030.                            return function (t, i, r) {
  15031.                                void 0 === e && (e = new n.Vector3()), void 0 === i && (i = 0), void 0 === r && (r = t.length);
  15032.                                for (var o = 0, a = i; r > o; o += 3, a += 3) e.fromArray(t, a), e.applyMatrix4(this), e.toArray(t, a);
  15033.                                return t;
  15034.                            };
  15035.                        })(),
  15036.                        applyToBuffer: (function () {
  15037.                            var e;
  15038.                            return function (t, i, r) {
  15039.                                void 0 === e && (e = new n.Vector3()), void 0 === i && (i = 0), void 0 === r && (r = t.length / t.itemSize);
  15040.                                for (var o = 0, a = i; r > o; o++, a++)(e.x = t.getX(a)), (e.y = t.getY(a)), (e.z = t.getZ(a)), e.applyMatrix4(this), t.setXYZ(e.x, e.y, e.z);
  15041.                                return t;
  15042.                            };
  15043.                        })(),
  15044.                        determinant: function () {
  15045.                            var e = this.elements,
  15046.                                t = e[0],
  15047.                                i = e[4],
  15048.                                n = e[8],
  15049.                                r = e[12],
  15050.                                o = e[1],
  15051.                                a = e[5],
  15052.                                s = e[9],
  15053.                                l = e[13],
  15054.                                c = e[2],
  15055.                                u = e[6],
  15056.                                h = e[10],
  15057.                                d = e[14],
  15058.                                f = e[3],
  15059.                                p = e[7],
  15060.                                m = e[11],
  15061.                                v = e[15];
  15062.                            return (
  15063.                                f * (+r * s * u - n * l * u - r * a * h + i * l * h + n * a * d - i * s * d) +
  15064.                                p * (+t * s * d - t * l * h + r * o * h - n * o * d + n * l * c - r * s * c) +
  15065.                                m * (+t * l * u - t * a * d - r * o * u + i * o * d + r * a * c - i * l * c) +
  15066.                                v * (-n * a * c - t * s * u + t * a * h + n * o * u - i * o * h + i * s * c)
  15067.                            );
  15068.                        },
  15069.                        transpose: function () {
  15070.                            var e,
  15071.                                t = this.elements;
  15072.                            return (
  15073.                                (e = t[1]),
  15074.                                (t[1] = t[4]),
  15075.                                (t[4] = e),
  15076.                                (e = t[2]),
  15077.                                (t[2] = t[8]),
  15078.                                (t[8] = e),
  15079.                                (e = t[6]),
  15080.                                (t[6] = t[9]),
  15081.                                (t[9] = e),
  15082.                                (e = t[3]),
  15083.                                (t[3] = t[12]),
  15084.                                (t[12] = e),
  15085.                                (e = t[7]),
  15086.                                (t[7] = t[13]),
  15087.                                (t[13] = e),
  15088.                                (e = t[11]),
  15089.                                (t[11] = t[14]),
  15090.                                (t[14] = e),
  15091.                                this
  15092.                            );
  15093.                        },
  15094.                        flattenToArrayOffset: function (e, t) {
  15095.                            return console.warn("THREE.Matrix3: .flattenToArrayOffset is deprecated - just use .toArray instead."), this.toArray(e, t);
  15096.                        },
  15097.                        getPosition: (function () {
  15098.                            var e;
  15099.                            return function () {
  15100.                                return void 0 === e && (e = new n.Vector3()), console.warn("THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead."), e.setFromMatrixColumn(this, 3);
  15101.                            };
  15102.                        })(),
  15103.                        setPosition: function (e) {
  15104.                            var t = this.elements;
  15105.                            return (t[12] = e.x), (t[13] = e.y), (t[14] = e.z), this;
  15106.                        },
  15107.                        getInverse: function (e, t) {
  15108.                            var i = this.elements,
  15109.                                n = e.elements,
  15110.                                r = n[0],
  15111.                                o = n[1],
  15112.                                a = n[2],
  15113.                                s = n[3],
  15114.                                l = n[4],
  15115.                                c = n[5],
  15116.                                u = n[6],
  15117.                                h = n[7],
  15118.                                d = n[8],
  15119.                                f = n[9],
  15120.                                p = n[10],
  15121.                                m = n[11],
  15122.                                v = n[12],
  15123.                                g = n[13],
  15124.                                y = n[14],
  15125.                                _ = n[15],
  15126.                                b = f * y * h - g * p * h + g * u * m - c * y * m - f * u * _ + c * p * _,
  15127.                                x = v * p * h - d * y * h - v * u * m + l * y * m + d * u * _ - l * p * _,
  15128.                                w = d * g * h - v * f * h + v * c * m - l * g * m - d * c * _ + l * f * _,
  15129.                                M = v * f * u - d * g * u - v * c * p + l * g * p + d * c * y - l * f * y,
  15130.                                T = r * b + o * x + a * w + s * M;
  15131.                            if (0 === T) {
  15132.                                var S = "THREE.Matrix4.getInverse(): can't invert matrix, determinant is 0";
  15133.                                if (t) throw new Error(S);
  15134.                                return console.warn(S), this.identity();
  15135.                            }
  15136.                            var E = 1 / T;
  15137.                            return (
  15138.                                (i[0] = b * E),
  15139.                                (i[1] = (g * p * s - f * y * s - g * a * m + o * y * m + f * a * _ - o * p * _) * E),
  15140.                                (i[2] = (c * y * s - g * u * s + g * a * h - o * y * h - c * a * _ + o * u * _) * E),
  15141.                                (i[3] = (f * u * s - c * p * s - f * a * h + o * p * h + c * a * m - o * u * m) * E),
  15142.                                (i[4] = x * E),
  15143.                                (i[5] = (d * y * s - v * p * s + v * a * m - r * y * m - d * a * _ + r * p * _) * E),
  15144.                                (i[6] = (v * u * s - l * y * s - v * a * h + r * y * h + l * a * _ - r * u * _) * E),
  15145.                                (i[7] = (l * p * s - d * u * s + d * a * h - r * p * h - l * a * m + r * u * m) * E),
  15146.                                (i[8] = w * E),
  15147.                                (i[9] = (v * f * s - d * g * s - v * o * m + r * g * m + d * o * _ - r * f * _) * E),
  15148.                                (i[10] = (l * g * s - v * c * s + v * o * h - r * g * h - l * o * _ + r * c * _) * E),
  15149.                                (i[11] = (d * c * s - l * f * s - d * o * h + r * f * h + l * o * m - r * c * m) * E),
  15150.                                (i[12] = M * E),
  15151.                                (i[13] = (d * g * a - v * f * a + v * o * p - r * g * p - d * o * y + r * f * y) * E),
  15152.                                (i[14] = (v * c * a - l * g * a - v * o * u + r * g * u + l * o * y - r * c * y) * E),
  15153.                                (i[15] = (l * f * a - d * c * a + d * o * u - r * f * u - l * o * p + r * c * p) * E),
  15154.                                this
  15155.                            );
  15156.                        },
  15157.                        scale: function (e) {
  15158.                            var t = this.elements,
  15159.                                i = e.x,
  15160.                                n = e.y,
  15161.                                r = e.z;
  15162.                            return (t[0] *= i), (t[4] *= n), (t[8] *= r), (t[1] *= i), (t[5] *= n), (t[9] *= r), (t[2] *= i), (t[6] *= n), (t[10] *= r), (t[3] *= i), (t[7] *= n), (t[11] *= r), this;
  15163.                        },
  15164.                        getMaxScaleOnAxis: function () {
  15165.                            var e = this.elements,
  15166.                                t = e[0] * e[0] + e[1] * e[1] + e[2] * e[2],
  15167.                                i = e[4] * e[4] + e[5] * e[5] + e[6] * e[6],
  15168.                                n = e[8] * e[8] + e[9] * e[9] + e[10] * e[10];
  15169.                            return Math.sqrt(Math.max(t, i, n));
  15170.                        },
  15171.                        makeTranslation: function (e, t, i) {
  15172.                            return this.set(1, 0, 0, e, 0, 1, 0, t, 0, 0, 1, i, 0, 0, 0, 1), this;
  15173.                        },
  15174.                        makeRotationX: function (e) {
  15175.                            var t = Math.cos(e),
  15176.                                i = Math.sin(e);
  15177.                            return this.set(1, 0, 0, 0, 0, t, -i, 0, 0, i, t, 0, 0, 0, 0, 1), this;
  15178.                        },
  15179.                        makeRotationY: function (e) {
  15180.                            var t = Math.cos(e),
  15181.                                i = Math.sin(e);
  15182.                            return this.set(t, 0, i, 0, 0, 1, 0, 0, -i, 0, t, 0, 0, 0, 0, 1), this;
  15183.                        },
  15184.                        makeRotationZ: function (e) {
  15185.                            var t = Math.cos(e),
  15186.                                i = Math.sin(e);
  15187.                            return this.set(t, -i, 0, 0, i, t, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1), this;
  15188.                        },
  15189.                        makeRotationAxis: function (e, t) {
  15190.                            var i = Math.cos(t),
  15191.                                n = Math.sin(t),
  15192.                                r = 1 - i,
  15193.                                o = e.x,
  15194.                                a = e.y,
  15195.                                s = e.z,
  15196.                                l = r * o,
  15197.                                c = r * a;
  15198.                            return this.set(l * o + i, l * a - n * s, l * s + n * a, 0, l * a + n * s, c * a + i, c * s - n * o, 0, l * s - n * a, c * s + n * o, r * s * s + i, 0, 0, 0, 0, 1), this;
  15199.                        },
  15200.                        makeScale: function (e, t, i) {
  15201.                            return this.set(e, 0, 0, 0, 0, t, 0, 0, 0, 0, i, 0, 0, 0, 0, 1), this;
  15202.                        },
  15203.                        compose: function (e, t, i) {
  15204.                            return this.makeRotationFromQuaternion(t), this.scale(i), this.setPosition(e), this;
  15205.                        },
  15206.                        decompose: (function () {
  15207.                            var e, t;
  15208.                            return function (i, r, o) {
  15209.                                void 0 === e && ((e = new n.Vector3()), (t = new n.Matrix4()));
  15210.                                var a = this.elements,
  15211.                                    s = e.set(a[0], a[1], a[2]).length(),
  15212.                                    l = e.set(a[4], a[5], a[6]).length(),
  15213.                                    c = e.set(a[8], a[9], a[10]).length(),
  15214.                                    u = this.determinant();
  15215.                                0 > u && (s = -s), (i.x = a[12]), (i.y = a[13]), (i.z = a[14]), t.elements.set(this.elements);
  15216.                                var h = 1 / s,
  15217.                                    d = 1 / l,
  15218.                                    f = 1 / c;
  15219.                                return (
  15220.                                    (t.elements[0] *= h),
  15221.                                    (t.elements[1] *= h),
  15222.                                    (t.elements[2] *= h),
  15223.                                    (t.elements[4] *= d),
  15224.                                    (t.elements[5] *= d),
  15225.                                    (t.elements[6] *= d),
  15226.                                    (t.elements[8] *= f),
  15227.                                    (t.elements[9] *= f),
  15228.                                    (t.elements[10] *= f),
  15229.                                    r.setFromRotationMatrix(t),
  15230.                                    (o.x = s),
  15231.                                    (o.y = l),
  15232.                                    (o.z = c),
  15233.                                    this
  15234.                                );
  15235.                            };
  15236.                        })(),
  15237.                        makeFrustum: function (e, t, i, n, r, o) {
  15238.                            var a = this.elements,
  15239.                                s = (2 * r) / (t - e),
  15240.                                l = (2 * r) / (n - i),
  15241.                                c = (t + e) / (t - e),
  15242.                                u = (n + i) / (n - i),
  15243.                                h = -(o + r) / (o - r),
  15244.                                d = (-2 * o * r) / (o - r);
  15245.                            return (a[0] = s), (a[4] = 0), (a[8] = c), (a[12] = 0), (a[1] = 0), (a[5] = l), (a[9] = u), (a[13] = 0), (a[2] = 0), (a[6] = 0), (a[10] = h), (a[14] = d), (a[3] = 0), (a[7] = 0), (a[11] = -1), (a[15] = 0), this;
  15246.                        },
  15247.                        makePerspective: function (e, t, i, r) {
  15248.                            var o = i * Math.tan(n.Math.DEG2RAD * e * 0.5),
  15249.                                a = -o,
  15250.                                s = a * t,
  15251.                                l = o * t;
  15252.                            return this.makeFrustum(s, l, a, o, i, r);
  15253.                        },
  15254.                        makeOrthographic: function (e, t, i, n, r, o) {
  15255.                            var a = this.elements,
  15256.                                s = 1 / (t - e),
  15257.                                l = 1 / (i - n),
  15258.                                c = 1 / (o - r),
  15259.                                u = (t + e) * s,
  15260.                                h = (i + n) * l,
  15261.                                d = (o + r) * c;
  15262.                            return (
  15263.                                (a[0] = 2 * s),
  15264.                                (a[4] = 0),
  15265.                                (a[8] = 0),
  15266.                                (a[12] = -u),
  15267.                                (a[1] = 0),
  15268.                                (a[5] = 2 * l),
  15269.                                (a[9] = 0),
  15270.                                (a[13] = -h),
  15271.                                (a[2] = 0),
  15272.                                (a[6] = 0),
  15273.                                (a[10] = -2 * c),
  15274.                                (a[14] = -d),
  15275.                                (a[3] = 0),
  15276.                                (a[7] = 0),
  15277.                                (a[11] = 0),
  15278.                                (a[15] = 1),
  15279.                                this
  15280.                            );
  15281.                        },
  15282.                        equals: function (e) {
  15283.                            for (var t = this.elements, i = e.elements, n = 0; 16 > n; n++)
  15284.                                if (t[n] !== i[n]) return !1;
  15285.                            return !0;
  15286.                        },
  15287.                        fromArray: function (e) {
  15288.                            return this.elements.set(e), this;
  15289.                        },
  15290.                        toArray: function (e, t) {
  15291.                            void 0 === e && (e = []), void 0 === t && (t = 0);
  15292.                            var i = this.elements;
  15293.                            return (
  15294.                                (e[t] = i[0]),
  15295.                                (e[t + 1] = i[1]),
  15296.                                (e[t + 2] = i[2]),
  15297.                                (e[t + 3] = i[3]),
  15298.                                (e[t + 4] = i[4]),
  15299.                                (e[t + 5] = i[5]),
  15300.                                (e[t + 6] = i[6]),
  15301.                                (e[t + 7] = i[7]),
  15302.                                (e[t + 8] = i[8]),
  15303.                                (e[t + 9] = i[9]),
  15304.                                (e[t + 10] = i[10]),
  15305.                                (e[t + 11] = i[11]),
  15306.                                (e[t + 12] = i[12]),
  15307.                                (e[t + 13] = i[13]),
  15308.                                (e[t + 14] = i[14]),
  15309.                                (e[t + 15] = i[15]),
  15310.                                e
  15311.                            );
  15312.                        },
  15313.                    }),
  15314.                    (n.Ray = function (e, t) {
  15315.                        (this.origin = void 0 !== e ? e : new n.Vector3()), (this.direction = void 0 !== t ? t : new n.Vector3());
  15316.                    }),
  15317.                    (n.Ray.prototype = {
  15318.                        constructor: n.Ray,
  15319.                        set: function (e, t) {
  15320.                            return this.origin.copy(e), this.direction.copy(t), this;
  15321.                        },
  15322.                        clone: function () {
  15323.                            return new this.constructor().copy(this);
  15324.                        },
  15325.                        copy: function (e) {
  15326.                            return this.origin.copy(e.origin), this.direction.copy(e.direction), this;
  15327.                        },
  15328.                        at: function (e, t) {
  15329.                            var i = t || new n.Vector3();
  15330.                            return i.copy(this.direction).multiplyScalar(e).add(this.origin);
  15331.                        },
  15332.                        lookAt: function (e) {
  15333.                            return this.direction.copy(e).sub(this.origin).normalize(), this;
  15334.                        },
  15335.                        recast: (function () {
  15336.                            var e = new n.Vector3();
  15337.                            return function (t) {
  15338.                                return this.origin.copy(this.at(t, e)), this;
  15339.                            };
  15340.                        })(),
  15341.                        closestPointToPoint: function (e, t) {
  15342.                            var i = t || new n.Vector3();
  15343.                            i.subVectors(e, this.origin);
  15344.                            var r = i.dot(this.direction);
  15345.                            return 0 > r ? i.copy(this.origin) : i.copy(this.direction).multiplyScalar(r).add(this.origin);
  15346.                        },
  15347.                        distanceToPoint: function (e) {
  15348.                            return Math.sqrt(this.distanceSqToPoint(e));
  15349.                        },
  15350.                        distanceSqToPoint: (function () {
  15351.                            var e = new n.Vector3();
  15352.                            return function (t) {
  15353.                                var i = e.subVectors(t, this.origin).dot(this.direction);
  15354.                                return 0 > i ? this.origin.distanceToSquared(t) : (e.copy(this.direction).multiplyScalar(i).add(this.origin), e.distanceToSquared(t));
  15355.                            };
  15356.                        })(),
  15357.                        distanceSqToSegment: (function () {
  15358.                            var e = new n.Vector3(),
  15359.                                t = new n.Vector3(),
  15360.                                i = new n.Vector3();
  15361.                            return function (n, r, o, a) {
  15362.                                e.copy(n).add(r).multiplyScalar(0.5), t.copy(r).sub(n).normalize(), i.copy(this.origin).sub(e);
  15363.                                var s,
  15364.                                    l,
  15365.                                    c,
  15366.                                    u,
  15367.                                    h = 0.5 * n.distanceTo(r),
  15368.                                    d = -this.direction.dot(t),
  15369.                                    f = i.dot(this.direction),
  15370.                                    p = -i.dot(t),
  15371.                                    m = i.lengthSq(),
  15372.                                    v = Math.abs(1 - d * d);
  15373.                                if (v > 0)
  15374.                                    if (((s = d * p - f), (l = d * f - p), (u = h * v), s >= 0))
  15375.                                        if (l >= -u)
  15376.                                            if (u >= l) {
  15377.                                                var g = 1 / v;
  15378.                                                (s *= g), (l *= g), (c = s * (s + d * l + 2 * f) + l * (d * s + l + 2 * p) + m);
  15379.                                            } else(l = h), (s = Math.max(0, -(d * l + f))), (c = -s * s + l * (l + 2 * p) + m);
  15380.                                else(l = -h), (s = Math.max(0, -(d * l + f))), (c = -s * s + l * (l + 2 * p) + m);
  15381.                                else
  15382.                                    -u >= l ?
  15383.                                    ((s = Math.max(0, -(-d * h + f))), (l = s > 0 ? -h : Math.min(Math.max(-h, -p), h)), (c = -s * s + l * (l + 2 * p) + m)) :
  15384.                                    u >= l ?
  15385.                                    ((s = 0), (l = Math.min(Math.max(-h, -p), h)), (c = l * (l + 2 * p) + m)) :
  15386.                                    ((s = Math.max(0, -(d * h + f))), (l = s > 0 ? h : Math.min(Math.max(-h, -p), h)), (c = -s * s + l * (l + 2 * p) + m));
  15387.                                else(l = d > 0 ? -h : h), (s = Math.max(0, -(d * l + f))), (c = -s * s + l * (l + 2 * p) + m);
  15388.                                return o && o.copy(this.direction).multiplyScalar(s).add(this.origin), a && a.copy(t).multiplyScalar(l).add(e), c;
  15389.                            };
  15390.                        })(),
  15391.                        intersectSphere: (function () {
  15392.                            var e = new n.Vector3();
  15393.                            return function (t, i) {
  15394.                                e.subVectors(t.center, this.origin);
  15395.                                var n = e.dot(this.direction),
  15396.                                    r = e.dot(e) - n * n,
  15397.                                    o = t.radius * t.radius;
  15398.                                if (r > o) return null;
  15399.                                var a = Math.sqrt(o - r),
  15400.                                    s = n - a,
  15401.                                    l = n + a;
  15402.                                return 0 > s && 0 > l ? null : 0 > s ? this.at(l, i) : this.at(s, i);
  15403.                            };
  15404.                        })(),
  15405.                        intersectsSphere: function (e) {
  15406.                            return this.distanceToPoint(e.center) <= e.radius;
  15407.                        },
  15408.                        distanceToPlane: function (e) {
  15409.                            var t = e.normal.dot(this.direction);
  15410.                            if (0 === t) return 0 === e.distanceToPoint(this.origin) ? 0 : null;
  15411.                            var i = -(this.origin.dot(e.normal) + e.constant) / t;
  15412.                            return i >= 0 ? i : null;
  15413.                        },
  15414.                        intersectPlane: function (e, t) {
  15415.                            var i = this.distanceToPlane(e);
  15416.                            return null === i ? null : this.at(i, t);
  15417.                        },
  15418.                        intersectsPlane: function (e) {
  15419.                            var t = e.distanceToPoint(this.origin);
  15420.                            if (0 === t) return !0;
  15421.                            var i = e.normal.dot(this.direction);
  15422.                            return 0 > i * t ? !0 : !1;
  15423.                        },
  15424.                        intersectBox: function (e, t) {
  15425.                            var i,
  15426.                                n,
  15427.                                r,
  15428.                                o,
  15429.                                a,
  15430.                                s,
  15431.                                l = 1 / this.direction.x,
  15432.                                c = 1 / this.direction.y,
  15433.                                u = 1 / this.direction.z,
  15434.                                h = this.origin;
  15435.                            return (
  15436.                                l >= 0 ? ((i = (e.min.x - h.x) * l), (n = (e.max.x - h.x) * l)) : ((i = (e.max.x - h.x) * l), (n = (e.min.x - h.x) * l)),
  15437.                                c >= 0 ? ((r = (e.min.y - h.y) * c), (o = (e.max.y - h.y) * c)) : ((r = (e.max.y - h.y) * c), (o = (e.min.y - h.y) * c)),
  15438.                                i > o || r > n ?
  15439.                                null :
  15440.                                ((r > i || i !== i) && (i = r),
  15441.                                    (n > o || n !== n) && (n = o),
  15442.                                    u >= 0 ? ((a = (e.min.z - h.z) * u), (s = (e.max.z - h.z) * u)) : ((a = (e.max.z - h.z) * u), (s = (e.min.z - h.z) * u)),
  15443.                                    i > s || a > n ? null : ((a > i || i !== i) && (i = a), (n > s || n !== n) && (n = s), 0 > n ? null : this.at(i >= 0 ? i : n, t)))
  15444.                            );
  15445.                        },
  15446.                        intersectsBox: (function () {
  15447.                            var e = new n.Vector3();
  15448.                            return function (t) {
  15449.                                return null !== this.intersectBox(t, e);
  15450.                            };
  15451.                        })(),
  15452.                        intersectTriangle: (function () {
  15453.                            var e = new n.Vector3(),
  15454.                                t = new n.Vector3(),
  15455.                                i = new n.Vector3(),
  15456.                                r = new n.Vector3();
  15457.                            return function (n, o, a, s, l) {
  15458.                                t.subVectors(o, n), i.subVectors(a, n), r.crossVectors(t, i);
  15459.                                var c,
  15460.                                    u = this.direction.dot(r);
  15461.                                if (u > 0) {
  15462.                                    if (s) return null;
  15463.                                    c = 1;
  15464.                                } else {
  15465.                                    if (!(0 > u)) return null;
  15466.                                    (c = -1), (u = -u);
  15467.                                }
  15468.                                e.subVectors(this.origin, n);
  15469.                                var h = c * this.direction.dot(i.crossVectors(e, i));
  15470.                                if (0 > h) return null;
  15471.                                var d = c * this.direction.dot(t.cross(e));
  15472.                                if (0 > d) return null;
  15473.                                if (h + d > u) return null;
  15474.                                var f = -c * e.dot(r);
  15475.                                return 0 > f ? null : this.at(f / u, l);
  15476.                            };
  15477.                        })(),
  15478.                        applyMatrix4: function (e) {
  15479.                            return this.direction.add(this.origin).applyMatrix4(e), this.origin.applyMatrix4(e), this.direction.sub(this.origin), this.direction.normalize(), this;
  15480.                        },
  15481.                        equals: function (e) {
  15482.                            return e.origin.equals(this.origin) && e.direction.equals(this.direction);
  15483.                        },
  15484.                    }),
  15485.                    (n.Sphere = function (e, t) {
  15486.                        (this.center = void 0 !== e ? e : new n.Vector3()), (this.radius = void 0 !== t ? t : 0);
  15487.                    }),
  15488.                    (n.Sphere.prototype = {
  15489.                        constructor: n.Sphere,
  15490.                        set: function (e, t) {
  15491.                            return this.center.copy(e), (this.radius = t), this;
  15492.                        },
  15493.                        setFromPoints: (function () {
  15494.                            var e = new n.Box3();
  15495.                            return function (t, i) {
  15496.                                var n = this.center;
  15497.                                void 0 !== i ? n.copy(i) : e.setFromPoints(t).center(n);
  15498.                                for (var r = 0, o = 0, a = t.length; a > o; o++) r = Math.max(r, n.distanceToSquared(t[o]));
  15499.                                return (this.radius = Math.sqrt(r)), this;
  15500.                            };
  15501.                        })(),
  15502.                        clone: function () {
  15503.                            return new this.constructor().copy(this);
  15504.                        },
  15505.                        copy: function (e) {
  15506.                            return this.center.copy(e.center), (this.radius = e.radius), this;
  15507.                        },
  15508.                        empty: function () {
  15509.                            return this.radius <= 0;
  15510.                        },
  15511.                        containsPoint: function (e) {
  15512.                            return e.distanceToSquared(this.center) <= this.radius * this.radius;
  15513.                        },
  15514.                        distanceToPoint: function (e) {
  15515.                            return e.distanceTo(this.center) - this.radius;
  15516.                        },
  15517.                        intersectsSphere: function (e) {
  15518.                            var t = this.radius + e.radius;
  15519.                            return e.center.distanceToSquared(this.center) <= t * t;
  15520.                        },
  15521.                        intersectsBox: function (e) {
  15522.                            return e.intersectsSphere(this);
  15523.                        },
  15524.                        intersectsPlane: function (e) {
  15525.                            return Math.abs(this.center.dot(e.normal) - e.constant) <= this.radius;
  15526.                        },
  15527.                        clampPoint: function (e, t) {
  15528.                            var i = this.center.distanceToSquared(e),
  15529.                                r = t || new n.Vector3();
  15530.                            return r.copy(e), i > this.radius * this.radius && (r.sub(this.center).normalize(), r.multiplyScalar(this.radius).add(this.center)), r;
  15531.                        },
  15532.                        getBoundingBox: function (e) {
  15533.                            var t = e || new n.Box3();
  15534.                            return t.set(this.center, this.center), t.expandByScalar(this.radius), t;
  15535.                        },
  15536.                        applyMatrix4: function (e) {
  15537.                            return this.center.applyMatrix4(e), (this.radius = this.radius * e.getMaxScaleOnAxis()), this;
  15538.                        },
  15539.                        translate: function (e) {
  15540.                            return this.center.add(e), this;
  15541.                        },
  15542.                        equals: function (e) {
  15543.                            return e.center.equals(this.center) && e.radius === this.radius;
  15544.                        },
  15545.                    }),
  15546.                    (n.Frustum = function (e, t, i, r, o, a) {
  15547.                        this.planes = [
  15548.                            void 0 !== e ? e : new n.Plane(),
  15549.                            void 0 !== t ? t : new n.Plane(),
  15550.                            void 0 !== i ? i : new n.Plane(),
  15551.                            void 0 !== r ? r : new n.Plane(),
  15552.                            void 0 !== o ? o : new n.Plane(),
  15553.                            void 0 !== a ? a : new n.Plane(),
  15554.                        ];
  15555.                    }),
  15556.                    (n.Frustum.prototype = {
  15557.                        constructor: n.Frustum,
  15558.                        set: function (e, t, i, n, r, o) {
  15559.                            var a = this.planes;
  15560.                            return a[0].copy(e), a[1].copy(t), a[2].copy(i), a[3].copy(n), a[4].copy(r), a[5].copy(o), this;
  15561.                        },
  15562.                        clone: function () {
  15563.                            return new this.constructor().copy(this);
  15564.                        },
  15565.                        copy: function (e) {
  15566.                            for (var t = this.planes, i = 0; 6 > i; i++) t[i].copy(e.planes[i]);
  15567.                            return this;
  15568.                        },
  15569.                        setFromMatrix: function (e) {
  15570.                            var t = this.planes,
  15571.                                i = e.elements,
  15572.                                n = i[0],
  15573.                                r = i[1],
  15574.                                o = i[2],
  15575.                                a = i[3],
  15576.                                s = i[4],
  15577.                                l = i[5],
  15578.                                c = i[6],
  15579.                                u = i[7],
  15580.                                h = i[8],
  15581.                                d = i[9],
  15582.                                f = i[10],
  15583.                                p = i[11],
  15584.                                m = i[12],
  15585.                                v = i[13],
  15586.                                g = i[14],
  15587.                                y = i[15];
  15588.                            return (
  15589.                                t[0].setComponents(a - n, u - s, p - h, y - m).normalize(),
  15590.                                t[1].setComponents(a + n, u + s, p + h, y + m).normalize(),
  15591.                                t[2].setComponents(a + r, u + l, p + d, y + v).normalize(),
  15592.                                t[3].setComponents(a - r, u - l, p - d, y - v).normalize(),
  15593.                                t[4].setComponents(a - o, u - c, p - f, y - g).normalize(),
  15594.                                t[5].setComponents(a + o, u + c, p + f, y + g).normalize(),
  15595.                                this
  15596.                            );
  15597.                        },
  15598.                        intersectsObject: (function () {
  15599.                            var e = new n.Sphere();
  15600.                            return function (t) {
  15601.                                var i = t.geometry;
  15602.                                return null === i.boundingSphere && i.computeBoundingSphere(), e.copy(i.boundingSphere).applyMatrix4(t.matrixWorld), this.intersectsSphere(e);
  15603.                            };
  15604.                        })(),
  15605.                        intersectsSprite: (function () {
  15606.                            var e = new n.Sphere();
  15607.                            return function (t) {
  15608.                                return e.center.set(0, 0, 0), (e.radius = 0.7071067811865476), e.applyMatrix4(t.matrixWorld), this.intersectsSphere(e);
  15609.                            };
  15610.                        })(),
  15611.                        intersectsSphere: function (e) {
  15612.                            for (var t = this.planes, i = e.center, n = -e.radius, r = 0; 6 > r; r++) {
  15613.                                var o = t[r].distanceToPoint(i);
  15614.                                if (n > o) return !1;
  15615.                            }
  15616.                            return !0;
  15617.                        },
  15618.                        intersectsBox: (function () {
  15619.                            var e = new n.Vector3(),
  15620.                                t = new n.Vector3();
  15621.                            return function (i) {
  15622.                                for (var n = this.planes, r = 0; 6 > r; r++) {
  15623.                                    var o = n[r];
  15624.                                    (e.x = o.normal.x > 0 ? i.min.x : i.max.x),
  15625.                                    (t.x = o.normal.x > 0 ? i.max.x : i.min.x),
  15626.                                    (e.y = o.normal.y > 0 ? i.min.y : i.max.y),
  15627.                                    (t.y = o.normal.y > 0 ? i.max.y : i.min.y),
  15628.                                    (e.z = o.normal.z > 0 ? i.min.z : i.max.z),
  15629.                                    (t.z = o.normal.z > 0 ? i.max.z : i.min.z);
  15630.                                    var a = o.distanceToPoint(e),
  15631.                                        s = o.distanceToPoint(t);
  15632.                                    if (0 > a && 0 > s) return !1;
  15633.                                }
  15634.                                return !0;
  15635.                            };
  15636.                        })(),
  15637.                        containsPoint: function (e) {
  15638.                            for (var t = this.planes, i = 0; 6 > i; i++)
  15639.                                if (t[i].distanceToPoint(e) < 0) return !1;
  15640.                            return !0;
  15641.                        },
  15642.                    }),
  15643.                    (n.Plane = function (e, t) {
  15644.                        (this.normal = void 0 !== e ? e : new n.Vector3(1, 0, 0)), (this.constant = void 0 !== t ? t : 0);
  15645.                    }),
  15646.                    (n.Plane.prototype = {
  15647.                        constructor: n.Plane,
  15648.                        set: function (e, t) {
  15649.                            return this.normal.copy(e), (this.constant = t), this;
  15650.                        },
  15651.                        setComponents: function (e, t, i, n) {
  15652.                            return this.normal.set(e, t, i), (this.constant = n), this;
  15653.                        },
  15654.                        setFromNormalAndCoplanarPoint: function (e, t) {
  15655.                            return this.normal.copy(e), (this.constant = -t.dot(this.normal)), this;
  15656.                        },
  15657.                        setFromCoplanarPoints: (function () {
  15658.                            var e = new n.Vector3(),
  15659.                                t = new n.Vector3();
  15660.                            return function (i, n, r) {
  15661.                                var o = e.subVectors(r, n).cross(t.subVectors(i, n)).normalize();
  15662.                                return this.setFromNormalAndCoplanarPoint(o, i), this;
  15663.                            };
  15664.                        })(),
  15665.                        clone: function () {
  15666.                            return new this.constructor().copy(this);
  15667.                        },
  15668.                        copy: function (e) {
  15669.                            return this.normal.copy(e.normal), (this.constant = e.constant), this;
  15670.                        },
  15671.                        normalize: function () {
  15672.                            var e = 1 / this.normal.length();
  15673.                            return this.normal.multiplyScalar(e), (this.constant *= e), this;
  15674.                        },
  15675.                        negate: function () {
  15676.                            return (this.constant *= -1), this.normal.negate(), this;
  15677.                        },
  15678.                        distanceToPoint: function (e) {
  15679.                            return this.normal.dot(e) + this.constant;
  15680.                        },
  15681.                        distanceToSphere: function (e) {
  15682.                            return this.distanceToPoint(e.center) - e.radius;
  15683.                        },
  15684.                        projectPoint: function (e, t) {
  15685.                            return this.orthoPoint(e, t).sub(e).negate();
  15686.                        },
  15687.                        orthoPoint: function (e, t) {
  15688.                            var i = this.distanceToPoint(e),
  15689.                                r = t || new n.Vector3();
  15690.                            return r.copy(this.normal).multiplyScalar(i);
  15691.                        },
  15692.                        intersectLine: (function () {
  15693.                            var e = new n.Vector3();
  15694.                            return function (t, i) {
  15695.                                var r = i || new n.Vector3(),
  15696.                                    o = t.delta(e),
  15697.                                    a = this.normal.dot(o);
  15698.                                if (0 === a) return 0 === this.distanceToPoint(t.start) ? r.copy(t.start) : void 0;
  15699.                                var s = -(t.start.dot(this.normal) + this.constant) / a;
  15700.                                return 0 > s || s > 1 ? void 0 : r.copy(o).multiplyScalar(s).add(t.start);
  15701.                            };
  15702.                        })(),
  15703.                        intersectsLine: function (e) {
  15704.                            var t = this.distanceToPoint(e.start),
  15705.                                i = this.distanceToPoint(e.end);
  15706.                            return (0 > t && i > 0) || (0 > i && t > 0);
  15707.                        },
  15708.                        intersectsBox: function (e) {
  15709.                            return e.intersectsPlane(this);
  15710.                        },
  15711.                        intersectsSphere: function (e) {
  15712.                            return e.intersectsPlane(this);
  15713.                        },
  15714.                        coplanarPoint: function (e) {
  15715.                            var t = e || new n.Vector3();
  15716.                            return t.copy(this.normal).multiplyScalar(-this.constant);
  15717.                        },
  15718.                        applyMatrix4: (function () {
  15719.                            var e = new n.Vector3(),
  15720.                                t = new n.Matrix3();
  15721.                            return function (i, n) {
  15722.                                var r = this.coplanarPoint(e).applyMatrix4(i),
  15723.                                    o = n || t.getNormalMatrix(i),
  15724.                                    a = this.normal.applyMatrix3(o).normalize();
  15725.                                return (this.constant = -r.dot(a)), this;
  15726.                            };
  15727.                        })(),
  15728.                        translate: function (e) {
  15729.                            return (this.constant = this.constant - e.dot(this.normal)), this;
  15730.                        },
  15731.                        equals: function (e) {
  15732.                            return e.normal.equals(this.normal) && e.constant === this.constant;
  15733.                        },
  15734.                    }),
  15735.                    (n.Spherical = function (e, t, i) {
  15736.                        return (this.radius = void 0 !== e ? e : 1), (this.phi = void 0 !== t ? t : 0), (this.theta = void 0 !== i ? i : 0), this;
  15737.                    }),
  15738.                    (n.Spherical.prototype = {
  15739.                        constructor: n.Spherical,
  15740.                        set: function (e, t, i) {
  15741.                            return (this.radius = e), (this.phi = t), (this.theta = i), this;
  15742.                        },
  15743.                        clone: function () {
  15744.                            return new this.constructor().copy(this);
  15745.                        },
  15746.                        copy: function (e) {
  15747.                            return this.radius.copy(e.radius), this.phi.copy(e.phi), this.theta.copy(e.theta), this;
  15748.                        },
  15749.                        makeSafe: function () {
  15750.                            var e = 1e-6;
  15751.                            return (this.phi = Math.max(e, Math.min(Math.PI - e, this.phi))), this;
  15752.                        },
  15753.                        setFromVector3: function (e) {
  15754.                            return (this.radius = e.length()), 0 === this.radius ? ((this.theta = 0), (this.phi = 0)) : ((this.theta = Math.atan2(e.x, e.z)), (this.phi = Math.acos(n.Math.clamp(e.y / this.radius, -1, 1)))), this;
  15755.                        },
  15756.                    }),
  15757.                    (n.Math = {
  15758.                        DEG2RAD: Math.PI / 180,
  15759.                        RAD2DEG: 180 / Math.PI,
  15760.                        generateUUID: (function () {
  15761.                            var e,
  15762.                                t = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),
  15763.                                i = new Array(36),
  15764.                                n = 0;
  15765.                            return function () {
  15766.                                for (var r = 0; 36 > r; r++)
  15767.                                    8 === r || 13 === r || 18 === r || 23 === r ?
  15768.                                    (i[r] = "-") :
  15769.                                    14 === r ?
  15770.                                    (i[r] = "4") :
  15771.                                    (2 >= n && (n = (33554432 + 16777216 * Math.random()) | 0), (e = 15 & n), (n >>= 4), (i[r] = t[19 === r ? (3 & e) | 8 : e]));
  15772.                                return i.join("");
  15773.                            };
  15774.                        })(),
  15775.                        clamp: function (e, t, i) {
  15776.                            return Math.max(t, Math.min(i, e));
  15777.                        },
  15778.                        euclideanModulo: function (e, t) {
  15779.                            return ((e % t) + t) % t;
  15780.                        },
  15781.                        mapLinear: function (e, t, i, n, r) {
  15782.                            return n + ((e - t) * (r - n)) / (i - t);
  15783.                        },
  15784.                        smoothstep: function (e, t, i) {
  15785.                            return t >= e ? 0 : e >= i ? 1 : ((e = (e - t) / (i - t)), e * e * (3 - 2 * e));
  15786.                        },
  15787.                        smootherstep: function (e, t, i) {
  15788.                            return t >= e ? 0 : e >= i ? 1 : ((e = (e - t) / (i - t)), e * e * e * (e * (6 * e - 15) + 10));
  15789.                        },
  15790.                        random16: function () {
  15791.                            return console.warn("THREE.Math.random16() has been deprecated. Use Math.random() instead."), Math.random();
  15792.                        },
  15793.                        randInt: function (e, t) {
  15794.                            return e + Math.floor(Math.random() * (t - e + 1));
  15795.                        },
  15796.                        randFloat: function (e, t) {
  15797.                            return e + Math.random() * (t - e);
  15798.                        },
  15799.                        randFloatSpread: function (e) {
  15800.                            return e * (0.5 - Math.random());
  15801.                        },
  15802.                        degToRad: function (e) {
  15803.                            return e * n.Math.DEG2RAD;
  15804.                        },
  15805.                        radToDeg: function (e) {
  15806.                            return e * n.Math.RAD2DEG;
  15807.                        },
  15808.                        isPowerOfTwo: function (e) {
  15809.                            return 0 === (e & (e - 1)) && 0 !== e;
  15810.                        },
  15811.                        nearestPowerOfTwo: function (e) {
  15812.                            return Math.pow(2, Math.round(Math.log(e) / Math.LN2));
  15813.                        },
  15814.                        nextPowerOfTwo: function (e) {
  15815.                            return e--, (e |= e >> 1), (e |= e >> 2), (e |= e >> 4), (e |= e >> 8), (e |= e >> 16), e++, e;
  15816.                        },
  15817.                    }),
  15818.                    (n.Spline = function (e) {
  15819.                        function t(e, t, i, n, r, o, a) {
  15820.                            var s = 0.5 * (i - e),
  15821.                                l = 0.5 * (n - t);
  15822.                            return (2 * (t - i) + s + l) * a + (-3 * (t - i) - 2 * s - l) * o + s * r + t;
  15823.                        }
  15824.                        this.points = e;
  15825.                        var i,
  15826.                            r,
  15827.                            o,
  15828.                            a,
  15829.                            s,
  15830.                            l,
  15831.                            c,
  15832.                            u,
  15833.                            h,
  15834.                            d = [],
  15835.                            f = {
  15836.                                x: 0,
  15837.                                y: 0,
  15838.                                z: 0
  15839.                            };
  15840.                        (this.initFromArray = function (e) {
  15841.                            this.points = [];
  15842.                            for (var t = 0; t < e.length; t++) this.points[t] = {
  15843.                                x: e[t][0],
  15844.                                y: e[t][1],
  15845.                                z: e[t][2]
  15846.                            };
  15847.                        }),
  15848.                        (this.getPoint = function (e) {
  15849.                            return (
  15850.                                (i = (this.points.length - 1) * e),
  15851.                                (r = Math.floor(i)),
  15852.                                (o = i - r),
  15853.                                (d[0] = 0 === r ? r : r - 1),
  15854.                                (d[1] = r),
  15855.                                (d[2] = r > this.points.length - 2 ? this.points.length - 1 : r + 1),
  15856.                                (d[3] = r > this.points.length - 3 ? this.points.length - 1 : r + 2),
  15857.                                (l = this.points[d[0]]),
  15858.                                (c = this.points[d[1]]),
  15859.                                (u = this.points[d[2]]),
  15860.                                (h = this.points[d[3]]),
  15861.                                (a = o * o),
  15862.                                (s = o * a),
  15863.                                (f.x = t(l.x, c.x, u.x, h.x, o, a, s)),
  15864.                                (f.y = t(l.y, c.y, u.y, h.y, o, a, s)),
  15865.                                (f.z = t(l.z, c.z, u.z, h.z, o, a, s)),
  15866.                                f
  15867.                            );
  15868.                        }),
  15869.                        (this.getControlPointsArray = function () {
  15870.                            var e,
  15871.                                t,
  15872.                                i = this.points.length,
  15873.                                n = [];
  15874.                            for (e = 0; i > e; e++)(t = this.points[e]), (n[e] = [t.x, t.y, t.z]);
  15875.                            return n;
  15876.                        }),
  15877.                        (this.getLength = function (e) {
  15878.                            var t,
  15879.                                i,
  15880.                                r,
  15881.                                o,
  15882.                                a = 0,
  15883.                                s = 0,
  15884.                                l = 0,
  15885.                                c = new n.Vector3(),
  15886.                                u = new n.Vector3(),
  15887.                                h = [],
  15888.                                d = 0;
  15889.                            for (h[0] = 0, e || (e = 100), r = this.points.length * e, c.copy(this.points[0]), t = 1; r > t; t++)
  15890.                                (i = t / r), (o = this.getPoint(i)), u.copy(o), (d += u.distanceTo(c)), c.copy(o), (a = (this.points.length - 1) * i), (s = Math.floor(a)), s !== l && ((h[s] = d), (l = s));
  15891.                            return (h[h.length] = d), {
  15892.                                chunks: h,
  15893.                                total: d
  15894.                            };
  15895.                        }),
  15896.                        (this.reparametrizeByArcLength = function (e) {
  15897.                            var t,
  15898.                                i,
  15899.                                r,
  15900.                                o,
  15901.                                a,
  15902.                                s,
  15903.                                l,
  15904.                                c,
  15905.                                u = [],
  15906.                                h = new n.Vector3(),
  15907.                                d = this.getLength();
  15908.                            for (u.push(h.copy(this.points[0]).clone()), t = 1; t < this.points.length; t++) {
  15909.                                for (s = d.chunks[t] - d.chunks[t - 1], l = Math.ceil((e * s) / d.total), o = (t - 1) / (this.points.length - 1), a = t / (this.points.length - 1), i = 1; l - 1 > i; i++)
  15910.                                    (r = o + i * (1 / l) * (a - o)), (c = this.getPoint(r)), u.push(h.copy(c).clone());
  15911.                                u.push(h.copy(this.points[t]).clone());
  15912.                            }
  15913.                            this.points = u;
  15914.                        });
  15915.                    }),
  15916.                    (n.Triangle = function (e, t, i) {
  15917.                        (this.a = void 0 !== e ? e : new n.Vector3()), (this.b = void 0 !== t ? t : new n.Vector3()), (this.c = void 0 !== i ? i : new n.Vector3());
  15918.                    }),
  15919.                    (n.Triangle.normal = (function () {
  15920.                        var e = new n.Vector3();
  15921.                        return function (t, i, r, o) {
  15922.                            var a = o || new n.Vector3();
  15923.                            a.subVectors(r, i), e.subVectors(t, i), a.cross(e);
  15924.                            var s = a.lengthSq();
  15925.                            return s > 0 ? a.multiplyScalar(1 / Math.sqrt(s)) : a.set(0, 0, 0);
  15926.                        };
  15927.                    })()),
  15928.                    (n.Triangle.barycoordFromPoint = (function () {
  15929.                        var e = new n.Vector3(),
  15930.                            t = new n.Vector3(),
  15931.                            i = new n.Vector3();
  15932.                        return function (r, o, a, s, l) {
  15933.                            e.subVectors(s, o), t.subVectors(a, o), i.subVectors(r, o);
  15934.                            var c = e.dot(e),
  15935.                                u = e.dot(t),
  15936.                                h = e.dot(i),
  15937.                                d = t.dot(t),
  15938.                                f = t.dot(i),
  15939.                                p = c * d - u * u,
  15940.                                m = l || new n.Vector3();
  15941.                            if (0 === p) return m.set(-2, -1, -1);
  15942.                            var v = 1 / p,
  15943.                                g = (d * h - u * f) * v,
  15944.                                y = (c * f - u * h) * v;
  15945.                            return m.set(1 - g - y, y, g);
  15946.                        };
  15947.                    })()),
  15948.                    (n.Triangle.containsPoint = (function () {
  15949.                        var e = new n.Vector3();
  15950.                        return function (t, i, r, o) {
  15951.                            var a = n.Triangle.barycoordFromPoint(t, i, r, o, e);
  15952.                            return a.x >= 0 && a.y >= 0 && a.x + a.y <= 1;
  15953.                        };
  15954.                    })()),
  15955.                    (n.Triangle.prototype = {
  15956.                        constructor: n.Triangle,
  15957.                        set: function (e, t, i) {
  15958.                            return this.a.copy(e), this.b.copy(t), this.c.copy(i), this;
  15959.                        },
  15960.                        setFromPointsAndIndices: function (e, t, i, n) {
  15961.                            return this.a.copy(e[t]), this.b.copy(e[i]), this.c.copy(e[n]), this;
  15962.                        },
  15963.                        clone: function () {
  15964.                            return new this.constructor().copy(this);
  15965.                        },
  15966.                        copy: function (e) {
  15967.                            return this.a.copy(e.a), this.b.copy(e.b), this.c.copy(e.c), this;
  15968.                        },
  15969.                        area: (function () {
  15970.                            var e = new n.Vector3(),
  15971.                                t = new n.Vector3();
  15972.                            return function () {
  15973.                                return e.subVectors(this.c, this.b), t.subVectors(this.a, this.b), 0.5 * e.cross(t).length();
  15974.                            };
  15975.                        })(),
  15976.                        midpoint: function (e) {
  15977.                            var t = e || new n.Vector3();
  15978.                            return t
  15979.                                .addVectors(this.a, this.b)
  15980.                                .add(this.c)
  15981.                                .multiplyScalar(1 / 3);
  15982.                        },
  15983.                        normal: function (e) {
  15984.                            return n.Triangle.normal(this.a, this.b, this.c, e);
  15985.                        },
  15986.                        plane: function (e) {
  15987.                            var t = e || new n.Plane();
  15988.                            return t.setFromCoplanarPoints(this.a, this.b, this.c);
  15989.                        },
  15990.                        barycoordFromPoint: function (e, t) {
  15991.                            return n.Triangle.barycoordFromPoint(e, this.a, this.b, this.c, t);
  15992.                        },
  15993.                        containsPoint: function (e) {
  15994.                            return n.Triangle.containsPoint(e, this.a, this.b, this.c);
  15995.                        },
  15996.                        closestPointToPoint: (function () {
  15997.                            var e, t, i, r;
  15998.                            return function (o, a) {
  15999.                                void 0 === e && ((e = new n.Plane()), (t = [new n.Line3(), new n.Line3(), new n.Line3()]), (i = new n.Vector3()), (r = new n.Vector3()));
  16000.                                var s = a || new n.Vector3(),
  16001.                                    l = 1 / 0;
  16002.                                if ((e.setFromCoplanarPoints(this.a, this.b, this.c), e.projectPoint(o, i), this.containsPoint(i) === !0)) s.copy(i);
  16003.                                else {
  16004.                                    t[0].set(this.a, this.b), t[1].set(this.b, this.c), t[2].set(this.c, this.a);
  16005.                                    for (var c = 0; c < t.length; c++) {
  16006.                                        t[c].closestPointToPoint(i, !0, r);
  16007.                                        var u = i.distanceToSquared(r);
  16008.                                        l > u && ((l = u), s.copy(r));
  16009.                                    }
  16010.                                }
  16011.                                return s;
  16012.                            };
  16013.                        })(),
  16014.                        equals: function (e) {
  16015.                            return e.a.equals(this.a) && e.b.equals(this.b) && e.c.equals(this.c);
  16016.                        },
  16017.                    }),
  16018.                    (n.Interpolant = function (e, t, i, n) {
  16019.                        (this.parameterPositions = e), (this._cachedIndex = 0), (this.resultBuffer = void 0 !== n ? n : new t.constructor(i)), (this.sampleValues = t), (this.valueSize = i);
  16020.                    }),
  16021.                    (n.Interpolant.prototype = {
  16022.                        constructor: n.Interpolant,
  16023.                        evaluate: function (e) {
  16024.                            var t = this.parameterPositions,
  16025.                                i = this._cachedIndex,
  16026.                                n = t[i],
  16027.                                r = t[i - 1];
  16028.                            e: {
  16029.                                t: {
  16030.                                    var o;
  16031.                                    i: {
  16032.                                        n: if (!(n > e)) {
  16033.                                            for (var a = i + 2;;) {
  16034.                                                if (void 0 === n) {
  16035.                                                    if (r > e) break n;
  16036.                                                    return (i = t.length), (this._cachedIndex = i), this.afterEnd_(i - 1, e, r);
  16037.                                                }
  16038.                                                if (i === a) break;
  16039.                                                if (((r = n), (n = t[++i]), n > e)) break t;
  16040.                                            }
  16041.                                            o = t.length;
  16042.                                            break i;
  16043.                                        } {
  16044.                                            if (e >= r) break e;
  16045.                                            var s = t[1];
  16046.                                            s > e && ((i = 2), (r = s));
  16047.                                            for (var a = i - 2;;) {
  16048.                                                if (void 0 === r) return (this._cachedIndex = 0), this.beforeStart_(0, e, n);
  16049.                                                if (i === a) break;
  16050.                                                if (((n = r), (r = t[--i - 1]), e >= r)) break t;
  16051.                                            }
  16052.                                            (o = i), (i = 0);
  16053.                                        }
  16054.                                    }
  16055.                                    for (; o > i;) {
  16056.                                        var l = (i + o) >>> 1;
  16057.                                        e < t[l] ? (o = l) : (i = l + 1);
  16058.                                    }
  16059.                                    if (((n = t[i]), (r = t[i - 1]), void 0 === r)) return (this._cachedIndex = 0),
  16060.                                    this.beforeStart_(0, e, n);
  16061.                                    if (void 0 === n) return (i = t.length),
  16062.                                    (this._cachedIndex = i),
  16063.                                    this.afterEnd_(i - 1, r, e);
  16064.                                }
  16065.                                (this._cachedIndex = i),
  16066.                                this.intervalChanged_(i, r, n);
  16067.                            }
  16068.                            return this.interpolate_(i, r, e, n);
  16069.                        },
  16070.                        settings: null,
  16071.                        DefaultSettings_: {},
  16072.                        getSettings_: function () {
  16073.                            return this.settings || this.DefaultSettings_;
  16074.                        },
  16075.                        copySampleValue_: function (e) {
  16076.                            for (var t = this.resultBuffer, i = this.sampleValues, n = this.valueSize, r = e * n, o = 0; o !== n; ++o) t[o] = i[r + o];
  16077.                            return t;
  16078.                        },
  16079.                        interpolate_: function (e, t, i, n) {
  16080.                            throw new Error("call to abstract method");
  16081.                        },
  16082.                        intervalChanged_: function (e, t, i) {},
  16083.                    }),
  16084.                    Object.assign(n.Interpolant.prototype, {
  16085.                        beforeStart_: n.Interpolant.prototype.copySampleValue_,
  16086.                        afterEnd_: n.Interpolant.prototype.copySampleValue_
  16087.                    }),
  16088.                    (n.CubicInterpolant = function (e, t, i, r) {
  16089.                        n.Interpolant.call(this, e, t, i, r), (this._weightPrev = -0), (this._offsetPrev = -0), (this._weightNext = -0), (this._offsetNext = -0);
  16090.                    }),
  16091.                    (n.CubicInterpolant.prototype = Object.assign(Object.create(n.Interpolant.prototype), {
  16092.                        constructor: n.CubicInterpolant,
  16093.                        DefaultSettings_: {
  16094.                            endingStart: n.ZeroCurvatureEnding,
  16095.                            endingEnd: n.ZeroCurvatureEnding
  16096.                        },
  16097.                        intervalChanged_: function (e, t, i) {
  16098.                            var r = this.parameterPositions,
  16099.                                o = e - 2,
  16100.                                a = e + 1,
  16101.                                s = r[o],
  16102.                                l = r[a];
  16103.                            if (void 0 === s)
  16104.                                switch (this.getSettings_().endingStart) {
  16105.                                case n.ZeroSlopeEnding:
  16106.                                    (o = e), (s = 2 * t - i);
  16107.                                    break;
  16108.                                case n.WrapAroundEnding:
  16109.                                    (o = r.length - 2), (s = t + r[o] - r[o + 1]);
  16110.                                    break;
  16111.                                default:
  16112.                                    (o = e), (s = i);
  16113.                                }
  16114.                            if (void 0 === l)
  16115.                                switch (this.getSettings_().endingEnd) {
  16116.                                case n.ZeroSlopeEnding:
  16117.                                    (a = e), (l = 2 * i - t);
  16118.                                    break;
  16119.                                case n.WrapAroundEnding:
  16120.                                    (a = 1), (l = i + r[1] - r[0]);
  16121.                                    break;
  16122.                                default:
  16123.                                    (a = e - 1), (l = t);
  16124.                                }
  16125.                            var c = 0.5 * (i - t),
  16126.                                u = this.valueSize;
  16127.                            (this._weightPrev = c / (t - s)), (this._weightNext = c / (l - i)), (this._offsetPrev = o * u), (this._offsetNext = a * u);
  16128.                        },
  16129.                        interpolate_: function (e, t, i, n) {
  16130.                            for (
  16131.                                var r = this.resultBuffer,
  16132.                                    o = this.sampleValues,
  16133.                                    a = this.valueSize,
  16134.                                    s = e * a,
  16135.                                    l = s - a,
  16136.                                    c = this._offsetPrev,
  16137.                                    u = this._offsetNext,
  16138.                                    h = this._weightPrev,
  16139.                                    d = this._weightNext,
  16140.                                    f = (i - t) / (n - t),
  16141.                                    p = f * f,
  16142.                                    m = p * f,
  16143.                                    v = -h * m + 2 * h * p - h * f,
  16144.                                    g = (1 + h) * m + (-1.5 - 2 * h) * p + (-0.5 + h) * f + 1,
  16145.                                    y = (-1 - d) * m + (1.5 + d) * p + 0.5 * f,
  16146.                                    _ = d * m - d * p,
  16147.                                    b = 0; b !== a;
  16148.                                ++b
  16149.                            )
  16150.                                r[b] = v * o[c + b] + g * o[l + b] + y * o[s + b] + _ * o[u + b];
  16151.                            return r;
  16152.                        },
  16153.                    })),
  16154.                    (n.DiscreteInterpolant = function (e, t, i, r) {
  16155.                        n.Interpolant.call(this, e, t, i, r);
  16156.                    }),
  16157.                    (n.DiscreteInterpolant.prototype = Object.assign(Object.create(n.Interpolant.prototype), {
  16158.                        constructor: n.DiscreteInterpolant,
  16159.                        interpolate_: function (e, t, i, n) {
  16160.                            return this.copySampleValue_(e - 1);
  16161.                        },
  16162.                    })),
  16163.                    (n.LinearInterpolant = function (e, t, i, r) {
  16164.                        n.Interpolant.call(this, e, t, i, r);
  16165.                    }),
  16166.                    (n.LinearInterpolant.prototype = Object.assign(Object.create(n.Interpolant.prototype), {
  16167.                        constructor: n.LinearInterpolant,
  16168.                        interpolate_: function (e, t, i, n) {
  16169.                            for (var r = this.resultBuffer, o = this.sampleValues, a = this.valueSize, s = e * a, l = s - a, c = (i - t) / (n - t), u = 1 - c, h = 0; h !== a; ++h) r[h] = o[l + h] * u + o[s + h] * c;
  16170.                            return r;
  16171.                        },
  16172.                    })),
  16173.                    (n.QuaternionLinearInterpolant = function (e, t, i, r) {
  16174.                        n.Interpolant.call(this, e, t, i, r);
  16175.                    }),
  16176.                    (n.QuaternionLinearInterpolant.prototype = Object.assign(Object.create(n.Interpolant.prototype), {
  16177.                        constructor: n.QuaternionLinearInterpolant,
  16178.                        interpolate_: function (e, t, i, r) {
  16179.                            for (var o = this.resultBuffer, a = this.sampleValues, s = this.valueSize, l = e * s, c = (i - t) / (r - t), u = l + s; l !== u; l += 4) n.Quaternion.slerpFlat(o, 0, a, l - s, a, l, c);
  16180.                            return o;
  16181.                        },
  16182.                    })),
  16183.                    (n.Clock = function (e) {
  16184.                        (this.autoStart = void 0 !== e ? e : !0), (this.startTime = 0), (this.oldTime = 0), (this.elapsedTime = 0), (this.running = !1);
  16185.                    }),
  16186.                    (n.Clock.prototype = {
  16187.                        constructor: n.Clock,
  16188.                        start: function () {
  16189.                            (this.startTime = (performance || Date).now()), (this.oldTime = this.startTime), (this.running = !0);
  16190.                        },
  16191.                        stop: function () {
  16192.                            this.getElapsedTime(), (this.running = !1);
  16193.                        },
  16194.                        getElapsedTime: function () {
  16195.                            return this.getDelta(), this.elapsedTime;
  16196.                        },
  16197.                        getDelta: function () {
  16198.                            var e = 0;
  16199.                            if ((this.autoStart && !this.running && this.start(), this.running)) {
  16200.                                var t = (performance || Date).now();
  16201.                                (e = (t - this.oldTime) / 1e3), (this.oldTime = t), (this.elapsedTime += e);
  16202.                            }
  16203.                            return e;
  16204.                        },
  16205.                    }),
  16206.                    (n.EventDispatcher = function () {}),
  16207.                    Object.assign(n.EventDispatcher.prototype, {
  16208.                        addEventListener: function (e, t) {
  16209.                            void 0 === this._listeners && (this._listeners = {});
  16210.                            var i = this._listeners;
  16211.                            void 0 === i[e] && (i[e] = []), -1 === i[e].indexOf(t) && i[e].push(t);
  16212.                        },
  16213.                        hasEventListener: function (e, t) {
  16214.                            if (void 0 === this._listeners) return !1;
  16215.                            var i = this._listeners;
  16216.                            return void 0 !== i[e] && -1 !== i[e].indexOf(t) ? !0 : !1;
  16217.                        },
  16218.                        removeEventListener: function (e, t) {
  16219.                            if (void 0 !== this._listeners) {
  16220.                                var i = this._listeners,
  16221.                                    n = i[e];
  16222.                                if (void 0 !== n) {
  16223.                                    var r = n.indexOf(t); -
  16224.                                    1 !== r && n.splice(r, 1);
  16225.                                }
  16226.                            }
  16227.                        },
  16228.                        dispatchEvent: function (e) {
  16229.                            if (void 0 !== this._listeners) {
  16230.                                var t = this._listeners,
  16231.                                    i = t[e.type];
  16232.                                if (void 0 !== i) {
  16233.                                    e.target = this;
  16234.                                    var n = [],
  16235.                                        r = 0,
  16236.                                        o = i.length;
  16237.                                    for (r = 0; o > r; r++) n[r] = i[r];
  16238.                                    for (r = 0; o > r; r++) n[r].call(this, e);
  16239.                                }
  16240.                            }
  16241.                        },
  16242.                    }),
  16243.                    (n.Layers = function () {
  16244.                        this.mask = 1;
  16245.                    }),
  16246.                    (n.Layers.prototype = {
  16247.                        constructor: n.Layers,
  16248.                        set: function (e) {
  16249.                            this.mask = 1 << e;
  16250.                        },
  16251.                        enable: function (e) {
  16252.                            this.mask |= 1 << e;
  16253.                        },
  16254.                        toggle: function (e) {
  16255.                            this.mask ^= 1 << e;
  16256.                        },
  16257.                        disable: function (e) {
  16258.                            this.mask &= ~(1 << e);
  16259.                        },
  16260.                        test: function (e) {
  16261.                            return 0 !== (this.mask & e.mask);
  16262.                        },
  16263.                    }),
  16264.                    (function (e) {
  16265.                        function t(e, t) {
  16266.                            return e.distance - t.distance;
  16267.                        }
  16268.  
  16269.                        function i(e, t, n, r) {
  16270.                            if (e.visible !== !1 && (e.raycast(t, n), r === !0))
  16271.                                for (var o = e.children, a = 0, s = o.length; s > a; a++) i(o[a], t, n, !0);
  16272.                        }
  16273.                        (e.Raycaster = function (t, i, n, r) {
  16274.                            (this.ray = new e.Ray(t, i)),
  16275.                            (this.near = n || 0),
  16276.                            (this.far = r || 1 / 0),
  16277.                            (this.params = {
  16278.                                Mesh: {},
  16279.                                Line: {},
  16280.                                LOD: {},
  16281.                                Points: {
  16282.                                    threshold: 1
  16283.                                },
  16284.                                Sprite: {}
  16285.                            }),
  16286.                            Object.defineProperties(this.params, {
  16287.                                PointCloud: {
  16288.                                    get: function () {
  16289.                                        return console.warn("THREE.Raycaster: params.PointCloud has been renamed to params.Points."), this.Points;
  16290.                                    },
  16291.                                },
  16292.                            });
  16293.                        }),
  16294.                        (e.Raycaster.prototype = {
  16295.                            constructor: e.Raycaster,
  16296.                            linePrecision: 1,
  16297.                            set: function (e, t) {
  16298.                                this.ray.set(e, t);
  16299.                            },
  16300.                            setFromCamera: function (t, i) {
  16301.                                i instanceof e.PerspectiveCamera ?
  16302.                                    (this.ray.origin.setFromMatrixPosition(i.matrixWorld), this.ray.direction.set(t.x, t.y, 0.5).unproject(i).sub(this.ray.origin).normalize()) :
  16303.                                    i instanceof e.OrthographicCamera ?
  16304.                                    (this.ray.origin.set(t.x, t.y, (i.near + i.far) / (i.near - i.far)).unproject(i), this.ray.direction.set(0, 0, -1).transformDirection(i.matrixWorld)) :
  16305.                                    console.error("THREE.Raycaster: Unsupported camera type.");
  16306.                            },
  16307.                            intersectObject: function (e, n) {
  16308.                                var r = [];
  16309.                                return i(e, this, r, n), r.sort(t), r;
  16310.                            },
  16311.                            intersectObjects: function (e, n) {
  16312.                                var r = [];
  16313.                                if (Array.isArray(e) === !1) return console.warn("THREE.Raycaster.intersectObjects: objects is not an Array."), r;
  16314.                                for (var o = 0, a = e.length; a > o; o++) i(e[o], this, r, n);
  16315.                                return r.sort(t), r;
  16316.                            },
  16317.                        });
  16318.                    })(n),
  16319.                    (n.Object3D = function () {
  16320.                        function e() {
  16321.                            o.setFromEuler(r, !1);
  16322.                        }
  16323.  
  16324.                        function t() {
  16325.                            r.setFromQuaternion(o, void 0, !1);
  16326.                        }
  16327.                        Object.defineProperty(this, "id", {
  16328.                                value: n.Object3DIdCount++
  16329.                            }),
  16330.                            (this.uuid = n.Math.generateUUID()),
  16331.                            (this.name = ""),
  16332.                            (this.type = "Object3D"),
  16333.                            (this.parent = null),
  16334.                            (this.children = []),
  16335.                            (this.up = n.Object3D.DefaultUp.clone());
  16336.                        var i = new n.Vector3(),
  16337.                            r = new n.Euler(),
  16338.                            o = new n.Quaternion(),
  16339.                            a = new n.Vector3(1, 1, 1);
  16340.                        r.onChange(e),
  16341.                            o.onChange(t),
  16342.                            Object.defineProperties(this, {
  16343.                                position: {
  16344.                                    enumerable: !0,
  16345.                                    value: i
  16346.                                },
  16347.                                rotation: {
  16348.                                    enumerable: !0,
  16349.                                    value: r
  16350.                                },
  16351.                                quaternion: {
  16352.                                    enumerable: !0,
  16353.                                    value: o
  16354.                                },
  16355.                                scale: {
  16356.                                    enumerable: !0,
  16357.                                    value: a
  16358.                                },
  16359.                                modelViewMatrix: {
  16360.                                    value: new n.Matrix4()
  16361.                                },
  16362.                                normalMatrix: {
  16363.                                    value: new n.Matrix3()
  16364.                                },
  16365.                            }),
  16366.                            (this.matrix = new n.Matrix4()),
  16367.                            (this.matrixWorld = new n.Matrix4()),
  16368.                            (this.matrixAutoUpdate = n.Object3D.DefaultMatrixAutoUpdate),
  16369.                            (this.matrixWorldNeedsUpdate = !1),
  16370.                            (this.layers = new n.Layers()),
  16371.                            (this.visible = !0),
  16372.                            (this.castShadow = !1),
  16373.                            (this.receiveShadow = !1),
  16374.                            (this.frustumCulled = !0),
  16375.                            (this.renderOrder = 0),
  16376.                            (this.userData = {});
  16377.                    }),
  16378.                    (n.Object3D.DefaultUp = new n.Vector3(0, 1, 0)),
  16379.                    (n.Object3D.DefaultMatrixAutoUpdate = !0),
  16380.                    Object.assign(n.Object3D.prototype, n.EventDispatcher.prototype, {
  16381.                        applyMatrix: function (e) {
  16382.                            this.matrix.multiplyMatrices(e, this.matrix), this.matrix.decompose(this.position, this.quaternion, this.scale);
  16383.                        },
  16384.                        setRotationFromAxisAngle: function (e, t) {
  16385.                            this.quaternion.setFromAxisAngle(e, t);
  16386.                        },
  16387.                        setRotationFromEuler: function (e) {
  16388.                            this.quaternion.setFromEuler(e, !0);
  16389.                        },
  16390.                        setRotationFromMatrix: function (e) {
  16391.                            this.quaternion.setFromRotationMatrix(e);
  16392.                        },
  16393.                        setRotationFromQuaternion: function (e) {
  16394.                            this.quaternion.copy(e);
  16395.                        },
  16396.                        rotateOnAxis: (function () {
  16397.                            var e = new n.Quaternion();
  16398.                            return function (t, i) {
  16399.                                return e.setFromAxisAngle(t, i), this.quaternion.multiply(e), this;
  16400.                            };
  16401.                        })(),
  16402.                        rotateX: (function () {
  16403.                            var e = new n.Vector3(1, 0, 0);
  16404.                            return function (t) {
  16405.                                return this.rotateOnAxis(e, t);
  16406.                            };
  16407.                        })(),
  16408.                        rotateY: (function () {
  16409.                            var e = new n.Vector3(0, 1, 0);
  16410.                            return function (t) {
  16411.                                return this.rotateOnAxis(e, t);
  16412.                            };
  16413.                        })(),
  16414.                        rotateZ: (function () {
  16415.                            var e = new n.Vector3(0, 0, 1);
  16416.                            return function (t) {
  16417.                                return this.rotateOnAxis(e, t);
  16418.                            };
  16419.                        })(),
  16420.                        translateOnAxis: (function () {
  16421.                            var e = new n.Vector3();
  16422.                            return function (t, i) {
  16423.                                return e.copy(t).applyQuaternion(this.quaternion), this.position.add(e.multiplyScalar(i)), this;
  16424.                            };
  16425.                        })(),
  16426.                        translateX: (function () {
  16427.                            var e = new n.Vector3(1, 0, 0);
  16428.                            return function (t) {
  16429.                                return this.translateOnAxis(e, t);
  16430.                            };
  16431.                        })(),
  16432.                        translateY: (function () {
  16433.                            var e = new n.Vector3(0, 1, 0);
  16434.                            return function (t) {
  16435.                                return this.translateOnAxis(e, t);
  16436.                            };
  16437.                        })(),
  16438.                        translateZ: (function () {
  16439.                            var e = new n.Vector3(0, 0, 1);
  16440.                            return function (t) {
  16441.                                return this.translateOnAxis(e, t);
  16442.                            };
  16443.                        })(),
  16444.                        localToWorld: function (e) {
  16445.                            return e.applyMatrix4(this.matrixWorld);
  16446.                        },
  16447.                        worldToLocal: (function () {
  16448.                            var e = new n.Matrix4();
  16449.                            return function (t) {
  16450.                                return t.applyMatrix4(e.getInverse(this.matrixWorld));
  16451.                            };
  16452.                        })(),
  16453.                        lookAt: (function () {
  16454.                            var e = new n.Matrix4();
  16455.                            return function (t) {
  16456.                                e.lookAt(t, this.position, this.up), this.quaternion.setFromRotationMatrix(e);
  16457.                            };
  16458.                        })(),
  16459.                        add: function (e) {
  16460.                            if (arguments.length > 1) {
  16461.                                for (var t = 0; t < arguments.length; t++) this.add(arguments[t]);
  16462.                                return this;
  16463.                            }
  16464.                            return e === this ?
  16465.                                (console.error("THREE.Object3D.add: object can't be added as a child of itself.", e), this) :
  16466.                                (e instanceof n.Object3D ?
  16467.                                    (null !== e.parent && e.parent.remove(e), (e.parent = this), e.dispatchEvent({
  16468.                                        type: "added"
  16469.                                    }), this.children.push(e)) :
  16470.                                    console.error("THREE.Object3D.add: object not an instance of THREE.Object3D.", e),
  16471.                                    this);
  16472.                        },
  16473.                        remove: function (e) {
  16474.                            if (arguments.length > 1)
  16475.                                for (var t = 0; t < arguments.length; t++) this.remove(arguments[t]);
  16476.                            var i = this.children.indexOf(e); -
  16477.                            1 !== i && ((e.parent = null), e.dispatchEvent({
  16478.                                type: "removed"
  16479.                            }), this.children.splice(i, 1));
  16480.                        },
  16481.                        getObjectById: function (e) {
  16482.                            return this.getObjectByProperty("id", e);
  16483.                        },
  16484.                        getObjectByName: function (e) {
  16485.                            return this.getObjectByProperty("name", e);
  16486.                        },
  16487.                        getObjectByProperty: function (e, t) {
  16488.                            if (this[e] === t) return this;
  16489.                            for (var i = 0, n = this.children.length; n > i; i++) {
  16490.                                var r = this.children[i],
  16491.                                    o = r.getObjectByProperty(e, t);
  16492.                                if (void 0 !== o) return o;
  16493.                            }
  16494.                            return void 0;
  16495.                        },
  16496.                        getWorldPosition: function (e) {
  16497.                            var t = e || new n.Vector3();
  16498.                            return this.updateMatrixWorld(!0), t.setFromMatrixPosition(this.matrixWorld);
  16499.                        },
  16500.                        getWorldQuaternion: (function () {
  16501.                            var e = new n.Vector3(),
  16502.                                t = new n.Vector3();
  16503.                            return function (i) {
  16504.                                var r = i || new n.Quaternion();
  16505.                                return this.updateMatrixWorld(!0), this.matrixWorld.decompose(e, r, t), r;
  16506.                            };
  16507.                        })(),
  16508.                        getWorldRotation: (function () {
  16509.                            var e = new n.Quaternion();
  16510.                            return function (t) {
  16511.                                var i = t || new n.Euler();
  16512.                                return this.getWorldQuaternion(e), i.setFromQuaternion(e, this.rotation.order, !1);
  16513.                            };
  16514.                        })(),
  16515.                        getWorldScale: (function () {
  16516.                            var e = new n.Vector3(),
  16517.                                t = new n.Quaternion();
  16518.                            return function (i) {
  16519.                                var r = i || new n.Vector3();
  16520.                                return this.updateMatrixWorld(!0), this.matrixWorld.decompose(e, t, r), r;
  16521.                            };
  16522.                        })(),
  16523.                        getWorldDirection: (function () {
  16524.                            var e = new n.Quaternion();
  16525.                            return function (t) {
  16526.                                var i = t || new n.Vector3();
  16527.                                return this.getWorldQuaternion(e), i.set(0, 0, 1).applyQuaternion(e);
  16528.                            };
  16529.                        })(),
  16530.                        raycast: function () {},
  16531.                        traverse: function (e) {
  16532.                            e(this);
  16533.                            for (var t = this.children, i = 0, n = t.length; n > i; i++) t[i].traverse(e);
  16534.                        },
  16535.                        traverseVisible: function (e) {
  16536.                            if (this.visible !== !1) {
  16537.                                e(this);
  16538.                                for (var t = this.children, i = 0, n = t.length; n > i; i++) t[i].traverseVisible(e);
  16539.                            }
  16540.                        },
  16541.                        traverseAncestors: function (e) {
  16542.                            var t = this.parent;
  16543.                            null !== t && (e(t), t.traverseAncestors(e));
  16544.                        },
  16545.                        updateMatrix: function () {
  16546.                            this.matrix.compose(this.position, this.quaternion, this.scale), (this.matrixWorldNeedsUpdate = !0);
  16547.                        },
  16548.                        updateMatrixWorld: function (e) {
  16549.                            this.matrixAutoUpdate === !0 && this.updateMatrix(),
  16550.                                (this.matrixWorldNeedsUpdate === !0 || e === !0) &&
  16551.                                (null === this.parent ? this.matrixWorld.copy(this.matrix) : this.matrixWorld.multiplyMatrices(this.parent.matrixWorld, this.matrix), (this.matrixWorldNeedsUpdate = !1), (e = !0));
  16552.                            for (var t = 0, i = this.children.length; i > t; t++) this.children[t].updateMatrixWorld(e);
  16553.                        },
  16554.                        toJSON: function (e) {
  16555.                            function t(e) {
  16556.                                var t = [];
  16557.                                for (var i in e) {
  16558.                                    var n = e[i];
  16559.                                    delete n.metadata, t.push(n);
  16560.                                }
  16561.                                return t;
  16562.                            }
  16563.                            var i = void 0 === e || "" === e,
  16564.                                n = {};
  16565.                            i && ((e = {
  16566.                                geometries: {},
  16567.                                materials: {},
  16568.                                textures: {},
  16569.                                images: {}
  16570.                            }), (n.metadata = {
  16571.                                version: 4.4,
  16572.                                type: "Object",
  16573.                                generator: "Object3D.toJSON"
  16574.                            }));
  16575.                            var r = {};
  16576.                            if (
  16577.                                ((r.uuid = this.uuid),
  16578.                                    (r.type = this.type),
  16579.                                    "" !== this.name && (r.name = this.name),
  16580.                                    "{}" !== JSON.stringify(this.userData) && (r.userData = this.userData),
  16581.                                    this.castShadow === !0 && (r.castShadow = !0),
  16582.                                    this.receiveShadow === !0 && (r.receiveShadow = !0),
  16583.                                    this.visible === !1 && (r.visible = !1),
  16584.                                    (r.matrix = this.matrix.toArray()),
  16585.                                    void 0 !== this.geometry && (void 0 === e.geometries[this.geometry.uuid] && (e.geometries[this.geometry.uuid] = this.geometry.toJSON(e)), (r.geometry = this.geometry.uuid)),
  16586.                                    void 0 !== this.material && (void 0 === e.materials[this.material.uuid] && (e.materials[this.material.uuid] = this.material.toJSON(e)), (r.material = this.material.uuid)),
  16587.                                    this.children.length > 0)
  16588.                            ) {
  16589.                                r.children = [];
  16590.                                for (var o = 0; o < this.children.length; o++) r.children.push(this.children[o].toJSON(e).object);
  16591.                            }
  16592.                            if (i) {
  16593.                                var a = t(e.geometries),
  16594.                                    s = t(e.materials),
  16595.                                    l = t(e.textures),
  16596.                                    c = t(e.images);
  16597.                                a.length > 0 && (n.geometries = a), s.length > 0 && (n.materials = s), l.length > 0 && (n.textures = l), c.length > 0 && (n.images = c);
  16598.                            }
  16599.                            return (n.object = r), n;
  16600.                        },
  16601.                        clone: function (e) {
  16602.                            return new this.constructor().copy(this, e);
  16603.                        },
  16604.                        copy: function (e, t) {
  16605.                            if (
  16606.                                (void 0 === t && (t = !0),
  16607.                                    (this.name = e.name),
  16608.                                    this.up.copy(e.up),
  16609.                                    this.position.copy(e.position),
  16610.                                    this.quaternion.copy(e.quaternion),
  16611.                                    this.scale.copy(e.scale),
  16612.                                    this.matrix.copy(e.matrix),
  16613.                                    this.matrixWorld.copy(e.matrixWorld),
  16614.                                    (this.matrixAutoUpdate = e.matrixAutoUpdate),
  16615.                                    (this.matrixWorldNeedsUpdate = e.matrixWorldNeedsUpdate),
  16616.                                    (this.visible = e.visible),
  16617.                                    (this.castShadow = e.castShadow),
  16618.                                    (this.receiveShadow = e.receiveShadow),
  16619.                                    (this.frustumCulled = e.frustumCulled),
  16620.                                    (this.renderOrder = e.renderOrder),
  16621.                                    (this.userData = JSON.parse(JSON.stringify(e.userData))),
  16622.                                    t === !0)
  16623.                            )
  16624.                                for (var i = 0; i < e.children.length; i++) {
  16625.                                    var n = e.children[i];
  16626.                                    this.add(n.clone());
  16627.                                }
  16628.                            return this;
  16629.                        },
  16630.                    }),
  16631.                    (n.Object3DIdCount = 0),
  16632.                    (n.Face3 = function (e, t, i, r, o, a) {
  16633.                        (this.a = e),
  16634.                        (this.b = t),
  16635.                        (this.c = i),
  16636.                        (this.normal = r instanceof n.Vector3 ? r : new n.Vector3()),
  16637.                        (this.vertexNormals = Array.isArray(r) ? r : []),
  16638.                        (this.color = o instanceof n.Color ? o : new n.Color()),
  16639.                        (this.vertexColors = Array.isArray(o) ? o : []),
  16640.                        (this.materialIndex = void 0 !== a ? a : 0);
  16641.                    }),
  16642.                    (n.Face3.prototype = {
  16643.                        constructor: n.Face3,
  16644.                        clone: function () {
  16645.                            return new this.constructor().copy(this);
  16646.                        },
  16647.                        copy: function (e) {
  16648.                            (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);
  16649.                            for (var t = 0, i = e.vertexNormals.length; i > t; t++) this.vertexNormals[t] = e.vertexNormals[t].clone();
  16650.                            for (var t = 0, i = e.vertexColors.length; i > t; t++) this.vertexColors[t] = e.vertexColors[t].clone();
  16651.                            return this;
  16652.                        },
  16653.                    }),
  16654.                    (n.BufferAttribute = function (e, t, i) {
  16655.                        (this.uuid = n.Math.generateUUID()), (this.array = e), (this.itemSize = t), (this.dynamic = !1), (this.updateRange = {
  16656.                            offset: 0,
  16657.                            count: -1
  16658.                        }), (this.version = 0), (this.normalized = i === !0);
  16659.                    }),
  16660.                    (n.BufferAttribute.prototype = {
  16661.                        constructor: n.BufferAttribute,
  16662.                        get count() {
  16663.                            return this.array.length / this.itemSize;
  16664.                        },
  16665.                        set needsUpdate(e) {
  16666.                            e === !0 && this.version++;
  16667.                        },
  16668.                        setDynamic: function (e) {
  16669.                            return (this.dynamic = e), this;
  16670.                        },
  16671.                        copy: function (e) {
  16672.                            return (this.array = new e.array.constructor(e.array)), (this.itemSize = e.itemSize), (this.dynamic = e.dynamic), this;
  16673.                        },
  16674.                        copyAt: function (e, t, i) {
  16675.                            (e *= this.itemSize), (i *= t.itemSize);
  16676.                            for (var n = 0, r = this.itemSize; r > n; n++) this.array[e + n] = t.array[i + n];
  16677.                            return this;
  16678.                        },
  16679.                        copyArray: function (e) {
  16680.                            return this.array.set(e), this;
  16681.                        },
  16682.                        copyColorsArray: function (e) {
  16683.                            for (var t = this.array, i = 0, r = 0, o = e.length; o > r; r++) {
  16684.                                var a = e[r];
  16685.                                void 0 === a && (console.warn("THREE.BufferAttribute.copyColorsArray(): color is undefined", r), (a = new n.Color())), (t[i++] = a.r), (t[i++] = a.g), (t[i++] = a.b);
  16686.                            }
  16687.                            return this;
  16688.                        },
  16689.                        copyIndicesArray: function (e) {
  16690.                            for (var t = this.array, i = 0, n = 0, r = e.length; r > n; n++) {
  16691.                                var o = e[n];
  16692.                                (t[i++] = o.a), (t[i++] = o.b), (t[i++] = o.c);
  16693.                            }
  16694.                            return this;
  16695.                        },
  16696.                        copyVector2sArray: function (e) {
  16697.                            for (var t = this.array, i = 0, r = 0, o = e.length; o > r; r++) {
  16698.                                var a = e[r];
  16699.                                void 0 === a && (console.warn("THREE.BufferAttribute.copyVector2sArray(): vector is undefined", r), (a = new n.Vector2())), (t[i++] = a.x), (t[i++] = a.y);
  16700.                            }
  16701.                            return this;
  16702.                        },
  16703.                        copyVector3sArray: function (e) {
  16704.                            for (var t = this.array, i = 0, r = 0, o = e.length; o > r; r++) {
  16705.                                var a = e[r];
  16706.                                void 0 === a && (console.warn("THREE.BufferAttribute.copyVector3sArray(): vector is undefined", r), (a = new n.Vector3())), (t[i++] = a.x), (t[i++] = a.y), (t[i++] = a.z);
  16707.                            }
  16708.                            return this;
  16709.                        },
  16710.                        copyVector4sArray: function (e) {
  16711.                            for (var t = this.array, i = 0, r = 0, o = e.length; o > r; r++) {
  16712.                                var a = e[r];
  16713.                                void 0 === a && (console.warn("THREE.BufferAttribute.copyVector4sArray(): vector is undefined", r), (a = new n.Vector4())), (t[i++] = a.x), (t[i++] = a.y), (t[i++] = a.z), (t[i++] = a.w);
  16714.                            }
  16715.                            return this;
  16716.                        },
  16717.                        set: function (e, t) {
  16718.                            return void 0 === t && (t = 0), this.array.set(e, t), this;
  16719.                        },
  16720.                        getX: function (e) {
  16721.                            return this.array[e * this.itemSize];
  16722.                        },
  16723.                        setX: function (e, t) {
  16724.                            return (this.array[e * this.itemSize] = t), this;
  16725.                        },
  16726.                        getY: function (e) {
  16727.                            return this.array[e * this.itemSize + 1];
  16728.                        },
  16729.                        setY: function (e, t) {
  16730.                            return (this.array[e * this.itemSize + 1] = t), this;
  16731.                        },
  16732.                        getZ: function (e) {
  16733.                            return this.array[e * this.itemSize + 2];
  16734.                        },
  16735.                        setZ: function (e, t) {
  16736.                            return (this.array[e * this.itemSize + 2] = t), this;
  16737.                        },
  16738.                        getW: function (e) {
  16739.                            return this.array[e * this.itemSize + 3];
  16740.                        },
  16741.                        setW: function (e, t) {
  16742.                            return (this.array[e * this.itemSize + 3] = t), this;
  16743.                        },
  16744.                        setXY: function (e, t, i) {
  16745.                            return (e *= this.itemSize), (this.array[e + 0] = t), (this.array[e + 1] = i), this;
  16746.                        },
  16747.                        setXYZ: function (e, t, i, n) {
  16748.                            return (e *= this.itemSize), (this.array[e + 0] = t), (this.array[e + 1] = i), (this.array[e + 2] = n), this;
  16749.                        },
  16750.                        setXYZW: function (e, t, i, n, r) {
  16751.                            return (e *= this.itemSize), (this.array[e + 0] = t), (this.array[e + 1] = i), (this.array[e + 2] = n), (this.array[e + 3] = r), this;
  16752.                        },
  16753.                        clone: function () {
  16754.                            return new this.constructor().copy(this);
  16755.                        },
  16756.                    }),
  16757.                    (n.Int8Attribute = function (e, t) {
  16758.                        return new n.BufferAttribute(new Int8Array(e), t);
  16759.                    }),
  16760.                    (n.Uint8Attribute = function (e, t) {
  16761.                        return new n.BufferAttribute(new Uint8Array(e), t);
  16762.                    }),
  16763.                    (n.Uint8ClampedAttribute = function (e, t) {
  16764.                        return new n.BufferAttribute(new Uint8ClampedArray(e), t);
  16765.                    }),
  16766.                    (n.Int16Attribute = function (e, t) {
  16767.                        return new n.BufferAttribute(new Int16Array(e), t);
  16768.                    }),
  16769.                    (n.Uint16Attribute = function (e, t) {
  16770.                        return new n.BufferAttribute(new Uint16Array(e), t);
  16771.                    }),
  16772.                    (n.Int32Attribute = function (e, t) {
  16773.                        return new n.BufferAttribute(new Int32Array(e), t);
  16774.                    }),
  16775.                    (n.Uint32Attribute = function (e, t) {
  16776.                        return new n.BufferAttribute(new Uint32Array(e), t);
  16777.                    }),
  16778.                    (n.Float32Attribute = function (e, t) {
  16779.                        return new n.BufferAttribute(new Float32Array(e), t);
  16780.                    }),
  16781.                    (n.Float64Attribute = function (e, t) {
  16782.                        return new n.BufferAttribute(new Float64Array(e), t);
  16783.                    }),
  16784.                    (n.DynamicBufferAttribute = function (e, t) {
  16785.                        return console.warn("THREE.DynamicBufferAttribute has been removed. Use new THREE.BufferAttribute().setDynamic( true ) instead."), new n.BufferAttribute(e, t).setDynamic(!0);
  16786.                    }),
  16787.                    (n.InstancedBufferAttribute = function (e, t, i) {
  16788.                        n.BufferAttribute.call(this, e, t), (this.meshPerAttribute = i || 1);
  16789.                    }),
  16790.                    (n.InstancedBufferAttribute.prototype = Object.create(n.BufferAttribute.prototype)),
  16791.                    (n.InstancedBufferAttribute.prototype.constructor = n.InstancedBufferAttribute),
  16792.                    (n.InstancedBufferAttribute.prototype.copy = function (e) {
  16793.                        return n.BufferAttribute.prototype.copy.call(this, e), (this.meshPerAttribute = e.meshPerAttribute), this;
  16794.                    }),
  16795.                    (n.InterleavedBuffer = function (e, t) {
  16796.                        (this.uuid = n.Math.generateUUID()), (this.array = e), (this.stride = t), (this.dynamic = !1), (this.updateRange = {
  16797.                            offset: 0,
  16798.                            count: -1
  16799.                        }), (this.version = 0);
  16800.                    }),
  16801.                    (n.InterleavedBuffer.prototype = {
  16802.                        constructor: n.InterleavedBuffer,
  16803.                        get length() {
  16804.                            return this.array.length;
  16805.                        },
  16806.                        get count() {
  16807.                            return this.array.length / this.stride;
  16808.                        },
  16809.                        set needsUpdate(e) {
  16810.                            e === !0 && this.version++;
  16811.                        },
  16812.                        setDynamic: function (e) {
  16813.                            return (this.dynamic = e), this;
  16814.                        },
  16815.                        copy: function (e) {
  16816.                            return (this.array = new e.array.constructor(e.array)), (this.stride = e.stride), (this.dynamic = e.dynamic), this;
  16817.                        },
  16818.                        copyAt: function (e, t, i) {
  16819.                            (e *= this.stride), (i *= t.stride);
  16820.                            for (var n = 0, r = this.stride; r > n; n++) this.array[e + n] = t.array[i + n];
  16821.                            return this;
  16822.                        },
  16823.                        set: function (e, t) {
  16824.                            return void 0 === t && (t = 0), this.array.set(e, t), this;
  16825.                        },
  16826.                        clone: function () {
  16827.                            return new this.constructor().copy(this);
  16828.                        },
  16829.                    }),
  16830.                    (n.InstancedInterleavedBuffer = function (e, t, i) {
  16831.                        n.InterleavedBuffer.call(this, e, t), (this.meshPerAttribute = i || 1);
  16832.                    }),
  16833.                    (n.InstancedInterleavedBuffer.prototype = Object.create(n.InterleavedBuffer.prototype)),
  16834.                    (n.InstancedInterleavedBuffer.prototype.constructor = n.InstancedInterleavedBuffer),
  16835.                    (n.InstancedInterleavedBuffer.prototype.copy = function (e) {
  16836.                        return n.InterleavedBuffer.prototype.copy.call(this, e), (this.meshPerAttribute = e.meshPerAttribute), this;
  16837.                    }),
  16838.                    (n.InterleavedBufferAttribute = function (e, t, i, r) {
  16839.                        (this.uuid = n.Math.generateUUID()), (this.data = e), (this.itemSize = t), (this.offset = i), (this.normalized = r === !0);
  16840.                    }),
  16841.                    (n.InterleavedBufferAttribute.prototype = {
  16842.                        constructor: n.InterleavedBufferAttribute,
  16843.                        get length() {
  16844.                            return console.warn("THREE.BufferAttribute: .length has been deprecated. Please use .count."), this.array.length;
  16845.                        },
  16846.                        get count() {
  16847.                            return this.data.count;
  16848.                        },
  16849.                        get array() {
  16850.                            return this.data.array;
  16851.                        },
  16852.                        setX: function (e, t) {
  16853.                            return (this.data.array[e * this.data.stride + this.offset] = t), this;
  16854.                        },
  16855.                        setY: function (e, t) {
  16856.                            return (this.data.array[e * this.data.stride + this.offset + 1] = t), this;
  16857.                        },
  16858.                        setZ: function (e, t) {
  16859.                            return (this.data.array[e * this.data.stride + this.offset + 2] = t), this;
  16860.                        },
  16861.                        setW: function (e, t) {
  16862.                            return (this.data.array[e * this.data.stride + this.offset + 3] = t), this;
  16863.                        },
  16864.                        getX: function (e) {
  16865.                            return this.data.array[e * this.data.stride + this.offset];
  16866.                        },
  16867.                        getY: function (e) {
  16868.                            return this.data.array[e * this.data.stride + this.offset + 1];
  16869.                        },
  16870.                        getZ: function (e) {
  16871.                            return this.data.array[e * this.data.stride + this.offset + 2];
  16872.                        },
  16873.                        getW: function (e) {
  16874.                            return this.data.array[e * this.data.stride + this.offset + 3];
  16875.                        },
  16876.                        setXY: function (e, t, i) {
  16877.                            return (e = e * this.data.stride + this.offset), (this.data.array[e + 0] = t), (this.data.array[e + 1] = i), this;
  16878.                        },
  16879.                        setXYZ: function (e, t, i, n) {
  16880.                            return (e = e * this.data.stride + this.offset), (this.data.array[e + 0] = t), (this.data.array[e + 1] = i), (this.data.array[e + 2] = n), this;
  16881.                        },
  16882.                        setXYZW: function (e, t, i, n, r) {
  16883.                            return (e = e * this.data.stride + this.offset), (this.data.array[e + 0] = t), (this.data.array[e + 1] = i), (this.data.array[e + 2] = n), (this.data.array[e + 3] = r), this;
  16884.                        },
  16885.                    }),
  16886.                    (n.Geometry = function () {
  16887.                        Object.defineProperty(this, "id", {
  16888.                                value: n.GeometryIdCount++
  16889.                            }),
  16890.                            (this.uuid = n.Math.generateUUID()),
  16891.                            (this.name = ""),
  16892.                            (this.type = "Geometry"),
  16893.                            (this.vertices = []),
  16894.                            (this.colors = []),
  16895.                            (this.faces = []),
  16896.                            (this.faceVertexUvs = [
  16897.                                []
  16898.                            ]),
  16899.                            (this.morphTargets = []),
  16900.                            (this.morphNormals = []),
  16901.                            (this.skinWeights = []),
  16902.                            (this.skinIndices = []),
  16903.                            (this.lineDistances = []),
  16904.                            (this.boundingBox = null),
  16905.                            (this.boundingSphere = null),
  16906.                            (this.elementsNeedUpdate = !1),
  16907.                            (this.verticesNeedUpdate = !1),
  16908.                            (this.uvsNeedUpdate = !1),
  16909.                            (this.normalsNeedUpdate = !1),
  16910.                            (this.colorsNeedUpdate = !1),
  16911.                            (this.lineDistancesNeedUpdate = !1),
  16912.                            (this.groupsNeedUpdate = !1);
  16913.                    }),
  16914.                    Object.assign(n.Geometry.prototype, n.EventDispatcher.prototype, {
  16915.                        applyMatrix: function (e) {
  16916.                            for (var t = new n.Matrix3().getNormalMatrix(e), i = 0, r = this.vertices.length; r > i; i++) {
  16917.                                var o = this.vertices[i];
  16918.                                o.applyMatrix4(e);
  16919.                            }
  16920.                            for (var i = 0, r = this.faces.length; r > i; i++) {
  16921.                                var a = this.faces[i];
  16922.                                a.normal.applyMatrix3(t).normalize();
  16923.                                for (var s = 0, l = a.vertexNormals.length; l > s; s++) a.vertexNormals[s].applyMatrix3(t).normalize();
  16924.                            }
  16925.                            return null !== this.boundingBox && this.computeBoundingBox(), null !== this.boundingSphere && this.computeBoundingSphere(), (this.verticesNeedUpdate = !0), (this.normalsNeedUpdate = !0), this;
  16926.                        },
  16927.                        rotateX: (function () {
  16928.                            var e;
  16929.                            return function (t) {
  16930.                                return void 0 === e && (e = new n.Matrix4()), e.makeRotationX(t), this.applyMatrix(e), this;
  16931.                            };
  16932.                        })(),
  16933.                        rotateY: (function () {
  16934.                            var e;
  16935.                            return function (t) {
  16936.                                return void 0 === e && (e = new n.Matrix4()), e.makeRotationY(t), this.applyMatrix(e), this;
  16937.                            };
  16938.                        })(),
  16939.                        rotateZ: (function () {
  16940.                            var e;
  16941.                            return function (t) {
  16942.                                return void 0 === e && (e = new n.Matrix4()), e.makeRotationZ(t), this.applyMatrix(e), this;
  16943.                            };
  16944.                        })(),
  16945.                        translate: (function () {
  16946.                            var e;
  16947.                            return function (t, i, r) {
  16948.                                return void 0 === e && (e = new n.Matrix4()), e.makeTranslation(t, i, r), this.applyMatrix(e), this;
  16949.                            };
  16950.                        })(),
  16951.                        scale: (function () {
  16952.                            var e;
  16953.                            return function (t, i, r) {
  16954.                                return void 0 === e && (e = new n.Matrix4()), e.makeScale(t, i, r), this.applyMatrix(e), this;
  16955.                            };
  16956.                        })(),
  16957.                        lookAt: (function () {
  16958.                            var e;
  16959.                            return function (t) {
  16960.                                void 0 === e && (e = new n.Object3D()), e.lookAt(t), e.updateMatrix(), this.applyMatrix(e.matrix);
  16961.                            };
  16962.                        })(),
  16963.                        fromBufferGeometry: function (e) {
  16964.                            function t(e, t, r, o) {
  16965.                                var a = void 0 !== s ? [h[e].clone(), h[t].clone(), h[r].clone()] : [],
  16966.                                    p = void 0 !== l ? [i.colors[e].clone(), i.colors[t].clone(), i.colors[r].clone()] : [],
  16967.                                    m = new n.Face3(e, t, r, a, p, o);
  16968.                                i.faces.push(m), void 0 !== c && i.faceVertexUvs[0].push([d[e].clone(), d[t].clone(), d[r].clone()]), void 0 !== u && i.faceVertexUvs[1].push([f[e].clone(), f[t].clone(), f[r].clone()]);
  16969.                            }
  16970.                            var i = this,
  16971.                                r = null !== e.index ? e.index.array : void 0,
  16972.                                o = e.attributes,
  16973.                                a = o.position.array,
  16974.                                s = void 0 !== o.normal ? o.normal.array : void 0,
  16975.                                l = void 0 !== o.color ? o.color.array : void 0,
  16976.                                c = void 0 !== o.uv ? o.uv.array : void 0,
  16977.                                u = void 0 !== o.uv2 ? o.uv2.array : void 0;
  16978.                            void 0 !== u && (this.faceVertexUvs[1] = []);
  16979.                            for (var h = [], d = [], f = [], p = 0, m = 0; p < a.length; p += 3, m += 2)
  16980.                                i.vertices.push(new n.Vector3(a[p], a[p + 1], a[p + 2])),
  16981.                                void 0 !== s && h.push(new n.Vector3(s[p], s[p + 1], s[p + 2])),
  16982.                                void 0 !== l && i.colors.push(new n.Color(l[p], l[p + 1], l[p + 2])),
  16983.                                void 0 !== c && d.push(new n.Vector2(c[m], c[m + 1])),
  16984.                                void 0 !== u && f.push(new n.Vector2(u[m], u[m + 1]));
  16985.                            if (void 0 !== r) {
  16986.                                var v = e.groups;
  16987.                                if (v.length > 0)
  16988.                                    for (var p = 0; p < v.length; p++)
  16989.                                        for (var g = v[p], y = g.start, _ = g.count, m = y, b = y + _; b > m; m += 3) t(r[m], r[m + 1], r[m + 2], g.materialIndex);
  16990.                                else
  16991.                                    for (var p = 0; p < r.length; p += 3) t(r[p], r[p + 1], r[p + 2]);
  16992.                            } else
  16993.                                for (var p = 0; p < a.length / 3; p += 3) t(p, p + 1, p + 2);
  16994.                            return this.computeFaceNormals(), null !== e.boundingBox && (this.boundingBox = e.boundingBox.clone()), null !== e.boundingSphere && (this.boundingSphere = e.boundingSphere.clone()), this;
  16995.                        },
  16996.                        center: function () {
  16997.                            this.computeBoundingBox();
  16998.                            var e = this.boundingBox.center().negate();
  16999.                            return this.translate(e.x, e.y, e.z), e;
  17000.                        },
  17001.                        normalize: function () {
  17002.                            this.computeBoundingSphere();
  17003.                            var e = this.boundingSphere.center,
  17004.                                t = this.boundingSphere.radius,
  17005.                                i = 0 === t ? 1 : 1 / t,
  17006.                                r = new n.Matrix4();
  17007.                            return r.set(i, 0, 0, -i * e.x, 0, i, 0, -i * e.y, 0, 0, i, -i * e.z, 0, 0, 0, 1), this.applyMatrix(r), this;
  17008.                        },
  17009.                        computeFaceNormals: function () {
  17010.                            for (var e = new n.Vector3(), t = new n.Vector3(), i = 0, r = this.faces.length; r > i; i++) {
  17011.                                var o = this.faces[i],
  17012.                                    a = this.vertices[o.a],
  17013.                                    s = this.vertices[o.b],
  17014.                                    l = this.vertices[o.c];
  17015.                                e.subVectors(l, s), t.subVectors(a, s), e.cross(t), e.normalize(), o.normal.copy(e);
  17016.                            }
  17017.                        },
  17018.                        computeVertexNormals: function (e) {
  17019.                            void 0 === e && (e = !0);
  17020.                            var t, i, r, o, a, s;
  17021.                            for (s = new Array(this.vertices.length), t = 0, i = this.vertices.length; i > t; t++) s[t] = new n.Vector3();
  17022.                            if (e) {
  17023.                                var l,
  17024.                                    c,
  17025.                                    u,
  17026.                                    h = new n.Vector3(),
  17027.                                    d = new n.Vector3();
  17028.                                for (r = 0, o = this.faces.length; o > r; r++)
  17029.                                    (a = this.faces[r]), (l = this.vertices[a.a]), (c = this.vertices[a.b]), (u = this.vertices[a.c]), h.subVectors(u, c), d.subVectors(l, c), h.cross(d), s[a.a].add(h), s[a.b].add(h), s[a.c].add(h);
  17030.                            } else
  17031.                                for (r = 0, o = this.faces.length; o > r; r++)(a = this.faces[r]), s[a.a].add(a.normal), s[a.b].add(a.normal), s[a.c].add(a.normal);
  17032.                            for (t = 0, i = this.vertices.length; i > t; t++) s[t].normalize();
  17033.                            for (r = 0, o = this.faces.length; o > r; r++) {
  17034.                                a = this.faces[r];
  17035.                                var f = a.vertexNormals;
  17036.                                3 === f.length ? (f[0].copy(s[a.a]), f[1].copy(s[a.b]), f[2].copy(s[a.c])) : ((f[0] = s[a.a].clone()), (f[1] = s[a.b].clone()), (f[2] = s[a.c].clone()));
  17037.                            }
  17038.                            this.faces.length > 0 && (this.normalsNeedUpdate = !0);
  17039.                        },
  17040.                        computeMorphNormals: function () {
  17041.                            var e, t, i, r, o;
  17042.                            for (i = 0, r = this.faces.length; r > i; i++)
  17043.                                for (
  17044.                                    o = this.faces[i],
  17045.                                    o.__originalFaceNormal ? o.__originalFaceNormal.copy(o.normal) : (o.__originalFaceNormal = o.normal.clone()),
  17046.                                    o.__originalVertexNormals || (o.__originalVertexNormals = []),
  17047.                                    e = 0,
  17048.                                    t = o.vertexNormals.length; t > e; e++
  17049.                                )
  17050.                                    o.__originalVertexNormals[e] ? o.__originalVertexNormals[e].copy(o.vertexNormals[e]) : (o.__originalVertexNormals[e] = o.vertexNormals[e].clone());
  17051.                            var a = new n.Geometry();
  17052.                            for (a.faces = this.faces, e = 0, t = this.morphTargets.length; t > e; e++) {
  17053.                                if (!this.morphNormals[e]) {
  17054.                                    (this.morphNormals[e] = {}), (this.morphNormals[e].faceNormals = []), (this.morphNormals[e].vertexNormals = []);
  17055.                                    var s,
  17056.                                        l,
  17057.                                        c = this.morphNormals[e].faceNormals,
  17058.                                        u = this.morphNormals[e].vertexNormals;
  17059.                                    for (i = 0, r = this.faces.length; r > i; i++)(s = new n.Vector3()), (l = {
  17060.                                        a: new n.Vector3(),
  17061.                                        b: new n.Vector3(),
  17062.                                        c: new n.Vector3()
  17063.                                    }), c.push(s), u.push(l);
  17064.                                }
  17065.                                var h = this.morphNormals[e];
  17066.                                (a.vertices = this.morphTargets[e].vertices), a.computeFaceNormals(), a.computeVertexNormals();
  17067.                                var s, l;
  17068.                                for (i = 0, r = this.faces.length; r > i; i++)
  17069.                                    (o = this.faces[i]), (s = h.faceNormals[i]), (l = h.vertexNormals[i]), s.copy(o.normal), l.a.copy(o.vertexNormals[0]), l.b.copy(o.vertexNormals[1]), l.c.copy(o.vertexNormals[2]);
  17070.                            }
  17071.                            for (i = 0, r = this.faces.length; r > i; i++)(o = this.faces[i]), (o.normal = o.__originalFaceNormal), (o.vertexNormals = o.__originalVertexNormals);
  17072.                        },
  17073.                        computeTangents: function () {
  17074.                            console.warn("THREE.Geometry: .computeTangents() has been removed.");
  17075.                        },
  17076.                        computeLineDistances: function () {
  17077.                            for (var e = 0, t = this.vertices, i = 0, n = t.length; n > i; i++) i > 0 && (e += t[i].distanceTo(t[i - 1])), (this.lineDistances[i] = e);
  17078.                        },
  17079.                        computeBoundingBox: function () {
  17080.                            null === this.boundingBox && (this.boundingBox = new n.Box3()), this.boundingBox.setFromPoints(this.vertices);
  17081.                        },
  17082.                        computeBoundingSphere: function () {
  17083.                            null === this.boundingSphere && (this.boundingSphere = new n.Sphere()), this.boundingSphere.setFromPoints(this.vertices);
  17084.                        },
  17085.                        merge: function (e, t, i) {
  17086.                            if (e instanceof n.Geometry == !1) return void console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.", e);
  17087.                            var r,
  17088.                                o = this.vertices.length,
  17089.                                a = this.vertices,
  17090.                                s = e.vertices,
  17091.                                l = this.faces,
  17092.                                c = e.faces,
  17093.                                u = this.faceVertexUvs[0],
  17094.                                h = e.faceVertexUvs[0];
  17095.                            void 0 === i && (i = 0), void 0 !== t && (r = new n.Matrix3().getNormalMatrix(t));
  17096.                            for (var d = 0, f = s.length; f > d; d++) {
  17097.                                var p = s[d],
  17098.                                    m = p.clone();
  17099.                                void 0 !== t && m.applyMatrix4(t), a.push(m);
  17100.                            }
  17101.                            for (d = 0, f = c.length; f > d; d++) {
  17102.                                var v,
  17103.                                    g,
  17104.                                    y,
  17105.                                    _ = c[d],
  17106.                                    b = _.vertexNormals,
  17107.                                    x = _.vertexColors;
  17108.                                (v = new n.Face3(_.a + o, _.b + o, _.c + o)), v.normal.copy(_.normal), void 0 !== r && v.normal.applyMatrix3(r).normalize();
  17109.                                for (var w = 0, M = b.length; M > w; w++)(g = b[w].clone()), void 0 !== r && g.applyMatrix3(r).normalize(), v.vertexNormals.push(g);
  17110.                                v.color.copy(_.color);
  17111.                                for (var w = 0, M = x.length; M > w; w++)(y = x[w]), v.vertexColors.push(y.clone());
  17112.                                (v.materialIndex = _.materialIndex + i), l.push(v);
  17113.                            }
  17114.                            for (d = 0, f = h.length; f > d; d++) {
  17115.                                var T = h[d],
  17116.                                    S = [];
  17117.                                if (void 0 !== T) {
  17118.                                    for (var w = 0, M = T.length; M > w; w++) S.push(T[w].clone());
  17119.                                    u.push(S);
  17120.                                }
  17121.                            }
  17122.                        },
  17123.                        mergeMesh: function (e) {
  17124.                            return e instanceof n.Mesh == !1 ? void console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.", e) : (e.matrixAutoUpdate && e.updateMatrix(), void this.merge(e.geometry, e.matrix));
  17125.                        },
  17126.                        mergeVertices: function () {
  17127.                            var e,
  17128.                                t,
  17129.                                i,
  17130.                                n,
  17131.                                r,
  17132.                                o,
  17133.                                a,
  17134.                                s,
  17135.                                l = {},
  17136.                                c = [],
  17137.                                u = [],
  17138.                                h = 4,
  17139.                                d = Math.pow(10, h);
  17140.                            for (i = 0, n = this.vertices.length; n > i; i++)
  17141.                                (e = this.vertices[i]), (t = Math.round(e.x * d) + "_" + Math.round(e.y * d) + "_" + Math.round(e.z * d)), void 0 === l[t] ? ((l[t] = i), c.push(this.vertices[i]), (u[i] = c.length - 1)) : (u[i] = u[l[t]]);
  17142.                            var f = [];
  17143.                            for (i = 0, n = this.faces.length; n > i; i++) {
  17144.                                (r = this.faces[i]), (r.a = u[r.a]), (r.b = u[r.b]), (r.c = u[r.c]), (o = [r.a, r.b, r.c]);
  17145.                                for (var p = -1, m = 0; 3 > m; m++)
  17146.                                    if (o[m] === o[(m + 1) % 3]) {
  17147.                                        (p = m), f.push(i);
  17148.                                        break;
  17149.                                    }
  17150.                            }
  17151.                            for (i = f.length - 1; i >= 0; i--) {
  17152.                                var v = f[i];
  17153.                                for (this.faces.splice(v, 1), a = 0, s = this.faceVertexUvs.length; s > a; a++) this.faceVertexUvs[a].splice(v, 1);
  17154.                            }
  17155.                            var g = this.vertices.length - c.length;
  17156.                            return (this.vertices = c), g;
  17157.                        },
  17158.                        sortFacesByMaterialIndex: function () {
  17159.                            function e(e, t) {
  17160.                                return e.materialIndex - t.materialIndex;
  17161.                            }
  17162.                            for (var t = this.faces, i = t.length, n = 0; i > n; n++) t[n]._id = n;
  17163.                            t.sort(e);
  17164.                            var r,
  17165.                                o,
  17166.                                a = this.faceVertexUvs[0],
  17167.                                s = this.faceVertexUvs[1];
  17168.                            a && a.length === i && (r = []), s && s.length === i && (o = []);
  17169.                            for (var n = 0; i > n; n++) {
  17170.                                var l = t[n]._id;
  17171.                                r && r.push(a[l]), o && o.push(s[l]);
  17172.                            }
  17173.                            r && (this.faceVertexUvs[0] = r), o && (this.faceVertexUvs[1] = o);
  17174.                        },
  17175.                        toJSON: function () {
  17176.                            function e(e, t, i) {
  17177.                                return i ? e | (1 << t) : e & ~(1 << t);
  17178.                            }
  17179.  
  17180.                            function t(e) {
  17181.                                var t = e.x.toString() + e.y.toString() + e.z.toString();
  17182.                                return void 0 !== d[t] ? d[t] : ((d[t] = h.length / 3), h.push(e.x, e.y, e.z), d[t]);
  17183.                            }
  17184.  
  17185.                            function i(e) {
  17186.                                var t = e.r.toString() + e.g.toString() + e.b.toString();
  17187.                                return void 0 !== p[t] ? p[t] : ((p[t] = f.length), f.push(e.getHex()), p[t]);
  17188.                            }
  17189.  
  17190.                            function n(e) {
  17191.                                var t = e.x.toString() + e.y.toString();
  17192.                                return void 0 !== v[t] ? v[t] : ((v[t] = m.length / 2), m.push(e.x, e.y), v[t]);
  17193.                            }
  17194.                            var r = {
  17195.                                metadata: {
  17196.                                    version: 4.4,
  17197.                                    type: "Geometry",
  17198.                                    generator: "Geometry.toJSON"
  17199.                                }
  17200.                            };
  17201.                            if (((r.uuid = this.uuid), (r.type = this.type), "" !== this.name && (r.name = this.name), void 0 !== this.parameters)) {
  17202.                                var o = this.parameters;
  17203.                                for (var a in o) void 0 !== o[a] && (r[a] = o[a]);
  17204.                                return r;
  17205.                            }
  17206.                            for (var s = [], l = 0; l < this.vertices.length; l++) {
  17207.                                var c = this.vertices[l];
  17208.                                s.push(c.x, c.y, c.z);
  17209.                            }
  17210.                            for (var u = [], h = [], d = {}, f = [], p = {}, m = [], v = {}, l = 0; l < this.faces.length; l++) {
  17211.                                var g = this.faces[l],
  17212.                                    y = !0,
  17213.                                    _ = !1,
  17214.                                    b = void 0 !== this.faceVertexUvs[0][l],
  17215.                                    x = g.normal.length() > 0,
  17216.                                    w = g.vertexNormals.length > 0,
  17217.                                    M = 1 !== g.color.r || 1 !== g.color.g || 1 !== g.color.b,
  17218.                                    T = g.vertexColors.length > 0,
  17219.                                    S = 0;
  17220.                                if (
  17221.                                    ((S = e(S, 0, 0)),
  17222.                                        (S = e(S, 1, y)),
  17223.                                        (S = e(S, 2, _)),
  17224.                                        (S = e(S, 3, b)),
  17225.                                        (S = e(S, 4, x)),
  17226.                                        (S = e(S, 5, w)),
  17227.                                        (S = e(S, 6, M)),
  17228.                                        (S = e(S, 7, T)),
  17229.                                        u.push(S),
  17230.                                        u.push(g.a, g.b, g.c),
  17231.                                        u.push(g.materialIndex),
  17232.                                        b)
  17233.                                ) {
  17234.                                    var E = this.faceVertexUvs[0][l];
  17235.                                    u.push(n(E[0]), n(E[1]), n(E[2]));
  17236.                                }
  17237.                                if ((x && u.push(t(g.normal)), w)) {
  17238.                                    var A = g.vertexNormals;
  17239.                                    u.push(t(A[0]), t(A[1]), t(A[2]));
  17240.                                }
  17241.                                if ((M && u.push(i(g.color)), T)) {
  17242.                                    var C = g.vertexColors;
  17243.                                    u.push(i(C[0]), i(C[1]), i(C[2]));
  17244.                                }
  17245.                            }
  17246.                            return (r.data = {}), (r.data.vertices = s), (r.data.normals = h), f.length > 0 && (r.data.colors = f), m.length > 0 && (r.data.uvs = [m]), (r.data.faces = u), r;
  17247.                        },
  17248.                        clone: function () {
  17249.                            return new n.Geometry().copy(this);
  17250.                        },
  17251.                        copy: function (e) {
  17252.                            (this.vertices = []), (this.faces = []), (this.faceVertexUvs = [
  17253.                                []
  17254.                            ]);
  17255.                            for (var t = e.vertices, i = 0, n = t.length; n > i; i++) this.vertices.push(t[i].clone());
  17256.                            for (var r = e.faces, i = 0, n = r.length; n > i; i++) this.faces.push(r[i].clone());
  17257.                            for (var i = 0, n = e.faceVertexUvs.length; n > i; i++) {
  17258.                                var o = e.faceVertexUvs[i];
  17259.                                void 0 === this.faceVertexUvs[i] && (this.faceVertexUvs[i] = []);
  17260.                                for (var a = 0, s = o.length; s > a; a++) {
  17261.                                    for (var l = o[a], c = [], u = 0, h = l.length; h > u; u++) {
  17262.                                        var d = l[u];
  17263.                                        c.push(d.clone());
  17264.                                    }
  17265.                                    this.faceVertexUvs[i].push(c);
  17266.                                }
  17267.                            }
  17268.                            return this;
  17269.                        },
  17270.                        dispose: function () {
  17271.                            this.dispatchEvent({
  17272.                                type: "dispose"
  17273.                            });
  17274.                        },
  17275.                    }),
  17276.                    (n.GeometryIdCount = 0),
  17277.                    (n.DirectGeometry = function () {
  17278.                        Object.defineProperty(this, "id", {
  17279.                                value: n.GeometryIdCount++
  17280.                            }),
  17281.                            (this.uuid = n.Math.generateUUID()),
  17282.                            (this.name = ""),
  17283.                            (this.type = "DirectGeometry"),
  17284.                            (this.indices = []),
  17285.                            (this.vertices = []),
  17286.                            (this.normals = []),
  17287.                            (this.colors = []),
  17288.                            (this.uvs = []),
  17289.                            (this.uvs2 = []),
  17290.                            (this.groups = []),
  17291.                            (this.morphTargets = {}),
  17292.                            (this.skinWeights = []),
  17293.                            (this.skinIndices = []),
  17294.                            (this.boundingBox = null),
  17295.                            (this.boundingSphere = null),
  17296.                            (this.verticesNeedUpdate = !1),
  17297.                            (this.normalsNeedUpdate = !1),
  17298.                            (this.colorsNeedUpdate = !1),
  17299.                            (this.uvsNeedUpdate = !1),
  17300.                            (this.groupsNeedUpdate = !1);
  17301.                    }),
  17302.                    Object.assign(n.DirectGeometry.prototype, n.EventDispatcher.prototype, {
  17303.                        computeBoundingBox: n.Geometry.prototype.computeBoundingBox,
  17304.                        computeBoundingSphere: n.Geometry.prototype.computeBoundingSphere,
  17305.                        computeFaceNormals: function () {
  17306.                            console.warn("THREE.DirectGeometry: computeFaceNormals() is not a method of this type of geometry.");
  17307.                        },
  17308.                        computeVertexNormals: function () {
  17309.                            console.warn("THREE.DirectGeometry: computeVertexNormals() is not a method of this type of geometry.");
  17310.                        },
  17311.                        computeGroups: function (e) {
  17312.                            for (var t, i, n = [], r = e.faces, o = 0; o < r.length; o++) {
  17313.                                var a = r[o];
  17314.                                a.materialIndex !== i && ((i = a.materialIndex), void 0 !== t && ((t.count = 3 * o - t.start), n.push(t)), (t = {
  17315.                                    start: 3 * o,
  17316.                                    materialIndex: i
  17317.                                }));
  17318.                            }
  17319.                            void 0 !== t && ((t.count = 3 * o - t.start), n.push(t)), (this.groups = n);
  17320.                        },
  17321.                        fromGeometry: function (e) {
  17322.                            var t,
  17323.                                i = e.faces,
  17324.                                r = e.vertices,
  17325.                                o = e.faceVertexUvs,
  17326.                                a = o[0] && o[0].length > 0,
  17327.                                s = o[1] && o[1].length > 0,
  17328.                                l = e.morphTargets,
  17329.                                c = l.length;
  17330.                            if (c > 0) {
  17331.                                t = [];
  17332.                                for (var u = 0; c > u; u++) t[u] = [];
  17333.                                this.morphTargets.position = t;
  17334.                            }
  17335.                            var h,
  17336.                                d = e.morphNormals,
  17337.                                f = d.length;
  17338.                            if (f > 0) {
  17339.                                h = [];
  17340.                                for (var u = 0; f > u; u++) h[u] = [];
  17341.                                this.morphTargets.normal = h;
  17342.                            }
  17343.                            for (var p = e.skinIndices, m = e.skinWeights, v = p.length === r.length, g = m.length === r.length, u = 0; u < i.length; u++) {
  17344.                                var y = i[u];
  17345.                                this.vertices.push(r[y.a], r[y.b], r[y.c]);
  17346.                                var _ = y.vertexNormals;
  17347.                                if (3 === _.length) this.normals.push(_[0], _[1], _[2]);
  17348.                                else {
  17349.                                    var b = y.normal;
  17350.                                    this.normals.push(b, b, b);
  17351.                                }
  17352.                                var x = y.vertexColors;
  17353.                                if (3 === x.length) this.colors.push(x[0], x[1], x[2]);
  17354.                                else {
  17355.                                    var w = y.color;
  17356.                                    this.colors.push(w, w, w);
  17357.                                }
  17358.                                if (a === !0) {
  17359.                                    var M = o[0][u];
  17360.                                    void 0 !== M ? this.uvs.push(M[0], M[1], M[2]) : (console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ", u), this.uvs.push(new n.Vector2(), new n.Vector2(), new n.Vector2()));
  17361.                                }
  17362.                                if (s === !0) {
  17363.                                    var M = o[1][u];
  17364.                                    void 0 !== M ? this.uvs2.push(M[0], M[1], M[2]) : (console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ", u), this.uvs2.push(new n.Vector2(), new n.Vector2(), new n.Vector2()));
  17365.                                }
  17366.                                for (var T = 0; c > T; T++) {
  17367.                                    var S = l[T].vertices;
  17368.                                    t[T].push(S[y.a], S[y.b], S[y.c]);
  17369.                                }
  17370.                                for (var T = 0; f > T; T++) {
  17371.                                    var E = d[T].vertexNormals[u];
  17372.                                    h[T].push(E.a, E.b, E.c);
  17373.                                }
  17374.                                v && this.skinIndices.push(p[y.a], p[y.b], p[y.c]), g && this.skinWeights.push(m[y.a], m[y.b], m[y.c]);
  17375.                            }
  17376.                            return (
  17377.                                this.computeGroups(e),
  17378.                                (this.verticesNeedUpdate = e.verticesNeedUpdate),
  17379.                                (this.normalsNeedUpdate = e.normalsNeedUpdate),
  17380.                                (this.colorsNeedUpdate = e.colorsNeedUpdate),
  17381.                                (this.uvsNeedUpdate = e.uvsNeedUpdate),
  17382.                                (this.groupsNeedUpdate = e.groupsNeedUpdate),
  17383.                                this
  17384.                            );
  17385.                        },
  17386.                        dispose: function () {
  17387.                            this.dispatchEvent({
  17388.                                type: "dispose"
  17389.                            });
  17390.                        },
  17391.                    }),
  17392.                    (n.BufferGeometry = function () {
  17393.                        Object.defineProperty(this, "id", {
  17394.                                value: n.GeometryIdCount++
  17395.                            }),
  17396.                            (this.uuid = n.Math.generateUUID()),
  17397.                            (this.name = ""),
  17398.                            (this.type = "BufferGeometry"),
  17399.                            (this.index = null),
  17400.                            (this.attributes = {}),
  17401.                            (this.morphAttributes = {}),
  17402.                            (this.groups = []),
  17403.                            (this.boundingBox = null),
  17404.                            (this.boundingSphere = null),
  17405.                            (this.drawRange = {
  17406.                                start: 0,
  17407.                                count: 1 / 0
  17408.                            });
  17409.                    }),
  17410.                    Object.assign(n.BufferGeometry.prototype, n.EventDispatcher.prototype, {
  17411.                        getIndex: function () {
  17412.                            return this.index;
  17413.                        },
  17414.                        setIndex: function (e) {
  17415.                            this.index = e;
  17416.                        },
  17417.                        addAttribute: function (e, t) {
  17418.                            return t instanceof n.BufferAttribute == !1 && t instanceof n.InterleavedBufferAttribute == !1 ?
  17419.                                (console.warn("THREE.BufferGeometry: .addAttribute() now expects ( name, attribute )."), void this.addAttribute(e, new n.BufferAttribute(arguments[1], arguments[2]))) :
  17420.                                "index" === e ?
  17421.                                (console.warn("THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute."), void this.setIndex(t)) :
  17422.                                ((this.attributes[e] = t), this);
  17423.                        },
  17424.                        getAttribute: function (e) {
  17425.                            return this.attributes[e];
  17426.                        },
  17427.                        removeAttribute: function (e) {
  17428.                            return delete this.attributes[e], this;
  17429.                        },
  17430.                        addGroup: function (e, t, i) {
  17431.                            this.groups.push({
  17432.                                start: e,
  17433.                                count: t,
  17434.                                materialIndex: void 0 !== i ? i : 0
  17435.                            });
  17436.                        },
  17437.                        clearGroups: function () {
  17438.                            this.groups = [];
  17439.                        },
  17440.                        setDrawRange: function (e, t) {
  17441.                            (this.drawRange.start = e), (this.drawRange.count = t);
  17442.                        },
  17443.                        applyMatrix: function (e) {
  17444.                            var t = this.attributes.position;
  17445.                            void 0 !== t && (e.applyToVector3Array(t.array), (t.needsUpdate = !0));
  17446.                            var i = this.attributes.normal;
  17447.                            if (void 0 !== i) {
  17448.                                var r = new n.Matrix3().getNormalMatrix(e);
  17449.                                r.applyToVector3Array(i.array), (i.needsUpdate = !0);
  17450.                            }
  17451.                            return null !== this.boundingBox && this.computeBoundingBox(), null !== this.boundingSphere && this.computeBoundingSphere(), this;
  17452.                        },
  17453.                        rotateX: (function () {
  17454.                            var e;
  17455.                            return function (t) {
  17456.                                return void 0 === e && (e = new n.Matrix4()), e.makeRotationX(t), this.applyMatrix(e), this;
  17457.                            };
  17458.                        })(),
  17459.                        rotateY: (function () {
  17460.                            var e;
  17461.                            return function (t) {
  17462.                                return void 0 === e && (e = new n.Matrix4()), e.makeRotationY(t), this.applyMatrix(e), this;
  17463.                            };
  17464.                        })(),
  17465.                        rotateZ: (function () {
  17466.                            var e;
  17467.                            return function (t) {
  17468.                                return void 0 === e && (e = new n.Matrix4()), e.makeRotationZ(t), this.applyMatrix(e), this;
  17469.                            };
  17470.                        })(),
  17471.                        translate: (function () {
  17472.                            var e;
  17473.                            return function (t, i, r) {
  17474.                                return void 0 === e && (e = new n.Matrix4()), e.makeTranslation(t, i, r), this.applyMatrix(e), this;
  17475.                            };
  17476.                        })(),
  17477.                        scale: (function () {
  17478.                            var e;
  17479.                            return function (t, i, r) {
  17480.                                return void 0 === e && (e = new n.Matrix4()), e.makeScale(t, i, r), this.applyMatrix(e), this;
  17481.                            };
  17482.                        })(),
  17483.                        lookAt: (function () {
  17484.                            var e;
  17485.                            return function (t) {
  17486.                                void 0 === e && (e = new n.Object3D()), e.lookAt(t), e.updateMatrix(), this.applyMatrix(e.matrix);
  17487.                            };
  17488.                        })(),
  17489.                        center: function () {
  17490.                            this.computeBoundingBox();
  17491.                            var e = this.boundingBox.center().negate();
  17492.                            return this.translate(e.x, e.y, e.z), e;
  17493.                        },
  17494.                        setFromObject: function (e) {
  17495.                            var t = e.geometry;
  17496.                            if (e instanceof n.Points || e instanceof n.Line) {
  17497.                                var i = new n.Float32Attribute(3 * t.vertices.length, 3),
  17498.                                    r = new n.Float32Attribute(3 * t.colors.length, 3);
  17499.                                if ((this.addAttribute("position", i.copyVector3sArray(t.vertices)), this.addAttribute("color", r.copyColorsArray(t.colors)), t.lineDistances && t.lineDistances.length === t.vertices.length)) {
  17500.                                    var o = new n.Float32Attribute(t.lineDistances.length, 1);
  17501.                                    this.addAttribute("lineDistance", o.copyArray(t.lineDistances));
  17502.                                }
  17503.                                null !== t.boundingSphere && (this.boundingSphere = t.boundingSphere.clone()), null !== t.boundingBox && (this.boundingBox = t.boundingBox.clone());
  17504.                            } else e instanceof n.Mesh && t instanceof n.Geometry && this.fromGeometry(t);
  17505.                            return this;
  17506.                        },
  17507.                        updateFromObject: function (e) {
  17508.                            var t = e.geometry;
  17509.                            if (e instanceof n.Mesh) {
  17510.                                var i = t.__directGeometry;
  17511.                                if (void 0 === i || t.elementsNeedUpdate === !0) return this.fromGeometry(t);
  17512.                                (i.verticesNeedUpdate = t.verticesNeedUpdate || t.elementsNeedUpdate),
  17513.                                (i.normalsNeedUpdate = t.normalsNeedUpdate || t.elementsNeedUpdate),
  17514.                                (i.colorsNeedUpdate = t.colorsNeedUpdate || t.elementsNeedUpdate),
  17515.                                (i.uvsNeedUpdate = t.uvsNeedUpdate || t.elementsNeedUpdate),
  17516.                                (i.groupsNeedUpdate = t.groupsNeedUpdate || t.elementsNeedUpdate),
  17517.                                (t.elementsNeedUpdate = !1),
  17518.                                (t.verticesNeedUpdate = !1),
  17519.                                (t.normalsNeedUpdate = !1),
  17520.                                (t.colorsNeedUpdate = !1),
  17521.                                (t.uvsNeedUpdate = !1),
  17522.                                (t.groupsNeedUpdate = !1),
  17523.                                (t = i);
  17524.                            }
  17525.                            var r;
  17526.                            return (
  17527.                                t.verticesNeedUpdate === !0 && ((r = this.attributes.position), void 0 !== r && (r.copyVector3sArray(t.vertices), (r.needsUpdate = !0)), (t.verticesNeedUpdate = !1)),
  17528.                                t.normalsNeedUpdate === !0 && ((r = this.attributes.normal), void 0 !== r && (r.copyVector3sArray(t.normals), (r.needsUpdate = !0)), (t.normalsNeedUpdate = !1)),
  17529.                                t.colorsNeedUpdate === !0 && ((r = this.attributes.color), void 0 !== r && (r.copyColorsArray(t.colors), (r.needsUpdate = !0)), (t.colorsNeedUpdate = !1)),
  17530.                                t.uvsNeedUpdate && ((r = this.attributes.uv), void 0 !== r && (r.copyVector2sArray(t.uvs), (r.needsUpdate = !0)), (t.uvsNeedUpdate = !1)),
  17531.                                t.lineDistancesNeedUpdate && ((r = this.attributes.lineDistance), void 0 !== r && (r.copyArray(t.lineDistances), (r.needsUpdate = !0)), (t.lineDistancesNeedUpdate = !1)),
  17532.                                t.groupsNeedUpdate && (t.computeGroups(e.geometry), (this.groups = t.groups), (t.groupsNeedUpdate = !1)),
  17533.                                this
  17534.                            );
  17535.                        },
  17536.                        fromGeometry: function (e) {
  17537.                            return (e.__directGeometry = new n.DirectGeometry().fromGeometry(e)), this.fromDirectGeometry(e.__directGeometry);
  17538.                        },
  17539.                        fromDirectGeometry: function (e) {
  17540.                            var t = new Float32Array(3 * e.vertices.length);
  17541.                            if ((this.addAttribute("position", new n.BufferAttribute(t, 3).copyVector3sArray(e.vertices)), e.normals.length > 0)) {
  17542.                                var i = new Float32Array(3 * e.normals.length);
  17543.                                this.addAttribute("normal", new n.BufferAttribute(i, 3).copyVector3sArray(e.normals));
  17544.                            }
  17545.                            if (e.colors.length > 0) {
  17546.                                var r = new Float32Array(3 * e.colors.length);
  17547.                                this.addAttribute("color", new n.BufferAttribute(r, 3).copyColorsArray(e.colors));
  17548.                            }
  17549.                            if (e.uvs.length > 0) {
  17550.                                var o = new Float32Array(2 * e.uvs.length);
  17551.                                this.addAttribute("uv", new n.BufferAttribute(o, 2).copyVector2sArray(e.uvs));
  17552.                            }
  17553.                            if (e.uvs2.length > 0) {
  17554.                                var a = new Float32Array(2 * e.uvs2.length);
  17555.                                this.addAttribute("uv2", new n.BufferAttribute(a, 2).copyVector2sArray(e.uvs2));
  17556.                            }
  17557.                            if (e.indices.length > 0) {
  17558.                                var s = e.vertices.length > 65535 ? Uint32Array : Uint16Array,
  17559.                                    l = new s(3 * e.indices.length);
  17560.                                this.setIndex(new n.BufferAttribute(l, 1).copyIndicesArray(e.indices));
  17561.                            }
  17562.                            this.groups = e.groups;
  17563.                            for (var c in e.morphTargets) {
  17564.                                for (var u = [], h = e.morphTargets[c], d = 0, f = h.length; f > d; d++) {
  17565.                                    var p = h[d],
  17566.                                        m = new n.Float32Attribute(3 * p.length, 3);
  17567.                                    u.push(m.copyVector3sArray(p));
  17568.                                }
  17569.                                this.morphAttributes[c] = u;
  17570.                            }
  17571.                            if (e.skinIndices.length > 0) {
  17572.                                var v = new n.Float32Attribute(4 * e.skinIndices.length, 4);
  17573.                                this.addAttribute("skinIndex", v.copyVector4sArray(e.skinIndices));
  17574.                            }
  17575.                            if (e.skinWeights.length > 0) {
  17576.                                var g = new n.Float32Attribute(4 * e.skinWeights.length, 4);
  17577.                                this.addAttribute("skinWeight", g.copyVector4sArray(e.skinWeights));
  17578.                            }
  17579.                            return null !== e.boundingSphere && (this.boundingSphere = e.boundingSphere.clone()), null !== e.boundingBox && (this.boundingBox = e.boundingBox.clone()), this;
  17580.                        },
  17581.                        computeBoundingBox: function () {
  17582.                            null === this.boundingBox && (this.boundingBox = new n.Box3());
  17583.                            var e = this.attributes.position.array;
  17584.                            void 0 !== e ? this.boundingBox.setFromArray(e) : this.boundingBox.makeEmpty(),
  17585.                                (isNaN(this.boundingBox.min.x) || isNaN(this.boundingBox.min.y) || isNaN(this.boundingBox.min.z)) &&
  17586.                                console.error('THREE.BufferGeometry.computeBoundingBox: Computed min/max have NaN values. The "position" attribute is likely to have NaN values.', this);
  17587.                        },
  17588.                        computeBoundingSphere: (function () {
  17589.                            var e = new n.Box3(),
  17590.                                t = new n.Vector3();
  17591.                            return function () {
  17592.                                null === this.boundingSphere && (this.boundingSphere = new n.Sphere());
  17593.                                var i = this.attributes.position;
  17594.                                if (i) {
  17595.                                    var r = i.array,
  17596.                                        o = this.boundingSphere.center;
  17597.                                    e.setFromArray(r), e.center(o);
  17598.                                    for (var a = 0, s = 0, l = r.length; l > s; s += 3) t.fromArray(r, s), (a = Math.max(a, o.distanceToSquared(t)));
  17599.                                    (this.boundingSphere.radius = Math.sqrt(a)),
  17600.                                    isNaN(this.boundingSphere.radius) && console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.', this);
  17601.                                }
  17602.                            };
  17603.                        })(),
  17604.                        computeFaceNormals: function () {},
  17605.                        computeVertexNormals: function () {
  17606.                            var e = this.index,
  17607.                                t = this.attributes,
  17608.                                i = this.groups;
  17609.                            if (t.position) {
  17610.                                var r = t.position.array;
  17611.                                if (void 0 === t.normal) this.addAttribute("normal", new n.BufferAttribute(new Float32Array(r.length), 3));
  17612.                                else
  17613.                                    for (var o = t.normal.array, a = 0, s = o.length; s > a; a++) o[a] = 0;
  17614.                                var l,
  17615.                                    c,
  17616.                                    u,
  17617.                                    h = t.normal.array,
  17618.                                    d = new n.Vector3(),
  17619.                                    f = new n.Vector3(),
  17620.                                    p = new n.Vector3(),
  17621.                                    m = new n.Vector3(),
  17622.                                    v = new n.Vector3();
  17623.                                if (e) {
  17624.                                    var g = e.array;
  17625.                                    0 === i.length && this.addGroup(0, g.length);
  17626.                                    for (var y = 0, _ = i.length; _ > y; ++y)
  17627.                                        for (var b = i[y], x = b.start, w = b.count, a = x, s = x + w; s > a; a += 3)
  17628.                                            (l = 3 * g[a + 0]),
  17629.                                            (c = 3 * g[a + 1]),
  17630.                                            (u = 3 * g[a + 2]),
  17631.                                            d.fromArray(r, l),
  17632.                                            f.fromArray(r, c),
  17633.                                            p.fromArray(r, u),
  17634.                                            m.subVectors(p, f),
  17635.                                            v.subVectors(d, f),
  17636.                                            m.cross(v),
  17637.                                            (h[l] += m.x),
  17638.                                            (h[l + 1] += m.y),
  17639.                                            (h[l + 2] += m.z),
  17640.                                            (h[c] += m.x),
  17641.                                            (h[c + 1] += m.y),
  17642.                                            (h[c + 2] += m.z),
  17643.                                            (h[u] += m.x),
  17644.                                            (h[u + 1] += m.y),
  17645.                                            (h[u + 2] += m.z);
  17646.                                } else
  17647.                                    for (var a = 0, s = r.length; s > a; a += 9)
  17648.                                        d.fromArray(r, a),
  17649.                                        f.fromArray(r, a + 3),
  17650.                                        p.fromArray(r, a + 6),
  17651.                                        m.subVectors(p, f),
  17652.                                        v.subVectors(d, f),
  17653.                                        m.cross(v),
  17654.                                        (h[a] = m.x),
  17655.                                        (h[a + 1] = m.y),
  17656.                                        (h[a + 2] = m.z),
  17657.                                        (h[a + 3] = m.x),
  17658.                                        (h[a + 4] = m.y),
  17659.                                        (h[a + 5] = m.z),
  17660.                                        (h[a + 6] = m.x),
  17661.                                        (h[a + 7] = m.y),
  17662.                                        (h[a + 8] = m.z);
  17663.                                this.normalizeNormals(), (t.normal.needsUpdate = !0);
  17664.                            }
  17665.                        },
  17666.                        merge: function (e, t) {
  17667.                            if (e instanceof n.BufferGeometry == !1) return void console.error("THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.", e);
  17668.                            void 0 === t && (t = 0);
  17669.                            var i = this.attributes;
  17670.                            for (var r in i)
  17671.                                if (void 0 !== e.attributes[r])
  17672.                                    for (var o = i[r], a = o.array, s = e.attributes[r], l = s.array, c = s.itemSize, u = 0, h = c * t; u < l.length; u++, h++) a[h] = l[u];
  17673.                            return this;
  17674.                        },
  17675.                        normalizeNormals: function () {
  17676.                            for (var e, t, i, n, r = this.attributes.normal.array, o = 0, a = r.length; a > o; o += 3)
  17677.                                (e = r[o]), (t = r[o + 1]), (i = r[o + 2]), (n = 1 / Math.sqrt(e * e + t * t + i * i)), (r[o] *= n), (r[o + 1] *= n), (r[o + 2] *= n);
  17678.                        },
  17679.                        toNonIndexed: function () {
  17680.                            if (null === this.index) return console.warn("THREE.BufferGeometry.toNonIndexed(): Geometry is already non-indexed."), this;
  17681.                            var e = new n.BufferGeometry(),
  17682.                                t = this.index.array,
  17683.                                i = this.attributes;
  17684.                            for (var r in i) {
  17685.                                for (var o = i[r], a = o.array, s = o.itemSize, l = new a.constructor(t.length * s), c = 0, u = 0, h = 0, d = t.length; d > h; h++) {
  17686.                                    c = t[h] * s;
  17687.                                    for (var f = 0; s > f; f++) l[u++] = a[c++];
  17688.                                }
  17689.                                e.addAttribute(r, new n.BufferAttribute(l, s));
  17690.                            }
  17691.                            return e;
  17692.                        },
  17693.                        toJSON: function () {
  17694.                            var e = {
  17695.                                metadata: {
  17696.                                    version: 4.4,
  17697.                                    type: "BufferGeometry",
  17698.                                    generator: "BufferGeometry.toJSON"
  17699.                                }
  17700.                            };
  17701.                            if (((e.uuid = this.uuid), (e.type = this.type), "" !== this.name && (e.name = this.name), void 0 !== this.parameters)) {
  17702.                                var t = this.parameters;
  17703.                                for (var i in t) void 0 !== t[i] && (e[i] = t[i]);
  17704.                                return e;
  17705.                            }
  17706.                            e.data = {
  17707.                                attributes: {}
  17708.                            };
  17709.                            var n = this.index;
  17710.                            if (null !== n) {
  17711.                                var r = Array.prototype.slice.call(n.array);
  17712.                                e.data.index = {
  17713.                                    type: n.array.constructor.name,
  17714.                                    array: r
  17715.                                };
  17716.                            }
  17717.                            var o = this.attributes;
  17718.                            for (var i in o) {
  17719.                                var a = o[i],
  17720.                                    r = Array.prototype.slice.call(a.array);
  17721.                                e.data.attributes[i] = {
  17722.                                    itemSize: a.itemSize,
  17723.                                    type: a.array.constructor.name,
  17724.                                    array: r,
  17725.                                    normalized: a.normalized
  17726.                                };
  17727.                            }
  17728.                            var s = this.groups;
  17729.                            s.length > 0 && (e.data.groups = JSON.parse(JSON.stringify(s)));
  17730.                            var l = this.boundingSphere;
  17731.                            return null !== l && (e.data.boundingSphere = {
  17732.                                center: l.center.toArray(),
  17733.                                radius: l.radius
  17734.                            }), e;
  17735.                        },
  17736.                        clone: function () {
  17737.                            return new n.BufferGeometry().copy(this);
  17738.                        },
  17739.                        copy: function (e) {
  17740.                            var t = e.index;
  17741.                            null !== t && this.setIndex(t.clone());
  17742.                            var i = e.attributes;
  17743.                            for (var n in i) {
  17744.                                var r = i[n];
  17745.                                this.addAttribute(n, r.clone());
  17746.                            }
  17747.                            for (var o = e.groups, a = 0, s = o.length; s > a; a++) {
  17748.                                var l = o[a];
  17749.                                this.addGroup(l.start, l.count, l.materialIndex);
  17750.                            }
  17751.                            return this;
  17752.                        },
  17753.                        dispose: function () {
  17754.                            this.dispatchEvent({
  17755.                                type: "dispose"
  17756.                            });
  17757.                        },
  17758.                    }),
  17759.                    (n.BufferGeometry.MaxIndex = 65535),
  17760.                    (n.InstancedBufferGeometry = function () {
  17761.                        n.BufferGeometry.call(this), (this.type = "InstancedBufferGeometry"), (this.maxInstancedCount = void 0);
  17762.                    }),
  17763.                    (n.InstancedBufferGeometry.prototype = Object.create(n.BufferGeometry.prototype)),
  17764.                    (n.InstancedBufferGeometry.prototype.constructor = n.InstancedBufferGeometry),
  17765.                    (n.InstancedBufferGeometry.prototype.addGroup = function (e, t, i) {
  17766.                        this.groups.push({
  17767.                            start: e,
  17768.                            count: t,
  17769.                            instances: i
  17770.                        });
  17771.                    }),
  17772.                    (n.InstancedBufferGeometry.prototype.copy = function (e) {
  17773.                        var t = e.index;
  17774.                        null !== t && this.setIndex(t.clone());
  17775.                        var i = e.attributes;
  17776.                        for (var n in i) {
  17777.                            var r = i[n];
  17778.                            this.addAttribute(n, r.clone());
  17779.                        }
  17780.                        for (var o = e.groups, a = 0, s = o.length; s > a; a++) {
  17781.                            var l = o[a];
  17782.                            this.addGroup(l.start, l.count, l.instances);
  17783.                        }
  17784.                        return this;
  17785.                    }),
  17786.                    (n.Uniform = function (e) {
  17787.                        "string" == typeof e && (console.warn("THREE.Uniform: Type parameter is no longer needed."), (e = arguments[1])), (this.value = e), (this.dynamic = !1);
  17788.                    }),
  17789.                    (n.Uniform.prototype = {
  17790.                        constructor: n.Uniform,
  17791.                        onUpdate: function (e) {
  17792.                            return (this.dynamic = !0), (this.onUpdateCallback = e), this;
  17793.                        },
  17794.                    }),
  17795.                    (n.AnimationAction = function () {
  17796.                        throw new Error("THREE.AnimationAction: Use mixer.clipAction for construction.");
  17797.                    }),
  17798.                    (n.AnimationAction._new = function (e, t, i) {
  17799.                        (this._mixer = e), (this._clip = t), (this._localRoot = i || null);
  17800.                        for (var r = t.tracks, o = r.length, a = new Array(o), s = {
  17801.                                endingStart: n.ZeroCurvatureEnding,
  17802.                                endingEnd: n.ZeroCurvatureEnding
  17803.                            }, l = 0; l !== o; ++l) {
  17804.                            var c = r[l].createInterpolant(null);
  17805.                            (a[l] = c), (c.settings = s);
  17806.                        }
  17807.                        (this._interpolantSettings = s),
  17808.                        (this._interpolants = a),
  17809.                        (this._propertyBindings = new Array(o)),
  17810.                        (this._cacheIndex = null),
  17811.                        (this._byClipCacheIndex = null),
  17812.                        (this._timeScaleInterpolant = null),
  17813.                        (this._weightInterpolant = null),
  17814.                        (this.loop = n.LoopRepeat),
  17815.                        (this._loopCount = -1),
  17816.                        (this._startTime = null),
  17817.                        (this.time = 0),
  17818.                        (this.timeScale = 1),
  17819.                        (this._effectiveTimeScale = 1),
  17820.                        (this.weight = 1),
  17821.                        (this._effectiveWeight = 1),
  17822.                        (this.repetitions = 1 / 0),
  17823.                        (this.paused = !1),
  17824.                        (this.enabled = !0),
  17825.                        (this.clampWhenFinished = !1),
  17826.                        (this.zeroSlopeAtStart = !0),
  17827.                        (this.zeroSlopeAtEnd = !0);
  17828.                    }),
  17829.                    (n.AnimationAction._new.prototype = {
  17830.                        constructor: n.AnimationAction._new,
  17831.                        play: function () {
  17832.                            return this._mixer._activateAction(this), this;
  17833.                        },
  17834.                        stop: function () {
  17835.                            return this._mixer._deactivateAction(this), this.reset();
  17836.                        },
  17837.                        reset: function () {
  17838.                            return (this.paused = !1), (this.enabled = !0), (this.time = 0), (this._loopCount = -1), (this._startTime = null), this.stopFading().stopWarping();
  17839.                        },
  17840.                        isRunning: function () {
  17841.                            this._startTime;
  17842.                            return this.enabled && !this.paused && 0 !== this.timeScale && null === this._startTime && this._mixer._isActiveAction(this);
  17843.                        },
  17844.                        isScheduled: function () {
  17845.                            return this._mixer._isActiveAction(this);
  17846.                        },
  17847.                        startAt: function (e) {
  17848.                            return (this._startTime = e), this;
  17849.                        },
  17850.                        setLoop: function (e, t) {
  17851.                            return (this.loop = e), (this.repetitions = t), this;
  17852.                        },
  17853.                        setEffectiveWeight: function (e) {
  17854.                            return (this.weight = e), (this._effectiveWeight = this.enabled ? e : 0), this.stopFading();
  17855.                        },
  17856.                        getEffectiveWeight: function () {
  17857.                            return this._effectiveWeight;
  17858.                        },
  17859.                        fadeIn: function (e) {
  17860.                            return this._scheduleFading(e, 0, 1);
  17861.                        },
  17862.                        fadeOut: function (e) {
  17863.                            return this._scheduleFading(e, 1, 0);
  17864.                        },
  17865.                        crossFadeFrom: function (e, t, i) {
  17866.                            this._mixer;
  17867.                            if ((e.fadeOut(t), this.fadeIn(t), i)) {
  17868.                                var n = this._clip.duration,
  17869.                                    r = e._clip.duration,
  17870.                                    o = r / n,
  17871.                                    a = n / r;
  17872.                                e.warp(1, o, t), this.warp(a, 1, t);
  17873.                            }
  17874.                            return this;
  17875.                        },
  17876.                        crossFadeTo: function (e, t, i) {
  17877.                            return e.crossFadeFrom(this, t, i);
  17878.                        },
  17879.                        stopFading: function () {
  17880.                            var e = this._weightInterpolant;
  17881.                            return null !== e && ((this._weightInterpolant = null), this._mixer._takeBackControlInterpolant(e)), this;
  17882.                        },
  17883.                        setEffectiveTimeScale: function (e) {
  17884.                            return (this.timeScale = e), (this._effectiveTimeScale = this.paused ? 0 : e), this.stopWarping();
  17885.                        },
  17886.                        getEffectiveTimeScale: function () {
  17887.                            return this._effectiveTimeScale;
  17888.                        },
  17889.                        setDuration: function (e) {
  17890.                            return (this.timeScale = this._clip.duration / e), this.stopWarping();
  17891.                        },
  17892.                        syncWith: function (e) {
  17893.                            return (this.time = e.time), (this.timeScale = e.timeScale), this.stopWarping();
  17894.                        },
  17895.                        halt: function (e) {
  17896.                            return this.warp(this._effectiveTimeScale, 0, e);
  17897.                        },
  17898.                        warp: function (e, t, i) {
  17899.                            var n = this._mixer,
  17900.                                r = n.time,
  17901.                                o = this._timeScaleInterpolant,
  17902.                                a = this.timeScale;
  17903.                            null === o && ((o = n._lendControlInterpolant()), (this._timeScaleInterpolant = o));
  17904.                            var s = o.parameterPositions,
  17905.                                l = o.sampleValues;
  17906.                            return (s[0] = r), (s[1] = r + i), (l[0] = e / a), (l[1] = t / a), this;
  17907.                        },
  17908.                        stopWarping: function () {
  17909.                            var e = this._timeScaleInterpolant;
  17910.                            return null !== e && ((this._timeScaleInterpolant = null), this._mixer._takeBackControlInterpolant(e)), this;
  17911.                        },
  17912.                        getMixer: function () {
  17913.                            return this._mixer;
  17914.                        },
  17915.                        getClip: function () {
  17916.                            return this._clip;
  17917.                        },
  17918.                        getRoot: function () {
  17919.                            return this._localRoot || this._mixer._root;
  17920.                        },
  17921.                        _update: function (e, t, i, n) {
  17922.                            var r = this._startTime;
  17923.                            if (null !== r) {
  17924.                                var o = (e - r) * i;
  17925.                                if (0 > o || 0 === i) return;
  17926.                                (this._startTime = null), (t = i * o);
  17927.                            }
  17928.                            t *= this._updateTimeScale(e);
  17929.                            var a = this._updateTime(t),
  17930.                                s = this._updateWeight(e);
  17931.                            if (s > 0)
  17932.                                for (var l = this._interpolants, c = this._propertyBindings, u = 0, h = l.length; u !== h; ++u) l[u].evaluate(a), c[u].accumulate(n, s);
  17933.                        },
  17934.                        _updateWeight: function (e) {
  17935.                            var t = 0;
  17936.                            if (this.enabled) {
  17937.                                t = this.weight;
  17938.                                var i = this._weightInterpolant;
  17939.                                if (null !== i) {
  17940.                                    var n = i.evaluate(e)[0];
  17941.                                    (t *= n), e > i.parameterPositions[1] && (this.stopFading(), 0 === n && (this.enabled = !1));
  17942.                                }
  17943.                            }
  17944.                            return (this._effectiveWeight = t), t;
  17945.                        },
  17946.                        _updateTimeScale: function (e) {
  17947.                            var t = 0;
  17948.                            if (!this.paused) {
  17949.                                t = this.timeScale;
  17950.                                var i = this._timeScaleInterpolant;
  17951.                                if (null !== i) {
  17952.                                    var n = i.evaluate(e)[0];
  17953.                                    (t *= n), e > i.parameterPositions[1] && (this.stopWarping(), 0 === t ? (this.paused = !0) : (this.timeScale = t));
  17954.                                }
  17955.                            }
  17956.                            return (this._effectiveTimeScale = t), t;
  17957.                        },
  17958.                        _updateTime: function (e) {
  17959.                            var t = this.time + e;
  17960.                            if (0 === e) return t;
  17961.                            var i = this._clip.duration,
  17962.                                r = this.loop,
  17963.                                o = this._loopCount;
  17964.                            if (r === n.LoopOnce) {
  17965.                                -1 === o && ((this.loopCount = 0), this._setEndings(!0, !0, !1));
  17966.                                e: {
  17967.                                    if (t >= i) t = i;
  17968.                                    else {
  17969.                                        if (!(0 > t)) break e;
  17970.                                        t = 0;
  17971.                                    }
  17972.                                    this.clampWhenFinished ? (this.paused = !0) : (this.enabled = !1),
  17973.                                    this._mixer.dispatchEvent({
  17974.                                        type: "finished",
  17975.                                        action: this,
  17976.                                        direction: 0 > e ? -1 : 1
  17977.                                    });
  17978.                                }
  17979.                            } else {
  17980.                                var a = r === n.LoopPingPong;
  17981.                                if ((-1 === o && (e >= 0 ? ((o = 0), this._setEndings(!0, 0 === this.repetitions, a)) : this._setEndings(0 === this.repetitions, !0, a)), t >= i || 0 > t)) {
  17982.                                    var s = Math.floor(t / i);
  17983.                                    (t -= i * s), (o += Math.abs(s));
  17984.                                    var l = this.repetitions - o;
  17985.                                    if (0 > l) this.clampWhenFinished ? (this.paused = !0) : (this.enabled = !1), (t = e > 0 ? i : 0), this._mixer.dispatchEvent({
  17986.                                        type: "finished",
  17987.                                        action: this,
  17988.                                        direction: e > 0 ? 1 : -1
  17989.                                    });
  17990.                                    else {
  17991.                                        if (0 === l) {
  17992.                                            var c = 0 > e;
  17993.                                            this._setEndings(c, !c, a);
  17994.                                        } else this._setEndings(!1, !1, a);
  17995.                                        (this._loopCount = o), this._mixer.dispatchEvent({
  17996.                                            type: "loop",
  17997.                                            action: this,
  17998.                                            loopDelta: s
  17999.                                        });
  18000.                                    }
  18001.                                }
  18002.                                if (a && 1 === (1 & o)) return (this.time = t), i - t;
  18003.                            }
  18004.                            return (this.time = t), t;
  18005.                        },
  18006.                        _setEndings: function (e, t, i) {
  18007.                            var r = this._interpolantSettings;
  18008.                            i
  18009.                                ?
  18010.                                ((r.endingStart = n.ZeroSlopeEnding), (r.endingEnd = n.ZeroSlopeEnding)) :
  18011.                                (e ? (r.endingStart = this.zeroSlopeAtStart ? n.ZeroSlopeEnding : n.ZeroCurvatureEnding) : (r.endingStart = n.WrapAroundEnding),
  18012.                                    t ? (r.endingEnd = this.zeroSlopeAtEnd ? n.ZeroSlopeEnding : n.ZeroCurvatureEnding) : (r.endingEnd = n.WrapAroundEnding));
  18013.                        },
  18014.                        _scheduleFading: function (e, t, i) {
  18015.                            var n = this._mixer,
  18016.                                r = n.time,
  18017.                                o = this._weightInterpolant;
  18018.                            null === o && ((o = n._lendControlInterpolant()), (this._weightInterpolant = o));
  18019.                            var a = o.parameterPositions,
  18020.                                s = o.sampleValues;
  18021.                            return (a[0] = r), (s[0] = t), (a[1] = r + e), (s[1] = i), this;
  18022.                        },
  18023.                    }),
  18024.                    (n.AnimationClip = function (e, t, i) {
  18025.                        (this.name = e), (this.tracks = i), (this.duration = void 0 !== t ? t : -1), (this.uuid = n.Math.generateUUID()), this.duration < 0 && this.resetDuration(), this.trim(), this.optimize();
  18026.                    }),
  18027.                    (n.AnimationClip.prototype = {
  18028.                        constructor: n.AnimationClip,
  18029.                        resetDuration: function () {
  18030.                            for (var e = this.tracks, t = 0, i = 0, n = e.length; i !== n; ++i) {
  18031.                                var r = this.tracks[i];
  18032.                                t = Math.max(t, r.times[r.times.length - 1]);
  18033.                            }
  18034.                            this.duration = t;
  18035.                        },
  18036.                        trim: function () {
  18037.                            for (var e = 0; e < this.tracks.length; e++) this.tracks[e].trim(0, this.duration);
  18038.                            return this;
  18039.                        },
  18040.                        optimize: function () {
  18041.                            for (var e = 0; e < this.tracks.length; e++) this.tracks[e].optimize();
  18042.                            return this;
  18043.                        },
  18044.                    }),
  18045.                    Object.assign(n.AnimationClip, {
  18046.                        parse: function (e) {
  18047.                            for (var t = [], i = e.tracks, r = 1 / (e.fps || 1), o = 0, a = i.length; o !== a; ++o) t.push(n.KeyframeTrack.parse(i[o]).scale(r));
  18048.                            return new n.AnimationClip(e.name, e.duration, t);
  18049.                        },
  18050.                        toJSON: function (e) {
  18051.                            for (var t = [], i = e.tracks, r = {
  18052.                                    name: e.name,
  18053.                                    duration: e.duration,
  18054.                                    tracks: t
  18055.                                }, o = 0, a = i.length; o !== a; ++o) t.push(n.KeyframeTrack.toJSON(i[o]));
  18056.                            return r;
  18057.                        },
  18058.                        CreateFromMorphTargetSequence: function (e, t, i, r) {
  18059.                            for (var o = t.length, a = [], s = 0; o > s; s++) {
  18060.                                var l = [],
  18061.                                    c = [];
  18062.                                l.push((s + o - 1) % o, s, (s + 1) % o), c.push(0, 1, 0);
  18063.                                var u = n.AnimationUtils.getKeyframeOrder(l);
  18064.                                (l = n.AnimationUtils.sortedArray(l, 1, u)),
  18065.                                (c = n.AnimationUtils.sortedArray(c, 1, u)),
  18066.                                r || 0 !== l[0] || (l.push(o), c.push(c[0])),
  18067.                                    a.push(new n.NumberKeyframeTrack(".morphTargetInfluences[" + t[s].name + "]", l, c).scale(1 / i));
  18068.                            }
  18069.                            return new n.AnimationClip(e, -1, a);
  18070.                        },
  18071.                        findByName: function (e, t) {
  18072.                            var i = e;
  18073.                            if (!Array.isArray(e)) {
  18074.                                var n = e;
  18075.                                i = (n.geometry && n.geometry.animations) || n.animations;
  18076.                            }
  18077.                            for (var r = 0; r < i.length; r++)
  18078.                                if (i[r].name === t) return i[r];
  18079.                            return null;
  18080.                        },
  18081.                        CreateClipsFromMorphTargetSequences: function (e, t, i) {
  18082.                            for (var r = {}, o = /^([w-]*?)([d]+)$/, a = 0, s = e.length; s > a; a++) {
  18083.                                var l = e[a],
  18084.                                    c = l.name.match(o);
  18085.                                if (c && c.length > 1) {
  18086.                                    var u = c[1],
  18087.                                        h = r[u];
  18088.                                    h || (r[u] = h = []), h.push(l);
  18089.                                }
  18090.                            }
  18091.                            var d = [];
  18092.                            for (var u in r) d.push(n.AnimationClip.CreateFromMorphTargetSequence(u, r[u], t, i));
  18093.                            return d;
  18094.                        },
  18095.                        parseAnimation: function (e, t, i) {
  18096.                            if (!e) return console.error("  no animation in JSONLoader data"), null;
  18097.                            for (
  18098.                                var r = function (e, t, i, r, o) {
  18099.                                        if (0 !== i.length) {
  18100.                                            var a = [],
  18101.                                                s = [];
  18102.                                            n.AnimationUtils.flattenJSON(i, a, s, r), 0 !== a.length && o.push(new e(t, a, s));
  18103.                                        }
  18104.                                    },
  18105.                                    o = [],
  18106.                                    a = e.name || "default",
  18107.                                    s = e.length || -1,
  18108.                                    l = e.fps || 30,
  18109.                                    c = e.hierarchy || [],
  18110.                                    u = 0; u < c.length; u++
  18111.                            ) {
  18112.                                var h = c[u].keys;
  18113.                                if (h && 0 !== h.length)
  18114.                                    if (h[0].morphTargets) {
  18115.                                        for (var d = {}, f = 0; f < h.length; f++)
  18116.                                            if (h[f].morphTargets)
  18117.                                                for (var p = 0; p < h[f].morphTargets.length; p++) d[h[f].morphTargets[p]] = -1;
  18118.                                        for (var m in d) {
  18119.                                            for (var v = [], g = [], p = 0; p !== h[f].morphTargets.length; ++p) {
  18120.                                                var y = h[f];
  18121.                                                v.push(y.time), g.push(y.morphTarget === m ? 1 : 0);
  18122.                                            }
  18123.                                            o.push(new n.NumberKeyframeTrack(".morphTargetInfluence[" + m + "]", v, g));
  18124.                                        }
  18125.                                        s = d.length * (l || 1);
  18126.                                    } else {
  18127.                                        var _ = ".bones[" + t[u].name + "]";
  18128.                                        r(n.VectorKeyframeTrack, _ + ".position", h, "pos", o), r(n.QuaternionKeyframeTrack, _ + ".quaternion", h, "rot", o), r(n.VectorKeyframeTrack, _ + ".scale", h, "scl", o);
  18129.                                    }
  18130.                            }
  18131.                            if (0 === o.length) return null;
  18132.                            var b = new n.AnimationClip(a, s, o);
  18133.                            return b;
  18134.                        },
  18135.                    }),
  18136.                    (n.AnimationMixer = function (e) {
  18137.                        (this._root = e), this._initMemoryManager(), (this._accuIndex = 0), (this.time = 0), (this.timeScale = 1);
  18138.                    }),
  18139.                    Object.assign(n.AnimationMixer.prototype, n.EventDispatcher.prototype, {
  18140.                        clipAction: function (e, t) {
  18141.                            var i = t || this._root,
  18142.                                r = i.uuid,
  18143.                                o = "string" == typeof e ? n.AnimationClip.findByName(i, e) : e,
  18144.                                a = null !== o ? o.uuid : e,
  18145.                                s = this._actionsByClip[a],
  18146.                                l = null;
  18147.                            if (void 0 !== s) {
  18148.                                var c = s.actionByRoot[r];
  18149.                                if (void 0 !== c) return c;
  18150.                                (l = s.knownActions[0]), null === o && (o = l._clip);
  18151.                            }
  18152.                            if (null === o) return null;
  18153.                            var u = new n.AnimationMixer._Action(this, o, t);
  18154.                            return this._bindAction(u, l), this._addInactiveAction(u, a, r), u;
  18155.                        },
  18156.                        existingAction: function (e, t) {
  18157.                            var i = t || this._root,
  18158.                                r = i.uuid,
  18159.                                o = "string" == typeof e ? n.AnimationClip.findByName(i, e) : e,
  18160.                                a = o ? o.uuid : e,
  18161.                                s = this._actionsByClip[a];
  18162.                            return void 0 !== s ? s.actionByRoot[r] || null : null;
  18163.                        },
  18164.                        stopAllAction: function () {
  18165.                            var e = this._actions,
  18166.                                t = this._nActiveActions,
  18167.                                i = this._bindings,
  18168.                                n = this._nActiveBindings;
  18169.                            (this._nActiveActions = 0), (this._nActiveBindings = 0);
  18170.                            for (var r = 0; r !== t; ++r) e[r].reset();
  18171.                            for (var r = 0; r !== n; ++r) i[r].useCount = 0;
  18172.                            return this;
  18173.                        },
  18174.                        update: function (e) {
  18175.                            e *= this.timeScale;
  18176.                            for (var t = this._actions, i = this._nActiveActions, n = (this.time += e), r = Math.sign(e), o = (this._accuIndex ^= 1), a = 0; a !== i; ++a) {
  18177.                                var s = t[a];
  18178.                                s.enabled && s._update(n, e, r, o);
  18179.                            }
  18180.                            for (var l = this._bindings, c = this._nActiveBindings, a = 0; a !== c; ++a) l[a].apply(o);
  18181.                            return this;
  18182.                        },
  18183.                        getRoot: function () {
  18184.                            return this._root;
  18185.                        },
  18186.                        uncacheClip: function (e) {
  18187.                            var t = this._actions,
  18188.                                i = e.uuid,
  18189.                                n = this._actionsByClip,
  18190.                                r = n[i];
  18191.                            if (void 0 !== r) {
  18192.                                for (var o = r.knownActions, a = 0, s = o.length; a !== s; ++a) {
  18193.                                    var l = o[a];
  18194.                                    this._deactivateAction(l);
  18195.                                    var c = l._cacheIndex,
  18196.                                        u = t[t.length - 1];
  18197.                                    (l._cacheIndex = null), (l._byClipCacheIndex = null), (u._cacheIndex = c), (t[c] = u), t.pop(), this._removeInactiveBindingsForAction(l);
  18198.                                }
  18199.                                delete n[i];
  18200.                            }
  18201.                        },
  18202.                        uncacheRoot: function (e) {
  18203.                            var t = e.uuid,
  18204.                                i = this._actionsByClip;
  18205.                            for (var n in i) {
  18206.                                var r = i[n].actionByRoot,
  18207.                                    o = r[t];
  18208.                                void 0 !== o && (this._deactivateAction(o), this._removeInactiveAction(o));
  18209.                            }
  18210.                            var a = this._bindingsByRootAndName,
  18211.                                s = a[t];
  18212.                            if (void 0 !== s)
  18213.                                for (var l in s) {
  18214.                                    var c = s[l];
  18215.                                    c.restoreOriginalState(), this._removeInactiveBinding(c);
  18216.                                }
  18217.                        },
  18218.                        uncacheAction: function (e, t) {
  18219.                            var i = this.existingAction(e, t);
  18220.                            null !== i && (this._deactivateAction(i), this._removeInactiveAction(i));
  18221.                        },
  18222.                    }),
  18223.                    (n.AnimationMixer._Action = n.AnimationAction._new),
  18224.                    Object.assign(n.AnimationMixer.prototype, {
  18225.                        _bindAction: function (e, t) {
  18226.                            var i = e._localRoot || this._root,
  18227.                                r = e._clip.tracks,
  18228.                                o = r.length,
  18229.                                a = e._propertyBindings,
  18230.                                s = e._interpolants,
  18231.                                l = i.uuid,
  18232.                                c = this._bindingsByRootAndName,
  18233.                                u = c[l];
  18234.                            void 0 === u && ((u = {}), (c[l] = u));
  18235.                            for (var h = 0; h !== o; ++h) {
  18236.                                var d = r[h],
  18237.                                    f = d.name,
  18238.                                    p = u[f];
  18239.                                if (void 0 !== p) a[h] = p;
  18240.                                else {
  18241.                                    if (((p = a[h]), void 0 !== p)) {
  18242.                                        null === p._cacheIndex && (++p.referenceCount, this._addInactiveBinding(p, l, f));
  18243.                                        continue;
  18244.                                    }
  18245.                                    var m = t && t._propertyBindings[h].binding.parsedPath;
  18246.                                    (p = new n.PropertyMixer(n.PropertyBinding.create(i, f, m), d.ValueTypeName, d.getValueSize())), ++p.referenceCount, this._addInactiveBinding(p, l, f), (a[h] = p);
  18247.                                }
  18248.                                s[h].resultBuffer = p.buffer;
  18249.                            }
  18250.                        },
  18251.                        _activateAction: function (e) {
  18252.                            if (!this._isActiveAction(e)) {
  18253.                                if (null === e._cacheIndex) {
  18254.                                    var t = (e._localRoot || this._root).uuid,
  18255.                                        i = e._clip.uuid,
  18256.                                        n = this._actionsByClip[i];
  18257.                                    this._bindAction(e, n && n.knownActions[0]), this._addInactiveAction(e, i, t);
  18258.                                }
  18259.                                for (var r = e._propertyBindings, o = 0, a = r.length; o !== a; ++o) {
  18260.                                    var s = r[o];
  18261.                                    0 === s.useCount++ && (this._lendBinding(s), s.saveOriginalState());
  18262.                                }
  18263.                                this._lendAction(e);
  18264.                            }
  18265.                        },
  18266.                        _deactivateAction: function (e) {
  18267.                            if (this._isActiveAction(e)) {
  18268.                                for (var t = e._propertyBindings, i = 0, n = t.length; i !== n; ++i) {
  18269.                                    var r = t[i];
  18270.                                    0 === --r.useCount && (r.restoreOriginalState(), this._takeBackBinding(r));
  18271.                                }
  18272.                                this._takeBackAction(e);
  18273.                            }
  18274.                        },
  18275.                        _initMemoryManager: function () {
  18276.                            (this._actions = []),
  18277.                            (this._nActiveActions = 0),
  18278.                            (this._actionsByClip = {}),
  18279.                            (this._bindings = []),
  18280.                            (this._nActiveBindings = 0),
  18281.                            (this._bindingsByRootAndName = {}),
  18282.                            (this._controlInterpolants = []),
  18283.                            (this._nActiveControlInterpolants = 0);
  18284.                            var e = this;
  18285.                            this.stats = {
  18286.                                actions: {
  18287.                                    get total() {
  18288.                                        return e._actions.length;
  18289.                                    },
  18290.                                    get inUse() {
  18291.                                        return e._nActiveActions;
  18292.                                    },
  18293.                                },
  18294.                                bindings: {
  18295.                                    get total() {
  18296.                                        return e._bindings.length;
  18297.                                    },
  18298.                                    get inUse() {
  18299.                                        return e._nActiveBindings;
  18300.                                    },
  18301.                                },
  18302.                                controlInterpolants: {
  18303.                                    get total() {
  18304.                                        return e._controlInterpolants.length;
  18305.                                    },
  18306.                                    get inUse() {
  18307.                                        return e._nActiveControlInterpolants;
  18308.                                    },
  18309.                                },
  18310.                            };
  18311.                        },
  18312.                        _isActiveAction: function (e) {
  18313.                            var t = e._cacheIndex;
  18314.                            return null !== t && t < this._nActiveActions;
  18315.                        },
  18316.                        _addInactiveAction: function (e, t, i) {
  18317.                            var n = this._actions,
  18318.                                r = this._actionsByClip,
  18319.                                o = r[t];
  18320.                            if (void 0 === o)(o = {
  18321.                                knownActions: [e],
  18322.                                actionByRoot: {}
  18323.                            }), (e._byClipCacheIndex = 0), (r[t] = o);
  18324.                            else {
  18325.                                var a = o.knownActions;
  18326.                                (e._byClipCacheIndex = a.length), a.push(e);
  18327.                            }
  18328.                            (e._cacheIndex = n.length), n.push(e), (o.actionByRoot[i] = e);
  18329.                        },
  18330.                        _removeInactiveAction: function (e) {
  18331.                            var t = this._actions,
  18332.                                i = t[t.length - 1],
  18333.                                n = e._cacheIndex;
  18334.                            (i._cacheIndex = n), (t[n] = i), t.pop(), (e._cacheIndex = null);
  18335.                            var r = e._clip.uuid,
  18336.                                o = this._actionsByClip,
  18337.                                a = o[r],
  18338.                                s = a.knownActions,
  18339.                                l = s[s.length - 1],
  18340.                                c = e._byClipCacheIndex;
  18341.                            (l._byClipCacheIndex = c), (s[c] = l), s.pop(), (e._byClipCacheIndex = null);
  18342.                            var u = a.actionByRoot,
  18343.                                h = (t._localRoot || this._root).uuid;
  18344.                            delete u[h], 0 === s.length && delete o[r], this._removeInactiveBindingsForAction(e);
  18345.                        },
  18346.                        _removeInactiveBindingsForAction: function (e) {
  18347.                            for (var t = e._propertyBindings, i = 0, n = t.length; i !== n; ++i) {
  18348.                                var r = t[i];
  18349.                                0 === --r.referenceCount && this._removeInactiveBinding(r);
  18350.                            }
  18351.                        },
  18352.                        _lendAction: function (e) {
  18353.                            var t = this._actions,
  18354.                                i = e._cacheIndex,
  18355.                                n = this._nActiveActions++,
  18356.                                r = t[n];
  18357.                            (e._cacheIndex = n), (t[n] = e), (r._cacheIndex = i), (t[i] = r);
  18358.                        },
  18359.                        _takeBackAction: function (e) {
  18360.                            var t = this._actions,
  18361.                                i = e._cacheIndex,
  18362.                                n = --this._nActiveActions,
  18363.                                r = t[n];
  18364.                            (e._cacheIndex = n), (t[n] = e), (r._cacheIndex = i), (t[i] = r);
  18365.                        },
  18366.                        _addInactiveBinding: function (e, t, i) {
  18367.                            var n = this._bindingsByRootAndName,
  18368.                                r = n[t],
  18369.                                o = this._bindings;
  18370.                            void 0 === r && ((r = {}), (n[t] = r)), (r[i] = e), (e._cacheIndex = o.length), o.push(e);
  18371.                        },
  18372.                        _removeInactiveBinding: function (e) {
  18373.                            var t = this._bindings,
  18374.                                i = e.binding,
  18375.                                n = i.rootNode.uuid,
  18376.                                r = i.path,
  18377.                                o = this._bindingsByRootAndName,
  18378.                                a = o[n],
  18379.                                s = t[t.length - 1],
  18380.                                l = e._cacheIndex;
  18381.                            (s._cacheIndex = l), (t[l] = s), t.pop(), delete a[r];
  18382.                            e: {
  18383.                                for (var c in a) break e;
  18384.                                delete o[n];
  18385.                            }
  18386.                        },
  18387.                        _lendBinding: function (e) {
  18388.                            var t = this._bindings,
  18389.                                i = e._cacheIndex,
  18390.                                n = this._nActiveBindings++,
  18391.                                r = t[n];
  18392.                            (e._cacheIndex = n), (t[n] = e), (r._cacheIndex = i), (t[i] = r);
  18393.                        },
  18394.                        _takeBackBinding: function (e) {
  18395.                            var t = this._bindings,
  18396.                                i = e._cacheIndex,
  18397.                                n = --this._nActiveBindings,
  18398.                                r = t[n];
  18399.                            (e._cacheIndex = n), (t[n] = e), (r._cacheIndex = i), (t[i] = r);
  18400.                        },
  18401.                        _lendControlInterpolant: function () {
  18402.                            var e = this._controlInterpolants,
  18403.                                t = this._nActiveControlInterpolants++,
  18404.                                i = e[t];
  18405.                            return void 0 === i && ((i = new n.LinearInterpolant(new Float32Array(2), new Float32Array(2), 1, this._controlInterpolantsResultBuffer)), (i.__cacheIndex = t), (e[t] = i)), i;
  18406.                        },
  18407.                        _takeBackControlInterpolant: function (e) {
  18408.                            var t = this._controlInterpolants,
  18409.                                i = e.__cacheIndex,
  18410.                                n = --this._nActiveControlInterpolants,
  18411.                                r = t[n];
  18412.                            (e.__cacheIndex = n), (t[n] = e), (r.__cacheIndex = i), (t[i] = r);
  18413.                        },
  18414.                        _controlInterpolantsResultBuffer: new Float32Array(1),
  18415.                    }),
  18416.                    (n.AnimationObjectGroup = function (e) {
  18417.                        (this.uuid = n.Math.generateUUID()), (this._objects = Array.prototype.slice.call(arguments)), (this.nCachedObjects_ = 0);
  18418.                        var t = {};
  18419.                        this._indicesByUUID = t;
  18420.                        for (var i = 0, r = arguments.length; i !== r; ++i) t[arguments[i].uuid] = i;
  18421.                        (this._paths = []), (this._parsedPaths = []), (this._bindings = []), (this._bindingsIndicesByPath = {});
  18422.                        var o = this;
  18423.                        this.stats = {
  18424.                            objects: {
  18425.                                get total() {
  18426.                                    return o._objects.length;
  18427.                                },
  18428.                                get inUse() {
  18429.                                    return this.total - o.nCachedObjects_;
  18430.                                },
  18431.                            },
  18432.                            get bindingsPerObject() {
  18433.                                return o._bindings.length;
  18434.                            },
  18435.                        };
  18436.                    }),
  18437.                    (n.AnimationObjectGroup.prototype = {
  18438.                        constructor: n.AnimationObjectGroup,
  18439.                        add: function (e) {
  18440.                            for (var t = this._objects, i = t.length, r = this.nCachedObjects_, o = this._indicesByUUID, a = this._paths, s = this._parsedPaths, l = this._bindings, c = l.length, u = 0, h = arguments.length; u !== h; ++u) {
  18441.                                var d = arguments[u],
  18442.                                    f = d.uuid,
  18443.                                    p = o[f];
  18444.                                if (void 0 === p) {
  18445.                                    (p = i++), (o[f] = p), t.push(d);
  18446.                                    for (var m = 0, v = c; m !== v; ++m) l[m].push(new n.PropertyBinding(d, a[m], s[m]));
  18447.                                } else if (r > p) {
  18448.                                    var g = t[p],
  18449.                                        y = --r,
  18450.                                        _ = t[y];
  18451.                                    (o[_.uuid] = p), (t[p] = _), (o[f] = y), (t[y] = d);
  18452.                                    for (var m = 0, v = c; m !== v; ++m) {
  18453.                                        var b = l[m],
  18454.                                            x = b[y],
  18455.                                            w = b[p];
  18456.                                        (b[p] = x), void 0 === w && (w = new n.PropertyBinding(d, a[m], s[m])), (b[y] = w);
  18457.                                    }
  18458.                                } else t[p] !== g && console.error("Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes...");
  18459.                            }
  18460.                            this.nCachedObjects_ = r;
  18461.                        },
  18462.                        remove: function (e) {
  18463.                            for (var t = this._objects, i = (t.length, this.nCachedObjects_), n = this._indicesByUUID, r = this._bindings, o = r.length, a = 0, s = arguments.length; a !== s; ++a) {
  18464.                                var l = arguments[a],
  18465.                                    c = l.uuid,
  18466.                                    u = n[c];
  18467.                                if (void 0 !== u && u >= i) {
  18468.                                    var h = i++,
  18469.                                        d = t[h];
  18470.                                    (n[d.uuid] = u), (t[u] = d), (n[c] = h), (t[h] = l);
  18471.                                    for (var f = 0, p = o; f !== p; ++f) {
  18472.                                        var m = r[f],
  18473.                                            v = m[h],
  18474.                                            g = m[u];
  18475.                                        (m[u] = v), (m[h] = g);
  18476.                                    }
  18477.                                }
  18478.                            }
  18479.                            this.nCachedObjects_ = i;
  18480.                        },
  18481.                        uncache: function (e) {
  18482.                            for (var t = this._objects, i = t.length, n = this.nCachedObjects_, r = this._indicesByUUID, o = this._bindings, a = o.length, s = 0, l = arguments.length; s !== l; ++s) {
  18483.                                var c = arguments[s],
  18484.                                    u = c.uuid,
  18485.                                    h = r[u];
  18486.                                if (void 0 !== h)
  18487.                                    if ((delete r[u], n > h)) {
  18488.                                        var d = --n,
  18489.                                            f = t[d],
  18490.                                            p = --i,
  18491.                                            m = t[p];
  18492.                                        (r[f.uuid] = h), (t[h] = f), (r[m.uuid] = d), (t[d] = m), t.pop();
  18493.                                        for (var v = 0, g = a; v !== g; ++v) {
  18494.                                            var y = o[v],
  18495.                                                _ = y[d],
  18496.                                                b = y[p];
  18497.                                            (y[h] = _), (y[d] = b), y.pop();
  18498.                                        }
  18499.                                    } else {
  18500.                                        var p = --i,
  18501.                                            m = t[p];
  18502.                                        (r[m.uuid] = h), (t[h] = m), t.pop();
  18503.                                        for (var v = 0, g = a; v !== g; ++v) {
  18504.                                            var y = o[v];
  18505.                                            (y[h] = y[p]), y.pop();
  18506.                                        }
  18507.                                    }
  18508.                            }
  18509.                            this.nCachedObjects_ = n;
  18510.                        },
  18511.                        subscribe_: function (e, t) {
  18512.                            var i = this._bindingsIndicesByPath,
  18513.                                r = i[e],
  18514.                                o = this._bindings;
  18515.                            if (void 0 !== r) return o[r];
  18516.                            var a = this._paths,
  18517.                                s = this._parsedPaths,
  18518.                                l = this._objects,
  18519.                                c = l.length,
  18520.                                u = this.nCachedObjects_,
  18521.                                h = new Array(c);
  18522.                            (r = o.length), (i[e] = r), a.push(e), s.push(t), o.push(h);
  18523.                            for (var d = u, f = l.length; d !== f; ++d) {
  18524.                                var p = l[d];
  18525.                                h[d] = new n.PropertyBinding(p, e, t);
  18526.                            }
  18527.                            return h;
  18528.                        },
  18529.                        unsubscribe_: function (e) {
  18530.                            var t = this._bindingsIndicesByPath,
  18531.                                i = t[e];
  18532.                            if (void 0 !== i) {
  18533.                                var n = this._paths,
  18534.                                    r = this._parsedPaths,
  18535.                                    o = this._bindings,
  18536.                                    a = o.length - 1,
  18537.                                    s = o[a],
  18538.                                    l = e[a];
  18539.                                (t[l] = i), (o[i] = s), o.pop(), (r[i] = r[a]), r.pop(), (n[i] = n[a]), n.pop();
  18540.                            }
  18541.                        },
  18542.                    }),
  18543.                    (n.AnimationUtils = {
  18544.                        arraySlice: function (e, t, i) {
  18545.                            return n.AnimationUtils.isTypedArray(e) ? new e.constructor(e.subarray(t, i)) : e.slice(t, i);
  18546.                        },
  18547.                        convertArray: function (e, t, i) {
  18548.                            return !e || (!i && e.constructor === t) ? e : "number" == typeof t.BYTES_PER_ELEMENT ? new t(e) : Array.prototype.slice.call(e);
  18549.                        },
  18550.                        isTypedArray: function (e) {
  18551.                            return ArrayBuffer.isView(e) && !(e instanceof DataView);
  18552.                        },
  18553.                        getKeyframeOrder: function (e) {
  18554.                            function t(t, i) {
  18555.                                return e[t] - e[i];
  18556.                            }
  18557.                            for (var i = e.length, n = new Array(i), r = 0; r !== i; ++r) n[r] = r;
  18558.                            return n.sort(t), n;
  18559.                        },
  18560.                        sortedArray: function (e, t, i) {
  18561.                            for (var n = e.length, r = new e.constructor(n), o = 0, a = 0; a !== n; ++o)
  18562.                                for (var s = i[o] * t, l = 0; l !== t; ++l) r[a++] = e[s + l];
  18563.                            return r;
  18564.                        },
  18565.                        flattenJSON: function (e, t, i, n) {
  18566.                            for (var r = 1, o = e[0]; void 0 !== o && void 0 === o[n];) o = e[r++];
  18567.                            if (void 0 !== o) {
  18568.                                var a = o[n];
  18569.                                if (void 0 !== a)
  18570.                                    if (Array.isArray(a)) {
  18571.                                        do(a = o[n]), void 0 !== a && (t.push(o.time), i.push.apply(i, a)), (o = e[r++]);
  18572.                                        while (void 0 !== o);
  18573.                                    } else if (void 0 !== a.toArray) {
  18574.                                    do(a = o[n]), void 0 !== a && (t.push(o.time), a.toArray(i, i.length)), (o = e[r++]);
  18575.                                    while (void 0 !== o);
  18576.                                } else
  18577.                                    do(a = o[n]), void 0 !== a && (t.push(o.time), i.push(a)), (o = e[r++]);
  18578.                                    while (void 0 !== o);
  18579.                            }
  18580.                        },
  18581.                    }),
  18582.                    (n.KeyframeTrack = function (e, t, i, r) {
  18583.                        if (void 0 === e) throw new Error("track name is undefined");
  18584.                        if (void 0 === t || 0 === t.length) throw new Error("no keyframes in track named " + e);
  18585.                        (this.name = e),
  18586.                        (this.times = n.AnimationUtils.convertArray(t, this.TimeBufferType)),
  18587.                        (this.values = n.AnimationUtils.convertArray(i, this.ValueBufferType)),
  18588.                        this.setInterpolation(r || this.DefaultInterpolation),
  18589.                            this.validate(),
  18590.                            this.optimize();
  18591.                    }),
  18592.                    (n.KeyframeTrack.prototype = {
  18593.                        constructor: n.KeyframeTrack,
  18594.                        TimeBufferType: Float32Array,
  18595.                        ValueBufferType: Float32Array,
  18596.                        DefaultInterpolation: n.InterpolateLinear,
  18597.                        InterpolantFactoryMethodDiscrete: function (e) {
  18598.                            return new n.DiscreteInterpolant(this.times, this.values, this.getValueSize(), e);
  18599.                        },
  18600.                        InterpolantFactoryMethodLinear: function (e) {
  18601.                            return new n.LinearInterpolant(this.times, this.values, this.getValueSize(), e);
  18602.                        },
  18603.                        InterpolantFactoryMethodSmooth: function (e) {
  18604.                            return new n.CubicInterpolant(this.times, this.values, this.getValueSize(), e);
  18605.                        },
  18606.                        setInterpolation: function (e) {
  18607.                            var t;
  18608.                            switch (e) {
  18609.                            case n.InterpolateDiscrete:
  18610.                                t = this.InterpolantFactoryMethodDiscrete;
  18611.                                break;
  18612.                            case n.InterpolateLinear:
  18613.                                t = this.InterpolantFactoryMethodLinear;
  18614.                                break;
  18615.                            case n.InterpolateSmooth:
  18616.                                t = this.InterpolantFactoryMethodSmooth;
  18617.                            }
  18618.                            if (void 0 === t) {
  18619.                                var i = "unsupported interpolation for " + this.ValueTypeName + " keyframe track named " + this.name;
  18620.                                if (void 0 === this.createInterpolant) {
  18621.                                    if (e === this.DefaultInterpolation) throw new Error(i);
  18622.                                    this.setInterpolation(this.DefaultInterpolation);
  18623.                                }
  18624.                                return void console.warn(i);
  18625.                            }
  18626.                            this.createInterpolant = t;
  18627.                        },
  18628.                        getInterpolation: function () {
  18629.                            switch (this.createInterpolant) {
  18630.                            case this.InterpolantFactoryMethodDiscrete:
  18631.                                return n.InterpolateDiscrete;
  18632.                            case this.InterpolantFactoryMethodLinear:
  18633.                                return n.InterpolateLinear;
  18634.                            case this.InterpolantFactoryMethodSmooth:
  18635.                                return n.InterpolateSmooth;
  18636.                            }
  18637.                        },
  18638.                        getValueSize: function () {
  18639.                            return this.values.length / this.times.length;
  18640.                        },
  18641.                        shift: function (e) {
  18642.                            if (0 !== e)
  18643.                                for (var t = this.times, i = 0, n = t.length; i !== n; ++i) t[i] += e;
  18644.                            return this;
  18645.                        },
  18646.                        scale: function (e) {
  18647.                            if (1 !== e)
  18648.                                for (var t = this.times, i = 0, n = t.length; i !== n; ++i) t[i] *= e;
  18649.                            return this;
  18650.                        },
  18651.                        trim: function (e, t) {
  18652.                            for (var i = this.times, r = i.length, o = 0, a = r - 1; o !== r && i[o] < e;) ++o;
  18653.                            for (; - 1 !== a && i[a] > t;) --a;
  18654.                            if ((++a, 0 !== o || a !== r)) {
  18655.                                o >= a && ((a = Math.max(a, 1)), (o = a - 1));
  18656.                                var s = this.getValueSize();
  18657.                                (this.times = n.AnimationUtils.arraySlice(i, o, a)), (this.values = n.AnimationUtils.arraySlice(this.values, o * s, a * s));
  18658.                            }
  18659.                            return this;
  18660.                        },
  18661.                        validate: function () {
  18662.                            var e = !0,
  18663.                                t = this.getValueSize();
  18664.                            t - Math.floor(t) !== 0 && (console.error("invalid value size in track", this), (e = !1));
  18665.                            var i = this.times,
  18666.                                r = this.values,
  18667.                                o = i.length;
  18668.                            0 === o && (console.error("track is empty", this), (e = !1));
  18669.                            for (var a = null, s = 0; s !== o; s++) {
  18670.                                var l = i[s];
  18671.                                if ("number" == typeof l && isNaN(l)) {
  18672.                                    console.error("time is not a valid number", this, s, l), (e = !1);
  18673.                                    break;
  18674.                                }
  18675.                                if (null !== a && a > l) {
  18676.                                    console.error("out of order keys", this, s, l, a), (e = !1);
  18677.                                    break;
  18678.                                }
  18679.                                a = l;
  18680.                            }
  18681.                            if (void 0 !== r && n.AnimationUtils.isTypedArray(r))
  18682.                                for (var s = 0, c = r.length; s !== c; ++s) {
  18683.                                    var u = r[s];
  18684.                                    if (isNaN(u)) {
  18685.                                        console.error("value is not a valid number", this, s, u), (e = !1);
  18686.                                        break;
  18687.                                    }
  18688.                                }
  18689.                            return e;
  18690.                        },
  18691.                        optimize: function () {
  18692.                            for (var e = this.times, t = this.values, i = this.getValueSize(), r = 1, o = 1, a = e.length - 1; a >= o; ++o) {
  18693.                                var s = !1,
  18694.                                    l = e[o],
  18695.                                    c = e[o + 1];
  18696.                                if (l !== c && (1 !== o || l !== l[0]))
  18697.                                    for (var u = o * i, h = u - i, d = u + i, f = 0; f !== i; ++f) {
  18698.                                        var p = t[u + f];
  18699.                                        if (p !== t[h + f] || p !== t[d + f]) {
  18700.                                            s = !0;
  18701.                                            break;
  18702.                                        }
  18703.                                    }
  18704.                                if (s) {
  18705.                                    if (o !== r) {
  18706.                                        e[r] = e[o];
  18707.                                        for (var m = o * i, v = r * i, f = 0; f !== i; ++f) t[v + f] = t[m + f];
  18708.                                    }
  18709.                                    ++r;
  18710.                                }
  18711.                            }
  18712.                            return r !== e.length && ((this.times = n.AnimationUtils.arraySlice(e, 0, r)), (this.values = n.AnimationUtils.arraySlice(t, 0, r * i))), this;
  18713.                        },
  18714.                    }),
  18715.                    Object.assign(n.KeyframeTrack, {
  18716.                        parse: function (e) {
  18717.                            if (void 0 === e.type) throw new Error("track type undefined, can not parse");
  18718.                            var t = n.KeyframeTrack._getTrackTypeForValueTypeName(e.type);
  18719.                            if (void 0 === e.times) {
  18720.                                var i = [],
  18721.                                    r = [];
  18722.                                n.AnimationUtils.flattenJSON(e.keys, i, r, "value"), (e.times = i), (e.values = r);
  18723.                            }
  18724.                            return void 0 !== t.parse ? t.parse(e) : new t(e.name, e.times, e.values, e.interpolation);
  18725.                        },
  18726.                        toJSON: function (e) {
  18727.                            var t,
  18728.                                i = e.constructor;
  18729.                            if (void 0 !== i.toJSON) t = i.toJSON(e);
  18730.                            else {
  18731.                                t = {
  18732.                                    name: e.name,
  18733.                                    times: n.AnimationUtils.convertArray(e.times, Array),
  18734.                                    values: n.AnimationUtils.convertArray(e.values, Array)
  18735.                                };
  18736.                                var r = e.getInterpolation();
  18737.                                r !== e.DefaultInterpolation && (t.interpolation = r);
  18738.                            }
  18739.                            return (t.type = e.ValueTypeName), t;
  18740.                        },
  18741.                        _getTrackTypeForValueTypeName: function (e) {
  18742.                            switch (e.toLowerCase()) {
  18743.                            case "scalar":
  18744.                            case "double":
  18745.                            case "float":
  18746.                            case "number":
  18747.                            case "integer":
  18748.                                return n.NumberKeyframeTrack;
  18749.                            case "vector":
  18750.                            case "vector2":
  18751.                            case "vector3":
  18752.                            case "vector4":
  18753.                                return n.VectorKeyframeTrack;
  18754.                            case "color":
  18755.                                return n.ColorKeyframeTrack;
  18756.                            case "quaternion":
  18757.                                return n.QuaternionKeyframeTrack;
  18758.                            case "bool":
  18759.                            case "boolean":
  18760.                                return n.BooleanKeyframeTrack;
  18761.                            case "string":
  18762.                                return n.StringKeyframeTrack;
  18763.                            }
  18764.                            throw new Error("Unsupported typeName: " + e);
  18765.                        },
  18766.                    }),
  18767.                    (n.PropertyBinding = function (e, t, i) {
  18768.                        (this.path = t), (this.parsedPath = i || n.PropertyBinding.parseTrackName(t)), (this.node = n.PropertyBinding.findNode(e, this.parsedPath.nodeName) || e), (this.rootNode = e);
  18769.                    }),
  18770.                    (n.PropertyBinding.prototype = {
  18771.                        constructor: n.PropertyBinding,
  18772.                        getValue: function (e, t) {
  18773.                            this.bind(), this.getValue(e, t);
  18774.                        },
  18775.                        setValue: function (e, t) {
  18776.                            this.bind(), this.setValue(e, t);
  18777.                        },
  18778.                        bind: function () {
  18779.                            var e = this.node,
  18780.                                t = this.parsedPath,
  18781.                                i = t.objectName,
  18782.                                r = t.propertyName,
  18783.                                o = t.propertyIndex;
  18784.                            if ((e || ((e = n.PropertyBinding.findNode(this.rootNode, t.nodeName) || this.rootNode), (this.node = e)), (this.getValue = this._getValue_unavailable), (this.setValue = this._setValue_unavailable), !e))
  18785.                                return void console.error("  trying to update node for track: " + this.path + " but it wasn't found.");
  18786.                            if (i) {
  18787.                                var a = t.objectIndex;
  18788.                                switch (i) {
  18789.                                case "materials":
  18790.                                    if (!e.material) return void console.error("  can not bind to material as node does not have a material", this);
  18791.                                    if (!e.material.materials) return void console.error("  can not bind to material.materials as node.material does not have a materials array", this);
  18792.                                    e = e.material.materials;
  18793.                                    break;
  18794.                                case "bones":
  18795.                                    if (!e.skeleton) return void console.error("  can not bind to bones as node does not have a skeleton", this);
  18796.                                    e = e.skeleton.bones;
  18797.                                    for (var s = 0; s < e.length; s++)
  18798.                                        if (e[s].name === a) {
  18799.                                            a = s;
  18800.                                            break;
  18801.                                        }
  18802.                                    break;
  18803.                                default:
  18804.                                    if (void 0 === e[i]) return void console.error("  can not bind to objectName of node, undefined", this);
  18805.                                    e = e[i];
  18806.                                }
  18807.                                if (void 0 !== a) {
  18808.                                    if (void 0 === e[a]) return void console.error("  trying to bind to objectIndex of objectName, but is undefined:", this, e);
  18809.                                    e = e[a];
  18810.                                }
  18811.                            }
  18812.                            var l = e[r];
  18813.                            if (void 0 === l) {
  18814.                                var c = t.nodeName;
  18815.                                return void console.error("  trying to update property for track: " + c + "." + r + " but it wasn't found.", e);
  18816.                            }
  18817.                            var u = this.Versioning.None;
  18818.                            void 0 !== e.needsUpdate ? ((u = this.Versioning.NeedsUpdate), (this.targetObject = e)) : void 0 !== e.matrixWorldNeedsUpdate && ((u = this.Versioning.MatrixWorldNeedsUpdate), (this.targetObject = e));
  18819.                            var h = this.BindingType.Direct;
  18820.                            if (void 0 !== o) {
  18821.                                if ("morphTargetInfluences" === r) {
  18822.                                    if (!e.geometry) return void console.error("  can not bind to morphTargetInfluences becasuse node does not have a geometry", this);
  18823.                                    if (!e.geometry.morphTargets) return void console.error("  can not bind to morphTargetInfluences becasuse node does not have a geometry.morphTargets", this);
  18824.                                    for (var s = 0; s < this.node.geometry.morphTargets.length; s++)
  18825.                                        if (e.geometry.morphTargets[s].name === o) {
  18826.                                            o = s;
  18827.                                            break;
  18828.                                        }
  18829.                                }
  18830.                                (h = this.BindingType.ArrayElement), (this.resolvedProperty = l), (this.propertyIndex = o);
  18831.                            } else
  18832.                                void 0 !== l.fromArray && void 0 !== l.toArray ?
  18833.                                ((h = this.BindingType.HasFromToArray), (this.resolvedProperty = l)) :
  18834.                                void 0 !== l.length ?
  18835.                                ((h = this.BindingType.EntireArray), (this.resolvedProperty = l)) :
  18836.                                (this.propertyName = r);
  18837.                            (this.getValue = this.GetterByBindingType[h]), (this.setValue = this.SetterByBindingTypeAndVersioning[h][u]);
  18838.                        },
  18839.                        unbind: function () {
  18840.                            (this.node = null), (this.getValue = this._getValue_unbound), (this.setValue = this._setValue_unbound);
  18841.                        },
  18842.                    }),
  18843.                    Object.assign(n.PropertyBinding.prototype, {
  18844.                        _getValue_unavailable: function () {},
  18845.                        _setValue_unavailable: function () {},
  18846.                        _getValue_unbound: n.PropertyBinding.prototype.getValue,
  18847.                        _setValue_unbound: n.PropertyBinding.prototype.setValue,
  18848.                        BindingType: {
  18849.                            Direct: 0,
  18850.                            EntireArray: 1,
  18851.                            ArrayElement: 2,
  18852.                            HasFromToArray: 3
  18853.                        },
  18854.                        Versioning: {
  18855.                            None: 0,
  18856.                            NeedsUpdate: 1,
  18857.                            MatrixWorldNeedsUpdate: 2
  18858.                        },
  18859.                        GetterByBindingType: [
  18860.                            function (e, t) {
  18861.                                e[t] = this.node[this.propertyName];
  18862.                            },
  18863.                            function (e, t) {
  18864.                                for (var i = this.resolvedProperty, n = 0, r = i.length; n !== r; ++n) e[t++] = i[n];
  18865.                            },
  18866.                            function (e, t) {
  18867.                                e[t] = this.resolvedProperty[this.propertyIndex];
  18868.                            },
  18869.                            function (e, t) {
  18870.                                this.resolvedProperty.toArray(e, t);
  18871.                            },
  18872.                        ],
  18873.                        SetterByBindingTypeAndVersioning: [
  18874.                            [
  18875.                                function (e, t) {
  18876.                                    this.node[this.propertyName] = e[t];
  18877.                                },
  18878.                                function (e, t) {
  18879.                                    (this.node[this.propertyName] = e[t]), (this.targetObject.needsUpdate = !0);
  18880.                                },
  18881.                                function (e, t) {
  18882.                                    (this.node[this.propertyName] = e[t]), (this.targetObject.matrixWorldNeedsUpdate = !0);
  18883.                                },
  18884.                            ],
  18885.                            [
  18886.                                function (e, t) {
  18887.                                    for (var i = this.resolvedProperty, n = 0, r = i.length; n !== r; ++n) i[n] = e[t++];
  18888.                                },
  18889.                                function (e, t) {
  18890.                                    for (var i = this.resolvedProperty, n = 0, r = i.length; n !== r; ++n) i[n] = e[t++];
  18891.                                    this.targetObject.needsUpdate = !0;
  18892.                                },
  18893.                                function (e, t) {
  18894.                                    for (var i = this.resolvedProperty, n = 0, r = i.length; n !== r; ++n) i[n] = e[t++];
  18895.                                    this.targetObject.matrixWorldNeedsUpdate = !0;
  18896.                                },
  18897.                            ],
  18898.                            [
  18899.                                function (e, t) {
  18900.                                    this.resolvedProperty[this.propertyIndex] = e[t];
  18901.                                },
  18902.                                function (e, t) {
  18903.                                    (this.resolvedProperty[this.propertyIndex] = e[t]), (this.targetObject.needsUpdate = !0);
  18904.                                },
  18905.                                function (e, t) {
  18906.                                    (this.resolvedProperty[this.propertyIndex] = e[t]), (this.targetObject.matrixWorldNeedsUpdate = !0);
  18907.                                },
  18908.                            ],
  18909.                            [
  18910.                                function (e, t) {
  18911.                                    this.resolvedProperty.fromArray(e, t);
  18912.                                },
  18913.                                function (e, t) {
  18914.                                    this.resolvedProperty.fromArray(e, t), (this.targetObject.needsUpdate = !0);
  18915.                                },
  18916.                                function (e, t) {
  18917.                                    this.resolvedProperty.fromArray(e, t), (this.targetObject.matrixWorldNeedsUpdate = !0);
  18918.                                },
  18919.                            ],
  18920.                        ],
  18921.                    }),
  18922.                    (n.PropertyBinding.Composite = function (e, t, i) {
  18923.                        var r = i || n.PropertyBinding.parseTrackName(t);
  18924.                        (this._targetGroup = e), (this._bindings = e.subscribe_(t, r));
  18925.                    }),
  18926.                    (n.PropertyBinding.Composite.prototype = {
  18927.                        constructor: n.PropertyBinding.Composite,
  18928.                        getValue: function (e, t) {
  18929.                            this.bind();
  18930.                            var i = this._targetGroup.nCachedObjects_,
  18931.                                n = this._bindings[i];
  18932.                            void 0 !== n && n.getValue(e, t);
  18933.                        },
  18934.                        setValue: function (e, t) {
  18935.                            for (var i = this._bindings, n = this._targetGroup.nCachedObjects_, r = i.length; n !== r; ++n) i[n].setValue(e, t);
  18936.                        },
  18937.                        bind: function () {
  18938.                            for (var e = this._bindings, t = this._targetGroup.nCachedObjects_, i = e.length; t !== i; ++t) e[t].bind();
  18939.                        },
  18940.                        unbind: function () {
  18941.                            for (var e = this._bindings, t = this._targetGroup.nCachedObjects_, i = e.length; t !== i; ++t) e[t].unbind();
  18942.                        },
  18943.                    }),
  18944.                    (n.PropertyBinding.create = function (e, t, i) {
  18945.                        return e instanceof n.AnimationObjectGroup ? new n.PropertyBinding.Composite(e, t, i) : new n.PropertyBinding(e, t, i);
  18946.                    }),
  18947.                    (n.PropertyBinding.parseTrackName = function (e) {
  18948.                        var t = /^(([w]+/)*)([w-d]+)?(.([w]+)([([wd[]_.:- ]+)])?)?(.([w.]+)([([wd[]_. ]+)])?)$/,
  18949.                            i = t.exec(e);
  18950.                        if (!i) throw new Error("cannot parse trackName at all: " + e);
  18951.                        i.index === t.lastIndex && t.lastIndex++;
  18952.                        var n = {
  18953.                            nodeName: i[3],
  18954.                            objectName: i[5],
  18955.                            objectIndex: i[7],
  18956.                            propertyName: i[9],
  18957.                            propertyIndex: i[11]
  18958.                        };
  18959.                        if (null === n.propertyName || 0 === n.propertyName.length) throw new Error("can not parse propertyName from trackName: " + e);
  18960.                        return n;
  18961.                    }),
  18962.                    (n.PropertyBinding.findNode = function (e, t) {
  18963.                        if (!t || "" === t || "root" === t || "." === t || -1 === t || t === e.name || t === e.uuid) return e;
  18964.                        if (e.skeleton) {
  18965.                            var i = function (e) {
  18966.                                    for (var i = 0; i < e.bones.length; i++) {
  18967.                                        var n = e.bones[i];
  18968.                                        if (n.name === t) return n;
  18969.                                    }
  18970.                                    return null;
  18971.                                },
  18972.                                n = i(e.skeleton);
  18973.                            if (n) return n;
  18974.                        }
  18975.                        if (e.children) {
  18976.                            var r = function (e) {
  18977.                                    for (var i = 0; i < e.length; i++) {
  18978.                                        var n = e[i];
  18979.                                        if (n.name === t || n.uuid === t) return n;
  18980.                                        var o = r(n.children);
  18981.                                        if (o) return o;
  18982.                                    }
  18983.                                    return null;
  18984.                                },
  18985.                                o = r(e.children);
  18986.                            if (o) return o;
  18987.                        }
  18988.                        return null;
  18989.                    }),
  18990.                    (n.PropertyMixer = function (e, t, i) {
  18991.                        (this.binding = e), (this.valueSize = i);
  18992.                        var n,
  18993.                            r = Float64Array;
  18994.                        switch (t) {
  18995.                        case "quaternion":
  18996.                            n = this._slerp;
  18997.                            break;
  18998.                        case "string":
  18999.                        case "bool":
  19000.                            (r = Array), (n = this._select);
  19001.                            break;
  19002.                        default:
  19003.                            n = this._lerp;
  19004.                        }
  19005.                        (this.buffer = new r(4 * i)), (this._mixBufferRegion = n), (this.cumulativeWeight = 0), (this.useCount = 0), (this.referenceCount = 0);
  19006.                    }),
  19007.                    (n.PropertyMixer.prototype = {
  19008.                        constructor: n.PropertyMixer,
  19009.                        accumulate: function (e, t) {
  19010.                            var i = this.buffer,
  19011.                                n = this.valueSize,
  19012.                                r = e * n + n,
  19013.                                o = this.cumulativeWeight;
  19014.                            if (0 === o) {
  19015.                                for (var a = 0; a !== n; ++a) i[r + a] = i[a];
  19016.                                o = t;
  19017.                            } else {
  19018.                                o += t;
  19019.                                var s = t / o;
  19020.                                this._mixBufferRegion(i, r, 0, s, n);
  19021.                            }
  19022.                            this.cumulativeWeight = o;
  19023.                        },
  19024.                        apply: function (e) {
  19025.                            var t = this.valueSize,
  19026.                                i = this.buffer,
  19027.                                n = e * t + t,
  19028.                                r = this.cumulativeWeight,
  19029.                                o = this.binding;
  19030.                            if (((this.cumulativeWeight = 0), 1 > r)) {
  19031.                                var a = 3 * t;
  19032.                                this._mixBufferRegion(i, n, a, 1 - r, t);
  19033.                            }
  19034.                            for (var s = t, l = t + t; s !== l; ++s)
  19035.                                if (i[s] !== i[s + t]) {
  19036.                                    o.setValue(i, n);
  19037.                                    break;
  19038.                                }
  19039.                        },
  19040.                        saveOriginalState: function () {
  19041.                            var e = this.binding,
  19042.                                t = this.buffer,
  19043.                                i = this.valueSize,
  19044.                                n = 3 * i;
  19045.                            e.getValue(t, n);
  19046.                            for (var r = i, o = n; r !== o; ++r) t[r] = t[n + (r % i)];
  19047.                            this.cumulativeWeight = 0;
  19048.                        },
  19049.                        restoreOriginalState: function () {
  19050.                            var e = 3 * this.valueSize;
  19051.                            this.binding.setValue(this.buffer, e);
  19052.                        },
  19053.                        _select: function (e, t, i, n, r) {
  19054.                            if (n >= 0.5)
  19055.                                for (var o = 0; o !== r; ++o) e[t + o] = e[i + o];
  19056.                        },
  19057.                        _slerp: function (e, t, i, r, o) {
  19058.                            n.Quaternion.slerpFlat(e, t, e, t, e, i, r);
  19059.                        },
  19060.                        _lerp: function (e, t, i, n, r) {
  19061.                            for (var o = 1 - n, a = 0; a !== r; ++a) {
  19062.                                var s = t + a;
  19063.                                e[s] = e[s] * o + e[i + a] * n;
  19064.                            }
  19065.                        },
  19066.                    }),
  19067.                    (n.BooleanKeyframeTrack = function (e, t, i) {
  19068.                        n.KeyframeTrack.call(this, e, t, i);
  19069.                    }),
  19070.                    (n.BooleanKeyframeTrack.prototype = Object.assign(Object.create(n.KeyframeTrack.prototype), {
  19071.                        constructor: n.BooleanKeyframeTrack,
  19072.                        ValueTypeName: "bool",
  19073.                        ValueBufferType: Array,
  19074.                        DefaultInterpolation: n.InterpolateDiscrete,
  19075.                        InterpolantFactoryMethodLinear: void 0,
  19076.                        InterpolantFactoryMethodSmooth: void 0,
  19077.                    })),
  19078.                    (n.ColorKeyframeTrack = function (e, t, i, r) {
  19079.                        n.KeyframeTrack.call(this, e, t, i, r);
  19080.                    }),
  19081.                    (n.ColorKeyframeTrack.prototype = Object.assign(Object.create(n.KeyframeTrack.prototype), {
  19082.                        constructor: n.ColorKeyframeTrack,
  19083.                        ValueTypeName: "color"
  19084.                    })),
  19085.                    (n.NumberKeyframeTrack = function (e, t, i, r) {
  19086.                        n.KeyframeTrack.call(this, e, t, i, r);
  19087.                    }),
  19088.                    (n.NumberKeyframeTrack.prototype = Object.assign(Object.create(n.KeyframeTrack.prototype), {
  19089.                        constructor: n.NumberKeyframeTrack,
  19090.                        ValueTypeName: "number"
  19091.                    })),
  19092.                    (n.QuaternionKeyframeTrack = function (e, t, i, r) {
  19093.                        n.KeyframeTrack.call(this, e, t, i, r);
  19094.                    }),
  19095.                    (n.QuaternionKeyframeTrack.prototype = Object.assign(Object.create(n.KeyframeTrack.prototype), {
  19096.                        constructor: n.QuaternionKeyframeTrack,
  19097.                        ValueTypeName: "quaternion",
  19098.                        DefaultInterpolation: n.InterpolateLinear,
  19099.                        InterpolantFactoryMethodLinear: function (e) {
  19100.                            return new n.QuaternionLinearInterpolant(this.times, this.values, this.getValueSize(), e);
  19101.                        },
  19102.                        InterpolantFactoryMethodSmooth: void 0,
  19103.                    })),
  19104.                    (n.StringKeyframeTrack = function (e, t, i, r) {
  19105.                        n.KeyframeTrack.call(this, e, t, i, r);
  19106.                    }),
  19107.                    (n.StringKeyframeTrack.prototype = Object.assign(Object.create(n.KeyframeTrack.prototype), {
  19108.                        constructor: n.StringKeyframeTrack,
  19109.                        ValueTypeName: "string",
  19110.                        ValueBufferType: Array,
  19111.                        DefaultInterpolation: n.InterpolateDiscrete,
  19112.                        InterpolantFactoryMethodLinear: void 0,
  19113.                        InterpolantFactoryMethodSmooth: void 0,
  19114.                    })),
  19115.                    (n.VectorKeyframeTrack = function (e, t, i, r) {
  19116.                        n.KeyframeTrack.call(this, e, t, i, r);
  19117.                    }),
  19118.                    (n.VectorKeyframeTrack.prototype = Object.assign(Object.create(n.KeyframeTrack.prototype), {
  19119.                        constructor: n.VectorKeyframeTrack,
  19120.                        ValueTypeName: "vector"
  19121.                    })),
  19122.                    (n.Audio = function (e) {
  19123.                        n.Object3D.call(this),
  19124.                            (this.type = "Audio"),
  19125.                            (this.context = e.context),
  19126.                            (this.source = this.context.createBufferSource()),
  19127.                            (this.source.onended = this.onEnded.bind(this)),
  19128.                            (this.gain = this.context.createGain()),
  19129.                            this.gain.connect(e.getInput()),
  19130.                            (this.autoplay = !1),
  19131.                            (this.startTime = 0),
  19132.                            (this.playbackRate = 1),
  19133.                            (this.isPlaying = !1),
  19134.                            (this.hasPlaybackControl = !0),
  19135.                            (this.sourceType = "empty"),
  19136.                            (this.filters = []);
  19137.                    }),
  19138.                    (n.Audio.prototype = Object.assign(Object.create(n.Object3D.prototype), {
  19139.                        constructor: n.Audio,
  19140.                        getOutput: function () {
  19141.                            return this.gain;
  19142.                        },
  19143.                        setNodeSource: function (e) {
  19144.                            return (this.hasPlaybackControl = !1), (this.sourceType = "audioNode"), (this.source = e), this.connect(), this;
  19145.                        },
  19146.                        setBuffer: function (e) {
  19147.                            return (this.source.buffer = e), (this.sourceType = "buffer"), this.autoplay && this.play(), this;
  19148.                        },
  19149.                        play: function () {
  19150.                            if (this.isPlaying === !0) return void console.warn("THREE.Audio: Audio is already playing.");
  19151.                            if (this.hasPlaybackControl === !1) return void console.warn("THREE.Audio: this Audio has no playback control.");
  19152.                            var e = this.context.createBufferSource();
  19153.                            return (
  19154.                                (e.buffer = this.source.buffer),
  19155.                                (e.loop = this.source.loop),
  19156.                                (e.onended = this.source.onended),
  19157.                                e.start(0, this.startTime),
  19158.                                (e.playbackRate.value = this.playbackRate),
  19159.                                (this.isPlaying = !0),
  19160.                                (this.source = e),
  19161.                                this.connect()
  19162.                            );
  19163.                        },
  19164.                        pause: function () {
  19165.                            return this.hasPlaybackControl === !1 ? void console.warn("THREE.Audio: this Audio has no playback control.") : (this.source.stop(), (this.startTime = this.context.currentTime), (this.isPlaying = !1), this);
  19166.                        },
  19167.                        stop: function () {
  19168.                            return this.hasPlaybackControl === !1 ? void console.warn("THREE.Audio: this Audio has no playback control.") : (this.source.stop(), (this.startTime = 0), (this.isPlaying = !1), this);
  19169.                        },
  19170.                        connect: function () {
  19171.                            if (this.filters.length > 0) {
  19172.                                this.source.connect(this.filters[0]);
  19173.                                for (var e = 1, t = this.filters.length; t > e; e++) this.filters[e - 1].connect(this.filters[e]);
  19174.                                this.filters[this.filters.length - 1].connect(this.getOutput());
  19175.                            } else this.source.connect(this.getOutput());
  19176.                            return this;
  19177.                        },
  19178.                        disconnect: function () {
  19179.                            if (this.filters.length > 0) {
  19180.                                this.source.disconnect(this.filters[0]);
  19181.                                for (var e = 1, t = this.filters.length; t > e; e++) this.filters[e - 1].disconnect(this.filters[e]);
  19182.                                this.filters[this.filters.length - 1].disconnect(this.getOutput());
  19183.                            } else this.source.disconnect(this.getOutput());
  19184.                            return this;
  19185.                        },
  19186.                        getFilters: function () {
  19187.                            return this.filters;
  19188.                        },
  19189.                        setFilters: function (e) {
  19190.                            return e || (e = []), this.isPlaying === !0 ? (this.disconnect(), (this.filters = e), this.connect()) : (this.filters = e), this;
  19191.                        },
  19192.                        getFilter: function () {
  19193.                            return this.getFilters()[0];
  19194.                        },
  19195.                        setFilter: function (e) {
  19196.                            return this.setFilters(e ? [e] : []);
  19197.                        },
  19198.                        setPlaybackRate: function (e) {
  19199.                            return this.hasPlaybackControl === !1 ?
  19200.                                void console.warn("THREE.Audio: this Audio has no playback control.") :
  19201.                                ((this.playbackRate = e), this.isPlaying === !0 && (this.source.playbackRate.value = this.playbackRate), this);
  19202.                        },
  19203.                        getPlaybackRate: function () {
  19204.                            return this.playbackRate;
  19205.                        },
  19206.                        onEnded: function () {
  19207.                            this.isPlaying = !1;
  19208.                        },
  19209.                        getLoop: function () {
  19210.                            return this.hasPlaybackControl === !1 ? (console.warn("THREE.Audio: this Audio has no playback control."), !1) : this.source.loop;
  19211.                        },
  19212.                        setLoop: function (e) {
  19213.                            return this.hasPlaybackControl === !1 ? void console.warn("THREE.Audio: this Audio has no playback control.") : void(this.source.loop = e);
  19214.                        },
  19215.                        getVolume: function () {
  19216.                            return this.gain.gain.value;
  19217.                        },
  19218.                        setVolume: function (e) {
  19219.                            return (this.gain.gain.value = e), this;
  19220.                        },
  19221.                    })),
  19222.                    (n.AudioAnalyser = function (e, t) {
  19223.                        (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);
  19224.                    }),
  19225.                    Object.assign(n.AudioAnalyser.prototype, {
  19226.                        getFrequencyData: function () {
  19227.                            return this.analyser.getByteFrequencyData(this.data), this.data;
  19228.                        },
  19229.                        getAverageFrequency: function () {
  19230.                            for (var e = 0, t = this.getFrequencyData(), i = 0; i < t.length; i++) e += t[i];
  19231.                            return e / t.length;
  19232.                        },
  19233.                    }),
  19234.                    Object.defineProperty(n, "AudioContext", {
  19235.                        get: (function () {
  19236.                            var e;
  19237.                            return function () {
  19238.                                return void 0 === e && (e = new(window.AudioContext || window.webkitAudioContext)()), e;
  19239.                            };
  19240.                        })(),
  19241.                    }),
  19242.                    (n.PositionalAudio = function (e) {
  19243.                        n.Audio.call(this, e), (this.panner = this.context.createPanner()), this.panner.connect(this.gain);
  19244.                    }),
  19245.                    (n.PositionalAudio.prototype = Object.assign(Object.create(n.Audio.prototype), {
  19246.                        constructor: n.PositionalAudio,
  19247.                        getOutput: function () {
  19248.                            return this.panner;
  19249.                        },
  19250.                        getRefDistance: function () {
  19251.                            return this.panner.refDistance;
  19252.                        },
  19253.                        setRefDistance: function (e) {
  19254.                            this.panner.refDistance = e;
  19255.                        },
  19256.                        getRolloffFactor: function () {
  19257.                            return this.panner.rolloffFactor;
  19258.                        },
  19259.                        setRolloffFactor: function (e) {
  19260.                            this.panner.rolloffFactor = e;
  19261.                        },
  19262.                        getDistanceModel: function () {
  19263.                            return this.panner.distanceModel;
  19264.                        },
  19265.                        setDistanceModel: function (e) {
  19266.                            this.panner.distanceModel = e;
  19267.                        },
  19268.                        getMaxDistance: function () {
  19269.                            return this.panner.maxDistance;
  19270.                        },
  19271.                        setMaxDistance: function (e) {
  19272.                            this.panner.maxDistance = e;
  19273.                        },
  19274.                        updateMatrixWorld: (function () {
  19275.                            var e = new n.Vector3();
  19276.                            return function (t) {
  19277.                                n.Object3D.prototype.updateMatrixWorld.call(this, t), e.setFromMatrixPosition(this.matrixWorld), this.panner.setPosition(e.x, e.y, e.z);
  19278.                            };
  19279.                        })(),
  19280.                    })),
  19281.                    (n.AudioListener = function () {
  19282.                        n.Object3D.call(this), (this.type = "AudioListener"), (this.context = n.AudioContext), (this.gain = this.context.createGain()), this.gain.connect(this.context.destination), (this.filter = null);
  19283.                    }),
  19284.                    (n.AudioListener.prototype = Object.assign(Object.create(n.Object3D.prototype), {
  19285.                        constructor: n.AudioListener,
  19286.                        getInput: function () {
  19287.                            return this.gain;
  19288.                        },
  19289.                        removeFilter: function () {
  19290.                            null !== this.filter && (this.gain.disconnect(this.filter), this.filter.disconnect(this.context.destination), this.gain.connect(this.context.destination), (this.filter = null));
  19291.                        },
  19292.                        getFilter: function () {
  19293.                            return this.filter;
  19294.                        },
  19295.                        setFilter: function (e) {
  19296.                            null !== this.filter ? (this.gain.disconnect(this.filter), this.filter.disconnect(this.context.destination)) : this.gain.disconnect(this.context.destination),
  19297.                                (this.filter = e),
  19298.                                this.gain.connect(this.filter),
  19299.                                this.filter.connect(this.context.destination);
  19300.                        },
  19301.                        getMasterVolume: function () {
  19302.                            return this.gain.gain.value;
  19303.                        },
  19304.                        setMasterVolume: function (e) {
  19305.                            this.gain.gain.value = e;
  19306.                        },
  19307.                        updateMatrixWorld: (function () {
  19308.                            var e = new n.Vector3(),
  19309.                                t = new n.Quaternion(),
  19310.                                i = new n.Vector3(),
  19311.                                r = new n.Vector3();
  19312.                            return function (o) {
  19313.                                n.Object3D.prototype.updateMatrixWorld.call(this, o);
  19314.                                var a = this.context.listener,
  19315.                                    s = this.up;
  19316.                                this.matrixWorld.decompose(e, t, i), r.set(0, 0, -1).applyQuaternion(t), a.setPosition(e.x, e.y, e.z), a.setOrientation(r.x, r.y, r.z, s.x, s.y, s.z);
  19317.                            };
  19318.                        })(),
  19319.                    })),
  19320.                    (n.Camera = function () {
  19321.                        n.Object3D.call(this), (this.type = "Camera"), (this.matrixWorldInverse = new n.Matrix4()), (this.projectionMatrix = new n.Matrix4());
  19322.                    }),
  19323.                    (n.Camera.prototype = Object.create(n.Object3D.prototype)),
  19324.                    (n.Camera.prototype.constructor = n.Camera),
  19325.                    (n.Camera.prototype.getWorldDirection = (function () {
  19326.                        var e = new n.Quaternion();
  19327.                        return function (t) {
  19328.                            var i = t || new n.Vector3();
  19329.                            return this.getWorldQuaternion(e), i.set(0, 0, -1).applyQuaternion(e);
  19330.                        };
  19331.                    })()),
  19332.                    (n.Camera.prototype.lookAt = (function () {
  19333.                        var e = new n.Matrix4();
  19334.                        return function (t) {
  19335.                            e.lookAt(this.position, t, this.up), this.quaternion.setFromRotationMatrix(e);
  19336.                        };
  19337.                    })()),
  19338.                    (n.Camera.prototype.clone = function () {
  19339.                        return new this.constructor().copy(this);
  19340.                    }),
  19341.                    (n.Camera.prototype.copy = function (e) {
  19342.                        return n.Object3D.prototype.copy.call(this, e), this.matrixWorldInverse.copy(e.matrixWorldInverse), this.projectionMatrix.copy(e.projectionMatrix), this;
  19343.                    }),
  19344.                    (n.CubeCamera = function (e, t, i) {
  19345.                        n.Object3D.call(this), (this.type = "CubeCamera");
  19346.                        var r = 90,
  19347.                            o = 1,
  19348.                            a = new n.PerspectiveCamera(r, o, e, t);
  19349.                        a.up.set(0, -1, 0), a.lookAt(new n.Vector3(1, 0, 0)), this.add(a);
  19350.                        var s = new n.PerspectiveCamera(r, o, e, t);
  19351.                        s.up.set(0, -1, 0), s.lookAt(new n.Vector3(-1, 0, 0)), this.add(s);
  19352.                        var l = new n.PerspectiveCamera(r, o, e, t);
  19353.                        l.up.set(0, 0, 1), l.lookAt(new n.Vector3(0, 1, 0)), this.add(l);
  19354.                        var c = new n.PerspectiveCamera(r, o, e, t);
  19355.                        c.up.set(0, 0, -1), c.lookAt(new n.Vector3(0, -1, 0)), this.add(c);
  19356.                        var u = new n.PerspectiveCamera(r, o, e, t);
  19357.                        u.up.set(0, -1, 0), u.lookAt(new n.Vector3(0, 0, 1)), this.add(u);
  19358.                        var h = new n.PerspectiveCamera(r, o, e, t);
  19359.                        h.up.set(0, -1, 0), h.lookAt(new n.Vector3(0, 0, -1)), this.add(h);
  19360.                        var d = {
  19361.                            format: n.RGBFormat,
  19362.                            magFilter: n.LinearFilter,
  19363.                            minFilter: n.LinearFilter
  19364.                        };
  19365.                        (this.renderTarget = new n.WebGLRenderTargetCube(i, i, d)),
  19366.                        (this.updateCubeMap = function (e, t) {
  19367.                            null === this.parent && this.updateMatrixWorld();
  19368.                            var i = this.renderTarget,
  19369.                                n = i.texture.generateMipmaps;
  19370.                            (i.texture.generateMipmaps = !1),
  19371.                            (i.activeCubeFace = 0),
  19372.                            e.render(t, a, i),
  19373.                                (i.activeCubeFace = 1),
  19374.                                e.render(t, s, i),
  19375.                                (i.activeCubeFace = 2),
  19376.                                e.render(t, l, i),
  19377.                                (i.activeCubeFace = 3),
  19378.                                e.render(t, c, i),
  19379.                                (i.activeCubeFace = 4),
  19380.                                e.render(t, u, i),
  19381.                                (i.texture.generateMipmaps = n),
  19382.                                (i.activeCubeFace = 5),
  19383.                                e.render(t, h, i),
  19384.                                e.setRenderTarget(null);
  19385.                        });
  19386.                    }),
  19387.                    (n.CubeCamera.prototype = Object.create(n.Object3D.prototype)),
  19388.                    (n.CubeCamera.prototype.constructor = n.CubeCamera),
  19389.                    (n.OrthographicCamera = function (e, t, i, r, o, a) {
  19390.                        n.Camera.call(this),
  19391.                            (this.type = "OrthographicCamera"),
  19392.                            (this.zoom = 1),
  19393.                            (this.view = null),
  19394.                            (this.left = e),
  19395.                            (this.right = t),
  19396.                            (this.top = i),
  19397.                            (this.bottom = r),
  19398.                            (this.near = void 0 !== o ? o : 0.1),
  19399.                            (this.far = void 0 !== a ? a : 2e3),
  19400.                            this.updateProjectionMatrix();
  19401.                    }),
  19402.                    (n.OrthographicCamera.prototype = Object.assign(Object.create(n.Camera.prototype), {
  19403.                        constructor: n.OrthographicCamera,
  19404.                        copy: function (e) {
  19405.                            return (
  19406.                                n.Camera.prototype.copy.call(this, e),
  19407.                                (this.left = e.left),
  19408.                                (this.right = e.right),
  19409.                                (this.top = e.top),
  19410.                                (this.bottom = e.bottom),
  19411.                                (this.near = e.near),
  19412.                                (this.far = e.far),
  19413.                                (this.zoom = e.zoom),
  19414.                                (this.view = null === e.view ? null : Object.assign({}, e.view)),
  19415.                                this
  19416.                            );
  19417.                        },
  19418.                        setViewOffset: function (e, t, i, n, r, o) {
  19419.                            (this.view = {
  19420.                                fullWidth: e,
  19421.                                fullHeight: t,
  19422.                                offsetX: i,
  19423.                                offsetY: n,
  19424.                                width: r,
  19425.                                height: o
  19426.                            }), this.updateProjectionMatrix();
  19427.                        },
  19428.                        clearViewOffset: function () {
  19429.                            (this.view = null), this.updateProjectionMatrix();
  19430.                        },
  19431.                        updateProjectionMatrix: function () {
  19432.                            var e = (this.right - this.left) / (2 * this.zoom),
  19433.                                t = (this.top - this.bottom) / (2 * this.zoom),
  19434.                                i = (this.right + this.left) / 2,
  19435.                                n = (this.top + this.bottom) / 2,
  19436.                                r = i - e,
  19437.                                o = i + e,
  19438.                                a = n + t,
  19439.                                s = n - t;
  19440.                            if (null !== this.view) {
  19441.                                var l = this.zoom / (this.view.width / this.view.fullWidth),
  19442.                                    c = this.zoom / (this.view.height / this.view.fullHeight),
  19443.                                    u = (this.right - this.left) / this.view.width,
  19444.                                    h = (this.top - this.bottom) / this.view.height;
  19445.                                (r += u * (this.view.offsetX / l)), (o = r + u * (this.view.width / l)), (a -= h * (this.view.offsetY / c)), (s = a - h * (this.view.height / c));
  19446.                            }
  19447.                            this.projectionMatrix.makeOrthographic(r, o, a, s, this.near, this.far);
  19448.                        },
  19449.                        toJSON: function (e) {
  19450.                            var t = n.Object3D.prototype.toJSON.call(this, e);
  19451.                            return (
  19452.                                (t.object.zoom = this.zoom),
  19453.                                (t.object.left = this.left),
  19454.                                (t.object.right = this.right),
  19455.                                (t.object.top = this.top),
  19456.                                (t.object.bottom = this.bottom),
  19457.                                (t.object.near = this.near),
  19458.                                (t.object.far = this.far),
  19459.                                null !== this.view && (t.object.view = Object.assign({}, this.view)),
  19460.                                t
  19461.                            );
  19462.                        },
  19463.                    })),
  19464.                    (n.PerspectiveCamera = function (e, t, i, r) {
  19465.                        n.Camera.call(this),
  19466.                            (this.type = "PerspectiveCamera"),
  19467.                            (this.fov = void 0 !== e ? e : 50),
  19468.                            (this.zoom = 1),
  19469.                            (this.near = void 0 !== i ? i : 0.1),
  19470.                            (this.far = void 0 !== r ? r : 2e3),
  19471.                            (this.focus = 10),
  19472.                            (this.aspect = void 0 !== t ? t : 1),
  19473.                            (this.view = null),
  19474.                            (this.filmGauge = 35),
  19475.                            (this.filmOffset = 0),
  19476.                            this.updateProjectionMatrix();
  19477.                    }),
  19478.                    (n.PerspectiveCamera.prototype = Object.assign(Object.create(n.Camera.prototype), {
  19479.                        constructor: n.PerspectiveCamera,
  19480.                        copy: function (e) {
  19481.                            return (
  19482.                                n.Camera.prototype.copy.call(this, e),
  19483.                                (this.fov = e.fov),
  19484.                                (this.zoom = e.zoom),
  19485.                                (this.near = e.near),
  19486.                                (this.far = e.far),
  19487.                                (this.focus = e.focus),
  19488.                                (this.aspect = e.aspect),
  19489.                                (this.view = null === e.view ? null : Object.assign({}, e.view)),
  19490.                                (this.filmGauge = e.filmGauge),
  19491.                                (this.filmOffset = e.filmOffset),
  19492.                                this
  19493.                            );
  19494.                        },
  19495.                        setFocalLength: function (e) {
  19496.                            var t = (0.5 * this.getFilmHeight()) / e;
  19497.                            (this.fov = 2 * n.Math.RAD2DEG * Math.atan(t)), this.updateProjectionMatrix();
  19498.                        },
  19499.                        getFocalLength: function () {
  19500.                            var e = Math.tan(0.5 * n.Math.DEG2RAD * this.fov);
  19501.                            return (0.5 * this.getFilmHeight()) / e;
  19502.                        },
  19503.                        getEffectiveFOV: function () {
  19504.                            return 2 * n.Math.RAD2DEG * Math.atan(Math.tan(0.5 * n.Math.DEG2RAD * this.fov) / this.zoom);
  19505.                        },
  19506.                        getFilmWidth: function () {
  19507.                            return this.filmGauge * Math.min(this.aspect, 1);
  19508.                        },
  19509.                        getFilmHeight: function () {
  19510.                            return this.filmGauge / Math.max(this.aspect, 1);
  19511.                        },
  19512.                        setViewOffset: function (e, t, i, n, r, o) {
  19513.                            (this.aspect = e / t), (this.view = {
  19514.                                fullWidth: e,
  19515.                                fullHeight: t,
  19516.                                offsetX: i,
  19517.                                offsetY: n,
  19518.                                width: r,
  19519.                                height: o
  19520.                            }), this.updateProjectionMatrix();
  19521.                        },
  19522.                        clearViewOffset: function () {
  19523.                            (this.view = null), this.updateProjectionMatrix();
  19524.                        },
  19525.                        updateProjectionMatrix: function () {
  19526.                            var e = this.near,
  19527.                                t = (e * Math.tan(0.5 * n.Math.DEG2RAD * this.fov)) / this.zoom,
  19528.                                i = 2 * t,
  19529.                                r = this.aspect * i,
  19530.                                o = -0.5 * r,
  19531.                                a = this.view;
  19532.                            if (null !== a) {
  19533.                                var s = a.fullWidth,
  19534.                                    l = a.fullHeight;
  19535.                                (o += (a.offsetX * r) / s), (t -= (a.offsetY * i) / l), (r *= a.width / s), (i *= a.height / l);
  19536.                            }
  19537.                            var c = this.filmOffset;
  19538.                            0 !== c && (o += (e * c) / this.getFilmWidth()), this.projectionMatrix.makeFrustum(o, o + r, t - i, t, e, this.far);
  19539.                        },
  19540.                        toJSON: function (e) {
  19541.                            var t = n.Object3D.prototype.toJSON.call(this, e);
  19542.                            return (
  19543.                                (t.object.fov = this.fov),
  19544.                                (t.object.zoom = this.zoom),
  19545.                                (t.object.near = this.near),
  19546.                                (t.object.far = this.far),
  19547.                                (t.object.focus = this.focus),
  19548.                                (t.object.aspect = this.aspect),
  19549.                                null !== this.view && (t.object.view = Object.assign({}, this.view)),
  19550.                                (t.object.filmGauge = this.filmGauge),
  19551.                                (t.object.filmOffset = this.filmOffset),
  19552.                                t
  19553.                            );
  19554.                        },
  19555.                    })),
  19556.                    (n.StereoCamera = function () {
  19557.                        (this.type = "StereoCamera"),
  19558.                        (this.aspect = 1),
  19559.                        (this.cameraL = new n.PerspectiveCamera()),
  19560.                        this.cameraL.layers.enable(1),
  19561.                            (this.cameraL.matrixAutoUpdate = !1),
  19562.                            (this.cameraR = new n.PerspectiveCamera()),
  19563.                            this.cameraR.layers.enable(2),
  19564.                            (this.cameraR.matrixAutoUpdate = !1);
  19565.                    }),
  19566.                    Object.assign(n.StereoCamera.prototype, {
  19567.                        update: (function () {
  19568.                            var e,
  19569.                                t,
  19570.                                i,
  19571.                                r,
  19572.                                o,
  19573.                                a = new n.Matrix4(),
  19574.                                s = new n.Matrix4();
  19575.                            return function (l) {
  19576.                                var c = e !== l.focus || t !== l.fov || i !== l.aspect * this.aspect || r !== l.near || o !== l.far;
  19577.                                if (c) {
  19578.                                    (e = l.focus), (t = l.fov), (i = l.aspect * this.aspect), (r = l.near), (o = l.far);
  19579.                                    var u,
  19580.                                        h,
  19581.                                        d = l.projectionMatrix.clone(),
  19582.                                        f = 0.032,
  19583.                                        p = (f * r) / e,
  19584.                                        m = r * Math.tan(n.Math.DEG2RAD * t * 0.5);
  19585.                                    (s.elements[12] = -f),
  19586.                                    (a.elements[12] = f),
  19587.                                    (u = -m * i + p),
  19588.                                    (h = m * i + p),
  19589.                                    (d.elements[0] = (2 * r) / (h - u)),
  19590.                                    (d.elements[8] = (h + u) / (h - u)),
  19591.                                    this.cameraL.projectionMatrix.copy(d),
  19592.                                        (u = -m * i - p),
  19593.                                        (h = m * i - p),
  19594.                                        (d.elements[0] = (2 * r) / (h - u)),
  19595.                                        (d.elements[8] = (h + u) / (h - u)),
  19596.                                        this.cameraR.projectionMatrix.copy(d);
  19597.                                }
  19598.                                this.cameraL.matrixWorld.copy(l.matrixWorld).multiply(s), this.cameraR.matrixWorld.copy(l.matrixWorld).multiply(a);
  19599.                            };
  19600.                        })(),
  19601.                    }),
  19602.                    (n.Light = function (e, t) {
  19603.                        n.Object3D.call(this), (this.type = "Light"), (this.color = new n.Color(e)), (this.intensity = void 0 !== t ? t : 1), (this.receiveShadow = void 0);
  19604.                    }),
  19605.                    (n.Light.prototype = Object.assign(Object.create(n.Object3D.prototype), {
  19606.                        constructor: n.Light,
  19607.                        copy: function (e) {
  19608.                            return n.Object3D.prototype.copy.call(this, e), this.color.copy(e.color), (this.intensity = e.intensity), this;
  19609.                        },
  19610.                        toJSON: function (e) {
  19611.                            var t = n.Object3D.prototype.toJSON.call(this, e);
  19612.                            return (
  19613.                                (t.object.color = this.color.getHex()),
  19614.                                (t.object.intensity = this.intensity),
  19615.                                void 0 !== this.groundColor && (t.object.groundColor = this.groundColor.getHex()),
  19616.                                void 0 !== this.distance && (t.object.distance = this.distance),
  19617.                                void 0 !== this.angle && (t.object.angle = this.angle),
  19618.                                void 0 !== this.decay && (t.object.decay = this.decay),
  19619.                                void 0 !== this.penumbra && (t.object.penumbra = this.penumbra),
  19620.                                t
  19621.                            );
  19622.                        },
  19623.                    })),
  19624.                    (n.LightShadow = function (e) {
  19625.                        (this.camera = e), (this.bias = 0), (this.radius = 1), (this.mapSize = new n.Vector2(512, 512)), (this.map = null), (this.matrix = new n.Matrix4());
  19626.                    }),
  19627.                    Object.assign(n.LightShadow.prototype, {
  19628.                        copy: function (e) {
  19629.                            return (this.camera = e.camera.clone()), (this.bias = e.bias), (this.radius = e.radius), this.mapSize.copy(e.mapSize), this;
  19630.                        },
  19631.                        clone: function () {
  19632.                            return new this.constructor().copy(this);
  19633.                        },
  19634.                    }),
  19635.                    (n.AmbientLight = function (e, t) {
  19636.                        n.Light.call(this, e, t), (this.type = "AmbientLight"), (this.castShadow = void 0);
  19637.                    }),
  19638.                    (n.AmbientLight.prototype = Object.assign(Object.create(n.Light.prototype), {
  19639.                        constructor: n.AmbientLight
  19640.                    })),
  19641.                    (n.DirectionalLight = function (e, t) {
  19642.                        n.Light.call(this, e, t), (this.type = "DirectionalLight"), this.position.copy(n.Object3D.DefaultUp), this.updateMatrix(), (this.target = new n.Object3D()), (this.shadow = new n.DirectionalLightShadow());
  19643.                    }),
  19644.                    (n.DirectionalLight.prototype = Object.assign(Object.create(n.Light.prototype), {
  19645.                        constructor: n.DirectionalLight,
  19646.                        copy: function (e) {
  19647.                            return n.Light.prototype.copy.call(this, e), (this.target = e.target.clone()), (this.shadow = e.shadow.clone()), this;
  19648.                        },
  19649.                    })),
  19650.                    (n.DirectionalLightShadow = function (e) {
  19651.                        n.LightShadow.call(this, new n.OrthographicCamera(-5, 5, 5, -5, 0.5, 500));
  19652.                    }),
  19653.                    (n.DirectionalLightShadow.prototype = Object.assign(Object.create(n.LightShadow.prototype), {
  19654.                        constructor: n.DirectionalLightShadow
  19655.                    })),
  19656.                    (n.HemisphereLight = function (e, t, i) {
  19657.                        n.Light.call(this, e, i), (this.type = "HemisphereLight"), (this.castShadow = void 0), this.position.copy(n.Object3D.DefaultUp), this.updateMatrix(), (this.groundColor = new n.Color(t));
  19658.                    }),
  19659.                    (n.HemisphereLight.prototype = Object.assign(Object.create(n.Light.prototype), {
  19660.                        constructor: n.HemisphereLight,
  19661.                        copy: function (e) {
  19662.                            return n.Light.prototype.copy.call(this, e), this.groundColor.copy(e.groundColor), this;
  19663.                        },
  19664.                    })),
  19665.                    (n.PointLight = function (e, t, i, r) {
  19666.                        n.Light.call(this, e, t),
  19667.                            (this.type = "PointLight"),
  19668.                            Object.defineProperty(this, "power", {
  19669.                                get: function () {
  19670.                                    return 4 * this.intensity * Math.PI;
  19671.                                },
  19672.                                set: function (e) {
  19673.                                    this.intensity = e / (4 * Math.PI);
  19674.                                },
  19675.                            }),
  19676.                            (this.distance = void 0 !== i ? i : 0),
  19677.                            (this.decay = void 0 !== r ? r : 1),
  19678.                            (this.shadow = new n.LightShadow(new n.PerspectiveCamera(90, 1, 0.5, 500)));
  19679.                    }),
  19680.                    (n.PointLight.prototype = Object.assign(Object.create(n.Light.prototype), {
  19681.                        constructor: n.PointLight,
  19682.                        copy: function (e) {
  19683.                            return n.Light.prototype.copy.call(this, e), (this.distance = e.distance), (this.decay = e.decay), (this.shadow = e.shadow.clone()), this;
  19684.                        },
  19685.                    })),
  19686.                    (n.SpotLight = function (e, t, i, r, o, a) {
  19687.                        n.Light.call(this, e, t),
  19688.                            (this.type = "SpotLight"),
  19689.                            this.position.copy(n.Object3D.DefaultUp),
  19690.                            this.updateMatrix(),
  19691.                            (this.target = new n.Object3D()),
  19692.                            Object.defineProperty(this, "power", {
  19693.                                get: function () {
  19694.                                    return this.intensity * Math.PI;
  19695.                                },
  19696.                                set: function (e) {
  19697.                                    this.intensity = e / Math.PI;
  19698.                                },
  19699.                            }),
  19700.                            (this.distance = void 0 !== i ? i : 0),
  19701.                            (this.angle = void 0 !== r ? r : Math.PI / 3),
  19702.                            (this.penumbra = void 0 !== o ? o : 0),
  19703.                            (this.decay = void 0 !== a ? a : 1),
  19704.                            (this.shadow = new n.SpotLightShadow());
  19705.                    }),
  19706.                    (n.SpotLight.prototype = Object.assign(Object.create(n.Light.prototype), {
  19707.                        constructor: n.SpotLight,
  19708.                        copy: function (e) {
  19709.                            return (
  19710.                                n.Light.prototype.copy.call(this, e),
  19711.                                (this.distance = e.distance),
  19712.                                (this.angle = e.angle),
  19713.                                (this.penumbra = e.penumbra),
  19714.                                (this.decay = e.decay),
  19715.                                (this.target = e.target.clone()),
  19716.                                (this.shadow = e.shadow.clone()),
  19717.                                this
  19718.                            );
  19719.                        },
  19720.                    })),
  19721.                    (n.SpotLightShadow = function () {
  19722.                        n.LightShadow.call(this, new n.PerspectiveCamera(50, 1, 0.5, 500));
  19723.                    }),
  19724.                    (n.SpotLightShadow.prototype = Object.assign(Object.create(n.LightShadow.prototype), {
  19725.                        constructor: n.SpotLightShadow,
  19726.                        update: function (e) {
  19727.                            var t = 2 * n.Math.RAD2DEG * e.angle,
  19728.                                i = this.mapSize.width / this.mapSize.height,
  19729.                                r = e.distance || 500,
  19730.                                o = this.camera;
  19731.                            (t !== o.fov || i !== o.aspect || r !== o.far) && ((o.fov = t), (o.aspect = i), (o.far = r), o.updateProjectionMatrix());
  19732.                        },
  19733.                    })),
  19734.                    (n.AudioLoader = function (e) {
  19735.                        this.manager = void 0 !== e ? e : n.DefaultLoadingManager;
  19736.                    }),
  19737.                    Object.assign(n.AudioLoader.prototype, {
  19738.                        load: function (e, t, i, r) {
  19739.                            var o = new n.XHRLoader(this.manager);
  19740.                            o.setResponseType("arraybuffer"),
  19741.                                o.load(
  19742.                                    e,
  19743.                                    function (e) {
  19744.                                        var i = n.AudioContext;
  19745.                                        i.decodeAudioData(e, function (e) {
  19746.                                            t(e);
  19747.                                        });
  19748.                                    },
  19749.                                    i,
  19750.                                    r
  19751.                                );
  19752.                        },
  19753.                    }),
  19754.                    (n.Cache = {
  19755.                        enabled: !1,
  19756.                        files: {},
  19757.                        add: function (e, t) {
  19758.                            this.enabled !== !1 && (this.files[e] = t);
  19759.                        },
  19760.                        get: function (e) {
  19761.                            return this.enabled !== !1 ? this.files[e] : void 0;
  19762.                        },
  19763.                        remove: function (e) {
  19764.                            delete this.files[e];
  19765.                        },
  19766.                        clear: function () {
  19767.                            this.files = {};
  19768.                        },
  19769.                    }),
  19770.                    (n.Loader = function () {
  19771.                        (this.onLoadStart = function () {}), (this.onLoadProgress = function () {}), (this.onLoadComplete = function () {});
  19772.                    }),
  19773.                    (n.Loader.prototype = {
  19774.                        constructor: n.Loader,
  19775.                        crossOrigin: void 0,
  19776.                        extractUrlBase: function (e) {
  19777.                            var t = e.split("/");
  19778.                            return 1 === t.length ? "./" : (t.pop(), t.join("/") + "/");
  19779.                        },
  19780.                        initMaterials: function (e, t, i) {
  19781.                            for (var n = [], r = 0; r < e.length; ++r) n[r] = this.createMaterial(e[r], t, i);
  19782.                            return n;
  19783.                        },
  19784.                        createMaterial: (function () {
  19785.                            var e, t, i;
  19786.                            return function (r, o, a) {
  19787.                                function s(e, i, r, s, c) {
  19788.                                    var u,
  19789.                                        h = o + e,
  19790.                                        d = n.Loader.Handlers.get(h);
  19791.                                    null !== d ? (u = d.load(h)) : (t.setCrossOrigin(a), (u = t.load(h))),
  19792.                                        void 0 !== i && (u.repeat.fromArray(i), 1 !== i[0] && (u.wrapS = n.RepeatWrapping), 1 !== i[1] && (u.wrapT = n.RepeatWrapping)),
  19793.                                        void 0 !== r && u.offset.fromArray(r),
  19794.                                        void 0 !== s &&
  19795.                                        ("repeat" === s[0] && (u.wrapS = n.RepeatWrapping),
  19796.                                            "mirror" === s[0] && (u.wrapS = n.MirroredRepeatWrapping),
  19797.                                            "repeat" === s[1] && (u.wrapT = n.RepeatWrapping),
  19798.                                            "mirror" === s[1] && (u.wrapT = n.MirroredRepeatWrapping)),
  19799.                                        void 0 !== c && (u.anisotropy = c);
  19800.                                    var f = n.Math.generateUUID();
  19801.                                    return (l[f] = u), f;
  19802.                                }
  19803.                                void 0 === e && (e = new n.Color()), void 0 === t && (t = new n.TextureLoader()), void 0 === i && (i = new n.MaterialLoader());
  19804.                                var l = {},
  19805.                                    c = {
  19806.                                        uuid: n.Math.generateUUID(),
  19807.                                        type: "MeshLambertMaterial"
  19808.                                    };
  19809.                                for (var u in r) {
  19810.                                    var h = r[u];
  19811.                                    switch (u) {
  19812.                                    case "DbgColor":
  19813.                                    case "DbgIndex":
  19814.                                    case "opticalDensity":
  19815.                                    case "illumination":
  19816.                                        break;
  19817.                                    case "DbgName":
  19818.                                        c.name = h;
  19819.                                        break;
  19820.                                    case "blending":
  19821.                                        c.blending = n[h];
  19822.                                        break;
  19823.                                    case "colorAmbient":
  19824.                                    case "mapAmbient":
  19825.                                        console.warn("THREE.Loader.createMaterial:", u, "is no longer supported.");
  19826.                                        break;
  19827.                                    case "colorDiffuse":
  19828.                                        c.color = e.fromArray(h).getHex();
  19829.                                        break;
  19830.                                    case "colorSpecular":
  19831.                                        c.specular = e.fromArray(h).getHex();
  19832.                                        break;
  19833.                                    case "colorEmissive":
  19834.                                        c.emissive = e.fromArray(h).getHex();
  19835.                                        break;
  19836.                                    case "specularCoef":
  19837.                                        c.shininess = h;
  19838.                                        break;
  19839.                                    case "shading":
  19840.                                        "basic" === h.toLowerCase() && (c.type = "MeshBasicMaterial"), "phong" === h.toLowerCase() && (c.type = "MeshPhongMaterial"), "standard" === h.toLowerCase() && (c.type = "MeshStandardMaterial");
  19841.                                        break;
  19842.                                    case "mapDiffuse":
  19843.                                        c.map = s(h, r.mapDiffuseRepeat, r.mapDiffuseOffset, r.mapDiffuseWrap, r.mapDiffuseAnisotropy);
  19844.                                        break;
  19845.                                    case "mapDiffuseRepeat":
  19846.                                    case "mapDiffuseOffset":
  19847.                                    case "mapDiffuseWrap":
  19848.                                    case "mapDiffuseAnisotropy":
  19849.                                        break;
  19850.                                    case "mapEmissive":
  19851.                                        c.emissiveMap = s(h, r.mapEmissiveRepeat, r.mapEmissiveOffset, r.mapEmissiveWrap, r.mapEmissiveAnisotropy);
  19852.                                        break;
  19853.                                    case "mapEmissiveRepeat":
  19854.                                    case "mapEmissiveOffset":
  19855.                                    case "mapEmissiveWrap":
  19856.                                    case "mapEmissiveAnisotropy":
  19857.                                        break;
  19858.                                    case "mapLight":
  19859.                                        c.lightMap = s(h, r.mapLightRepeat, r.mapLightOffset, r.mapLightWrap, r.mapLightAnisotropy);
  19860.                                        break;
  19861.                                    case "mapLightRepeat":
  19862.                                    case "mapLightOffset":
  19863.                                    case "mapLightWrap":
  19864.                                    case "mapLightAnisotropy":
  19865.                                        break;
  19866.                                    case "mapAO":
  19867.                                        c.aoMap = s(h, r.mapAORepeat, r.mapAOOffset, r.mapAOWrap, r.mapAOAnisotropy);
  19868.                                        break;
  19869.                                    case "mapAORepeat":
  19870.                                    case "mapAOOffset":
  19871.                                    case "mapAOWrap":
  19872.                                    case "mapAOAnisotropy":
  19873.                                        break;
  19874.                                    case "mapBump":
  19875.                                        c.bumpMap = s(h, r.mapBumpRepeat, r.mapBumpOffset, r.mapBumpWrap, r.mapBumpAnisotropy);
  19876.                                        break;
  19877.                                    case "mapBumpScale":
  19878.                                        c.bumpScale = h;
  19879.                                        break;
  19880.                                    case "mapBumpRepeat":
  19881.                                    case "mapBumpOffset":
  19882.                                    case "mapBumpWrap":
  19883.                                    case "mapBumpAnisotropy":
  19884.                                        break;
  19885.                                    case "mapNormal":
  19886.                                        c.normalMap = s(h, r.mapNormalRepeat, r.mapNormalOffset, r.mapNormalWrap, r.mapNormalAnisotropy);
  19887.                                        break;
  19888.                                    case "mapNormalFactor":
  19889.                                        c.normalScale = [h, h];
  19890.                                        break;
  19891.                                    case "mapNormalRepeat":
  19892.                                    case "mapNormalOffset":
  19893.                                    case "mapNormalWrap":
  19894.                                    case "mapNormalAnisotropy":
  19895.                                        break;
  19896.                                    case "mapSpecular":
  19897.                                        c.specularMap = s(h, r.mapSpecularRepeat, r.mapSpecularOffset, r.mapSpecularWrap, r.mapSpecularAnisotropy);
  19898.                                        break;
  19899.                                    case "mapSpecularRepeat":
  19900.                                    case "mapSpecularOffset":
  19901.                                    case "mapSpecularWrap":
  19902.                                    case "mapSpecularAnisotropy":
  19903.                                        break;
  19904.                                    case "mapMetalness":
  19905.                                        c.metalnessMap = s(h, r.mapMetalnessRepeat, r.mapMetalnessOffset, r.mapMetalnessWrap, r.mapMetalnessAnisotropy);
  19906.                                        break;
  19907.                                    case "mapMetalnessRepeat":
  19908.                                    case "mapMetalnessOffset":
  19909.                                    case "mapMetalnessWrap":
  19910.                                    case "mapMetalnessAnisotropy":
  19911.                                        break;
  19912.                                    case "mapRoughness":
  19913.                                        c.roughnessMap = s(h, r.mapRoughnessRepeat, r.mapRoughnessOffset, r.mapRoughnessWrap, r.mapRoughnessAnisotropy);
  19914.                                        break;
  19915.                                    case "mapRoughnessRepeat":
  19916.                                    case "mapRoughnessOffset":
  19917.                                    case "mapRoughnessWrap":
  19918.                                    case "mapRoughnessAnisotropy":
  19919.                                        break;
  19920.                                    case "mapAlpha":
  19921.                                        c.alphaMap = s(h, r.mapAlphaRepeat, r.mapAlphaOffset, r.mapAlphaWrap, r.mapAlphaAnisotropy);
  19922.                                        break;
  19923.                                    case "mapAlphaRepeat":
  19924.                                    case "mapAlphaOffset":
  19925.                                    case "mapAlphaWrap":
  19926.                                    case "mapAlphaAnisotropy":
  19927.                                        break;
  19928.                                    case "flipSided":
  19929.                                        c.side = n.BackSide;
  19930.                                        break;
  19931.                                    case "doubleSided":
  19932.                                        c.side = n.DoubleSide;
  19933.                                        break;
  19934.                                    case "transparency":
  19935.                                        console.warn("THREE.Loader.createMaterial: transparency has been renamed to opacity"), (c.opacity = h);
  19936.                                        break;
  19937.                                    case "depthTest":
  19938.                                    case "depthWrite":
  19939.                                    case "colorWrite":
  19940.                                    case "opacity":
  19941.                                    case "reflectivity":
  19942.                                    case "transparent":
  19943.                                    case "visible":
  19944.                                    case "wireframe":
  19945.                                        c[u] = h;
  19946.                                        break;
  19947.                                    case "vertexColors":
  19948.                                        h === !0 && (c.vertexColors = n.VertexColors), "face" === h && (c.vertexColors = n.FaceColors);
  19949.                                        break;
  19950.                                    default:
  19951.                                        console.error("THREE.Loader.createMaterial: Unsupported", u, h);
  19952.                                    }
  19953.                                }
  19954.                                return "MeshBasicMaterial" === c.type && delete c.emissive, "MeshPhongMaterial" !== c.type && delete c.specular, c.opacity < 1 && (c.transparent = !0), i.setTextures(l), i.parse(c);
  19955.                            };
  19956.                        })(),
  19957.                    }),
  19958.                    (n.Loader.Handlers = {
  19959.                        handlers: [],
  19960.                        add: function (e, t) {
  19961.                            this.handlers.push(e, t);
  19962.                        },
  19963.                        get: function (e) {
  19964.                            for (var t = this.handlers, i = 0, n = t.length; n > i; i += 2) {
  19965.                                var r = t[i],
  19966.                                    o = t[i + 1];
  19967.                                if (r.test(e)) return o;
  19968.                            }
  19969.                            return null;
  19970.                        },
  19971.                    }),
  19972.                    (n.XHRLoader = function (e) {
  19973.                        this.manager = void 0 !== e ? e : n.DefaultLoadingManager;
  19974.                    }),
  19975.                    Object.assign(n.XHRLoader.prototype, {
  19976.                        load: function (e, t, i, r) {
  19977.                            void 0 !== this.path && (e = this.path + e);
  19978.                            var o = this,
  19979.                                a = n.Cache.get(e);
  19980.                            if (void 0 !== a)
  19981.                                return (
  19982.                                    o.manager.itemStart(e),
  19983.                                    setTimeout(function () {
  19984.                                        t && t(a), o.manager.itemEnd(e);
  19985.                                    }, 0),
  19986.                                    a
  19987.                                );
  19988.                            var s = new XMLHttpRequest();
  19989.                            return (
  19990.                                s.overrideMimeType("text/plain"),
  19991.                                s.open("GET", e, !0),
  19992.                                s.addEventListener(
  19993.                                    "load",
  19994.                                    function (i) {
  19995.                                        var a = i.target.response;
  19996.                                        n.Cache.add(e, a),
  19997.                                            200 === this.status ?
  19998.                                            (t && t(a), o.manager.itemEnd(e)) :
  19999.                                            0 === this.status ?
  20000.                                            (console.warn("THREE.XHRLoader: HTTP Status 0 received."), t && t(a), o.manager.itemEnd(e)) :
  20001.                                            (r && r(i), o.manager.itemError(e));
  20002.                                    },
  20003.                                    !1
  20004.                                ),
  20005.                                void 0 !== i &&
  20006.                                s.addEventListener(
  20007.                                    "progress",
  20008.                                    function (e) {
  20009.                                        i(e);
  20010.                                    },
  20011.                                    !1
  20012.                                ),
  20013.                                s.addEventListener(
  20014.                                    "error",
  20015.                                    function (t) {
  20016.                                        r && r(t), o.manager.itemError(e);
  20017.                                    },
  20018.                                    !1
  20019.                                ),
  20020.                                void 0 !== this.responseType && (s.responseType = this.responseType),
  20021.                                void 0 !== this.withCredentials && (s.withCredentials = this.withCredentials),
  20022.                                s.send(null),
  20023.                                o.manager.itemStart(e),
  20024.                                s
  20025.                            );
  20026.                        },
  20027.                        setPath: function (e) {
  20028.                            return (this.path = e), this;
  20029.                        },
  20030.                        setResponseType: function (e) {
  20031.                            return (this.responseType = e), this;
  20032.                        },
  20033.                        setWithCredentials: function (e) {
  20034.                            return (this.withCredentials = e), this;
  20035.                        },
  20036.                    }),
  20037.                    (n.FontLoader = function (e) {
  20038.                        this.manager = void 0 !== e ? e : n.DefaultLoadingManager;
  20039.                    }),
  20040.                    Object.assign(n.FontLoader.prototype, {
  20041.                        load: function (e, t, i, r) {
  20042.                            var o = this,
  20043.                                a = new n.XHRLoader(this.manager);
  20044.                            a.load(
  20045.                                e,
  20046.                                function (e) {
  20047.                                    var i;
  20048.                                    try {
  20049.                                        i = JSON.parse(e);
  20050.                                    } catch (n) {
  20051.                                        console.warn("THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead."), (i = JSON.parse(e.substring(65, e.length - 2)));
  20052.                                    }
  20053.                                    var r = o.parse(i);
  20054.                                    t && t(r);
  20055.                                },
  20056.                                i,
  20057.                                r
  20058.                            );
  20059.                        },
  20060.                        parse: function (e) {
  20061.                            return new n.Font(e);
  20062.                        },
  20063.                    }),
  20064.                    (n.ImageLoader = function (e) {
  20065.                        this.manager = void 0 !== e ? e : n.DefaultLoadingManager;
  20066.                    }),
  20067.                    Object.assign(n.ImageLoader.prototype, {
  20068.                        load: function (e, t, i, r) {
  20069.                            var o = this,
  20070.                                a = document.createElementNS("http://www.w3.org/1999/xhtml", "img");
  20071.                            if (
  20072.                                ((a.onload = function () {
  20073.                                        URL.revokeObjectURL(a.src), t && t(a), o.manager.itemEnd(e);
  20074.                                    }),
  20075.                                    0 === e.indexOf("data:"))
  20076.                            )
  20077.                                a.src = e;
  20078.                            else {
  20079.                                var s = new n.XHRLoader();
  20080.                                s.setPath(this.path),
  20081.                                    s.setResponseType("blob"),
  20082.                                    s.load(
  20083.                                        e,
  20084.                                        function (e) {
  20085.                                            a.src = URL.createObjectURL(e);
  20086.                                        },
  20087.                                        i,
  20088.                                        r
  20089.                                    );
  20090.                            }
  20091.                            return o.manager.itemStart(e), a;
  20092.                        },
  20093.                        setCrossOrigin: function (e) {
  20094.                            return (this.crossOrigin = e), this;
  20095.                        },
  20096.                        setPath: function (e) {
  20097.                            return (this.path = e), this;
  20098.                        },
  20099.                    }),
  20100.                    (n.JSONLoader = function (e) {
  20101.                        "boolean" == typeof e && (console.warn("THREE.JSONLoader: showStatus parameter has been removed from constructor."), (e = void 0)),
  20102.                            (this.manager = void 0 !== e ? e : n.DefaultLoadingManager),
  20103.                            (this.withCredentials = !1);
  20104.                    }),
  20105.                    Object.assign(n.JSONLoader.prototype, {
  20106.                        load: function (e, t, i, r) {
  20107.                            var o = this,
  20108.                                a = this.texturePath && "string" == typeof this.texturePath ? this.texturePath : n.Loader.prototype.extractUrlBase(e),
  20109.                                s = new n.XHRLoader(this.manager);
  20110.                            s.setWithCredentials(this.withCredentials),
  20111.                                s.load(
  20112.                                    e,
  20113.                                    function (i) {
  20114.                                        var n = JSON.parse(i),
  20115.                                            r = n.metadata;
  20116.                                        if (void 0 !== r) {
  20117.                                            var s = r.type;
  20118.                                            if (void 0 !== s) {
  20119.                                                if ("object" === s.toLowerCase()) return void console.error("THREE.JSONLoader: " + e + " should be loaded with THREE.ObjectLoader instead.");
  20120.                                                if ("scene" === s.toLowerCase()) return void console.error("THREE.JSONLoader: " + e + " should be loaded with THREE.SceneLoader instead.");
  20121.                                            }
  20122.                                        }
  20123.                                        var l = o.parse(n, a);
  20124.                                        t(l.geometry, l.materials);
  20125.                                    },
  20126.                                    i,
  20127.                                    r
  20128.                                );
  20129.                        },
  20130.                        setTexturePath: function (e) {
  20131.                            this.texturePath = e;
  20132.                        },
  20133.                        parse: function (e, t) {
  20134.                            function i(t) {
  20135.                                function i(e, t) {
  20136.                                    return e & (1 << t);
  20137.                                }
  20138.                                var r,
  20139.                                    o,
  20140.                                    a,
  20141.                                    l,
  20142.                                    c,
  20143.                                    u,
  20144.                                    h,
  20145.                                    d,
  20146.                                    f,
  20147.                                    p,
  20148.                                    m,
  20149.                                    v,
  20150.                                    g,
  20151.                                    y,
  20152.                                    _,
  20153.                                    b,
  20154.                                    x,
  20155.                                    w,
  20156.                                    M,
  20157.                                    T,
  20158.                                    S,
  20159.                                    E,
  20160.                                    A,
  20161.                                    C,
  20162.                                    P,
  20163.                                    L,
  20164.                                    R,
  20165.                                    O = e.faces,
  20166.                                    k = e.vertices,
  20167.                                    D = e.normals,
  20168.                                    I = e.colors,
  20169.                                    N = 0;
  20170.                                if (void 0 !== e.uvs) {
  20171.                                    for (r = 0; r < e.uvs.length; r++) e.uvs[r].length && N++;
  20172.                                    for (r = 0; N > r; r++) s.faceVertexUvs[r] = [];
  20173.                                }
  20174.                                for (l = 0, c = k.length; c > l;)(w = new n.Vector3()), (w.x = k[l++] * t), (w.y = k[l++] * t), (w.z = k[l++] * t), s.vertices.push(w);
  20175.                                for (l = 0, c = O.length; c > l;)
  20176.                                    if (((p = O[l++]), (m = i(p, 0)), (v = i(p, 1)), (g = i(p, 3)), (y = i(p, 4)), (_ = i(p, 5)), (b = i(p, 6)), (x = i(p, 7)), m)) {
  20177.                                        if (
  20178.                                            ((T = new n.Face3()),
  20179.                                                (T.a = O[l]),
  20180.                                                (T.b = O[l + 1]),
  20181.                                                (T.c = O[l + 3]),
  20182.                                                (S = new n.Face3()),
  20183.                                                (S.a = O[l + 1]),
  20184.                                                (S.b = O[l + 2]),
  20185.                                                (S.c = O[l + 3]),
  20186.                                                (l += 4),
  20187.                                                v && ((f = O[l++]), (T.materialIndex = f), (S.materialIndex = f)),
  20188.                                                (a = s.faces.length),
  20189.                                                g)
  20190.                                        )
  20191.                                            for (r = 0; N > r; r++)
  20192.                                                for (C = e.uvs[r], s.faceVertexUvs[r][a] = [], s.faceVertexUvs[r][a + 1] = [], o = 0; 4 > o; o++)
  20193.                                                    (d = O[l++]), (L = C[2 * d]), (R = C[2 * d + 1]), (P = new n.Vector2(L, R)), 2 !== o && s.faceVertexUvs[r][a].push(P), 0 !== o && s.faceVertexUvs[r][a + 1].push(P);
  20194.                                        if ((y && ((h = 3 * O[l++]), T.normal.set(D[h++], D[h++], D[h]), S.normal.copy(T.normal)), _))
  20195.                                            for (r = 0; 4 > r; r++)(h = 3 * O[l++]), (A = new n.Vector3(D[h++], D[h++], D[h])), 2 !== r && T.vertexNormals.push(A), 0 !== r && S.vertexNormals.push(A);
  20196.                                        if ((b && ((u = O[l++]), (E = I[u]), T.color.setHex(E), S.color.setHex(E)), x))
  20197.                                            for (r = 0; 4 > r; r++)(u = O[l++]), (E = I[u]), 2 !== r && T.vertexColors.push(new n.Color(E)), 0 !== r && S.vertexColors.push(new n.Color(E));
  20198.                                        s.faces.push(T), s.faces.push(S);
  20199.                                    } else {
  20200.                                        if (((M = new n.Face3()), (M.a = O[l++]), (M.b = O[l++]), (M.c = O[l++]), v && ((f = O[l++]), (M.materialIndex = f)), (a = s.faces.length), g))
  20201.                                            for (r = 0; N > r; r++)
  20202.                                                for (C = e.uvs[r], s.faceVertexUvs[r][a] = [], o = 0; 3 > o; o++)(d = O[l++]), (L = C[2 * d]), (R = C[2 * d + 1]), (P = new n.Vector2(L, R)), s.faceVertexUvs[r][a].push(P);
  20203.                                        if ((y && ((h = 3 * O[l++]), M.normal.set(D[h++], D[h++], D[h])), _))
  20204.                                            for (r = 0; 3 > r; r++)(h = 3 * O[l++]), (A = new n.Vector3(D[h++], D[h++], D[h])), M.vertexNormals.push(A);
  20205.                                        if ((b && ((u = O[l++]), M.color.setHex(I[u])), x))
  20206.                                            for (r = 0; 3 > r; r++)(u = O[l++]), M.vertexColors.push(new n.Color(I[u]));
  20207.                                        s.faces.push(M);
  20208.                                    }
  20209.                            }
  20210.  
  20211.                            function r() {
  20212.                                var t = void 0 !== e.influencesPerVertex ? e.influencesPerVertex : 2;
  20213.                                if (e.skinWeights)
  20214.                                    for (var i = 0, r = e.skinWeights.length; r > i; i += t) {
  20215.                                        var o = e.skinWeights[i],
  20216.                                            a = t > 1 ? e.skinWeights[i + 1] : 0,
  20217.                                            l = t > 2 ? e.skinWeights[i + 2] : 0,
  20218.                                            c = t > 3 ? e.skinWeights[i + 3] : 0;
  20219.                                        s.skinWeights.push(new n.Vector4(o, a, l, c));
  20220.                                    }
  20221.                                if (e.skinIndices)
  20222.                                    for (var i = 0, r = e.skinIndices.length; r > i; i += t) {
  20223.                                        var u = e.skinIndices[i],
  20224.                                            h = t > 1 ? e.skinIndices[i + 1] : 0,
  20225.                                            d = t > 2 ? e.skinIndices[i + 2] : 0,
  20226.                                            f = t > 3 ? e.skinIndices[i + 3] : 0;
  20227.                                        s.skinIndices.push(new n.Vector4(u, h, d, f));
  20228.                                    }
  20229.                                    (s.bones = e.bones),
  20230.                                    s.bones &&
  20231.                                    s.bones.length > 0 &&
  20232.                                    (s.skinWeights.length !== s.skinIndices.length || s.skinIndices.length !== s.vertices.length) &&
  20233.                                    console.warn("When skinning, number of vertices (" + s.vertices.length + "), skinIndices (" + s.skinIndices.length + "), and skinWeights (" + s.skinWeights.length + ") should match.");
  20234.                            }
  20235.  
  20236.                            function o(t) {
  20237.                                if (void 0 !== e.morphTargets)
  20238.                                    for (var i = 0, r = e.morphTargets.length; r > i; i++) {
  20239.                                        (s.morphTargets[i] = {}), (s.morphTargets[i].name = e.morphTargets[i].name), (s.morphTargets[i].vertices = []);
  20240.                                        for (var o = s.morphTargets[i].vertices, a = e.morphTargets[i].vertices, l = 0, c = a.length; c > l; l += 3) {
  20241.                                            var u = new n.Vector3();
  20242.                                            (u.x = a[l] * t), (u.y = a[l + 1] * t), (u.z = a[l + 2] * t), o.push(u);
  20243.                                        }
  20244.                                    }
  20245.                                if (void 0 !== e.morphColors && e.morphColors.length > 0) {
  20246.                                    console.warn('THREE.JSONLoader: "morphColors" no longer supported. Using them as face colors.');
  20247.                                    for (var h = s.faces, d = e.morphColors[0].colors, i = 0, r = h.length; r > i; i++) h[i].color.fromArray(d, 3 * i);
  20248.                                }
  20249.                            }
  20250.  
  20251.                            function a() {
  20252.                                var t = [],
  20253.                                    i = [];
  20254.                                void 0 !== e.animation && i.push(e.animation), void 0 !== e.animations && (e.animations.length ? (i = i.concat(e.animations)) : i.push(e.animations));
  20255.                                for (var r = 0; r < i.length; r++) {
  20256.                                    var o = n.AnimationClip.parseAnimation(i[r], s.bones);
  20257.                                    o && t.push(o);
  20258.                                }
  20259.                                if (s.morphTargets) {
  20260.                                    var a = n.AnimationClip.CreateClipsFromMorphTargetSequences(s.morphTargets, 10);
  20261.                                    t = t.concat(a);
  20262.                                }
  20263.                                t.length > 0 && (s.animations = t);
  20264.                            }
  20265.                            var s = new n.Geometry(),
  20266.                                l = void 0 !== e.scale ? 1 / e.scale : 1;
  20267.                            if ((i(l), r(), o(l), a(), s.computeFaceNormals(), s.computeBoundingSphere(), void 0 === e.materials || 0 === e.materials.length)) return {
  20268.                                geometry: s
  20269.                            };
  20270.                            var c = n.Loader.prototype.initMaterials(e.materials, t, this.crossOrigin);
  20271.                            return {
  20272.                                geometry: s,
  20273.                                materials: c
  20274.                            };
  20275.                        },
  20276.                    }),
  20277.                    (n.LoadingManager = function (e, t, i) {
  20278.                        var n = this,
  20279.                            r = !1,
  20280.                            o = 0,
  20281.                            a = 0;
  20282.                        (this.onStart = void 0),
  20283.                        (this.onLoad = e),
  20284.                        (this.onProgress = t),
  20285.                        (this.onError = i),
  20286.                        (this.itemStart = function (e) {
  20287.                            a++, r === !1 && void 0 !== n.onStart && n.onStart(e, o, a), (r = !0);
  20288.                        }),
  20289.                        (this.itemEnd = function (e) {
  20290.                            o++, void 0 !== n.onProgress && n.onProgress(e, o, a), o === a && ((r = !1), void 0 !== n.onLoad && n.onLoad());
  20291.                        }),
  20292.                        (this.itemError = function (e) {
  20293.                            void 0 !== n.onError && n.onError(e);
  20294.                        });
  20295.                    }),
  20296.                    (n.DefaultLoadingManager = new n.LoadingManager()),
  20297.                    (n.BufferGeometryLoader = function (e) {
  20298.                        this.manager = void 0 !== e ? e : n.DefaultLoadingManager;
  20299.                    }),
  20300.                    Object.assign(n.BufferGeometryLoader.prototype, {
  20301.                        load: function (e, t, i, r) {
  20302.                            var o = this,
  20303.                                a = new n.XHRLoader(o.manager);
  20304.                            a.load(
  20305.                                e,
  20306.                                function (e) {
  20307.                                    t(o.parse(JSON.parse(e)));
  20308.                                },
  20309.                                i,
  20310.                                r
  20311.                            );
  20312.                        },
  20313.                        parse: function (e) {
  20314.                            var t = new n.BufferGeometry(),
  20315.                                i = e.data.index,
  20316.                                r = {
  20317.                                    Int8Array: Int8Array,
  20318.                                    Uint8Array: Uint8Array,
  20319.                                    Uint8ClampedArray: Uint8ClampedArray,
  20320.                                    Int16Array: Int16Array,
  20321.                                    Uint16Array: Uint16Array,
  20322.                                    Int32Array: Int32Array,
  20323.                                    Uint32Array: Uint32Array,
  20324.                                    Float32Array: Float32Array,
  20325.                                    Float64Array: Float64Array,
  20326.                                };
  20327.                            if (void 0 !== i) {
  20328.                                var o = new r[i.type](i.array);
  20329.                                t.setIndex(new n.BufferAttribute(o, 1));
  20330.                            }
  20331.                            var a = e.data.attributes;
  20332.                            for (var s in a) {
  20333.                                var l = a[s],
  20334.                                    o = new r[l.type](l.array);
  20335.                                t.addAttribute(s, new n.BufferAttribute(o, l.itemSize, l.normalized));
  20336.                            }
  20337.                            var c = e.data.groups || e.data.drawcalls || e.data.offsets;
  20338.                            if (void 0 !== c)
  20339.                                for (var u = 0, h = c.length; u !== h; ++u) {
  20340.                                    var d = c[u];
  20341.                                    t.addGroup(d.start, d.count, d.materialIndex);
  20342.                                }
  20343.                            var f = e.data.boundingSphere;
  20344.                            if (void 0 !== f) {
  20345.                                var p = new n.Vector3();
  20346.                                void 0 !== f.center && p.fromArray(f.center), (t.boundingSphere = new n.Sphere(p, f.radius));
  20347.                            }
  20348.                            return t;
  20349.                        },
  20350.                    }),
  20351.                    (n.MaterialLoader = function (e) {
  20352.                        (this.manager = void 0 !== e ? e : n.DefaultLoadingManager), (this.textures = {});
  20353.                    }),
  20354.                    Object.assign(n.MaterialLoader.prototype, {
  20355.                        load: function (e, t, i, r) {
  20356.                            var o = this,
  20357.                                a = new n.XHRLoader(o.manager);
  20358.                            a.load(
  20359.                                e,
  20360.                                function (e) {
  20361.                                    t(o.parse(JSON.parse(e)));
  20362.                                },
  20363.                                i,
  20364.                                r
  20365.                            );
  20366.                        },
  20367.                        setTextures: function (e) {
  20368.                            this.textures = e;
  20369.                        },
  20370.                        getTexture: function (e) {
  20371.                            var t = this.textures;
  20372.                            return void 0 === t[e] && console.warn("THREE.MaterialLoader: Undefined texture", e), t[e];
  20373.                        },
  20374.                        parse: function (e) {
  20375.                            var t = new n[e.type]();
  20376.                            if (
  20377.                                (void 0 !== e.uuid && (t.uuid = e.uuid),
  20378.                                    void 0 !== e.name && (t.name = e.name),
  20379.                                    void 0 !== e.color && t.color.setHex(e.color),
  20380.                                    void 0 !== e.roughness && (t.roughness = e.roughness),
  20381.                                    void 0 !== e.metalness && (t.metalness = e.metalness),
  20382.                                    void 0 !== e.emissive && t.emissive.setHex(e.emissive),
  20383.                                    void 0 !== e.specular && t.specular.setHex(e.specular),
  20384.                                    void 0 !== e.shininess && (t.shininess = e.shininess),
  20385.                                    void 0 !== e.uniforms && (t.uniforms = e.uniforms),
  20386.                                    void 0 !== e.vertexShader && (t.vertexShader = e.vertexShader),
  20387.                                    void 0 !== e.fragmentShader && (t.fragmentShader = e.fragmentShader),
  20388.                                    void 0 !== e.vertexColors && (t.vertexColors = e.vertexColors),
  20389.                                    void 0 !== e.shading && (t.shading = e.shading),
  20390.                                    void 0 !== e.blending && (t.blending = e.blending),
  20391.                                    void 0 !== e.side && (t.side = e.side),
  20392.                                    void 0 !== e.opacity && (t.opacity = e.opacity),
  20393.                                    void 0 !== e.transparent && (t.transparent = e.transparent),
  20394.                                    void 0 !== e.alphaTest && (t.alphaTest = e.alphaTest),
  20395.                                    void 0 !== e.depthTest && (t.depthTest = e.depthTest),
  20396.                                    void 0 !== e.depthWrite && (t.depthWrite = e.depthWrite),
  20397.                                    void 0 !== e.colorWrite && (t.colorWrite = e.colorWrite),
  20398.                                    void 0 !== e.wireframe && (t.wireframe = e.wireframe),
  20399.                                    void 0 !== e.wireframeLinewidth && (t.wireframeLinewidth = e.wireframeLinewidth),
  20400.                                    void 0 !== e.size && (t.size = e.size),
  20401.                                    void 0 !== e.sizeAttenuation && (t.sizeAttenuation = e.sizeAttenuation),
  20402.                                    void 0 !== e.map && (t.map = this.getTexture(e.map)),
  20403.                                    void 0 !== e.alphaMap && ((t.alphaMap = this.getTexture(e.alphaMap)), (t.transparent = !0)),
  20404.                                    void 0 !== e.bumpMap && (t.bumpMap = this.getTexture(e.bumpMap)),
  20405.                                    void 0 !== e.bumpScale && (t.bumpScale = e.bumpScale),
  20406.                                    void 0 !== e.normalMap && (t.normalMap = this.getTexture(e.normalMap)),
  20407.                                    void 0 !== e.normalScale)
  20408.                            ) {
  20409.                                var i = e.normalScale;
  20410.                                Array.isArray(i) === !1 && (i = [i, i]), (t.normalScale = new n.Vector2().fromArray(i));
  20411.                            }
  20412.                            if (
  20413.                                (void 0 !== e.displacementMap && (t.displacementMap = this.getTexture(e.displacementMap)),
  20414.                                    void 0 !== e.displacementScale && (t.displacementScale = e.displacementScale),
  20415.                                    void 0 !== e.displacementBias && (t.displacementBias = e.displacementBias),
  20416.                                    void 0 !== e.roughnessMap && (t.roughnessMap = this.getTexture(e.roughnessMap)),
  20417.                                    void 0 !== e.metalnessMap && (t.metalnessMap = this.getTexture(e.metalnessMap)),
  20418.                                    void 0 !== e.emissiveMap && (t.emissiveMap = this.getTexture(e.emissiveMap)),
  20419.                                    void 0 !== e.emissiveIntensity && (t.emissiveIntensity = e.emissiveIntensity),
  20420.                                    void 0 !== e.specularMap && (t.specularMap = this.getTexture(e.specularMap)),
  20421.                                    void 0 !== e.envMap && ((t.envMap = this.getTexture(e.envMap)), (t.combine = n.MultiplyOperation)),
  20422.                                    void 0 !== e.reflectivity && (t.reflectivity = e.reflectivity),
  20423.                                    void 0 !== e.lightMap && (t.lightMap = this.getTexture(e.lightMap)),
  20424.                                    void 0 !== e.lightMapIntensity && (t.lightMapIntensity = e.lightMapIntensity),
  20425.                                    void 0 !== e.aoMap && (t.aoMap = this.getTexture(e.aoMap)),
  20426.                                    void 0 !== e.aoMapIntensity && (t.aoMapIntensity = e.aoMapIntensity),
  20427.                                    void 0 !== e.materials)
  20428.                            )
  20429.                                for (var r = 0, o = e.materials.length; o > r; r++) t.materials.push(this.parse(e.materials[r]));
  20430.                            return t;
  20431.                        },
  20432.                    }),
  20433.                    (n.ObjectLoader = function (e) {
  20434.                        (this.manager = void 0 !== e ? e : n.DefaultLoadingManager), (this.texturePath = "");
  20435.                    }),
  20436.                    Object.assign(n.ObjectLoader.prototype, {
  20437.                        load: function (e, t, i, r) {
  20438.                            "" === this.texturePath && (this.texturePath = e.substring(0, e.lastIndexOf("/") + 1));
  20439.                            var o = this,
  20440.                                a = new n.XHRLoader(o.manager);
  20441.                            a.load(
  20442.                                e,
  20443.                                function (e) {
  20444.                                    o.parse(JSON.parse(e), t);
  20445.                                },
  20446.                                i,
  20447.                                r
  20448.                            );
  20449.                        },
  20450.                        setTexturePath: function (e) {
  20451.                            this.texturePath = e;
  20452.                        },
  20453.                        setCrossOrigin: function (e) {
  20454.                            this.crossOrigin = e;
  20455.                        },
  20456.                        parse: function (e, t) {
  20457.                            var i = this.parseGeometries(e.geometries),
  20458.                                n = this.parseImages(e.images, function () {
  20459.                                    void 0 !== t && t(a);
  20460.                                }),
  20461.                                r = this.parseTextures(e.textures, n),
  20462.                                o = this.parseMaterials(e.materials, r),
  20463.                                a = this.parseObject(e.object, i, o);
  20464.                            return e.animations && (a.animations = this.parseAnimations(e.animations)), (void 0 === e.images || 0 === e.images.length) && void 0 !== t && t(a), a;
  20465.                        },
  20466.                        parseGeometries: function (e) {
  20467.                            var t = {};
  20468.                            if (void 0 !== e)
  20469.                                for (var i = new n.JSONLoader(), r = new n.BufferGeometryLoader(), o = 0, a = e.length; a > o; o++) {
  20470.                                    var s,
  20471.                                        l = e[o];
  20472.                                    switch (l.type) {
  20473.                                    case "PlaneGeometry":
  20474.                                    case "PlaneBufferGeometry":
  20475.                                        s = new n[l.type](l.width, l.height, l.widthSegments, l.heightSegments);
  20476.                                        break;
  20477.                                    case "BoxGeometry":
  20478.                                    case "BoxBufferGeometry":
  20479.                                    case "CubeGeometry":
  20480.                                        s = new n[l.type](l.width, l.height, l.depth, l.widthSegments, l.heightSegments, l.depthSegments);
  20481.                                        break;
  20482.                                    case "CircleGeometry":
  20483.                                    case "CircleBufferGeometry":
  20484.                                        s = new n[l.type](l.radius, l.segments, l.thetaStart, l.thetaLength);
  20485.                                        break;
  20486.                                    case "CylinderGeometry":
  20487.                                    case "CylinderBufferGeometry":
  20488.                                        s = new n[l.type](l.radiusTop, l.radiusBottom, l.height, l.radialSegments, l.heightSegments, l.openEnded, l.thetaStart, l.thetaLength);
  20489.                                        break;
  20490.                                    case "ConeGeometry":
  20491.                                    case "ConeBufferGeometry":
  20492.                                        s = new n[l.type](l.radius, l.height, l.radialSegments, l.heightSegments, l.openEnded, l.thetaStart, l.thetaLength);
  20493.                                        break;
  20494.                                    case "SphereGeometry":
  20495.                                    case "SphereBufferGeometry":
  20496.                                        s = new n[l.type](l.radius, l.widthSegments, l.heightSegments, l.phiStart, l.phiLength, l.thetaStart, l.thetaLength);
  20497.                                        break;
  20498.                                    case "DodecahedronGeometry":
  20499.                                    case "IcosahedronGeometry":
  20500.                                    case "OctahedronGeometry":
  20501.                                    case "TetrahedronGeometry":
  20502.                                        s = new n[l.type](l.radius, l.detail);
  20503.                                        break;
  20504.                                    case "RingGeometry":
  20505.                                    case "RingBufferGeometry":
  20506.                                        s = new n[l.type](l.innerRadius, l.outerRadius, l.thetaSegments, l.phiSegments, l.thetaStart, l.thetaLength);
  20507.                                        break;
  20508.                                    case "TorusGeometry":
  20509.                                    case "TorusBufferGeometry":
  20510.                                        s = new n[l.type](l.radius, l.tube, l.radialSegments, l.tubularSegments, l.arc);
  20511.                                        break;
  20512.                                    case "TorusKnotGeometry":
  20513.                                    case "TorusKnotBufferGeometry":
  20514.                                        s = new n[l.type](l.radius, l.tube, l.tubularSegments, l.radialSegments, l.p, l.q);
  20515.                                        break;
  20516.                                    case "LatheGeometry":
  20517.                                    case "LatheBufferGeometry":
  20518.                                        s = new n[l.type](l.points, l.segments, l.phiStart, l.phiLength);
  20519.                                        break;
  20520.                                    case "BufferGeometry":
  20521.                                        s = r.parse(l);
  20522.                                        break;
  20523.                                    case "Geometry":
  20524.                                        s = i.parse(l.data, this.texturePath).geometry;
  20525.                                        break;
  20526.                                    default:
  20527.                                        console.warn('THREE.ObjectLoader: Unsupported geometry type "' + l.type + '"');
  20528.                                        continue;
  20529.                                    }
  20530.                                    (s.uuid = l.uuid), void 0 !== l.name && (s.name = l.name), (t[l.uuid] = s);
  20531.                                }
  20532.                            return t;
  20533.                        },
  20534.                        parseMaterials: function (e, t) {
  20535.                            var i = {};
  20536.                            if (void 0 !== e) {
  20537.                                var r = new n.MaterialLoader();
  20538.                                r.setTextures(t);
  20539.                                for (var o = 0, a = e.length; a > o; o++) {
  20540.                                    var s = r.parse(e[o]);
  20541.                                    i[s.uuid] = s;
  20542.                                }
  20543.                            }
  20544.                            return i;
  20545.                        },
  20546.                        parseAnimations: function (e) {
  20547.                            for (var t = [], i = 0; i < e.length; i++) {
  20548.                                var r = n.AnimationClip.parse(e[i]);
  20549.                                t.push(r);
  20550.                            }
  20551.                            return t;
  20552.                        },
  20553.                        parseImages: function (e, t) {
  20554.                            function i(e) {
  20555.                                return (
  20556.                                    r.manager.itemStart(e),
  20557.                                    s.load(e, function () {
  20558.                                        r.manager.itemEnd(e);
  20559.                                    })
  20560.                                );
  20561.                            }
  20562.                            var r = this,
  20563.                                o = {};
  20564.                            if (void 0 !== e && e.length > 0) {
  20565.                                var a = new n.LoadingManager(t),
  20566.                                    s = new n.ImageLoader(a);
  20567.                                s.setCrossOrigin(this.crossOrigin);
  20568.                                for (var l = 0, c = e.length; c > l; l++) {
  20569.                                    var u = e[l],
  20570.                                        h = /^(//)|([a-z]+:(//)?)/i.test(u.url) ? u.url : r.texturePath + u.url;
  20571.                                    o[u.uuid] = i(h);
  20572.                                }
  20573.                            }
  20574.                            return o;
  20575.                        },
  20576.                        parseTextures: function (e, t) {
  20577.                            function i(e) {
  20578.                                return "number" == typeof e ? e : (console.warn("THREE.ObjectLoader.parseTexture: Constant should be in numeric form.", e), n[e]);
  20579.                            }
  20580.                            var r = {};
  20581.                            if (void 0 !== e)
  20582.                                for (var o = 0, a = e.length; a > o; o++) {
  20583.                                    var s = e[o];
  20584.                                    void 0 === s.image && console.warn('THREE.ObjectLoader: No "image" specified for', s.uuid), void 0 === t[s.image] && console.warn("THREE.ObjectLoader: Undefined image", s.image);
  20585.                                    var l = new n.Texture(t[s.image]);
  20586.                                    (l.needsUpdate = !0),
  20587.                                    (l.uuid = s.uuid),
  20588.                                    void 0 !== s.name && (l.name = s.name),
  20589.                                        void 0 !== s.mapping && (l.mapping = i(s.mapping)),
  20590.                                        void 0 !== s.offset && l.offset.fromArray(s.offset),
  20591.                                        void 0 !== s.repeat && l.repeat.fromArray(s.repeat),
  20592.                                        void 0 !== s.wrap && ((l.wrapS = i(s.wrap[0])), (l.wrapT = i(s.wrap[1]))),
  20593.                                        void 0 !== s.minFilter && (l.minFilter = i(s.minFilter)),
  20594.                                        void 0 !== s.magFilter && (l.magFilter = i(s.magFilter)),
  20595.                                        void 0 !== s.anisotropy && (l.anisotropy = s.anisotropy),
  20596.                                        void 0 !== s.flipY && (l.flipY = s.flipY),
  20597.                                        (r[s.uuid] = l);
  20598.                                }
  20599.                            return r;
  20600.                        },
  20601.                        parseObject: (function () {
  20602.                            var e = new n.Matrix4();
  20603.                            return function (t, i, r) {
  20604.                                function o(e) {
  20605.                                    return void 0 === i[e] && console.warn("THREE.ObjectLoader: Undefined geometry", e), i[e];
  20606.                                }
  20607.  
  20608.                                function a(e) {
  20609.                                    return void 0 === e ? void 0 : (void 0 === r[e] && console.warn("THREE.ObjectLoader: Undefined material", e), r[e]);
  20610.                                }
  20611.                                var s;
  20612.                                switch (t.type) {
  20613.                                case "Scene":
  20614.                                    s = new n.Scene();
  20615.                                    break;
  20616.                                case "PerspectiveCamera":
  20617.                                    (s = new n.PerspectiveCamera(t.fov, t.aspect, t.near, t.far)),
  20618.                                    void 0 !== t.focus && (s.focus = t.focus),
  20619.                                        void 0 !== t.zoom && (s.zoom = t.zoom),
  20620.                                        void 0 !== t.filmGauge && (s.filmGauge = t.filmGauge),
  20621.                                        void 0 !== t.filmOffset && (s.filmOffset = t.filmOffset),
  20622.                                        void 0 !== t.view && (s.view = Object.assign({}, t.view));
  20623.                                    break;
  20624.                                case "OrthographicCamera":
  20625.                                    s = new n.OrthographicCamera(t.left, t.right, t.top, t.bottom, t.near, t.far);
  20626.                                    break;
  20627.                                case "AmbientLight":
  20628.                                    s = new n.AmbientLight(t.color, t.intensity);
  20629.                                    break;
  20630.                                case "DirectionalLight":
  20631.                                    s = new n.DirectionalLight(t.color, t.intensity);
  20632.                                    break;
  20633.                                case "PointLight":
  20634.                                    s = new n.PointLight(t.color, t.intensity, t.distance, t.decay);
  20635.                                    break;
  20636.                                case "SpotLight":
  20637.                                    s = new n.SpotLight(t.color, t.intensity, t.distance, t.angle, t.penumbra, t.decay);
  20638.                                    break;
  20639.                                case "HemisphereLight":
  20640.                                    s = new n.HemisphereLight(t.color, t.groundColor, t.intensity);
  20641.                                    break;
  20642.                                case "Mesh":
  20643.                                    var l = o(t.geometry),
  20644.                                        c = a(t.material);
  20645.                                    s = l.bones && l.bones.length > 0 ? new n.SkinnedMesh(l, c) : new n.Mesh(l, c);
  20646.                                    break;
  20647.                                case "LOD":
  20648.                                    s = new n.LOD();
  20649.                                    break;
  20650.                                case "Line":
  20651.                                    s = new n.Line(o(t.geometry), a(t.material), t.mode);
  20652.                                    break;
  20653.                                case "PointCloud":
  20654.                                case "Points":
  20655.                                    s = new n.Points(o(t.geometry), a(t.material));
  20656.                                    break;
  20657.                                case "Sprite":
  20658.                                    s = new n.Sprite(a(t.material));
  20659.                                    break;
  20660.                                case "Group":
  20661.                                    s = new n.Group();
  20662.                                    break;
  20663.                                default:
  20664.                                    s = new n.Object3D();
  20665.                                }
  20666.                                if (
  20667.                                    ((s.uuid = t.uuid),
  20668.                                        void 0 !== t.name && (s.name = t.name),
  20669.                                        void 0 !== t.matrix ?
  20670.                                        (e.fromArray(t.matrix), e.decompose(s.position, s.quaternion, s.scale)) :
  20671.                                        (void 0 !== t.position && s.position.fromArray(t.position), void 0 !== t.rotation && s.rotation.fromArray(t.rotation), void 0 !== t.scale && s.scale.fromArray(t.scale)),
  20672.                                        void 0 !== t.castShadow && (s.castShadow = t.castShadow),
  20673.                                        void 0 !== t.receiveShadow && (s.receiveShadow = t.receiveShadow),
  20674.                                        void 0 !== t.visible && (s.visible = t.visible),
  20675.                                        void 0 !== t.userData && (s.userData = t.userData),
  20676.                                        void 0 !== t.children)
  20677.                                )
  20678.                                    for (var u in t.children) s.add(this.parseObject(t.children[u], i, r));
  20679.                                if ("LOD" === t.type)
  20680.                                    for (var h = t.levels, d = 0; d < h.length; d++) {
  20681.                                        var f = h[d],
  20682.                                            u = s.getObjectByProperty("uuid", f.object);
  20683.                                        void 0 !== u && s.addLevel(u, f.distance);
  20684.                                    }
  20685.                                return s;
  20686.                            };
  20687.                        })(),
  20688.                    }),
  20689.                    (n.TextureLoader = function (e) {
  20690.                        this.manager = void 0 !== e ? e : n.DefaultLoadingManager;
  20691.                    }),
  20692.                    Object.assign(n.TextureLoader.prototype, {
  20693.                        load: function (e, t, i, r) {
  20694.                            var o = new n.Texture(),
  20695.                                a = new n.ImageLoader(this.manager);
  20696.                            return (
  20697.                                a.setCrossOrigin(this.crossOrigin),
  20698.                                a.setPath(this.path),
  20699.                                a.load(
  20700.                                    e,
  20701.                                    function (i) {
  20702.                                        var r = e.search(/.(jpg|jpeg)$/) > 0 || 0 === e.search(/^data:image/jpeg/);
  20703.                                        (o.format = r ? n.RGBFormat : n.RGBAFormat), (o.image = i), (o.needsUpdate = !0), void 0 !== t && t(o);
  20704.                                    },
  20705.                                    i,
  20706.                                    r
  20707.                                ),
  20708.                                o
  20709.                            );
  20710.                        },
  20711.                        setCrossOrigin: function (e) {
  20712.                            return (this.crossOrigin = e), this;
  20713.                        },
  20714.                        setPath: function (e) {
  20715.                            return (this.path = e), this;
  20716.                        },
  20717.                    }),
  20718.                    (n.CubeTextureLoader = function (e) {
  20719.                        this.manager = void 0 !== e ? e : n.DefaultLoadingManager;
  20720.                    }),
  20721.                    Object.assign(n.CubeTextureLoader.prototype, {
  20722.                        load: function (e, t, i, r) {
  20723.                            function o(i) {
  20724.                                s.load(
  20725.                                    e[i],
  20726.                                    function (e) {
  20727.                                        (a.images[i] = e), l++, 6 === l && ((a.needsUpdate = !0), t && t(a));
  20728.                                    },
  20729.                                    void 0,
  20730.                                    r
  20731.                                );
  20732.                            }
  20733.                            var a = new n.CubeTexture(),
  20734.                                s = new n.ImageLoader(this.manager);
  20735.                            s.setCrossOrigin(this.crossOrigin), s.setPath(this.path);
  20736.                            for (var l = 0, c = 0; c < e.length; ++c) o(c);
  20737.                            return a;
  20738.                        },
  20739.                        setCrossOrigin: function (e) {
  20740.                            return (this.crossOrigin = e), this;
  20741.                        },
  20742.                        setPath: function (e) {
  20743.                            return (this.path = e), this;
  20744.                        },
  20745.                    }),
  20746.                    (n.DataTextureLoader = n.BinaryTextureLoader = function (e) {
  20747.                        (this.manager = void 0 !== e ? e : n.DefaultLoadingManager), (this._parser = null);
  20748.                    }),
  20749.                    Object.assign(n.BinaryTextureLoader.prototype, {
  20750.                        load: function (e, t, i, r) {
  20751.                            var o = this,
  20752.                                a = new n.DataTexture(),
  20753.                                s = new n.XHRLoader(this.manager);
  20754.                            return (
  20755.                                s.setResponseType("arraybuffer"),
  20756.                                s.load(
  20757.                                    e,
  20758.                                    function (e) {
  20759.                                        var i = o._parser(e);
  20760.                                        i &&
  20761.                                            (void 0 !== i.image ? (a.image = i.image) : void 0 !== i.data && ((a.image.width = i.width), (a.image.height = i.height), (a.image.data = i.data)),
  20762.                                                (a.wrapS = void 0 !== i.wrapS ? i.wrapS : n.ClampToEdgeWrapping),
  20763.                                                (a.wrapT = void 0 !== i.wrapT ? i.wrapT : n.ClampToEdgeWrapping),
  20764.                                                (a.magFilter = void 0 !== i.magFilter ? i.magFilter : n.LinearFilter),
  20765.                                                (a.minFilter = void 0 !== i.minFilter ? i.minFilter : n.LinearMipMapLinearFilter),
  20766.                                                (a.anisotropy = void 0 !== i.anisotropy ? i.anisotropy : 1),
  20767.                                                void 0 !== i.format && (a.format = i.format),
  20768.                                                void 0 !== i.type && (a.type = i.type),
  20769.                                                void 0 !== i.mipmaps && (a.mipmaps = i.mipmaps),
  20770.                                                1 === i.mipmapCount && (a.minFilter = n.LinearFilter),
  20771.                                                (a.needsUpdate = !0),
  20772.                                                t && t(a, i));
  20773.                                    },
  20774.                                    i,
  20775.                                    r
  20776.                                ),
  20777.                                a
  20778.                            );
  20779.                        },
  20780.                    }),
  20781.                    (n.CompressedTextureLoader = function (e) {
  20782.                        (this.manager = void 0 !== e ? e : n.DefaultLoadingManager), (this._parser = null);
  20783.                    }),
  20784.                    Object.assign(n.CompressedTextureLoader.prototype, {
  20785.                        load: function (e, t, i, r) {
  20786.                            function o(o) {
  20787.                                c.load(
  20788.                                    e[o],
  20789.                                    function (e) {
  20790.                                        var i = a._parser(e, !0);
  20791.                                        (s[o] = {
  20792.                                            width: i.width,
  20793.                                            height: i.height,
  20794.                                            format: i.format,
  20795.                                            mipmaps: i.mipmaps
  20796.                                        }),
  20797.                                        (u += 1),
  20798.                                        6 === u && (1 === i.mipmapCount && (l.minFilter = n.LinearFilter), (l.format = i.format), (l.needsUpdate = !0), t && t(l));
  20799.                                    },
  20800.                                    i,
  20801.                                    r
  20802.                                );
  20803.                            }
  20804.                            var a = this,
  20805.                                s = [],
  20806.                                l = new n.CompressedTexture();
  20807.                            l.image = s;
  20808.                            var c = new n.XHRLoader(this.manager);
  20809.                            if ((c.setPath(this.path), c.setResponseType("arraybuffer"), Array.isArray(e)))
  20810.                                for (var u = 0, h = 0, d = e.length; d > h; ++h) o(h);
  20811.                            else
  20812.                                c.load(
  20813.                                    e,
  20814.                                    function (e) {
  20815.                                        var i = a._parser(e, !0);
  20816.                                        if (i.isCubemap)
  20817.                                            for (var r = i.mipmaps.length / i.mipmapCount, o = 0; r > o; o++) {
  20818.                                                s[o] = {
  20819.                                                    mipmaps: []
  20820.                                                };
  20821.                                                for (var c = 0; c < i.mipmapCount; c++) s[o].mipmaps.push(i.mipmaps[o * i.mipmapCount + c]), (s[o].format = i.format), (s[o].width = i.width), (s[o].height = i.height);
  20822.                                            }
  20823.                                        else(l.image.width = i.width), (l.image.height = i.height), (l.mipmaps = i.mipmaps);
  20824.                                        1 === i.mipmapCount && (l.minFilter = n.LinearFilter), (l.format = i.format), (l.needsUpdate = !0), t && t(l);
  20825.                                    },
  20826.                                    i,
  20827.                                    r
  20828.                                );
  20829.                            return l;
  20830.                        },
  20831.                        setPath: function (e) {
  20832.                            return (this.path = e), this;
  20833.                        },
  20834.                    }),
  20835.                    (n.Material = function () {
  20836.                        Object.defineProperty(this, "id", {
  20837.                                value: n.MaterialIdCount++
  20838.                            }),
  20839.                            (this.uuid = n.Math.generateUUID()),
  20840.                            (this.name = ""),
  20841.                            (this.type = "Material"),
  20842.                            (this.fog = !0),
  20843.                            (this.lights = !0),
  20844.                            (this.blending = n.NormalBlending),
  20845.                            (this.side = n.FrontSide),
  20846.                            (this.shading = n.SmoothShading),
  20847.                            (this.vertexColors = n.NoColors),
  20848.                            (this.opacity = 1),
  20849.                            (this.transparent = !1),
  20850.                            (this.blendSrc = n.SrcAlphaFactor),
  20851.                            (this.blendDst = n.OneMinusSrcAlphaFactor),
  20852.                            (this.blendEquation = n.AddEquation),
  20853.                            (this.blendSrcAlpha = null),
  20854.                            (this.blendDstAlpha = null),
  20855.                            (this.blendEquationAlpha = null),
  20856.                            (this.depthFunc = n.LessEqualDepth),
  20857.                            (this.depthTest = !0),
  20858.                            (this.depthWrite = !0),
  20859.                            (this.clippingPlanes = null),
  20860.                            (this.clipShadows = !1),
  20861.                            (this.colorWrite = !0),
  20862.                            (this.precision = null),
  20863.                            (this.polygonOffset = !1),
  20864.                            (this.polygonOffsetFactor = 0),
  20865.                            (this.polygonOffsetUnits = 0),
  20866.                            (this.alphaTest = 0),
  20867.                            (this.premultipliedAlpha = !1),
  20868.                            (this.overdraw = 0),
  20869.                            (this.visible = !0),
  20870.                            (this._needsUpdate = !0);
  20871.                    }),
  20872.                    (n.Material.prototype = {
  20873.                        constructor: n.Material,
  20874.                        get needsUpdate() {
  20875.                            return this._needsUpdate;
  20876.                        },
  20877.                        set needsUpdate(e) {
  20878.                            e === !0 && this.update(), (this._needsUpdate = e);
  20879.                        },
  20880.                        setValues: function (e) {
  20881.                            if (void 0 !== e)
  20882.                                for (var t in e) {
  20883.                                    var i = e[t];
  20884.                                    if (void 0 !== i) {
  20885.                                        var r = this[t];
  20886.                                        void 0 !== r ?
  20887.                                            r instanceof n.Color ?
  20888.                                            r.set(i) :
  20889.                                            r instanceof n.Vector3 && i instanceof n.Vector3 ?
  20890.                                            r.copy(i) :
  20891.                                            "overdraw" === t ?
  20892.                                            (this[t] = Number(i)) :
  20893.                                            (this[t] = i) :
  20894.                                            console.warn("THREE." + this.type + ": '" + t + "' is not a property of this material.");
  20895.                                    } else console.warn("THREE.Material: '" + t + "' parameter is undefined.");
  20896.                                }
  20897.                        },
  20898.                        toJSON: function (e) {
  20899.                            function t(e) {
  20900.                                var t = [];
  20901.                                for (var i in e) {
  20902.                                    var n = e[i];
  20903.                                    delete n.metadata, t.push(n);
  20904.                                }
  20905.                                return t;
  20906.                            }
  20907.                            var i = void 0 === e;
  20908.                            i && (e = {
  20909.                                textures: {},
  20910.                                images: {}
  20911.                            });
  20912.                            var r = {
  20913.                                metadata: {
  20914.                                    version: 4.4,
  20915.                                    type: "Material",
  20916.                                    generator: "Material.toJSON"
  20917.                                }
  20918.                            };
  20919.                            if (
  20920.                                ((r.uuid = this.uuid),
  20921.                                    (r.type = this.type),
  20922.                                    "" !== this.name && (r.name = this.name),
  20923.                                    this.color instanceof n.Color && (r.color = this.color.getHex()),
  20924.                                    void 0 !== this.roughness && (r.roughness = this.roughness),
  20925.                                    void 0 !== this.metalness && (r.metalness = this.metalness),
  20926.                                    this.emissive instanceof n.Color && (r.emissive = this.emissive.getHex()),
  20927.                                    this.specular instanceof n.Color && (r.specular = this.specular.getHex()),
  20928.                                    void 0 !== this.shininess && (r.shininess = this.shininess),
  20929.                                    this.map instanceof n.Texture && (r.map = this.map.toJSON(e).uuid),
  20930.                                    this.alphaMap instanceof n.Texture && (r.alphaMap = this.alphaMap.toJSON(e).uuid),
  20931.                                    this.lightMap instanceof n.Texture && (r.lightMap = this.lightMap.toJSON(e).uuid),
  20932.                                    this.bumpMap instanceof n.Texture && ((r.bumpMap = this.bumpMap.toJSON(e).uuid), (r.bumpScale = this.bumpScale)),
  20933.                                    this.normalMap instanceof n.Texture && ((r.normalMap = this.normalMap.toJSON(e).uuid), (r.normalScale = this.normalScale.toArray())),
  20934.                                    this.displacementMap instanceof n.Texture && ((r.displacementMap = this.displacementMap.toJSON(e).uuid), (r.displacementScale = this.displacementScale), (r.displacementBias = this.displacementBias)),
  20935.                                    this.roughnessMap instanceof n.Texture && (r.roughnessMap = this.roughnessMap.toJSON(e).uuid),
  20936.                                    this.metalnessMap instanceof n.Texture && (r.metalnessMap = this.metalnessMap.toJSON(e).uuid),
  20937.                                    this.emissiveMap instanceof n.Texture && (r.emissiveMap = this.emissiveMap.toJSON(e).uuid),
  20938.                                    this.specularMap instanceof n.Texture && (r.specularMap = this.specularMap.toJSON(e).uuid),
  20939.                                    this.envMap instanceof n.Texture && ((r.envMap = this.envMap.toJSON(e).uuid), (r.reflectivity = this.reflectivity)),
  20940.                                    void 0 !== this.size && (r.size = this.size),
  20941.                                    void 0 !== this.sizeAttenuation && (r.sizeAttenuation = this.sizeAttenuation),
  20942.                                    this.blending !== n.NormalBlending && (r.blending = this.blending),
  20943.                                    this.shading !== n.SmoothShading && (r.shading = this.shading),
  20944.                                    this.side !== n.FrontSide && (r.side = this.side),
  20945.                                    this.vertexColors !== n.NoColors && (r.vertexColors = this.vertexColors),
  20946.                                    this.opacity < 1 && (r.opacity = this.opacity),
  20947.                                    this.transparent === !0 && (r.transparent = this.transparent),
  20948.                                    this.alphaTest > 0 && (r.alphaTest = this.alphaTest),
  20949.                                    this.premultipliedAlpha === !0 && (r.premultipliedAlpha = this.premultipliedAlpha),
  20950.                                    this.wireframe === !0 && (r.wireframe = this.wireframe),
  20951.                                    this.wireframeLinewidth > 1 && (r.wireframeLinewidth = this.wireframeLinewidth),
  20952.                                    i)
  20953.                            ) {
  20954.                                var o = t(e.textures),
  20955.                                    a = t(e.images);
  20956.                                o.length > 0 && (r.textures = o), a.length > 0 && (r.images = a);
  20957.                            }
  20958.                            return r;
  20959.                        },
  20960.                        clone: function () {
  20961.                            return new this.constructor().copy(this);
  20962.                        },
  20963.                        copy: function (e) {
  20964.                            (this.name = e.name),
  20965.                            (this.fog = e.fog),
  20966.                            (this.lights = e.lights),
  20967.                            (this.blending = e.blending),
  20968.                            (this.side = e.side),
  20969.                            (this.shading = e.shading),
  20970.                            (this.vertexColors = e.vertexColors),
  20971.                            (this.opacity = e.opacity),
  20972.                            (this.transparent = e.transparent),
  20973.                            (this.blendSrc = e.blendSrc),
  20974.                            (this.blendDst = e.blendDst),
  20975.                            (this.blendEquation = e.blendEquation),
  20976.                            (this.blendSrcAlpha = e.blendSrcAlpha),
  20977.                            (this.blendDstAlpha = e.blendDstAlpha),
  20978.                            (this.blendEquationAlpha = e.blendEquationAlpha),
  20979.                            (this.depthFunc = e.depthFunc),
  20980.                            (this.depthTest = e.depthTest),
  20981.                            (this.depthWrite = e.depthWrite),
  20982.                            (this.colorWrite = e.colorWrite),
  20983.                            (this.precision = e.precision),
  20984.                            (this.polygonOffset = e.polygonOffset),
  20985.                            (this.polygonOffsetFactor = e.polygonOffsetFactor),
  20986.                            (this.polygonOffsetUnits = e.polygonOffsetUnits),
  20987.                            (this.alphaTest = e.alphaTest),
  20988.                            (this.premultipliedAlpha = e.premultipliedAlpha),
  20989.                            (this.overdraw = e.overdraw),
  20990.                            (this.visible = e.visible),
  20991.                            (this.clipShadows = e.clipShadows);
  20992.                            var t = e.clippingPlanes,
  20993.                                i = null;
  20994.                            if (null !== t) {
  20995.                                var n = t.length;
  20996.                                i = new Array(n);
  20997.                                for (var r = 0; r !== n; ++r) i[r] = t[r].clone();
  20998.                            }
  20999.                            return (this.clippingPlanes = i), this;
  21000.                        },
  21001.                        update: function () {
  21002.                            this.dispatchEvent({
  21003.                                type: "update"
  21004.                            });
  21005.                        },
  21006.                        dispose: function () {
  21007.                            this.dispatchEvent({
  21008.                                type: "dispose"
  21009.                            });
  21010.                        },
  21011.                    }),
  21012.                    Object.assign(n.Material.prototype, n.EventDispatcher.prototype),
  21013.                    (n.MaterialIdCount = 0),
  21014.                    (n.LineBasicMaterial = function (e) {
  21015.                        n.Material.call(this), (this.type = "LineBasicMaterial"), (this.color = new n.Color(16777215)), (this.linewidth = 1), (this.linecap = "round"), (this.linejoin = "round"), (this.lights = !1), this.setValues(e);
  21016.                    }),
  21017.                    (n.LineBasicMaterial.prototype = Object.create(n.Material.prototype)),
  21018.                    (n.LineBasicMaterial.prototype.constructor = n.LineBasicMaterial),
  21019.                    (n.LineBasicMaterial.prototype.copy = function (e) {
  21020.                        return n.Material.prototype.copy.call(this, e), this.color.copy(e.color), (this.linewidth = e.linewidth), (this.linecap = e.linecap), (this.linejoin = e.linejoin), this;
  21021.                    }),
  21022.                    (n.LineDashedMaterial = function (e) {
  21023.                        n.Material.call(this), (this.type = "LineDashedMaterial"), (this.color = new n.Color(16777215)), (this.linewidth = 1), (this.scale = 1), (this.dashSize = 3), (this.gapSize = 1), (this.lights = !1), this.setValues(e);
  21024.                    }),
  21025.                    (n.LineDashedMaterial.prototype = Object.create(n.Material.prototype)),
  21026.                    (n.LineDashedMaterial.prototype.constructor = n.LineDashedMaterial),
  21027.                    (n.LineDashedMaterial.prototype.copy = function (e) {
  21028.                        return n.Material.prototype.copy.call(this, e), this.color.copy(e.color), (this.linewidth = e.linewidth), (this.scale = e.scale), (this.dashSize = e.dashSize), (this.gapSize = e.gapSize), this;
  21029.                    }),
  21030.                    (n.MeshBasicMaterial = function (e) {
  21031.                        n.Material.call(this),
  21032.                            (this.type = "MeshBasicMaterial"),
  21033.                            (this.color = new n.Color(16777215)),
  21034.                            (this.map = null),
  21035.                            (this.aoMap = null),
  21036.                            (this.aoMapIntensity = 1),
  21037.                            (this.specularMap = null),
  21038.                            (this.alphaMap = null),
  21039.                            (this.envMap = null),
  21040.                            (this.combine = n.MultiplyOperation),
  21041.                            (this.reflectivity = 1),
  21042.                            (this.refractionRatio = 0.98),
  21043.                            (this.wireframe = !1),
  21044.                            (this.wireframeLinewidth = 1),
  21045.                            (this.wireframeLinecap = "round"),
  21046.                            (this.wireframeLinejoin = "round"),
  21047.                            (this.skinning = !1),
  21048.                            (this.morphTargets = !1),
  21049.                            (this.lights = !1),
  21050.                            this.setValues(e);
  21051.                    }),
  21052.                    (n.MeshBasicMaterial.prototype = Object.create(n.Material.prototype)),
  21053.                    (n.MeshBasicMaterial.prototype.constructor = n.MeshBasicMaterial),
  21054.                    (n.MeshBasicMaterial.prototype.copy = function (e) {
  21055.                        return (
  21056.                            n.Material.prototype.copy.call(this, e),
  21057.                            this.color.copy(e.color),
  21058.                            (this.map = e.map),
  21059.                            (this.aoMap = e.aoMap),
  21060.                            (this.aoMapIntensity = e.aoMapIntensity),
  21061.                            (this.specularMap = e.specularMap),
  21062.                            (this.alphaMap = e.alphaMap),
  21063.                            (this.envMap = e.envMap),
  21064.                            (this.combine = e.combine),
  21065.                            (this.reflectivity = e.reflectivity),
  21066.                            (this.refractionRatio = e.refractionRatio),
  21067.                            (this.wireframe = e.wireframe),
  21068.                            (this.wireframeLinewidth = e.wireframeLinewidth),
  21069.                            (this.wireframeLinecap = e.wireframeLinecap),
  21070.                            (this.wireframeLinejoin = e.wireframeLinejoin),
  21071.                            (this.skinning = e.skinning),
  21072.                            (this.morphTargets = e.morphTargets),
  21073.                            this
  21074.                        );
  21075.                    }),
  21076.                    (n.MeshDepthMaterial = function (e) {
  21077.                        n.Material.call(this),
  21078.                            (this.type = "MeshDepthMaterial"),
  21079.                            (this.depthPacking = n.BasicDepthPacking),
  21080.                            (this.skinning = !1),
  21081.                            (this.morphTargets = !1),
  21082.                            (this.map = null),
  21083.                            (this.alphaMap = null),
  21084.                            (this.displacementMap = null),
  21085.                            (this.displacementScale = 1),
  21086.                            (this.displacementBias = 0),
  21087.                            (this.wireframe = !1),
  21088.                            (this.wireframeLinewidth = 1),
  21089.                            (this.fog = !1),
  21090.                            (this.lights = !1),
  21091.                            this.setValues(e);
  21092.                    }),
  21093.                    (n.MeshDepthMaterial.prototype = Object.create(n.Material.prototype)),
  21094.                    (n.MeshDepthMaterial.prototype.constructor = n.MeshDepthMaterial),
  21095.                    (n.MeshDepthMaterial.prototype.copy = function (e) {
  21096.                        return (
  21097.                            n.Material.prototype.copy.call(this, e),
  21098.                            (this.depthPacking = e.depthPacking),
  21099.                            (this.skinning = e.skinning),
  21100.                            (this.morphTargets = e.morphTargets),
  21101.                            (this.map = e.map),
  21102.                            (this.alphaMap = e.alphaMap),
  21103.                            (this.displacementMap = e.displacementMap),
  21104.                            (this.displacementScale = e.displacementScale),
  21105.                            (this.displacementBias = e.displacementBias),
  21106.                            (this.wireframe = e.wireframe),
  21107.                            (this.wireframeLinewidth = e.wireframeLinewidth),
  21108.                            this
  21109.                        );
  21110.                    }),
  21111.                    (n.MeshLambertMaterial = function (e) {
  21112.                        n.Material.call(this),
  21113.                            (this.type = "MeshLambertMaterial"),
  21114.                            (this.color = new n.Color(16777215)),
  21115.                            (this.map = null),
  21116.                            (this.lightMap = null),
  21117.                            (this.lightMapIntensity = 1),
  21118.                            (this.aoMap = null),
  21119.                            (this.aoMapIntensity = 1),
  21120.                            (this.emissive = new n.Color(0)),
  21121.                            (this.emissiveIntensity = 1),
  21122.                            (this.emissiveMap = null),
  21123.                            (this.specularMap = null),
  21124.                            (this.alphaMap = null),
  21125.                            (this.envMap = null),
  21126.                            (this.combine = n.MultiplyOperation),
  21127.                            (this.reflectivity = 1),
  21128.                            (this.refractionRatio = 0.98),
  21129.                            (this.wireframe = !1),
  21130.                            (this.wireframeLinewidth = 1),
  21131.                            (this.wireframeLinecap = "round"),
  21132.                            (this.wireframeLinejoin = "round"),
  21133.                            (this.skinning = !1),
  21134.                            (this.morphTargets = !1),
  21135.                            (this.morphNormals = !1),
  21136.                            this.setValues(e);
  21137.                    }),
  21138.                    (n.MeshLambertMaterial.prototype = Object.create(n.Material.prototype)),
  21139.                    (n.MeshLambertMaterial.prototype.constructor = n.MeshLambertMaterial),
  21140.                    (n.MeshLambertMaterial.prototype.copy = function (e) {
  21141.                        return (
  21142.                            n.Material.prototype.copy.call(this, e),
  21143.                            this.color.copy(e.color),
  21144.                            (this.map = e.map),
  21145.                            (this.lightMap = e.lightMap),
  21146.                            (this.lightMapIntensity = e.lightMapIntensity),
  21147.                            (this.aoMap = e.aoMap),
  21148.                            (this.aoMapIntensity = e.aoMapIntensity),
  21149.                            this.emissive.copy(e.emissive),
  21150.                            (this.emissiveMap = e.emissiveMap),
  21151.                            (this.emissiveIntensity = e.emissiveIntensity),
  21152.                            (this.specularMap = e.specularMap),
  21153.                            (this.alphaMap = e.alphaMap),
  21154.                            (this.envMap = e.envMap),
  21155.                            (this.combine = e.combine),
  21156.                            (this.reflectivity = e.reflectivity),
  21157.                            (this.refractionRatio = e.refractionRatio),
  21158.                            (this.wireframe = e.wireframe),
  21159.                            (this.wireframeLinewidth = e.wireframeLinewidth),
  21160.                            (this.wireframeLinecap = e.wireframeLinecap),
  21161.                            (this.wireframeLinejoin = e.wireframeLinejoin),
  21162.                            (this.skinning = e.skinning),
  21163.                            (this.morphTargets = e.morphTargets),
  21164.                            (this.morphNormals = e.morphNormals),
  21165.                            this
  21166.                        );
  21167.                    }),
  21168.                    (n.MeshNormalMaterial = function (e) {
  21169.                        n.Material.call(this, e), (this.type = "MeshNormalMaterial"), (this.wireframe = !1), (this.wireframeLinewidth = 1), (this.fog = !1), (this.lights = !1), (this.morphTargets = !1), this.setValues(e);
  21170.                    }),
  21171.                    (n.MeshNormalMaterial.prototype = Object.create(n.Material.prototype)),
  21172.                    (n.MeshNormalMaterial.prototype.constructor = n.MeshNormalMaterial),
  21173.                    (n.MeshNormalMaterial.prototype.copy = function (e) {
  21174.                        return n.Material.prototype.copy.call(this, e), (this.wireframe = e.wireframe), (this.wireframeLinewidth = e.wireframeLinewidth), this;
  21175.                    }),
  21176.                    (n.MeshPhongMaterial = function (e) {
  21177.                        n.Material.call(this),
  21178.                            (this.type = "MeshPhongMaterial"),
  21179.                            (this.color = new n.Color(16777215)),
  21180.                            (this.specular = new n.Color(1118481)),
  21181.                            (this.shininess = 30),
  21182.                            (this.map = null),
  21183.                            (this.lightMap = null),
  21184.                            (this.lightMapIntensity = 1),
  21185.                            (this.aoMap = null),
  21186.                            (this.aoMapIntensity = 1),
  21187.                            (this.emissive = new n.Color(0)),
  21188.                            (this.emissiveIntensity = 1),
  21189.                            (this.emissiveMap = null),
  21190.                            (this.bumpMap = null),
  21191.                            (this.bumpScale = 1),
  21192.                            (this.normalMap = null),
  21193.                            (this.normalScale = new n.Vector2(1, 1)),
  21194.                            (this.displacementMap = null),
  21195.                            (this.displacementScale = 1),
  21196.                            (this.displacementBias = 0),
  21197.                            (this.specularMap = null),
  21198.                            (this.alphaMap = null),
  21199.                            (this.envMap = null),
  21200.                            (this.combine = n.MultiplyOperation),
  21201.                            (this.reflectivity = 1),
  21202.                            (this.refractionRatio = 0.98),
  21203.                            (this.wireframe = !1),
  21204.                            (this.wireframeLinewidth = 1),
  21205.                            (this.wireframeLinecap = "round"),
  21206.                            (this.wireframeLinejoin = "round"),
  21207.                            (this.skinning = !1),
  21208.                            (this.morphTargets = !1),
  21209.                            (this.morphNormals = !1),
  21210.                            this.setValues(e);
  21211.                    }),
  21212.                    (n.MeshPhongMaterial.prototype = Object.create(n.Material.prototype)),
  21213.                    (n.MeshPhongMaterial.prototype.constructor = n.MeshPhongMaterial),
  21214.                    (n.MeshPhongMaterial.prototype.copy = function (e) {
  21215.                        return (
  21216.                            n.Material.prototype.copy.call(this, e),
  21217.                            this.color.copy(e.color),
  21218.                            this.specular.copy(e.specular),
  21219.                            (this.shininess = e.shininess),
  21220.                            (this.map = e.map),
  21221.                            (this.lightMap = e.lightMap),
  21222.                            (this.lightMapIntensity = e.lightMapIntensity),
  21223.                            (this.aoMap = e.aoMap),
  21224.                            (this.aoMapIntensity = e.aoMapIntensity),
  21225.                            this.emissive.copy(e.emissive),
  21226.                            (this.emissiveMap = e.emissiveMap),
  21227.                            (this.emissiveIntensity = e.emissiveIntensity),
  21228.                            (this.bumpMap = e.bumpMap),
  21229.                            (this.bumpScale = e.bumpScale),
  21230.                            (this.normalMap = e.normalMap),
  21231.                            this.normalScale.copy(e.normalScale),
  21232.                            (this.displacementMap = e.displacementMap),
  21233.                            (this.displacementScale = e.displacementScale),
  21234.                            (this.displacementBias = e.displacementBias),
  21235.                            (this.specularMap = e.specularMap),
  21236.                            (this.alphaMap = e.alphaMap),
  21237.                            (this.envMap = e.envMap),
  21238.                            (this.combine = e.combine),
  21239.                            (this.reflectivity = e.reflectivity),
  21240.                            (this.refractionRatio = e.refractionRatio),
  21241.                            (this.wireframe = e.wireframe),
  21242.                            (this.wireframeLinewidth = e.wireframeLinewidth),
  21243.                            (this.wireframeLinecap = e.wireframeLinecap),
  21244.                            (this.wireframeLinejoin = e.wireframeLinejoin),
  21245.                            (this.skinning = e.skinning),
  21246.                            (this.morphTargets = e.morphTargets),
  21247.                            (this.morphNormals = e.morphNormals),
  21248.                            this
  21249.                        );
  21250.                    }),
  21251.                    (n.MeshStandardMaterial = function (e) {
  21252.                        n.Material.call(this),
  21253.                            (this.defines = {
  21254.                                STANDARD: ""
  21255.                            }),
  21256.                            (this.type = "MeshStandardMaterial"),
  21257.                            (this.color = new n.Color(16777215)),
  21258.                            (this.roughness = 0.5),
  21259.                            (this.metalness = 0.5),
  21260.                            (this.map = null),
  21261.                            (this.lightMap = null),
  21262.                            (this.lightMapIntensity = 1),
  21263.                            (this.aoMap = null),
  21264.                            (this.aoMapIntensity = 1),
  21265.                            (this.emissive = new n.Color(0)),
  21266.                            (this.emissiveIntensity = 1),
  21267.                            (this.emissiveMap = null),
  21268.                            (this.bumpMap = null),
  21269.                            (this.bumpScale = 1),
  21270.                            (this.normalMap = null),
  21271.                            (this.normalScale = new n.Vector2(1, 1)),
  21272.                            (this.displacementMap = null),
  21273.                            (this.displacementScale = 1),
  21274.                            (this.displacementBias = 0),
  21275.                            (this.roughnessMap = null),
  21276.                            (this.metalnessMap = null),
  21277.                            (this.alphaMap = null),
  21278.                            (this.envMap = null),
  21279.                            (this.envMapIntensity = 1),
  21280.                            (this.refractionRatio = 0.98),
  21281.                            (this.wireframe = !1),
  21282.                            (this.wireframeLinewidth = 1),
  21283.                            (this.wireframeLinecap = "round"),
  21284.                            (this.wireframeLinejoin = "round"),
  21285.                            (this.skinning = !1),
  21286.                            (this.morphTargets = !1),
  21287.                            (this.morphNormals = !1),
  21288.                            this.setValues(e);
  21289.                    }),
  21290.                    (n.MeshStandardMaterial.prototype = Object.create(n.Material.prototype)),
  21291.                    (n.MeshStandardMaterial.prototype.constructor = n.MeshStandardMaterial),
  21292.                    (n.MeshStandardMaterial.prototype.copy = function (e) {
  21293.                        return (
  21294.                            n.Material.prototype.copy.call(this, e),
  21295.                            (this.defines = {
  21296.                                STANDARD: ""
  21297.                            }),
  21298.                            this.color.copy(e.color),
  21299.                            (this.roughness = e.roughness),
  21300.                            (this.metalness = e.metalness),
  21301.                            (this.map = e.map),
  21302.                            (this.lightMap = e.lightMap),
  21303.                            (this.lightMapIntensity = e.lightMapIntensity),
  21304.                            (this.aoMap = e.aoMap),
  21305.                            (this.aoMapIntensity = e.aoMapIntensity),
  21306.                            this.emissive.copy(e.emissive),
  21307.                            (this.emissiveMap = e.emissiveMap),
  21308.                            (this.emissiveIntensity = e.emissiveIntensity),
  21309.                            (this.bumpMap = e.bumpMap),
  21310.                            (this.bumpScale = e.bumpScale),
  21311.                            (this.normalMap = e.normalMap),
  21312.                            this.normalScale.copy(e.normalScale),
  21313.                            (this.displacementMap = e.displacementMap),
  21314.                            (this.displacementScale = e.displacementScale),
  21315.                            (this.displacementBias = e.displacementBias),
  21316.                            (this.roughnessMap = e.roughnessMap),
  21317.                            (this.metalnessMap = e.metalnessMap),
  21318.                            (this.alphaMap = e.alphaMap),
  21319.                            (this.envMap = e.envMap),
  21320.                            (this.envMapIntensity = e.envMapIntensity),
  21321.                            (this.refractionRatio = e.refractionRatio),
  21322.                            (this.wireframe = e.wireframe),
  21323.                            (this.wireframeLinewidth = e.wireframeLinewidth),
  21324.                            (this.wireframeLinecap = e.wireframeLinecap),
  21325.                            (this.wireframeLinejoin = e.wireframeLinejoin),
  21326.                            (this.skinning = e.skinning),
  21327.                            (this.morphTargets = e.morphTargets),
  21328.                            (this.morphNormals = e.morphNormals),
  21329.                            this
  21330.                        );
  21331.                    }),
  21332.                    (n.MeshPhysicalMaterial = function (e) {
  21333.                        n.MeshStandardMaterial.call(this), (this.defines = {
  21334.                            PHYSICAL: ""
  21335.                        }), (this.type = "MeshPhysicalMaterial"), (this.reflectivity = 0.5), (this.clearCoat = 0), (this.clearCoatRoughness = 0), this.setValues(e);
  21336.                    }),
  21337.                    (n.MeshPhysicalMaterial.prototype = Object.create(n.MeshStandardMaterial.prototype)),
  21338.                    (n.MeshPhysicalMaterial.prototype.constructor = n.MeshPhysicalMaterial),
  21339.                    (n.MeshPhysicalMaterial.prototype.copy = function (e) {
  21340.                        return (
  21341.                            n.MeshStandardMaterial.prototype.copy.call(this, e), (this.defines = {
  21342.                                PHYSICAL: ""
  21343.                            }), (this.reflectivity = e.reflectivity), (this.clearCoat = e.clearCoat), (this.clearCoatRoughness = e.clearCoatRoughness), this
  21344.                        );
  21345.                    }),
  21346.                    (n.MultiMaterial = function (e) {
  21347.                        (this.uuid = n.Math.generateUUID()), (this.type = "MultiMaterial"), (this.materials = e instanceof Array ? e : []), (this.visible = !0);
  21348.                    }),
  21349.                    (n.MultiMaterial.prototype = {
  21350.                        constructor: n.MultiMaterial,
  21351.                        toJSON: function (e) {
  21352.                            for (var t = {
  21353.                                    metadata: {
  21354.                                        version: 4.2,
  21355.                                        type: "material",
  21356.                                        generator: "MaterialExporter"
  21357.                                    },
  21358.                                    uuid: this.uuid,
  21359.                                    type: this.type,
  21360.                                    materials: []
  21361.                                }, i = this.materials, n = 0, r = i.length; r > n; n++) {
  21362.                                var o = i[n].toJSON(e);
  21363.                                delete o.metadata, t.materials.push(o);
  21364.                            }
  21365.                            return (t.visible = this.visible), t;
  21366.                        },
  21367.                        clone: function () {
  21368.                            for (var e = new this.constructor(), t = 0; t < this.materials.length; t++) e.materials.push(this.materials[t].clone());
  21369.                            return (e.visible = this.visible), e;
  21370.                        },
  21371.                    }),
  21372.                    (n.PointsMaterial = function (e) {
  21373.                        n.Material.call(this), (this.type = "PointsMaterial"), (this.color = new n.Color(16777215)), (this.map = null), (this.size = 1), (this.sizeAttenuation = !0), (this.lights = !1), this.setValues(e);
  21374.                    }),
  21375.                    (n.PointsMaterial.prototype = Object.create(n.Material.prototype)),
  21376.                    (n.PointsMaterial.prototype.constructor = n.PointsMaterial),
  21377.                    (n.PointsMaterial.prototype.copy = function (e) {
  21378.                        return n.Material.prototype.copy.call(this, e), this.color.copy(e.color), (this.map = e.map), (this.size = e.size), (this.sizeAttenuation = e.sizeAttenuation), this;
  21379.                    }),
  21380.                    (n.ShaderMaterial = function (e) {
  21381.                        n.Material.call(this),
  21382.                            (this.type = "ShaderMaterial"),
  21383.                            (this.defines = {}),
  21384.                            (this.uniforms = {}),
  21385.                             (this.vertexShader = "void main() {n        gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );n}"),
  21386.                             (this.fragmentShader = "void main() {n      gl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );n}"),
  21387.                            (this.linewidth = 1),
  21388.                            (this.wireframe = !1),
  21389.                            (this.wireframeLinewidth = 1),
  21390.                            (this.fog = !1),
  21391.                            (this.lights = !1),
  21392.                            (this.clipping = !1),
  21393.                            (this.skinning = !1),
  21394.                            (this.morphTargets = !1),
  21395.                            (this.morphNormals = !1),
  21396.                            (this.extensions = {
  21397.                                derivatives: !1,
  21398.                                fragDepth: !1,
  21399.                                drawBuffers: !1,
  21400.                                shaderTextureLOD: !1
  21401.                            }),
  21402.                            (this.defaultAttributeValues = {
  21403.                                color: [1, 1, 1],
  21404.                                uv: [0, 0],
  21405.                                uv2: [0, 0]
  21406.                            }),
  21407.                            (this.index0AttributeName = void 0),
  21408.                            void 0 !== e && (void 0 !== e.attributes && console.error("THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead."), this.setValues(e));
  21409.                    }),
  21410.                    (n.ShaderMaterial.prototype = Object.create(n.Material.prototype)),
  21411.                    (n.ShaderMaterial.prototype.constructor = n.ShaderMaterial),
  21412.                    (n.ShaderMaterial.prototype.copy = function (e) {
  21413.                        return (
  21414.                            n.Material.prototype.copy.call(this, e),
  21415.                            (this.fragmentShader = e.fragmentShader),
  21416.                            (this.vertexShader = e.vertexShader),
  21417.                            (this.uniforms = n.UniformsUtils.clone(e.uniforms)),
  21418.                            (this.defines = e.defines),
  21419.                            (this.wireframe = e.wireframe),
  21420.                            (this.wireframeLinewidth = e.wireframeLinewidth),
  21421.                            (this.lights = e.lights),
  21422.                            (this.clipping = e.clipping),
  21423.                            (this.skinning = e.skinning),
  21424.                            (this.morphTargets = e.morphTargets),
  21425.                            (this.morphNormals = e.morphNormals),
  21426.                            (this.extensions = e.extensions),
  21427.                            this
  21428.                        );
  21429.                    }),
  21430.                    (n.ShaderMaterial.prototype.toJSON = function (e) {
  21431.                        var t = n.Material.prototype.toJSON.call(this, e);
  21432.                        return (t.uniforms = this.uniforms), (t.vertexShader = this.vertexShader), (t.fragmentShader = this.fragmentShader), t;
  21433.                    }),
  21434.                    (n.RawShaderMaterial = function (e) {
  21435.                        n.ShaderMaterial.call(this, e), (this.type = "RawShaderMaterial");
  21436.                    }),
  21437.                    (n.RawShaderMaterial.prototype = Object.create(n.ShaderMaterial.prototype)),
  21438.                    (n.RawShaderMaterial.prototype.constructor = n.RawShaderMaterial),
  21439.                    (n.SpriteMaterial = function (e) {
  21440.                        n.Material.call(this), (this.type = "SpriteMaterial"), (this.color = new n.Color(16777215)), (this.map = null), (this.rotation = 0), (this.fog = !1), (this.lights = !1), this.setValues(e);
  21441.                    }),
  21442.                    (n.SpriteMaterial.prototype = Object.create(n.Material.prototype)),
  21443.                    (n.SpriteMaterial.prototype.constructor = n.SpriteMaterial),
  21444.                    (n.SpriteMaterial.prototype.copy = function (e) {
  21445.                        return n.Material.prototype.copy.call(this, e), this.color.copy(e.color), (this.map = e.map), (this.rotation = e.rotation), this;
  21446.                    }),
  21447.                    (n.ShadowMaterial = function () {
  21448.                        n.ShaderMaterial.call(this, {
  21449.                                uniforms: n.UniformsUtils.merge([n.UniformsLib.lights, {
  21450.                                    opacity: {
  21451.                                        value: 1
  21452.                                    }
  21453.                                }]),
  21454.                                vertexShader: n.ShaderChunk.shadow_vert,
  21455.                                fragmentShader: n.ShaderChunk.shadow_frag
  21456.                            }),
  21457.                            (this.lights = !0),
  21458.                            (this.transparent = !0),
  21459.                            Object.defineProperties(this, {
  21460.                                opacity: {
  21461.                                    enumerable: !0,
  21462.                                    get: function () {
  21463.                                        return this.uniforms.opacity.value;
  21464.                                    },
  21465.                                    set: function (e) {
  21466.                                        this.uniforms.opacity.value = e;
  21467.                                    },
  21468.                                },
  21469.                            });
  21470.                    }),
  21471.                    (n.ShadowMaterial.prototype = Object.create(n.ShaderMaterial.prototype)),
  21472.                    (n.ShadowMaterial.prototype.constructor = n.ShadowMaterial),
  21473.                    (n.Texture = function (e, t, i, r, o, a, s, l, c, u) {
  21474.                        Object.defineProperty(this, "id", {
  21475.                                value: n.TextureIdCount++
  21476.                            }),
  21477.                            (this.uuid = n.Math.generateUUID()),
  21478.                            (this.name = ""),
  21479.                            (this.sourceFile = ""),
  21480.                            (this.image = void 0 !== e ? e : n.Texture.DEFAULT_IMAGE),
  21481.                            (this.mipmaps = []),
  21482.                            (this.mapping = void 0 !== t ? t : n.Texture.DEFAULT_MAPPING),
  21483.                            (this.wrapS = void 0 !== i ? i : n.ClampToEdgeWrapping),
  21484.                            (this.wrapT = void 0 !== r ? r : n.ClampToEdgeWrapping),
  21485.                            (this.magFilter = void 0 !== o ? o : n.LinearFilter),
  21486.                            (this.minFilter = void 0 !== a ? a : n.LinearMipMapLinearFilter),
  21487.                            (this.anisotropy = void 0 !== c ? c : 1),
  21488.                            (this.format = void 0 !== s ? s : n.RGBAFormat),
  21489.                            (this.type = void 0 !== l ? l : n.UnsignedByteType),
  21490.                            (this.offset = new n.Vector2(0, 0)),
  21491.                            (this.repeat = new n.Vector2(1, 1)),
  21492.                            (this.generateMipmaps = !0),
  21493.                            (this.premultiplyAlpha = !1),
  21494.                            (this.flipY = !0),
  21495.                            (this.unpackAlignment = 4),
  21496.                            (this.encoding = void 0 !== u ? u : n.LinearEncoding),
  21497.                            (this.version = 0),
  21498.                            (this.onUpdate = null);
  21499.                    }),
  21500.                    (n.Texture.DEFAULT_IMAGE = void 0),
  21501.                    (n.Texture.DEFAULT_MAPPING = n.UVMapping),
  21502.                    (n.Texture.prototype = {
  21503.                        constructor: n.Texture,
  21504.                        set needsUpdate(e) {
  21505.                            e === !0 && this.version++;
  21506.                        },
  21507.                        clone: function () {
  21508.                            return new this.constructor().copy(this);
  21509.                        },
  21510.                        copy: function (e) {
  21511.                            return (
  21512.                                (this.image = e.image),
  21513.                                (this.mipmaps = e.mipmaps.slice(0)),
  21514.                                (this.mapping = e.mapping),
  21515.                                (this.wrapS = e.wrapS),
  21516.                                (this.wrapT = e.wrapT),
  21517.                                (this.magFilter = e.magFilter),
  21518.                                (this.minFilter = e.minFilter),
  21519.                                (this.anisotropy = e.anisotropy),
  21520.                                (this.format = e.format),
  21521.                                (this.type = e.type),
  21522.                                this.offset.copy(e.offset),
  21523.                                this.repeat.copy(e.repeat),
  21524.                                (this.generateMipmaps = e.generateMipmaps),
  21525.                                (this.premultiplyAlpha = e.premultiplyAlpha),
  21526.                                (this.flipY = e.flipY),
  21527.                                (this.unpackAlignment = e.unpackAlignment),
  21528.                                (this.encoding = e.encoding),
  21529.                                this
  21530.                            );
  21531.                        },
  21532.                        toJSON: function (e) {
  21533.                            function t(e) {
  21534.                                var t;
  21535.                                return (
  21536.                                    void 0 !== e.toDataURL ?
  21537.                                    (t = e) :
  21538.                                    ((t = document.createElementNS("http://www.w3.org/1999/xhtml", "canvas")), (t.width = e.width), (t.height = e.height), t.getContext("2d").drawImage(e, 0, 0, e.width, e.height)),
  21539.                                    t.width > 2048 || t.height > 2048 ? t.toDataURL("image/jpeg", 0.6) : t.toDataURL("image/png")
  21540.                                );
  21541.                            }
  21542.                            if (void 0 !== e.textures[this.uuid]) return e.textures[this.uuid];
  21543.                            var i = {
  21544.                                metadata: {
  21545.                                    version: 4.4,
  21546.                                    type: "Texture",
  21547.                                    generator: "Texture.toJSON"
  21548.                                },
  21549.                                uuid: this.uuid,
  21550.                                name: this.name,
  21551.                                mapping: this.mapping,
  21552.                                repeat: [this.repeat.x, this.repeat.y],
  21553.                                offset: [this.offset.x, this.offset.y],
  21554.                                wrap: [this.wrapS, this.wrapT],
  21555.                                minFilter: this.minFilter,
  21556.                                magFilter: this.magFilter,
  21557.                                anisotropy: this.anisotropy,
  21558.                                flipY: this.flipY,
  21559.                            };
  21560.                            if (void 0 !== this.image) {
  21561.                                var r = this.image;
  21562.                                void 0 === r.uuid && (r.uuid = n.Math.generateUUID()), void 0 === e.images[r.uuid] && (e.images[r.uuid] = {
  21563.                                    uuid: r.uuid,
  21564.                                    url: t(r)
  21565.                                }), (i.image = r.uuid);
  21566.                            }
  21567.                            return (e.textures[this.uuid] = i), i;
  21568.                        },
  21569.                        dispose: function () {
  21570.                            this.dispatchEvent({
  21571.                                type: "dispose"
  21572.                            });
  21573.                        },
  21574.                        transformUv: function (e) {
  21575.                            if (this.mapping === n.UVMapping) {
  21576.                                if ((e.multiply(this.repeat), e.add(this.offset), e.x < 0 || e.x > 1))
  21577.                                    switch (this.wrapS) {
  21578.                                    case n.RepeatWrapping:
  21579.                                        e.x = e.x - Math.floor(e.x);
  21580.                                        break;
  21581.                                    case n.ClampToEdgeWrapping:
  21582.                                        e.x = e.x < 0 ? 0 : 1;
  21583.                                        break;
  21584.                                    case n.MirroredRepeatWrapping:
  21585.                                        1 === Math.abs(Math.floor(e.x) % 2) ? (e.x = Math.ceil(e.x) - e.x) : (e.x = e.x - Math.floor(e.x));
  21586.                                    }
  21587.                                if (e.y < 0 || e.y > 1)
  21588.                                    switch (this.wrapT) {
  21589.                                    case n.RepeatWrapping:
  21590.                                        e.y = e.y - Math.floor(e.y);
  21591.                                        break;
  21592.                                    case n.ClampToEdgeWrapping:
  21593.                                        e.y = e.y < 0 ? 0 : 1;
  21594.                                        break;
  21595.                                    case n.MirroredRepeatWrapping:
  21596.                                        1 === Math.abs(Math.floor(e.y) % 2) ? (e.y = Math.ceil(e.y) - e.y) : (e.y = e.y - Math.floor(e.y));
  21597.                                    }
  21598.                                this.flipY && (e.y = 1 - e.y);
  21599.                            }
  21600.                        },
  21601.                    }),
  21602.                    Object.assign(n.Texture.prototype, n.EventDispatcher.prototype),
  21603.                    (n.TextureIdCount = 0),
  21604.                    (n.DepthTexture = function (e, t, i, r, o, a, s, l, c) {
  21605.                        n.Texture.call(this, null, r, o, a, s, l, n.DepthFormat, i, c),
  21606.                            (this.image = {
  21607.                                width: e,
  21608.                                height: t
  21609.                            }),
  21610.                            (this.type = void 0 !== i ? i : n.UnsignedShortType),
  21611.                            (this.magFilter = void 0 !== s ? s : n.NearestFilter),
  21612.                            (this.minFilter = void 0 !== l ? l : n.NearestFilter),
  21613.                            (this.flipY = !1),
  21614.                            (this.generateMipmaps = !1);
  21615.                    }),
  21616.                    (n.DepthTexture.prototype = Object.create(n.Texture.prototype)),
  21617.                    (n.DepthTexture.prototype.constructor = n.DepthTexture),
  21618.                    (n.CanvasTexture = function (e, t, i, r, o, a, s, l, c) {
  21619.                        n.Texture.call(this, e, t, i, r, o, a, s, l, c), (this.needsUpdate = !0);
  21620.                    }),
  21621.                    (n.CanvasTexture.prototype = Object.create(n.Texture.prototype)),
  21622.                    (n.CanvasTexture.prototype.constructor = n.CanvasTexture),
  21623.                    (n.CubeTexture = function (e, t, i, r, o, a, s, l, c, u) {
  21624.                        (e = void 0 !== e ? e : []), (t = void 0 !== t ? t : n.CubeReflectionMapping), n.Texture.call(this, e, t, i, r, o, a, s, l, c, u), (this.flipY = !1);
  21625.                    }),
  21626.                    (n.CubeTexture.prototype = Object.create(n.Texture.prototype)),
  21627.                    (n.CubeTexture.prototype.constructor = n.CubeTexture),
  21628.                    Object.defineProperty(n.CubeTexture.prototype, "images", {
  21629.                        get: function () {
  21630.                            return this.image;
  21631.                        },
  21632.                        set: function (e) {
  21633.                            this.image = e;
  21634.                        },
  21635.                    }),
  21636.                    (n.CompressedTexture = function (e, t, i, r, o, a, s, l, c, u, h, d) {
  21637.                        n.Texture.call(this, null, a, s, l, c, u, r, o, h, d), (this.image = {
  21638.                            width: t,
  21639.                            height: i
  21640.                        }), (this.mipmaps = e), (this.flipY = !1), (this.generateMipmaps = !1);
  21641.                    }),
  21642.                    (n.CompressedTexture.prototype = Object.create(n.Texture.prototype)),
  21643.                    (n.CompressedTexture.prototype.constructor = n.CompressedTexture),
  21644.                    (n.DataTexture = function (e, t, i, r, o, a, s, l, c, u, h, d) {
  21645.                        n.Texture.call(this, null, a, s, l, c, u, r, o, h, d),
  21646.                            (this.image = {
  21647.                                data: e,
  21648.                                width: t,
  21649.                                height: i
  21650.                            }),
  21651.                            (this.magFilter = void 0 !== c ? c : n.NearestFilter),
  21652.                            (this.minFilter = void 0 !== u ? u : n.NearestFilter),
  21653.                            (this.flipY = !1),
  21654.                            (this.generateMipmaps = !1);
  21655.                    }),
  21656.                    (n.DataTexture.prototype = Object.create(n.Texture.prototype)),
  21657.                    (n.DataTexture.prototype.constructor = n.DataTexture),
  21658.                    (n.VideoTexture = function (e, t, i, r, o, a, s, l, c) {
  21659.                        function u() {
  21660.                            requestAnimationFrame(u), e.readyState >= e.HAVE_CURRENT_DATA && (h.needsUpdate = !0);
  21661.                        }
  21662.                        n.Texture.call(this, e, t, i, r, o, a, s, l, c), (this.generateMipmaps = !1);
  21663.                        var h = this;
  21664.                        u();
  21665.                    }),
  21666.                    (n.VideoTexture.prototype = Object.create(n.Texture.prototype)),
  21667.                    (n.VideoTexture.prototype.constructor = n.VideoTexture),
  21668.                    (n.Group = function () {
  21669.                        n.Object3D.call(this), (this.type = "Group");
  21670.                    }),
  21671.                    (n.Group.prototype = Object.assign(Object.create(n.Object3D.prototype), {
  21672.                        constructor: n.Group
  21673.                    })),
  21674.                    (n.Points = function (e, t) {
  21675.                        n.Object3D.call(this), (this.type = "Points"), (this.geometry = void 0 !== e ? e : new n.BufferGeometry()), (this.material = void 0 !== t ? t : new n.PointsMaterial({
  21676.                            color: 16777215 * Math.random()
  21677.                        }));
  21678.                    }),
  21679.                    (n.Points.prototype = Object.assign(Object.create(n.Object3D.prototype), {
  21680.                        constructor: n.Points,
  21681.                        raycast: (function () {
  21682.                            var e = new n.Matrix4(),
  21683.                                t = new n.Ray(),
  21684.                                i = new n.Sphere();
  21685.                            return function (r, o) {
  21686.                                function a(e, i) {
  21687.                                    var n = t.distanceSqToPoint(e);
  21688.                                    if (d > n) {
  21689.                                        var a = t.closestPointToPoint(e);
  21690.                                        a.applyMatrix4(c);
  21691.                                        var l = r.ray.origin.distanceTo(a);
  21692.                                        if (l < r.near || l > r.far) return;
  21693.                                        o.push({
  21694.                                            distance: l,
  21695.                                            distanceToRay: Math.sqrt(n),
  21696.                                            point: a.clone(),
  21697.                                            index: i,
  21698.                                            face: null,
  21699.                                            object: s
  21700.                                        });
  21701.                                    }
  21702.                                }
  21703.                                var s = this,
  21704.                                    l = this.geometry,
  21705.                                    c = this.matrixWorld,
  21706.                                    u = r.params.Points.threshold;
  21707.                                if ((null === l.boundingSphere && l.computeBoundingSphere(), i.copy(l.boundingSphere), i.applyMatrix4(c), r.ray.intersectsSphere(i) !== !1)) {
  21708.                                    e.getInverse(c), t.copy(r.ray).applyMatrix4(e);
  21709.                                    var h = u / ((this.scale.x + this.scale.y + this.scale.z) / 3),
  21710.                                        d = h * h,
  21711.                                        f = new n.Vector3();
  21712.                                    if (l instanceof n.BufferGeometry) {
  21713.                                        var p = l.index,
  21714.                                            m = l.attributes,
  21715.                                            v = m.position.array;
  21716.                                        if (null !== p)
  21717.                                            for (var g = p.array, y = 0, _ = g.length; _ > y; y++) {
  21718.                                                var b = g[y];
  21719.                                                f.fromArray(v, 3 * b), a(f, b);
  21720.                                            }
  21721.                                        else
  21722.                                            for (var y = 0, x = v.length / 3; x > y; y++) f.fromArray(v, 3 * y), a(f, y);
  21723.                                    } else
  21724.                                        for (var w = l.vertices, y = 0, x = w.length; x > y; y++) a(w[y], y);
  21725.                                }
  21726.                            };
  21727.                        })(),
  21728.                        clone: function () {
  21729.                            return new this.constructor(this.geometry, this.material).copy(this);
  21730.                        },
  21731.                    })),
  21732.                    (n.Line = function (e, t, i) {
  21733.                        return 1 === i ?
  21734.                            (console.warn("THREE.Line: parameter THREE.LinePieces no longer supported. Created THREE.LineSegments instead."), new n.LineSegments(e, t)) :
  21735.                            (n.Object3D.call(this),
  21736.                                (this.type = "Line"),
  21737.                                (this.geometry = void 0 !== e ? e : new n.BufferGeometry()),
  21738.                                void(this.material = void 0 !== t ? t : new n.LineBasicMaterial({
  21739.                                    color: 16777215 * Math.random()
  21740.                                })));
  21741.                    }),
  21742.                    (n.Line.prototype = Object.assign(Object.create(n.Object3D.prototype), {
  21743.                        constructor: n.Line,
  21744.                        raycast: (function () {
  21745.                            var e = new n.Matrix4(),
  21746.                                t = new n.Ray(),
  21747.                                i = new n.Sphere();
  21748.                            return function (r, o) {
  21749.                                var a = r.linePrecision,
  21750.                                    s = a * a,
  21751.                                    l = this.geometry,
  21752.                                    c = this.matrixWorld;
  21753.                                if ((null === l.boundingSphere && l.computeBoundingSphere(), i.copy(l.boundingSphere), i.applyMatrix4(c), r.ray.intersectsSphere(i) !== !1)) {
  21754.                                    e.getInverse(c), t.copy(r.ray).applyMatrix4(e);
  21755.                                    var u = new n.Vector3(),
  21756.                                        h = new n.Vector3(),
  21757.                                        d = new n.Vector3(),
  21758.                                        f = new n.Vector3(),
  21759.                                        p = this instanceof n.LineSegments ? 2 : 1;
  21760.                                    if (l instanceof n.BufferGeometry) {
  21761.                                        var m = l.index,
  21762.                                            v = l.attributes,
  21763.                                            g = v.position.array;
  21764.                                        if (null !== m)
  21765.                                            for (var y = m.array, _ = 0, b = y.length - 1; b > _; _ += p) {
  21766.                                                var x = y[_],
  21767.                                                    w = y[_ + 1];
  21768.                                                u.fromArray(g, 3 * x), h.fromArray(g, 3 * w);
  21769.                                                var M = t.distanceSqToSegment(u, h, f, d);
  21770.                                                if (!(M > s)) {
  21771.                                                    f.applyMatrix4(this.matrixWorld);
  21772.                                                    var T = r.ray.origin.distanceTo(f);
  21773.                                                    T < r.near || T > r.far || o.push({
  21774.                                                        distance: T,
  21775.                                                        point: d.clone().applyMatrix4(this.matrixWorld),
  21776.                                                        index: _,
  21777.                                                        face: null,
  21778.                                                        faceIndex: null,
  21779.                                                        object: this
  21780.                                                    });
  21781.                                                }
  21782.                                            }
  21783.                                        else
  21784.                                            for (var _ = 0, b = g.length / 3 - 1; b > _; _ += p) {
  21785.                                                u.fromArray(g, 3 * _), h.fromArray(g, 3 * _ + 3);
  21786.                                                var M = t.distanceSqToSegment(u, h, f, d);
  21787.                                                if (!(M > s)) {
  21788.                                                    f.applyMatrix4(this.matrixWorld);
  21789.                                                    var T = r.ray.origin.distanceTo(f);
  21790.                                                    T < r.near || T > r.far || o.push({
  21791.                                                        distance: T,
  21792.                                                        point: d.clone().applyMatrix4(this.matrixWorld),
  21793.                                                        index: _,
  21794.                                                        face: null,
  21795.                                                        faceIndex: null,
  21796.                                                        object: this
  21797.                                                    });
  21798.                                                }
  21799.                                            }
  21800.                                    } else if (l instanceof n.Geometry)
  21801.                                        for (var S = l.vertices, E = S.length, _ = 0; E - 1 > _; _ += p) {
  21802.                                            var M = t.distanceSqToSegment(S[_], S[_ + 1], f, d);
  21803.                                            if (!(M > s)) {
  21804.                                                f.applyMatrix4(this.matrixWorld);
  21805.                                                var T = r.ray.origin.distanceTo(f);
  21806.                                                T < r.near || T > r.far || o.push({
  21807.                                                    distance: T,
  21808.                                                    point: d.clone().applyMatrix4(this.matrixWorld),
  21809.                                                    index: _,
  21810.                                                    face: null,
  21811.                                                    faceIndex: null,
  21812.                                                    object: this
  21813.                                                });
  21814.                                            }
  21815.                                        }
  21816.                                }
  21817.                            };
  21818.                        })(),
  21819.                        clone: function () {
  21820.                            return new this.constructor(this.geometry, this.material).copy(this);
  21821.                        },
  21822.                    })),
  21823.                    (n.LineSegments = function (e, t) {
  21824.                        n.Line.call(this, e, t), (this.type = "LineSegments");
  21825.                    }),
  21826.                    (n.LineSegments.prototype = Object.assign(Object.create(n.Line.prototype), {
  21827.                        constructor: n.LineSegments
  21828.                    })),
  21829.                    (n.Mesh = function (e, t) {
  21830.                        n.Object3D.call(this),
  21831.                            (this.type = "Mesh"),
  21832.                            (this.geometry = void 0 !== e ? e : new n.BufferGeometry()),
  21833.                            (this.material = void 0 !== t ? t : new n.MeshBasicMaterial({
  21834.                                color: 16777215 * Math.random()
  21835.                            })),
  21836.                            (this.drawMode = n.TrianglesDrawMode),
  21837.                            this.updateMorphTargets();
  21838.                    }),
  21839.                    (n.Mesh.prototype = Object.assign(Object.create(n.Object3D.prototype), {
  21840.                        constructor: n.Mesh,
  21841.                        setDrawMode: function (e) {
  21842.                            this.drawMode = e;
  21843.                        },
  21844.                        copy: function (e) {
  21845.                            return n.Object3D.prototype.copy.call(this, e), (this.drawMode = e.drawMode), this;
  21846.                        },
  21847.                        updateMorphTargets: function () {
  21848.                            if (void 0 !== this.geometry.morphTargets && this.geometry.morphTargets.length > 0) {
  21849.                                (this.morphTargetBase = -1), (this.morphTargetInfluences = []), (this.morphTargetDictionary = {});
  21850.                                for (var e = 0, t = this.geometry.morphTargets.length; t > e; e++) this.morphTargetInfluences.push(0), (this.morphTargetDictionary[this.geometry.morphTargets[e].name] = e);
  21851.                            }
  21852.                        },
  21853.                        getMorphTargetIndexByName: function (e) {
  21854.                            return void 0 !== this.morphTargetDictionary[e] ? this.morphTargetDictionary[e] : (console.warn("THREE.Mesh.getMorphTargetIndexByName: morph target " + e + " does not exist. Returning 0."), 0);
  21855.                        },
  21856.                        raycast: (function () {
  21857.                            function e(e, t, i, r, o, a, s) {
  21858.                                return n.Triangle.barycoordFromPoint(e, t, i, r, v), o.multiplyScalar(v.x), a.multiplyScalar(v.y), s.multiplyScalar(v.z), o.add(a).add(s), o.clone();
  21859.                            }
  21860.  
  21861.                            function t(e, t, i, r, o, a, s) {
  21862.                                var l,
  21863.                                    c = e.material;
  21864.                                if (((l = c.side === n.BackSide ? i.intersectTriangle(a, o, r, !0, s) : i.intersectTriangle(r, o, a, c.side !== n.DoubleSide, s)), null === l)) return null;
  21865.                                y.copy(s), y.applyMatrix4(e.matrixWorld);
  21866.                                var u = t.ray.origin.distanceTo(y);
  21867.                                return u < t.near || u > t.far ? null : {
  21868.                                    distance: u,
  21869.                                    point: y.clone(),
  21870.                                    object: e
  21871.                                };
  21872.                            }
  21873.  
  21874.                            function i(i, r, o, a, u, h, d, v) {
  21875.                                s.fromArray(a, 3 * h), l.fromArray(a, 3 * d), c.fromArray(a, 3 * v);
  21876.                                var y = t(i, r, o, s, l, c, g);
  21877.                                return y && (u && (f.fromArray(u, 2 * h), p.fromArray(u, 2 * d), m.fromArray(u, 2 * v), (y.uv = e(g, s, l, c, f, p, m))), (y.face = new n.Face3(h, d, v, n.Triangle.normal(s, l, c))), (y.faceIndex = h)), y;
  21878.                            }
  21879.                            var r = new n.Matrix4(),
  21880.                                o = new n.Ray(),
  21881.                                a = new n.Sphere(),
  21882.                                s = new n.Vector3(),
  21883.                                l = new n.Vector3(),
  21884.                                c = new n.Vector3(),
  21885.                                u = new n.Vector3(),
  21886.                                h = new n.Vector3(),
  21887.                                d = new n.Vector3(),
  21888.                                f = new n.Vector2(),
  21889.                                p = new n.Vector2(),
  21890.                                m = new n.Vector2(),
  21891.                                v = new n.Vector3(),
  21892.                                g = new n.Vector3(),
  21893.                                y = new n.Vector3();
  21894.                            return function (v, y) {
  21895.                                var _ = this.geometry,
  21896.                                    b = this.material,
  21897.                                    x = this.matrixWorld;
  21898.                                if (
  21899.                                    void 0 !== b &&
  21900.                                    (null === _.boundingSphere && _.computeBoundingSphere(),
  21901.                                        a.copy(_.boundingSphere),
  21902.                                        a.applyMatrix4(x),
  21903.                                        v.ray.intersectsSphere(a) !== !1 && (r.getInverse(x), o.copy(v.ray).applyMatrix4(r), null === _.boundingBox || o.intersectsBox(_.boundingBox) !== !1))
  21904.                                ) {
  21905.                                    var w, M;
  21906.                                    if (_ instanceof n.BufferGeometry) {
  21907.                                        var T,
  21908.                                            S,
  21909.                                            E,
  21910.                                            A = _.index,
  21911.                                            C = _.attributes,
  21912.                                            P = C.position.array;
  21913.                                        if ((void 0 !== C.uv && (w = C.uv.array), null !== A))
  21914.                                            for (var L = A.array, R = 0, O = L.length; O > R; R += 3)(T = L[R]), (S = L[R + 1]), (E = L[R + 2]), (M = i(this, v, o, P, w, T, S, E)), M && ((M.faceIndex = Math.floor(R / 3)), y.push(M));
  21915.                                        else
  21916.                                            for (var R = 0, O = P.length; O > R; R += 9)(T = R / 3), (S = T + 1), (E = T + 2), (M = i(this, v, o, P, w, T, S, E)), M && ((M.index = T), y.push(M));
  21917.                                    } else if (_ instanceof n.Geometry) {
  21918.                                        var k,
  21919.                                            D,
  21920.                                            I,
  21921.                                            N = b instanceof n.MultiMaterial,
  21922.                                            U = N === !0 ? b.materials : null,
  21923.                                            j = _.vertices,
  21924.                                            B = _.faces,
  21925.                                            F = _.faceVertexUvs[0];
  21926.                                        F.length > 0 && (w = F);
  21927.                                        for (var V = 0, G = B.length; G > V; V++) {
  21928.                                            var z = B[V],
  21929.                                                $ = N === !0 ? U[z.materialIndex] : b;
  21930.                                            if (void 0 !== $) {
  21931.                                                if (((k = j[z.a]), (D = j[z.b]), (I = j[z.c]), $.morphTargets === !0)) {
  21932.                                                    var H = _.morphTargets,
  21933.                                                        W = this.morphTargetInfluences;
  21934.                                                    s.set(0, 0, 0), l.set(0, 0, 0), c.set(0, 0, 0);
  21935.                                                    for (var X = 0, Y = H.length; Y > X; X++) {
  21936.                                                        var q = W[X];
  21937.                                                        if (0 !== q) {
  21938.                                                            var Z = H[X].vertices;
  21939.                                                            s.addScaledVector(u.subVectors(Z[z.a], k), q), l.addScaledVector(h.subVectors(Z[z.b], D), q), c.addScaledVector(d.subVectors(Z[z.c], I), q);
  21940.                                                        }
  21941.                                                    }
  21942.                                                    s.add(k), l.add(D), c.add(I), (k = s), (D = l), (I = c);
  21943.                                                }
  21944.                                                if ((M = t(this, v, o, k, D, I, g))) {
  21945.                                                    if (w) {
  21946.                                                        var K = w[V];
  21947.                                                        f.copy(K[0]), p.copy(K[1]), m.copy(K[2]), (M.uv = e(g, k, D, I, f, p, m));
  21948.                                                    }
  21949.                                                    (M.face = z), (M.faceIndex = V), y.push(M);
  21950.                                                }
  21951.                                            }
  21952.                                        }
  21953.                                    }
  21954.                                }
  21955.                            };
  21956.                        })(),
  21957.                        clone: function () {
  21958.                            return new this.constructor(this.geometry, this.material).copy(this);
  21959.                        },
  21960.                    })),
  21961.                    (n.Bone = function (e) {
  21962.                        n.Object3D.call(this), (this.type = "Bone"), (this.skin = e);
  21963.                    }),
  21964.                    (n.Bone.prototype = Object.assign(Object.create(n.Object3D.prototype), {
  21965.                        constructor: n.Bone,
  21966.                        copy: function (e) {
  21967.                            return n.Object3D.prototype.copy.call(this, e), (this.skin = e.skin), this;
  21968.                        },
  21969.                    })),
  21970.                    (n.Skeleton = function (e, t, i) {
  21971.                        if (((this.useVertexTexture = void 0 !== i ? i : !0), (this.identityMatrix = new n.Matrix4()), (e = e || []), (this.bones = e.slice(0)), this.useVertexTexture)) {
  21972.                            var r = Math.sqrt(4 * this.bones.length);
  21973.                            (r = n.Math.nextPowerOfTwo(Math.ceil(r))),
  21974.                            (r = Math.max(r, 4)),
  21975.                            (this.boneTextureWidth = r),
  21976.                            (this.boneTextureHeight = r),
  21977.                            (this.boneMatrices = new Float32Array(this.boneTextureWidth * this.boneTextureHeight * 4)),
  21978.                            (this.boneTexture = new n.DataTexture(this.boneMatrices, this.boneTextureWidth, this.boneTextureHeight, n.RGBAFormat, n.FloatType));
  21979.                        } else this.boneMatrices = new Float32Array(16 * this.bones.length);
  21980.                        if (void 0 === t) this.calculateInverses();
  21981.                        else if (this.bones.length === t.length) this.boneInverses = t.slice(0);
  21982.                        else {
  21983.                            console.warn("THREE.Skeleton bonInverses is the wrong length."), (this.boneInverses = []);
  21984.                            for (var o = 0, a = this.bones.length; a > o; o++) this.boneInverses.push(new n.Matrix4());
  21985.                        }
  21986.                    }),
  21987.                    Object.assign(n.Skeleton.prototype, {
  21988.                        calculateInverses: function () {
  21989.                            this.boneInverses = [];
  21990.                            for (var e = 0, t = this.bones.length; t > e; e++) {
  21991.                                var i = new n.Matrix4();
  21992.                                this.bones[e] && i.getInverse(this.bones[e].matrixWorld), this.boneInverses.push(i);
  21993.                            }
  21994.                        },
  21995.                        pose: function () {
  21996.                            for (var e, t = 0, i = this.bones.length; i > t; t++)(e = this.bones[t]), e && e.matrixWorld.getInverse(this.boneInverses[t]);
  21997.                            for (var t = 0, i = this.bones.length; i > t; t++)
  21998.                                (e = this.bones[t]),
  21999.                                e && (e.parent instanceof n.Bone ? (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));
  22000.                        },
  22001.                        update: (function () {
  22002.                            var e = new n.Matrix4();
  22003.                            return function () {
  22004.                                for (var t = 0, i = this.bones.length; i > t; t++) {
  22005.                                    var n = this.bones[t] ? this.bones[t].matrixWorld : this.identityMatrix;
  22006.                                    e.multiplyMatrices(n, this.boneInverses[t]), e.toArray(this.boneMatrices, 16 * t);
  22007.                                }
  22008.                                this.useVertexTexture && (this.boneTexture.needsUpdate = !0);
  22009.                            };
  22010.                        })(),
  22011.                        clone: function () {
  22012.                            return new n.Skeleton(this.bones, this.boneInverses, this.useVertexTexture);
  22013.                        },
  22014.                    }),
  22015.                    (n.SkinnedMesh = function (e, t, i) {
  22016.                        n.Mesh.call(this, e, t), (this.type = "SkinnedMesh"), (this.bindMode = "attached"), (this.bindMatrix = new n.Matrix4()), (this.bindMatrixInverse = new n.Matrix4());
  22017.                        var r = [];
  22018.                        if (this.geometry && void 0 !== this.geometry.bones) {
  22019.                            for (var o, a, s = 0, l = this.geometry.bones.length; l > s; ++s)
  22020.                                (a = this.geometry.bones[s]), (o = new n.Bone(this)), r.push(o), (o.name = a.name), o.position.fromArray(a.pos), o.quaternion.fromArray(a.rotq), void 0 !== a.scl && o.scale.fromArray(a.scl);
  22021.                            for (var s = 0, l = this.geometry.bones.length; l > s; ++s)(a = this.geometry.bones[s]), -1 !== a.parent && null !== a.parent && void 0 !== r[a.parent] ? r[a.parent].add(r[s]) : this.add(r[s]);
  22022.                        }
  22023.                        this.normalizeSkinWeights(), this.updateMatrixWorld(!0), this.bind(new n.Skeleton(r, void 0, i), this.matrixWorld);
  22024.                    }),
  22025.                    (n.SkinnedMesh.prototype = Object.assign(Object.create(n.Mesh.prototype), {
  22026.                        constructor: n.SkinnedMesh,
  22027.                        bind: function (e, t) {
  22028.                            (this.skeleton = e), void 0 === t && (this.updateMatrixWorld(!0), this.skeleton.calculateInverses(), (t = this.matrixWorld)), this.bindMatrix.copy(t), this.bindMatrixInverse.getInverse(t);
  22029.                        },
  22030.                        pose: function () {
  22031.                            this.skeleton.pose();
  22032.                        },
  22033.                        normalizeSkinWeights: function () {
  22034.                            if (this.geometry instanceof n.Geometry)
  22035.                                for (var e = 0; e < this.geometry.skinWeights.length; e++) {
  22036.                                    var t = this.geometry.skinWeights[e],
  22037.                                        i = 1 / t.lengthManhattan();
  22038.                                    i !== 1 / 0 ? t.multiplyScalar(i) : t.set(1, 0, 0, 0);
  22039.                                }
  22040.                            else if (this.geometry instanceof n.BufferGeometry)
  22041.                                for (var r = new n.Vector4(), o = this.geometry.attributes.skinWeight, e = 0; e < o.count; e++) {
  22042.                                    (r.x = o.getX(e)), (r.y = o.getY(e)), (r.z = o.getZ(e)), (r.w = o.getW(e));
  22043.                                    var i = 1 / r.lengthManhattan();
  22044.                                    i !== 1 / 0 ? r.multiplyScalar(i) : r.set(1, 0, 0, 0), o.setXYZW(e, r.x, r.y, r.z, r.w);
  22045.                                }
  22046.                        },
  22047.                        updateMatrixWorld: function (e) {
  22048.                            n.Mesh.prototype.updateMatrixWorld.call(this, !0),
  22049.                                "attached" === this.bindMode ?
  22050.                                this.bindMatrixInverse.getInverse(this.matrixWorld) :
  22051.                                "detached" === this.bindMode ?
  22052.                                this.bindMatrixInverse.getInverse(this.bindMatrix) :
  22053.                                console.warn("THREE.SkinnedMesh unrecognized bindMode: " + this.bindMode);
  22054.                        },
  22055.                        clone: function () {
  22056.                            return new this.constructor(this.geometry, this.material, this.skeleton.useVertexTexture).copy(this);
  22057.                        },
  22058.                    })),
  22059.                    (n.LOD = function () {
  22060.                        n.Object3D.call(this), (this.type = "LOD"), Object.defineProperties(this, {
  22061.                            levels: {
  22062.                                enumerable: !0,
  22063.                                value: []
  22064.                            }
  22065.                        });
  22066.                    }),
  22067.                    (n.LOD.prototype = Object.assign(Object.create(n.Object3D.prototype), {
  22068.                        constructor: n.LOD,
  22069.                        copy: function (e) {
  22070.                            n.Object3D.prototype.copy.call(this, e, !1);
  22071.                            for (var t = e.levels, i = 0, r = t.length; r > i; i++) {
  22072.                                var o = t[i];
  22073.                                this.addLevel(o.object.clone(), o.distance);
  22074.                            }
  22075.                            return this;
  22076.                        },
  22077.                        addLevel: function (e, t) {
  22078.                            void 0 === t && (t = 0), (t = Math.abs(t));
  22079.                            for (var i = this.levels, n = 0; n < i.length && !(t < i[n].distance); n++);
  22080.                            i.splice(n, 0, {
  22081.                                distance: t,
  22082.                                object: e
  22083.                            }), this.add(e);
  22084.                        },
  22085.                        getObjectForDistance: function (e) {
  22086.                            for (var t = this.levels, i = 1, n = t.length; n > i && !(e < t[i].distance); i++);
  22087.                            return t[i - 1].object;
  22088.                        },
  22089.                        raycast: (function () {
  22090.                            var e = new n.Vector3();
  22091.                            return function (t, i) {
  22092.                                e.setFromMatrixPosition(this.matrixWorld);
  22093.                                var n = t.ray.origin.distanceTo(e);
  22094.                                this.getObjectForDistance(n).raycast(t, i);
  22095.                            };
  22096.                        })(),
  22097.                        update: (function () {
  22098.                            var e = new n.Vector3(),
  22099.                                t = new n.Vector3();
  22100.                            return function (i) {
  22101.                                var n = this.levels;
  22102.                                if (n.length > 1) {
  22103.                                    e.setFromMatrixPosition(i.matrixWorld), t.setFromMatrixPosition(this.matrixWorld);
  22104.                                    var r = e.distanceTo(t);
  22105.                                    n[0].object.visible = !0;
  22106.                                    for (var o = 1, a = n.length; a > o && r >= n[o].distance; o++)(n[o - 1].object.visible = !1), (n[o].object.visible = !0);
  22107.                                    for (; a > o; o++) n[o].object.visible = !1;
  22108.                                }
  22109.                            };
  22110.                        })(),
  22111.                        toJSON: function (e) {
  22112.                            var t = n.Object3D.prototype.toJSON.call(this, e);
  22113.                            t.object.levels = [];
  22114.                            for (var i = this.levels, r = 0, o = i.length; o > r; r++) {
  22115.                                var a = i[r];
  22116.                                t.object.levels.push({
  22117.                                    object: a.object.uuid,
  22118.                                    distance: a.distance
  22119.                                });
  22120.                            }
  22121.                            return t;
  22122.                        },
  22123.                    })),
  22124.                    (n.Sprite = function (e) {
  22125.                        n.Object3D.call(this), (this.type = "Sprite"), (this.material = void 0 !== e ? e : new n.SpriteMaterial());
  22126.                    }),
  22127.                    (n.Sprite.prototype = Object.assign(Object.create(n.Object3D.prototype), {
  22128.                        constructor: n.Sprite,
  22129.                        raycast: (function () {
  22130.                            var e = new n.Vector3();
  22131.                            return function (t, i) {
  22132.                                e.setFromMatrixPosition(this.matrixWorld);
  22133.                                var n = t.ray.distanceSqToPoint(e),
  22134.                                    r = (this.scale.x * this.scale.y) / 4;
  22135.                                n > r || i.push({
  22136.                                    distance: Math.sqrt(n),
  22137.                                    point: this.position,
  22138.                                    face: null,
  22139.                                    object: this
  22140.                                });
  22141.                            };
  22142.                        })(),
  22143.                        clone: function () {
  22144.                            return new this.constructor(this.material).copy(this);
  22145.                        },
  22146.                    })),
  22147.                    (n.LensFlare = function (e, t, i, r, o) {
  22148.                        n.Object3D.call(this), (this.lensFlares = []), (this.positionScreen = new n.Vector3()), (this.customUpdateCallback = void 0), void 0 !== e && this.add(e, t, i, r, o);
  22149.                    }),
  22150.                    (n.LensFlare.prototype = Object.assign(Object.create(n.Object3D.prototype), {
  22151.                        constructor: n.LensFlare,
  22152.                        copy: function (e) {
  22153.                            n.Object3D.prototype.copy.call(this, e), this.positionScreen.copy(e.positionScreen), (this.customUpdateCallback = e.customUpdateCallback);
  22154.                            for (var t = 0, i = e.lensFlares.length; i > t; t++) this.lensFlares.push(e.lensFlares[t]);
  22155.                            return this;
  22156.                        },
  22157.                        add: function (e, t, i, r, o, a) {
  22158.                            void 0 === t && (t = -1),
  22159.                                void 0 === i && (i = 0),
  22160.                                void 0 === a && (a = 1),
  22161.                                void 0 === o && (o = new n.Color(16777215)),
  22162.                                void 0 === r && (r = n.NormalBlending),
  22163.                                (i = Math.min(i, Math.max(0, i))),
  22164.                                this.lensFlares.push({
  22165.                                    texture: e,
  22166.                                    size: t,
  22167.                                    distance: i,
  22168.                                    x: 0,
  22169.                                    y: 0,
  22170.                                    z: 0,
  22171.                                    scale: 1,
  22172.                                    rotation: 0,
  22173.                                    opacity: a,
  22174.                                    color: o,
  22175.                                    blending: r
  22176.                                });
  22177.                        },
  22178.                        updateLensFlares: function () {
  22179.                            var e,
  22180.                                t,
  22181.                                i = this.lensFlares.length,
  22182.                                n = 2 * -this.positionScreen.x,
  22183.                                r = 2 * -this.positionScreen.y;
  22184.                            for (e = 0; i > e; e++)
  22185.                                (t = this.lensFlares[e]),
  22186.                                (t.x = this.positionScreen.x + n * t.distance),
  22187.                                (t.y = this.positionScreen.y + r * t.distance),
  22188.                                (t.wantedRotation = t.x * Math.PI * 0.25),
  22189.                                (t.rotation += 0.25 * (t.wantedRotation - t.rotation));
  22190.                        },
  22191.                    })),
  22192.                    (n.Scene = function () {
  22193.                        n.Object3D.call(this), (this.type = "Scene"), (this.background = null), (this.fog = null), (this.overrideMaterial = null), (this.autoUpdate = !0);
  22194.                    }),
  22195.                    (n.Scene.prototype = Object.create(n.Object3D.prototype)),
  22196.                    (n.Scene.prototype.constructor = n.Scene),
  22197.                    (n.Scene.prototype.copy = function (e, t) {
  22198.                        return (
  22199.                            n.Object3D.prototype.copy.call(this, e, t),
  22200.                            null !== e.background && (this.background = e.background.clone()),
  22201.                            null !== e.fog && (this.fog = e.fog.clone()),
  22202.                            null !== e.overrideMaterial && (this.overrideMaterial = e.overrideMaterial.clone()),
  22203.                            (this.autoUpdate = e.autoUpdate),
  22204.                            (this.matrixAutoUpdate = e.matrixAutoUpdate),
  22205.                            this
  22206.                        );
  22207.                    }),
  22208.                    (n.Fog = function (e, t, i) {
  22209.                        (this.name = ""), (this.color = new n.Color(e)), (this.near = void 0 !== t ? t : 1), (this.far = void 0 !== i ? i : 1e3);
  22210.                    }),
  22211.                    (n.Fog.prototype.clone = function () {
  22212.                        return new n.Fog(this.color.getHex(), this.near, this.far);
  22213.                    }),
  22214.                    (n.FogExp2 = function (e, t) {
  22215.                        (this.name = ""), (this.color = new n.Color(e)), (this.density = void 0 !== t ? t : 25e-5);
  22216.                    }),
  22217.                    (n.FogExp2.prototype.clone = function () {
  22218.                        return new n.FogExp2(this.color.getHex(), this.density);
  22219.                    }),
  22220.                    (n.ShaderChunk = {}),
  22221.                     (n.ShaderChunk.alphamap_fragment = "#ifdef USE_ALPHAMAPn    diffuseColor.a *= texture2D( alphaMap, vUv ).g;n#endifn"),
  22222.                     (n.ShaderChunk.alphamap_pars_fragment = "#ifdef USE_ALPHAMAPn       uniform sampler2D alphaMap;n#endifn"),
  22223.                     (n.ShaderChunk.alphatest_fragment = "#ifdef ALPHATESTn      if ( diffuseColor.a < ALPHATEST ) discard;n#endifn"),
  22224.                    (n.ShaderChunk.aomap_fragment =
  22225.                         "#ifdef USE_AOMAPn      float ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;n  reflectedLight.indirectDiffuse *= ambientOcclusion;n    #if defined( USE_ENVMAP ) && defined( PHYSICAL )n               float dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );n            reflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.specularRoughness );n    #endifn#endifn"),
  22226.                     (n.ShaderChunk.aomap_pars_fragment = "#ifdef USE_AOMAPn     uniform sampler2D aoMap;n       uniform float aoMapIntensity;n#endif"),
  22227.                    (n.ShaderChunk.begin_vertex = "nvec3 transformed = vec3( position );n"),
  22228.                    (n.ShaderChunk.beginnormal_vertex = "nvec3 objectNormal = vec3( normal );n"),
  22229.                    (n.ShaderChunk.bsdfs =
  22230.                         "bool testLightInRange( const in float lightDistance, const in float cutoffDistance ) {n        return any( bvec2( cutoffDistance == 0.0, lightDistance < cutoffDistance ) );n}nfloat punctualLightIntensityToIrradianceFactor( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {n          if( decayExponent > 0.0 ) {n#if defined ( PHYSICALLY_CORRECT_LIGHTS )n                  float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );n                        float maxDistanceCutoffFactor = pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );n                      return distanceFalloff * maxDistanceCutoffFactor;n#elsen                        return pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );n#endifn         }n              return 1.0;n}nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {n        return RECIPROCAL_PI * diffuseColor;n}nvec3 F_Schlick( const in vec3 specularColor, const in float dotLH ) {n   float fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );n        return ( 1.0 - specularColor ) * fresnel + specularColor;n}nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {n    float a2 = pow2( alpha );n      float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );n  float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );n  return 1.0 / ( gl * gv );n}nfloat G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {n  float a2 = pow2( alpha );n      float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );n  float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );n  return 0.5 / max( gv + gl, EPSILON );n}nfloat D_GGX( const in float alpha, const in float dotNH ) {n    float a2 = pow2( alpha );n      float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;n      return RECIPROCAL_PI * a2 / pow2( denom );n}nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float roughness ) {n       float alpha = pow2( roughness );n       vec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );n        float dotNL = saturate( dot( geometry.normal, incidentLight.direction ) );n     float dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );n    float dotNH = saturate( dot( geometry.normal, halfDir ) );n     float dotLH = saturate( dot( incidentLight.direction, halfDir ) );n     vec3 F = F_Schlick( specularColor, dotLH );n    float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );n        float D = D_GGX( alpha, dotNH );n       return F * ( G * D );n}nvec3 BRDF_Specular_GGX_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness ) {n      float dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );n    const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );n const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );n       vec4 r = roughness * c0 + c1;n  float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;n     vec2 AB = vec2( -1.04, 1.04 ) * a004 + r.zw;n   return specularColor * AB.x + AB.y;n}nfloat G_BlinnPhong_Implicit( ) {n return 0.25;n}nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {n  return 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       vec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );n        float dotNH = saturate( dot( geometry.normal, halfDir ) );n     float dotLH = saturate( dot( incidentLight.direction, halfDir ) );n     vec3 F = F_Schlick( specularColor, dotLH );n    float G = G_BlinnPhong_Implicit( );n    float D = D_BlinnPhong( shininess, dotNH );n    return F * ( G * D );n}nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {n     return ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );n}nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {n    return sqrt( 2.0 / ( blinnExponent + 2.0 ) );n}n"),
  22231.                    (n.ShaderChunk.bumpmap_pars_fragment =
  22232.                         "#ifdef USE_BUMPMAPn    uniform sampler2D bumpMap;n     uniform float bumpScale;n       vec2 dHdxy_fwd() {n             vec2 dSTdx = dFdx( vUv );n              vec2 dSTdy = dFdy( vUv );n              float Hll = bumpScale * texture2D( bumpMap, vUv ).x;n           float dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;n             float dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;n             return vec2( dBx, dBy );n       }n      vec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {n           vec3 vSigmaX = dFdx( surf_pos );n               vec3 vSigmaY = dFdy( surf_pos );n               vec3 vN = surf_norm;n           vec3 R1 = cross( vSigmaY, vN );n                vec3 R2 = cross( vN, vSigmaX );n                float fDet = dot( vSigmaX, R1 );n               vec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );n           return normalize( abs( fDet ) * surf_norm - vGrad );n   }n#endifn"),
  22233.                    (n.ShaderChunk.clipping_planes_fragment =
  22234.                         "#if NUM_CLIPPING_PLANES > 0n   for ( int i = 0; i < NUM_CLIPPING_PLANES; ++ i ) {n             vec4 plane = clippingPlanes[ i ];n              if ( dot( vViewPosition, plane.xyz ) > plane.w ) discard;n      }n#endifn"),
  22235.                    (n.ShaderChunk.clipping_planes_pars_fragment =
  22236.                         "#if NUM_CLIPPING_PLANES > 0n   #if ! defined( PHYSICAL ) && ! defined( PHONG )n                varying vec3 vViewPosition;n    #endifn uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];n#endifn"),
  22237.                     (n.ShaderChunk.clipping_planes_pars_vertex = "#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG )n   varying vec3 vViewPosition;n#endifn"),
  22238.                     (n.ShaderChunk.clipping_planes_vertex = "#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG )n        vViewPosition = - mvPosition.xyz;n#endifn"),
  22239.                     (n.ShaderChunk.color_fragment = "#ifdef USE_COLORn  diffuseColor.rgb *= vColor;n#endif"),
  22240.                     (n.ShaderChunk.color_pars_fragment = "#ifdef USE_COLORn     varying vec3 vColor;n#endifn"),
  22241.                     (n.ShaderChunk.color_pars_vertex = "#ifdef USE_COLORn       varying vec3 vColor;n#endif"),
  22242.                     (n.ShaderChunk.color_vertex = "#ifdef USE_COLORn    vColor.xyz = color.xyz;n#endif"),
  22243.                    (n.ShaderChunk.common =
  22244.                         "#define PI 3.14159265359n#define PI2 6.28318530718n#define RECIPROCAL_PI 0.31830988618n#define RECIPROCAL_PI2 0.15915494n#define LOG2 1.442695n#define EPSILON 1e-6n#define saturate(a) clamp( a, 0.0, 1.0 )n#define whiteCompliment(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 const highp float a = 12.9898, b = 78.233, c = 43758.5453;n     highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );n        return fract(sin(sn) * c);n}nstruct IncidentLight {n    vec3 color;n    vec3 direction;n        bool visible;n};nstruct ReflectedLight {n       vec3 directDiffuse;n    vec3 directSpecular;n   vec3 indirectDiffuse;n  vec3 indirectSpecular;n};nstruct GeometricContext {n    vec3 position;n vec3 normal;n   vec3 viewDir;n};nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {n      return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );n}nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {n       return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );n}nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {n      float distance = dot( planeNormal, point - pointOnPlane );n     return - distance * planeNormal + point;n}nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {n     return sign( dot( point - pointOnPlane, planeNormal ) );n}nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {n  return lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;n}n"),
  22245.                    (n.ShaderChunk.cube_uv_reflection_fragment =
  22246.                         "#ifdef ENVMAP_TYPE_CUBE_UVn#define cubeUV_textureSize (1024.0)nint getFaceFromDirection(vec3 direction) {n     vec3 absDirection = abs(direction);n    int face = -1;n if( absDirection.x > absDirection.z ) {n                if(absDirection.x > absDirection.y )n                   face = direction.x > 0.0 ? 0 : 3;n              elsen                   face = direction.y > 0.0 ? 1 : 4;n      }n      else {n         if(absDirection.z > absDirection.y )n                   face = direction.z > 0.0 ? 2 : 5;n              elsen                   face = direction.y > 0.0 ? 1 : 4;n      }n      return face;n}n#define cubeUV_maxLods1  (log2(cubeUV_textureSize*0.25) - 1.0)n#define cubeUV_rangeClamp (exp2((6.0 - 1.0) * 2.0))nvec2 MipLevelInfo( vec3 vec, float roughnessLevel, float roughness ) {n       float scale = exp2(cubeUV_maxLods1 - roughnessLevel);n  float dxRoughness = dFdx(roughness);n   float dyRoughness = dFdy(roughness);n   vec3 dx = dFdx( vec * scale * dxRoughness );n   vec3 dy = dFdy( vec * scale * dyRoughness );n   float d = max( dot( dx, dx ), dot( dy, dy ) );n d = clamp(d, 1.0, cubeUV_rangeClamp);n  float mipLevel = 0.5 * log2(d);n        return vec2(floor(mipLevel), fract(mipLevel));n}n#define cubeUV_maxLods2 (log2(cubeUV_textureSize*0.25) - 2.0)n#define cubeUV_rcpTextureSize (1.0 / cubeUV_textureSize)nvec2 getCubeUV(vec3 direction, float roughnessLevel, float mipLevel) {n mipLevel = roughnessLevel > cubeUV_maxLods2 - 3.0 ? 0.0 : mipLevel;n    float a = 16.0 * cubeUV_rcpTextureSize;n        vec2 exp2_packed = exp2( vec2( roughnessLevel, mipLevel ) );n   vec2 rcp_exp2_packed = vec2( 1.0 ) / exp2_packed;n      float powScale = exp2_packed.x * exp2_packed.y;n        float scale = rcp_exp2_packed.x * rcp_exp2_packed.y * 0.25;n    float mipOffset = 0.75*(1.0 - rcp_exp2_packed.y) * rcp_exp2_packed.x;n  bool bRes = mipLevel == 0.0;n   scale =  bRes && (scale < a) ? a : scale;n      vec3 r;n        vec2 offset;n   int face = getFaceFromDirection(direction);n    float rcpPowScale = 1.0 / powScale;n    if( face == 0) {n               r = vec3(direction.x, -direction.z, direction.y);n              offset = vec2(0.0+mipOffset,0.75 * rcpPowScale);n               offset.y = bRes && (offset.y < 2.0*a) ?  a : offset.y;n }n      else if( face == 1) {n          r = vec3(direction.y, direction.x, direction.z);n               offset = vec2(scale+mipOffset, 0.75 * rcpPowScale);n            offset.y = bRes && (offset.y < 2.0*a) ?  a : offset.y;n }n      else if( face == 2) {n          r = vec3(direction.z, direction.x, direction.y);n               offset = vec2(2.0*scale+mipOffset, 0.75 * rcpPowScale);n                offset.y = bRes && (offset.y < 2.0*a) ?  a : offset.y;n }n      else if( face == 3) {n          r = vec3(direction.x, direction.z, direction.y);n               offset = vec2(0.0+mipOffset,0.5 * rcpPowScale);n                offset.y = bRes && (offset.y < 2.0*a) ?  0.0 : offset.y;n       }n      else if( face == 4) {n          r = vec3(direction.y, direction.x, -direction.z);n              offset = vec2(scale+mipOffset, 0.5 * rcpPowScale);n             offset.y = bRes && (offset.y < 2.0*a) ?  0.0 : offset.y;n       }n      else {n         r = vec3(direction.z, -direction.x, direction.y);n              offset = vec2(2.0*scale+mipOffset, 0.5 * rcpPowScale);n         offset.y = bRes && (offset.y < 2.0*a) ?  0.0 : offset.y;n       }n      r = normalize(r);n      float texelOffset = 0.5 * cubeUV_rcpTextureSize;n       vec2 s = ( r.yz / abs( r.x ) + vec2( 1.0 ) ) * 0.5;n    vec2 base = offset + vec2( texelOffset );n      return base + s * ( scale - 2.0 * texelOffset );n}n#define cubeUV_maxLods3 (log2(cubeUV_textureSize*0.25) - 3.0)nvec4 textureCubeUV(vec3 reflectedDirection, float roughness ) {n       float roughnessVal = roughness* cubeUV_maxLods3;n       float r1 = floor(roughnessVal);n        float r2 = r1 + 1.0;n   float t = fract(roughnessVal);n vec2 mipInfo = MipLevelInfo(reflectedDirection, r1, roughness);n        float s = mipInfo.y;n   float level0 = mipInfo.x;n      float level1 = level0 + 1.0;n   level1 = level1 > 5.0 ? 5.0 : level1;n  level0 += min( floor( s + 0.5 ), 5.0 );n        vec2 uv_10 = getCubeUV(reflectedDirection, r1, level0);n        vec4 color10 = envMapTexelToLinear(texture2D(envMap, uv_10));n  vec2 uv_20 = getCubeUV(reflectedDirection, r2, level0);n        vec4 color20 = envMapTexelToLinear(texture2D(envMap, uv_20));n  vec4 result = mix(color10, color20, t);n        return vec4(result.rgb, 1.0);n}n#endifn"),
  22247.                     (n.ShaderChunk.defaultnormal_vertex = "#ifdef FLIP_SIDEDn   objectNormal = -objectNormal;n#endifnvec3 transformedNormal = normalMatrix * objectNormal;n"),
  22248.                     (n.ShaderChunk.displacementmap_vertex = "#ifdef USE_DISPLACEMENTMAPn        transformed += normal * ( texture2D( displacementMap, uv ).x * displacementScale + displacementBias );n#endifn"),
  22249.                     (n.ShaderChunk.displacementmap_pars_vertex = "#ifdef USE_DISPLACEMENTMAPn   uniform sampler2D displacementMap;n     uniform float displacementScale;n       uniform float displacementBias;n#endifn"),
  22250.                    (n.ShaderChunk.emissivemap_fragment =
  22251.                         "#ifdef USE_EMISSIVEMAPn        vec4 emissiveColor = texture2D( emissiveMap, vUv );n    emissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;n     totalEmissiveRadiance *= emissiveColor.rgb;n#endifn"),
  22252.                     (n.ShaderChunk.emissivemap_pars_fragment = "#ifdef USE_EMISSIVEMAPn uniform sampler2D emissiveMap;n#endifn"),
  22253.                    (n.ShaderChunk.encodings_pars_fragment =
  22254.                        "nvec4 LinearToLinear( in vec4 value ) {n  return value;n}nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {n  return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );n}nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {n  return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );n}nvec4 sRGBToLinear( in vec4 value ) {n  return 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.w );n}nvec4 LinearTosRGB( in vec4 value ) {n  return 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.w );n}nvec4 RGBEToLinear( in vec4 value ) {n  return vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );n}nvec4 LinearToRGBE( in vec4 value ) {n  float maxComponent = max( max( value.r, value.g ), value.b );n  float fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );n  return vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );n}nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {n  return vec4( value.xyz * value.w * maxRange, 1.0 );n}nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {n  float maxRGB = max( value.x, max( value.g, value.b ) );n  float M      = clamp( maxRGB / maxRange, 0.0, 1.0 );n  M            = ceil( M * 255.0 ) / 255.0;n  return vec4( value.rgb / ( M * maxRange ), M );n}nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {n    return vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );n}nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {n    float maxRGB = max( value.x, max( value.g, value.b ) );n    float D      = max( maxRange / maxRGB, 1.0 );n    D            = min( floor( D ) / 255.0, 1.0 );n    return 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  vec3 Xp_Y_XYZp = value.rgb * cLogLuvM;n  Xp_Y_XYZp = max(Xp_Y_XYZp, vec3(1e-6, 1e-6, 1e-6));n  vec4 vResult;n  vResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;n  float Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;n  vResult.w = fract(Le);n  vResult.z = (Le - (floor(vResult.w*255.0))/255.0)/255.0;n  return 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  float Le = value.z * 255.0 + value.w;n  vec3 Xp_Y_XYZp;n  Xp_Y_XYZp.y = exp2((Le - 127.0) / 2.0);n  Xp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;n  Xp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;n  vec3 vRGB = Xp_Y_XYZp.rgb * cLogLuvInverseM;n  return vec4( max(vRGB, 0.0), 1.0 );n}n"),
  22255.                    (n.ShaderChunk.encodings_fragment = "  gl_FragColor = linearToOutputTexel( gl_FragColor );n"),
  22256.                    (n.ShaderChunk.envmap_fragment =
  22257.                         "#ifdef USE_ENVMAPn     #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )n             vec3 cameraToVertex = normalize( vWorldPosition - cameraPosition );n            vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );n            #ifdef ENVMAP_MODE_REFLECTIONn                  vec3 reflectVec = reflect( cameraToVertex, worldNormal );n              #elsen                  vec3 reflectVec = refract( cameraToVertex, worldNormal, refractionRatio );n             #endifn #elsen          vec3 reflectVec = vReflect;n    #endifn #ifdef ENVMAP_TYPE_CUBEn                vec4 envColor = textureCube( envMap, flipNormal * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );n  #elif defined( ENVMAP_TYPE_EQUIREC )n           vec2 sampleUV;n         sampleUV.y = saturate( flipNormal * reflectVec.y * 0.5 + 0.5 );n                sampleUV.x = atan( flipNormal * reflectVec.z, flipNormal * reflectVec.x ) * RECIPROCAL_PI2 + 0.5;n              vec4 envColor = texture2D( envMap, sampleUV );n #elif defined( ENVMAP_TYPE_SPHERE )n            vec3 reflectView = flipNormal * normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) );n             vec4 envColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5 );n       #endifn envColor = envMapTexelToLinear( envColor );n    #ifdef ENVMAP_BLENDING_MULTIPLYn                outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );n   #elif defined( ENVMAP_BLENDING_MIX )n           outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );n   #elif defined( ENVMAP_BLENDING_ADD )n           outgoingLight += envColor.xyz * specularStrength * reflectivity;n       #endifn#endifn"),
  22258.                    (n.ShaderChunk.envmap_pars_fragment =
  22259.                         "#if defined( USE_ENVMAP ) || defined( PHYSICAL )n      uniform float reflectivity;n    uniform float envMapIntenstiy;n#endifn#ifdef USE_ENVMAPn        #if ! defined( PHYSICAL ) && ( defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) )n                varying vec3 vWorldPosition;n   #endifn #ifdef ENVMAP_TYPE_CUBEn                uniform samplerCube envMap;n    #elsen          uniform sampler2D envMap;n      #endifn uniform float flipEnvMap;n      #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( PHYSICAL )n              uniform float refractionRatio;n #elsen          varying vec3 vReflect;n #endifn#endifn"),
  22260.                    (n.ShaderChunk.envmap_pars_vertex =
  22261.                         "#ifdef USE_ENVMAPn     #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )n             varying vec3 vWorldPosition;n   #elsen          varying vec3 vReflect;n         uniform float refractionRatio;n #endifn#endifn"),
  22262.                    (n.ShaderChunk.envmap_vertex =
  22263.                         "#ifdef USE_ENVMAPn     #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )n             vWorldPosition = worldPosition.xyz;n    #elsen          vec3 cameraToVertex = normalize( worldPosition.xyz - cameraPosition );n         vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );n         #ifdef ENVMAP_MODE_REFLECTIONn                  vReflect = reflect( cameraToVertex, worldNormal );n             #elsen                  vReflect = refract( cameraToVertex, worldNormal, refractionRatio );n            #endifn #endifn#endifn"),
  22264.                    (n.ShaderChunk.fog_fragment =
  22265.                         "#ifdef USE_FOGn        #ifdef USE_LOGDEPTHBUF_EXTn             float depth = gl_FragDepthEXT / gl_FragCoord.w;n        #elsen          float depth = gl_FragCoord.z / gl_FragCoord.w;n #endifn #ifdef FOG_EXP2n                float fogFactor = whiteCompliment( exp2( - fogDensity * fogDensity * depth * depth * LOG2 ) );n #elsen          float fogFactor = smoothstep( fogNear, fogFar, depth );n        #endifn gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );n#endifn"),
  22266.                     (n.ShaderChunk.fog_pars_fragment = "#ifdef USE_FOGn uniform vec3 fogColor;n #ifdef FOG_EXP2n                uniform float fogDensity;n      #elsen          uniform float fogNear;n         uniform float fogFar;n  #endifn#endif"),
  22267.                     (n.ShaderChunk.lightmap_fragment = "#ifdef USE_LIGHTMAPn    reflectedLight.indirectDiffuse += PI * texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;n#endifn"),
  22268.                     (n.ShaderChunk.lightmap_pars_fragment = "#ifdef USE_LIGHTMAPn       uniform sampler2D lightMap;n    uniform float lightMapIntensity;n#endif"),
  22269.                    (n.ShaderChunk.lights_lambert_vertex =
  22270.                         "vec3 diffuse = vec3( 1.0 );nGeometricContext geometry;ngeometry.position = mvPosition.xyz;ngeometry.normal = normalize( transformedNormal );ngeometry.viewDir = normalize( -mvPosition.xyz );nGeometricContext backGeometry;nbackGeometry.position = geometry.position;nbackGeometry.normal = -geometry.normal;nbackGeometry.viewDir = geometry.viewDir;nvLightFront = vec3( 0.0 );n#ifdef DOUBLE_SIDEDn       vLightBack = vec3( 0.0 );n#endifnIncidentLight directLight;nfloat dotNL;nvec3 directLightColor_Diffuse;n#if NUM_POINT_LIGHTS > 0n       for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {n                getPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );n              dotNL = dot( geometry.normal, directLight.direction );n         directLightColor_Diffuse = PI * directLight.color;n             vLightFront += saturate( dotNL ) * directLightColor_Diffuse;n           #ifdef DOUBLE_SIDEDn                    vLightBack += saturate( -dotNL ) * directLightColor_Diffuse;n           #endifn }n#endifn#if NUM_SPOT_LIGHTS > 0n       for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {n         getSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );n                dotNL = dot( geometry.normal, directLight.direction );n         directLightColor_Diffuse = PI * directLight.color;n             vLightFront += saturate( dotNL ) * directLightColor_Diffuse;n           #ifdef DOUBLE_SIDEDn                    vLightBack += saturate( -dotNL ) * directLightColor_Diffuse;n           #endifn }n#endifn#if NUM_DIR_LIGHTS > 0n        for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {n          getDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );n          dotNL = dot( geometry.normal, directLight.direction );n         directLightColor_Diffuse = PI * directLight.color;n             vLightFront += saturate( dotNL ) * directLightColor_Diffuse;n           #ifdef DOUBLE_SIDEDn                    vLightBack += saturate( -dotNL ) * directLightColor_Diffuse;n           #endifn }n#endifn#if NUM_HEMI_LIGHTS > 0n       for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {n         vLightFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );n                #ifdef DOUBLE_SIDEDn                    vLightBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );n             #endifn }n#endifn"),
  22271.                    (n.ShaderChunk.lights_pars =
  22272.                         "uniform vec3 ambientLightColor;nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {n   vec3 irradiance = ambientLightColor;n   #ifndef PHYSICALLY_CORRECT_LIGHTSn              irradiance *= PI;n      #endifn return irradiance;n}n#if NUM_DIR_LIGHTS > 0n    struct DirectionalLight {n              vec3 direction;n                vec3 color;n            int shadow;n            float shadowBias;n              float shadowRadius;n            vec2 shadowMapSize;n    };n     uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];n  void getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {n            directLight.color = directionalLight.color;n            directLight.direction = directionalLight.direction;n            directLight.visible = true;n    }n#endifn#if NUM_POINT_LIGHTS > 0n      struct PointLight {n            vec3 position;n         vec3 color;n            float distance;n                float decay;n           int shadow;n            float shadowBias;n              float shadowRadius;n            vec2 shadowMapSize;n    };n     uniform PointLight pointLights[ NUM_POINT_LIGHTS ];n    void getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {n              vec3 lVector = pointLight.position - geometry.position;n                directLight.direction = normalize( lVector );n          float lightDistance = length( lVector );n               if ( testLightInRange( lightDistance, pointLight.distance ) ) {n                        directLight.color = pointLight.color;n                  directLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );n                 directLight.visible = true;n            } else {n                       directLight.color = vec3( 0.0 );n                       directLight.visible = false;n           }n      }n#endifn#if NUM_SPOT_LIGHTS > 0n       struct SpotLight {n             vec3 position;n         vec3 direction;n                vec3 color;n            float distance;n                float decay;n           float coneCos;n         float penumbraCos;n             int shadow;n            float shadowBias;n              float shadowRadius;n            vec2 shadowMapSize;n    };n     uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];n       void getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight  ) {n                vec3 lVector = spotLight.position - geometry.position;n         directLight.direction = normalize( lVector );n          float lightDistance = length( lVector );n               float angleCos = dot( directLight.direction, spotLight.direction );n            if ( all( bvec2( angleCos > spotLight.coneCos, testLightInRange( lightDistance, spotLight.distance ) ) ) ) {n                   float spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );n                   directLight.color = spotLight.color;n                   directLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );n                      directLight.visible = true;n            } else {n                       directLight.color = vec3( 0.0 );n                       directLight.visible = false;n           }n      }n#endifn#if NUM_HEMI_LIGHTS > 0n       struct HemisphereLight {n               vec3 direction;n                vec3 skyColor;n         vec3 groundColor;n      };n     uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];n   vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {n          float dotNL = dot( geometry.normal, hemiLight.direction );n             float hemiDiffuseWeight = 0.5 * dotNL + 0.5;n           vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );n         #ifndef PHYSICALLY_CORRECT_LIGHTSn                      irradiance *= PI;n              #endifn         return irradiance;n     }n#endifn#if defined( USE_ENVMAP ) && defined( PHYSICAL )n      vec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {n         #include <normal_flip>n         vec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );n           #ifdef ENVMAP_TYPE_CUBEn                        vec3 queryVec = flipNormal * vec3( flipEnvMap * worldNormal.x, worldNormal.yz );n                       #ifdef TEXTURE_LOD_EXTn                         vec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );n                        #elsen                          vec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );n                      #endifn                 envMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;n              #elif defined( ENVMAP_TYPE_CUBE_UV )n                   vec3 queryVec = flipNormal * vec3( flipEnvMap * worldNormal.x, worldNormal.yz );n                       vec4 envMapColor = textureCubeUV( queryVec, 1.0 );n             #elsen                  vec4 envMapColor = vec4( 0.0 );n                #endifn         return PI * envMapColor.rgb * envMapIntensity;n }n      float getSpecularMIPLevel( const in float blinnShininessExponent, const in int maxMIPLevel ) {n         float maxMIPLevelScalar = float( maxMIPLevel );n                float desiredMIPLevel = maxMIPLevelScalar - 0.79248 - 0.5 * log2( pow2( blinnShininessExponent ) + 1.0 );n              return clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );n       }n      vec3 getLightProbeIndirectRadiance( const in GeometricContext geometry, const in float blinnShininessExponent, const in int maxMIPLevel ) {n            #ifdef ENVMAP_MODE_REFLECTIONn                  vec3 reflectVec = reflect( -geometry.viewDir, geometry.normal );n               #elsen                  vec3 reflectVec = refract( -geometry.viewDir, geometry.normal, refractionRatio );n              #endifn         #include <normal_flip>n         reflectVec = inverseTransformDirection( reflectVec, viewMatrix );n              float specularMIPLevel = getSpecularMIPLevel( blinnShininessExponent, maxMIPLevel );n           #ifdef ENVMAP_TYPE_CUBEn                        vec3 queryReflectVec = flipNormal * vec3( flipEnvMap * reflectVec.x, reflectVec.yz );n                  #ifdef TEXTURE_LOD_EXTn                         vec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );n                     #elsen                          vec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );n                   #endifn                 envMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;n              #elif defined( ENVMAP_TYPE_CUBE_UV )n                   vec3 queryReflectVec = flipNormal * vec3( flipEnvMap * reflectVec.x, reflectVec.yz );n                  vec4 envMapColor = textureCubeUV(queryReflectVec, BlinnExponentToGGXRoughness(blinnShininessExponent));n                #elif defined( ENVMAP_TYPE_EQUIREC )n                   vec2 sampleUV;n                 sampleUV.y = saturate( flipNormal * reflectVec.y * 0.5 + 0.5 );n                        sampleUV.x = atan( flipNormal * reflectVec.z, flipNormal * reflectVec.x ) * RECIPROCAL_PI2 + 0.5;n                      #ifdef TEXTURE_LOD_EXTn                         vec4 envMapColor = texture2DLodEXT( envMap, sampleUV, specularMIPLevel );n                      #elsen                          vec4 envMapColor = texture2D( envMap, sampleUV, specularMIPLevel );n                    #endifn                 envMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;n              #elif defined( ENVMAP_TYPE_SPHERE )n                    vec3 reflectView = flipNormal * normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0,0.0,1.0 ) );n                       #ifdef TEXTURE_LOD_EXTn                         vec4 envMapColor = texture2DLodEXT( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );n                    #elsen                          vec4 envMapColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );n                  #endifn                 envMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;n              #endifn         return envMapColor.rgb * envMapIntensity;n      }n#endifn"),
  22273.                    (n.ShaderChunk.lights_phong_fragment =
  22274.                        "BlinnPhongMaterial material;nmaterial.diffuseColor = diffuseColor.rgb;nmaterial.specularColor = specular;nmaterial.specularShininess = shininess;nmaterial.specularStrength = specularStrength;n"),
  22275.                    (n.ShaderChunk.lights_phong_pars_fragment =
  22276.                         "varying vec3 vViewPosition;n#ifndef FLAT_SHADEDn       varying vec3 vNormal;n#endifnstruct BlinnPhongMaterial {n       vec3    diffuseColor;n  vec3    specularColor;n float   specularShininess;n     float   specularStrength;n};nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {n  float dotNL = saturate( dot( geometry.normal, directLight.direction ) );n       vec3 irradiance = dotNL * directLight.color;n   #ifndef PHYSICALLY_CORRECT_LIGHTSn              irradiance *= PI;n      #endifn reflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );n    reflectedLight.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     reflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );n}n#define RE_Direct                               RE_Direct_BlinnPhongn#define RE_IndirectDiffuse         RE_IndirectDiffuse_BlinnPhongn#define Material_LightProbeLOD( material )        (0)n"),
  22277.                    (n.ShaderChunk.lights_physical_fragment =
  22278.                         "PhysicalMaterial material;nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );nmaterial.specularRoughness = clamp( roughnessFactor, 0.04, 1.0 );n#ifdef STANDARDn    material.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );n#elsen material.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );n        material.clearCoat = saturate( clearCoat );     material.clearCoatRoughness = clamp( clearCoatRoughness, 0.04, 1.0 );n#endifn"),
  22279.                    (n.ShaderChunk.lights_physical_pars_fragment =
  22280.                         "struct PhysicalMaterial {n     vec3    diffuseColor;n  float   specularRoughness;n     vec3    specularColor;n #ifndef STANDARDn               float clearCoat;n               float clearCoatRoughness;n      #endifn};n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16n#define DEFAULT_SPECULAR_COEFFICIENT 0.04nfloat clearCoatDHRApprox( const in float roughness, const in float dotNL ) {n     return DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );n}nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {n       float dotNL = saturate( dot( geometry.normal, directLight.direction ) );n       vec3 irradiance = dotNL * directLight.color;n   #ifndef PHYSICALLY_CORRECT_LIGHTSn              irradiance *= PI;n      #endifn #ifndef STANDARDn               float clearCoatDHR = material.clearCoat * clearCoatDHRApprox( material.clearCoatRoughness, dotNL );n    #elsen          float clearCoatDHR = 0.0;n      #endifn reflectedLight.directSpecular += ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry, material.specularColor, material.specularRoughness );n reflectedLight.directDiffuse += ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );n   #ifndef STANDARDn               reflectedLight.directSpecular += irradiance * material.clearCoat * BRDF_Specular_GGX( directLight, geometry, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearCoatRoughness );n      #endifn}nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {n   reflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );n}nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 clearCoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {n    #ifndef STANDARDn               float dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );n            float dotNL = dotNV;n           float clearCoatDHR = material.clearCoat * clearCoatDHRApprox( material.clearCoatRoughness, dotNL );n    #elsen          float clearCoatDHR = 0.0;n      #endifn reflectedLight.indirectSpecular += ( 1.0 - clearCoatDHR ) * radiance * BRDF_Specular_GGX_Environment( geometry, material.specularColor, material.specularRoughness );n  #ifndef STANDARDn               reflectedLight.indirectSpecular += clearCoatRadiance * material.clearCoat * BRDF_Specular_GGX_Environment( geometry, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearCoatRoughness );n      #endifn}n#define RE_Direct                              RE_Direct_Physicaln#define RE_IndirectDiffuse           RE_IndirectDiffuse_Physicaln#define RE_IndirectSpecular         RE_IndirectSpecular_Physicaln#define Material_BlinnShininessExponent( material )   GGXRoughnessToBlinnExponent( material.specularRoughness )n#define Material_ClearCoat_BlinnShininessExponent( material )   GGXRoughnessToBlinnExponent( material.clearCoatRoughness )nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {n    return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );n}n"),
  22281.                    (n.ShaderChunk.lights_template =
  22282.                         "nGeometricContext geometry;ngeometry.position = - vViewPosition;ngeometry.normal = normal;ngeometry.viewDir = normalize( vViewPosition );nIncidentLight directLight;n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )n     PointLight pointLight;n for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {n                pointLight = pointLights[ i ];n         getPointDirectLightIrradiance( pointLight, geometry, directLight );n            #ifdef USE_SHADOWMAPn           directLight.color *= all( bvec2( pointLight.shadow, directLight.visible ) ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ] ) : 1.0;n           #endifn         RE_Direct( directLight, geometry, material, reflectedLight );n  }n#endifn#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )n   SpotLight spotLight;n   for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {n         spotLight = spotLights[ i ];n           getSpotDirectLightIrradiance( spotLight, geometry, directLight );n              #ifdef USE_SHADOWMAPn           directLight.color *= all( bvec2( spotLight.shadow, directLight.visible ) ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;n              #endifn         RE_Direct( directLight, geometry, material, reflectedLight );n  }n#endifn#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )n    DirectionalLight directionalLight;n     for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {n          directionalLight = directionalLights[ i ];n             getDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );n                #ifdef USE_SHADOWMAPn           directLight.color *= all( bvec2( directionalLight.shadow, directLight.visible ) ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;n            #endifn         RE_Direct( directLight, geometry, material, reflectedLight );n  }n#endifn#if defined( RE_IndirectDiffuse )n     vec3 irradiance = getAmbientLightIrradiance( ambientLightColor );n      #ifdef USE_LIGHTMAPn            vec3 lightMapIrradiance = texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;n         #ifndef PHYSICALLY_CORRECT_LIGHTSn                      lightMapIrradiance *= PI;n              #endifn         irradiance += lightMapIrradiance;n      #endifn #if ( NUM_HEMI_LIGHTS > 0 )n            for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {n                 irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );n         }n      #endifn #if defined( USE_ENVMAP ) && defined( PHYSICAL ) && defined( ENVMAP_TYPE_CUBE_UV )n             irradiance += getLightProbeIndirectIrradiance( geometry, 8 );n  #endifn RE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );n#endifn#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )n       vec3 radiance = getLightProbeIndirectRadiance( geometry, Material_BlinnShininessExponent( material ), 8 );n     #ifndef STANDARDn               vec3 clearCoatRadiance = getLightProbeIndirectRadiance( geometry, Material_ClearCoat_BlinnShininessExponent( material ), 8 );n  #elsen          vec3 clearCoatRadiance = vec3( 0.0 );n  #endifn         n       RE_IndirectSpecular( radiance, clearCoatRadiance, geometry, material, reflectedLight );n#endifn"),
  22283.                     (n.ShaderChunk.logdepthbuf_fragment = "#if defined(USE_LOGDEPTHBUF) && defined(USE_LOGDEPTHBUF_EXT)n        gl_FragDepthEXT = log2(vFragDepth) * logDepthBufFC * 0.5;n#endif"),
  22284.                     (n.ShaderChunk.logdepthbuf_pars_fragment = "#ifdef USE_LOGDEPTHBUFn uniform float logDepthBufFC;n   #ifdef USE_LOGDEPTHBUF_EXTn             varying float vFragDepth;n      #endifn#endifn"),
  22285.                     (n.ShaderChunk.logdepthbuf_pars_vertex = "#ifdef USE_LOGDEPTHBUFn   #ifdef USE_LOGDEPTHBUF_EXTn             varying float vFragDepth;n      #endifn uniform float logDepthBufFC;n#endif"),
  22286.                    (n.ShaderChunk.logdepthbuf_vertex =
  22287.                         "#ifdef USE_LOGDEPTHBUFn        gl_Position.z = log2(max( EPSILON, gl_Position.w + 1.0 )) * logDepthBufFC;n     #ifdef USE_LOGDEPTHBUF_EXTn             vFragDepth = 1.0 + gl_Position.w;n      #elsen          gl_Position.z = (gl_Position.z - 1.0) * gl_Position.w;n #endifn#endifn"),
  22288.                     (n.ShaderChunk.map_fragment = "#ifdef USE_MAPn      vec4 texelColor = texture2D( map, vUv );n       texelColor = mapTexelToLinear( texelColor );n   diffuseColor *= texelColor;n#endifn"),
  22289.                     (n.ShaderChunk.map_pars_fragment = "#ifdef USE_MAPn uniform sampler2D map;n#endifn"),
  22290.                    (n.ShaderChunk.map_particle_fragment =
  22291.                         "#ifdef USE_MAPn        vec4 mapTexel = texture2D( map, vec2( gl_PointCoord.x, 1.0 - gl_PointCoord.y ) * offsetRepeat.zw + offsetRepeat.xy );n  diffuseColor *= mapTexelToLinear( mapTexel );n#endifn"),
  22292.                     (n.ShaderChunk.map_particle_pars_fragment = "#ifdef USE_MAPn        uniform vec4 offsetRepeat;n     uniform sampler2D map;n#endifn"),
  22293.                     (n.ShaderChunk.metalnessmap_fragment = "float metalnessFactor = metalness;n#ifdef USE_METALNESSMAPn vec4 texelMetalness = texture2D( metalnessMap, vUv );n  metalnessFactor *= texelMetalness.r;n#endifn"),
  22294.                     (n.ShaderChunk.metalnessmap_pars_fragment = "#ifdef USE_METALNESSMAPn       uniform sampler2D metalnessMap;n#endif"),
  22295.                    (n.ShaderChunk.morphnormal_vertex =
  22296.                         "#ifdef USE_MORPHNORMALSn       objectNormal += ( morphNormal0 - normal ) * morphTargetInfluences[ 0 ];n        objectNormal += ( morphNormal1 - normal ) * morphTargetInfluences[ 1 ];n        objectNormal += ( morphNormal2 - normal ) * morphTargetInfluences[ 2 ];n        objectNormal += ( morphNormal3 - normal ) * morphTargetInfluences[ 3 ];n#endifn"),
  22297.                     (n.ShaderChunk.morphtarget_pars_vertex = "#ifdef USE_MORPHTARGETSn  #ifndef USE_MORPHNORMALSn       uniform float morphTargetInfluences[ 8 ];n      #elsen  uniform float morphTargetInfluences[ 4 ];n      #endifn#endif"),
  22298.                    (n.ShaderChunk.morphtarget_vertex =
  22299.                         "#ifdef USE_MORPHTARGETSn       transformed += ( morphTarget0 - position ) * morphTargetInfluences[ 0 ];n       transformed += ( morphTarget1 - position ) * morphTargetInfluences[ 1 ];n       transformed += ( morphTarget2 - position ) * morphTargetInfluences[ 2 ];n       transformed += ( morphTarget3 - position ) * morphTargetInfluences[ 3 ];n       #ifndef USE_MORPHNORMALSn       transformed += ( morphTarget4 - position ) * morphTargetInfluences[ 4 ];n       transformed += ( morphTarget5 - position ) * morphTargetInfluences[ 5 ];n       transformed += ( morphTarget6 - position ) * morphTargetInfluences[ 6 ];n       transformed += ( morphTarget7 - position ) * morphTargetInfluences[ 7 ];n       #endifn#endifn"),
  22300.                     (n.ShaderChunk.normal_flip = "#ifdef DOUBLE_SIDEDn  float flipNormal = ( float( gl_FrontFacing ) * 2.0 - 1.0 );n#elsen      float flipNormal = 1.0;n#endifn"),
  22301.                    (n.ShaderChunk.normal_fragment =
  22302.                         "#ifdef FLAT_SHADEDn    vec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );n  vec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );n  vec3 normal = normalize( cross( fdx, fdy ) );n#elsen    vec3 normal = normalize( vNormal ) * flipNormal;n#endifn#ifdef USE_NORMALMAPn   normal = perturbNormal2Arb( -vViewPosition, normal );n#elif defined( USE_BUMPMAP )n     normal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );n#endifn"),
  22303.                    (n.ShaderChunk.normalmap_pars_fragment =
  22304.                         "#ifdef USE_NORMALMAPn  uniform sampler2D normalMap;n   uniform vec2 normalScale;n      vec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm ) {n               vec3 q0 = dFdx( eye_pos.xyz );n         vec3 q1 = dFdy( eye_pos.xyz );n         vec2 st0 = dFdx( vUv.st );n             vec2 st1 = dFdy( vUv.st );n             vec3 S = normalize( q0 * st1.t - q1 * st0.t );n         vec3 T = normalize( -q0 * st1.s + q1 * st0.s );n                vec3 N = normalize( surf_norm );n               vec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;n               mapN.xy = normalScale * mapN.xy;n               mat3 tsn = mat3( S, T, N );n            return normalize( tsn * mapN );n        }n#endifn"),
  22305.                    (n.ShaderChunk.packing =
  22306.                         "vec3 packNormalToRGB( const in vec3 normal ) {n  return normalize( normal ) * 0.5 + 0.5;n}nvec3 unpackRGBToNormal( const in vec3 rgb ) {n  return 1.0 - 2.0 * rgb.xyz;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      vec4 r = vec4( fract( v * PackFactors ), v );n  r.yzw -= r.xyz * ShiftRight8;   return r * PackUpscale;n}nfloat unpackRGBAToDepth( const in vec4 v ) {n return dot( v, UnpackFactors );n}nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {n  return ( viewZ + near ) / ( near - far );n}nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {n  return linearClipZ * ( near - far ) - near;n}nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {n  return (( near + viewZ ) * far ) / (( far - near ) * viewZ );n}nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {n  return ( near * far ) / ( ( far - near ) * invClipZ - far );n}n"),
  22307.                     (n.ShaderChunk.premultiplied_alpha_fragment = "#ifdef PREMULTIPLIED_ALPHAn  gl_FragColor.rgb *= gl_FragColor.a;n#endifn"),
  22308.                    (n.ShaderChunk.project_vertex =
  22309.                         "#ifdef USE_SKINNINGn   vec4 mvPosition = modelViewMatrix * skinned;n#elsen     vec4 mvPosition = modelViewMatrix * vec4( transformed, 1.0 );n#endifngl_Position = projectionMatrix * mvPosition;n"),
  22310.                     (n.ShaderChunk.roughnessmap_fragment = "float roughnessFactor = roughness;n#ifdef USE_ROUGHNESSMAPn vec4 texelRoughness = texture2D( roughnessMap, vUv );n  roughnessFactor *= texelRoughness.r;n#endifn"),
  22311.                     (n.ShaderChunk.roughnessmap_pars_fragment = "#ifdef USE_ROUGHNESSMAPn       uniform sampler2D roughnessMap;n#endif"),
  22312.                    (n.ShaderChunk.shadowmap_pars_fragment =
  22313.                         "#ifdef USE_SHADOWMAPn  #if NUM_DIR_LIGHTS > 0n         uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHTS ];n              varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHTS ];n        #endifn #if NUM_SPOT_LIGHTS > 0n                uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHTS ];n            varying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHTS ];n      #endifn #if NUM_POINT_LIGHTS > 0n               uniform sampler2D pointShadowMap[ NUM_POINT_LIGHTS ];n          varying vec4 vPointShadowCoord[ NUM_POINT_LIGHTS ];n    #endifn float texture2DCompare( sampler2D depths, vec2 uv, float compare ) {n           return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );n  }n      float texture2DShadowLerp( sampler2D depths, vec2 size, vec2 uv, float compare ) {n             const vec2 offset = vec2( 0.0, 1.0 );n          vec2 texelSize = vec2( 1.0 ) / size;n           vec2 centroidUV = floor( uv * size + 0.5 ) / size;n             float lb = texture2DCompare( depths, centroidUV + texelSize * offset.xx, compare );n            float lt = texture2DCompare( depths, centroidUV + texelSize * offset.xy, compare );n            float rb = texture2DCompare( depths, centroidUV + texelSize * offset.yx, compare );n            float rt = texture2DCompare( depths, centroidUV + texelSize * offset.yy, compare );n            vec2 f = fract( uv * size + 0.5 );n             float a = mix( lb, lt, f.y );n          float b = mix( rb, rt, f.y );n          float c = mix( a, b, f.x );n            return c;n      }n      float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {n           shadowCoord.xyz /= shadowCoord.w;n              shadowCoord.z += shadowBias;n           bvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );n         bool inFrustum = all( inFrustumVec );n          bvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );n               bool frustumTest = all( frustumTestVec );n              if ( frustumTest ) {n           #if defined( SHADOWMAP_TYPE_PCF )n                      vec2 texelSize = vec2( 1.0 ) / shadowMapSize;n                  float dx0 = - texelSize.x * shadowRadius;n                      float dy0 = - texelSize.y * shadowRadius;n                      float dx1 = + texelSize.x * shadowRadius;n                      float dy1 = + texelSize.y * shadowRadius;n                      return (n                               texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +n                              texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +n                              texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +n                              texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +n                              texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +n                         texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +n                              texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +n                              texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +n                              texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )n                        ) * ( 1.0 / 9.0 );n             #elif defined( SHADOWMAP_TYPE_PCF_SOFT )n                       vec2 texelSize = vec2( 1.0 ) / shadowMapSize;n                  float dx0 = - texelSize.x * shadowRadius;n                      float dy0 = - texelSize.y * shadowRadius;n                      float dx1 = + texelSize.x * shadowRadius;n                      float dy1 = + texelSize.y * shadowRadius;n                      return (n                               texture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +n                            texture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +n                            texture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +n                            texture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +n                            texture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy, shadowCoord.z ) +n                               texture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +n                            texture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +n                            texture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +n                            texture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )n                      ) * ( 1.0 / 9.0 );n             #elsen                  return texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );n           #endifn         }n              return 1.0;n    }n      vec2 cubeToUV( vec3 v, float texelSizeY ) {n            vec3 absV = abs( v );n          float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );n                absV *= scaleToCube;n           v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );n         vec2 planar = v.xy;n            float almostATexel = 1.5 * texelSizeY;n         float almostOne = 1.0 - almostATexel;n          if ( absV.z >= almostOne ) {n                   if ( v.z > 0.0 )n                               planar.x = 4.0 - v.x;n          } else if ( absV.x >= almostOne ) {n                    float signX = sign( v.x );n                     planar.x = v.z * signX + 2.0 * signX;n          } else if ( absV.y >= almostOne ) {n                    float signY = sign( v.y );n                     planar.x = v.x + 2.0 * signY + 2.0;n                    planar.y = v.z * signY - 2.0;n          }n              return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );n     }n      float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {n              vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );n           vec3 lightToPosition = shadowCoord.xyz;n                vec3 bd3D = normalize( lightToPosition );n              float dp = ( length( lightToPosition ) - shadowBias ) / 1000.0;n                #if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT )n                        vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;n                     return (n                               texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +n                                texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +n                                texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +n                                texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +n                                texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +n                             texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +n                                texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +n                                texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +n                                texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )n                  ) * ( 1.0 / 9.0 );n             #elsen                  return texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );n               #endifn }n#endifn"),
  22314.                    (n.ShaderChunk.shadowmap_pars_vertex =
  22315.                         "#ifdef USE_SHADOWMAPn  #if NUM_DIR_LIGHTS > 0n         uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHTS ];n                varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHTS ];n        #endifn #if NUM_SPOT_LIGHTS > 0n                uniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHTS ];n              varying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHTS ];n      #endifn #if NUM_POINT_LIGHTS > 0n               uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHTS ];n            varying vec4 vPointShadowCoord[ NUM_POINT_LIGHTS ];n    #endifn#endifn"),
  22316.                    (n.ShaderChunk.shadowmap_vertex =
  22317.                         "#ifdef USE_SHADOWMAPn  #if NUM_DIR_LIGHTS > 0n for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {n          vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * worldPosition;n   }n      #endifn #if NUM_SPOT_LIGHTS > 0n        for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {n         vSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * worldPosition;n }n      #endifn #if NUM_POINT_LIGHTS > 0n       for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {n                vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * worldPosition;n       }n      #endifn#endifn"),
  22318.                    (n.ShaderChunk.shadowmask_pars_fragment =
  22319.                         "float getShadowMask() {n       float shadow = 1.0;n    #ifdef USE_SHADOWMAPn   #if NUM_DIR_LIGHTS > 0n DirectionalLight directionalLight;n     for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {n          directionalLight = directionalLights[ i ];n             shadow *= bool( directionalLight.shadow ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;n    }n      #endifn #if NUM_SPOT_LIGHTS > 0n        SpotLight spotLight;n   for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {n         spotLight = spotLights[ i ];n           shadow *= bool( spotLight.shadow ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;n      }n      #endifn #if NUM_POINT_LIGHTS > 0n       PointLight pointLight;n for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {n                pointLight = pointLights[ i ];n         shadow *= bool( pointLight.shadow ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ] ) : 1.0;n   }n      #endifn #endifn return shadow;n}n"),
  22320.                    (n.ShaderChunk.skinbase_vertex =
  22321.                         "#ifdef USE_SKINNINGn   mat4 boneMatX = getBoneMatrix( skinIndex.x );n  mat4 boneMatY = getBoneMatrix( skinIndex.y );n  mat4 boneMatZ = getBoneMatrix( skinIndex.z );n  mat4 boneMatW = getBoneMatrix( skinIndex.w );n#endif"),
  22322.                    (n.ShaderChunk.skinning_pars_vertex =
  22323.                         "#ifdef USE_SKINNINGn   uniform mat4 bindMatrix;n       uniform mat4 bindMatrixInverse;n        #ifdef BONE_TEXTUREn            uniform sampler2D boneTexture;n         uniform int boneTextureWidth;n          uniform int boneTextureHeight;n         mat4 getBoneMatrix( const in float i ) {n                       float j = i * 4.0;n                     float x = mod( j, float( boneTextureWidth ) );n                 float y = floor( j / float( boneTextureWidth ) );n                      float dx = 1.0 / float( boneTextureWidth );n                    float dy = 1.0 / float( boneTextureHeight );n                   y = dy * ( y + 0.5 );n                  vec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );n                       vec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );n                       vec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );n                       vec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );n                       mat4 bone = mat4( v1, v2, v3, v4 );n                    return bone;n           }n      #elsen          uniform mat4 boneMatrices[ MAX_BONES ];n                mat4 getBoneMatrix( const in float i ) {n                       mat4 bone = boneMatrices[ int(i) ];n                    return bone;n           }n      #endifn#endifn"),
  22324.                    (n.ShaderChunk.skinning_vertex =
  22325.                         "#ifdef USE_SKINNINGn   vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );n       vec4 skinned = vec4( 0.0 );n    skinned += boneMatX * skinVertex * skinWeight.x;n       skinned += boneMatY * skinVertex * skinWeight.y;n       skinned += boneMatZ * skinVertex * skinWeight.z;n       skinned += boneMatW * skinVertex * skinWeight.w;n       skinned  = bindMatrixInverse * skinned;n#endifn"),
  22326.                    (n.ShaderChunk.skinnormal_vertex =
  22327.                         "#ifdef USE_SKINNINGn   mat4 skinMatrix = mat4( 0.0 );n skinMatrix += skinWeight.x * boneMatX;n skinMatrix += skinWeight.y * boneMatY;n skinMatrix += skinWeight.z * boneMatZ;n skinMatrix += skinWeight.w * boneMatW;n skinMatrix  = bindMatrixInverse * skinMatrix * bindMatrix;n     objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;n#endifn"),
  22328.                     (n.ShaderChunk.specularmap_fragment = "float specularStrength;n#ifdef USE_SPECULARMAPn      vec4 texelSpecular = texture2D( specularMap, vUv );n    specularStrength = texelSpecular.r;n#elsen      specularStrength = 1.0;n#endif"),
  22329.                     (n.ShaderChunk.specularmap_pars_fragment = "#ifdef USE_SPECULARMAPn uniform sampler2D specularMap;n#endif"),
  22330.                    (n.ShaderChunk.tonemapping_fragment = "#if defined( TONE_MAPPING )n  gl_FragColor.rgb = toneMapping( gl_FragColor.rgb );n#endifn"),
  22331.                    (n.ShaderChunk.tonemapping_pars_fragment =
  22332.                        "#define saturate(a) clamp( a, 0.0, 1.0 )nuniform float toneMappingExposure;nuniform float toneMappingWhitePoint;nvec3 LinearToneMapping( vec3 color ) {n  return toneMappingExposure * color;n}nvec3 ReinhardToneMapping( vec3 color ) {n  color *= toneMappingExposure;n  return 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  color *= toneMappingExposure;n  return saturate( Uncharted2Helper( color ) / Uncharted2Helper( vec3( toneMappingWhitePoint ) ) );n}nvec3 OptimizedCineonToneMapping( vec3 color ) {n  color *= toneMappingExposure;n  color = max( vec3( 0.0 ), color - 0.004 );n  return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );n}n"),
  22333.                     (n.ShaderChunk.uv2_pars_fragment = "#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )n    varying vec2 vUv2;n#endif"),
  22334.                     (n.ShaderChunk.uv2_pars_vertex = "#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )n      attribute vec2 uv2;n    varying vec2 vUv2;n#endif"),
  22335.                     (n.ShaderChunk.uv2_vertex = "#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )n   vUv2 = uv2;n#endif"),
  22336.                    (n.ShaderChunk.uv_pars_fragment =
  22337.                         "#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )n     varying vec2 vUv;n#endif"),
  22338.                    (n.ShaderChunk.uv_pars_vertex =
  22339.                         "#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )n     varying vec2 vUv;n      uniform vec4 offsetRepeat;n#endifn"),
  22340.                    (n.ShaderChunk.uv_vertex =
  22341.                         "#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )n     vUv = uv * offsetRepeat.zw + offsetRepeat.xy;n#endif"),
  22342.                    (n.ShaderChunk.worldpos_vertex =
  22343.                         "#if defined( USE_ENVMAP ) || defined( PHONG ) || defined( PHYSICAL ) || defined( LAMBERT ) || defined ( USE_SHADOWMAP )n       #ifdef USE_SKINNINGn            vec4 worldPosition = modelMatrix * skinned;n    #elsen          vec4 worldPosition = modelMatrix * vec4( transformed, 1.0 );n   #endifn#endifn"),
  22344.                    (n.UniformsUtils = {
  22345.                        merge: function (e) {
  22346.                            for (var t = {}, i = 0; i < e.length; i++) {
  22347.                                var n = this.clone(e[i]);
  22348.                                for (var r in n) t[r] = n[r];
  22349.                            }
  22350.                            return t;
  22351.                        },
  22352.                        clone: function (e) {
  22353.                            var t = {};
  22354.                            for (var i in e) {
  22355.                                t[i] = {};
  22356.                                for (var r in e[i]) {
  22357.                                    var o = e[i][r];
  22358.                                    o instanceof n.Color || o instanceof n.Vector2 || o instanceof n.Vector3 || o instanceof n.Vector4 || o instanceof n.Matrix3 || o instanceof n.Matrix4 || o instanceof n.Texture ?
  22359.                                        (t[i][r] = o.clone()) :
  22360.                                        Array.isArray(o) ?
  22361.                                        (t[i][r] = o.slice()) :
  22362.                                        (t[i][r] = o);
  22363.                                }
  22364.                            }
  22365.                            return t;
  22366.                        },
  22367.                    }),
  22368.                    (n.UniformsLib = {
  22369.                        common: {
  22370.                            diffuse: {
  22371.                                value: new n.Color(15658734)
  22372.                            },
  22373.                            opacity: {
  22374.                                value: 1
  22375.                            },
  22376.                            map: {
  22377.                                value: null
  22378.                            },
  22379.                            offsetRepeat: {
  22380.                                value: new n.Vector4(0, 0, 1, 1)
  22381.                            },
  22382.                            specularMap: {
  22383.                                value: null
  22384.                            },
  22385.                            alphaMap: {
  22386.                                value: null
  22387.                            },
  22388.                            envMap: {
  22389.                                value: null
  22390.                            },
  22391.                            flipEnvMap: {
  22392.                                value: -1
  22393.                            },
  22394.                            reflectivity: {
  22395.                                value: 1
  22396.                            },
  22397.                            refractionRatio: {
  22398.                                value: 0.98
  22399.                            },
  22400.                        },
  22401.                        aomap: {
  22402.                            aoMap: {
  22403.                                value: null
  22404.                            },
  22405.                            aoMapIntensity: {
  22406.                                value: 1
  22407.                            }
  22408.                        },
  22409.                        lightmap: {
  22410.                            lightMap: {
  22411.                                value: null
  22412.                            },
  22413.                            lightMapIntensity: {
  22414.                                value: 1
  22415.                            }
  22416.                        },
  22417.                        emissivemap: {
  22418.                            emissiveMap: {
  22419.                                value: null
  22420.                            }
  22421.                        },
  22422.                        bumpmap: {
  22423.                            bumpMap: {
  22424.                                value: null
  22425.                            },
  22426.                            bumpScale: {
  22427.                                value: 1
  22428.                            }
  22429.                        },
  22430.                        normalmap: {
  22431.                            normalMap: {
  22432.                                value: null
  22433.                            },
  22434.                            normalScale: {
  22435.                                value: new n.Vector2(1, 1)
  22436.                            }
  22437.                        },
  22438.                        displacementmap: {
  22439.                            displacementMap: {
  22440.                                value: null
  22441.                            },
  22442.                            displacementScale: {
  22443.                                value: 1
  22444.                            },
  22445.                            displacementBias: {
  22446.                                value: 0
  22447.                            }
  22448.                        },
  22449.                        roughnessmap: {
  22450.                            roughnessMap: {
  22451.                                value: null
  22452.                            }
  22453.                        },
  22454.                        metalnessmap: {
  22455.                            metalnessMap: {
  22456.                                value: null
  22457.                            }
  22458.                        },
  22459.                        fog: {
  22460.                            fogDensity: {
  22461.                                value: 25e-5
  22462.                            },
  22463.                            fogNear: {
  22464.                                value: 1
  22465.                            },
  22466.                            fogFar: {
  22467.                                value: 2e3
  22468.                            },
  22469.                            fogColor: {
  22470.                                value: new n.Color(16777215)
  22471.                            }
  22472.                        },
  22473.                        lights: {
  22474.                            ambientLightColor: {
  22475.                                value: []
  22476.                            },
  22477.                            directionalLights: {
  22478.                                value: [],
  22479.                                properties: {
  22480.                                    direction: {},
  22481.                                    color: {},
  22482.                                    shadow: {},
  22483.                                    shadowBias: {},
  22484.                                    shadowRadius: {},
  22485.                                    shadowMapSize: {}
  22486.                                }
  22487.                            },
  22488.                            directionalShadowMap: {
  22489.                                value: []
  22490.                            },
  22491.                            directionalShadowMatrix: {
  22492.                                value: []
  22493.                            },
  22494.                            spotLights: {
  22495.                                value: [],
  22496.                                properties: {
  22497.                                    color: {},
  22498.                                    position: {},
  22499.                                    direction: {},
  22500.                                    distance: {},
  22501.                                    coneCos: {},
  22502.                                    penumbraCos: {},
  22503.                                    decay: {},
  22504.                                    shadow: {},
  22505.                                    shadowBias: {},
  22506.                                    shadowRadius: {},
  22507.                                    shadowMapSize: {}
  22508.                                }
  22509.                            },
  22510.                            spotShadowMap: {
  22511.                                value: []
  22512.                            },
  22513.                            spotShadowMatrix: {
  22514.                                value: []
  22515.                            },
  22516.                            pointLights: {
  22517.                                value: [],
  22518.                                properties: {
  22519.                                    color: {},
  22520.                                    position: {},
  22521.                                    decay: {},
  22522.                                    distance: {},
  22523.                                    shadow: {},
  22524.                                    shadowBias: {},
  22525.                                    shadowRadius: {},
  22526.                                    shadowMapSize: {}
  22527.                                }
  22528.                            },
  22529.                            pointShadowMap: {
  22530.                                value: []
  22531.                            },
  22532.                            pointShadowMatrix: {
  22533.                                value: []
  22534.                            },
  22535.                            hemisphereLights: {
  22536.                                value: [],
  22537.                                properties: {
  22538.                                    direction: {},
  22539.                                    skyColor: {},
  22540.                                    groundColor: {}
  22541.                                }
  22542.                            },
  22543.                        },
  22544.                        points: {
  22545.                            diffuse: {
  22546.                                value: new n.Color(15658734)
  22547.                            },
  22548.                            opacity: {
  22549.                                value: 1
  22550.                            },
  22551.                            size: {
  22552.                                value: 1
  22553.                            },
  22554.                            scale: {
  22555.                                value: 1
  22556.                            },
  22557.                            map: {
  22558.                                value: null
  22559.                            },
  22560.                            offsetRepeat: {
  22561.                                value: new n.Vector4(0, 0, 1, 1)
  22562.                            }
  22563.                        },
  22564.                    }),
  22565.                    (n.ShaderChunk.cube_frag =
  22566.                         "uniform samplerCube tCube;nuniform float tFlip;nuniform float opacity;nvarying vec3 vWorldPosition;n#include <common>nvoid main() {n   gl_FragColor = textureCube( tCube, vec3( tFlip * vWorldPosition.x, vWorldPosition.yz ) );n      gl_FragColor.a *= opacity;n}n"),
  22567.                     (n.ShaderChunk.cube_vert = "varying vec3 vWorldPosition;n#include <common>nvoid main() {n   vWorldPosition = transformDirection( position, modelMatrix );n  #include <begin_vertex>n        #include <project_vertex>n}n"),
  22568.                    (n.ShaderChunk.depth_frag =
  22569.                         "#if DEPTH_PACKING == 3200n     uniform float opacity;n#endifn#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>nvoid main() {n      #include <clipping_planes_fragment>n    vec4 diffuseColor = vec4( 1.0 );n       #if DEPTH_PACKING == 3200n              diffuseColor.a = opacity;n      #endifn #include <map_fragment>n        #include <alphamap_fragment>n   #include <alphatest_fragment>n  #include <logdepthbuf_fragment>n        #if DEPTH_PACKING == 3200n              gl_FragColor = vec4( vec3( gl_FragCoord.z ), opacity );n        #elif DEPTH_PACKING == 3201n            gl_FragColor = packDepthToRGBA( gl_FragCoord.z );n      #endifn}n"),
  22570.                    (n.ShaderChunk.depth_vert =
  22571.                         "#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 #include <uv_vertex>n   #include <skinbase_vertex>n     #include <begin_vertex>n        #include <displacementmap_vertex>n      #include <morphtarget_vertex>n  #include <skinning_vertex>n     #include <project_vertex>n      #include <logdepthbuf_vertex>n  #include <clipping_planes_vertex>n}n"),
  22572.                    (n.ShaderChunk.distanceRGBA_frag =
  22573.                         "uniform vec3 lightPos;nvarying vec4 vWorldPosition;n#include <common>n#include <packing>n#include <clipping_planes_pars_fragment>nvoid main () {n      #include <clipping_planes_fragment>n    gl_FragColor = packDepthToRGBA( length( vWorldPosition.xyz - lightPos.xyz ) / 1000.0 );n}n"),
  22574.                    (n.ShaderChunk.distanceRGBA_vert =
  22575.                         "varying vec4 vWorldPosition;n#include <common>n#include <morphtarget_pars_vertex>n#include <skinning_pars_vertex>n#include <clipping_planes_pars_vertex>nvoid main() {n        #include <skinbase_vertex>n     #include <begin_vertex>n        #include <morphtarget_vertex>n  #include <skinning_vertex>n     #include <project_vertex>n      #include <worldpos_vertex>n     #include <clipping_planes_vertex>n      vWorldPosition = worldPosition;n}n"),
  22576.                    (n.ShaderChunk.equirect_frag =
  22577.                         "uniform sampler2D tEquirect;nuniform float tFlip;nvarying vec3 vWorldPosition;n#include <common>nvoid main() {n        vec3 direction = normalize( vWorldPosition );n  vec2 sampleUV;n sampleUV.y = saturate( tFlip * direction.y * -0.5 + 0.5 );n     sampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;n  gl_FragColor = texture2D( tEquirect, sampleUV );n}n"),
  22578.                     (n.ShaderChunk.equirect_vert = "varying vec3 vWorldPosition;n#include <common>nvoid main() {n       vWorldPosition = transformDirection( position, modelMatrix );n  #include <begin_vertex>n        #include <project_vertex>n}n"),
  22579.                    (n.ShaderChunk.linedashed_frag =
  22580.                         "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  #include <clipping_planes_fragment>n    if ( mod( vLineDistance, totalSize ) > dashSize ) {n            discard;n       }n      vec3 outgoingLight = vec3( 0.0 );n      vec4 diffuseColor = vec4( diffuse, opacity );n  #include <logdepthbuf_fragment>n        #include <color_fragment>n      outgoingLight = diffuseColor.rgb;n      gl_FragColor = vec4( outgoingLight, diffuseColor.a );n  #include <premultiplied_alpha_fragment>n        #include <tonemapping_fragment>n        #include <encodings_fragment>n  #include <fog_fragment>n}n"),
  22581.                    (n.ShaderChunk.linedashed_vert =
  22582.                         "uniform float scale;nattribute float lineDistance;nvarying float vLineDistance;n#include <common>n#include <color_pars_vertex>n#include <logdepthbuf_pars_vertex>n#include <clipping_planes_pars_vertex>nvoid main() {n        #include <color_vertex>n        vLineDistance = scale * lineDistance;n  vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );n     gl_Position = projectionMatrix * mvPosition;n   #include <logdepthbuf_vertex>n  #include <clipping_planes_vertex>n}n"),
  22583.                    (n.ShaderChunk.meshbasic_frag =
  22584.                         "uniform vec3 diffuse;nuniform float opacity;n#ifndef FLAT_SHADEDn      varying vec3 vNormal;n#endifn#include <common>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 <envmap_pars_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     #include <clipping_planes_fragment>n    vec4 diffuseColor = vec4( diffuse, opacity );n  #include <logdepthbuf_fragment>n        #include <map_fragment>n        #include <color_fragment>n      #include <alphamap_fragment>n   #include <alphatest_fragment>n  #include <specularmap_fragment>n        ReflectedLight reflectedLight;n reflectedLight.directDiffuse = vec3( 0.0 );n    reflectedLight.directSpecular = vec3( 0.0 );n   reflectedLight.indirectDiffuse = diffuseColor.rgb;n     reflectedLight.indirectSpecular = vec3( 0.0 );n #include <aomap_fragment>n      vec3 outgoingLight = reflectedLight.indirectDiffuse;n   #include <normal_flip>n #include <envmap_fragment>n     gl_FragColor = vec4( outgoingLight, diffuseColor.a );n  #include <premultiplied_alpha_fragment>n        #include <tonemapping_fragment>n        #include <encodings_fragment>n  #include <fog_fragment>n}n"),
  22585.                    (n.ShaderChunk.meshbasic_vert =
  22586.                         "#include <common>n#include <uv_pars_vertex>n#include <uv2_pars_vertex>n#include <envmap_pars_vertex>n#include <color_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  #include <uv_vertex>n   #include <uv2_vertex>n  #include <color_vertex>n        #include <skinbase_vertex>n     #ifdef USE_ENVMAPn      #include <beginnormal_vertex>n  #include <morphnormal_vertex>n  #include <skinnormal_vertex>n   #include <defaultnormal_vertex>n        #endifn #include <begin_vertex>n        #include <morphtarget_vertex>n  #include <skinning_vertex>n     #include <project_vertex>n      #include <logdepthbuf_vertex>n  #include <worldpos_vertex>n     #include <clipping_planes_vertex>n      #include <envmap_vertex>n}n"),
  22587.                    (n.ShaderChunk.meshlambert_frag =
  22588.                         "uniform vec3 diffuse;nuniform vec3 emissive;nuniform float opacity;nvarying vec3 vLightFront;n#ifdef DOUBLE_SIDEDn     varying vec3 vLightBack;n#endifn#include <common>n#include <packing>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_pars_fragment>n#include <bsdfs>n#include <lights_pars>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 #include <clipping_planes_fragment>n    vec4 diffuseColor = vec4( diffuse, opacity );n  ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );n  vec3 totalEmissiveRadiance = emissive;n #include <logdepthbuf_fragment>n        #include <map_fragment>n        #include <color_fragment>n      #include <alphamap_fragment>n   #include <alphatest_fragment>n  #include <specularmap_fragment>n        #include <emissivemap_fragment>n        reflectedLight.indirectDiffuse = getAmbientLightIrradiance( ambientLightColor );n       #include <lightmap_fragment>n   reflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );n    #ifdef DOUBLE_SIDEDn            reflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;n  #elsen          reflectedLight.directDiffuse = vLightFront;n    #endifn reflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();n    #include <aomap_fragment>n      vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;n    #include <normal_flip>n #include <envmap_fragment>n     gl_FragColor = vec4( outgoingLight, diffuseColor.a );n  #include <premultiplied_alpha_fragment>n        #include <tonemapping_fragment>n        #include <encodings_fragment>n  #include <fog_fragment>n}n"),
  22589.                    (n.ShaderChunk.meshlambert_vert =
  22590.                         "#define LAMBERTnvarying vec3 vLightFront;n#ifdef DOUBLE_SIDEDn varying vec3 vLightBack;n#endifn#include <common>n#include <uv_pars_vertex>n#include <uv2_pars_vertex>n#include <envmap_pars_vertex>n#include <bsdfs>n#include <lights_pars>n#include <color_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  #include <uv_vertex>n   #include <uv2_vertex>n  #include <color_vertex>n        #include <beginnormal_vertex>n  #include <morphnormal_vertex>n  #include <skinbase_vertex>n     #include <skinnormal_vertex>n   #include <defaultnormal_vertex>n        #include <begin_vertex>n        #include <morphtarget_vertex>n  #include <skinning_vertex>n     #include <project_vertex>n      #include <logdepthbuf_vertex>n  #include <clipping_planes_vertex>n      #include <worldpos_vertex>n     #include <envmap_vertex>n       #include <lights_lambert_vertex>n       #include <shadowmap_vertex>n}n"),
  22591.                    (n.ShaderChunk.meshphong_frag =
  22592.                         "#define PHONGnuniform vec3 diffuse;nuniform vec3 emissive;nuniform vec3 specular;nuniform float shininess;nuniform float opacity;n#include <common>n#include <packing>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_pars_fragment>n#include <fog_pars_fragment>n#include <bsdfs>n#include <lights_pars>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        #include <clipping_planes_fragment>n    vec4 diffuseColor = vec4( diffuse, opacity );n  ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );n  vec3 totalEmissiveRadiance = emissive;n #include <logdepthbuf_fragment>n        #include <map_fragment>n        #include <color_fragment>n      #include <alphamap_fragment>n   #include <alphatest_fragment>n  #include <specularmap_fragment>n        #include <normal_flip>n #include <normal_fragment>n     #include <emissivemap_fragment>n        #include <lights_phong_fragment>n       #include <lights_template>n     #include <aomap_fragment>n      vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;n  #include <envmap_fragment>n     gl_FragColor = vec4( outgoingLight, diffuseColor.a );n  #include <premultiplied_alpha_fragment>n        #include <tonemapping_fragment>n        #include <encodings_fragment>n  #include <fog_fragment>n}n"),
  22593.                    (n.ShaderChunk.meshphong_vert =
  22594.                         "#define PHONGnvarying vec3 vViewPosition;n#ifndef FLAT_SHADEDn varying vec3 vNormal;n#endifn#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 <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      #include <uv_vertex>n   #include <uv2_vertex>n  #include <color_vertex>n        #include <beginnormal_vertex>n  #include <morphnormal_vertex>n  #include <skinbase_vertex>n     #include <skinnormal_vertex>n   #include <defaultnormal_vertex>n#ifndef FLAT_SHADEDn    vNormal = normalize( transformedNormal );n#endifn       #include <begin_vertex>n        #include <displacementmap_vertex>n      #include <morphtarget_vertex>n  #include <skinning_vertex>n     #include <project_vertex>n      #include <logdepthbuf_vertex>n  #include <clipping_planes_vertex>n      vViewPosition = - mvPosition.xyz;n      #include <worldpos_vertex>n     #include <envmap_vertex>n       #include <shadowmap_vertex>n}n"),
  22595.                    (n.ShaderChunk.meshphysical_frag =
  22596.                         "#define PHYSICALnuniform vec3 diffuse;nuniform vec3 emissive;nuniform float roughness;nuniform float metalness;nuniform float opacity;n#ifndef STANDARDn       uniform float clearCoat;n       uniform float clearCoatRoughness;n#endifnuniform float envMapIntensity;nvarying vec3 vViewPosition;n#ifndef FLAT_SHADEDn        varying vec3 vNormal;n#endifn#include <common>n#include <packing>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_pars_fragment>n#include <fog_pars_fragment>n#include <bsdfs>n#include <cube_uv_reflection_fragment>n#include <lights_pars>n#include <lights_physical_pars_fragment>n#include <shadowmap_pars_fragment>n#include <bumpmap_pars_fragment>n#include <normalmap_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     #include <clipping_planes_fragment>n    vec4 diffuseColor = vec4( diffuse, opacity );n  ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );n  vec3 totalEmissiveRadiance = emissive;n #include <logdepthbuf_fragment>n        #include <map_fragment>n        #include <color_fragment>n      #include <alphamap_fragment>n   #include <alphatest_fragment>n  #include <specularmap_fragment>n        #include <roughnessmap_fragment>n       #include <metalnessmap_fragment>n       #include <normal_flip>n #include <normal_fragment>n     #include <emissivemap_fragment>n        #include <lights_physical_fragment>n    #include <lights_template>n     #include <aomap_fragment>n      vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;n  gl_FragColor = vec4( outgoingLight, diffuseColor.a );n  #include <premultiplied_alpha_fragment>n        #include <tonemapping_fragment>n        #include <encodings_fragment>n  #include <fog_fragment>n}n"),
  22597.                    (n.ShaderChunk.meshphysical_vert =
  22598.                         "#define PHYSICALnvarying vec3 vViewPosition;n#ifndef FLAT_SHADEDn      varying vec3 vNormal;n#endifn#include <common>n#include <uv_pars_vertex>n#include <uv2_pars_vertex>n#include <displacementmap_pars_vertex>n#include <color_pars_vertex>n#include <morphtarget_pars_vertex>n#include <skinning_pars_vertex>n#include <shadowmap_pars_vertex>n#include <specularmap_pars_fragment>n#include <logdepthbuf_pars_vertex>n#include <clipping_planes_pars_vertex>nvoid main() {n       #include <uv_vertex>n   #include <uv2_vertex>n  #include <color_vertex>n        #include <beginnormal_vertex>n  #include <morphnormal_vertex>n  #include <skinbase_vertex>n     #include <skinnormal_vertex>n   #include <defaultnormal_vertex>n#ifndef FLAT_SHADEDn    vNormal = normalize( transformedNormal );n#endifn       #include <begin_vertex>n        #include <displacementmap_vertex>n      #include <morphtarget_vertex>n  #include <skinning_vertex>n     #include <project_vertex>n      #include <logdepthbuf_vertex>n  #include <clipping_planes_vertex>n      vViewPosition = - mvPosition.xyz;n      #include <worldpos_vertex>n     #include <shadowmap_vertex>n}n"),
  22599.                    (n.ShaderChunk.normal_frag =
  22600.                         "uniform float opacity;nvarying vec3 vNormal;n#include <common>n#include <packing>n#include <logdepthbuf_pars_fragment>n#include <clipping_planes_pars_fragment>nvoid main() {n #include <clipping_planes_fragment>n    gl_FragColor = vec4( packNormalToRGB( vNormal ), opacity );n    #include <logdepthbuf_fragment>n}n"),
  22601.                    (n.ShaderChunk.normal_vert =
  22602.                         "varying vec3 vNormal;n#include <common>n#include <morphtarget_pars_vertex>n#include <logdepthbuf_pars_vertex>n#include <clipping_planes_pars_vertex>nvoid main() {n    vNormal = normalize( normalMatrix * normal );n  #include <begin_vertex>n        #include <morphtarget_vertex>n  #include <project_vertex>n      #include <logdepthbuf_vertex>n  #include <clipping_planes_vertex>n}n"),
  22603.                    (n.ShaderChunk.points_frag =
  22604.                         "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 <shadowmap_pars_fragment>n#include <logdepthbuf_pars_fragment>n#include <clipping_planes_pars_fragment>nvoid main() {n       #include <clipping_planes_fragment>n    vec3 outgoingLight = vec3( 0.0 );n      vec4 diffuseColor = vec4( diffuse, opacity );n  #include <logdepthbuf_fragment>n        #include <map_particle_fragment>n       #include <color_fragment>n      #include <alphatest_fragment>n  outgoingLight = diffuseColor.rgb;n      gl_FragColor = vec4( outgoingLight, diffuseColor.a );n  #include <premultiplied_alpha_fragment>n        #include <tonemapping_fragment>n        #include <encodings_fragment>n  #include <fog_fragment>n}n"),
  22605.                    (n.ShaderChunk.points_vert =
  22606.                         "uniform float size;nuniform float scale;n#include <common>n#include <color_pars_vertex>n#include <shadowmap_pars_vertex>n#include <logdepthbuf_pars_vertex>n#include <clipping_planes_pars_vertex>nvoid main() {n      #include <color_vertex>n        #include <begin_vertex>n        #include <project_vertex>n      #ifdef USE_SIZEATTENUATIONn             gl_PointSize = size * ( scale / - mvPosition.z );n      #elsen          gl_PointSize = size;n   #endifn #include <logdepthbuf_vertex>n  #include <clipping_planes_vertex>n      #include <worldpos_vertex>n     #include <shadowmap_vertex>n}n"),
  22607.                    (n.ShaderChunk.shadow_frag =
  22608.                         "uniform float opacity;n#include <common>n#include <packing>n#include <bsdfs>n#include <lights_pars>n#include <shadowmap_pars_fragment>n#include <shadowmask_pars_fragment>nvoid main() {n      gl_FragColor = vec4( 0.0, 0.0, 0.0, opacity * ( 1.0  - getShadowMask() ) );n}n"),
  22609.                     (n.ShaderChunk.shadow_vert = "#include <shadowmap_pars_vertex>nvoid main() {n       #include <begin_vertex>n        #include <project_vertex>n      #include <worldpos_vertex>n     #include <shadowmap_vertex>n}n"),
  22610.                    (n.ShaderLib = {
  22611.                        basic: {
  22612.                            uniforms: n.UniformsUtils.merge([n.UniformsLib.common, n.UniformsLib.aomap, n.UniformsLib.fog]),
  22613.                            vertexShader: n.ShaderChunk.meshbasic_vert,
  22614.                            fragmentShader: n.ShaderChunk.meshbasic_frag
  22615.                        },
  22616.                        lambert: {
  22617.                            uniforms: n.UniformsUtils.merge([n.UniformsLib.common, n.UniformsLib.aomap, n.UniformsLib.lightmap, n.UniformsLib.emissivemap, n.UniformsLib.fog, n.UniformsLib.lights, {
  22618.                                emissive: {
  22619.                                    value: new n.Color(0)
  22620.                                }
  22621.                            }]),
  22622.                            vertexShader: n.ShaderChunk.meshlambert_vert,
  22623.                            fragmentShader: n.ShaderChunk.meshlambert_frag,
  22624.                        },
  22625.                        phong: {
  22626.                            uniforms: n.UniformsUtils.merge([
  22627.                                n.UniformsLib.common,
  22628.                                n.UniformsLib.aomap,
  22629.                                n.UniformsLib.lightmap,
  22630.                                n.UniformsLib.emissivemap,
  22631.                                n.UniformsLib.bumpmap,
  22632.                                n.UniformsLib.normalmap,
  22633.                                n.UniformsLib.displacementmap,
  22634.                                n.UniformsLib.fog,
  22635.                                n.UniformsLib.lights,
  22636.                                {
  22637.                                    emissive: {
  22638.                                        value: new n.Color(0)
  22639.                                    },
  22640.                                    specular: {
  22641.                                        value: new n.Color(1118481)
  22642.                                    },
  22643.                                    shininess: {
  22644.                                        value: 30
  22645.                                    }
  22646.                                },
  22647.                            ]),
  22648.                            vertexShader: n.ShaderChunk.meshphong_vert,
  22649.                            fragmentShader: n.ShaderChunk.meshphong_frag,
  22650.                        },
  22651.                        standard: {
  22652.                            uniforms: n.UniformsUtils.merge([
  22653.                                n.UniformsLib.common,
  22654.                                n.UniformsLib.aomap,
  22655.                                n.UniformsLib.lightmap,
  22656.                                n.UniformsLib.emissivemap,
  22657.                                n.UniformsLib.bumpmap,
  22658.                                n.UniformsLib.normalmap,
  22659.                                n.UniformsLib.displacementmap,
  22660.                                n.UniformsLib.roughnessmap,
  22661.                                n.UniformsLib.metalnessmap,
  22662.                                n.UniformsLib.fog,
  22663.                                n.UniformsLib.lights,
  22664.                                {
  22665.                                    emissive: {
  22666.                                        value: new n.Color(0)
  22667.                                    },
  22668.                                    roughness: {
  22669.                                        value: 0.5
  22670.                                    },
  22671.                                    metalness: {
  22672.                                        value: 0
  22673.                                    },
  22674.                                    envMapIntensity: {
  22675.                                        value: 1
  22676.                                    }
  22677.                                },
  22678.                            ]),
  22679.                            vertexShader: n.ShaderChunk.meshphysical_vert,
  22680.                            fragmentShader: n.ShaderChunk.meshphysical_frag,
  22681.                        },
  22682.                        points: {
  22683.                            uniforms: n.UniformsUtils.merge([n.UniformsLib.points, n.UniformsLib.fog]),
  22684.                            vertexShader: n.ShaderChunk.points_vert,
  22685.                            fragmentShader: n.ShaderChunk.points_frag
  22686.                        },
  22687.                        dashed: {
  22688.                            uniforms: n.UniformsUtils.merge([n.UniformsLib.common, n.UniformsLib.fog, {
  22689.                                scale: {
  22690.                                    value: 1
  22691.                                },
  22692.                                dashSize: {
  22693.                                    value: 1
  22694.                                },
  22695.                                totalSize: {
  22696.                                    value: 2
  22697.                                }
  22698.                            }]),
  22699.                            vertexShader: n.ShaderChunk.linedashed_vert,
  22700.                            fragmentShader: n.ShaderChunk.linedashed_frag,
  22701.                        },
  22702.                        depth: {
  22703.                            uniforms: n.UniformsUtils.merge([n.UniformsLib.common, n.UniformsLib.displacementmap]),
  22704.                            vertexShader: n.ShaderChunk.depth_vert,
  22705.                            fragmentShader: n.ShaderChunk.depth_frag
  22706.                        },
  22707.                        normal: {
  22708.                            uniforms: {
  22709.                                opacity: {
  22710.                                    value: 1
  22711.                                }
  22712.                            },
  22713.                            vertexShader: n.ShaderChunk.normal_vert,
  22714.                            fragmentShader: n.ShaderChunk.normal_frag
  22715.                        },
  22716.                        cube: {
  22717.                            uniforms: {
  22718.                                tCube: {
  22719.                                    value: null
  22720.                                },
  22721.                                tFlip: {
  22722.                                    value: -1
  22723.                                },
  22724.                                opacity: {
  22725.                                    value: 1
  22726.                                }
  22727.                            },
  22728.                            vertexShader: n.ShaderChunk.cube_vert,
  22729.                            fragmentShader: n.ShaderChunk.cube_frag
  22730.                        },
  22731.                        equirect: {
  22732.                            uniforms: {
  22733.                                tEquirect: {
  22734.                                    value: null
  22735.                                },
  22736.                                tFlip: {
  22737.                                    value: -1
  22738.                                }
  22739.                            },
  22740.                            vertexShader: n.ShaderChunk.equirect_vert,
  22741.                            fragmentShader: n.ShaderChunk.equirect_frag
  22742.                        },
  22743.                        distanceRGBA: {
  22744.                            uniforms: {
  22745.                                lightPos: {
  22746.                                    value: new n.Vector3()
  22747.                                }
  22748.                            },
  22749.                            vertexShader: n.ShaderChunk.distanceRGBA_vert,
  22750.                            fragmentShader: n.ShaderChunk.distanceRGBA_frag
  22751.                        },
  22752.                    }),
  22753.                    (n.ShaderLib.physical = {
  22754.                        uniforms: n.UniformsUtils.merge([n.ShaderLib.standard.uniforms, {
  22755.                            clearCoat: {
  22756.                                value: 0
  22757.                            },
  22758.                            clearCoatRoughness: {
  22759.                                value: 0
  22760.                            }
  22761.                        }]),
  22762.                        vertexShader: n.ShaderChunk.meshphysical_vert,
  22763.                        fragmentShader: n.ShaderChunk.meshphysical_frag,
  22764.                    }),
  22765.                    (n.WebGLRenderer = function (e) {
  22766.                        function t() {
  22767.                            return null === te ? pe : 1;
  22768.                        }
  22769.  
  22770.                        function i(e, t, i, n) {
  22771.                            z === !0 && ((e *= n), (t *= n), (i *= n)), Oe.clearColor(e, t, i, n);
  22772.                        }
  22773.  
  22774.                        function r() {
  22775.                            Oe.init(), Oe.scissor(ae.copy(me).multiplyScalar(pe)), Oe.viewport(le.copy(ge).multiplyScalar(pe)), i(ue.r, ue.g, ue.b, he);
  22776.                        }
  22777.  
  22778.                        function o() {
  22779.                            (ee = null), (oe = null), (re = ""), (ne = -1), Oe.reset();
  22780.                        }
  22781.  
  22782.                        function a(e) {
  22783.                            e.preventDefault(), o(), r(), ke.clear();
  22784.                        }
  22785.  
  22786.                        function s(e) {
  22787.                            var t = e.target;
  22788.                            t.removeEventListener("dispose", s), l(t);
  22789.                        }
  22790.  
  22791.                        function l(e) {
  22792.                            c(e), ke["delete"](e);
  22793.                        }
  22794.  
  22795.                        function c(e) {
  22796.                            var t = ke.get(e).program;
  22797.                            (e.program = void 0), void 0 !== t && Ne.releaseProgram(t);
  22798.                        }
  22799.  
  22800.                        function u(e, t, i, r) {
  22801.                            var o;
  22802.                            if (i instanceof n.InstancedBufferGeometry && ((o = Le.get("ANGLE_instanced_arrays")), null === o))
  22803.                                return void console.error("THREE.WebGLRenderer.setupVertexAttributes: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");
  22804.                            void 0 === r && (r = 0), Oe.initAttributes();
  22805.                            var a = i.attributes,
  22806.                                s = t.getAttributes(),
  22807.                                l = e.defaultAttributeValues;
  22808.                            for (var c in s) {
  22809.                                var u = s[c];
  22810.                                if (u >= 0) {
  22811.                                    var h = a[c];
  22812.                                    if (void 0 !== h) {
  22813.                                        var d = Ae.FLOAT,
  22814.                                            f = h.array,
  22815.                                            p = h.normalized;
  22816.                                        f instanceof Float32Array
  22817.                                            ?
  22818.                                            (d = Ae.FLOAT) :
  22819.                                            f instanceof Float64Array ?
  22820.                                            console.warn("Unsupported data buffer format: Float64Array") :
  22821.                                            f instanceof Uint16Array ?
  22822.                                            (d = Ae.UNSIGNED_SHORT) :
  22823.                                            f instanceof Int16Array ?
  22824.                                            (d = Ae.SHORT) :
  22825.                                            f instanceof Uint32Array ?
  22826.                                            (d = Ae.UNSIGNED_INT) :
  22827.                                            f instanceof Int32Array ?
  22828.                                            (d = Ae.INT) :
  22829.                                            f instanceof Int8Array ?
  22830.                                            (d = Ae.BYTE) :
  22831.                                            f instanceof Uint8Array && (d = Ae.UNSIGNED_BYTE);
  22832.                                        var m = h.itemSize,
  22833.                                            v = Ie.getAttributeBuffer(h);
  22834.                                        if (h instanceof n.InterleavedBufferAttribute) {
  22835.                                            var g = h.data,
  22836.                                                y = g.stride,
  22837.                                                _ = h.offset;
  22838.                                            g instanceof n.InstancedInterleavedBuffer ?
  22839.                                                (Oe.enableAttributeAndDivisor(u, g.meshPerAttribute, o), void 0 === i.maxInstancedCount && (i.maxInstancedCount = g.meshPerAttribute * g.count)) :
  22840.                                                Oe.enableAttribute(u),
  22841.                                                Ae.bindBuffer(Ae.ARRAY_BUFFER, v),
  22842.                                                Ae.vertexAttribPointer(u, m, d, p, y * g.array.BYTES_PER_ELEMENT, (r * y + _) * g.array.BYTES_PER_ELEMENT);
  22843.                                        } else
  22844.                                            h instanceof n.InstancedBufferAttribute ?
  22845.                                            (Oe.enableAttributeAndDivisor(u, h.meshPerAttribute, o), void 0 === i.maxInstancedCount && (i.maxInstancedCount = h.meshPerAttribute * h.count)) :
  22846.                                            Oe.enableAttribute(u),
  22847.                                            Ae.bindBuffer(Ae.ARRAY_BUFFER, v),
  22848.                                            Ae.vertexAttribPointer(u, m, d, p, 0, r * m * h.array.BYTES_PER_ELEMENT);
  22849.                                    } else if (void 0 !== l) {
  22850.                                        var b = l[c];
  22851.                                        if (void 0 !== b)
  22852.                                            switch (b.length) {
  22853.                                            case 2:
  22854.                                                Ae.vertexAttrib2fv(u, b);
  22855.                                                break;
  22856.                                            case 3:
  22857.                                                Ae.vertexAttrib3fv(u, b);
  22858.                                                break;
  22859.                                            case 4:
  22860.                                                Ae.vertexAttrib4fv(u, b);
  22861.                                                break;
  22862.                                            default:
  22863.                                                Ae.vertexAttrib1fv(u, b);
  22864.                                            }
  22865.                                    }
  22866.                                }
  22867.                            }
  22868.                            Oe.disableUnusedAttributes();
  22869.                        }
  22870.  
  22871.                        function h(e, t) {
  22872.                            return Math.abs(t[0]) - Math.abs(e[0]);
  22873.                        }
  22874.  
  22875.                        function d(e, t) {
  22876.                            return e.object.renderOrder !== t.object.renderOrder ?
  22877.                                e.object.renderOrder - t.object.renderOrder :
  22878.                                e.material.program && t.material.program && e.material.program !== t.material.program ?
  22879.                                e.material.program.id - t.material.program.id :
  22880.                                e.material.id !== t.material.id ?
  22881.                                e.material.id - t.material.id :
  22882.                                e.z !== t.z ?
  22883.                                e.z - t.z :
  22884.                                e.id - t.id;
  22885.                        }
  22886.  
  22887.                        function f(e, t) {
  22888.                            return e.object.renderOrder !== t.object.renderOrder ? e.object.renderOrder - t.object.renderOrder : e.z !== t.z ? t.z - e.z : e.id - t.id;
  22889.                        }
  22890.  
  22891.                        function p(e, t, i, n, r) {
  22892.                            var o, a;
  22893.                            i.transparent ? ((o = Y), (a = ++q)) : ((o = W), (a = ++X));
  22894.                            var s = o[a];
  22895.                            void 0 !== s ? ((s.id = e.id), (s.object = e), (s.geometry = t), (s.material = i), (s.z = Te.z), (s.group = r)) : ((s = {
  22896.                                id: e.id,
  22897.                                object: e,
  22898.                                geometry: t,
  22899.                                material: i,
  22900.                                z: Te.z,
  22901.                                group: r
  22902.                            }), o.push(s));
  22903.                        }
  22904.  
  22905.                        function m(e) {
  22906.                            var t = e.geometry;
  22907.                            return null === t.boundingSphere && t.computeBoundingSphere(), we.copy(t.boundingSphere).applyMatrix4(e.matrixWorld), g(we);
  22908.                        }
  22909.  
  22910.                        function v(e) {
  22911.                            return we.center.set(0, 0, 0), (we.radius = 0.7071067811865476), we.applyMatrix4(e.matrixWorld), g(we);
  22912.                        }
  22913.  
  22914.                        function g(e) {
  22915.                            if (!ye.intersectsSphere(e)) return !1;
  22916.                            var t = _e.numPlanes;
  22917.                            if (0 === t) return !0;
  22918.                            var i = J.clippingPlanes,
  22919.                                n = e.center,
  22920.                                r = -e.radius,
  22921.                                o = 0;
  22922.                            do
  22923.                                if (i[o].distanceToPoint(n) < r) return !1;
  22924.                            while (++o !== t);
  22925.                            return !0;
  22926.                        }
  22927.  
  22928.                        function y(e, t) {
  22929.                            if (e.visible !== !1) {
  22930.                                if (e.layers.test(t.layers))
  22931.                                    if (e instanceof n.Light) H.push(e);
  22932.                                    else if (e instanceof n.Sprite)(e.frustumCulled === !1 || v(e) === !0) && K.push(e);
  22933.                                else if (e instanceof n.LensFlare) Q.push(e);
  22934.                                else if (e instanceof n.ImmediateRenderObject) J.sortObjects === !0 && (Te.setFromMatrixPosition(e.matrixWorld), Te.applyProjection(Me)), p(e, null, e.material, Te.z, null);
  22935.                                else if ((e instanceof n.Mesh || e instanceof n.Line || e instanceof n.Points) && (e instanceof n.SkinnedMesh && e.skeleton.update(), e.frustumCulled === !1 || m(e) === !0)) {
  22936.                                    var i = e.material;
  22937.                                    if (i.visible === !0) {
  22938.                                        J.sortObjects === !0 && (Te.setFromMatrixPosition(e.matrixWorld), Te.applyProjection(Me));
  22939.                                        var r = Ie.update(e);
  22940.                                        if (i instanceof n.MultiMaterial)
  22941.                                            for (var o = r.groups, a = i.materials, s = 0, l = o.length; l > s; s++) {
  22942.                                                var c = o[s],
  22943.                                                    u = a[c.materialIndex];
  22944.                                                u.visible === !0 && p(e, r, u, Te.z, c);
  22945.                                            }
  22946.                                        else p(e, r, i, Te.z, null);
  22947.                                    }
  22948.                                }
  22949.                                for (var h = e.children, s = 0, l = h.length; l > s; s++) y(h[s], t);
  22950.                            }
  22951.                        }
  22952.  
  22953.                        function _(e, t, i, r) {
  22954.                            for (var o = 0, a = e.length; a > o; o++) {
  22955.                                var s = e[o],
  22956.                                    l = s.object,
  22957.                                    c = s.geometry,
  22958.                                    u = void 0 === r ? s.material : r,
  22959.                                    h = s.group;
  22960.                                if ((l.modelViewMatrix.multiplyMatrices(t.matrixWorldInverse, l.matrixWorld), l.normalMatrix.getNormalMatrix(l.modelViewMatrix), l instanceof n.ImmediateRenderObject)) {
  22961.                                    x(u);
  22962.                                    var d = w(t, i, u, l);
  22963.                                    (re = ""),
  22964.                                    l.render(function (e) {
  22965.                                        J.renderBufferImmediate(e, d, u);
  22966.                                    });
  22967.                                } else J.renderBufferDirect(t, i, c, u, l, h);
  22968.                            }
  22969.                        }
  22970.  
  22971.                        function b(e, t, i) {
  22972.                            var r = ke.get(e),
  22973.                                o = Ne.getParameters(e, Se, t, _e.numPlanes, i),
  22974.                                a = Ne.getProgramCode(e, o),
  22975.                                l = r.program,
  22976.                                u = !0;
  22977.                            if (void 0 === l) e.addEventListener("dispose", s);
  22978.                            else if (l.code !== a) c(e);
  22979.                            else {
  22980.                                if (void 0 !== o.shaderID) return;
  22981.                                u = !1;
  22982.                            }
  22983.                            if (u) {
  22984.                                if (o.shaderID) {
  22985.                                    var h = n.ShaderLib[o.shaderID];
  22986.                                    r.__webglShader = {
  22987.                                        name: e.type,
  22988.                                        uniforms: n.UniformsUtils.clone(h.uniforms),
  22989.                                        vertexShader: h.vertexShader,
  22990.                                        fragmentShader: h.fragmentShader
  22991.                                    };
  22992.                                } else r.__webglShader = {
  22993.                                    name: e.type,
  22994.                                    uniforms: e.uniforms,
  22995.                                    vertexShader: e.vertexShader,
  22996.                                    fragmentShader: e.fragmentShader
  22997.                                };
  22998.                                (e.__webglShader = r.__webglShader), (l = Ne.acquireProgram(e, o, a)), (r.program = l), (e.program = l);
  22999.                            }
  23000.                            var d = l.getAttributes();
  23001.                            if (e.morphTargets) {
  23002.                                e.numSupportedMorphTargets = 0;
  23003.                                for (var f = 0; f < J.maxMorphTargets; f++) d["morphTarget" + f] >= 0 && e.numSupportedMorphTargets++;
  23004.                            }
  23005.                            if (e.morphNormals) {
  23006.                                e.numSupportedMorphNormals = 0;
  23007.                                for (var f = 0; f < J.maxMorphNormals; f++) d["morphNormal" + f] >= 0 && e.numSupportedMorphNormals++;
  23008.                            }
  23009.                            var p = r.__webglShader.uniforms;
  23010.                            ((e instanceof n.ShaderMaterial || e instanceof n.RawShaderMaterial) && e.clipping !== !0) || ((r.numClippingPlanes = _e.numPlanes), (p.clippingPlanes = _e.uniform)),
  23011.                            e.lights &&
  23012.                                ((r.lightsHash = Se.hash),
  23013.                                    (p.ambientLightColor.value = Se.ambient),
  23014.                                    (p.directionalLights.value = Se.directional),
  23015.                                    (p.spotLights.value = Se.spot),
  23016.                                    (p.pointLights.value = Se.point),
  23017.                                    (p.hemisphereLights.value = Se.hemi),
  23018.                                    (p.directionalShadowMap.value = Se.directionalShadowMap),
  23019.                                    (p.directionalShadowMatrix.value = Se.directionalShadowMatrix),
  23020.                                    (p.spotShadowMap.value = Se.spotShadowMap),
  23021.                                    (p.spotShadowMatrix.value = Se.spotShadowMatrix),
  23022.                                    (p.pointShadowMap.value = Se.pointShadowMap),
  23023.                                    (p.pointShadowMatrix.value = Se.pointShadowMatrix));
  23024.                            var m = r.program.getUniforms(),
  23025.                                v = n.WebGLUniforms.seqWithValue(m.seq, p);
  23026.                            (r.uniformsList = v), (r.dynamicUniforms = n.WebGLUniforms.splitDynamic(v, p));
  23027.                        }
  23028.  
  23029.                        function x(e) {
  23030.                            e.side !== n.DoubleSide ? Oe.enable(Ae.CULL_FACE) : Oe.disable(Ae.CULL_FACE),
  23031.                                Oe.setFlipSided(e.side === n.BackSide),
  23032.                                e.transparent === !0 ? Oe.setBlending(e.blending, e.blendEquation, e.blendSrc, e.blendDst, e.blendEquationAlpha, e.blendSrcAlpha, e.blendDstAlpha, e.premultipliedAlpha) : Oe.setBlending(n.NoBlending),
  23033.                                Oe.setDepthFunc(e.depthFunc),
  23034.                                Oe.setDepthTest(e.depthTest),
  23035.                                Oe.setDepthWrite(e.depthWrite),
  23036.                                Oe.setColorWrite(e.colorWrite),
  23037.                                Oe.setPolygonOffset(e.polygonOffset, e.polygonOffsetFactor, e.polygonOffsetUnits);
  23038.                        }
  23039.  
  23040.                        function w(e, t, i, r) {
  23041.                            ce = 0;
  23042.                            var o = ke.get(i);
  23043.                            if (be) {
  23044.                                if (xe || e !== oe) {
  23045.                                    var a = e === oe && i.id === ne;
  23046.                                    _e.setState(i.clippingPlanes, i.clipShadows, e, o, a);
  23047.                                }
  23048.                                void 0 !== o.numClippingPlanes && o.numClippingPlanes !== _e.numPlanes && (i.needsUpdate = !0);
  23049.                            }
  23050.                            void 0 === o.program && (i.needsUpdate = !0), void 0 !== o.lightsHash && o.lightsHash !== Se.hash && (i.needsUpdate = !0), i.needsUpdate && (b(i, t, r), (i.needsUpdate = !1));
  23051.                            var s = !1,
  23052.                                l = !1,
  23053.                                c = !1,
  23054.                                u = o.program,
  23055.                                h = u.getUniforms(),
  23056.                                d = o.__webglShader.uniforms;
  23057.                            if ((u.id !== ee && (Ae.useProgram(u.program), (ee = u.id), (s = !0), (l = !0), (c = !0)), i.id !== ne && ((ne = i.id), (l = !0)), s || e !== oe)) {
  23058.                                if (
  23059.                                    (h.set(Ae, e, "projectionMatrix"),
  23060.                                        Re.logarithmicDepthBuffer && h.setValue(Ae, "logDepthBufFC", 2 / (Math.log(e.far + 1) / Math.LN2)),
  23061.                                        e !== oe && ((oe = e), (l = !0), (c = !0)),
  23062.                                        i instanceof n.ShaderMaterial || i instanceof n.MeshPhongMaterial || i instanceof n.MeshStandardMaterial || i.envMap)
  23063.                                ) {
  23064.                                    var f = h.map.cameraPosition;
  23065.                                    void 0 !== f && f.setValue(Ae, Te.setFromMatrixPosition(e.matrixWorld));
  23066.                                }
  23067.                                (i instanceof n.MeshPhongMaterial || i instanceof n.MeshLambertMaterial || i instanceof n.MeshBasicMaterial || i instanceof n.MeshStandardMaterial || i instanceof n.ShaderMaterial || i.skinning) &&
  23068.                                h.setValue(Ae, "viewMatrix", e.matrixWorldInverse),
  23069.                                    h.set(Ae, J, "toneMappingExposure"),
  23070.                                    h.set(Ae, J, "toneMappingWhitePoint");
  23071.                            }
  23072.                            if (i.skinning) {
  23073.                                h.setOptional(Ae, r, "bindMatrix"), h.setOptional(Ae, r, "bindMatrixInverse");
  23074.                                var p = r.skeleton;
  23075.                                p && (Re.floatVertexTextures && p.useVertexTexture ? (h.set(Ae, p, "boneTexture"), h.set(Ae, p, "boneTextureWidth"), h.set(Ae, p, "boneTextureHeight")) : h.setOptional(Ae, p, "boneMatrices"));
  23076.                            }
  23077.                            l &&
  23078.                                (i.lights && O(d, c),
  23079.                                    t && i.fog && A(d, t),
  23080.                                    (i instanceof n.MeshBasicMaterial || i instanceof n.MeshLambertMaterial || i instanceof n.MeshPhongMaterial || i instanceof n.MeshStandardMaterial || i instanceof n.MeshDepthMaterial) && M(d, i),
  23081.                                    i instanceof n.LineBasicMaterial ?
  23082.                                    T(d, i) :
  23083.                                    i instanceof n.LineDashedMaterial ?
  23084.                                    (T(d, i), S(d, i)) :
  23085.                                    i instanceof n.PointsMaterial ?
  23086.                                    E(d, i) :
  23087.                                    i instanceof n.MeshLambertMaterial ?
  23088.                                    C(d, i) :
  23089.                                    i instanceof n.MeshPhongMaterial ?
  23090.                                    P(d, i) :
  23091.                                    i instanceof n.MeshPhysicalMaterial ?
  23092.                                    R(d, i) :
  23093.                                    i instanceof n.MeshStandardMaterial ?
  23094.                                    L(d, i) :
  23095.                                    i instanceof n.MeshDepthMaterial ?
  23096.                                    i.displacementMap && ((d.displacementMap.value = i.displacementMap), (d.displacementScale.value = i.displacementScale), (d.displacementBias.value = i.displacementBias)) :
  23097.                                    i instanceof n.MeshNormalMaterial && (d.opacity.value = i.opacity),
  23098.                                    n.WebGLUniforms.upload(Ae, o.uniformsList, d, J)),
  23099.                                h.set(Ae, r, "modelViewMatrix"),
  23100.                                h.set(Ae, r, "normalMatrix"),
  23101.                                h.setValue(Ae, "modelMatrix", r.matrixWorld);
  23102.                            var m = o.dynamicUniforms;
  23103.                            return null !== m && (n.WebGLUniforms.evalDynamic(m, d, r, e), n.WebGLUniforms.upload(Ae, m, d, J)), u;
  23104.                        }
  23105.  
  23106.                        function M(e, t) {
  23107.                            (e.opacity.value = t.opacity),
  23108.                            (e.diffuse.value = t.color),
  23109.                            t.emissive && e.emissive.value.copy(t.emissive).multiplyScalar(t.emissiveIntensity),
  23110.                                (e.map.value = t.map),
  23111.                                (e.specularMap.value = t.specularMap),
  23112.                                (e.alphaMap.value = t.alphaMap),
  23113.                                t.aoMap && ((e.aoMap.value = t.aoMap), (e.aoMapIntensity.value = t.aoMapIntensity));
  23114.                            var i;
  23115.                            if (
  23116.                                (t.map ?
  23117.                                    (i = t.map) :
  23118.                                    t.specularMap ?
  23119.                                    (i = t.specularMap) :
  23120.                                    t.displacementMap ?
  23121.                                    (i = t.displacementMap) :
  23122.                                    t.normalMap ?
  23123.                                    (i = t.normalMap) :
  23124.                                    t.bumpMap ?
  23125.                                    (i = t.bumpMap) :
  23126.                                    t.roughnessMap ?
  23127.                                    (i = t.roughnessMap) :
  23128.                                    t.metalnessMap ?
  23129.                                    (i = t.metalnessMap) :
  23130.                                    t.alphaMap ?
  23131.                                    (i = t.alphaMap) :
  23132.                                    t.emissiveMap && (i = t.emissiveMap),
  23133.                                    void 0 !== i)
  23134.                            ) {
  23135.                                i instanceof n.WebGLRenderTarget && (i = i.texture);
  23136.                                var r = i.offset,
  23137.                                    o = i.repeat;
  23138.                                e.offsetRepeat.value.set(r.x, r.y, o.x, o.y);
  23139.                            }
  23140.                            (e.envMap.value = t.envMap), (e.flipEnvMap.value = t.envMap instanceof n.CubeTexture ? -1 : 1), (e.reflectivity.value = t.reflectivity), (e.refractionRatio.value = t.refractionRatio);
  23141.                        }
  23142.  
  23143.                        function T(e, t) {
  23144.                            (e.diffuse.value = t.color), (e.opacity.value = t.opacity);
  23145.                        }
  23146.  
  23147.                        function S(e, t) {
  23148.                            (e.dashSize.value = t.dashSize), (e.totalSize.value = t.dashSize + t.gapSize), (e.scale.value = t.scale);
  23149.                        }
  23150.  
  23151.                        function E(e, t) {
  23152.                            if (((e.diffuse.value = t.color), (e.opacity.value = t.opacity), (e.size.value = t.size * pe), (e.scale.value = 0.5 * U.clientHeight), (e.map.value = t.map), null !== t.map)) {
  23153.                                var i = t.map.offset,
  23154.                                    n = t.map.repeat;
  23155.                                e.offsetRepeat.value.set(i.x, i.y, n.x, n.y);
  23156.                            }
  23157.                        }
  23158.  
  23159.                        function A(e, t) {
  23160.                            (e.fogColor.value = t.color), t instanceof n.Fog ? ((e.fogNear.value = t.near), (e.fogFar.value = t.far)) : t instanceof n.FogExp2 && (e.fogDensity.value = t.density);
  23161.                        }
  23162.  
  23163.                        function C(e, t) {
  23164.                            t.lightMap && ((e.lightMap.value = t.lightMap), (e.lightMapIntensity.value = t.lightMapIntensity)), t.emissiveMap && (e.emissiveMap.value = t.emissiveMap);
  23165.                        }
  23166.  
  23167.                        function P(e, t) {
  23168.                            (e.specular.value = t.specular),
  23169.                            (e.shininess.value = Math.max(t.shininess, 1e-4)),
  23170.                            t.lightMap && ((e.lightMap.value = t.lightMap), (e.lightMapIntensity.value = t.lightMapIntensity)),
  23171.                                t.emissiveMap && (e.emissiveMap.value = t.emissiveMap),
  23172.                                t.bumpMap && ((e.bumpMap.value = t.bumpMap), (e.bumpScale.value = t.bumpScale)),
  23173.                                t.normalMap && ((e.normalMap.value = t.normalMap), e.normalScale.value.copy(t.normalScale)),
  23174.                                t.displacementMap && ((e.displacementMap.value = t.displacementMap), (e.displacementScale.value = t.displacementScale), (e.displacementBias.value = t.displacementBias));
  23175.                        }
  23176.  
  23177.                        function L(e, t) {
  23178.                            (e.roughness.value = t.roughness),
  23179.                            (e.metalness.value = t.metalness),
  23180.                            t.roughnessMap && (e.roughnessMap.value = t.roughnessMap),
  23181.                                t.metalnessMap && (e.metalnessMap.value = t.metalnessMap),
  23182.                                t.lightMap && ((e.lightMap.value = t.lightMap), (e.lightMapIntensity.value = t.lightMapIntensity)),
  23183.                                t.emissiveMap && (e.emissiveMap.value = t.emissiveMap),
  23184.                                t.bumpMap && ((e.bumpMap.value = t.bumpMap), (e.bumpScale.value = t.bumpScale)),
  23185.                                t.normalMap && ((e.normalMap.value = t.normalMap), e.normalScale.value.copy(t.normalScale)),
  23186.                                t.displacementMap && ((e.displacementMap.value = t.displacementMap), (e.displacementScale.value = t.displacementScale), (e.displacementBias.value = t.displacementBias)),
  23187.                                t.envMap && (e.envMapIntensity.value = t.envMapIntensity);
  23188.                        }
  23189.  
  23190.                        function R(e, t) {
  23191.                            (e.clearCoat.value = t.clearCoat), (e.clearCoatRoughness.value = t.clearCoatRoughness), L(e, t);
  23192.                        }
  23193.  
  23194.                        function O(e, t) {
  23195.                            (e.ambientLightColor.needsUpdate = t), (e.directionalLights.needsUpdate = t), (e.pointLights.needsUpdate = t), (e.spotLights.needsUpdate = t), (e.hemisphereLights.needsUpdate = t);
  23196.                        }
  23197.  
  23198.                        function k(e) {
  23199.                            for (var t = 0, i = 0, n = e.length; n > i; i++) {
  23200.                                var r = e[i];
  23201.                                r.castShadow && (Se.shadows[t++] = r);
  23202.                            }
  23203.                            Se.shadows.length = t;
  23204.                        }
  23205.  
  23206.                        function D(e, t) {
  23207.                            var i,
  23208.                                r,
  23209.                                o,
  23210.                                a,
  23211.                                s,
  23212.                                l,
  23213.                                c,
  23214.                                u = 0,
  23215.                                h = 0,
  23216.                                d = 0,
  23217.                                f = t.matrixWorldInverse,
  23218.                                p = 0,
  23219.                                m = 0,
  23220.                                v = 0,
  23221.                                g = 0;
  23222.                            for (i = 0, r = e.length; r > i; i++)
  23223.                                if (((o = e[i]), (a = o.color), (s = o.intensity), (l = o.distance), (c = o.shadow && o.shadow.map ? o.shadow.map.texture : null), o instanceof n.AmbientLight))(u += a.r * s), (h += a.g * s), (d += a.b * s);
  23224.                                else if (o instanceof n.DirectionalLight) {
  23225.                                var y = Ue.get(o);
  23226.                                y.color.copy(o.color).multiplyScalar(o.intensity),
  23227.                                    y.direction.setFromMatrixPosition(o.matrixWorld),
  23228.                                    Te.setFromMatrixPosition(o.target.matrixWorld),
  23229.                                    y.direction.sub(Te),
  23230.                                    y.direction.transformDirection(f),
  23231.                                    (y.shadow = o.castShadow),
  23232.                                    o.castShadow && ((y.shadowBias = o.shadow.bias), (y.shadowRadius = o.shadow.radius), (y.shadowMapSize = o.shadow.mapSize)),
  23233.                                    (Se.directionalShadowMap[p] = c),
  23234.                                    (Se.directionalShadowMatrix[p] = o.shadow.matrix),
  23235.                                    (Se.directional[p++] = y);
  23236.                            } else if (o instanceof n.SpotLight) {
  23237.                                var y = Ue.get(o);
  23238.                                y.position.setFromMatrixPosition(o.matrixWorld),
  23239.                                    y.position.applyMatrix4(f),
  23240.                                    y.color.copy(a).multiplyScalar(s),
  23241.                                    (y.distance = l),
  23242.                                    y.direction.setFromMatrixPosition(o.matrixWorld),
  23243.                                    Te.setFromMatrixPosition(o.target.matrixWorld),
  23244.                                    y.direction.sub(Te),
  23245.                                    y.direction.transformDirection(f),
  23246.                                    (y.coneCos = Math.cos(o.angle)),
  23247.                                    (y.penumbraCos = Math.cos(o.angle * (1 - o.penumbra))),
  23248.                                    (y.decay = 0 === o.distance ? 0 : o.decay),
  23249.                                    (y.shadow = o.castShadow),
  23250.                                    o.castShadow && ((y.shadowBias = o.shadow.bias), (y.shadowRadius = o.shadow.radius), (y.shadowMapSize = o.shadow.mapSize)),
  23251.                                    (Se.spotShadowMap[v] = c),
  23252.                                    (Se.spotShadowMatrix[v] = o.shadow.matrix),
  23253.                                    (Se.spot[v++] = y);
  23254.                            } else if (o instanceof n.PointLight) {
  23255.                                var y = Ue.get(o);
  23256.                                y.position.setFromMatrixPosition(o.matrixWorld),
  23257.                                    y.position.applyMatrix4(f),
  23258.                                    y.color.copy(o.color).multiplyScalar(o.intensity),
  23259.                                    (y.distance = o.distance),
  23260.                                    (y.decay = 0 === o.distance ? 0 : o.decay),
  23261.                                    (y.shadow = o.castShadow),
  23262.                                    o.castShadow && ((y.shadowBias = o.shadow.bias), (y.shadowRadius = o.shadow.radius), (y.shadowMapSize = o.shadow.mapSize)),
  23263.                                    (Se.pointShadowMap[m] = c),
  23264.                                    void 0 === Se.pointShadowMatrix[m] && (Se.pointShadowMatrix[m] = new n.Matrix4()),
  23265.                                    Te.setFromMatrixPosition(o.matrixWorld).negate(),
  23266.                                    Se.pointShadowMatrix[m].identity().setPosition(Te),
  23267.                                    (Se.point[m++] = y);
  23268.                            } else if (o instanceof n.HemisphereLight) {
  23269.                                var y = Ue.get(o);
  23270.                                y.direction.setFromMatrixPosition(o.matrixWorld),
  23271.                                    y.direction.transformDirection(f),
  23272.                                    y.direction.normalize(),
  23273.                                    y.skyColor.copy(o.color).multiplyScalar(s),
  23274.                                    y.groundColor.copy(o.groundColor).multiplyScalar(s),
  23275.                                    (Se.hemi[g++] = y);
  23276.                            }
  23277.                            (Se.ambient[0] = u),
  23278.                            (Se.ambient[1] = h),
  23279.                            (Se.ambient[2] = d),
  23280.                            (Se.directional.length = p),
  23281.                            (Se.spot.length = v),
  23282.                            (Se.point.length = m),
  23283.                            (Se.hemi.length = g),
  23284.                            (Se.hash = p + "," + m + "," + v + "," + g + "," + Se.shadows.length);
  23285.                        }
  23286.  
  23287.                        function I() {
  23288.                            var e = ce;
  23289.                            return e >= Re.maxTextures && console.warn("WebGLRenderer: trying to use " + e + " texture units while this GPU supports only " + Re.maxTextures), (ce += 1), e;
  23290.                        }
  23291.  
  23292.                        function N(e) {
  23293.                            var t;
  23294.                            if (e === n.RepeatWrapping) return Ae.REPEAT;
  23295.                            if (e === n.ClampToEdgeWrapping) return Ae.CLAMP_TO_EDGE;
  23296.                            if (e === n.MirroredRepeatWrapping) return Ae.MIRRORED_REPEAT;
  23297.                            if (e === n.NearestFilter) return Ae.NEAREST;
  23298.                            if (e === n.NearestMipMapNearestFilter) return Ae.NEAREST_MIPMAP_NEAREST;
  23299.                            if (e === n.NearestMipMapLinearFilter) return Ae.NEAREST_MIPMAP_LINEAR;
  23300.                            if (e === n.LinearFilter) return Ae.LINEAR;
  23301.                            if (e === n.LinearMipMapNearestFilter) return Ae.LINEAR_MIPMAP_NEAREST;
  23302.                            if (e === n.LinearMipMapLinearFilter) return Ae.LINEAR_MIPMAP_LINEAR;
  23303.                            if (e === n.UnsignedByteType) return Ae.UNSIGNED_BYTE;
  23304.                            if (e === n.UnsignedShort4444Type) return Ae.UNSIGNED_SHORT_4_4_4_4;
  23305.                            if (e === n.UnsignedShort5551Type) return Ae.UNSIGNED_SHORT_5_5_5_1;
  23306.                            if (e === n.UnsignedShort565Type) return Ae.UNSIGNED_SHORT_5_6_5;
  23307.                            if (e === n.ByteType) return Ae.BYTE;
  23308.                            if (e === n.ShortType) return Ae.SHORT;
  23309.                            if (e === n.UnsignedShortType) return Ae.UNSIGNED_SHORT;
  23310.                            if (e === n.IntType) return Ae.INT;
  23311.                            if (e === n.UnsignedIntType) return Ae.UNSIGNED_INT;
  23312.                            if (e === n.FloatType) return Ae.FLOAT;
  23313.                            if (((t = Le.get("OES_texture_half_float")), null !== t && e === n.HalfFloatType)) return t.HALF_FLOAT_OES;
  23314.                            if (e === n.AlphaFormat) return Ae.ALPHA;
  23315.                            if (e === n.RGBFormat) return Ae.RGB;
  23316.                            if (e === n.RGBAFormat) return Ae.RGBA;
  23317.                            if (e === n.LuminanceFormat) return Ae.LUMINANCE;
  23318.                            if (e === n.LuminanceAlphaFormat) return Ae.LUMINANCE_ALPHA;
  23319.                            if (e === n.DepthFormat) return Ae.DEPTH_COMPONENT;
  23320.                            if (e === n.AddEquation) return Ae.FUNC_ADD;
  23321.                            if (e === n.SubtractEquation) return Ae.FUNC_SUBTRACT;
  23322.                            if (e === n.ReverseSubtractEquation) return Ae.FUNC_REVERSE_SUBTRACT;
  23323.                            if (e === n.ZeroFactor) return Ae.ZERO;
  23324.                            if (e === n.OneFactor) return Ae.ONE;
  23325.                            if (e === n.SrcColorFactor) return Ae.SRC_COLOR;
  23326.                            if (e === n.OneMinusSrcColorFactor) return Ae.ONE_MINUS_SRC_COLOR;
  23327.                            if (e === n.SrcAlphaFactor) return Ae.SRC_ALPHA;
  23328.                            if (e === n.OneMinusSrcAlphaFactor) return Ae.ONE_MINUS_SRC_ALPHA;
  23329.                            if (e === n.DstAlphaFactor) return Ae.DST_ALPHA;
  23330.                            if (e === n.OneMinusDstAlphaFactor) return Ae.ONE_MINUS_DST_ALPHA;
  23331.                            if (e === n.DstColorFactor) return Ae.DST_COLOR;
  23332.                            if (e === n.OneMinusDstColorFactor) return Ae.ONE_MINUS_DST_COLOR;
  23333.                            if (e === n.SrcAlphaSaturateFactor) return Ae.SRC_ALPHA_SATURATE;
  23334.                            if (((t = Le.get("WEBGL_compressed_texture_s3tc")), null !== t)) {
  23335.                                if (e === n.RGB_S3TC_DXT1_Format) return t.COMPRESSED_RGB_S3TC_DXT1_EXT;
  23336.                                if (e === n.RGBA_S3TC_DXT1_Format) return t.COMPRESSED_RGBA_S3TC_DXT1_EXT;
  23337.                                if (e === n.RGBA_S3TC_DXT3_Format) return t.COMPRESSED_RGBA_S3TC_DXT3_EXT;
  23338.                                if (e === n.RGBA_S3TC_DXT5_Format) return t.COMPRESSED_RGBA_S3TC_DXT5_EXT;
  23339.                            }
  23340.                            if (((t = Le.get("WEBGL_compressed_texture_pvrtc")), null !== t)) {
  23341.                                if (e === n.RGB_PVRTC_4BPPV1_Format) return t.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;
  23342.                                if (e === n.RGB_PVRTC_2BPPV1_Format) return t.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;
  23343.                                if (e === n.RGBA_PVRTC_4BPPV1_Format) return t.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;
  23344.                                if (e === n.RGBA_PVRTC_2BPPV1_Format) return t.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG;
  23345.                            }
  23346.                            if (((t = Le.get("WEBGL_compressed_texture_etc1")), null !== t && e === n.RGB_ETC1_Format)) return t.COMPRESSED_RGB_ETC1_WEBGL;
  23347.                            if (((t = Le.get("EXT_blend_minmax")), null !== t)) {
  23348.                                if (e === n.MinEquation) return t.MIN_EXT;
  23349.                                if (e === n.MaxEquation) return t.MAX_EXT;
  23350.                            }
  23351.                            return 0;
  23352.                        }
  23353.                        console.log("THREE.WebGLRenderer", n.REVISION), (e = e || {});
  23354.                        var U = void 0 !== e.canvas ? e.canvas : document.createElementNS("http://www.w3.org/1999/xhtml", "canvas"),
  23355.                            j = void 0 !== e.context ? e.context : null,
  23356.                            B = void 0 !== e.alpha ? e.alpha : !1,
  23357.                            F = void 0 !== e.depth ? e.depth : !0,
  23358.                            V = void 0 !== e.stencil ? e.stencil : !0,
  23359.                            G = void 0 !== e.antialias ? e.antialias : !1,
  23360.                            z = void 0 !== e.premultipliedAlpha ? e.premultipliedAlpha : !0,
  23361.                            $ = void 0 !== e.preserveDrawingBuffer ? e.preserveDrawingBuffer : !1,
  23362.                            H = [],
  23363.                            W = [],
  23364.                            X = -1,
  23365.                            Y = [],
  23366.                            q = -1,
  23367.                            Z = new Float32Array(8),
  23368.                            K = [],
  23369.                            Q = [];
  23370.                        (this.domElement = U),
  23371.                        (this.context = null),
  23372.                        (this.autoClear = !0),
  23373.                        (this.autoClearColor = !0),
  23374.                        (this.autoClearDepth = !0),
  23375.                        (this.autoClearStencil = !0),
  23376.                        (this.sortObjects = !0),
  23377.                        (this.clippingPlanes = []),
  23378.                        (this.localClippingEnabled = !1),
  23379.                        (this.gammaFactor = 2),
  23380.                        (this.gammaInput = !1),
  23381.                        (this.gammaOutput = !1),
  23382.                        (this.physicallyCorrectLights = !1),
  23383.                        (this.toneMapping = n.LinearToneMapping),
  23384.                        (this.toneMappingExposure = 1),
  23385.                        (this.toneMappingWhitePoint = 1),
  23386.                        (this.maxMorphTargets = 8),
  23387.                        (this.maxMorphNormals = 4);
  23388.                        var J = this,
  23389.                            ee = null,
  23390.                            te = null,
  23391.                            ie = null,
  23392.                            ne = -1,
  23393.                            re = "",
  23394.                            oe = null,
  23395.                            ae = new n.Vector4(),
  23396.                            se = null,
  23397.                            le = new n.Vector4(),
  23398.                            ce = 0,
  23399.                            ue = new n.Color(0),
  23400.                            he = 0,
  23401.                            de = U.width,
  23402.                            fe = U.height,
  23403.                            pe = 1,
  23404.                            me = new n.Vector4(0, 0, de, fe),
  23405.                            ve = !1,
  23406.                            ge = new n.Vector4(0, 0, de, fe),
  23407.                            ye = new n.Frustum(),
  23408.                            _e = new n.WebGLClipping(),
  23409.                            be = !1,
  23410.                            xe = !1,
  23411.                            we = new n.Sphere(),
  23412.                            Me = new n.Matrix4(),
  23413.                            Te = new n.Vector3(),
  23414.                            Se = {
  23415.                                hash: "",
  23416.                                ambient: [0, 0, 0],
  23417.                                directional: [],
  23418.                                directionalShadowMap: [],
  23419.                                directionalShadowMatrix: [],
  23420.                                spot: [],
  23421.                                spotShadowMap: [],
  23422.                                spotShadowMatrix: [],
  23423.                                point: [],
  23424.                                pointShadowMap: [],
  23425.                                pointShadowMatrix: [],
  23426.                                hemi: [],
  23427.                                shadows: [],
  23428.                            },
  23429.                            Ee = {
  23430.                                calls: 0,
  23431.                                vertices: 0,
  23432.                                faces: 0,
  23433.                                points: 0
  23434.                            };
  23435.                        this.info = {
  23436.                            render: Ee,
  23437.                            memory: {
  23438.                                geometries: 0,
  23439.                                textures: 0
  23440.                            },
  23441.                            programs: null
  23442.                        };
  23443.                        var Ae;
  23444.                        try {
  23445.                            var Ce = {
  23446.                                alpha: B,
  23447.                                depth: F,
  23448.                                stencil: V,
  23449.                                antialias: G,
  23450.                                premultipliedAlpha: z,
  23451.                                preserveDrawingBuffer: $
  23452.                            };
  23453.                            if (((Ae = j || U.getContext("webgl", Ce) || U.getContext("experimental-webgl", Ce)), null === Ae))
  23454.                                throw null !== U.getContext("webgl") ? "Error creating WebGL context with your selected attributes." : "Error creating WebGL context.";
  23455.                            void 0 === Ae.getShaderPrecisionFormat &&
  23456.                                (Ae.getShaderPrecisionFormat = function () {
  23457.                                    return {
  23458.                                        rangeMin: 1,
  23459.                                        rangeMax: 1,
  23460.                                        precision: 1
  23461.                                    };
  23462.                                }),
  23463.                                U.addEventListener("webglcontextlost", a, !1);
  23464.                        } catch (Pe) {
  23465.                            console.error("THREE.WebGLRenderer: " + Pe);
  23466.                        }
  23467.                        var Le = new n.WebGLExtensions(Ae);
  23468.                        Le.get("WEBGL_depth_texture"),
  23469.                            Le.get("OES_texture_float"),
  23470.                            Le.get("OES_texture_float_linear"),
  23471.                            Le.get("OES_texture_half_float"),
  23472.                            Le.get("OES_texture_half_float_linear"),
  23473.                            Le.get("OES_standard_derivatives"),
  23474.                            Le.get("ANGLE_instanced_arrays"),
  23475.                            Le.get("OES_element_index_uint") && (n.BufferGeometry.MaxIndex = 4294967296);
  23476.                        var Re = new n.WebGLCapabilities(Ae, Le, e),
  23477.                            Oe = new n.WebGLState(Ae, Le, N),
  23478.                            ke = new n.WebGLProperties(),
  23479.                            De = new n.WebGLTextures(Ae, Le, Oe, ke, Re, N, this.info),
  23480.                            Ie = new n.WebGLObjects(Ae, ke, this.info),
  23481.                            Ne = new n.WebGLPrograms(this, Re),
  23482.                            Ue = new n.WebGLLights();
  23483.                        this.info.programs = Ne.programs;
  23484.                        var je = new n.WebGLBufferRenderer(Ae, Le, Ee),
  23485.                            Be = new n.WebGLIndexedBufferRenderer(Ae, Le, Ee),
  23486.                            Fe = new n.OrthographicCamera(-1, 1, 1, -1, 0, 1),
  23487.                            Ve = new n.PerspectiveCamera(),
  23488.                            Ge = new n.Mesh(new n.PlaneBufferGeometry(2, 2), new n.MeshBasicMaterial({
  23489.                                depthTest: !1,
  23490.                                depthWrite: !1,
  23491.                                fog: !1
  23492.                            })),
  23493.                            ze = n.ShaderLib.cube,
  23494.                            $e = new n.Mesh(
  23495.                                new n.BoxBufferGeometry(5, 5, 5),
  23496.                                new n.ShaderMaterial({
  23497.                                    uniforms: ze.uniforms,
  23498.                                    vertexShader: ze.vertexShader,
  23499.                                    fragmentShader: ze.fragmentShader,
  23500.                                    side: n.BackSide,
  23501.                                    depthTest: !1,
  23502.                                    depthWrite: !1,
  23503.                                    fog: !1
  23504.                                })
  23505.                            );
  23506.                        r(), (this.context = Ae), (this.capabilities = Re), (this.extensions = Le), (this.properties = ke), (this.state = Oe);
  23507.                        var He = new n.WebGLShadowMap(this, Se, Ie, Re);
  23508.                        this.shadowMap = He;
  23509.                        var We = new n.SpritePlugin(this, K),
  23510.                            Xe = new n.LensFlarePlugin(this, Q);
  23511.                        (this.getContext = function () {
  23512.                            return Ae;
  23513.                        }),
  23514.                        (this.getContextAttributes = function () {
  23515.                            return Ae.getContextAttributes();
  23516.                        }),
  23517.                        (this.forceContextLoss = function () {
  23518.                            Le.get("WEBGL_lose_context").loseContext();
  23519.                        }),
  23520.                        (this.getMaxAnisotropy = function () {
  23521.                            return Re.getMaxAnisotropy();
  23522.                        }),
  23523.                        (this.getPrecision = function () {
  23524.                            return Re.precision;
  23525.                        }),
  23526.                        (this.getPixelRatio = function () {
  23527.                            return pe;
  23528.                        }),
  23529.                        (this.setPixelRatio = function (e) {
  23530.                            void 0 !== e && ((pe = e), this.setSize(ge.z, ge.w, !1));
  23531.                        }),
  23532.                        (this.getSize = function () {
  23533.                            return {
  23534.                                width: de,
  23535.                                height: fe
  23536.                            };
  23537.                        }),
  23538.                        (this.setSize = function (e, t, i) {
  23539.                            (de = e), (fe = t), (U.width = e * pe), (U.height = t * pe), i !== !1 && ((U.style.width = e + "px"), (U.style.height = t + "px")), this.setViewport(0, 0, e, t);
  23540.                        }),
  23541.                        (this.setViewport = function (e, t, i, n) {
  23542.                            Oe.viewport(ge.set(e, t, i, n));
  23543.                        }),
  23544.                        (this.setScissor = function (e, t, i, n) {
  23545.                            Oe.scissor(me.set(e, t, i, n));
  23546.                        }),
  23547.                        (this.setScissorTest = function (e) {
  23548.                            Oe.setScissorTest((ve = e));
  23549.                        }),
  23550.                        (this.getClearColor = function () {
  23551.                            return ue;
  23552.                        }),
  23553.                        (this.setClearColor = function (e, t) {
  23554.                            ue.set(e), (he = void 0 !== t ? t : 1), i(ue.r, ue.g, ue.b, he);
  23555.                        }),
  23556.                        (this.getClearAlpha = function () {
  23557.                            return he;
  23558.                        }),
  23559.                        (this.setClearAlpha = function (e) {
  23560.                            (he = e), i(ue.r, ue.g, ue.b, he);
  23561.                        }),
  23562.                        (this.clear = function (e, t, i) {
  23563.                            var n = 0;
  23564.                            (void 0 === e || e) && (n |= Ae.COLOR_BUFFER_BIT), (void 0 === t || t) && (n |= Ae.DEPTH_BUFFER_BIT), (void 0 === i || i) && (n |= Ae.STENCIL_BUFFER_BIT), Ae.clear(n);
  23565.                        }),
  23566.                        (this.clearColor = function () {
  23567.                            this.clear(!0, !1, !1);
  23568.                        }),
  23569.                        (this.clearDepth = function () {
  23570.                            this.clear(!1, !0, !1);
  23571.                        }),
  23572.                        (this.clearStencil = function () {
  23573.                            this.clear(!1, !1, !0);
  23574.                        }),
  23575.                        (this.clearTarget = function (e, t, i, n) {
  23576.                            this.setRenderTarget(e), this.clear(t, i, n);
  23577.                        }),
  23578.                        (this.resetGLState = o),
  23579.                        (this.dispose = function () {
  23580.                            (Y = []), (q = -1), (W = []), (X = -1), U.removeEventListener("webglcontextlost", a, !1);
  23581.                        }),
  23582.                        (this.renderBufferImmediate = function (e, t, i) {
  23583.                            Oe.initAttributes();
  23584.                            var r = ke.get(e);
  23585.                            e.hasPositions && !r.position && (r.position = Ae.createBuffer()),
  23586.                                e.hasNormals && !r.normal && (r.normal = Ae.createBuffer()),
  23587.                                e.hasUvs && !r.uv && (r.uv = Ae.createBuffer()),
  23588.                                e.hasColors && !r.color && (r.color = Ae.createBuffer());
  23589.                            var o = t.getAttributes();
  23590.                            if (
  23591.                                (e.hasPositions &&
  23592.                                    (Ae.bindBuffer(Ae.ARRAY_BUFFER, r.position),
  23593.                                        Ae.bufferData(Ae.ARRAY_BUFFER, e.positionArray, Ae.DYNAMIC_DRAW),
  23594.                                        Oe.enableAttribute(o.position),
  23595.                                        Ae.vertexAttribPointer(o.position, 3, Ae.FLOAT, !1, 0, 0)),
  23596.                                    e.hasNormals)
  23597.                            ) {
  23598.                                if ((Ae.bindBuffer(Ae.ARRAY_BUFFER, r.normal), "MeshPhongMaterial" !== i.type && "MeshStandardMaterial" !== i.type && "MeshPhysicalMaterial" !== i.type && i.shading === n.FlatShading))
  23599.                                    for (var a = 0, s = 3 * e.count; s > a; a += 9) {
  23600.                                        var l = e.normalArray,
  23601.                                            c = (l[a + 0] + l[a + 3] + l[a + 6]) / 3,
  23602.                                            u = (l[a + 1] + l[a + 4] + l[a + 7]) / 3,
  23603.                                            h = (l[a + 2] + l[a + 5] + l[a + 8]) / 3;
  23604.                                        (l[a + 0] = c), (l[a + 1] = u), (l[a + 2] = h), (l[a + 3] = c), (l[a + 4] = u), (l[a + 5] = h), (l[a + 6] = c), (l[a + 7] = u), (l[a + 8] = h);
  23605.                                    }
  23606.                                Ae.bufferData(Ae.ARRAY_BUFFER, e.normalArray, Ae.DYNAMIC_DRAW), Oe.enableAttribute(o.normal), Ae.vertexAttribPointer(o.normal, 3, Ae.FLOAT, !1, 0, 0);
  23607.                            }
  23608.                            e.hasUvs && i.map && (Ae.bindBuffer(Ae.ARRAY_BUFFER, r.uv), Ae.bufferData(Ae.ARRAY_BUFFER, e.uvArray, Ae.DYNAMIC_DRAW), Oe.enableAttribute(o.uv), Ae.vertexAttribPointer(o.uv, 2, Ae.FLOAT, !1, 0, 0)),
  23609.                                e.hasColors &&
  23610.                                i.vertexColors !== n.NoColors &&
  23611.                                (Ae.bindBuffer(Ae.ARRAY_BUFFER, r.color), Ae.bufferData(Ae.ARRAY_BUFFER, e.colorArray, Ae.DYNAMIC_DRAW), Oe.enableAttribute(o.color), Ae.vertexAttribPointer(o.color, 3, Ae.FLOAT, !1, 0, 0)),
  23612.                                Oe.disableUnusedAttributes(),
  23613.                                Ae.drawArrays(Ae.TRIANGLES, 0, e.count),
  23614.                                (e.count = 0);
  23615.                        }),
  23616.                        (this.renderBufferDirect = function (e, i, r, o, a, s) {
  23617.                            x(o);
  23618.                            var l = w(e, i, o, a),
  23619.                                c = !1,
  23620.                                d = r.id + "_" + l.id + "_" + o.wireframe;
  23621.                            d !== re && ((re = d), (c = !0));
  23622.                            var f = a.morphTargetInfluences;
  23623.                            if (void 0 !== f) {
  23624.                                for (var p = [], m = 0, v = f.length; v > m; m++) {
  23625.                                    var g = f[m];
  23626.                                    p.push([g, m]);
  23627.                                }
  23628.                                p.sort(h), p.length > 8 && (p.length = 8);
  23629.                                for (var y = r.morphAttributes, m = 0, v = p.length; v > m; m++) {
  23630.                                    var g = p[m];
  23631.                                    if (((Z[m] = g[0]), 0 !== g[0])) {
  23632.                                        var _ = g[1];
  23633.                                        o.morphTargets === !0 && y.position && r.addAttribute("morphTarget" + m, y.position[_]), o.morphNormals === !0 && y.normal && r.addAttribute("morphNormal" + m, y.normal[_]);
  23634.                                    } else o.morphTargets === !0 && r.removeAttribute("morphTarget" + m), o.morphNormals === !0 && r.removeAttribute("morphNormal" + m);
  23635.                                }
  23636.                                l.getUniforms().setValue(Ae, "morphTargetInfluences", Z), (c = !0);
  23637.                            }
  23638.                            var _ = r.index,
  23639.                                b = r.attributes.position;
  23640.                            o.wireframe === !0 && (_ = Ie.getWireframeAttribute(r));
  23641.                            var M;
  23642.                            null !== _ ? ((M = Be), M.setIndex(_)) : (M = je), c && (u(o, l, r), null !== _ && Ae.bindBuffer(Ae.ELEMENT_ARRAY_BUFFER, Ie.getAttributeBuffer(_)));
  23643.                            var T = 0,
  23644.                                S = 1 / 0;
  23645.                            null !== _ ? (S = _.count) : void 0 !== b && (S = b.count);
  23646.                            var E = r.drawRange.start,
  23647.                                A = r.drawRange.count,
  23648.                                C = null !== s ? s.start : 0,
  23649.                                P = null !== s ? s.count : 1 / 0,
  23650.                                L = Math.max(T, E, C),
  23651.                                R = Math.min(T + S, E + A, C + P) - 1,
  23652.                                O = Math.max(0, R - L + 1);
  23653.                            if (a instanceof n.Mesh)
  23654.                                if (o.wireframe === !0) Oe.setLineWidth(o.wireframeLinewidth * t()), M.setMode(Ae.LINES);
  23655.                                else
  23656.                                    switch (a.drawMode) {
  23657.                                    case n.TrianglesDrawMode:
  23658.                                        M.setMode(Ae.TRIANGLES);
  23659.                                        break;
  23660.                                    case n.TriangleStripDrawMode:
  23661.                                        M.setMode(Ae.TRIANGLE_STRIP);
  23662.                                        break;
  23663.                                    case n.TriangleFanDrawMode:
  23664.                                        M.setMode(Ae.TRIANGLE_FAN);
  23665.                                    }
  23666.                            else if (a instanceof n.Line) {
  23667.                                var k = o.linewidth;
  23668.                                void 0 === k && (k = 1), Oe.setLineWidth(k * t()), a instanceof n.LineSegments ? M.setMode(Ae.LINES) : M.setMode(Ae.LINE_STRIP);
  23669.                            } else a instanceof n.Points && M.setMode(Ae.POINTS);
  23670.                            r instanceof n.InstancedBufferGeometry ? r.maxInstancedCount > 0 && M.renderInstances(r, L, O) : M.render(L, O);
  23671.                        }),
  23672.                        (this.render = function (e, t, r, o) {
  23673.                            if (t instanceof n.Camera == !1) return void console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");
  23674.                            var a = e.fog;
  23675.                            (re = ""),
  23676.                            (ne = -1),
  23677.                            (oe = null),
  23678.                            e.autoUpdate === !0 && e.updateMatrixWorld(),
  23679.                                null === t.parent && t.updateMatrixWorld(),
  23680.                                t.matrixWorldInverse.getInverse(t.matrixWorld),
  23681.                                Me.multiplyMatrices(t.projectionMatrix, t.matrixWorldInverse),
  23682.                                ye.setFromMatrix(Me),
  23683.                                (H.length = 0),
  23684.                                (X = -1),
  23685.                                (q = -1),
  23686.                                (K.length = 0),
  23687.                                (Q.length = 0),
  23688.                                (xe = this.localClippingEnabled),
  23689.                                (be = _e.init(this.clippingPlanes, xe, t)),
  23690.                                y(e, t),
  23691.                                (W.length = X + 1),
  23692.                                (Y.length = q + 1),
  23693.                                J.sortObjects === !0 && (W.sort(d), Y.sort(f)),
  23694.                                be && _e.beginShadows(),
  23695.                                k(H),
  23696.                                He.render(e, t),
  23697.                                D(H, t),
  23698.                                be && _e.endShadows(),
  23699.                                (Ee.calls = 0),
  23700.                                (Ee.vertices = 0),
  23701.                                (Ee.faces = 0),
  23702.                                (Ee.points = 0),
  23703.                                void 0 === r && (r = null),
  23704.                                this.setRenderTarget(r);
  23705.                            var s = e.background;
  23706.                            if (
  23707.                                (null === s ? i(ue.r, ue.g, ue.b, he) : s instanceof n.Color && i(s.r, s.g, s.b, 1),
  23708.                                    (this.autoClear || o) && this.clear(this.autoClearColor, this.autoClearDepth, this.autoClearStencil),
  23709.                                    s instanceof n.CubeTexture ?
  23710.                                    (Ve.projectionMatrix.copy(t.projectionMatrix),
  23711.                                        Ve.matrixWorld.extractRotation(t.matrixWorld),
  23712.                                        Ve.matrixWorldInverse.getInverse(Ve.matrixWorld),
  23713.                                        ($e.material.uniforms.tCube.value = s),
  23714.                                        $e.modelViewMatrix.multiplyMatrices(Ve.matrixWorldInverse, $e.matrixWorld),
  23715.                                        Ie.update($e),
  23716.                                        J.renderBufferDirect(Ve, null, $e.geometry, $e.material, $e, null)) :
  23717.                                    s instanceof n.Texture && ((Ge.material.map = s), Ie.update(Ge), J.renderBufferDirect(Fe, null, Ge.geometry, Ge.material, Ge, null)),
  23718.                                    e.overrideMaterial)
  23719.                            ) {
  23720.                                var l = e.overrideMaterial;
  23721.                                _(W, t, a, l), _(Y, t, a, l);
  23722.                            } else Oe.setBlending(n.NoBlending), _(W, t, a), _(Y, t, a);
  23723.                            We.render(e, t), Xe.render(e, t, le), r && De.updateRenderTargetMipmap(r), Oe.setDepthTest(!0), Oe.setDepthWrite(!0), Oe.setColorWrite(!0);
  23724.                        }),
  23725.                        (this.setFaceCulling = function (e, t) {
  23726.                            Oe.setCullFace(e), Oe.setFlipSided(t === n.FrontFaceDirectionCW);
  23727.                        }),
  23728.                        (this.allocTextureUnit = I),
  23729.                        (this.setTexture2D = (function () {
  23730.                            var e = !1;
  23731.                            return function (t, i) {
  23732.                                t instanceof n.WebGLRenderTarget && (e || (console.warn("THREE.WebGLRenderer.setTexture2D: don't use render targets as textures. Use their .texture property instead."), (e = !0)), (t = t.texture)),
  23733.                                    De.setTexture2D(t, i);
  23734.                            };
  23735.                        })()),
  23736.                        (this.setTexture = (function () {
  23737.                            var e = !1;
  23738.                            return function (t, i) {
  23739.                                e || (console.warn("THREE.WebGLRenderer: .setTexture is deprecated, use setTexture2D instead."), (e = !0)), De.setTexture2D(t, i);
  23740.                            };
  23741.                        })()),
  23742.                        (this.setTextureCube = (function () {
  23743.                            var e = !1;
  23744.                            return function (t, i) {
  23745.                                t instanceof n.WebGLRenderTargetCube &&
  23746.                                    (e || (console.warn("THREE.WebGLRenderer.setTextureCube: don't use cube render targets as textures. Use their .texture property instead."), (e = !0)), (t = t.texture)),
  23747.                                    t instanceof n.CubeTexture || (Array.isArray(t.image) && 6 === t.image.length) ? De.setTextureCube(t, i) : De.setTextureCubeDynamic(t, i);
  23748.                            };
  23749.                        })()),
  23750.                        (this.getCurrentRenderTarget = function () {
  23751.                            return te;
  23752.                        }),
  23753.                        (this.setRenderTarget = function (e) {
  23754.                            (te = e), e && void 0 === ke.get(e).__webglFramebuffer && De.setupRenderTarget(e);
  23755.                            var t,
  23756.                                i = e instanceof n.WebGLRenderTargetCube;
  23757.                            if (e) {
  23758.                                var r = ke.get(e);
  23759.                                (t = i ? r.__webglFramebuffer[e.activeCubeFace] : r.__webglFramebuffer), ae.copy(e.scissor), (se = e.scissorTest), le.copy(e.viewport);
  23760.                            } else(t = null), ae.copy(me).multiplyScalar(pe), (se = ve), le.copy(ge).multiplyScalar(pe);
  23761.                            if ((ie !== t && (Ae.bindFramebuffer(Ae.FRAMEBUFFER, t), (ie = t)), Oe.scissor(ae), Oe.setScissorTest(se), Oe.viewport(le), i)) {
  23762.                                var o = ke.get(e.texture);
  23763.                                Ae.framebufferTexture2D(Ae.FRAMEBUFFER, Ae.COLOR_ATTACHMENT0, Ae.TEXTURE_CUBE_MAP_POSITIVE_X + e.activeCubeFace, o.__webglTexture, e.activeMipMapLevel);
  23764.                            }
  23765.                        }),
  23766.                        (this.readRenderTargetPixels = function (e, t, i, r, o, a) {
  23767.                            if (e instanceof n.WebGLRenderTarget == !1) return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");
  23768.                            var s = ke.get(e).__webglFramebuffer;
  23769.                            if (s) {
  23770.                                var l = !1;
  23771.                                s !== ie && (Ae.bindFramebuffer(Ae.FRAMEBUFFER, s), (l = !0));
  23772.                                try {
  23773.                                    var c = e.texture;
  23774.                                    if (c.format !== n.RGBAFormat && N(c.format) !== Ae.getParameter(Ae.IMPLEMENTATION_COLOR_READ_FORMAT))
  23775.                                        return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");
  23776.                                    if (
  23777.                                        !(
  23778.                                            c.type === n.UnsignedByteType ||
  23779.                                            N(c.type) === Ae.getParameter(Ae.IMPLEMENTATION_COLOR_READ_TYPE) ||
  23780.                                            (c.type === n.FloatType && Le.get("WEBGL_color_buffer_float")) ||
  23781.                                            (c.type === n.HalfFloatType && Le.get("EXT_color_buffer_half_float"))
  23782.                                        )
  23783.                                    )
  23784.                                        return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");
  23785.                                    Ae.checkFramebufferStatus(Ae.FRAMEBUFFER) === Ae.FRAMEBUFFER_COMPLETE ?
  23786.                                        t >= 0 && t <= e.width - r && i >= 0 && i <= e.height - o && Ae.readPixels(t, i, r, o, N(c.format), N(c.type), a) :
  23787.                                        console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.");
  23788.                                } finally {
  23789.                                    l && Ae.bindFramebuffer(Ae.FRAMEBUFFER, ie);
  23790.                                }
  23791.                            }
  23792.                        });
  23793.                    }),
  23794.                    (n.WebGLRenderTarget = function (e, t, i) {
  23795.                        (this.uuid = n.Math.generateUUID()),
  23796.                        (this.width = e),
  23797.                        (this.height = t),
  23798.                        (this.scissor = new n.Vector4(0, 0, e, t)),
  23799.                        (this.scissorTest = !1),
  23800.                        (this.viewport = new n.Vector4(0, 0, e, t)),
  23801.                        (i = i || {}),
  23802.                        void 0 === i.minFilter && (i.minFilter = n.LinearFilter),
  23803.                            (this.texture = new n.Texture(void 0, void 0, i.wrapS, i.wrapT, i.magFilter, i.minFilter, i.format, i.type, i.anisotropy, i.encoding)),
  23804.                            (this.depthBuffer = void 0 !== i.depthBuffer ? i.depthBuffer : !0),
  23805.                            (this.stencilBuffer = void 0 !== i.stencilBuffer ? i.stencilBuffer : !0),
  23806.                            (this.depthTexture = null);
  23807.                    }),
  23808.                    Object.assign(n.WebGLRenderTarget.prototype, n.EventDispatcher.prototype, {
  23809.                        setSize: function (e, t) {
  23810.                            (this.width !== e || this.height !== t) && ((this.width = e), (this.height = t), this.dispose()), this.viewport.set(0, 0, e, t), this.scissor.set(0, 0, e, t);
  23811.                        },
  23812.                        clone: function () {
  23813.                            return new this.constructor().copy(this);
  23814.                        },
  23815.                        copy: function (e) {
  23816.                            return (
  23817.                                (this.width = e.width),
  23818.                                (this.height = e.height),
  23819.                                this.viewport.copy(e.viewport),
  23820.                                (this.texture = e.texture.clone()),
  23821.                                (this.depthBuffer = e.depthBuffer),
  23822.                                (this.stencilBuffer = e.stencilBuffer),
  23823.                                (this.depthTexture = e.depthTexture),
  23824.                                this
  23825.                            );
  23826.                        },
  23827.                        dispose: function () {
  23828.                            this.dispatchEvent({
  23829.                                type: "dispose"
  23830.                            });
  23831.                        },
  23832.                    }),
  23833.                    (n.WebGLRenderTargetCube = function (e, t, i) {
  23834.                        n.WebGLRenderTarget.call(this, e, t, i), (this.activeCubeFace = 0), (this.activeMipMapLevel = 0);
  23835.                    }),
  23836.                    (n.WebGLRenderTargetCube.prototype = Object.create(n.WebGLRenderTarget.prototype)),
  23837.                    (n.WebGLRenderTargetCube.prototype.constructor = n.WebGLRenderTargetCube),
  23838.                    (n.WebGLBufferRenderer = function (e, t, i) {
  23839.                        function r(e) {
  23840.                            s = e;
  23841.                        }
  23842.  
  23843.                        function o(t, n) {
  23844.                            e.drawArrays(s, t, n), i.calls++, (i.vertices += n), s === e.TRIANGLES && (i.faces += n / 3);
  23845.                        }
  23846.  
  23847.                        function a(r) {
  23848.                            var o = t.get("ANGLE_instanced_arrays");
  23849.                            if (null === o) return void console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");
  23850.                            var a = r.attributes.position,
  23851.                                l = 0;
  23852.                            a instanceof n.InterleavedBufferAttribute ? ((l = a.data.count), o.drawArraysInstancedANGLE(s, 0, l, r.maxInstancedCount)) : ((l = a.count), o.drawArraysInstancedANGLE(s, 0, l, r.maxInstancedCount)),
  23853.                                i.calls++,
  23854.                                (i.vertices += l * r.maxInstancedCount),
  23855.                                s === e.TRIANGLES && (i.faces += (r.maxInstancedCount * l) / 3);
  23856.                        }
  23857.                        var s;
  23858.                        (this.setMode = r), (this.render = o), (this.renderInstances = a);
  23859.                    }),
  23860.                    (n.WebGLClipping = function () {
  23861.                        function e() {
  23862.                            u.value !== r && ((u.value = r), (u.needsUpdate = o > 0)), (i.numPlanes = o);
  23863.                        }
  23864.  
  23865.                        function t(e, t, n, r) {
  23866.                            var o = null !== e ? e.length : 0,
  23867.                                a = null;
  23868.                            if (0 !== o) {
  23869.                                if (((a = u.value), r !== !0 || null === a)) {
  23870.                                    var s = n + 4 * o,
  23871.                                        h = t.matrixWorldInverse;
  23872.                                    c.getNormalMatrix(h), (null === a || a.length < s) && (a = new Float32Array(s));
  23873.                                    for (var d = 0, f = n; d !== o; ++d, f += 4) l.copy(e[d]).applyMatrix4(h, c), l.normal.toArray(a, f), (a[f + 3] = l.constant);
  23874.                                }
  23875.                                (u.value = a), (u.needsUpdate = !0);
  23876.                            }
  23877.                            return (i.numPlanes = o), a;
  23878.                        }
  23879.                        var i = this,
  23880.                            r = null,
  23881.                            o = 0,
  23882.                            a = !1,
  23883.                            s = !1,
  23884.                            l = new n.Plane(),
  23885.                            c = new n.Matrix3(),
  23886.                            u = {
  23887.                                value: null,
  23888.                                needsUpdate: !1
  23889.                            };
  23890.                        (this.uniform = u),
  23891.                        (this.numPlanes = 0),
  23892.                        (this.init = function (e, i, n) {
  23893.                            var s = 0 !== e.length || i || 0 !== o || a;
  23894.                            return (a = i), (r = t(e, n, 0)), (o = e.length), s;
  23895.                        }),
  23896.                        (this.beginShadows = function () {
  23897.                            (s = !0), t(null);
  23898.                        }),
  23899.                        (this.endShadows = function () {
  23900.                            (s = !1), e();
  23901.                        }),
  23902.                        (this.setState = function (i, n, l, c, h) {
  23903.                            if (!a || null === i || 0 === i.length || (s && !n)) s ? t(null) : e();
  23904.                            else {
  23905.                                var d = s ? 0 : o,
  23906.                                    f = 4 * d,
  23907.                                    p = c.clippingState || null;
  23908.                                (u.value = p), (p = t(i, l, f, h));
  23909.                                for (var m = 0; m !== f; ++m) p[m] = r[m];
  23910.                                (c.clippingState = p), (this.numPlanes += d);
  23911.                            }
  23912.                        });
  23913.                    }),
  23914.                    (n.WebGLIndexedBufferRenderer = function (e, t, i) {
  23915.                        function n(e) {
  23916.                            s = e;
  23917.                        }
  23918.  
  23919.                        function r(i) {
  23920.                            i.array instanceof Uint32Array && t.get("OES_element_index_uint") ? ((l = e.UNSIGNED_INT), (c = 4)) : ((l = e.UNSIGNED_SHORT), (c = 2));
  23921.                        }
  23922.  
  23923.                        function o(t, n) {
  23924.                            e.drawElements(s, n, l, t * c), i.calls++, (i.vertices += n), s === e.TRIANGLES && (i.faces += n / 3);
  23925.                        }
  23926.  
  23927.                        function a(n, r, o) {
  23928.                            var a = t.get("ANGLE_instanced_arrays");
  23929.                            return null === a ?
  23930.                                void console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.") :
  23931.                                (a.drawElementsInstancedANGLE(s, o, l, r * c, n.maxInstancedCount), i.calls++, (i.vertices += o * n.maxInstancedCount), void(s === e.TRIANGLES && (i.faces += (n.maxInstancedCount * o) / 3)));
  23932.                        }
  23933.                        var s, l, c;
  23934.                        (this.setMode = n), (this.setIndex = r), (this.render = o), (this.renderInstances = a);
  23935.                    }),
  23936.                    (n.WebGLExtensions = function (e) {
  23937.                        var t = {};
  23938.                        this.get = function (i) {
  23939.                            if (void 0 !== t[i]) return t[i];
  23940.                            var n;
  23941.                            switch (i) {
  23942.                            case "WEBGL_depth_texture":
  23943.                                n = e.getExtension("WEBGL_depth_texture") || e.getExtension("MOZ_WEBGL_depth_texture") || e.getExtension("WEBKIT_WEBGL_depth_texture");
  23944.                                break;
  23945.                            case "EXT_texture_filter_anisotropic":
  23946.                                n = e.getExtension("EXT_texture_filter_anisotropic") || e.getExtension("MOZ_EXT_texture_filter_anisotropic") || e.getExtension("WEBKIT_EXT_texture_filter_anisotropic");
  23947.                                break;
  23948.                            case "WEBGL_compressed_texture_s3tc":
  23949.                                n = e.getExtension("WEBGL_compressed_texture_s3tc") || e.getExtension("MOZ_WEBGL_compressed_texture_s3tc") || e.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");
  23950.                                break;
  23951.                            case "WEBGL_compressed_texture_pvrtc":
  23952.                                n = e.getExtension("WEBGL_compressed_texture_pvrtc") || e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");
  23953.                                break;
  23954.                            case "WEBGL_compressed_texture_etc1":
  23955.                                n = e.getExtension("WEBGL_compressed_texture_etc1");
  23956.                                break;
  23957.                            default:
  23958.                                n = e.getExtension(i);
  23959.                            }
  23960.                            return null === n && console.warn("THREE.WebGLRenderer: " + i + " extension not supported."), (t[i] = n), n;
  23961.                        };
  23962.                    }),
  23963.                    (n.WebGLCapabilities = function (e, t, i) {
  23964.                        function n() {
  23965.                            if (void 0 !== o) return o;
  23966.                            var i = t.get("EXT_texture_filter_anisotropic");
  23967.                            return (o = null !== i ? e.getParameter(i.MAX_TEXTURE_MAX_ANISOTROPY_EXT) : 0);
  23968.                        }
  23969.  
  23970.                        function r(t) {
  23971.                            if ("highp" === t) {
  23972.                                if (e.getShaderPrecisionFormat(e.VERTEX_SHADER, e.HIGH_FLOAT).precision > 0 && e.getShaderPrecisionFormat(e.FRAGMENT_SHADER, e.HIGH_FLOAT).precision > 0) return "highp";
  23973.                                t = "mediump";
  23974.                            }
  23975.                            return "mediump" === t && e.getShaderPrecisionFormat(e.VERTEX_SHADER, e.MEDIUM_FLOAT).precision > 0 && e.getShaderPrecisionFormat(e.FRAGMENT_SHADER, e.MEDIUM_FLOAT).precision > 0 ? "mediump" : "lowp";
  23976.                        }
  23977.                        var o;
  23978.                        (this.getMaxAnisotropy = n),
  23979.                        (this.getMaxPrecision = r),
  23980.                        (this.precision = void 0 !== i.precision ? i.precision : "highp"),
  23981.                        (this.logarithmicDepthBuffer = void 0 !== i.logarithmicDepthBuffer ? i.logarithmicDepthBuffer : !1),
  23982.                        (this.maxTextures = e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS)),
  23983.                        (this.maxVertexTextures = e.getParameter(e.MAX_VERTEX_TEXTURE_IMAGE_UNITS)),
  23984.                        (this.maxTextureSize = e.getParameter(e.MAX_TEXTURE_SIZE)),
  23985.                        (this.maxCubemapSize = e.getParameter(e.MAX_CUBE_MAP_TEXTURE_SIZE)),
  23986.                        (this.maxAttributes = e.getParameter(e.MAX_VERTEX_ATTRIBS)),
  23987.                        (this.maxVertexUniforms = e.getParameter(e.MAX_VERTEX_UNIFORM_VECTORS)),
  23988.                        (this.maxVaryings = e.getParameter(e.MAX_VARYING_VECTORS)),
  23989.                        (this.maxFragmentUniforms = e.getParameter(e.MAX_FRAGMENT_UNIFORM_VECTORS)),
  23990.                        (this.vertexTextures = this.maxVertexTextures > 0),
  23991.                        (this.floatFragmentTextures = !!t.get("OES_texture_float")),
  23992.                        (this.floatVertexTextures = this.vertexTextures && this.floatFragmentTextures);
  23993.                        var a = r(this.precision);
  23994.                        a !== this.precision && (console.warn("THREE.WebGLRenderer:", this.precision, "not supported, using", a, "instead."), (this.precision = a)),
  23995.                            this.logarithmicDepthBuffer && (this.logarithmicDepthBuffer = !!t.get("EXT_frag_depth"));
  23996.                    }),
  23997.                    (n.WebGLGeometries = function (e, t, i) {
  23998.                        function r(e) {
  23999.                            var t = e.geometry;
  24000.                            if (void 0 !== u[t.id]) return u[t.id];
  24001.                            t.addEventListener("dispose", o);
  24002.                            var r;
  24003.                            return (
  24004.                                t instanceof n.BufferGeometry ? (r = t) : t instanceof n.Geometry && (void 0 === t._bufferGeometry && (t._bufferGeometry = new n.BufferGeometry().setFromObject(e)), (r = t._bufferGeometry)),
  24005.                                (u[t.id] = r),
  24006.                                i.memory.geometries++,
  24007.                                r
  24008.                            );
  24009.                        }
  24010.  
  24011.                        function o(e) {
  24012.                            var n = e.target,
  24013.                                r = u[n.id];
  24014.                            null !== r.index && s(r.index), l(r.attributes), n.removeEventListener("dispose", o), delete u[n.id];
  24015.                            var a = t.get(n);
  24016.                            a.wireframe && s(a.wireframe), t["delete"](n);
  24017.                            var c = t.get(r);
  24018.                            c.wireframe && s(c.wireframe), t["delete"](r), i.memory.geometries--;
  24019.                        }
  24020.  
  24021.                        function a(e) {
  24022.                            return e instanceof n.InterleavedBufferAttribute ? t.get(e.data).__webglBuffer : t.get(e).__webglBuffer;
  24023.                        }
  24024.  
  24025.                        function s(t) {
  24026.                            var i = a(t);
  24027.                            void 0 !== i && (e.deleteBuffer(i), c(t));
  24028.                        }
  24029.  
  24030.                        function l(e) {
  24031.                            for (var t in e) s(e[t]);
  24032.                        }
  24033.  
  24034.                        function c(e) {
  24035.                            e instanceof n.InterleavedBufferAttribute ? t["delete"](e.data) : t["delete"](e);
  24036.                        }
  24037.                        var u = {};
  24038.                        this.get = r;
  24039.                    }),
  24040.                    (n.WebGLLights = function () {
  24041.                        var e = {};
  24042.                        this.get = function (t) {
  24043.                            if (void 0 !== e[t.id]) return e[t.id];
  24044.                            var i;
  24045.                            switch (t.type) {
  24046.                            case "DirectionalLight":
  24047.                                i = {
  24048.                                    direction: new n.Vector3(),
  24049.                                    color: new n.Color(),
  24050.                                    shadow: !1,
  24051.                                    shadowBias: 0,
  24052.                                    shadowRadius: 1,
  24053.                                    shadowMapSize: new n.Vector2()
  24054.                                };
  24055.                                break;
  24056.                            case "SpotLight":
  24057.                                i = {
  24058.                                    position: new n.Vector3(),
  24059.                                    direction: new n.Vector3(),
  24060.                                    color: new n.Color(),
  24061.                                    distance: 0,
  24062.                                    coneCos: 0,
  24063.                                    penumbraCos: 0,
  24064.                                    decay: 0,
  24065.                                    shadow: !1,
  24066.                                    shadowBias: 0,
  24067.                                    shadowRadius: 1,
  24068.                                    shadowMapSize: new n.Vector2(),
  24069.                                };
  24070.                                break;
  24071.                            case "PointLight":
  24072.                                i = {
  24073.                                    position: new n.Vector3(),
  24074.                                    color: new n.Color(),
  24075.                                    distance: 0,
  24076.                                    decay: 0,
  24077.                                    shadow: !1,
  24078.                                    shadowBias: 0,
  24079.                                    shadowRadius: 1,
  24080.                                    shadowMapSize: new n.Vector2()
  24081.                                };
  24082.                                break;
  24083.                            case "HemisphereLight":
  24084.                                i = {
  24085.                                    direction: new n.Vector3(),
  24086.                                    skyColor: new n.Color(),
  24087.                                    groundColor: new n.Color()
  24088.                                };
  24089.                            }
  24090.                            return (e[t.id] = i), i;
  24091.                        };
  24092.                    }),
  24093.                    (n.WebGLObjects = function (e, t, i) {
  24094.                        function r(t) {
  24095.                            var i = h.get(t);
  24096.                            t.geometry instanceof n.Geometry && i.updateFromObject(t);
  24097.                            var r = i.index,
  24098.                                a = i.attributes;
  24099.                            null !== r && o(r, e.ELEMENT_ARRAY_BUFFER);
  24100.                            for (var s in a) o(a[s], e.ARRAY_BUFFER);
  24101.                            var l = i.morphAttributes;
  24102.                            for (var s in l)
  24103.                                for (var c = l[s], u = 0, d = c.length; d > u; u++) o(c[u], e.ARRAY_BUFFER);
  24104.                            return i;
  24105.                        }
  24106.  
  24107.                        function o(e, i) {
  24108.                            var r = e instanceof n.InterleavedBufferAttribute ? e.data : e,
  24109.                                o = t.get(r);
  24110.                            void 0 === o.__webglBuffer ? a(o, r, i) : o.version !== r.version && s(o, r, i);
  24111.                        }
  24112.  
  24113.                        function a(t, i, n) {
  24114.                            (t.__webglBuffer = e.createBuffer()), e.bindBuffer(n, t.__webglBuffer);
  24115.                            var r = i.dynamic ? e.DYNAMIC_DRAW : e.STATIC_DRAW;
  24116.                            e.bufferData(n, i.array, r), (t.version = i.version);
  24117.                        }
  24118.  
  24119.                        function s(t, i, n) {
  24120.                            e.bindBuffer(n, t.__webglBuffer),
  24121.                                i.dynamic === !1 || -1 === i.updateRange.count ?
  24122.                                e.bufferSubData(n, 0, i.array) :
  24123.                                0 === i.updateRange.count ?
  24124.                                console.error("THREE.WebGLObjects.updateBuffer: dynamic THREE.BufferAttribute marked as needsUpdate but updateRange.count is 0, ensure you are using set methods or updating manually.") :
  24125.                                (e.bufferSubData(n, i.updateRange.offset * i.array.BYTES_PER_ELEMENT, i.array.subarray(i.updateRange.offset, i.updateRange.offset + i.updateRange.count)), (i.updateRange.count = 0)),
  24126.                                (t.version = i.version);
  24127.                        }
  24128.  
  24129.                        function l(e) {
  24130.                            return e instanceof n.InterleavedBufferAttribute ? t.get(e.data).__webglBuffer : t.get(e).__webglBuffer;
  24131.                        }
  24132.  
  24133.                        function c(i) {
  24134.                            var r = t.get(i);
  24135.                            if (void 0 !== r.wireframe) return r.wireframe;
  24136.                            var a = [],
  24137.                                s = i.index,
  24138.                                l = i.attributes,
  24139.                                c = l.position;
  24140.                            if (null !== s)
  24141.                                for (var h = {}, d = s.array, f = 0, p = d.length; p > f; f += 3) {
  24142.                                    var m = d[f + 0],
  24143.                                        v = d[f + 1],
  24144.                                        g = d[f + 2];
  24145.                                    u(h, m, v) && a.push(m, v), u(h, v, g) && a.push(v, g), u(h, g, m) && a.push(g, m);
  24146.                                }
  24147.                            else
  24148.                                for (var d = l.position.array, f = 0, p = d.length / 3 - 1; p > f; f += 3) {
  24149.                                    var m = f + 0,
  24150.                                        v = f + 1,
  24151.                                        g = f + 2;
  24152.                                    a.push(m, v, v, g, g, m);
  24153.                                }
  24154.                            var y = c.count > 65535 ? Uint32Array : Uint16Array,
  24155.                                _ = new n.BufferAttribute(new y(a), 1);
  24156.                            return o(_, e.ELEMENT_ARRAY_BUFFER), (r.wireframe = _), _;
  24157.                        }
  24158.  
  24159.                        function u(e, t, i) {
  24160.                            if (t > i) {
  24161.                                var n = t;
  24162.                                (t = i), (i = n);
  24163.                            }
  24164.                            var r = e[t];
  24165.                            return void 0 === r ? ((e[t] = [i]), !0) : -1 === r.indexOf(i) ? (r.push(i), !0) : !1;
  24166.                        }
  24167.                        var h = new n.WebGLGeometries(e, t, i);
  24168.                        (this.getAttributeBuffer = l), (this.getWireframeAttribute = c), (this.update = r);
  24169.                    }),
  24170.                    (n.WebGLProgram = (function () {
  24171.                        function e(e) {
  24172.                            switch (e) {
  24173.                            case n.LinearEncoding:
  24174.                                return ["Linear", "( value )"];
  24175.                            case n.sRGBEncoding:
  24176.                                return ["sRGB", "( value )"];
  24177.                            case n.RGBEEncoding:
  24178.                                return ["RGBE", "( value )"];
  24179.                            case n.RGBM7Encoding:
  24180.                                return ["RGBM", "( value, 7.0 )"];
  24181.                            case n.RGBM16Encoding:
  24182.                                return ["RGBM", "( value, 16.0 )"];
  24183.                            case n.RGBDEncoding:
  24184.                                return ["RGBD", "( value, 256.0 )"];
  24185.                            case n.GammaEncoding:
  24186.                                return ["Gamma", "( value, float( GAMMA_FACTOR ) )"];
  24187.                            default:
  24188.                                throw new Error("unsupported encoding: " + e);
  24189.                            }
  24190.                        }
  24191.  
  24192.                        function t(t, i) {
  24193.                            var n = e(i);
  24194.                            return "vec4 " + t + "( vec4 value ) { return " + n[0] + "ToLinear" + n[1] + "; }";
  24195.                        }
  24196.  
  24197.                        function i(t, i) {
  24198.                            var n = e(i);
  24199.                            return "vec4 " + t + "( vec4 value ) { return LinearTo" + n[0] + n[1] + "; }";
  24200.                        }
  24201.  
  24202.                        function r(e, t) {
  24203.                            var i;
  24204.                            switch (t) {
  24205.                            case n.LinearToneMapping:
  24206.                                i = "Linear";
  24207.                                break;
  24208.                            case n.ReinhardToneMapping:
  24209.                                i = "Reinhard";
  24210.                                break;
  24211.                            case n.Uncharted2ToneMapping:
  24212.                                i = "Uncharted2";
  24213.                                break;
  24214.                            case n.CineonToneMapping:
  24215.                                i = "OptimizedCineon";
  24216.                                break;
  24217.                            default:
  24218.                                throw new Error("unsupported toneMapping: " + t);
  24219.                            }
  24220.                            return "vec3 " + e + "( vec3 color ) { return " + i + "ToneMapping( color ); }";
  24221.                        }
  24222.  
  24223.                        function o(e, t, i) {
  24224.                            e = e || {};
  24225.                            var n = [
  24226.                                e.derivatives || t.envMapCubeUV || t.bumpMap || t.normalMap || t.flatShading ? "#extension GL_OES_standard_derivatives : enable" : "",
  24227.                                (e.fragDepth || t.logarithmicDepthBuffer) && i.get("EXT_frag_depth") ? "#extension GL_EXT_frag_depth : enable" : "",
  24228.                                e.drawBuffers && i.get("WEBGL_draw_buffers") ? "#extension GL_EXT_draw_buffers : require" : "",
  24229.                                (e.shaderTextureLOD || t.envMap) && i.get("EXT_shader_texture_lod") ? "#extension GL_EXT_shader_texture_lod : enable" : "",
  24230.                            ];
  24231.                            return n.filter(l).join("n");
  24232.                        }
  24233.  
  24234.                        function a(e) {
  24235.                            var t = [];
  24236.                            for (var i in e) {
  24237.                                var n = e[i];
  24238.                                n !== !1 && t.push("#define " + i + " " + n);
  24239.                            }
  24240.                            return t.join("n");
  24241.                        }
  24242.  
  24243.                        function s(e, t, i) {
  24244.                            for (var n = {}, r = e.getProgramParameter(t, e.ACTIVE_ATTRIBUTES), o = 0; r > o; o++) {
  24245.                                var a = e.getActiveAttrib(t, o),
  24246.                                    s = a.name;
  24247.                                n[s] = e.getAttribLocation(t, s);
  24248.                            }
  24249.                            return n;
  24250.                        }
  24251.  
  24252.                        function l(e) {
  24253.                            return "" !== e;
  24254.                        }
  24255.  
  24256.                        function c(e, t) {
  24257.                            return e
  24258.                                .replace(/NUM_DIR_LIGHTS/g, t.numDirLights)
  24259.                                .replace(/NUM_SPOT_LIGHTS/g, t.numSpotLights)
  24260.                                .replace(/NUM_POINT_LIGHTS/g, t.numPointLights)
  24261.                                .replace(/NUM_HEMI_LIGHTS/g, t.numHemiLights);
  24262.                        }
  24263.  
  24264.                        function u(e) {
  24265.                            function t(e, t) {
  24266.                                var i = n.ShaderChunk[t];
  24267.                                if (void 0 === i) throw new Error("Can not resolve #include <" + t + ">");
  24268.                                return u(i);
  24269.                            }
  24270.                            var i = /#include +<([wd.]+)>/g;
  24271.                            return e.replace(i, t);
  24272.                        }
  24273.  
  24274.                        function h(e) {
  24275.                            function t(e, t, i, n) {
  24276.                                for (var r = "", o = parseInt(t); o < parseInt(i); o++) r += n.replace(/[ i ]/g, "[ " + o + " ]");
  24277.                                return r;
  24278.                            }
  24279.                            var i = /for ( int i = (d+); i < (d+); i ++ ) {([sS]+?)(?=})}/g;
  24280.                            return e.replace(i, t);
  24281.                        }
  24282.                        var d = 0;
  24283.                        return function (e, f, p, m) {
  24284.                            var v = e.context,
  24285.                                g = p.extensions,
  24286.                                y = p.defines,
  24287.                                _ = p.__webglShader.vertexShader,
  24288.                                b = p.__webglShader.fragmentShader,
  24289.                                x = "SHADOWMAP_TYPE_BASIC";
  24290.                            m.shadowMapType === n.PCFShadowMap ? (x = "SHADOWMAP_TYPE_PCF") : m.shadowMapType === n.PCFSoftShadowMap && (x = "SHADOWMAP_TYPE_PCF_SOFT");
  24291.                            var w = "ENVMAP_TYPE_CUBE",
  24292.                                M = "ENVMAP_MODE_REFLECTION",
  24293.                                T = "ENVMAP_BLENDING_MULTIPLY";
  24294.                            if (m.envMap) {
  24295.                                switch (p.envMap.mapping) {
  24296.                                case n.CubeReflectionMapping:
  24297.                                case n.CubeRefractionMapping:
  24298.                                    w = "ENVMAP_TYPE_CUBE";
  24299.                                    break;
  24300.                                case n.CubeUVReflectionMapping:
  24301.                                case n.CubeUVRefractionMapping:
  24302.                                    w = "ENVMAP_TYPE_CUBE_UV";
  24303.                                    break;
  24304.                                case n.EquirectangularReflectionMapping:
  24305.                                case n.EquirectangularRefractionMapping:
  24306.                                    w = "ENVMAP_TYPE_EQUIREC";
  24307.                                    break;
  24308.                                case n.SphericalReflectionMapping:
  24309.                                    w = "ENVMAP_TYPE_SPHERE";
  24310.                                }
  24311.                                switch (p.envMap.mapping) {
  24312.                                case n.CubeRefractionMapping:
  24313.                                case n.EquirectangularRefractionMapping:
  24314.                                    M = "ENVMAP_MODE_REFRACTION";
  24315.                                }
  24316.                                switch (p.combine) {
  24317.                                case n.MultiplyOperation:
  24318.                                    T = "ENVMAP_BLENDING_MULTIPLY";
  24319.                                    break;
  24320.                                case n.MixOperation:
  24321.                                    T = "ENVMAP_BLENDING_MIX";
  24322.                                    break;
  24323.                                case n.AddOperation:
  24324.                                    T = "ENVMAP_BLENDING_ADD";
  24325.                                }
  24326.                            }
  24327.                            var S,
  24328.                                E,
  24329.                                A = e.gammaFactor > 0 ? e.gammaFactor : 1,
  24330.                                C = o(g, m, e.extensions),
  24331.                                P = a(y),
  24332.                                L = v.createProgram();
  24333.                            p instanceof n.RawShaderMaterial ?
  24334.                                ((S = [P].filter(l).join("n")), (E = [P].filter(l).join("n"))) :
  24335.                                ((S = [
  24336.                                            "precision " + m.precision + " float;",
  24337.                                            "precision " + m.precision + " int;",
  24338.                                            "#define SHADER_NAME " + p.__webglShader.name,
  24339.                                            P,
  24340.                                            m.supportsVertexTextures ? "#define VERTEX_TEXTURES" : "",
  24341.                                            "#define GAMMA_FACTOR " + A,
  24342.                                            "#define MAX_BONES " + m.maxBones,
  24343.                                            m.map ? "#define USE_MAP" : "",
  24344.                                            m.envMap ? "#define USE_ENVMAP" : "",
  24345.                                            m.envMap ? "#define " + M : "",
  24346.                                            m.lightMap ? "#define USE_LIGHTMAP" : "",
  24347.                                            m.aoMap ? "#define USE_AOMAP" : "",
  24348.                                            m.emissiveMap ? "#define USE_EMISSIVEMAP" : "",
  24349.                                            m.bumpMap ? "#define USE_BUMPMAP" : "",
  24350.                                            m.normalMap ? "#define USE_NORMALMAP" : "",
  24351.                                            m.displacementMap && m.supportsVertexTextures ? "#define USE_DISPLACEMENTMAP" : "",
  24352.                                            m.specularMap ? "#define USE_SPECULARMAP" : "",
  24353.                                            m.roughnessMap ? "#define USE_ROUGHNESSMAP" : "",
  24354.                                            m.metalnessMap ? "#define USE_METALNESSMAP" : "",
  24355.                                            m.alphaMap ? "#define USE_ALPHAMAP" : "",
  24356.                                            m.vertexColors ? "#define USE_COLOR" : "",
  24357.                                            m.flatShading ? "#define FLAT_SHADED" : "",
  24358.                                            m.skinning ? "#define USE_SKINNING" : "",
  24359.                                            m.useVertexTexture ? "#define BONE_TEXTURE" : "",
  24360.                                            m.morphTargets ? "#define USE_MORPHTARGETS" : "",
  24361.                                            m.morphNormals && m.flatShading === !1 ? "#define USE_MORPHNORMALS" : "",
  24362.                                            m.doubleSided ? "#define DOUBLE_SIDED" : "",
  24363.                                            m.flipSided ? "#define FLIP_SIDED" : "",
  24364.                                            "#define NUM_CLIPPING_PLANES " + m.numClippingPlanes,
  24365.                                            m.shadowMapEnabled ? "#define USE_SHADOWMAP" : "",
  24366.                                            m.shadowMapEnabled ? "#define " + x : "",
  24367.                                            m.sizeAttenuation ? "#define USE_SIZEATTENUATION" : "",
  24368.                                            m.logarithmicDepthBuffer ? "#define USE_LOGDEPTHBUF" : "",
  24369.                                            m.logarithmicDepthBuffer && e.extensions.get("EXT_frag_depth") ? "#define USE_LOGDEPTHBUF_EXT" : "",
  24370.                                            "uniform mat4 modelMatrix;",
  24371.                                            "uniform mat4 modelViewMatrix;",
  24372.                                            "uniform mat4 projectionMatrix;",
  24373.                                            "uniform mat4 viewMatrix;",
  24374.                                            "uniform mat3 normalMatrix;",
  24375.                                            "uniform vec3 cameraPosition;",
  24376.                                            "attribute vec3 position;",
  24377.                                            "attribute vec3 normal;",
  24378.                                            "attribute vec2 uv;",
  24379.                                            "#ifdef USE_COLOR",
  24380.                                             "   attribute vec3 color;",
  24381.                                            "#endif",
  24382.                                            "#ifdef USE_MORPHTARGETS",
  24383.                                             "   attribute vec3 morphTarget0;",
  24384.                                             "   attribute vec3 morphTarget1;",
  24385.                                             "   attribute vec3 morphTarget2;",
  24386.                                             "   attribute vec3 morphTarget3;",
  24387.                                             "   #ifdef USE_MORPHNORMALS",
  24388.                                             "           attribute vec3 morphNormal0;",
  24389.                                             "           attribute vec3 morphNormal1;",
  24390.                                             "           attribute vec3 morphNormal2;",
  24391.                                             "           attribute vec3 morphNormal3;",
  24392.                                             "   #else",
  24393.                                             "           attribute vec3 morphTarget4;",
  24394.                                             "           attribute vec3 morphTarget5;",
  24395.                                             "           attribute vec3 morphTarget6;",
  24396.                                             "           attribute vec3 morphTarget7;",
  24397.                                             "   #endif",
  24398.                                            "#endif",
  24399.                                            "#ifdef USE_SKINNING",
  24400.                                             "   attribute vec4 skinIndex;",
  24401.                                             "   attribute vec4 skinWeight;",
  24402.                                            "#endif",
  24403.                                            "n",
  24404.                                        ]
  24405.                                        .filter(l)
  24406.                                        .join("n")),
  24407.                                    (E = [
  24408.                                            C,
  24409.                                            "precision " + m.precision + " float;",
  24410.                                            "precision " + m.precision + " int;",
  24411.                                            "#define SHADER_NAME " + p.__webglShader.name,
  24412.                                            P,
  24413.                                            m.alphaTest ? "#define ALPHATEST " + m.alphaTest : "",
  24414.                                            "#define GAMMA_FACTOR " + A,
  24415.                                            m.useFog && m.fog ? "#define USE_FOG" : "",
  24416.                                            m.useFog && m.fogExp ? "#define FOG_EXP2" : "",
  24417.                                            m.map ? "#define USE_MAP" : "",
  24418.                                            m.envMap ? "#define USE_ENVMAP" : "",
  24419.                                            m.envMap ? "#define " + w : "",
  24420.                                            m.envMap ? "#define " + M : "",
  24421.                                            m.envMap ? "#define " + T : "",
  24422.                                            m.lightMap ? "#define USE_LIGHTMAP" : "",
  24423.                                            m.aoMap ? "#define USE_AOMAP" : "",
  24424.                                            m.emissiveMap ? "#define USE_EMISSIVEMAP" : "",
  24425.                                            m.bumpMap ? "#define USE_BUMPMAP" : "",
  24426.                                            m.normalMap ? "#define USE_NORMALMAP" : "",
  24427.                                            m.specularMap ? "#define USE_SPECULARMAP" : "",
  24428.                                            m.roughnessMap ? "#define USE_ROUGHNESSMAP" : "",
  24429.                                            m.metalnessMap ? "#define USE_METALNESSMAP" : "",
  24430.                                            m.alphaMap ? "#define USE_ALPHAMAP" : "",
  24431.                                            m.vertexColors ? "#define USE_COLOR" : "",
  24432.                                            m.flatShading ? "#define FLAT_SHADED" : "",
  24433.                                            m.doubleSided ? "#define DOUBLE_SIDED" : "",
  24434.                                            m.flipSided ? "#define FLIP_SIDED" : "",
  24435.                                            "#define NUM_CLIPPING_PLANES " + m.numClippingPlanes,
  24436.                                            m.shadowMapEnabled ? "#define USE_SHADOWMAP" : "",
  24437.                                            m.shadowMapEnabled ? "#define " + x : "",
  24438.                                            m.premultipliedAlpha ? "#define PREMULTIPLIED_ALPHA" : "",
  24439.                                            m.physicallyCorrectLights ? "#define PHYSICALLY_CORRECT_LIGHTS" : "",
  24440.                                            m.logarithmicDepthBuffer ? "#define USE_LOGDEPTHBUF" : "",
  24441.                                            m.logarithmicDepthBuffer && e.extensions.get("EXT_frag_depth") ? "#define USE_LOGDEPTHBUF_EXT" : "",
  24442.                                            m.envMap && e.extensions.get("EXT_shader_texture_lod") ? "#define TEXTURE_LOD_EXT" : "",
  24443.                                            "uniform mat4 viewMatrix;",
  24444.                                            "uniform vec3 cameraPosition;",
  24445.                                            m.toneMapping !== n.NoToneMapping ? "#define TONE_MAPPING" : "",
  24446.                                            m.toneMapping !== n.NoToneMapping ? n.ShaderChunk.tonemapping_pars_fragment : "",
  24447.                                            m.toneMapping !== n.NoToneMapping ? r("toneMapping", m.toneMapping) : "",
  24448.                                            m.outputEncoding || m.mapEncoding || m.envMapEncoding || m.emissiveMapEncoding ? n.ShaderChunk.encodings_pars_fragment : "",
  24449.                                            m.mapEncoding ? t("mapTexelToLinear", m.mapEncoding) : "",
  24450.                                            m.envMapEncoding ? t("envMapTexelToLinear", m.envMapEncoding) : "",
  24451.                                            m.emissiveMapEncoding ? t("emissiveMapTexelToLinear", m.emissiveMapEncoding) : "",
  24452.                                            m.outputEncoding ? i("linearToOutputTexel", m.outputEncoding) : "",
  24453.                                            m.depthPacking ? "#define DEPTH_PACKING " + p.depthPacking : "",
  24454.                                            "n",
  24455.                                        ]
  24456.                                        .filter(l)
  24457.                                        .join("n"))),
  24458.                                (_ = u(_, m)),
  24459.                                (_ = c(_, m)),
  24460.                                (b = u(b, m)),
  24461.                                (b = c(b, m)),
  24462.                                p instanceof n.ShaderMaterial == !1 && ((_ = h(_)), (b = h(b)));
  24463.                            var R = S + _,
  24464.                                O = E + b,
  24465.                                k = n.WebGLShader(v, v.VERTEX_SHADER, R),
  24466.                                D = n.WebGLShader(v, v.FRAGMENT_SHADER, O);
  24467.                            v.attachShader(L, k),
  24468.                                v.attachShader(L, D),
  24469.                                void 0 !== p.index0AttributeName ? v.bindAttribLocation(L, 0, p.index0AttributeName) : m.morphTargets === !0 && v.bindAttribLocation(L, 0, "position"),
  24470.                                v.linkProgram(L);
  24471.                            var I = v.getProgramInfoLog(L),
  24472.                                N = v.getShaderInfoLog(k),
  24473.                                U = v.getShaderInfoLog(D),
  24474.                                j = !0,
  24475.                                B = !0;
  24476.                            v.getProgramParameter(L, v.LINK_STATUS) === !1 ?
  24477.                                ((j = !1), console.error("THREE.WebGLProgram: shader error: ", v.getError(), "gl.VALIDATE_STATUS", v.getProgramParameter(L, v.VALIDATE_STATUS), "gl.getProgramInfoLog", I, N, U)) :
  24478.                                "" !== I ?
  24479.                                console.warn("THREE.WebGLProgram: gl.getProgramInfoLog()", I) :
  24480.                                ("" === N || "" === U) && (B = !1),
  24481.                                B && (this.diagnostics = {
  24482.                                    runnable: j,
  24483.                                    material: p,
  24484.                                    programLog: I,
  24485.                                    vertexShader: {
  24486.                                        log: N,
  24487.                                        prefix: S
  24488.                                    },
  24489.                                    fragmentShader: {
  24490.                                        log: U,
  24491.                                        prefix: E
  24492.                                    }
  24493.                                }),
  24494.                                v.deleteShader(k),
  24495.                                v.deleteShader(D);
  24496.                            var F;
  24497.                            this.getUniforms = function () {
  24498.                                return void 0 === F && (F = new n.WebGLUniforms(v, L, e)), F;
  24499.                            };
  24500.                            var V;
  24501.                            return (
  24502.                                (this.getAttributes = function () {
  24503.                                    return void 0 === V && (V = s(v, L)), V;
  24504.                                }),
  24505.                                (this.destroy = function () {
  24506.                                    v.deleteProgram(L), (this.program = void 0);
  24507.                                }),
  24508.                                Object.defineProperties(this, {
  24509.                                    uniforms: {
  24510.                                        get: function () {
  24511.                                            return console.warn("THREE.WebGLProgram: .uniforms is now .getUniforms()."), this.getUniforms();
  24512.                                        },
  24513.                                    },
  24514.                                    attributes: {
  24515.                                        get: function () {
  24516.                                            return console.warn("THREE.WebGLProgram: .attributes is now .getAttributes()."), this.getAttributes();
  24517.                                        },
  24518.                                    },
  24519.                                }),
  24520.                                (this.id = d++),
  24521.                                (this.code = f),
  24522.                                (this.usedTimes = 1),
  24523.                                (this.program = L),
  24524.                                (this.vertexShader = k),
  24525.                                (this.fragmentShader = D),
  24526.                                this
  24527.                            );
  24528.                        };
  24529.                    })()),
  24530.                    (n.WebGLPrograms = function (e, t) {
  24531.                        function i(e) {
  24532.                            if (t.floatVertexTextures && e && e.skeleton && e.skeleton.useVertexTexture) return 1024;
  24533.                            var i = t.maxVertexUniforms,
  24534.                                r = Math.floor((i - 20) / 4),
  24535.                                o = r;
  24536.                            return (
  24537.                                void 0 !== e &&
  24538.                                e instanceof n.SkinnedMesh &&
  24539.                                ((o = Math.min(e.skeleton.bones.length, o)),
  24540.                                    o < e.skeleton.bones.length && console.warn("WebGLRenderer: too many bones - " + e.skeleton.bones.length + ", this GPU supports just " + o + " (try OpenGL instead of ANGLE)")),
  24541.                                o
  24542.                            );
  24543.                        }
  24544.  
  24545.                        function r(e, t) {
  24546.                            var i;
  24547.                            return (
  24548.                                e ?
  24549.                                e instanceof n.Texture ?
  24550.                                (i = e.encoding) :
  24551.                                e instanceof n.WebGLRenderTarget &&
  24552.                                (console.warn("THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead."), (i = e.texture.encoding)) :
  24553.                                (i = n.LinearEncoding),
  24554.                                i === n.LinearEncoding && t && (i = n.GammaEncoding),
  24555.                                i
  24556.                            );
  24557.                        }
  24558.                        var o = [],
  24559.                            a = {
  24560.                                MeshDepthMaterial: "depth",
  24561.                                MeshNormalMaterial: "normal",
  24562.                                MeshBasicMaterial: "basic",
  24563.                                MeshLambertMaterial: "lambert",
  24564.                                MeshPhongMaterial: "phong",
  24565.                                MeshStandardMaterial: "physical",
  24566.                                MeshPhysicalMaterial: "physical",
  24567.                                LineBasicMaterial: "basic",
  24568.                                LineDashedMaterial: "dashed",
  24569.                                PointsMaterial: "points",
  24570.                            },
  24571.                            s = [
  24572.                                "precision",
  24573.                                "supportsVertexTextures",
  24574.                                "map",
  24575.                                "mapEncoding",
  24576.                                "envMap",
  24577.                                "envMapMode",
  24578.                                "envMapEncoding",
  24579.                                "lightMap",
  24580.                                "aoMap",
  24581.                                "emissiveMap",
  24582.                                "emissiveMapEncoding",
  24583.                                "bumpMap",
  24584.                                "normalMap",
  24585.                                "displacementMap",
  24586.                                "specularMap",
  24587.                                "roughnessMap",
  24588.                                "metalnessMap",
  24589.                                "alphaMap",
  24590.                                "combine",
  24591.                                "vertexColors",
  24592.                                "fog",
  24593.                                "useFog",
  24594.                                "fogExp",
  24595.                                "flatShading",
  24596.                                "sizeAttenuation",
  24597.                                "logarithmicDepthBuffer",
  24598.                                "skinning",
  24599.                                "maxBones",
  24600.                                "useVertexTexture",
  24601.                                "morphTargets",
  24602.                                "morphNormals",
  24603.                                "maxMorphTargets",
  24604.                                "maxMorphNormals",
  24605.                                "premultipliedAlpha",
  24606.                                "numDirLights",
  24607.                                "numPointLights",
  24608.                                "numSpotLights",
  24609.                                "numHemiLights",
  24610.                                "shadowMapEnabled",
  24611.                                "shadowMapType",
  24612.                                "toneMapping",
  24613.                                "physicallyCorrectLights",
  24614.                                "alphaTest",
  24615.                                "doubleSided",
  24616.                                "flipSided",
  24617.                                "numClippingPlanes",
  24618.                                "depthPacking",
  24619.                            ];
  24620.                        (this.getParameters = function (o, s, l, c, u) {
  24621.                            var h = a[o.type],
  24622.                                d = i(u),
  24623.                                f = e.getPrecision();
  24624.                            null !== o.precision && ((f = t.getMaxPrecision(o.precision)), f !== o.precision && console.warn("THREE.WebGLProgram.getParameters:", o.precision, "not supported, using", f, "instead."));
  24625.                            var p = e.getCurrentRenderTarget(),
  24626.                                m = {
  24627.                                    shaderID: h,
  24628.                                    precision: f,
  24629.                                    supportsVertexTextures: t.vertexTextures,
  24630.                                    outputEncoding: r(p ? p.texture : null, e.gammaOutput),
  24631.                                    map: !!o.map,
  24632.                                    mapEncoding: r(o.map, e.gammaInput),
  24633.                                    envMap: !!o.envMap,
  24634.                                    envMapMode: o.envMap && o.envMap.mapping,
  24635.                                    envMapEncoding: r(o.envMap, e.gammaInput),
  24636.                                    envMapCubeUV: !!o.envMap && (o.envMap.mapping === n.CubeUVReflectionMapping || o.envMap.mapping === n.CubeUVRefractionMapping),
  24637.                                    lightMap: !!o.lightMap,
  24638.                                    aoMap: !!o.aoMap,
  24639.                                    emissiveMap: !!o.emissiveMap,
  24640.                                    emissiveMapEncoding: r(o.emissiveMap, e.gammaInput),
  24641.                                    bumpMap: !!o.bumpMap,
  24642.                                    normalMap: !!o.normalMap,
  24643.                                    displacementMap: !!o.displacementMap,
  24644.                                    roughnessMap: !!o.roughnessMap,
  24645.                                    metalnessMap: !!o.metalnessMap,
  24646.                                    specularMap: !!o.specularMap,
  24647.                                    alphaMap: !!o.alphaMap,
  24648.                                    combine: o.combine,
  24649.                                    vertexColors: o.vertexColors,
  24650.                                    fog: !!l,
  24651.                                    useFog: o.fog,
  24652.                                    fogExp: l instanceof n.FogExp2,
  24653.                                    flatShading: o.shading === n.FlatShading,
  24654.                                    sizeAttenuation: o.sizeAttenuation,
  24655.                                    logarithmicDepthBuffer: t.logarithmicDepthBuffer,
  24656.                                    skinning: o.skinning,
  24657.                                    maxBones: d,
  24658.                                    useVertexTexture: t.floatVertexTextures && u && u.skeleton && u.skeleton.useVertexTexture,
  24659.                                    morphTargets: o.morphTargets,
  24660.                                    morphNormals: o.morphNormals,
  24661.                                    maxMorphTargets: e.maxMorphTargets,
  24662.                                    maxMorphNormals: e.maxMorphNormals,
  24663.                                    numDirLights: s.directional.length,
  24664.                                    numPointLights: s.point.length,
  24665.                                    numSpotLights: s.spot.length,
  24666.                                    numHemiLights: s.hemi.length,
  24667.                                    numClippingPlanes: c,
  24668.                                    shadowMapEnabled: e.shadowMap.enabled && u.receiveShadow && s.shadows.length > 0,
  24669.                                    shadowMapType: e.shadowMap.type,
  24670.                                    toneMapping: e.toneMapping,
  24671.                                    physicallyCorrectLights: e.physicallyCorrectLights,
  24672.                                    premultipliedAlpha: o.premultipliedAlpha,
  24673.                                    alphaTest: o.alphaTest,
  24674.                                    doubleSided: o.side === n.DoubleSide,
  24675.                                    flipSided: o.side === n.BackSide,
  24676.                                    depthPacking: void 0 !== o.depthPacking ? o.depthPacking : !1,
  24677.                                };
  24678.                            return m;
  24679.                        }),
  24680.                        (this.getProgramCode = function (e, t) {
  24681.                            var i = [];
  24682.                            if ((t.shaderID ? i.push(t.shaderID) : (i.push(e.fragmentShader), i.push(e.vertexShader)), void 0 !== e.defines))
  24683.                                for (var n in e.defines) i.push(n), i.push(e.defines[n]);
  24684.                            for (var r = 0; r < s.length; r++) i.push(t[s[r]]);
  24685.                            return i.join();
  24686.                        }),
  24687.                        (this.acquireProgram = function (t, i, r) {
  24688.                            for (var a, s = 0, l = o.length; l > s; s++) {
  24689.                                var c = o[s];
  24690.                                if (c.code === r) {
  24691.                                    (a = c), ++a.usedTimes;
  24692.                                    break;
  24693.                                }
  24694.                            }
  24695.                            return void 0 === a && ((a = new n.WebGLProgram(e, r, t, i)), o.push(a)), a;
  24696.                        }),
  24697.                        (this.releaseProgram = function (e) {
  24698.                            if (0 === --e.usedTimes) {
  24699.                                var t = o.indexOf(e);
  24700.                                (o[t] = o[o.length - 1]), o.pop(), e.destroy();
  24701.                            }
  24702.                        }),
  24703.                        (this.programs = o);
  24704.                    }),
  24705.                    (n.WebGLProperties = function () {
  24706.                        var e = {};
  24707.                        (this.get = function (t) {
  24708.                            var i = t.uuid,
  24709.                                n = e[i];
  24710.                            return void 0 === n && ((n = {}), (e[i] = n)), n;
  24711.                        }),
  24712.                        (this["delete"] = function (t) {
  24713.                            delete e[t.uuid];
  24714.                        }),
  24715.                        (this.clear = function () {
  24716.                            e = {};
  24717.                        });
  24718.                    }),
  24719.                    (n.WebGLShader = (function () {
  24720.                        function e(e) {
  24721.                            for (var t = e.split("n"), i = 0; i < t.length; i++) t[i] = i + 1 + ": " + t[i];
  24722.                            return t.join("n");
  24723.                        }
  24724.                        return function (t, i, n) {
  24725.                            var r = t.createShader(i);
  24726.                            return (
  24727.                                t.shaderSource(r, n),
  24728.                                t.compileShader(r),
  24729.                                t.getShaderParameter(r, t.COMPILE_STATUS) === !1 && console.error("THREE.WebGLShader: Shader couldn't compile."),
  24730.                                "" !== t.getShaderInfoLog(r) && console.warn("THREE.WebGLShader: gl.getShaderInfoLog()", i === t.VERTEX_SHADER ? "vertex" : "fragment", t.getShaderInfoLog(r), e(n)),
  24731.                                r
  24732.                            );
  24733.                        };
  24734.                    })()),
  24735.                    (n.WebGLShadowMap = function (e, t, i, r) {
  24736.                        function o(t, i, r, o) {
  24737.                            var a = t.geometry,
  24738.                                s = null,
  24739.                                l = b,
  24740.                                c = t.customDepthMaterial;
  24741.                            if ((r && ((l = x), (c = t.customDistanceMaterial)), c)) s = c;
  24742.                            else {
  24743.                                var u = !1;
  24744.                                i.morphTargets &&
  24745.                                    (a instanceof n.BufferGeometry ?
  24746.                                        (u = a.morphAttributes && a.morphAttributes.position && a.morphAttributes.position.length > 0) :
  24747.                                        a instanceof n.Geometry && (u = a.morphTargets && a.morphTargets.length > 0));
  24748.                                var h = t instanceof n.SkinnedMesh && i.skinning,
  24749.                                    d = 0;
  24750.                                u && (d |= g), h && (d |= y), (s = l[d]);
  24751.                            }
  24752.                            if (e.localClippingEnabled && i.clipShadows === !0 && 0 !== i.clippingPlanes.length) {
  24753.                                var f = s.uuid,
  24754.                                    p = i.uuid,
  24755.                                    m = w[f];
  24756.                                void 0 === m && ((m = {}), (w[f] = m));
  24757.                                var v = m[p];
  24758.                                void 0 === v && ((v = s.clone()), (m[p] = v)), (s = v);
  24759.                            }
  24760.                            (s.visible = i.visible), (s.wireframe = i.wireframe);
  24761.                            var _ = i.side;
  24762.                            return (
  24763.                                D.renderSingleSided && _ == n.DoubleSide && (_ = n.FrontSide),
  24764.                                D.renderReverseSided && (_ === n.FrontSide ? (_ = n.BackSide) : _ === n.BackSide && (_ = n.FrontSide)),
  24765.                                (s.side = _),
  24766.                                (s.clipShadows = i.clipShadows),
  24767.                                (s.clippingPlanes = i.clippingPlanes),
  24768.                                (s.wireframeLinewidth = i.wireframeLinewidth),
  24769.                                (s.linewidth = i.linewidth),
  24770.                                r && void 0 !== s.uniforms.lightPos && s.uniforms.lightPos.value.copy(o),
  24771.                                s
  24772.                            );
  24773.                        }
  24774.  
  24775.                        function a(e, t, i) {
  24776.                            if (e.visible !== !1) {
  24777.                                if (e.layers.test(t.layers) && (e instanceof n.Mesh || e instanceof n.Line || e instanceof n.Points) && e.castShadow && (e.frustumCulled === !1 || c.intersectsObject(e) === !0)) {
  24778.                                    var r = e.material;
  24779.                                    r.visible === !0 && (e.modelViewMatrix.multiplyMatrices(i.matrixWorldInverse, e.matrixWorld), v.push(e));
  24780.                                }
  24781.                                for (var o = e.children, s = 0, l = o.length; l > s; s++) a(o[s], t, i);
  24782.                            }
  24783.                        }
  24784.                        var s = e.context,
  24785.                            l = e.state,
  24786.                            c = new n.Frustum(),
  24787.                            u = new n.Matrix4(),
  24788.                            h = t.shadows,
  24789.                            d = new n.Vector2(),
  24790.                            f = new n.Vector2(r.maxTextureSize, r.maxTextureSize),
  24791.                            p = new n.Vector3(),
  24792.                            m = new n.Vector3(),
  24793.                            v = [],
  24794.                            g = 1,
  24795.                            y = 2,
  24796.                            _ = (g | y) + 1,
  24797.                            b = new Array(_),
  24798.                            x = new Array(_),
  24799.                            w = {},
  24800.                            M = [new n.Vector3(1, 0, 0), new n.Vector3(-1, 0, 0), new n.Vector3(0, 0, 1), new n.Vector3(0, 0, -1), new n.Vector3(0, 1, 0), new n.Vector3(0, -1, 0)],
  24801.                            T = [new n.Vector3(0, 1, 0), new n.Vector3(0, 1, 0), new n.Vector3(0, 1, 0), new n.Vector3(0, 1, 0), new n.Vector3(0, 0, 1), new n.Vector3(0, 0, -1)],
  24802.                            S = [new n.Vector4(), new n.Vector4(), new n.Vector4(), new n.Vector4(), new n.Vector4(), new n.Vector4()],
  24803.                            E = new n.MeshDepthMaterial();
  24804.                        (E.depthPacking = n.RGBADepthPacking), (E.clipping = !0);
  24805.                        for (var A = n.ShaderLib.distanceRGBA, C = n.UniformsUtils.clone(A.uniforms), P = 0; P !== _; ++P) {
  24806.                            var L = 0 !== (P & g),
  24807.                                R = 0 !== (P & y),
  24808.                                O = E.clone();
  24809.                            (O.morphTargets = L), (O.skinning = R), (b[P] = O);
  24810.                            var k = new n.ShaderMaterial({
  24811.                                defines: {
  24812.                                    USE_SHADOWMAP: ""
  24813.                                },
  24814.                                uniforms: C,
  24815.                                vertexShader: A.vertexShader,
  24816.                                fragmentShader: A.fragmentShader,
  24817.                                morphTargets: L,
  24818.                                skinning: R,
  24819.                                clipping: !0
  24820.                            });
  24821.                            x[P] = k;
  24822.                        }
  24823.                        var D = this;
  24824.                        (this.enabled = !1),
  24825.                        (this.autoUpdate = !0),
  24826.                        (this.needsUpdate = !1),
  24827.                        (this.type = n.PCFShadowMap),
  24828.                        (this.renderReverseSided = !0),
  24829.                        (this.renderSingleSided = !0),
  24830.                        (this.render = function (t, r) {
  24831.                            if (D.enabled !== !1 && (D.autoUpdate !== !1 || D.needsUpdate !== !1) && 0 !== h.length) {
  24832.                                l.clearColor(1, 1, 1, 1), l.disable(s.BLEND), l.setDepthTest(!0), l.setScissorTest(!1);
  24833.                                for (var g, y, _ = 0, b = h.length; b > _; _++) {
  24834.                                    var x = h[_],
  24835.                                        w = x.shadow;
  24836.                                    if (void 0 !== w) {
  24837.                                        var E = w.camera;
  24838.                                        if ((d.copy(w.mapSize), d.min(f), x instanceof n.PointLight)) {
  24839.                                            (g = 6), (y = !0);
  24840.                                            var A = d.x,
  24841.                                                C = d.y;
  24842.                                            S[0].set(2 * A, C, A, C), S[1].set(0, C, A, C), S[2].set(3 * A, C, A, C), S[3].set(A, C, A, C), S[4].set(3 * A, 0, A, C), S[5].set(A, 0, A, C), (d.x *= 4), (d.y *= 2);
  24843.                                        } else(g = 1), (y = !1);
  24844.                                        if (null === w.map) {
  24845.                                            var P = {
  24846.                                                minFilter: n.NearestFilter,
  24847.                                                magFilter: n.NearestFilter,
  24848.                                                format: n.RGBAFormat
  24849.                                            };
  24850.                                            (w.map = new n.WebGLRenderTarget(d.x, d.y, P)), E.updateProjectionMatrix();
  24851.                                        }
  24852.                                        w instanceof n.SpotLightShadow && w.update(x);
  24853.                                        var L = w.map,
  24854.                                            R = w.matrix;
  24855.                                        m.setFromMatrixPosition(x.matrixWorld), E.position.copy(m), e.setRenderTarget(L), e.clear();
  24856.                                        for (var O = 0; g > O; O++) {
  24857.                                            if (y) {
  24858.                                                p.copy(E.position), p.add(M[O]), E.up.copy(T[O]), E.lookAt(p);
  24859.                                                var k = S[O];
  24860.                                                l.viewport(k);
  24861.                                            } else p.setFromMatrixPosition(x.target.matrixWorld), E.lookAt(p);
  24862.                                            E.updateMatrixWorld(),
  24863.                                                E.matrixWorldInverse.getInverse(E.matrixWorld),
  24864.                                                R.set(0.5, 0, 0, 0.5, 0, 0.5, 0, 0.5, 0, 0, 0.5, 0.5, 0, 0, 0, 1),
  24865.                                                R.multiply(E.projectionMatrix),
  24866.                                                R.multiply(E.matrixWorldInverse),
  24867.                                                u.multiplyMatrices(E.projectionMatrix, E.matrixWorldInverse),
  24868.                                                c.setFromMatrix(u),
  24869.                                                (v.length = 0),
  24870.                                                a(t, r, E);
  24871.                                            for (var I = 0, N = v.length; N > I; I++) {
  24872.                                                var U = v[I],
  24873.                                                    j = i.update(U),
  24874.                                                    B = U.material;
  24875.                                                if (B instanceof n.MultiMaterial)
  24876.                                                    for (var F = j.groups, V = B.materials, G = 0, z = F.length; z > G; G++) {
  24877.                                                        var $ = F[G],
  24878.                                                            H = V[$.materialIndex];
  24879.                                                        if (H.visible === !0) {
  24880.                                                            var W = o(U, H, y, m);
  24881.                                                            e.renderBufferDirect(E, null, j, W, U, $);
  24882.                                                        }
  24883.                                                    }
  24884.                                                else {
  24885.                                                    var W = o(U, B, y, m);
  24886.                                                    e.renderBufferDirect(E, null, j, W, U, null);
  24887.                                                }
  24888.                                            }
  24889.                                        }
  24890.                                    } else console.warn("THREE.WebGLShadowMap:", x, "has no shadow.");
  24891.                                }
  24892.                                var X = e.getClearColor(),
  24893.                                    Y = e.getClearAlpha();
  24894.                                e.setClearColor(X, Y), (D.needsUpdate = !1);
  24895.                            }
  24896.                        });
  24897.                    }),
  24898.                    (n.WebGLState = function (e, t, i) {
  24899.                        function r(t, i, n) {
  24900.                            var r = new Uint8Array(4),
  24901.                                o = e.createTexture();
  24902.                            e.bindTexture(t, o), e.texParameteri(t, e.TEXTURE_MIN_FILTER, e.NEAREST), e.texParameteri(t, e.TEXTURE_MAG_FILTER, e.NEAREST);
  24903.                            for (var a = 0; n > a; a++) e.texImage2D(i + a, 0, e.RGBA, 1, 1, 0, e.RGBA, e.UNSIGNED_BYTE, r);
  24904.                            return o;
  24905.                        }
  24906.                        var o = this;
  24907.                        this.buffers = {
  24908.                            color: new n.WebGLColorBuffer(e, this),
  24909.                            depth: new n.WebGLDepthBuffer(e, this),
  24910.                            stencil: new n.WebGLStencilBuffer(e, this)
  24911.                        };
  24912.                        var a = e.getParameter(e.MAX_VERTEX_ATTRIBS),
  24913.                            s = new Uint8Array(a),
  24914.                            l = new Uint8Array(a),
  24915.                            c = new Uint8Array(a),
  24916.                            u = {},
  24917.                            h = null,
  24918.                            d = null,
  24919.                            f = null,
  24920.                            p = null,
  24921.                            m = null,
  24922.                            v = null,
  24923.                            g = null,
  24924.                            y = null,
  24925.                            _ = !1,
  24926.                            b = null,
  24927.                            x = null,
  24928.                            w = null,
  24929.                            M = null,
  24930.                            T = null,
  24931.                            S = null,
  24932.                            E = e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),
  24933.                            A = null,
  24934.                            C = {},
  24935.                            P = new n.Vector4(),
  24936.                            L = new n.Vector4(),
  24937.                            R = {};
  24938.                        (R[e.TEXTURE_2D] = r(e.TEXTURE_2D, e.TEXTURE_2D, 1)),
  24939.                        (R[e.TEXTURE_CUBE_MAP] = r(e.TEXTURE_CUBE_MAP, e.TEXTURE_CUBE_MAP_POSITIVE_X, 6)),
  24940.                        (this.init = function () {
  24941.                            this.clearColor(0, 0, 0, 1),
  24942.                                this.clearDepth(1),
  24943.                                this.clearStencil(0),
  24944.                                this.enable(e.DEPTH_TEST),
  24945.                                this.setDepthFunc(n.LessEqualDepth),
  24946.                                this.setFlipSided(!1),
  24947.                                this.setCullFace(n.CullFaceBack),
  24948.                                this.enable(e.CULL_FACE),
  24949.                                this.enable(e.BLEND),
  24950.                                this.setBlending(n.NormalBlending);
  24951.                        }),
  24952.                        (this.initAttributes = function () {
  24953.                            for (var e = 0, t = s.length; t > e; e++) s[e] = 0;
  24954.                        }),
  24955.                        (this.enableAttribute = function (i) {
  24956.                            if (((s[i] = 1), 0 === l[i] && (e.enableVertexAttribArray(i), (l[i] = 1)), 0 !== c[i])) {
  24957.                                var n = t.get("ANGLE_instanced_arrays");
  24958.                                n.vertexAttribDivisorANGLE(i, 0), (c[i] = 0);
  24959.                            }
  24960.                        }),
  24961.                        (this.enableAttributeAndDivisor = function (t, i, n) {
  24962.                            (s[t] = 1), 0 === l[t] && (e.enableVertexAttribArray(t), (l[t] = 1)), c[t] !== i && (n.vertexAttribDivisorANGLE(t, i), (c[t] = i));
  24963.                        }),
  24964.                        (this.disableUnusedAttributes = function () {
  24965.                            for (var t = 0, i = l.length; t !== i; ++t) l[t] !== s[t] && (e.disableVertexAttribArray(t), (l[t] = 0));
  24966.                        }),
  24967.                        (this.enable = function (t) {
  24968.                            u[t] !== !0 && (e.enable(t), (u[t] = !0));
  24969.                        }),
  24970.                        (this.disable = function (t) {
  24971.                            u[t] !== !1 && (e.disable(t), (u[t] = !1));
  24972.                        }),
  24973.                        (this.getCompressedTextureFormats = function () {
  24974.                            if (null === h && ((h = []), t.get("WEBGL_compressed_texture_pvrtc") || t.get("WEBGL_compressed_texture_s3tc") || t.get("WEBGL_compressed_texture_etc1")))
  24975.                                for (var i = e.getParameter(e.COMPRESSED_TEXTURE_FORMATS), n = 0; n < i.length; n++) h.push(i[n]);
  24976.                            return h;
  24977.                        }),
  24978.                        (this.setBlending = function (t, r, o, a, s, l, c, u) {
  24979.                            return t === n.NoBlending ?
  24980.                                (this.disable(e.BLEND), void(d = t)) :
  24981.                                (this.enable(e.BLEND),
  24982.                                    (t !== d || u !== _) &&
  24983.                                    (t === n.AdditiveBlending ?
  24984.                                        u ?
  24985.                                        (e.blendEquationSeparate(e.FUNC_ADD, e.FUNC_ADD), e.blendFuncSeparate(e.ONE, e.ONE, e.ONE, e.ONE)) :
  24986.                                        (e.blendEquation(e.FUNC_ADD), e.blendFunc(e.SRC_ALPHA, e.ONE)) :
  24987.                                        t === n.SubtractiveBlending ?
  24988.                                        u ?
  24989.                                        (e.blendEquationSeparate(e.FUNC_ADD, e.FUNC_ADD), e.blendFuncSeparate(e.ZERO, e.ZERO, e.ONE_MINUS_SRC_COLOR, e.ONE_MINUS_SRC_ALPHA)) :
  24990.                                        (e.blendEquation(e.FUNC_ADD), e.blendFunc(e.ZERO, e.ONE_MINUS_SRC_COLOR)) :
  24991.                                        t === n.MultiplyBlending ?
  24992.                                        u ?
  24993.                                        (e.blendEquationSeparate(e.FUNC_ADD, e.FUNC_ADD), e.blendFuncSeparate(e.ZERO, e.SRC_COLOR, e.ZERO, e.SRC_ALPHA)) :
  24994.                                        (e.blendEquation(e.FUNC_ADD), e.blendFunc(e.ZERO, e.SRC_COLOR)) :
  24995.                                        u ?
  24996.                                        (e.blendEquationSeparate(e.FUNC_ADD, e.FUNC_ADD), e.blendFuncSeparate(e.ONE, e.ONE_MINUS_SRC_ALPHA, e.ONE, e.ONE_MINUS_SRC_ALPHA)) :
  24997.                                        (e.blendEquationSeparate(e.FUNC_ADD, e.FUNC_ADD), e.blendFuncSeparate(e.SRC_ALPHA, e.ONE_MINUS_SRC_ALPHA, e.ONE, e.ONE_MINUS_SRC_ALPHA)),
  24998.                                        (d = t),
  24999.                                        (_ = u)),
  25000.                                    void(t === n.CustomBlending ?
  25001.                                        ((s = s || r),
  25002.                                            (l = l || o),
  25003.                                            (c = c || a),
  25004.                                            (r !== f || s !== v) && (e.blendEquationSeparate(i(r), i(s)), (f = r), (v = s)),
  25005.                                            (o !== p || a !== m || l !== g || c !== y) && (e.blendFuncSeparate(i(o), i(a), i(l), i(c)), (p = o), (m = a), (g = l), (y = c))) :
  25006.                                        ((f = null), (p = null), (m = null), (v = null), (g = null), (y = null))));
  25007.                        }),
  25008.                        (this.setColorWrite = function (e) {
  25009.                            this.buffers.color.setMask(e);
  25010.                        }),
  25011.                        (this.setDepthTest = function (e) {
  25012.                            this.buffers.depth.setTest(e);
  25013.                        }),
  25014.                        (this.setDepthWrite = function (e) {
  25015.                            this.buffers.depth.setMask(e);
  25016.                        }),
  25017.                        (this.setDepthFunc = function (e) {
  25018.                            this.buffers.depth.setFunc(e);
  25019.                        }),
  25020.                        (this.setStencilTest = function (e) {
  25021.                            this.buffers.stencil.setTest(e);
  25022.                        }),
  25023.                        (this.setStencilWrite = function (e) {
  25024.                            this.buffers.stencil.setMask(e);
  25025.                        }),
  25026.                        (this.setStencilFunc = function (e, t, i) {
  25027.                            this.buffers.stencil.setFunc(e, t, i);
  25028.                        }),
  25029.                        (this.setStencilOp = function (e, t, i) {
  25030.                            this.buffers.stencil.setOp(e, t, i);
  25031.                        }),
  25032.                        (this.setFlipSided = function (t) {
  25033.                            b !== t && (t ? e.frontFace(e.CW) : e.frontFace(e.CCW), (b = t));
  25034.                        }),
  25035.                        (this.setCullFace = function (t) {
  25036.                            t !== n.CullFaceNone ?
  25037.                                (this.enable(e.CULL_FACE), t !== x && (t === n.CullFaceBack ? e.cullFace(e.BACK) : t === n.CullFaceFront ? e.cullFace(e.FRONT) : e.cullFace(e.FRONT_AND_BACK))) :
  25038.                                this.disable(e.CULL_FACE),
  25039.                                (x = t);
  25040.                        }),
  25041.                        (this.setLineWidth = function (t) {
  25042.                            t !== w && (e.lineWidth(t), (w = t));
  25043.                        }),
  25044.                        (this.setPolygonOffset = function (t, i, n) {
  25045.                            t ? (this.enable(e.POLYGON_OFFSET_FILL), (M !== i || T !== n) && (e.polygonOffset(i, n), (M = i), (T = n))) : this.disable(e.POLYGON_OFFSET_FILL);
  25046.                        }),
  25047.                        (this.getScissorTest = function () {
  25048.                            return S;
  25049.                        }),
  25050.                        (this.setScissorTest = function (t) {
  25051.                            (S = t), t ? this.enable(e.SCISSOR_TEST) : this.disable(e.SCISSOR_TEST);
  25052.                        }),
  25053.                        (this.activeTexture = function (t) {
  25054.                            void 0 === t && (t = e.TEXTURE0 + E - 1), A !== t && (e.activeTexture(t), (A = t));
  25055.                        }),
  25056.                        (this.bindTexture = function (t, i) {
  25057.                            null === A && o.activeTexture();
  25058.                            var n = C[A];
  25059.                            void 0 === n && ((n = {
  25060.                                type: void 0,
  25061.                                texture: void 0
  25062.                            }), (C[A] = n)), (n.type !== t || n.texture !== i) && (e.bindTexture(t, i || R[t]), (n.type = t), (n.texture = i));
  25063.                        }),
  25064.                        (this.compressedTexImage2D = function () {
  25065.                            try {
  25066.                                e.compressedTexImage2D.apply(e, arguments);
  25067.                            } catch (t) {
  25068.                                console.error(t);
  25069.                            }
  25070.                        }),
  25071.                        (this.texImage2D = function () {
  25072.                            try {
  25073.                                e.texImage2D.apply(e, arguments);
  25074.                            } catch (t) {
  25075.                                console.error(t);
  25076.                            }
  25077.                        }),
  25078.                        (this.clearColor = function (e, t, i, n) {
  25079.                            this.buffers.color.setClear(e, t, i, n);
  25080.                        }),
  25081.                        (this.clearDepth = function (e) {
  25082.                            this.buffers.depth.setClear(e);
  25083.                        }),
  25084.                        (this.clearStencil = function (e) {
  25085.                            this.buffers.stencil.setClear(e);
  25086.                        }),
  25087.                        (this.scissor = function (t) {
  25088.                            P.equals(t) === !1 && (e.scissor(t.x, t.y, t.z, t.w), P.copy(t));
  25089.                        }),
  25090.                        (this.viewport = function (t) {
  25091.                            L.equals(t) === !1 && (e.viewport(t.x, t.y, t.z, t.w), L.copy(t));
  25092.                        }),
  25093.                        (this.reset = function () {
  25094.                            for (var t = 0; t < l.length; t++) 1 === l[t] && (e.disableVertexAttribArray(t), (l[t] = 0));
  25095.                            (u = {}), (h = null), (A = null), (C = {}), (d = null), (b = null), (x = null), this.buffers.color.reset(), this.buffers.depth.reset(), this.buffers.stencil.reset();
  25096.                        });
  25097.                    }),
  25098.                    (n.WebGLColorBuffer = function (e, t) {
  25099.                        var i = !1,
  25100.                            r = new n.Vector4(),
  25101.                            o = null,
  25102.                            a = new n.Vector4();
  25103.                        (this.setMask = function (t) {
  25104.                            o === t || i || (e.colorMask(t, t, t, t), (o = t));
  25105.                        }),
  25106.                        (this.setLocked = function (e) {
  25107.                            i = e;
  25108.                        }),
  25109.                        (this.setClear = function (t, i, n, o) {
  25110.                            r.set(t, i, n, o), a.equals(r) === !1 && (e.clearColor(t, i, n, o), a.copy(r));
  25111.                        }),
  25112.                        (this.reset = function () {
  25113.                            (i = !1), (o = null), (a = new n.Vector4());
  25114.                        });
  25115.                    }),
  25116.                    (n.WebGLDepthBuffer = function (e, t) {
  25117.                        var i = !1,
  25118.                            r = null,
  25119.                            o = null,
  25120.                            a = null;
  25121.                        (this.setTest = function (i) {
  25122.                            i ? t.enable(e.DEPTH_TEST) : t.disable(e.DEPTH_TEST);
  25123.                        }),
  25124.                        (this.setMask = function (t) {
  25125.                            r === t || i || (e.depthMask(t), (r = t));
  25126.                        }),
  25127.                        (this.setFunc = function (t) {
  25128.                            if (o !== t) {
  25129.                                if (t)
  25130.                                    switch (t) {
  25131.                                    case n.NeverDepth:
  25132.                                        e.depthFunc(e.NEVER);
  25133.                                        break;
  25134.                                    case n.AlwaysDepth:
  25135.                                        e.depthFunc(e.ALWAYS);
  25136.                                        break;
  25137.                                    case n.LessDepth:
  25138.                                        e.depthFunc(e.LESS);
  25139.                                        break;
  25140.                                    case n.LessEqualDepth:
  25141.                                        e.depthFunc(e.LEQUAL);
  25142.                                        break;
  25143.                                    case n.EqualDepth:
  25144.                                        e.depthFunc(e.EQUAL);
  25145.                                        break;
  25146.                                    case n.GreaterEqualDepth:
  25147.                                        e.depthFunc(e.GEQUAL);
  25148.                                        break;
  25149.                                    case n.GreaterDepth:
  25150.                                        e.depthFunc(e.GREATER);
  25151.                                        break;
  25152.                                    case n.NotEqualDepth:
  25153.                                        e.depthFunc(e.NOTEQUAL);
  25154.                                        break;
  25155.                                    default:
  25156.                                        e.depthFunc(e.LEQUAL);
  25157.                                    }
  25158.                                else e.depthFunc(e.LEQUAL);
  25159.                                o = t;
  25160.                            }
  25161.                        }),
  25162.                        (this.setLocked = function (e) {
  25163.                            i = e;
  25164.                        }),
  25165.                        (this.setClear = function (t) {
  25166.                            a !== t && (e.clearDepth(t), (a = t));
  25167.                        }),
  25168.                        (this.reset = function () {
  25169.                            (i = !1), (r = null), (o = null), (a = null);
  25170.                        });
  25171.                    }),
  25172.                    (n.WebGLStencilBuffer = function (e, t) {
  25173.                        var i = !1,
  25174.                            n = null,
  25175.                            r = null,
  25176.                            o = null,
  25177.                            a = null,
  25178.                            s = null,
  25179.                            l = null,
  25180.                            c = null,
  25181.                            u = null;
  25182.                        (this.setTest = function (i) {
  25183.                            i ? t.enable(e.STENCIL_TEST) : t.disable(e.STENCIL_TEST);
  25184.                        }),
  25185.                        (this.setMask = function (t) {
  25186.                            n === t || i || (e.stencilMask(t), (n = t));
  25187.                        }),
  25188.                        (this.setFunc = function (t, i, n) {
  25189.                            (r !== t || o !== i || a !== n) && (e.stencilFunc(t, i, n), (r = t), (o = i), (a = n));
  25190.                        }),
  25191.                        (this.setOp = function (t, i, n) {
  25192.                            (s !== t || l !== i || c !== n) && (e.stencilOp(t, i, n), (s = t), (l = i), (c = n));
  25193.                        }),
  25194.                        (this.setLocked = function (e) {
  25195.                            i = e;
  25196.                        }),
  25197.                        (this.setClear = function (t) {
  25198.                            u !== t && (e.clearStencil(t), (u = t));
  25199.                        }),
  25200.                        (this.reset = function () {
  25201.                            (i = !1), (n = null), (r = null), (o = null), (a = null), (s = null), (l = null), (c = null), (u = null);
  25202.                        });
  25203.                    }),
  25204.                    (n.WebGLTextures = function (e, t, i, r, o, a, s) {
  25205.                        function l(e, t) {
  25206.                            if (e.width > t || e.height > t) {
  25207.                                var i = t / Math.max(e.width, e.height),
  25208.                                    n = document.createElementNS("http://www.w3.org/1999/xhtml", "canvas");
  25209.                                (n.width = Math.floor(e.width * i)), (n.height = Math.floor(e.height * i));
  25210.                                var r = n.getContext("2d");
  25211.                                return r.drawImage(e, 0, 0, e.width, e.height, 0, 0, n.width, n.height), console.warn("THREE.WebGLRenderer: image is too big (" + e.width + "x" + e.height + "). Resized to " + n.width + "x" + n.height, e), n;
  25212.                            }
  25213.                            return e;
  25214.                        }
  25215.  
  25216.                        function c(e) {
  25217.                            return n.Math.isPowerOfTwo(e.width) && n.Math.isPowerOfTwo(e.height);
  25218.                        }
  25219.  
  25220.                        function u(e) {
  25221.                            if (e instanceof HTMLImageElement || e instanceof HTMLCanvasElement) {
  25222.                                var t = document.createElementNS("http://www.w3.org/1999/xhtml", "canvas");
  25223.                                (t.width = n.Math.nearestPowerOfTwo(e.width)), (t.height = n.Math.nearestPowerOfTwo(e.height));
  25224.                                var i = t.getContext("2d");
  25225.                                return i.drawImage(e, 0, 0, t.width, t.height), console.warn("THREE.WebGLRenderer: image is not power of two (" + e.width + "x" + e.height + "). Resized to " + t.width + "x" + t.height, e), t;
  25226.                            }
  25227.                            return e;
  25228.                        }
  25229.  
  25230.                        function h(e) {
  25231.                            return e.wrapS !== n.ClampToEdgeWrapping || e.wrapT !== n.ClampToEdgeWrapping ? !0 : e.minFilter !== n.NearestFilter && e.minFilter !== n.LinearFilter ? !0 : !1;
  25232.                        }
  25233.  
  25234.                        function d(t) {
  25235.                            return t === n.NearestFilter || t === n.NearestMipMapNearestFilter || t === n.NearestMipMapLinearFilter ? e.NEAREST : e.LINEAR;
  25236.                        }
  25237.  
  25238.                        function f(e) {
  25239.                            var t = e.target;
  25240.                            t.removeEventListener("dispose", f), m(t), C.textures--;
  25241.                        }
  25242.  
  25243.                        function p(e) {
  25244.                            var t = e.target;
  25245.                            t.removeEventListener("dispose", p), v(t), C.textures--;
  25246.                        }
  25247.  
  25248.                        function m(t) {
  25249.                            var i = r.get(t);
  25250.                            if (t.image && i.__image__webglTextureCube) e.deleteTexture(i.__image__webglTextureCube);
  25251.                            else {
  25252.                                if (void 0 === i.__webglInit) return;
  25253.                                e.deleteTexture(i.__webglTexture);
  25254.                            }
  25255.                            r["delete"](t);
  25256.                        }
  25257.  
  25258.                        function v(t) {
  25259.                            var i = r.get(t),
  25260.                                o = r.get(t.texture);
  25261.                            if (t) {
  25262.                                if ((void 0 !== o.__webglTexture && e.deleteTexture(o.__webglTexture), t.depthTexture && t.depthTexture.dispose(), t instanceof n.WebGLRenderTargetCube))
  25263.                                    for (var a = 0; 6 > a; a++) e.deleteFramebuffer(i.__webglFramebuffer[a]), i.__webglDepthbuffer && e.deleteRenderbuffer(i.__webglDepthbuffer[a]);
  25264.                                else e.deleteFramebuffer(i.__webglFramebuffer), i.__webglDepthbuffer && e.deleteRenderbuffer(i.__webglDepthbuffer);
  25265.                                r["delete"](t.texture), r["delete"](t);
  25266.                            }
  25267.                        }
  25268.  
  25269.                        function g(t, n) {
  25270.                            var o = r.get(t);
  25271.                            if (t.version > 0 && o.__version !== t.version) {
  25272.                                var a = t.image;
  25273.                                if (void 0 === a) console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined", t);
  25274.                                else {
  25275.                                    if (a.complete !== !1) return void x(o, t, n);
  25276.                                    console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete", t);
  25277.                                }
  25278.                            }
  25279.                            i.activeTexture(e.TEXTURE0 + n), i.bindTexture(e.TEXTURE_2D, o.__webglTexture);
  25280.                        }
  25281.  
  25282.                        function y(t, s) {
  25283.                            var u = r.get(t);
  25284.                            if (6 === t.image.length)
  25285.                                if (t.version > 0 && u.__version !== t.version) {
  25286.                                    u.__image__webglTextureCube || (t.addEventListener("dispose", f), (u.__image__webglTextureCube = e.createTexture()), C.textures++),
  25287.                                        i.activeTexture(e.TEXTURE0 + s),
  25288.                                        i.bindTexture(e.TEXTURE_CUBE_MAP, u.__image__webglTextureCube),
  25289.                                        e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL, t.flipY);
  25290.                                    for (var h = t instanceof n.CompressedTexture, d = t.image[0] instanceof n.DataTexture, p = [], m = 0; 6 > m; m++)
  25291.                                        h || d ? (p[m] = d ? t.image[m].image : t.image[m]) : (p[m] = l(t.image[m], o.maxCubemapSize));
  25292.                                    var v = p[0],
  25293.                                        g = c(v),
  25294.                                        y = a(t.format),
  25295.                                        _ = a(t.type);
  25296.                                    b(e.TEXTURE_CUBE_MAP, t, g);
  25297.                                    for (var m = 0; 6 > m; m++)
  25298.                                        if (h)
  25299.                                            for (var x, w = p[m].mipmaps, M = 0, T = w.length; T > M; M++)
  25300.                                                (x = w[M]),
  25301.                                                t.format !== n.RGBAFormat && t.format !== n.RGBFormat ?
  25302.                                                i.getCompressedTextureFormats().indexOf(y) > -1 ?
  25303.                                                i.compressedTexImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X + m, M, y, x.width, x.height, 0, x.data) :
  25304.                                                console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()") :
  25305.                                                i.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X + m, M, y, x.width, x.height, 0, y, _, x.data);
  25306.                                        else d ? i.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X + m, 0, y, p[m].width, p[m].height, 0, y, _, p[m].data) : i.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X + m, 0, y, y, _, p[m]);
  25307.                                    t.generateMipmaps && g && e.generateMipmap(e.TEXTURE_CUBE_MAP), (u.__version = t.version), t.onUpdate && t.onUpdate(t);
  25308.                                } else i.activeTexture(e.TEXTURE0 + s), i.bindTexture(e.TEXTURE_CUBE_MAP, u.__image__webglTextureCube);
  25309.                        }
  25310.  
  25311.                        function _(t, n) {
  25312.                            i.activeTexture(e.TEXTURE0 + n), i.bindTexture(e.TEXTURE_CUBE_MAP, r.get(t).__webglTexture);
  25313.                        }
  25314.  
  25315.                        function b(i, s, l) {
  25316.                            var c;
  25317.                            if (
  25318.                                (l ?
  25319.                                    (e.texParameteri(i, e.TEXTURE_WRAP_S, a(s.wrapS)),
  25320.                                        e.texParameteri(i, e.TEXTURE_WRAP_T, a(s.wrapT)),
  25321.                                        e.texParameteri(i, e.TEXTURE_MAG_FILTER, a(s.magFilter)),
  25322.                                        e.texParameteri(i, e.TEXTURE_MIN_FILTER, a(s.minFilter))) :
  25323.                                    (e.texParameteri(i, e.TEXTURE_WRAP_S, e.CLAMP_TO_EDGE),
  25324.                                        e.texParameteri(i, e.TEXTURE_WRAP_T, e.CLAMP_TO_EDGE),
  25325.                                        (s.wrapS !== n.ClampToEdgeWrapping || s.wrapT !== n.ClampToEdgeWrapping) &&
  25326.                                        console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping.", s),
  25327.                                        e.texParameteri(i, e.TEXTURE_MAG_FILTER, d(s.magFilter)),
  25328.                                        e.texParameteri(i, e.TEXTURE_MIN_FILTER, d(s.minFilter)),
  25329.                                        s.minFilter !== n.NearestFilter &&
  25330.                                        s.minFilter !== n.LinearFilter &&
  25331.                                        console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.", s)),
  25332.                                    (c = t.get("EXT_texture_filter_anisotropic")))
  25333.                            ) {
  25334.                                if (s.type === n.FloatType && null === t.get("OES_texture_float_linear")) return;
  25335.                                if (s.type === n.HalfFloatType && null === t.get("OES_texture_half_float_linear")) return;
  25336.                                (s.anisotropy > 1 || r.get(s).__currentAnisotropy) && (e.texParameterf(i, c.TEXTURE_MAX_ANISOTROPY_EXT, Math.min(s.anisotropy, o.getMaxAnisotropy())), (r.get(s).__currentAnisotropy = s.anisotropy));
  25337.                            }
  25338.                        }
  25339.  
  25340.                        function x(t, r, s) {
  25341.                            void 0 === t.__webglInit && ((t.__webglInit = !0), r.addEventListener("dispose", f), (t.__webglTexture = e.createTexture()), C.textures++),
  25342.                                i.activeTexture(e.TEXTURE0 + s),
  25343.                                i.bindTexture(e.TEXTURE_2D, t.__webglTexture),
  25344.                                e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL, r.flipY),
  25345.                                e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL, r.premultiplyAlpha),
  25346.                                e.pixelStorei(e.UNPACK_ALIGNMENT, r.unpackAlignment);
  25347.                            var d = l(r.image, o.maxTextureSize);
  25348.                            h(r) && c(d) === !1 && (d = u(d));
  25349.                            var p = c(d),
  25350.                                m = a(r.format),
  25351.                                v = a(r.type);
  25352.                            b(e.TEXTURE_2D, r, p);
  25353.                            var g,
  25354.                                y = r.mipmaps;
  25355.                            if (r instanceof n.DepthTexture) {
  25356.                                var _ = e.DEPTH_COMPONENT;
  25357.                                if (r.type === n.FloatType) {
  25358.                                    if (!P) throw new Error("Float Depth Texture only supported in WebGL2.0");
  25359.                                    _ = e.DEPTH_COMPONENT32F;
  25360.                                } else P && (_ = e.DEPTH_COMPONENT16);
  25361.                                i.texImage2D(e.TEXTURE_2D, 0, _, d.width, d.height, 0, m, v, null);
  25362.                            } else if (r instanceof n.DataTexture)
  25363.                                if (y.length > 0 && p) {
  25364.                                    for (var x = 0, w = y.length; w > x; x++)(g = y[x]), i.texImage2D(e.TEXTURE_2D, x, m, g.width, g.height, 0, m, v, g.data);
  25365.                                    r.generateMipmaps = !1;
  25366.                                } else i.texImage2D(e.TEXTURE_2D, 0, m, d.width, d.height, 0, m, v, d.data);
  25367.                            else if (r instanceof n.CompressedTexture)
  25368.                                for (var x = 0, w = y.length; w > x; x++)
  25369.                                    (g = y[x]),
  25370.                                    r.format !== n.RGBAFormat && r.format !== n.RGBFormat ?
  25371.                                    i.getCompressedTextureFormats().indexOf(m) > -1 ?
  25372.                                    i.compressedTexImage2D(e.TEXTURE_2D, x, m, g.width, g.height, 0, g.data) :
  25373.                                    console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()") :
  25374.                                    i.texImage2D(e.TEXTURE_2D, x, m, g.width, g.height, 0, m, v, g.data);
  25375.                            else if (y.length > 0 && p) {
  25376.                                for (var x = 0, w = y.length; w > x; x++)(g = y[x]), i.texImage2D(e.TEXTURE_2D, x, m, m, v, g);
  25377.                                r.generateMipmaps = !1;
  25378.                            } else i.texImage2D(e.TEXTURE_2D, 0, m, m, v, d);
  25379.                            r.generateMipmaps && p && e.generateMipmap(e.TEXTURE_2D), (t.__version = r.version), r.onUpdate && r.onUpdate(r);
  25380.                        }
  25381.  
  25382.                        function w(t, n, o, s) {
  25383.                            var l = a(n.texture.format),
  25384.                                c = a(n.texture.type);
  25385.                            i.texImage2D(s, 0, l, n.width, n.height, 0, l, c, null),
  25386.                                e.bindFramebuffer(e.FRAMEBUFFER, t),
  25387.                                e.framebufferTexture2D(e.FRAMEBUFFER, o, s, r.get(n.texture).__webglTexture, 0),
  25388.                                e.bindFramebuffer(e.FRAMEBUFFER, null);
  25389.                        }
  25390.  
  25391.                        function M(t, i) {
  25392.                            e.bindRenderbuffer(e.RENDERBUFFER, t),
  25393.                                i.depthBuffer && !i.stencilBuffer ?
  25394.                                (e.renderbufferStorage(e.RENDERBUFFER, e.DEPTH_COMPONENT16, i.width, i.height), e.framebufferRenderbuffer(e.FRAMEBUFFER, e.DEPTH_ATTACHMENT, e.RENDERBUFFER, t)) :
  25395.                                i.depthBuffer && i.stencilBuffer ?
  25396.                                (e.renderbufferStorage(e.RENDERBUFFER, e.DEPTH_STENCIL, i.width, i.height), e.framebufferRenderbuffer(e.FRAMEBUFFER, e.DEPTH_STENCIL_ATTACHMENT, e.RENDERBUFFER, t)) :
  25397.                                e.renderbufferStorage(e.RENDERBUFFER, e.RGBA4, i.width, i.height),
  25398.                                e.bindRenderbuffer(e.RENDERBUFFER, null);
  25399.                        }
  25400.  
  25401.                        function T(t, i) {
  25402.                            var o = i instanceof n.WebGLRenderTargetCube;
  25403.                            if (o) throw new Error("Depth Texture with cube render targets is not supported!");
  25404.                            if ((e.bindFramebuffer(e.FRAMEBUFFER, t), !(i.depthTexture instanceof n.DepthTexture))) throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");
  25405.                            (r.get(i.depthTexture).__webglTexture && i.depthTexture.image.width === i.width && i.depthTexture.image.height === i.height) ||
  25406.                            ((i.depthTexture.image.width = i.width), (i.depthTexture.image.height = i.height), (i.depthTexture.needsUpdate = !0)),
  25407.                            g(i.depthTexture, 0);
  25408.                            var a = r.get(i.depthTexture).__webglTexture;
  25409.                            e.framebufferTexture2D(e.FRAMEBUFFER, e.DEPTH_ATTACHMENT, e.TEXTURE_2D, a, 0);
  25410.                        }
  25411.  
  25412.                        function S(t) {
  25413.                            var i = r.get(t),
  25414.                                o = t instanceof n.WebGLRenderTargetCube;
  25415.                            if (t.depthTexture) {
  25416.                                if (o) throw new Error("target.depthTexture not supported in Cube render targets");
  25417.                                T(i.__webglFramebuffer, t);
  25418.                            } else if (o) {
  25419.                                i.__webglDepthbuffer = [];
  25420.                                for (var a = 0; 6 > a; a++) e.bindFramebuffer(e.FRAMEBUFFER, i.__webglFramebuffer[a]), (i.__webglDepthbuffer[a] = e.createRenderbuffer()), M(i.__webglDepthbuffer[a], t);
  25421.                            } else e.bindFramebuffer(e.FRAMEBUFFER, i.__webglFramebuffer), (i.__webglDepthbuffer = e.createRenderbuffer()), M(i.__webglDepthbuffer, t);
  25422.                            e.bindFramebuffer(e.FRAMEBUFFER, null);
  25423.                        }
  25424.  
  25425.                        function E(t) {
  25426.                            var o = r.get(t),
  25427.                                a = r.get(t.texture);
  25428.                            t.addEventListener("dispose", p), (a.__webglTexture = e.createTexture()), C.textures++;
  25429.                            var s = t instanceof n.WebGLRenderTargetCube,
  25430.                                l = c(t);
  25431.                            if (s) {
  25432.                                o.__webglFramebuffer = [];
  25433.                                for (var u = 0; 6 > u; u++) o.__webglFramebuffer[u] = e.createFramebuffer();
  25434.                            } else o.__webglFramebuffer = e.createFramebuffer();
  25435.                            if (s) {
  25436.                                i.bindTexture(e.TEXTURE_CUBE_MAP, a.__webglTexture), b(e.TEXTURE_CUBE_MAP, t.texture, l);
  25437.                                for (var u = 0; 6 > u; u++) w(o.__webglFramebuffer[u], t, e.COLOR_ATTACHMENT0, e.TEXTURE_CUBE_MAP_POSITIVE_X + u);
  25438.                                t.texture.generateMipmaps && l && e.generateMipmap(e.TEXTURE_CUBE_MAP), i.bindTexture(e.TEXTURE_CUBE_MAP, null);
  25439.                            } else
  25440.                                i.bindTexture(e.TEXTURE_2D, a.__webglTexture),
  25441.                                b(e.TEXTURE_2D, t.texture, l),
  25442.                                w(o.__webglFramebuffer, t, e.COLOR_ATTACHMENT0, e.TEXTURE_2D),
  25443.                                t.texture.generateMipmaps && l && e.generateMipmap(e.TEXTURE_2D),
  25444.                                i.bindTexture(e.TEXTURE_2D, null);
  25445.                            t.depthBuffer && S(t);
  25446.                        }
  25447.  
  25448.                        function A(t) {
  25449.                            var o = t.texture;
  25450.                            if (o.generateMipmaps && c(t) && o.minFilter !== n.NearestFilter && o.minFilter !== n.LinearFilter) {
  25451.                                var a = t instanceof n.WebGLRenderTargetCube ? e.TEXTURE_CUBE_MAP : e.TEXTURE_2D,
  25452.                                    s = r.get(o).__webglTexture;
  25453.                                i.bindTexture(a, s), e.generateMipmap(a), i.bindTexture(a, null);
  25454.                            }
  25455.                        }
  25456.                        var C = s.memory,
  25457.                            P = "undefined" != typeof WebGL2RenderingContext && e instanceof WebGL2RenderingContext;
  25458.                        (this.setTexture2D = g), (this.setTextureCube = y), (this.setTextureCubeDynamic = _), (this.setupRenderTarget = E), (this.updateRenderTargetMipmap = A);
  25459.                    }),
  25460.                    (n.WebGLUniforms = (function () {
  25461.                        var e = new n.Texture(),
  25462.                            t = new n.CubeTexture(),
  25463.                            i = function () {
  25464.                                (this.seq = []), (this.map = {});
  25465.                            },
  25466.                            r = [],
  25467.                            o = [],
  25468.                            a = function (e, t, i) {
  25469.                                var n = e[0];
  25470.                                if (0 >= n || n > 0) return e;
  25471.                                var o = t * i,
  25472.                                    a = r[o];
  25473.                                if ((void 0 === a && ((a = new Float32Array(o)), (r[o] = a)), 0 !== t)) {
  25474.                                    n.toArray(a, 0);
  25475.                                    for (var s = 1, l = 0; s !== t; ++s)(l += i), e[s].toArray(a, l);
  25476.                                }
  25477.                                return a;
  25478.                            },
  25479.                            s = function (e, t) {
  25480.                                var i = o[t];
  25481.                                void 0 === i && ((i = new Int32Array(t)), (o[t] = i));
  25482.                                for (var n = 0; n !== t; ++n) i[n] = e.allocTextureUnit();
  25483.                                return i;
  25484.                            },
  25485.                            l = function (e, t) {
  25486.                                e.uniform1f(this.addr, t);
  25487.                            },
  25488.                            c = function (e, t) {
  25489.                                e.uniform1i(this.addr, t);
  25490.                            },
  25491.                            u = function (e, t) {
  25492.                                void 0 === t.x ? e.uniform2fv(this.addr, t) : e.uniform2f(this.addr, t.x, t.y);
  25493.                            },
  25494.                            h = function (e, t) {
  25495.                                void 0 !== t.x ? e.uniform3f(this.addr, t.x, t.y, t.z) : void 0 !== t.r ? e.uniform3f(this.addr, t.r, t.g, t.b) : e.uniform3fv(this.addr, t);
  25496.                            },
  25497.                            d = function (e, t) {
  25498.                                void 0 === t.x ? e.uniform4fv(this.addr, t) : e.uniform4f(this.addr, t.x, t.y, t.z, t.w);
  25499.                            },
  25500.                            f = function (e, t) {
  25501.                                e.uniformMatrix2fv(this.addr, !1, t.elements || t);
  25502.                            },
  25503.                            p = function (e, t) {
  25504.                                e.uniformMatrix3fv(this.addr, !1, t.elements || t);
  25505.                            },
  25506.                            m = function (e, t) {
  25507.                                e.uniformMatrix4fv(this.addr, !1, t.elements || t);
  25508.                            },
  25509.                            v = function (t, i, n) {
  25510.                                var r = n.allocTextureUnit();
  25511.                                t.uniform1i(this.addr, r), n.setTexture2D(i || e, r);
  25512.                            },
  25513.                            g = function (e, i, n) {
  25514.                                var r = n.allocTextureUnit();
  25515.                                e.uniform1i(this.addr, r), n.setTextureCube(i || t, r);
  25516.                            },
  25517.                            y = function (e, t) {
  25518.                                e.uniform2iv(this.addr, t);
  25519.                            },
  25520.                            _ = function (e, t) {
  25521.                                e.uniform3iv(this.addr, t);
  25522.                            },
  25523.                            b = function (e, t) {
  25524.                                e.uniform4iv(this.addr, t);
  25525.                            },
  25526.                            x = function (e) {
  25527.                                switch (e) {
  25528.                                case 5126:
  25529.                                    return l;
  25530.                                case 35664:
  25531.                                    return u;
  25532.                                case 35665:
  25533.                                    return h;
  25534.                                case 35666:
  25535.                                    return d;
  25536.                                case 35674:
  25537.                                    return f;
  25538.                                case 35675:
  25539.                                    return p;
  25540.                                case 35676:
  25541.                                    return m;
  25542.                                case 35678:
  25543.                                    return v;
  25544.                                case 35680:
  25545.                                    return g;
  25546.                                case 5124:
  25547.                                case 35670:
  25548.                                    return c;
  25549.                                case 35667:
  25550.                                case 35671:
  25551.                                    return y;
  25552.                                case 35668:
  25553.                                case 35672:
  25554.                                    return _;
  25555.                                case 35669:
  25556.                                case 35673:
  25557.                                    return b;
  25558.                                }
  25559.                            },
  25560.                            w = function (e, t) {
  25561.                                e.uniform1fv(this.addr, t);
  25562.                            },
  25563.                            M = function (e, t) {
  25564.                                e.uniform1iv(this.addr, t);
  25565.                            },
  25566.                            T = function (e, t) {
  25567.                                e.uniform2fv(this.addr, a(t, this.size, 2));
  25568.                            },
  25569.                            S = function (e, t) {
  25570.                                e.uniform3fv(this.addr, a(t, this.size, 3));
  25571.                            },
  25572.                            E = function (e, t) {
  25573.                                e.uniform4fv(this.addr, a(t, this.size, 4));
  25574.                            },
  25575.                            A = function (e, t) {
  25576.                                e.uniformMatrix2fv(this.addr, !1, a(t, this.size, 4));
  25577.                            },
  25578.                            C = function (e, t) {
  25579.                                e.uniformMatrix3fv(this.addr, !1, a(t, this.size, 9));
  25580.                            },
  25581.                            P = function (e, t) {
  25582.                                e.uniformMatrix4fv(this.addr, !1, a(t, this.size, 16));
  25583.                            },
  25584.                            L = function (t, i, n) {
  25585.                                var r = i.length,
  25586.                                    o = s(n, r);
  25587.                                t.uniform1iv(this.addr, o);
  25588.                                for (var a = 0; a !== r; ++a) n.setTexture2D(i[a] || e, o[a]);
  25589.                            },
  25590.                            R = function (e, i, n) {
  25591.                                var r = i.length,
  25592.                                    o = s(n, r);
  25593.                                e.uniform1iv(this.addr, o);
  25594.                                for (var a = 0; a !== r; ++a) n.setTextureCube(i[a] || t, o[a]);
  25595.                            },
  25596.                            O = function (e) {
  25597.                                switch (e) {
  25598.                                case 5126:
  25599.                                    return w;
  25600.                                case 35664:
  25601.                                    return T;
  25602.                                case 35665:
  25603.                                    return S;
  25604.                                case 35666:
  25605.                                    return E;
  25606.                                case 35674:
  25607.                                    return A;
  25608.                                case 35675:
  25609.                                    return C;
  25610.                                case 35676:
  25611.                                    return P;
  25612.                                case 35678:
  25613.                                    return L;
  25614.                                case 35680:
  25615.                                    return R;
  25616.                                case 5124:
  25617.                                case 35670:
  25618.                                    return M;
  25619.                                case 35667:
  25620.                                case 35671:
  25621.                                    return y;
  25622.                                case 35668:
  25623.                                case 35672:
  25624.                                    return _;
  25625.                                case 35669:
  25626.                                case 35673:
  25627.                                    return b;
  25628.                                }
  25629.                            },
  25630.                            k = function (e, t, i) {
  25631.                                (this.id = e), (this.addr = i), (this.setValue = x(t.type));
  25632.                            },
  25633.                            D = function (e, t, i) {
  25634.                                (this.id = e), (this.addr = i), (this.size = t.size), (this.setValue = O(t.type));
  25635.                            },
  25636.                            I = function (e) {
  25637.                                (this.id = e), i.call(this);
  25638.                            };
  25639.                        I.prototype.setValue = function (e, t) {
  25640.                            for (var i = this.seq, n = 0, r = i.length; n !== r; ++n) {
  25641.                                var o = i[n];
  25642.                                o.setValue(e, t[o.id]);
  25643.                            }
  25644.                        };
  25645.                        var N = /([wd_]+)(])?([|.)?/g,
  25646.                            U = function (e, t) {
  25647.                                e.seq.push(t), (e.map[t.id] = t);
  25648.                            },
  25649.                            j = function (e, t, i) {
  25650.                                var n = e.name,
  25651.                                    r = n.length;
  25652.                                for (N.lastIndex = 0;;) {
  25653.                                    var o = N.exec(n),
  25654.                                        a = N.lastIndex,
  25655.                                        s = o[1],
  25656.                                        l = "]" === o[2],
  25657.                                        c = o[3];
  25658.                                    if ((l && (s = 0 | s), void 0 === c || ("[" === c && a + 2 === r))) {
  25659.                                        U(i, void 0 === c ? new k(s, e, t) : new D(s, e, t));
  25660.                                        break;
  25661.                                    }
  25662.                                    var u = i.map,
  25663.                                        h = u[s];
  25664.                                    void 0 === h && ((h = new I(s)), U(i, h)), (i = h);
  25665.                                }
  25666.                            },
  25667.                            B = function (e, t, n) {
  25668.                                i.call(this), (this.renderer = n);
  25669.                                for (var r = e.getProgramParameter(t, e.ACTIVE_UNIFORMS), o = 0; o !== r; ++o) {
  25670.                                    var a = e.getActiveUniform(t, o),
  25671.                                        s = a.name,
  25672.                                        l = e.getUniformLocation(t, s);
  25673.                                    j(a, l, this);
  25674.                                }
  25675.                            };
  25676.                        return (
  25677.                            (B.prototype.setValue = function (e, t, i) {
  25678.                                var n = this.map[t];
  25679.                                void 0 !== n && n.setValue(e, i, this.renderer);
  25680.                            }),
  25681.                            (B.prototype.set = function (e, t, i) {
  25682.                                var n = this.map[i];
  25683.                                void 0 !== n && n.setValue(e, t[i], this.renderer);
  25684.                            }),
  25685.                            (B.prototype.setOptional = function (e, t, i) {
  25686.                                var n = t[i];
  25687.                                void 0 !== n && this.setValue(e, i, n);
  25688.                            }),
  25689.                            (B.upload = function (e, t, i, n) {
  25690.                                for (var r = 0, o = t.length; r !== o; ++r) {
  25691.                                    var a = t[r],
  25692.                                        s = i[a.id];
  25693.                                    s.needsUpdate !== !1 && a.setValue(e, s.value, n);
  25694.                                }
  25695.                            }),
  25696.                            (B.seqWithValue = function (e, t) {
  25697.                                for (var i = [], n = 0, r = e.length; n !== r; ++n) {
  25698.                                    var o = e[n];
  25699.                                    o.id in t && i.push(o);
  25700.                                }
  25701.                                return i;
  25702.                            }),
  25703.                            (B.splitDynamic = function (e, t) {
  25704.                                for (var i = null, n = e.length, r = 0, o = 0; o !== n; ++o) {
  25705.                                    var a = e[o],
  25706.                                        s = t[a.id];
  25707.                                    s && s.dynamic === !0 ? (null === i && (i = []), i.push(a)) : (o > r && (e[r] = a), ++r);
  25708.                                }
  25709.                                return n > r && (e.length = r), i;
  25710.                            }),
  25711.                            (B.evalDynamic = function (e, t, i, n) {
  25712.                                for (var r = 0, o = e.length; r !== o; ++r) {
  25713.                                    var a = t[e[r].id],
  25714.                                        s = a.onUpdateCallback;
  25715.                                    void 0 !== s && s.call(a, i, n);
  25716.                                }
  25717.                            }),
  25718.                            B
  25719.                        );
  25720.                    })()),
  25721.                    (n.LensFlarePlugin = function (e, t) {
  25722.                        function i() {
  25723.                            var e = new Float32Array([-1, -1, 0, 0, 1, -1, 1, 0, 1, 1, 1, 1, -1, 1, 0, 1]),
  25724.                                t = new Uint16Array([0, 1, 2, 0, 2, 3]);
  25725.                            (o = f.createBuffer()),
  25726.                            (a = f.createBuffer()),
  25727.                            f.bindBuffer(f.ARRAY_BUFFER, o),
  25728.                                f.bufferData(f.ARRAY_BUFFER, e, f.STATIC_DRAW),
  25729.                                f.bindBuffer(f.ELEMENT_ARRAY_BUFFER, a),
  25730.                                f.bufferData(f.ELEMENT_ARRAY_BUFFER, t, f.STATIC_DRAW),
  25731.                                (h = f.createTexture()),
  25732.                                (d = f.createTexture()),
  25733.                                p.bindTexture(f.TEXTURE_2D, h),
  25734.                                f.texImage2D(f.TEXTURE_2D, 0, f.RGB, 16, 16, 0, f.RGB, f.UNSIGNED_BYTE, null),
  25735.                                f.texParameteri(f.TEXTURE_2D, f.TEXTURE_WRAP_S, f.CLAMP_TO_EDGE),
  25736.                                f.texParameteri(f.TEXTURE_2D, f.TEXTURE_WRAP_T, f.CLAMP_TO_EDGE),
  25737.                                f.texParameteri(f.TEXTURE_2D, f.TEXTURE_MAG_FILTER, f.NEAREST),
  25738.                                f.texParameteri(f.TEXTURE_2D, f.TEXTURE_MIN_FILTER, f.NEAREST),
  25739.                                p.bindTexture(f.TEXTURE_2D, d),
  25740.                                f.texImage2D(f.TEXTURE_2D, 0, f.RGBA, 16, 16, 0, f.RGBA, f.UNSIGNED_BYTE, null),
  25741.                                f.texParameteri(f.TEXTURE_2D, f.TEXTURE_WRAP_S, f.CLAMP_TO_EDGE),
  25742.                                f.texParameteri(f.TEXTURE_2D, f.TEXTURE_WRAP_T, f.CLAMP_TO_EDGE),
  25743.                                f.texParameteri(f.TEXTURE_2D, f.TEXTURE_MAG_FILTER, f.NEAREST),
  25744.                                f.texParameteri(f.TEXTURE_2D, f.TEXTURE_MIN_FILTER, f.NEAREST),
  25745.                                (s = {
  25746.                                    vertexShader: [
  25747.                                        "uniform lowp int renderType;",
  25748.                                        "uniform vec3 screenPosition;",
  25749.                                        "uniform vec2 scale;",
  25750.                                        "uniform float rotation;",
  25751.                                        "uniform sampler2D occlusionMap;",
  25752.                                        "attribute vec2 position;",
  25753.                                        "attribute vec2 uv;",
  25754.                                        "varying vec2 vUV;",
  25755.                                        "varying float vVisibility;",
  25756.                                        "void main() {",
  25757.                                        "vUV = uv;",
  25758.                                        "vec2 pos = position;",
  25759.                                        "if ( renderType == 2 ) {",
  25760.                                        "vec4 visibility = texture2D( occlusionMap, vec2( 0.1, 0.1 ) );",
  25761.                                        "visibility += texture2D( occlusionMap, vec2( 0.5, 0.1 ) );",
  25762.                                        "visibility += texture2D( occlusionMap, vec2( 0.9, 0.1 ) );",
  25763.                                        "visibility += texture2D( occlusionMap, vec2( 0.9, 0.5 ) );",
  25764.                                        "visibility += texture2D( occlusionMap, vec2( 0.9, 0.9 ) );",
  25765.                                        "visibility += texture2D( occlusionMap, vec2( 0.5, 0.9 ) );",
  25766.                                        "visibility += texture2D( occlusionMap, vec2( 0.1, 0.9 ) );",
  25767.                                        "visibility += texture2D( occlusionMap, vec2( 0.1, 0.5 ) );",
  25768.                                        "visibility += texture2D( occlusionMap, vec2( 0.5, 0.5 ) );",
  25769.                                        "vVisibility =        visibility.r / 9.0;",
  25770.                                        "vVisibility *= 1.0 - visibility.g / 9.0;",
  25771.                                        "vVisibility *=       visibility.b / 9.0;",
  25772.                                        "vVisibility *= 1.0 - visibility.a / 9.0;",
  25773.                                        "pos.x = cos( rotation ) * position.x - sin( rotation ) * position.y;",
  25774.                                        "pos.y = sin( rotation ) * position.x + cos( rotation ) * position.y;",
  25775.                                        "}",
  25776.                                        "gl_Position = vec4( ( pos * scale + screenPosition.xy ).xy, screenPosition.z, 1.0 );",
  25777.                                        "}",
  25778.                                    ].join("n"),
  25779.                                    fragmentShader: [
  25780.                                        "uniform lowp int renderType;",
  25781.                                        "uniform sampler2D map;",
  25782.                                        "uniform float opacity;",
  25783.                                        "uniform vec3 color;",
  25784.                                        "varying vec2 vUV;",
  25785.                                        "varying float vVisibility;",
  25786.                                        "void main() {",
  25787.                                        "if ( renderType == 0 ) {",
  25788.                                        "gl_FragColor = vec4( 1.0, 0.0, 1.0, 0.0 );",
  25789.                                        "} else if ( renderType == 1 ) {",
  25790.                                        "gl_FragColor = texture2D( map, vUV );",
  25791.                                        "} else {",
  25792.                                        "vec4 texture = texture2D( map, vUV );",
  25793.                                        "texture.a *= opacity * vVisibility;",
  25794.                                        "gl_FragColor = texture;",
  25795.                                        "gl_FragColor.rgb *= color;",
  25796.                                        "}",
  25797.                                        "}",
  25798.                                    ].join("n"),
  25799.                                }),
  25800.                                (l = r(s)),
  25801.                                (c = {
  25802.                                    vertex: f.getAttribLocation(l, "position"),
  25803.                                    uv: f.getAttribLocation(l, "uv")
  25804.                                }),
  25805.                                (u = {
  25806.                                    renderType: f.getUniformLocation(l, "renderType"),
  25807.                                    map: f.getUniformLocation(l, "map"),
  25808.                                    occlusionMap: f.getUniformLocation(l, "occlusionMap"),
  25809.                                    opacity: f.getUniformLocation(l, "opacity"),
  25810.                                    color: f.getUniformLocation(l, "color"),
  25811.                                    scale: f.getUniformLocation(l, "scale"),
  25812.                                    rotation: f.getUniformLocation(l, "rotation"),
  25813.                                    screenPosition: f.getUniformLocation(l, "screenPosition"),
  25814.                                });
  25815.                        }
  25816.  
  25817.                        function r(t) {
  25818.                            var i = f.createProgram(),
  25819.                                n = f.createShader(f.FRAGMENT_SHADER),
  25820.                                r = f.createShader(f.VERTEX_SHADER),
  25821.                                o = "precision " + e.getPrecision() + " float;n";
  25822.                            return f.shaderSource(n, o + t.fragmentShader), f.shaderSource(r, o + t.vertexShader), f.compileShader(n), f.compileShader(r), f.attachShader(i, n), f.attachShader(i, r), f.linkProgram(i), i;
  25823.                        }
  25824.                        var o,
  25825.                            a,
  25826.                            s,
  25827.                            l,
  25828.                            c,
  25829.                            u,
  25830.                            h,
  25831.                            d,
  25832.                            f = e.context,
  25833.                            p = e.state;
  25834.                        this.render = function (r, s, m) {
  25835.                            if (0 !== t.length) {
  25836.                                var v = new n.Vector3(),
  25837.                                    g = m.w / m.z,
  25838.                                    y = 0.5 * m.z,
  25839.                                    _ = 0.5 * m.w,
  25840.                                    b = 16 / m.w,
  25841.                                    x = new n.Vector2(b * g, b),
  25842.                                    w = new n.Vector3(1, 1, 0),
  25843.                                    M = new n.Vector2(1, 1),
  25844.                                    T = new n.Box2();
  25845.                                T.min.set(0, 0),
  25846.                                    T.max.set(m.z - 16, m.w - 16),
  25847.                                    void 0 === l && i(),
  25848.                                    f.useProgram(l),
  25849.                                    p.initAttributes(),
  25850.                                    p.enableAttribute(c.vertex),
  25851.                                    p.enableAttribute(c.uv),
  25852.                                    p.disableUnusedAttributes(),
  25853.                                    f.uniform1i(u.occlusionMap, 0),
  25854.                                    f.uniform1i(u.map, 1),
  25855.                                    f.bindBuffer(f.ARRAY_BUFFER, o),
  25856.                                    f.vertexAttribPointer(c.vertex, 2, f.FLOAT, !1, 16, 0),
  25857.                                    f.vertexAttribPointer(c.uv, 2, f.FLOAT, !1, 16, 8),
  25858.                                    f.bindBuffer(f.ELEMENT_ARRAY_BUFFER, a),
  25859.                                    p.disable(f.CULL_FACE),
  25860.                                    p.setDepthWrite(!1);
  25861.                                for (var S = 0, E = t.length; E > S; S++) {
  25862.                                    (b = 16 / m.w), x.set(b * g, b);
  25863.                                    var A = t[S];
  25864.                                    if (
  25865.                                        (v.set(A.matrixWorld.elements[12], A.matrixWorld.elements[13], A.matrixWorld.elements[14]),
  25866.                                            v.applyMatrix4(s.matrixWorldInverse),
  25867.                                            v.applyProjection(s.projectionMatrix),
  25868.                                            w.copy(v),
  25869.                                            (M.x = m.x + w.x * y + y - 8),
  25870.                                            (M.y = m.y + w.y * _ + _ - 8),
  25871.                                            T.containsPoint(M) === !0)
  25872.                                    ) {
  25873.                                        p.activeTexture(f.TEXTURE0),
  25874.                                            p.bindTexture(f.TEXTURE_2D, null),
  25875.                                            p.activeTexture(f.TEXTURE1),
  25876.                                            p.bindTexture(f.TEXTURE_2D, h),
  25877.                                            f.copyTexImage2D(f.TEXTURE_2D, 0, f.RGB, M.x, M.y, 16, 16, 0),
  25878.                                            f.uniform1i(u.renderType, 0),
  25879.                                            f.uniform2f(u.scale, x.x, x.y),
  25880.                                            f.uniform3f(u.screenPosition, w.x, w.y, w.z),
  25881.                                            p.disable(f.BLEND),
  25882.                                            p.enable(f.DEPTH_TEST),
  25883.                                            f.drawElements(f.TRIANGLES, 6, f.UNSIGNED_SHORT, 0),
  25884.                                            p.activeTexture(f.TEXTURE0),
  25885.                                            p.bindTexture(f.TEXTURE_2D, d),
  25886.                                            f.copyTexImage2D(f.TEXTURE_2D, 0, f.RGBA, M.x, M.y, 16, 16, 0),
  25887.                                            f.uniform1i(u.renderType, 1),
  25888.                                            p.disable(f.DEPTH_TEST),
  25889.                                            p.activeTexture(f.TEXTURE1),
  25890.                                            p.bindTexture(f.TEXTURE_2D, h),
  25891.                                            f.drawElements(f.TRIANGLES, 6, f.UNSIGNED_SHORT, 0),
  25892.                                            A.positionScreen.copy(w),
  25893.                                            A.customUpdateCallback ? A.customUpdateCallback(A) : A.updateLensFlares(),
  25894.                                            f.uniform1i(u.renderType, 2),
  25895.                                            p.enable(f.BLEND);
  25896.                                        for (var C = 0, P = A.lensFlares.length; P > C; C++) {
  25897.                                            var L = A.lensFlares[C];
  25898.                                            L.opacity > 0.001 &&
  25899.                                                L.scale > 0.001 &&
  25900.                                                ((w.x = L.x),
  25901.                                                    (w.y = L.y),
  25902.                                                    (w.z = L.z),
  25903.                                                    (b = (L.size * L.scale) / m.w),
  25904.                                                    (x.x = b * g),
  25905.                                                    (x.y = b),
  25906.                                                    f.uniform3f(u.screenPosition, w.x, w.y, w.z),
  25907.                                                    f.uniform2f(u.scale, x.x, x.y),
  25908.                                                    f.uniform1f(u.rotation, L.rotation),
  25909.                                                    f.uniform1f(u.opacity, L.opacity),
  25910.                                                    f.uniform3f(u.color, L.color.r, L.color.g, L.color.b),
  25911.                                                    p.setBlending(L.blending, L.blendEquation, L.blendSrc, L.blendDst),
  25912.                                                    e.setTexture2D(L.texture, 1),
  25913.                                                    f.drawElements(f.TRIANGLES, 6, f.UNSIGNED_SHORT, 0));
  25914.                                        }
  25915.                                    }
  25916.                                }
  25917.                                p.enable(f.CULL_FACE), p.enable(f.DEPTH_TEST), p.setDepthWrite(!0), e.resetGLState();
  25918.                            }
  25919.                        };
  25920.                    }),
  25921.                    (n.SpritePlugin = function (e, t) {
  25922.                        function i() {
  25923.                            var e = new Float32Array([-0.5, -0.5, 0, 0, 0.5, -0.5, 1, 0, 0.5, 0.5, 1, 1, -0.5, 0.5, 0, 1]),
  25924.                                t = new Uint16Array([0, 1, 2, 0, 2, 3]);
  25925.                            (a = d.createBuffer()),
  25926.                            (s = d.createBuffer()),
  25927.                            d.bindBuffer(d.ARRAY_BUFFER, a),
  25928.                                d.bufferData(d.ARRAY_BUFFER, e, d.STATIC_DRAW),
  25929.                                d.bindBuffer(d.ELEMENT_ARRAY_BUFFER, s),
  25930.                                d.bufferData(d.ELEMENT_ARRAY_BUFFER, t, d.STATIC_DRAW),
  25931.                                (l = r()),
  25932.                                (c = {
  25933.                                    position: d.getAttribLocation(l, "position"),
  25934.                                    uv: d.getAttribLocation(l, "uv")
  25935.                                }),
  25936.                                (u = {
  25937.                                    uvOffset: d.getUniformLocation(l, "uvOffset"),
  25938.                                    uvScale: d.getUniformLocation(l, "uvScale"),
  25939.                                    rotation: d.getUniformLocation(l, "rotation"),
  25940.                                    scale: d.getUniformLocation(l, "scale"),
  25941.                                    color: d.getUniformLocation(l, "color"),
  25942.                                    map: d.getUniformLocation(l, "map"),
  25943.                                    opacity: d.getUniformLocation(l, "opacity"),
  25944.                                    modelViewMatrix: d.getUniformLocation(l, "modelViewMatrix"),
  25945.                                    projectionMatrix: d.getUniformLocation(l, "projectionMatrix"),
  25946.                                    fogType: d.getUniformLocation(l, "fogType"),
  25947.                                    fogDensity: d.getUniformLocation(l, "fogDensity"),
  25948.                                    fogNear: d.getUniformLocation(l, "fogNear"),
  25949.                                    fogFar: d.getUniformLocation(l, "fogFar"),
  25950.                                    fogColor: d.getUniformLocation(l, "fogColor"),
  25951.                                    alphaTest: d.getUniformLocation(l, "alphaTest"),
  25952.                                });
  25953.                            var i = document.createElementNS("http://www.w3.org/1999/xhtml", "canvas");
  25954.                            (i.width = 8), (i.height = 8);
  25955.                            var o = i.getContext("2d");
  25956.                            (o.fillStyle = "white"), o.fillRect(0, 0, 8, 8), (h = new n.Texture(i)), (h.needsUpdate = !0);
  25957.                        }
  25958.  
  25959.                        function r() {
  25960.                            var t = d.createProgram(),
  25961.                                i = d.createShader(d.VERTEX_SHADER),
  25962.                                n = d.createShader(d.FRAGMENT_SHADER);
  25963.                            return (
  25964.                                d.shaderSource(
  25965.                                    i,
  25966.                                    [
  25967.                                        "precision " + e.getPrecision() + " float;",
  25968.                                        "uniform mat4 modelViewMatrix;",
  25969.                                        "uniform mat4 projectionMatrix;",
  25970.                                        "uniform float rotation;",
  25971.                                        "uniform vec2 scale;",
  25972.                                        "uniform vec2 uvOffset;",
  25973.                                        "uniform vec2 uvScale;",
  25974.                                        "attribute vec2 position;",
  25975.                                        "attribute vec2 uv;",
  25976.                                        "varying vec2 vUV;",
  25977.                                        "void main() {",
  25978.                                        "vUV = uvOffset + uv * uvScale;",
  25979.                                        "vec2 alignedPosition = position * scale;",
  25980.                                        "vec2 rotatedPosition;",
  25981.                                        "rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;",
  25982.                                        "rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;",
  25983.                                        "vec4 finalPosition;",
  25984.                                        "finalPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );",
  25985.                                        "finalPosition.xy += rotatedPosition;",
  25986.                                        "finalPosition = projectionMatrix * finalPosition;",
  25987.                                        "gl_Position = finalPosition;",
  25988.                                        "}",
  25989.                                    ].join("n")
  25990.                                ),
  25991.                                d.shaderSource(
  25992.                                    n,
  25993.                                    [
  25994.                                        "precision " + e.getPrecision() + " float;",
  25995.                                        "uniform vec3 color;",
  25996.                                        "uniform sampler2D map;",
  25997.                                        "uniform float opacity;",
  25998.                                        "uniform int fogType;",
  25999.                                        "uniform vec3 fogColor;",
  26000.                                        "uniform float fogDensity;",
  26001.                                        "uniform float fogNear;",
  26002.                                        "uniform float fogFar;",
  26003.                                        "uniform float alphaTest;",
  26004.                                        "varying vec2 vUV;",
  26005.                                        "void main() {",
  26006.                                        "vec4 texture = texture2D( map, vUV );",
  26007.                                        "if ( texture.a < alphaTest ) discard;",
  26008.                                        "gl_FragColor = vec4( color * texture.xyz, texture.a * opacity );",
  26009.                                        "if ( fogType > 0 ) {",
  26010.                                        "float depth = gl_FragCoord.z / gl_FragCoord.w;",
  26011.                                        "float fogFactor = 0.0;",
  26012.                                        "if ( fogType == 1 ) {",
  26013.                                        "fogFactor = smoothstep( fogNear, fogFar, depth );",
  26014.                                        "} else {",
  26015.                                        "const float LOG2 = 1.442695;",
  26016.                                        "fogFactor = exp2( - fogDensity * fogDensity * depth * depth * LOG2 );",
  26017.                                        "fogFactor = 1.0 - clamp( fogFactor, 0.0, 1.0 );",
  26018.                                        "}",
  26019.                                        "gl_FragColor = mix( gl_FragColor, vec4( fogColor, gl_FragColor.w ), fogFactor );",
  26020.                                        "}",
  26021.                                        "}",
  26022.                                    ].join("n")
  26023.                                ),
  26024.                                d.compileShader(i),
  26025.                                d.compileShader(n),
  26026.                                d.attachShader(t, i),
  26027.                                d.attachShader(t, n),
  26028.                                d.linkProgram(t),
  26029.                                t
  26030.                            );
  26031.                        }
  26032.  
  26033.                        function o(e, t) {
  26034.                            return e.renderOrder !== t.renderOrder ? e.renderOrder - t.renderOrder : e.z !== t.z ? t.z - e.z : t.id - e.id;
  26035.                        }
  26036.                        var a,
  26037.                            s,
  26038.                            l,
  26039.                            c,
  26040.                            u,
  26041.                            h,
  26042.                            d = e.context,
  26043.                            f = e.state,
  26044.                            p = new n.Vector3(),
  26045.                            m = new n.Quaternion(),
  26046.                            v = new n.Vector3();
  26047.                        this.render = function (r, g) {
  26048.                            if (0 !== t.length) {
  26049.                                void 0 === l && i(),
  26050.                                    d.useProgram(l),
  26051.                                    f.initAttributes(),
  26052.                                    f.enableAttribute(c.position),
  26053.                                    f.enableAttribute(c.uv),
  26054.                                    f.disableUnusedAttributes(),
  26055.                                    f.disable(d.CULL_FACE),
  26056.                                    f.enable(d.BLEND),
  26057.                                    d.bindBuffer(d.ARRAY_BUFFER, a),
  26058.                                    d.vertexAttribPointer(c.position, 2, d.FLOAT, !1, 16, 0),
  26059.                                    d.vertexAttribPointer(c.uv, 2, d.FLOAT, !1, 16, 8),
  26060.                                    d.bindBuffer(d.ELEMENT_ARRAY_BUFFER, s),
  26061.                                    d.uniformMatrix4fv(u.projectionMatrix, !1, g.projectionMatrix.elements),
  26062.                                    f.activeTexture(d.TEXTURE0),
  26063.                                    d.uniform1i(u.map, 0);
  26064.                                var y = 0,
  26065.                                    _ = 0,
  26066.                                    b = r.fog;
  26067.                                b
  26068.                                    ?
  26069.                                    (d.uniform3f(u.fogColor, b.color.r, b.color.g, b.color.b),
  26070.                                        b instanceof n.Fog ?
  26071.                                        (d.uniform1f(u.fogNear, b.near), d.uniform1f(u.fogFar, b.far), d.uniform1i(u.fogType, 1), (y = 1), (_ = 1)) :
  26072.                                        b instanceof n.FogExp2 && (d.uniform1f(u.fogDensity, b.density), d.uniform1i(u.fogType, 2), (y = 2), (_ = 2))) :
  26073.                                    (d.uniform1i(u.fogType, 0), (y = 0), (_ = 0));
  26074.                                for (var x = 0, w = t.length; w > x; x++) {
  26075.                                    var M = t[x];
  26076.                                    M.modelViewMatrix.multiplyMatrices(g.matrixWorldInverse, M.matrixWorld), (M.z = -M.modelViewMatrix.elements[14]);
  26077.                                }
  26078.                                t.sort(o);
  26079.                                for (var T = [], x = 0, w = t.length; w > x; x++) {
  26080.                                    var M = t[x],
  26081.                                        S = M.material;
  26082.                                    if (S.visible !== !1) {
  26083.                                        d.uniform1f(u.alphaTest, S.alphaTest), d.uniformMatrix4fv(u.modelViewMatrix, !1, M.modelViewMatrix.elements), M.matrixWorld.decompose(p, m, v), (T[0] = v.x), (T[1] = v.y);
  26084.                                        var E = 0;
  26085.                                        r.fog && S.fog && (E = _),
  26086.                                            y !== E && (d.uniform1i(u.fogType, E), (y = E)),
  26087.                                            null !== S.map ? (d.uniform2f(u.uvOffset, S.map.offset.x, S.map.offset.y), d.uniform2f(u.uvScale, S.map.repeat.x, S.map.repeat.y)) : (d.uniform2f(u.uvOffset, 0, 0), d.uniform2f(u.uvScale, 1, 1)),
  26088.                                            d.uniform1f(u.opacity, S.opacity),
  26089.                                            d.uniform3f(u.color, S.color.r, S.color.g, S.color.b),
  26090.                                            d.uniform1f(u.rotation, S.rotation),
  26091.                                            d.uniform2fv(u.scale, T),
  26092.                                            f.setBlending(S.blending, S.blendEquation, S.blendSrc, S.blendDst),
  26093.                                            f.setDepthTest(S.depthTest),
  26094.                                            f.setDepthWrite(S.depthWrite),
  26095.                                            S.map ? e.setTexture2D(S.map, 0) : e.setTexture2D(h, 0),
  26096.                                            d.drawElements(d.TRIANGLES, 6, d.UNSIGNED_SHORT, 0);
  26097.                                    }
  26098.                                }
  26099.                                f.enable(d.CULL_FACE), e.resetGLState();
  26100.                            }
  26101.                        };
  26102.                    }),
  26103.                    Object.assign(n, {
  26104.                        Face4: function (e, t, i, r, o, a, s) {
  26105.                            return console.warn("THREE.Face4 has been removed. A THREE.Face3 will be created instead."), new n.Face3(e, t, i, o, a, s);
  26106.                        },
  26107.                        LineStrip: 0,
  26108.                        LinePieces: 1,
  26109.                        MeshFaceMaterial: n.MultiMaterial,
  26110.                        PointCloud: function (e, t) {
  26111.                            return console.warn("THREE.PointCloud has been renamed to THREE.Points."), new n.Points(e, t);
  26112.                        },
  26113.                        Particle: n.Sprite,
  26114.                        ParticleSystem: function (e, t) {
  26115.                            return console.warn("THREE.ParticleSystem has been renamed to THREE.Points."), new n.Points(e, t);
  26116.                        },
  26117.                        PointCloudMaterial: function (e) {
  26118.                            return console.warn("THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial."), new n.PointsMaterial(e);
  26119.                        },
  26120.                        ParticleBasicMaterial: function (e) {
  26121.                            return console.warn("THREE.ParticleBasicMaterial has been renamed to THREE.PointsMaterial."), new n.PointsMaterial(e);
  26122.                        },
  26123.                        ParticleSystemMaterial: function (e) {
  26124.                            return console.warn("THREE.ParticleSystemMaterial has been renamed to THREE.PointsMaterial."), new n.PointsMaterial(e);
  26125.                        },
  26126.                        Vertex: function (e, t, i) {
  26127.                            return console.warn("THREE.Vertex has been removed. Use THREE.Vector3 instead."), new n.Vector3(e, t, i);
  26128.                        },
  26129.                    }),
  26130.                    Object.assign(n.Box2.prototype, {
  26131.                        empty: function () {
  26132.                            return console.warn("THREE.Box2: .empty() has been renamed to .isEmpty()."), this.isEmpty();
  26133.                        },
  26134.                        isIntersectionBox: function (e) {
  26135.                            return console.warn("THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox()."), this.intersectsBox(e);
  26136.                        },
  26137.                    }),
  26138.                    Object.assign(n.Box3.prototype, {
  26139.                        empty: function () {
  26140.                            return console.warn("THREE.Box3: .empty() has been renamed to .isEmpty()."), this.isEmpty();
  26141.                        },
  26142.                        isIntersectionBox: function (e) {
  26143.                            return console.warn("THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox()."), this.intersectsBox(e);
  26144.                        },
  26145.                        isIntersectionSphere: function (e) {
  26146.                            return console.warn("THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere()."), this.intersectsSphere(e);
  26147.                        },
  26148.                    }),
  26149.                    Object.assign(n.Matrix3.prototype, {
  26150.                        multiplyVector3: function (e) {
  26151.                            return console.warn("THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead."), e.applyMatrix3(this);
  26152.                        },
  26153.                        multiplyVector3Array: function (e) {
  26154.                            return console.warn("THREE.Matrix3: .multiplyVector3Array() has been renamed. Use matrix.applyToVector3Array( array ) instead."), this.applyToVector3Array(e);
  26155.                        },
  26156.                    }),
  26157.                    Object.assign(n.Matrix4.prototype, {
  26158.                        extractPosition: function (e) {
  26159.                            return console.warn("THREE.Matrix4: .extractPosition() has been renamed to .copyPosition()."), this.copyPosition(e);
  26160.                        },
  26161.                        setRotationFromQuaternion: function (e) {
  26162.                            return console.warn("THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion()."), this.makeRotationFromQuaternion(e);
  26163.                        },
  26164.                        multiplyVector3: function (e) {
  26165.                            return console.warn("THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) or vector.applyProjection( matrix ) instead."), e.applyProjection(this);
  26166.                        },
  26167.                        multiplyVector4: function (e) {
  26168.                            return console.warn("THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead."), e.applyMatrix4(this);
  26169.                        },
  26170.                        multiplyVector3Array: function (e) {
  26171.                            return console.warn("THREE.Matrix4: .multiplyVector3Array() has been renamed. Use matrix.applyToVector3Array( array ) instead."), this.applyToVector3Array(e);
  26172.                        },
  26173.                        rotateAxis: function (e) {
  26174.                            console.warn("THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead."), e.transformDirection(this);
  26175.                        },
  26176.                        crossVector: function (e) {
  26177.                            return console.warn("THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead."), e.applyMatrix4(this);
  26178.                        },
  26179.                        translate: function (e) {
  26180.                            console.error("THREE.Matrix4: .translate() has been removed.");
  26181.                        },
  26182.                        rotateX: function (e) {
  26183.                            console.error("THREE.Matrix4: .rotateX() has been removed.");
  26184.                        },
  26185.                        rotateY: function (e) {
  26186.                            console.error("THREE.Matrix4: .rotateY() has been removed.");
  26187.                        },
  26188.                        rotateZ: function (e) {
  26189.                            console.error("THREE.Matrix4: .rotateZ() has been removed.");
  26190.                        },
  26191.                        rotateByAxis: function (e, t) {
  26192.                            console.error("THREE.Matrix4: .rotateByAxis() has been removed.");
  26193.                        },
  26194.                    }),
  26195.                    Object.assign(n.Plane.prototype, {
  26196.                        isIntersectionLine: function (e) {
  26197.                            return console.warn("THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine()."), this.intersectsLine(e);
  26198.                        },
  26199.                    }),
  26200.                    Object.assign(n.Quaternion.prototype, {
  26201.                        multiplyVector3: function (e) {
  26202.                            return console.warn("THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead."), e.applyQuaternion(this);
  26203.                        },
  26204.                    }),
  26205.                    Object.assign(n.Ray.prototype, {
  26206.                        isIntersectionBox: function (e) {
  26207.                            return console.warn("THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox()."), this.intersectsBox(e);
  26208.                        },
  26209.                        isIntersectionPlane: function (e) {
  26210.                            return console.warn("THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane()."), this.intersectsPlane(e);
  26211.                        },
  26212.                        isIntersectionSphere: function (e) {
  26213.                            return console.warn("THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere()."), this.intersectsSphere(e);
  26214.                        },
  26215.                    }),
  26216.                    Object.assign(n.Vector3.prototype, {
  26217.                        setEulerFromRotationMatrix: function () {
  26218.                            console.error("THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.");
  26219.                        },
  26220.                        setEulerFromQuaternion: function () {
  26221.                            console.error("THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.");
  26222.                        },
  26223.                        getPositionFromMatrix: function (e) {
  26224.                            return console.warn("THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition()."), this.setFromMatrixPosition(e);
  26225.                        },
  26226.                        getScaleFromMatrix: function (e) {
  26227.                            return console.warn("THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale()."), this.setFromMatrixScale(e);
  26228.                        },
  26229.                        getColumnFromMatrix: function (e, t) {
  26230.                            return console.warn("THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn()."), this.setFromMatrixColumn(t, e);
  26231.                        },
  26232.                    }),
  26233.                    Object.assign(n.Object3D.prototype, {
  26234.                        getChildByName: function (e) {
  26235.                            return console.warn("THREE.Object3D: .getChildByName() has been renamed to .getObjectByName()."), this.getObjectByName(e);
  26236.                        },
  26237.                        renderDepth: function (e) {
  26238.                            console.warn("THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.");
  26239.                        },
  26240.                        translate: function (e, t) {
  26241.                            return console.warn("THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead."), this.translateOnAxis(t, e);
  26242.                        },
  26243.                    }),
  26244.                    Object.defineProperties(n.Object3D.prototype, {
  26245.                        eulerOrder: {
  26246.                            get: function () {
  26247.                                return console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."), this.rotation.order;
  26248.                            },
  26249.                            set: function (e) {
  26250.                                console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."), (this.rotation.order = e);
  26251.                            },
  26252.                        },
  26253.                        useQuaternion: {
  26254.                            get: function () {
  26255.                                console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.");
  26256.                            },
  26257.                            set: function (e) {
  26258.                                console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.");
  26259.                            },
  26260.                        },
  26261.                    }),
  26262.                    Object.defineProperties(n.LOD.prototype, {
  26263.                        objects: {
  26264.                            get: function () {
  26265.                                return console.warn("THREE.LOD: .objects has been renamed to .levels."), this.levels;
  26266.                            },
  26267.                        },
  26268.                    }),
  26269.                    (n.PerspectiveCamera.prototype.setLens = function (e, t) {
  26270.                        console.warn("THREE.PerspectiveCamera.setLens is deprecated. Use .setFocalLength and .filmGauge for a photographic setup."), void 0 !== t && (this.filmGauge = t), this.setFocalLength(e);
  26271.                    }),
  26272.                    Object.defineProperties(n.Light.prototype, {
  26273.                        onlyShadow: {
  26274.                            set: function (e) {
  26275.                                console.warn("THREE.Light: .onlyShadow has been removed.");
  26276.                            },
  26277.                        },
  26278.                        shadowCameraFov: {
  26279.                            set: function (e) {
  26280.                                console.warn("THREE.Light: .shadowCameraFov is now .shadow.camera.fov."), (this.shadow.camera.fov = e);
  26281.                            },
  26282.                        },
  26283.                        shadowCameraLeft: {
  26284.                            set: function (e) {
  26285.                                console.warn("THREE.Light: .shadowCameraLeft is now .shadow.camera.left."), (this.shadow.camera.left = e);
  26286.                            },
  26287.                        },
  26288.                        shadowCameraRight: {
  26289.                            set: function (e) {
  26290.                                console.warn("THREE.Light: .shadowCameraRight is now .shadow.camera.right."), (this.shadow.camera.right = e);
  26291.                            },
  26292.                        },
  26293.                        shadowCameraTop: {
  26294.                            set: function (e) {
  26295.                                console.warn("THREE.Light: .shadowCameraTop is now .shadow.camera.top."), (this.shadow.camera.top = e);
  26296.                            },
  26297.                        },
  26298.                        shadowCameraBottom: {
  26299.                            set: function (e) {
  26300.                                console.warn("THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom."), (this.shadow.camera.bottom = e);
  26301.                            },
  26302.                        },
  26303.                        shadowCameraNear: {
  26304.                            set: function (e) {
  26305.                                console.warn("THREE.Light: .shadowCameraNear is now .shadow.camera.near."), (this.shadow.camera.near = e);
  26306.                            },
  26307.                        },
  26308.                        shadowCameraFar: {
  26309.                            set: function (e) {
  26310.                                console.warn("THREE.Light: .shadowCameraFar is now .shadow.camera.far."), (this.shadow.camera.far = e);
  26311.                            },
  26312.                        },
  26313.                        shadowCameraVisible: {
  26314.                            set: function (e) {
  26315.                                console.warn("THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.");
  26316.                            },
  26317.                        },
  26318.                        shadowBias: {
  26319.                            set: function (e) {
  26320.                                console.warn("THREE.Light: .shadowBias is now .shadow.bias."), (this.shadow.bias = e);
  26321.                            },
  26322.                        },
  26323.                        shadowDarkness: {
  26324.                            set: function (e) {
  26325.                                console.warn("THREE.Light: .shadowDarkness has been removed.");
  26326.                            },
  26327.                        },
  26328.                        shadowMapWidth: {
  26329.                            set: function (e) {
  26330.                                console.warn("THREE.Light: .shadowMapWidth is now .shadow.mapSize.width."), (this.shadow.mapSize.width = e);
  26331.                            },
  26332.                        },
  26333.                        shadowMapHeight: {
  26334.                            set: function (e) {
  26335.                                console.warn("THREE.Light: .shadowMapHeight is now .shadow.mapSize.height."), (this.shadow.mapSize.height = e);
  26336.                            },
  26337.                        },
  26338.                    }),
  26339.                    Object.defineProperties(n.BufferAttribute.prototype, {
  26340.                        length: {
  26341.                            get: function () {
  26342.                                return console.warn("THREE.BufferAttribute: .length has been deprecated. Please use .count."), this.array.length;
  26343.                            },
  26344.                        },
  26345.                    }),
  26346.                    Object.assign(n.BufferGeometry.prototype, {
  26347.                        addIndex: function (e) {
  26348.                            console.warn("THREE.BufferGeometry: .addIndex() has been renamed to .setIndex()."), this.setIndex(e);
  26349.                        },
  26350.                        addDrawCall: function (e, t, i) {
  26351.                            void 0 !== i && console.warn("THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset."), console.warn("THREE.BufferGeometry: .addDrawCall() is now .addGroup()."), this.addGroup(e, t);
  26352.                        },
  26353.                        clearDrawCalls: function () {
  26354.                            console.warn("THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups()."), this.clearGroups();
  26355.                        },
  26356.                        computeTangents: function () {
  26357.                            console.warn("THREE.BufferGeometry: .computeTangents() has been removed.");
  26358.                        },
  26359.                        computeOffsets: function () {
  26360.                            console.warn("THREE.BufferGeometry: .computeOffsets() has been removed.");
  26361.                        },
  26362.                    }),
  26363.                    Object.defineProperties(n.BufferGeometry.prototype, {
  26364.                        drawcalls: {
  26365.                            get: function () {
  26366.                                return console.error("THREE.BufferGeometry: .drawcalls has been renamed to .groups."), this.groups;
  26367.                            },
  26368.                        },
  26369.                        offsets: {
  26370.                            get: function () {
  26371.                                return console.warn("THREE.BufferGeometry: .offsets has been renamed to .groups."), this.groups;
  26372.                            },
  26373.                        },
  26374.                    }),
  26375.                    Object.defineProperties(n.Material.prototype, {
  26376.                        wrapAround: {
  26377.                            get: function () {
  26378.                                console.warn("THREE." + this.type + ": .wrapAround has been removed.");
  26379.                            },
  26380.                            set: function (e) {
  26381.                                console.warn("THREE." + this.type + ": .wrapAround has been removed.");
  26382.                            },
  26383.                        },
  26384.                        wrapRGB: {
  26385.                            get: function () {
  26386.                                return console.warn("THREE." + this.type + ": .wrapRGB has been removed."), new n.Color();
  26387.                            },
  26388.                        },
  26389.                    }),
  26390.                    Object.defineProperties(n.MeshPhongMaterial.prototype, {
  26391.                        metal: {
  26392.                            get: function () {
  26393.                                return console.warn("THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead."), !1;
  26394.                            },
  26395.                            set: function (e) {
  26396.                                console.warn("THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead");
  26397.                            },
  26398.                        },
  26399.                    }),
  26400.                    Object.defineProperties(n.ShaderMaterial.prototype, {
  26401.                        derivatives: {
  26402.                            get: function () {
  26403.                                return console.warn("THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives."), this.extensions.derivatives;
  26404.                            },
  26405.                            set: function (e) {
  26406.                                console.warn("THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives."), (this.extensions.derivatives = e);
  26407.                            },
  26408.                        },
  26409.                    }),
  26410.                    (n.EventDispatcher.prototype = Object.assign(
  26411.                        Object.create({
  26412.                            constructor: n.EventDispatcher,
  26413.                            apply: function (e) {
  26414.                                console.warn("THREE.EventDispatcher: .apply is deprecated, just inherit or Object.assign the prototype to mix-in."), Object.assign(e, this);
  26415.                            },
  26416.                        }),
  26417.                        n.EventDispatcher.prototype
  26418.                    )),
  26419.                    Object.assign(n.WebGLRenderer.prototype, {
  26420.                        supportsFloatTextures: function () {
  26421.                            return console.warn("THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( 'OES_texture_float' )."), this.extensions.get("OES_texture_float");
  26422.                        },
  26423.                        supportsHalfFloatTextures: function () {
  26424.                            return console.warn("THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( 'OES_texture_half_float' )."), this.extensions.get("OES_texture_half_float");
  26425.                        },
  26426.                        supportsStandardDerivatives: function () {
  26427.                            return console.warn("THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( 'OES_standard_derivatives' )."), this.extensions.get("OES_standard_derivatives");
  26428.                        },
  26429.                        supportsCompressedTextureS3TC: function () {
  26430.                            return console.warn("THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( 'WEBGL_compressed_texture_s3tc' )."), this.extensions.get("WEBGL_compressed_texture_s3tc");
  26431.                        },
  26432.                        supportsCompressedTexturePVRTC: function () {
  26433.                            return console.warn("THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( 'WEBGL_compressed_texture_pvrtc' )."), this.extensions.get("WEBGL_compressed_texture_pvrtc");
  26434.                        },
  26435.                        supportsBlendMinMax: function () {
  26436.                            return console.warn("THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( 'EXT_blend_minmax' )."), this.extensions.get("EXT_blend_minmax");
  26437.                        },
  26438.                        supportsVertexTextures: function () {
  26439.                            return this.capabilities.vertexTextures;
  26440.                        },
  26441.                        supportsInstancedArrays: function () {
  26442.                            return console.warn("THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( 'ANGLE_instanced_arrays' )."), this.extensions.get("ANGLE_instanced_arrays");
  26443.                        },
  26444.                        enableScissorTest: function (e) {
  26445.                            console.warn("THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest()."), this.setScissorTest(e);
  26446.                        },
  26447.                        initMaterial: function () {
  26448.                            console.warn("THREE.WebGLRenderer: .initMaterial() has been removed.");
  26449.                        },
  26450.                        addPrePlugin: function () {
  26451.                            console.warn("THREE.WebGLRenderer: .addPrePlugin() has been removed.");
  26452.                        },
  26453.                        addPostPlugin: function () {
  26454.                            console.warn("THREE.WebGLRenderer: .addPostPlugin() has been removed.");
  26455.                        },
  26456.                        updateShadowMap: function () {
  26457.                            console.warn("THREE.WebGLRenderer: .updateShadowMap() has been removed.");
  26458.                        },
  26459.                    }),
  26460.                    Object.defineProperties(n.WebGLRenderer.prototype, {
  26461.                        shadowMapEnabled: {
  26462.                            get: function () {
  26463.                                return this.shadowMap.enabled;
  26464.                            },
  26465.                            set: function (e) {
  26466.                                console.warn("THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled."), (this.shadowMap.enabled = e);
  26467.                            },
  26468.                        },
  26469.                        shadowMapType: {
  26470.                            get: function () {
  26471.                                return this.shadowMap.type;
  26472.                            },
  26473.                            set: function (e) {
  26474.                                console.warn("THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type."), (this.shadowMap.type = e);
  26475.                            },
  26476.                        },
  26477.                        shadowMapCullFace: {
  26478.                            get: function () {
  26479.                                return this.shadowMap.cullFace;
  26480.                            },
  26481.                            set: function (e) {
  26482.                                console.warn("THREE.WebGLRenderer: .shadowMapCullFace is now .shadowMap.cullFace."), (this.shadowMap.cullFace = e);
  26483.                            },
  26484.                        },
  26485.                    }),
  26486.                    Object.defineProperties(n.WebGLShadowMap.prototype, {
  26487.                        cullFace: {
  26488.                            get: function () {
  26489.                                return this.renderReverseSided ? n.CullFaceFront : n.CullFaceBack;
  26490.                            },
  26491.                            set: function (e) {
  26492.                                var t = e !== n.CullFaceBack;
  26493.                                console.warn("WebGLRenderer: .shadowMap.cullFace is deprecated. Set .shadowMap.renderReverseSided to " + t + "."), (this.renderReverseSided = t);
  26494.                            },
  26495.                        },
  26496.                    }),
  26497.                    Object.defineProperties(n.WebGLRenderTarget.prototype, {
  26498.                        wrapS: {
  26499.                            get: function () {
  26500.                                return console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."), this.texture.wrapS;
  26501.                            },
  26502.                            set: function (e) {
  26503.                                console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."), (this.texture.wrapS = e);
  26504.                            },
  26505.                        },
  26506.                        wrapT: {
  26507.                            get: function () {
  26508.                                return console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."), this.texture.wrapT;
  26509.                            },
  26510.                            set: function (e) {
  26511.                                console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."), (this.texture.wrapT = e);
  26512.                            },
  26513.                        },
  26514.                        magFilter: {
  26515.                            get: function () {
  26516.                                return console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."), this.texture.magFilter;
  26517.                            },
  26518.                            set: function (e) {
  26519.                                console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."), (this.texture.magFilter = e);
  26520.                            },
  26521.                        },
  26522.                        minFilter: {
  26523.                            get: function () {
  26524.                                return console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."), this.texture.minFilter;
  26525.                            },
  26526.                            set: function (e) {
  26527.                                console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."), (this.texture.minFilter = e);
  26528.                            },
  26529.                        },
  26530.                        anisotropy: {
  26531.                            get: function () {
  26532.                                return console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."), this.texture.anisotropy;
  26533.                            },
  26534.                            set: function (e) {
  26535.                                console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."), (this.texture.anisotropy = e);
  26536.                            },
  26537.                        },
  26538.                        offset: {
  26539.                            get: function () {
  26540.                                return console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."), this.texture.offset;
  26541.                            },
  26542.                            set: function (e) {
  26543.                                console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."), (this.texture.offset = e);
  26544.                            },
  26545.                        },
  26546.                        repeat: {
  26547.                            get: function () {
  26548.                                return console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."), this.texture.repeat;
  26549.                            },
  26550.                            set: function (e) {
  26551.                                console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."), (this.texture.repeat = e);
  26552.                            },
  26553.                        },
  26554.                        format: {
  26555.                            get: function () {
  26556.                                return console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."), this.texture.format;
  26557.                            },
  26558.                            set: function (e) {
  26559.                                console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."), (this.texture.format = e);
  26560.                            },
  26561.                        },
  26562.                        type: {
  26563.                            get: function () {
  26564.                                return console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."), this.texture.type;
  26565.                            },
  26566.                            set: function (e) {
  26567.                                console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."), (this.texture.type = e);
  26568.                            },
  26569.                        },
  26570.                        generateMipmaps: {
  26571.                            get: function () {
  26572.                                return console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."), this.texture.generateMipmaps;
  26573.                            },
  26574.                            set: function (e) {
  26575.                                console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."), (this.texture.generateMipmaps = e);
  26576.                            },
  26577.                        },
  26578.                    }),
  26579.                    Object.assign(n.Audio.prototype, {
  26580.                        load: function (e) {
  26581.                            console.warn("THREE.Audio: .load has been deprecated. Please use THREE.AudioLoader.");
  26582.                            var t = this,
  26583.                                i = new n.AudioLoader();
  26584.                            return (
  26585.                                i.load(e, function (e) {
  26586.                                    t.setBuffer(e);
  26587.                                }),
  26588.                                this
  26589.                            );
  26590.                        },
  26591.                    }),
  26592.                    Object.assign(n.AudioAnalyser.prototype, {
  26593.                        getData: function (e) {
  26594.                            return console.warn("THREE.AudioAnalyser: .getData() is now .getFrequencyData()."), this.getFrequencyData();
  26595.                        },
  26596.                    }),
  26597.                    (n.GeometryUtils = {
  26598.                        merge: function (e, t, i) {
  26599.                            console.warn("THREE.GeometryUtils: .merge() has been moved to Geometry. Use geometry.merge( geometry2, matrix, materialIndexOffset ) instead.");
  26600.                            var r;
  26601.                            t instanceof n.Mesh && (t.matrixAutoUpdate && t.updateMatrix(), (r = t.matrix), (t = t.geometry)), e.merge(t, r, i);
  26602.                        },
  26603.                        center: function (e) {
  26604.                            return console.warn("THREE.GeometryUtils: .center() has been moved to Geometry. Use geometry.center() instead."), e.center();
  26605.                        },
  26606.                    }),
  26607.                    (n.ImageUtils = {
  26608.                        crossOrigin: void 0,
  26609.                        loadTexture: function (e, t, i, r) {
  26610.                            console.warn("THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.");
  26611.                            var o = new n.TextureLoader();
  26612.                            o.setCrossOrigin(this.crossOrigin);
  26613.                            var a = o.load(e, i, void 0, r);
  26614.                            return t && (a.mapping = t), a;
  26615.                        },
  26616.                        loadTextureCube: function (e, t, i, r) {
  26617.                            console.warn("THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.");
  26618.                            var o = new n.CubeTextureLoader();
  26619.                            o.setCrossOrigin(this.crossOrigin);
  26620.                            var a = o.load(e, i, void 0, r);
  26621.                            return t && (a.mapping = t), a;
  26622.                        },
  26623.                        loadCompressedTexture: function () {
  26624.                            console.error("THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.");
  26625.                        },
  26626.                        loadCompressedTextureCube: function () {
  26627.                            console.error("THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.");
  26628.                        },
  26629.                    }),
  26630.                    (n.Projector = function () {
  26631.                        console.error("THREE.Projector has been moved to /examples/js/renderers/Projector.js."),
  26632.                            (this.projectVector = function (e, t) {
  26633.                                console.warn("THREE.Projector: .projectVector() is now vector.project()."), e.project(t);
  26634.                            }),
  26635.                            (this.unprojectVector = function (e, t) {
  26636.                                console.warn("THREE.Projector: .unprojectVector() is now vector.unproject()."), e.unproject(t);
  26637.                            }),
  26638.                            (this.pickingRay = function (e, t) {
  26639.                                console.error("THREE.Projector: .pickingRay() is now raycaster.setFromCamera().");
  26640.                            });
  26641.                    }),
  26642.                    (n.CanvasRenderer = function () {
  26643.                        console.error("THREE.CanvasRenderer has been moved to /examples/js/renderers/CanvasRenderer.js"),
  26644.                            (this.domElement = document.createElementNS("http://www.w3.org/1999/xhtml", "canvas")),
  26645.                            (this.clear = function () {}),
  26646.                            (this.render = function () {}),
  26647.                            (this.setClearColor = function () {}),
  26648.                            (this.setSize = function () {});
  26649.                    }),
  26650.                    (n.CurveUtils = {
  26651.                        tangentQuadraticBezier: function (e, t, i, n) {
  26652.                            return 2 * (1 - e) * (i - t) + 2 * e * (n - i);
  26653.                        },
  26654.                        tangentCubicBezier: function (e, t, i, n, r) {
  26655.                            return -3 * t * (1 - e) * (1 - e) + 3 * i * (1 - e) * (1 - e) - 6 * e * i * (1 - e) + 6 * e * n * (1 - e) - 3 * e * e * n + 3 * e * e * r;
  26656.                        },
  26657.                        tangentSpline: function (e, t, i, n, r) {
  26658.                            var o = 6 * e * e - 6 * e,
  26659.                                a = 3 * e * e - 4 * e + 1,
  26660.                                s = -6 * e * e + 6 * e,
  26661.                                l = 3 * e * e - 2 * e;
  26662.                            return o + a + s + l;
  26663.                        },
  26664.                        interpolate: function (e, t, i, n, r) {
  26665.                            var o = 0.5 * (i - e),
  26666.                                a = 0.5 * (n - t),
  26667.                                s = r * r,
  26668.                                l = r * s;
  26669.                            return (2 * t - 2 * i + o + a) * l + (-3 * t + 3 * i - 2 * o - a) * s + o * r + t;
  26670.                        },
  26671.                    }),
  26672.                    (n.SceneUtils = {
  26673.                        createMultiMaterialObject: function (e, t) {
  26674.                            for (var i = new n.Group(), r = 0, o = t.length; o > r; r++) i.add(new n.Mesh(e, t[r]));
  26675.                            return i;
  26676.                        },
  26677.                        detach: function (e, t, i) {
  26678.                            e.applyMatrix(t.matrixWorld), t.remove(e), i.add(e);
  26679.                        },
  26680.                        attach: function (e, t, i) {
  26681.                            var r = new n.Matrix4();
  26682.                            r.getInverse(i.matrixWorld), e.applyMatrix(r), t.remove(e), i.add(e);
  26683.                        },
  26684.                    }),
  26685.                    (n.ShapeUtils = {
  26686.                        area: function (e) {
  26687.                            for (var t = e.length, i = 0, n = t - 1, r = 0; t > r; n = r++) i += e[n].x * e[r].y - e[r].x * e[n].y;
  26688.                            return 0.5 * i;
  26689.                        },
  26690.                        triangulate: (function () {
  26691.                            function e(e, t, i, n, r, o) {
  26692.                                var a, s, l, c, u, h, d, f, p;
  26693.                                if (((s = e[o[t]].x), (l = e[o[t]].y), (c = e[o[i]].x), (u = e[o[i]].y), (h = e[o[n]].x), (d = e[o[n]].y), Number.EPSILON > (c - s) * (d - l) - (u - l) * (h - s))) return !1;
  26694.                                var m, v, g, y, _, b, x, w, M, T, S, E, A, C, P;
  26695.                                for (m = h - c, v = d - u, g = s - h, y = l - d, _ = c - s, b = u - l, a = 0; r > a; a++)
  26696.                                    if (
  26697.                                        ((f = e[o[a]].x),
  26698.                                            (p = e[o[a]].y),
  26699.                                            !((f === s && p === l) || (f === c && p === u) || (f === h && p === d)) &&
  26700.                                            ((x = f - s),
  26701.                                                (w = p - l),
  26702.                                                (M = f - c),
  26703.                                                (T = p - u),
  26704.                                                (S = f - h),
  26705.                                                (E = p - d),
  26706.                                                (P = m * T - v * M),
  26707.                                                (A = _ * w - b * x),
  26708.                                                (C = g * E - y * S),
  26709.                                                P >= -Number.EPSILON && C >= -Number.EPSILON && A >= -Number.EPSILON))
  26710.                                    )
  26711.                                        return !1;
  26712.                                return !0;
  26713.                            }
  26714.                            return function (t, i) {
  26715.                                var r = t.length;
  26716.                                if (3 > r) return null;
  26717.                                var o,
  26718.                                    a,
  26719.                                    s,
  26720.                                    l = [],
  26721.                                    c = [],
  26722.                                    u = [];
  26723.                                if (n.ShapeUtils.area(t) > 0)
  26724.                                    for (a = 0; r > a; a++) c[a] = a;
  26725.                                else
  26726.                                    for (a = 0; r > a; a++) c[a] = r - 1 - a;
  26727.                                var h = r,
  26728.                                    d = 2 * h;
  26729.                                for (a = h - 1; h > 2;) {
  26730.                                    if (d-- <= 0) return console.warn("THREE.ShapeUtils: Unable to triangulate polygon! in triangulate()"), i ? u : l;
  26731.                                    if (((o = a), o >= h && (o = 0), (a = o + 1), a >= h && (a = 0), (s = a + 1), s >= h && (s = 0), e(t, o, a, s, h, c))) {
  26732.                                        var f, p, m, v, g;
  26733.                                        for (f = c[o], p = c[a], m = c[s], l.push([t[f], t[p], t[m]]), u.push([c[o], c[a], c[s]]), v = a, g = a + 1; h > g; v++, g++) c[v] = c[g];
  26734.                                        h--, (d = 2 * h);
  26735.                                    }
  26736.                                }
  26737.                                return i ? u : l;
  26738.                            };
  26739.                        })(),
  26740.                        triangulateShape: function (e, t) {
  26741.                            function i(e) {
  26742.                                var t = e.length;
  26743.                                t > 2 && e[t - 1].equals(e[0]) && e.pop();
  26744.                            }
  26745.  
  26746.                            function r(e, t, i) {
  26747.                                return e.x !== t.x ? (e.x < t.x ? e.x <= i.x && i.x <= t.x : t.x <= i.x && i.x <= e.x) : e.y < t.y ? e.y <= i.y && i.y <= t.y : t.y <= i.y && i.y <= e.y;
  26748.                            }
  26749.  
  26750.                            function o(e, t, i, n, o) {
  26751.                                var a = t.x - e.x,
  26752.                                    s = t.y - e.y,
  26753.                                    l = n.x - i.x,
  26754.                                    c = n.y - i.y,
  26755.                                    u = e.x - i.x,
  26756.                                    h = e.y - i.y,
  26757.                                    d = s * l - a * c,
  26758.                                    f = s * u - a * h;
  26759.                                if (Math.abs(d) > Number.EPSILON) {
  26760.                                    var p;
  26761.                                    if (d > 0) {
  26762.                                        if (0 > f || f > d) return [];
  26763.                                        if (((p = c * u - l * h), 0 > p || p > d)) return [];
  26764.                                    } else {
  26765.                                        if (f > 0 || d > f) return [];
  26766.                                        if (((p = c * u - l * h), p > 0 || d > p)) return [];
  26767.                                    }
  26768.                                    if (0 === p) return !o || (0 !== f && f !== d) ? [e] : [];
  26769.                                    if (p === d) return !o || (0 !== f && f !== d) ? [t] : [];
  26770.                                    if (0 === f) return [i];
  26771.                                    if (f === d) return [n];
  26772.                                    var m = p / d;
  26773.                                    return [{
  26774.                                        x: e.x + m * a,
  26775.                                        y: e.y + m * s
  26776.                                    }];
  26777.                                }
  26778.                                if (0 !== f || c * u !== l * h) return [];
  26779.                                var v = 0 === a && 0 === s,
  26780.                                    g = 0 === l && 0 === c;
  26781.                                if (v && g) return e.x !== i.x || e.y !== i.y ? [] : [e];
  26782.                                if (v) return r(i, n, e) ? [e] : [];
  26783.                                if (g) return r(e, t, i) ? [i] : [];
  26784.                                var y, _, b, x, w, M, T, S;
  26785.                                return (
  26786.                                    0 !== a ?
  26787.                                    (e.x < t.x ? ((y = e), (b = e.x), (_ = t), (x = t.x)) : ((y = t), (b = t.x), (_ = e), (x = e.x)), i.x < n.x ? ((w = i), (T = i.x), (M = n), (S = n.x)) : ((w = n), (T = n.x), (M = i), (S = i.x))) :
  26788.                                    (e.y < t.y ? ((y = e), (b = e.y), (_ = t), (x = t.y)) : ((y = t), (b = t.y), (_ = e), (x = e.y)), i.y < n.y ? ((w = i), (T = i.y), (M = n), (S = n.y)) : ((w = n), (T = n.y), (M = i), (S = i.y))),
  26789.                                    T >= b ? (T > x ? [] : x === T ? (o ? [] : [w]) : S >= x ? [w, _] : [w, M]) : b > S ? [] : b === S ? (o ? [] : [y]) : S >= x ? [y, _] : [y, M]
  26790.                                );
  26791.                            }
  26792.  
  26793.                            function a(e, t, i, n) {
  26794.                                var r = t.x - e.x,
  26795.                                    o = t.y - e.y,
  26796.                                    a = i.x - e.x,
  26797.                                    s = i.y - e.y,
  26798.                                    l = n.x - e.x,
  26799.                                    c = n.y - e.y,
  26800.                                    u = r * s - o * a,
  26801.                                    h = r * c - o * l;
  26802.                                if (Math.abs(u) > Number.EPSILON) {
  26803.                                    var d = l * s - c * a;
  26804.                                    return u > 0 ? h >= 0 && d >= 0 : h >= 0 || d >= 0;
  26805.                                }
  26806.                                return h > 0;
  26807.                            }
  26808.  
  26809.                            function s(e, t) {
  26810.                                function i(e, t) {
  26811.                                    var i = y.length - 1,
  26812.                                        n = e - 1;
  26813.                                    0 > n && (n = i);
  26814.                                    var r = e + 1;
  26815.                                    r > i && (r = 0);
  26816.                                    var o = a(y[e], y[n], y[r], s[t]);
  26817.                                    if (!o) return !1;
  26818.                                    var l = s.length - 1,
  26819.                                        c = t - 1;
  26820.                                    0 > c && (c = l);
  26821.                                    var u = t + 1;
  26822.                                    return u > l && (u = 0), (o = a(s[t], s[c], s[u], y[e])), o ? !0 : !1;
  26823.                                }
  26824.  
  26825.                                function n(e, t) {
  26826.                                    var i, n, r;
  26827.                                    for (i = 0; i < y.length; i++)
  26828.                                        if (((n = i + 1), (n %= y.length), (r = o(e, t, y[i], y[n], !0)), r.length > 0)) return !0;
  26829.                                    return !1;
  26830.                                }
  26831.  
  26832.                                function r(e, i) {
  26833.                                    var n, r, a, s, l;
  26834.                                    for (n = 0; n < _.length; n++)
  26835.                                        for (r = t[_[n]], a = 0; a < r.length; a++)
  26836.                                            if (((s = a + 1), (s %= r.length), (l = o(e, i, r[a], r[s], !0)), l.length > 0)) return !0;
  26837.                                    return !1;
  26838.                                }
  26839.                                for (var s, l, c, u, h, d, f, p, m, v, g, y = e.concat(), _ = [], b = [], x = 0, w = t.length; w > x; x++) _.push(x);
  26840.                                for (var M = 0, T = 2 * _.length; _.length > 0;) {
  26841.                                    if ((T--, 0 > T)) {
  26842.                                        console.log("Infinite Loop! Holes left:" + _.length + ", Probably Hole outside Shape!");
  26843.                                        break;
  26844.                                    }
  26845.                                    for (c = M; c < y.length; c++) {
  26846.                                        (u = y[c]), (l = -1);
  26847.                                        for (var x = 0; x < _.length; x++)
  26848.                                            if (((d = _[x]), (f = u.x + ":" + u.y + ":" + d), void 0 === b[f])) {
  26849.                                                s = t[d];
  26850.                                                for (var S = 0; S < s.length; S++)
  26851.                                                    if (((h = s[S]), i(c, S) && !n(u, h) && !r(u, h))) {
  26852.                                                        (l = S), _.splice(x, 1), (p = y.slice(0, c + 1)), (m = y.slice(c)), (v = s.slice(l)), (g = s.slice(0, l + 1)), (y = p.concat(v).concat(g).concat(m)), (M = c);
  26853.                                                        break;
  26854.                                                    }
  26855.                                                if (l >= 0) break;
  26856.                                                b[f] = !0;
  26857.                                            }
  26858.                                        if (l >= 0) break;
  26859.                                    }
  26860.                                }
  26861.                                return y;
  26862.                            }
  26863.                            i(e), t.forEach(i);
  26864.                            for (var l, c, u, h, d, f, p = {}, m = e.concat(), v = 0, g = t.length; g > v; v++) Array.prototype.push.apply(m, t[v]);
  26865.                            for (l = 0, c = m.length; c > l; l++)(d = m[l].x + ":" + m[l].y), void 0 !== p[d] && console.warn("THREE.ShapeUtils: Duplicate point", d, l), (p[d] = l);
  26866.                            var y = s(e, t),
  26867.                                _ = n.ShapeUtils.triangulate(y, !1);
  26868.                            for (l = 0, c = _.length; c > l; l++)
  26869.                                for (h = _[l], u = 0; 3 > u; u++)(d = h[u].x + ":" + h[u].y), (f = p[d]), void 0 !== f && (h[u] = f);
  26870.                            return _.concat();
  26871.                        },
  26872.                        isClockWise: function (e) {
  26873.                            return n.ShapeUtils.area(e) < 0;
  26874.                        },
  26875.                        b2: (function () {
  26876.                            function e(e, t) {
  26877.                                var i = 1 - e;
  26878.                                return i * i * t;
  26879.                            }
  26880.  
  26881.                            function t(e, t) {
  26882.                                return 2 * (1 - e) * e * t;
  26883.                            }
  26884.  
  26885.                            function i(e, t) {
  26886.                                return e * e * t;
  26887.                            }
  26888.                            return function (n, r, o, a) {
  26889.                                return e(n, r) + t(n, o) + i(n, a);
  26890.                            };
  26891.                        })(),
  26892.                        b3: (function () {
  26893.                            function e(e, t) {
  26894.                                var i = 1 - e;
  26895.                                return i * i * i * t;
  26896.                            }
  26897.  
  26898.                            function t(e, t) {
  26899.                                var i = 1 - e;
  26900.                                return 3 * i * i * e * t;
  26901.                            }
  26902.  
  26903.                            function i(e, t) {
  26904.                                var i = 1 - e;
  26905.                                return 3 * i * e * e * t;
  26906.                            }
  26907.  
  26908.                            function n(e, t) {
  26909.                                return e * e * e * t;
  26910.                            }
  26911.                            return function (r, o, a, s, l) {
  26912.                                return e(r, o) + t(r, a) + i(r, s) + n(r, l);
  26913.                            };
  26914.                        })(),
  26915.                    }),
  26916.                    (n.Curve = function () {}),
  26917.                    (n.Curve.prototype = {
  26918.                        constructor: n.Curve,
  26919.                        getPoint: function (e) {
  26920.                            return console.warn("THREE.Curve: Warning, getPoint() not implemented!"), null;
  26921.                        },
  26922.                        getPointAt: function (e) {
  26923.                            var t = this.getUtoTmapping(e);
  26924.                            return this.getPoint(t);
  26925.                        },
  26926.                        getPoints: function (e) {
  26927.                            e || (e = 5);
  26928.                            for (var t = [], i = 0; e >= i; i++) t.push(this.getPoint(i / e));
  26929.                            return t;
  26930.                        },
  26931.                        getSpacedPoints: function (e) {
  26932.                            e || (e = 5);
  26933.                            for (var t = [], i = 0; e >= i; i++) t.push(this.getPointAt(i / e));
  26934.                            return t;
  26935.                        },
  26936.                        getLength: function () {
  26937.                            var e = this.getLengths();
  26938.                            return e[e.length - 1];
  26939.                        },
  26940.                        getLengths: function (e) {
  26941.                            if ((e || (e = this.__arcLengthDivisions ? this.__arcLengthDivisions : 200), this.cacheArcLengths && this.cacheArcLengths.length === e + 1 && !this.needsUpdate)) return this.cacheArcLengths;
  26942.                            this.needsUpdate = !1;
  26943.                            var t,
  26944.                                i,
  26945.                                n = [],
  26946.                                r = this.getPoint(0),
  26947.                                o = 0;
  26948.                            for (n.push(0), i = 1; e >= i; i++)(t = this.getPoint(i / e)), (o += t.distanceTo(r)), n.push(o), (r = t);
  26949.                            return (this.cacheArcLengths = n), n;
  26950.                        },
  26951.                        updateArcLengths: function () {
  26952.                            (this.needsUpdate = !0), this.getLengths();
  26953.                        },
  26954.                        getUtoTmapping: function (e, t) {
  26955.                            var i,
  26956.                                n = this.getLengths(),
  26957.                                r = 0,
  26958.                                o = n.length;
  26959.                            i = t ? t : e * n[o - 1];
  26960.                            for (var a, s = 0, l = o - 1; l >= s;)
  26961.                                if (((r = Math.floor(s + (l - s) / 2)), (a = n[r] - i), 0 > a)) s = r + 1;
  26962.                                else {
  26963.                                    if (!(a > 0)) {
  26964.                                        l = r;
  26965.                                        break;
  26966.                                    }
  26967.                                    l = r - 1;
  26968.                                }
  26969.                            if (((r = l), n[r] === i)) {
  26970.                                var c = r / (o - 1);
  26971.                                return c;
  26972.                            }
  26973.                            var u = n[r],
  26974.                                h = n[r + 1],
  26975.                                d = h - u,
  26976.                                f = (i - u) / d,
  26977.                                c = (r + f) / (o - 1);
  26978.                            return c;
  26979.                        },
  26980.                        getTangent: function (e) {
  26981.                            var t = 1e-4,
  26982.                                i = e - t,
  26983.                                n = e + t;
  26984.                            0 > i && (i = 0), n > 1 && (n = 1);
  26985.                            var r = this.getPoint(i),
  26986.                                o = this.getPoint(n),
  26987.                                a = o.clone().sub(r);
  26988.                            return a.normalize();
  26989.                        },
  26990.                        getTangentAt: function (e) {
  26991.                            var t = this.getUtoTmapping(e);
  26992.                            return this.getTangent(t);
  26993.                        },
  26994.                    }),
  26995.                    (n.Curve.create = function (e, t) {
  26996.                        return (e.prototype = Object.create(n.Curve.prototype)), (e.prototype.constructor = e), (e.prototype.getPoint = t), e;
  26997.                    }),
  26998.                    (n.CurvePath = function () {
  26999.                        (this.curves = []), (this.autoClose = !1);
  27000.                    }),
  27001.                    (n.CurvePath.prototype = Object.assign(Object.create(n.Curve.prototype), {
  27002.                        constructor: n.CurvePath,
  27003.                        add: function (e) {
  27004.                            this.curves.push(e);
  27005.                        },
  27006.                        closePath: function () {
  27007.                            var e = this.curves[0].getPoint(0),
  27008.                                t = this.curves[this.curves.length - 1].getPoint(1);
  27009.                            e.equals(t) || this.curves.push(new n.LineCurve(t, e));
  27010.                        },
  27011.                        getPoint: function (e) {
  27012.                            for (var t = e * this.getLength(), i = this.getCurveLengths(), n = 0; n < i.length;) {
  27013.                                if (i[n] >= t) {
  27014.                                    var r = i[n] - t,
  27015.                                        o = this.curves[n],
  27016.                                        a = o.getLength(),
  27017.                                        s = 0 === a ? 0 : 1 - r / a;
  27018.                                    return o.getPointAt(s);
  27019.                                }
  27020.                                n++;
  27021.                            }
  27022.                            return null;
  27023.                        },
  27024.                        getLength: function () {
  27025.                            var e = this.getCurveLengths();
  27026.                            return e[e.length - 1];
  27027.                        },
  27028.                        updateArcLengths: function () {
  27029.                            (this.needsUpdate = !0), (this.cacheLengths = null), this.getLengths();
  27030.                        },
  27031.                        getCurveLengths: function () {
  27032.                            if (this.cacheLengths && this.cacheLengths.length === this.curves.length) return this.cacheLengths;
  27033.                            for (var e = [], t = 0, i = 0, n = this.curves.length; n > i; i++)(t += this.curves[i].getLength()), e.push(t);
  27034.                            return (this.cacheLengths = e), e;
  27035.                        },
  27036.                        getSpacedPoints: function (e) {
  27037.                            e || (e = 40);
  27038.                            for (var t = [], i = 0; e >= i; i++) t.push(this.getPoint(i / e));
  27039.                            return this.autoClose && t.push(t[0]), t;
  27040.                        },
  27041.                        getPoints: function (e) {
  27042.                            e = e || 12;
  27043.                            for (var t, i = [], r = 0, o = this.curves; r < o.length; r++)
  27044.                                for (var a = o[r], s = a instanceof n.EllipseCurve ? 2 * e : a instanceof n.LineCurve ? 1 : a instanceof n.SplineCurve ? e * a.points.length : e, l = a.getPoints(s), c = 0; c < l.length; c++) {
  27045.                                    var u = l[c];
  27046.                                    (t && t.equals(u)) || (i.push(u), (t = u));
  27047.                                }
  27048.                            return this.autoClose && i.length > 1 && !i[i.length - 1].equals(i[0]) && i.push(i[0]), i;
  27049.                        },
  27050.                        createPointsGeometry: function (e) {
  27051.                            var t = this.getPoints(e);
  27052.                            return this.createGeometry(t);
  27053.                        },
  27054.                        createSpacedPointsGeometry: function (e) {
  27055.                            var t = this.getSpacedPoints(e);
  27056.                            return this.createGeometry(t);
  27057.                        },
  27058.                        createGeometry: function (e) {
  27059.                            for (var t = new n.Geometry(), i = 0, r = e.length; r > i; i++) {
  27060.                                var o = e[i];
  27061.                                t.vertices.push(new n.Vector3(o.x, o.y, o.z || 0));
  27062.                            }
  27063.                            return t;
  27064.                        },
  27065.                    })),
  27066.                    (n.Font = function (e) {
  27067.                        this.data = e;
  27068.                    }),
  27069.                    Object.assign(n.Font.prototype, {
  27070.                        generateShapes: function (e, t, i) {
  27071.                            function r(e) {
  27072.                                for (var i = String(e).split(""), n = t / a.resolution, r = 0, s = [], l = 0; l < i.length; l++) {
  27073.                                    var c = o(i[l], n, r);
  27074.                                    (r += c.offset), s.push(c.path);
  27075.                                }
  27076.                                return s;
  27077.                            }
  27078.  
  27079.                            function o(e, t, r) {
  27080.                                var o = a.glyphs[e] || a.glyphs["?"];
  27081.                                if (o) {
  27082.                                    var s,
  27083.                                        l,
  27084.                                        c,
  27085.                                        u,
  27086.                                        h,
  27087.                                        d,
  27088.                                        f,
  27089.                                        p,
  27090.                                        m,
  27091.                                        v,
  27092.                                        g,
  27093.                                        y = new n.ShapePath(),
  27094.                                        _ = [],
  27095.                                        b = n.ShapeUtils.b2,
  27096.                                        x = n.ShapeUtils.b3;
  27097.                                    if (o.o)
  27098.                                        for (var w = o._cachedOutline || (o._cachedOutline = o.o.split(" ")), M = 0, T = w.length; T > M;) {
  27099.                                            var S = w[M++];
  27100.                                            switch (S) {
  27101.                                            case "m":
  27102.                                                (s = w[M++] * t + r), (l = w[M++] * t), y.moveTo(s, l);
  27103.                                                break;
  27104.                                            case "l":
  27105.                                                (s = w[M++] * t + r), (l = w[M++] * t), y.lineTo(s, l);
  27106.                                                break;
  27107.                                            case "q":
  27108.                                                if (((c = w[M++] * t + r), (u = w[M++] * t), (f = w[M++] * t + r), (p = w[M++] * t), y.quadraticCurveTo(f, p, c, u), (g = _[_.length - 1]))) {
  27109.                                                    (h = g.x), (d = g.y);
  27110.                                                    for (var E = 1; i >= E; E++) {
  27111.                                                        var A = E / i;
  27112.                                                        b(A, h, f, c), b(A, d, p, u);
  27113.                                                    }
  27114.                                                }
  27115.                                                break;
  27116.                                            case "b":
  27117.                                                if (((c = w[M++] * t + r), (u = w[M++] * t), (f = w[M++] * t + r), (p = w[M++] * t), (m = w[M++] * t + r), (v = w[M++] * t), y.bezierCurveTo(f, p, m, v, c, u), (g = _[_.length - 1]))) {
  27118.                                                    (h = g.x), (d = g.y);
  27119.                                                    for (var E = 1; i >= E; E++) {
  27120.                                                        var A = E / i;
  27121.                                                        x(A, h, f, m, c), x(A, d, p, v, u);
  27122.                                                    }
  27123.                                                }
  27124.                                            }
  27125.                                        }
  27126.                                    return {
  27127.                                        offset: o.ha * t,
  27128.                                        path: y
  27129.                                    };
  27130.                                }
  27131.                            }
  27132.                            void 0 === t && (t = 100), void 0 === i && (i = 4);
  27133.                            for (var a = this.data, s = r(e), l = [], c = 0, u = s.length; u > c; c++) Array.prototype.push.apply(l, s[c].toShapes());
  27134.                            return l;
  27135.                        },
  27136.                    }),
  27137.                    (n.Path = function (e) {
  27138.                        n.CurvePath.call(this), (this.currentPoint = new n.Vector2()), e && this.fromPoints(e);
  27139.                    }),
  27140.                    (n.Path.prototype = Object.assign(Object.create(n.CurvePath.prototype), {
  27141.                        constructor: n.Path,
  27142.                        fromPoints: function (e) {
  27143.                            this.moveTo(e[0].x, e[0].y);
  27144.                            for (var t = 1, i = e.length; i > t; t++) this.lineTo(e[t].x, e[t].y);
  27145.                        },
  27146.                        moveTo: function (e, t) {
  27147.                            this.currentPoint.set(e, t);
  27148.                        },
  27149.                        lineTo: function (e, t) {
  27150.                            var i = new n.LineCurve(this.currentPoint.clone(), new n.Vector2(e, t));
  27151.                            this.curves.push(i), this.currentPoint.set(e, t);
  27152.                        },
  27153.                        quadraticCurveTo: function (e, t, i, r) {
  27154.                            var o = new n.QuadraticBezierCurve(this.currentPoint.clone(), new n.Vector2(e, t), new n.Vector2(i, r));
  27155.                            this.curves.push(o), this.currentPoint.set(i, r);
  27156.                        },
  27157.                        bezierCurveTo: function (e, t, i, r, o, a) {
  27158.                            var s = new n.CubicBezierCurve(this.currentPoint.clone(), new n.Vector2(e, t), new n.Vector2(i, r), new n.Vector2(o, a));
  27159.                            this.curves.push(s), this.currentPoint.set(o, a);
  27160.                        },
  27161.                        splineThru: function (e) {
  27162.                            var t = [this.currentPoint.clone()].concat(e),
  27163.                                i = new n.SplineCurve(t);
  27164.                            this.curves.push(i), this.currentPoint.copy(e[e.length - 1]);
  27165.                        },
  27166.                        arc: function (e, t, i, n, r, o) {
  27167.                            var a = this.currentPoint.x,
  27168.                                s = this.currentPoint.y;
  27169.                            this.absarc(e + a, t + s, i, n, r, o);
  27170.                        },
  27171.                        absarc: function (e, t, i, n, r, o) {
  27172.                            this.absellipse(e, t, i, i, n, r, o);
  27173.                        },
  27174.                        ellipse: function (e, t, i, n, r, o, a, s) {
  27175.                            var l = this.currentPoint.x,
  27176.                                c = this.currentPoint.y;
  27177.                            this.absellipse(e + l, t + c, i, n, r, o, a, s);
  27178.                        },
  27179.                        absellipse: function (e, t, i, r, o, a, s, l) {
  27180.                            var c = new n.EllipseCurve(e, t, i, r, o, a, s, l);
  27181.                            if (this.curves.length > 0) {
  27182.                                var u = c.getPoint(0);
  27183.                                u.equals(this.currentPoint) || this.lineTo(u.x, u.y);
  27184.                            }
  27185.                            this.curves.push(c);
  27186.                            var h = c.getPoint(1);
  27187.                            this.currentPoint.copy(h);
  27188.                        },
  27189.                    })),
  27190.                    (n.ShapePath = function () {
  27191.                        (this.subPaths = []), (this.currentPath = null);
  27192.                    }),
  27193.                    (n.ShapePath.prototype = {
  27194.                        moveTo: function (e, t) {
  27195.                            (this.currentPath = new n.Path()), this.subPaths.push(this.currentPath), this.currentPath.moveTo(e, t);
  27196.                        },
  27197.                        lineTo: function (e, t) {
  27198.                            this.currentPath.lineTo(e, t);
  27199.                        },
  27200.                        quadraticCurveTo: function (e, t, i, n) {
  27201.                            this.currentPath.quadraticCurveTo(e, t, i, n);
  27202.                        },
  27203.                        bezierCurveTo: function (e, t, i, n, r, o) {
  27204.                            this.currentPath.bezierCurveTo(e, t, i, n, r, o);
  27205.                        },
  27206.                        splineThru: function (e) {
  27207.                            this.currentPath.splineThru(e);
  27208.                        },
  27209.                        toShapes: function (e, t) {
  27210.                            function i(e) {
  27211.                                for (var t = [], i = 0, r = e.length; r > i; i++) {
  27212.                                    var o = e[i],
  27213.                                        a = new n.Shape();
  27214.                                    (a.curves = o.curves), t.push(a);
  27215.                                }
  27216.                                return t;
  27217.                            }
  27218.  
  27219.                            function r(e, t) {
  27220.                                for (var i = t.length, n = !1, r = i - 1, o = 0; i > o; r = o++) {
  27221.                                    var a = t[r],
  27222.                                        s = t[o],
  27223.                                        l = s.x - a.x,
  27224.                                        c = s.y - a.y;
  27225.                                    if (Math.abs(c) > Number.EPSILON) {
  27226.                                        if ((0 > c && ((a = t[o]), (l = -l), (s = t[r]), (c = -c)), e.y < a.y || e.y > s.y)) continue;
  27227.                                        if (e.y === a.y) {
  27228.                                            if (e.x === a.x) return !0;
  27229.                                        } else {
  27230.                                            var u = c * (e.x - a.x) - l * (e.y - a.y);
  27231.                                            if (0 === u) return !0;
  27232.                                            if (0 > u) continue;
  27233.                                            n = !n;
  27234.                                        }
  27235.                                    } else {
  27236.                                        if (e.y !== a.y) continue;
  27237.                                        if ((s.x <= e.x && e.x <= a.x) || (a.x <= e.x && e.x <= s.x)) return !0;
  27238.                                    }
  27239.                                }
  27240.                                return n;
  27241.                            }
  27242.                            var o = n.ShapeUtils.isClockWise,
  27243.                                a = this.subPaths;
  27244.                            if (0 === a.length) return [];
  27245.                            if (t === !0) return i(a);
  27246.                            var s,
  27247.                                l,
  27248.                                c,
  27249.                                u = [];
  27250.                            if (1 === a.length) return (l = a[0]), (c = new n.Shape()), (c.curves = l.curves), u.push(c), u;
  27251.                            var h = !o(a[0].getPoints());
  27252.                            h = e ? !h : h;
  27253.                            var d,
  27254.                                f = [],
  27255.                                p = [],
  27256.                                m = [],
  27257.                                v = 0;
  27258.                            (p[v] = void 0), (m[v] = []);
  27259.                            for (var g = 0, y = a.length; y > g; g++)
  27260.                                (l = a[g]), (d = l.getPoints()), (s = o(d)), (s = e ? !s : s), s ? (!h && p[v] && v++, (p[v] = {
  27261.                                    s: new n.Shape(),
  27262.                                    p: d
  27263.                                }), (p[v].s.curves = l.curves), h && v++, (m[v] = [])) : m[v].push({
  27264.                                    h: l,
  27265.                                    p: d[0]
  27266.                                });
  27267.                            if (!p[0]) return i(a);
  27268.                            if (p.length > 1) {
  27269.                                for (var _ = !1, b = [], x = 0, w = p.length; w > x; x++) f[x] = [];
  27270.                                for (var x = 0, w = p.length; w > x; x++)
  27271.                                    for (var M = m[x], T = 0; T < M.length; T++) {
  27272.                                        for (var S = M[T], E = !0, A = 0; A < p.length; A++) r(S.p, p[A].p) && (x !== A && b.push({
  27273.                                            froms: x,
  27274.                                            tos: A,
  27275.                                            hole: T
  27276.                                        }), E ? ((E = !1), f[A].push(S)) : (_ = !0));
  27277.                                        E && f[x].push(S);
  27278.                                    }
  27279.                                b.length > 0 && (_ || (m = f));
  27280.                            }
  27281.                            for (var C, g = 0, P = p.length; P > g; g++) {
  27282.                                (c = p[g].s), u.push(c), (C = m[g]);
  27283.                                for (var L = 0, R = C.length; R > L; L++) c.holes.push(C[L].h);
  27284.                            }
  27285.                            return u;
  27286.                        },
  27287.                    }),
  27288.                    (n.Shape = function () {
  27289.                        n.Path.apply(this, arguments), (this.holes = []);
  27290.                    }),
  27291.                    (n.Shape.prototype = Object.assign(Object.create(n.Path.prototype), {
  27292.                        constructor: n.Shape,
  27293.                        extrude: function (e) {
  27294.                            return new n.ExtrudeGeometry(this, e);
  27295.                        },
  27296.                        makeGeometry: function (e) {
  27297.                            return new n.ShapeGeometry(this, e);
  27298.                        },
  27299.                        getPointsHoles: function (e) {
  27300.                            for (var t = [], i = 0, n = this.holes.length; n > i; i++) t[i] = this.holes[i].getPoints(e);
  27301.                            return t;
  27302.                        },
  27303.                        extractAllPoints: function (e) {
  27304.                            return {
  27305.                                shape: this.getPoints(e),
  27306.                                holes: this.getPointsHoles(e)
  27307.                            };
  27308.                        },
  27309.                        extractPoints: function (e) {
  27310.                            return this.extractAllPoints(e);
  27311.                        },
  27312.                    })),
  27313.                    (n.LineCurve = function (e, t) {
  27314.                        (this.v1 = e), (this.v2 = t);
  27315.                    }),
  27316.                    (n.LineCurve.prototype = Object.create(n.Curve.prototype)),
  27317.                    (n.LineCurve.prototype.constructor = n.LineCurve),
  27318.                    (n.LineCurve.prototype.getPoint = function (e) {
  27319.                        if (1 === e) return this.v2.clone();
  27320.                        var t = this.v2.clone().sub(this.v1);
  27321.                        return t.multiplyScalar(e).add(this.v1), t;
  27322.                    }),
  27323.                    (n.LineCurve.prototype.getPointAt = function (e) {
  27324.                        return this.getPoint(e);
  27325.                    }),
  27326.                    (n.LineCurve.prototype.getTangent = function (e) {
  27327.                        var t = this.v2.clone().sub(this.v1);
  27328.                        return t.normalize();
  27329.                    }),
  27330.                    (n.QuadraticBezierCurve = function (e, t, i) {
  27331.                        (this.v0 = e), (this.v1 = t), (this.v2 = i);
  27332.                    }),
  27333.                    (n.QuadraticBezierCurve.prototype = Object.create(n.Curve.prototype)),
  27334.                    (n.QuadraticBezierCurve.prototype.constructor = n.QuadraticBezierCurve),
  27335.                    (n.QuadraticBezierCurve.prototype.getPoint = function (e) {
  27336.                        var t = n.ShapeUtils.b2;
  27337.                        return new n.Vector2(t(e, this.v0.x, this.v1.x, this.v2.x), t(e, this.v0.y, this.v1.y, this.v2.y));
  27338.                    }),
  27339.                    (n.QuadraticBezierCurve.prototype.getTangent = function (e) {
  27340.                        var t = n.CurveUtils.tangentQuadraticBezier;
  27341.                        return new n.Vector2(t(e, this.v0.x, this.v1.x, this.v2.x), t(e, this.v0.y, this.v1.y, this.v2.y)).normalize();
  27342.                    }),
  27343.                    (n.CubicBezierCurve = function (e, t, i, n) {
  27344.                        (this.v0 = e), (this.v1 = t), (this.v2 = i), (this.v3 = n);
  27345.                    }),
  27346.                    (n.CubicBezierCurve.prototype = Object.create(n.Curve.prototype)),
  27347.                    (n.CubicBezierCurve.prototype.constructor = n.CubicBezierCurve),
  27348.                    (n.CubicBezierCurve.prototype.getPoint = function (e) {
  27349.                        var t = n.ShapeUtils.b3;
  27350.                        return new n.Vector2(t(e, this.v0.x, this.v1.x, this.v2.x, this.v3.x), t(e, this.v0.y, this.v1.y, this.v2.y, this.v3.y));
  27351.                    }),
  27352.                    (n.CubicBezierCurve.prototype.getTangent = function (e) {
  27353.                        var t = n.CurveUtils.tangentCubicBezier;
  27354.                        return new n.Vector2(t(e, this.v0.x, this.v1.x, this.v2.x, this.v3.x), t(e, this.v0.y, this.v1.y, this.v2.y, this.v3.y)).normalize();
  27355.                    }),
  27356.                    (n.SplineCurve = function (e) {
  27357.                        this.points = void 0 == e ? [] : e;
  27358.                    }),
  27359.                    (n.SplineCurve.prototype = Object.create(n.Curve.prototype)),
  27360.                    (n.SplineCurve.prototype.constructor = n.SplineCurve),
  27361.                    (n.SplineCurve.prototype.getPoint = function (e) {
  27362.                        var t = this.points,
  27363.                            i = (t.length - 1) * e,
  27364.                            r = Math.floor(i),
  27365.                            o = i - r,
  27366.                            a = t[0 === r ? r : r - 1],
  27367.                            s = t[r],
  27368.                            l = t[r > t.length - 2 ? t.length - 1 : r + 1],
  27369.                            c = t[r > t.length - 3 ? t.length - 1 : r + 2],
  27370.                            u = n.CurveUtils.interpolate;
  27371.                        return new n.Vector2(u(a.x, s.x, l.x, c.x, o), u(a.y, s.y, l.y, c.y, o));
  27372.                    }),
  27373.                    (n.EllipseCurve = function (e, t, i, n, r, o, a, s) {
  27374.                        (this.aX = e), (this.aY = t), (this.xRadius = i), (this.yRadius = n), (this.aStartAngle = r), (this.aEndAngle = o), (this.aClockwise = a), (this.aRotation = s || 0);
  27375.                    }),
  27376.                    (n.EllipseCurve.prototype = Object.create(n.Curve.prototype)),
  27377.                    (n.EllipseCurve.prototype.constructor = n.EllipseCurve),
  27378.                    (n.EllipseCurve.prototype.getPoint = function (e) {
  27379.                        for (var t = 2 * Math.PI, i = this.aEndAngle - this.aStartAngle, r = Math.abs(i) < Number.EPSILON; 0 > i;) i += t;
  27380.                        for (; i > t;) i -= t;
  27381.                        i < Number.EPSILON && (i = r ? 0 : t), this.aClockwise !== !0 || r || (i === t ? (i = -t) : (i -= t));
  27382.                        var o = this.aStartAngle + e * i,
  27383.                            a = this.aX + this.xRadius * Math.cos(o),
  27384.                            s = this.aY + this.yRadius * Math.sin(o);
  27385.                        if (0 !== this.aRotation) {
  27386.                            var l = Math.cos(this.aRotation),
  27387.                                c = Math.sin(this.aRotation),
  27388.                                u = a - this.aX,
  27389.                                h = s - this.aY;
  27390.                            (a = u * l - h * c + this.aX), (s = u * c + h * l + this.aY);
  27391.                        }
  27392.                        return new n.Vector2(a, s);
  27393.                    }),
  27394.                    (n.ArcCurve = function (e, t, i, r, o, a) {
  27395.                        n.EllipseCurve.call(this, e, t, i, i, r, o, a);
  27396.                    }),
  27397.                    (n.ArcCurve.prototype = Object.create(n.EllipseCurve.prototype)),
  27398.                    (n.ArcCurve.prototype.constructor = n.ArcCurve),
  27399.                    (n.LineCurve3 = n.Curve.create(
  27400.                        function (e, t) {
  27401.                            (this.v1 = e), (this.v2 = t);
  27402.                        },
  27403.                        function (e) {
  27404.                            if (1 === e) return this.v2.clone();
  27405.                            var t = new n.Vector3();
  27406.                            return t.subVectors(this.v2, this.v1), t.multiplyScalar(e), t.add(this.v1), t;
  27407.                        }
  27408.                    )),
  27409.                    (n.QuadraticBezierCurve3 = n.Curve.create(
  27410.                        function (e, t, i) {
  27411.                            (this.v0 = e), (this.v1 = t), (this.v2 = i);
  27412.                        },
  27413.                        function (e) {
  27414.                            var t = n.ShapeUtils.b2;
  27415.                            return new n.Vector3(t(e, this.v0.x, this.v1.x, this.v2.x), t(e, this.v0.y, this.v1.y, this.v2.y), t(e, this.v0.z, this.v1.z, this.v2.z));
  27416.                        }
  27417.                    )),
  27418.                    (n.CubicBezierCurve3 = n.Curve.create(
  27419.                        function (e, t, i, n) {
  27420.                            (this.v0 = e), (this.v1 = t), (this.v2 = i), (this.v3 = n);
  27421.                        },
  27422.                        function (e) {
  27423.                            var t = n.ShapeUtils.b3;
  27424.                            return new n.Vector3(t(e, this.v0.x, this.v1.x, this.v2.x, this.v3.x), t(e, this.v0.y, this.v1.y, this.v2.y, this.v3.y), t(e, this.v0.z, this.v1.z, this.v2.z, this.v3.z));
  27425.                        }
  27426.                    )),
  27427.                    (n.SplineCurve3 = n.Curve.create(
  27428.                        function (e) {
  27429.                            console.warn("THREE.SplineCurve3 will be deprecated. Please use THREE.CatmullRomCurve3"), (this.points = void 0 == e ? [] : e);
  27430.                        },
  27431.                        function (e) {
  27432.                            var t = this.points,
  27433.                                i = (t.length - 1) * e,
  27434.                                r = Math.floor(i),
  27435.                                o = i - r,
  27436.                                a = t[0 == r ? r : r - 1],
  27437.                                s = t[r],
  27438.                                l = t[r > t.length - 2 ? t.length - 1 : r + 1],
  27439.                                c = t[r > t.length - 3 ? t.length - 1 : r + 2],
  27440.                                u = n.CurveUtils.interpolate;
  27441.                            return new n.Vector3(u(a.x, s.x, l.x, c.x, o), u(a.y, s.y, l.y, c.y, o), u(a.z, s.z, l.z, c.z, o));
  27442.                        }
  27443.                    )),
  27444.                    (n.CatmullRomCurve3 = (function () {
  27445.                        function e() {}
  27446.                        var t = new n.Vector3(),
  27447.                            i = new e(),
  27448.                            r = new e(),
  27449.                            o = new e();
  27450.                        return (
  27451.                            (e.prototype.init = function (e, t, i, n) {
  27452.                                (this.c0 = e), (this.c1 = i), (this.c2 = -3 * e + 3 * t - 2 * i - n), (this.c3 = 2 * e - 2 * t + i + n);
  27453.                            }),
  27454.                            (e.prototype.initNonuniformCatmullRom = function (e, t, i, n, r, o, a) {
  27455.                                var s = (t - e) / r - (i - e) / (r + o) + (i - t) / o,
  27456.                                    l = (i - t) / o - (n - t) / (o + a) + (n - i) / a;
  27457.                                (s *= o), (l *= o), this.init(t, i, s, l);
  27458.                            }),
  27459.                            (e.prototype.initCatmullRom = function (e, t, i, n, r) {
  27460.                                this.init(t, i, r * (i - e), r * (n - t));
  27461.                            }),
  27462.                            (e.prototype.calc = function (e) {
  27463.                                var t = e * e,
  27464.                                    i = t * e;
  27465.                                return this.c0 + this.c1 * e + this.c2 * t + this.c3 * i;
  27466.                            }),
  27467.                            n.Curve.create(
  27468.                                function (e) {
  27469.                                    (this.points = e || []), (this.closed = !1);
  27470.                                },
  27471.                                function (e) {
  27472.                                    var a,
  27473.                                        s,
  27474.                                        l,
  27475.                                        c,
  27476.                                        u = this.points;
  27477.                                    (c = u.length),
  27478.                                    2 > c && console.log("duh, you need at least 2 points"),
  27479.                                        (a = (c - (this.closed ? 0 : 1)) * e),
  27480.                                        (s = Math.floor(a)),
  27481.                                        (l = a - s),
  27482.                                        this.closed ? (s += s > 0 ? 0 : (Math.floor(Math.abs(s) / u.length) + 1) * u.length) : 0 === l && s === c - 1 && ((s = c - 2), (l = 1));
  27483.                                    var h, d, f, p;
  27484.                                    if (
  27485.                                        (this.closed || s > 0 ? (h = u[(s - 1) % c]) : (t.subVectors(u[0], u[1]).add(u[0]), (h = t)),
  27486.                                            (d = u[s % c]),
  27487.                                            (f = u[(s + 1) % c]),
  27488.                                            this.closed || c > s + 2 ? (p = u[(s + 2) % c]) : (t.subVectors(u[c - 1], u[c - 2]).add(u[c - 1]), (p = t)),
  27489.                                            void 0 === this.type || "centripetal" === this.type || "chordal" === this.type)
  27490.                                    ) {
  27491.                                        var m = "chordal" === this.type ? 0.5 : 0.25,
  27492.                                            v = Math.pow(h.distanceToSquared(d), m),
  27493.                                            g = Math.pow(d.distanceToSquared(f), m),
  27494.                                            y = Math.pow(f.distanceToSquared(p), m);
  27495.                                        1e-4 > g && (g = 1),
  27496.                                            1e-4 > v && (v = g),
  27497.                                            1e-4 > y && (y = g),
  27498.                                            i.initNonuniformCatmullRom(h.x, d.x, f.x, p.x, v, g, y),
  27499.                                            r.initNonuniformCatmullRom(h.y, d.y, f.y, p.y, v, g, y),
  27500.                                            o.initNonuniformCatmullRom(h.z, d.z, f.z, p.z, v, g, y);
  27501.                                    } else if ("catmullrom" === this.type) {
  27502.                                        var _ = void 0 !== this.tension ? this.tension : 0.5;
  27503.                                        i.initCatmullRom(h.x, d.x, f.x, p.x, _), r.initCatmullRom(h.y, d.y, f.y, p.y, _), o.initCatmullRom(h.z, d.z, f.z, p.z, _);
  27504.                                    }
  27505.                                    var b = new n.Vector3(i.calc(l), r.calc(l), o.calc(l));
  27506.                                    return b;
  27507.                                }
  27508.                            )
  27509.                        );
  27510.                    })()),
  27511.                    (n.ClosedSplineCurve3 = function (e) {
  27512.                        console.warn("THREE.ClosedSplineCurve3 has been deprecated. Please use THREE.CatmullRomCurve3."), n.CatmullRomCurve3.call(this, e), (this.type = "catmullrom"), (this.closed = !0);
  27513.                    }),
  27514.                    (n.ClosedSplineCurve3.prototype = Object.create(n.CatmullRomCurve3.prototype)),
  27515.                    (n.BoxGeometry = function (e, t, i, r, o, a) {
  27516.                        n.Geometry.call(this),
  27517.                            (this.type = "BoxGeometry"),
  27518.                            (this.parameters = {
  27519.                                width: e,
  27520.                                height: t,
  27521.                                depth: i,
  27522.                                widthSegments: r,
  27523.                                heightSegments: o,
  27524.                                depthSegments: a
  27525.                            }),
  27526.                            this.fromBufferGeometry(new n.BoxBufferGeometry(e, t, i, r, o, a)),
  27527.                            this.mergeVertices();
  27528.                    }),
  27529.                    (n.BoxGeometry.prototype = Object.create(n.Geometry.prototype)),
  27530.                    (n.BoxGeometry.prototype.constructor = n.BoxGeometry),
  27531.                    (n.CubeGeometry = n.BoxGeometry),
  27532.                    (n.BoxBufferGeometry = function (e, t, i, r, o, a) {
  27533.                        function s(e, t, i) {
  27534.                            var n = 0;
  27535.                            return (n += (e + 1) * (t + 1) * 2), (n += (e + 1) * (i + 1) * 2), (n += (i + 1) * (t + 1) * 2);
  27536.                        }
  27537.  
  27538.                        function l(e, t, i) {
  27539.                            var n = 0;
  27540.                            return (n += e * t * 2), (n += e * i * 2), (n += i * t * 2), 6 * n;
  27541.                        }
  27542.  
  27543.                        function c(e, t, i, r, o, a, s, l, c, h, d) {
  27544.                            for (var w = a / c, M = s / h, T = a / 2, S = s / 2, E = l / 2, A = c + 1, C = h + 1, P = 0, L = 0, R = new n.Vector3(), O = 0; C > O; O++)
  27545.                                for (var k = O * M - S, D = 0; A > D; D++) {
  27546.                                    var I = D * w - T;
  27547.                                    (R[e] = I * r),
  27548.                                    (R[t] = k * o),
  27549.                                    (R[i] = E),
  27550.                                    (p[g] = R.x),
  27551.                                    (p[g + 1] = R.y),
  27552.                                    (p[g + 2] = R.z),
  27553.                                    (R[e] = 0),
  27554.                                    (R[t] = 0),
  27555.                                    (R[i] = l > 0 ? 1 : -1),
  27556.                                    (m[g] = R.x),
  27557.                                    (m[g + 1] = R.y),
  27558.                                    (m[g + 2] = R.z),
  27559.                                    (v[y] = D / c),
  27560.                                    (v[y + 1] = 1 - O / h),
  27561.                                    (g += 3),
  27562.                                    (y += 2),
  27563.                                    (P += 1);
  27564.                                }
  27565.                            for (O = 0; h > O; O++)
  27566.                                for (D = 0; c > D; D++) {
  27567.                                    var N = b + D + A * O,
  27568.                                        U = b + D + A * (O + 1),
  27569.                                        j = b + (D + 1) + A * (O + 1),
  27570.                                        B = b + (D + 1) + A * O;
  27571.                                    (f[_] = N), (f[_ + 1] = U), (f[_ + 2] = B), (f[_ + 3] = U), (f[_ + 4] = j), (f[_ + 5] = B), (_ += 6), (L += 6);
  27572.                                }
  27573.                            u.addGroup(x, L, d), (x += L), (b += P);
  27574.                        }
  27575.                        n.BufferGeometry.call(this), (this.type = "BoxBufferGeometry"), (this.parameters = {
  27576.                            width: e,
  27577.                            height: t,
  27578.                            depth: i,
  27579.                            widthSegments: r,
  27580.                            heightSegments: o,
  27581.                            depthSegments: a
  27582.                        });
  27583.                        var u = this;
  27584.                        (r = Math.floor(r) || 1), (o = Math.floor(o) || 1), (a = Math.floor(a) || 1);
  27585.                        var h = s(r, o, a),
  27586.                            d = l(r, o, a),
  27587.                            f = new(d > 65535 ? Uint32Array : Uint16Array)(d),
  27588.                            p = new Float32Array(3 * h),
  27589.                            m = new Float32Array(3 * h),
  27590.                            v = new Float32Array(2 * h),
  27591.                            g = 0,
  27592.                            y = 0,
  27593.                            _ = 0,
  27594.                            b = 0,
  27595.                            x = 0;
  27596.                        c("z", "y", "x", -1, -1, i, t, e, a, o, 0),
  27597.                            c("z", "y", "x", 1, -1, i, t, -e, a, o, 1),
  27598.                            c("x", "z", "y", 1, 1, e, i, t, r, a, 2),
  27599.                            c("x", "z", "y", 1, -1, e, i, -t, r, a, 3),
  27600.                            c("x", "y", "z", 1, -1, e, t, i, r, o, 4),
  27601.                            c("x", "y", "z", -1, -1, e, t, -i, r, o, 5),
  27602.                            this.setIndex(new n.BufferAttribute(f, 1)),
  27603.                            this.addAttribute("position", new n.BufferAttribute(p, 3)),
  27604.                            this.addAttribute("normal", new n.BufferAttribute(m, 3)),
  27605.                            this.addAttribute("uv", new n.BufferAttribute(v, 2));
  27606.                    }),
  27607.                    (n.BoxBufferGeometry.prototype = Object.create(n.BufferGeometry.prototype)),
  27608.                    (n.BoxBufferGeometry.prototype.constructor = n.BoxBufferGeometry),
  27609.                    (n.CircleGeometry = function (e, t, i, r) {
  27610.                        n.Geometry.call(this), (this.type = "CircleGeometry"), (this.parameters = {
  27611.                            radius: e,
  27612.                            segments: t,
  27613.                            thetaStart: i,
  27614.                            thetaLength: r
  27615.                        }), this.fromBufferGeometry(new n.CircleBufferGeometry(e, t, i, r));
  27616.                    }),
  27617.                    (n.CircleGeometry.prototype = Object.create(n.Geometry.prototype)),
  27618.                    (n.CircleGeometry.prototype.constructor = n.CircleGeometry),
  27619.                    (n.CircleBufferGeometry = function (e, t, i, r) {
  27620.                        n.BufferGeometry.call(this),
  27621.                            (this.type = "CircleBufferGeometry"),
  27622.                            (this.parameters = {
  27623.                                radius: e,
  27624.                                segments: t,
  27625.                                thetaStart: i,
  27626.                                thetaLength: r
  27627.                            }),
  27628.                            (e = e || 50),
  27629.                            (t = void 0 !== t ? Math.max(3, t) : 8),
  27630.                            (i = void 0 !== i ? i : 0),
  27631.                            (r = void 0 !== r ? r : 2 * Math.PI);
  27632.                        var o = t + 2,
  27633.                            a = new Float32Array(3 * o),
  27634.                            s = new Float32Array(3 * o),
  27635.                            l = new Float32Array(2 * o);
  27636.                        (s[2] = 1), (l[0] = 0.5), (l[1] = 0.5);
  27637.                        for (var c = 0, u = 3, h = 2; t >= c; c++, u += 3, h += 2) {
  27638.                            var d = i + (c / t) * r;
  27639.                            (a[u] = e * Math.cos(d)), (a[u + 1] = e * Math.sin(d)), (s[u + 2] = 1), (l[h] = (a[u] / e + 1) / 2), (l[h + 1] = (a[u + 1] / e + 1) / 2);
  27640.                        }
  27641.                        for (var f = [], u = 1; t >= u; u++) f.push(u, u + 1, 0);
  27642.                        this.setIndex(new n.BufferAttribute(new Uint16Array(f), 1)),
  27643.                            this.addAttribute("position", new n.BufferAttribute(a, 3)),
  27644.                            this.addAttribute("normal", new n.BufferAttribute(s, 3)),
  27645.                            this.addAttribute("uv", new n.BufferAttribute(l, 2)),
  27646.                            (this.boundingSphere = new n.Sphere(new n.Vector3(), e));
  27647.                    }),
  27648.                    (n.CircleBufferGeometry.prototype = Object.create(n.BufferGeometry.prototype)),
  27649.                    (n.CircleBufferGeometry.prototype.constructor = n.CircleBufferGeometry),
  27650.                    (n.CylinderBufferGeometry = function (e, t, i, r, o, a, s, l) {
  27651.                        function c() {
  27652.                            var e = (r + 1) * (o + 1);
  27653.                            return a === !1 && (e += (r + 1) * p + r * p), e;
  27654.                        }
  27655.  
  27656.                        function u() {
  27657.                            var e = r * o * 2 * 3;
  27658.                            return a === !1 && (e += r * p * 3), e;
  27659.                        }
  27660.  
  27661.                        function h() {
  27662.                            var a,
  27663.                                c,
  27664.                                u = new n.Vector3(),
  27665.                                h = new n.Vector3(),
  27666.                                d = 0,
  27667.                                p = (t - e) / i;
  27668.                            for (c = 0; o >= c; c++) {
  27669.                                var m = [],
  27670.                                    v = c / o,
  27671.                                    E = v * (t - e) + e;
  27672.                                for (a = 0; r >= a; a++) {
  27673.                                    var A = a / r;
  27674.                                    (h.x = E * Math.sin(A * l + s)),
  27675.                                    (h.y = -v * i + T),
  27676.                                    (h.z = E * Math.cos(A * l + s)),
  27677.                                    y.setXYZ(x, h.x, h.y, h.z),
  27678.                                        u.copy(h),
  27679.                                        ((0 === e && 0 === c) || (0 === t && c === o)) && ((u.x = Math.sin(A * l + s)), (u.z = Math.cos(A * l + s))),
  27680.                                        u.setY(Math.sqrt(u.x * u.x + u.z * u.z) * p).normalize(),
  27681.                                        _.setXYZ(x, u.x, u.y, u.z),
  27682.                                        b.setXY(x, A, 1 - v),
  27683.                                        m.push(x),
  27684.                                        x++;
  27685.                                }
  27686.                                M.push(m);
  27687.                            }
  27688.                            for (a = 0; r > a; a++)
  27689.                                for (c = 0; o > c; c++) {
  27690.                                    var C = M[c][a],
  27691.                                        P = M[c + 1][a],
  27692.                                        L = M[c + 1][a + 1],
  27693.                                        R = M[c][a + 1];
  27694.                                    g.setX(w, C), w++, g.setX(w, P), w++, g.setX(w, R), w++, g.setX(w, P), w++, g.setX(w, L), w++, g.setX(w, R), w++, (d += 6);
  27695.                                }
  27696.                            f.addGroup(S, d, 0), (S += d);
  27697.                        }
  27698.  
  27699.                        function d(i) {
  27700.                            var o,
  27701.                                a,
  27702.                                c,
  27703.                                u = new n.Vector2(),
  27704.                                h = new n.Vector3(),
  27705.                                d = 0,
  27706.                                p = i === !0 ? e : t,
  27707.                                m = i === !0 ? 1 : -1;
  27708.                            for (a = x, o = 1; r >= o; o++) y.setXYZ(x, 0, T * m, 0), _.setXYZ(x, 0, m, 0), (u.x = 0.5), (u.y = 0.5), b.setXY(x, u.x, u.y), x++;
  27709.                            for (c = x, o = 0; r >= o; o++) {
  27710.                                var v = o / r,
  27711.                                    M = v * l + s,
  27712.                                    E = Math.cos(M),
  27713.                                    A = Math.sin(M);
  27714.                                (h.x = p * A), (h.y = T * m), (h.z = p * E), y.setXYZ(x, h.x, h.y, h.z), _.setXYZ(x, 0, m, 0), (u.x = 0.5 * E + 0.5), (u.y = 0.5 * A * m + 0.5), b.setXY(x, u.x, u.y), x++;
  27715.                            }
  27716.                            for (o = 0; r > o; o++) {
  27717.                                var C = a + o,
  27718.                                    P = c + o;
  27719.                                i === !0 ? (g.setX(w, P), w++, g.setX(w, P + 1), w++, g.setX(w, C), w++) : (g.setX(w, P + 1), w++, g.setX(w, P), w++, g.setX(w, C), w++), (d += 3);
  27720.                            }
  27721.                            f.addGroup(S, d, i === !0 ? 1 : 2), (S += d);
  27722.                        }
  27723.                        n.BufferGeometry.call(this),
  27724.                            (this.type = "CylinderBufferGeometry"),
  27725.                            (this.parameters = {
  27726.                                radiusTop: e,
  27727.                                radiusBottom: t,
  27728.                                height: i,
  27729.                                radialSegments: r,
  27730.                                heightSegments: o,
  27731.                                openEnded: a,
  27732.                                thetaStart: s,
  27733.                                thetaLength: l
  27734.                            });
  27735.                        var f = this;
  27736.                        (e = void 0 !== e ? e : 20),
  27737.                        (t = void 0 !== t ? t : 20),
  27738.                        (i = void 0 !== i ? i : 100),
  27739.                        (r = Math.floor(r) || 8),
  27740.                        (o = Math.floor(o) || 1),
  27741.                        (a = void 0 !== a ? a : !1),
  27742.                        (s = void 0 !== s ? s : 0),
  27743.                        (l = void 0 !== l ? l : 2 * Math.PI);
  27744.                        var p = 0;
  27745.                        a === !1 && (e > 0 && p++, t > 0 && p++);
  27746.                        var m = c(),
  27747.                            v = u(),
  27748.                            g = new n.BufferAttribute(new(v > 65535 ? Uint32Array : Uint16Array)(v), 1),
  27749.                            y = new n.BufferAttribute(new Float32Array(3 * m), 3),
  27750.                            _ = new n.BufferAttribute(new Float32Array(3 * m), 3),
  27751.                            b = new n.BufferAttribute(new Float32Array(2 * m), 2),
  27752.                            x = 0,
  27753.                            w = 0,
  27754.                            M = [],
  27755.                            T = i / 2,
  27756.                            S = 0;
  27757.                        h(), a === !1 && (e > 0 && d(!0), t > 0 && d(!1)), this.setIndex(g), this.addAttribute("position", y), this.addAttribute("normal", _), this.addAttribute("uv", b);
  27758.                    }),
  27759.                    (n.CylinderBufferGeometry.prototype = Object.create(n.BufferGeometry.prototype)),
  27760.                    (n.CylinderBufferGeometry.prototype.constructor = n.CylinderBufferGeometry),
  27761.                    (n.CylinderGeometry = function (e, t, i, r, o, a, s, l) {
  27762.                        n.Geometry.call(this),
  27763.                            (this.type = "CylinderGeometry"),
  27764.                            (this.parameters = {
  27765.                                radiusTop: e,
  27766.                                radiusBottom: t,
  27767.                                height: i,
  27768.                                radialSegments: r,
  27769.                                heightSegments: o,
  27770.                                openEnded: a,
  27771.                                thetaStart: s,
  27772.                                thetaLength: l
  27773.                            }),
  27774.                            this.fromBufferGeometry(new n.CylinderBufferGeometry(e, t, i, r, o, a, s, l)),
  27775.                            this.mergeVertices();
  27776.                    }),
  27777.                    (n.CylinderGeometry.prototype = Object.create(n.Geometry.prototype)),
  27778.                    (n.CylinderGeometry.prototype.constructor = n.CylinderGeometry),
  27779.                    (n.ConeBufferGeometry = function (e, t, i, r, o, a, s) {
  27780.                        n.CylinderBufferGeometry.call(this, 0, e, t, i, r, o, a, s), (this.type = "ConeBufferGeometry"), (this.parameters = {
  27781.                            radius: e,
  27782.                            height: t,
  27783.                            radialSegments: i,
  27784.                            heightSegments: r,
  27785.                            thetaStart: a,
  27786.                            thetaLength: s
  27787.                        });
  27788.                    }),
  27789.                    (n.ConeBufferGeometry.prototype = Object.create(n.BufferGeometry.prototype)),
  27790.                    (n.ConeBufferGeometry.prototype.constructor = n.ConeBufferGeometry),
  27791.                    (n.ConeGeometry = function (e, t, i, r, o, a, s) {
  27792.                        n.CylinderGeometry.call(this, 0, e, t, i, r, o, a, s), (this.type = "ConeGeometry"), (this.parameters = {
  27793.                            radius: e,
  27794.                            height: t,
  27795.                            radialSegments: i,
  27796.                            heightSegments: r,
  27797.                            openEnded: o,
  27798.                            thetaStart: a,
  27799.                            thetaLength: s
  27800.                        });
  27801.                    }),
  27802.                    (n.ConeGeometry.prototype = Object.create(n.CylinderGeometry.prototype)),
  27803.                    (n.ConeGeometry.prototype.constructor = n.ConeGeometry),
  27804.                    (n.EdgesGeometry = function (e, t) {
  27805.                        function i(e, t) {
  27806.                            return e - t;
  27807.                        }
  27808.                        n.BufferGeometry.call(this), (t = void 0 !== t ? t : 1);
  27809.                        var r,
  27810.                            o = Math.cos(n.Math.DEG2RAD * t),
  27811.                            a = [0, 0],
  27812.                            s = {},
  27813.                            l = ["a", "b", "c"];
  27814.                        e instanceof n.BufferGeometry ? ((r = new n.Geometry()), r.fromBufferGeometry(e)) : (r = e.clone()), r.mergeVertices(), r.computeFaceNormals();
  27815.                        for (var c = r.vertices, u = r.faces, h = 0, d = u.length; d > h; h++)
  27816.                            for (var f = u[h], p = 0; 3 > p; p++) {
  27817.                                (a[0] = f[l[p]]), (a[1] = f[l[(p + 1) % 3]]), a.sort(i);
  27818.                                var m = a.toString();
  27819.                                void 0 === s[m] ? (s[m] = {
  27820.                                    vert1: a[0],
  27821.                                    vert2: a[1],
  27822.                                    face1: h,
  27823.                                    face2: void 0
  27824.                                }) : (s[m].face2 = h);
  27825.                            }
  27826.                        var v = [];
  27827.                        for (var m in s) {
  27828.                            var g = s[m];
  27829.                            if (void 0 === g.face2 || u[g.face1].normal.dot(u[g.face2].normal) <= o) {
  27830.                                var y = c[g.vert1];
  27831.                                v.push(y.x), v.push(y.y), v.push(y.z), (y = c[g.vert2]), v.push(y.x), v.push(y.y), v.push(y.z);
  27832.                            }
  27833.                        }
  27834.                        this.addAttribute("position", new n.BufferAttribute(new Float32Array(v), 3));
  27835.                    }),
  27836.                    (n.EdgesGeometry.prototype = Object.create(n.BufferGeometry.prototype)),
  27837.                    (n.EdgesGeometry.prototype.constructor = n.EdgesGeometry),
  27838.                    (n.ExtrudeGeometry = function (e, t) {
  27839.                        return "undefined" == typeof e ? void(e = []) : (n.Geometry.call(this), (this.type = "ExtrudeGeometry"), (e = Array.isArray(e) ? e : [e]), this.addShapeList(e, t), void this.computeFaceNormals());
  27840.                    }),
  27841.                    (n.ExtrudeGeometry.prototype = Object.create(n.Geometry.prototype)),
  27842.                    (n.ExtrudeGeometry.prototype.constructor = n.ExtrudeGeometry),
  27843.                    (n.ExtrudeGeometry.prototype.addShapeList = function (e, t) {
  27844.                        for (var i = e.length, n = 0; i > n; n++) {
  27845.                            var r = e[n];
  27846.                            this.addShape(r, t);
  27847.                        }
  27848.                    }),
  27849.                    (n.ExtrudeGeometry.prototype.addShape = function (e, t) {
  27850.                        function i(e, t, i) {
  27851.                            return t || console.error("THREE.ExtrudeGeometry: vec does not exist"), t.clone().multiplyScalar(i).add(e);
  27852.                        }
  27853.  
  27854.                        function r(e, t, i) {
  27855.                            var r,
  27856.                                o,
  27857.                                a = 1,
  27858.                                s = e.x - t.x,
  27859.                                l = e.y - t.y,
  27860.                                c = i.x - e.x,
  27861.                                u = i.y - e.y,
  27862.                                h = s * s + l * l,
  27863.                                d = s * u - l * c;
  27864.                            if (Math.abs(d) > Number.EPSILON) {
  27865.                                var f = Math.sqrt(h),
  27866.                                    p = Math.sqrt(c * c + u * u),
  27867.                                    m = t.x - l / f,
  27868.                                    v = t.y + s / f,
  27869.                                    g = i.x - u / p,
  27870.                                    y = i.y + c / p,
  27871.                                    _ = ((g - m) * u - (y - v) * c) / (s * u - l * c);
  27872.                                (r = m + s * _ - e.x), (o = v + l * _ - e.y);
  27873.                                var b = r * r + o * o;
  27874.                                if (2 >= b) return new n.Vector2(r, o);
  27875.                                a = Math.sqrt(b / 2);
  27876.                            } else {
  27877.                                var x = !1;
  27878.                                s > Number.EPSILON ? c > Number.EPSILON && (x = !0) : s < -Number.EPSILON ? c < -Number.EPSILON && (x = !0) : Math.sign(l) === Math.sign(u) && (x = !0),
  27879.                                    x ? ((r = -l), (o = s), (a = Math.sqrt(h))) : ((r = s), (o = l), (a = Math.sqrt(h / 2)));
  27880.                            }
  27881.                            return new n.Vector2(r / a, o / a);
  27882.                        }
  27883.  
  27884.                        function o() {
  27885.                            if (b) {
  27886.                                var e = 0,
  27887.                                    t = z * e;
  27888.                                for (W = 0; $ > W; W++)(G = I[W]), c(G[2] + t, G[1] + t, G[0] + t);
  27889.                                for (e = w + 2 * _, t = z * e, W = 0; $ > W; W++)(G = I[W]), c(G[0] + t, G[1] + t, G[2] + t);
  27890.                            } else {
  27891.                                for (W = 0; $ > W; W++)(G = I[W]), c(G[2], G[1], G[0]);
  27892.                                for (W = 0; $ > W; W++)(G = I[W]), c(G[0] + z * w, G[1] + z * w, G[2] + z * w);
  27893.                            }
  27894.                        }
  27895.  
  27896.                        function a() {
  27897.                            var e = 0;
  27898.                            for (s(N, e), e += N.length, A = 0, C = k.length; C > A; A++)(E = k[A]), s(E, e), (e += E.length);
  27899.                        }
  27900.  
  27901.                        function s(e, t) {
  27902.                            var i, n;
  27903.                            for (W = e.length; --W >= 0;) {
  27904.                                (i = W), (n = W - 1), 0 > n && (n = e.length - 1);
  27905.                                var r = 0,
  27906.                                    o = w + 2 * _;
  27907.                                for (r = 0; o > r; r++) {
  27908.                                    var a = z * r,
  27909.                                        s = z * (r + 1),
  27910.                                        l = t + i + a,
  27911.                                        c = t + n + a,
  27912.                                        h = t + n + s,
  27913.                                        d = t + i + s;
  27914.                                    u(l, c, h, d, e, r, o, i, n);
  27915.                                }
  27916.                            }
  27917.                        }
  27918.  
  27919.                        function l(e, t, i) {
  27920.                            P.vertices.push(new n.Vector3(e, t, i));
  27921.                        }
  27922.  
  27923.                        function c(e, t, i) {
  27924.                            (e += L), (t += L), (i += L), P.faces.push(new n.Face3(e, t, i, null, null, 0));
  27925.                            var r = S.generateTopUV(P, e, t, i);
  27926.                            P.faceVertexUvs[0].push(r);
  27927.                        }
  27928.  
  27929.                        function u(e, t, i, r, o, a, s, l, c) {
  27930.                            (e += L), (t += L), (i += L), (r += L), P.faces.push(new n.Face3(e, t, r, null, null, 1)), P.faces.push(new n.Face3(t, i, r, null, null, 1));
  27931.                            var u = S.generateSideWallUV(P, e, t, i, r);
  27932.                            P.faceVertexUvs[0].push([u[0], u[1], u[3]]), P.faceVertexUvs[0].push([u[1], u[2], u[3]]);
  27933.                        }
  27934.                        var h,
  27935.                            d,
  27936.                            f,
  27937.                            p,
  27938.                            m,
  27939.                            v = void 0 !== t.amount ? t.amount : 100,
  27940.                            g = void 0 !== t.bevelThickness ? t.bevelThickness : 6,
  27941.                            y = void 0 !== t.bevelSize ? t.bevelSize : g - 2,
  27942.                            _ = void 0 !== t.bevelSegments ? t.bevelSegments : 3,
  27943.                            b = void 0 !== t.bevelEnabled ? t.bevelEnabled : !0,
  27944.                            x = void 0 !== t.curveSegments ? t.curveSegments : 12,
  27945.                            w = void 0 !== t.steps ? t.steps : 1,
  27946.                            M = t.extrudePath,
  27947.                            T = !1,
  27948.                            S = void 0 !== t.UVGenerator ? t.UVGenerator : n.ExtrudeGeometry.WorldUVGenerator;
  27949.                        M && ((h = M.getSpacedPoints(w)), (T = !0), (b = !1), (d = void 0 !== t.frames ? t.frames : new n.TubeGeometry.FrenetFrames(M, w, !1)), (f = new n.Vector3()), (p = new n.Vector3()), (m = new n.Vector3())),
  27950.                            b || ((_ = 0), (g = 0), (y = 0));
  27951.                        var E,
  27952.                            A,
  27953.                            C,
  27954.                            P = this,
  27955.                            L = this.vertices.length,
  27956.                            R = e.extractPoints(x),
  27957.                            O = R.shape,
  27958.                            k = R.holes,
  27959.                            D = !n.ShapeUtils.isClockWise(O);
  27960.                        if (D) {
  27961.                            for (O = O.reverse(), A = 0, C = k.length; C > A; A++)(E = k[A]), n.ShapeUtils.isClockWise(E) && (k[A] = E.reverse());
  27962.                            D = !1;
  27963.                        }
  27964.                        var I = n.ShapeUtils.triangulateShape(O, k),
  27965.                            N = O;
  27966.                        for (A = 0, C = k.length; C > A; A++)(E = k[A]), (O = O.concat(E));
  27967.                        for (var U, j, B, F, V, G, z = O.length, $ = I.length, H = [], W = 0, X = N.length, Y = X - 1, q = W + 1; X > W; W++, Y++, q++) Y === X && (Y = 0), q === X && (q = 0), (H[W] = r(N[W], N[Y], N[q]));
  27968.                        var Z,
  27969.                            K = [],
  27970.                            Q = H.concat();
  27971.                        for (A = 0, C = k.length; C > A; A++) {
  27972.                            for (E = k[A], Z = [], W = 0, X = E.length, Y = X - 1, q = W + 1; X > W; W++, Y++, q++) Y === X && (Y = 0), q === X && (q = 0), (Z[W] = r(E[W], E[Y], E[q]));
  27973.                            K.push(Z), (Q = Q.concat(Z));
  27974.                        }
  27975.                        for (U = 0; _ > U; U++) {
  27976.                            for (B = U / _, F = g * (1 - B), j = y * Math.sin((B * Math.PI) / 2), W = 0, X = N.length; X > W; W++)(V = i(N[W], H[W], j)), l(V.x, V.y, -F);
  27977.                            for (A = 0, C = k.length; C > A; A++)
  27978.                                for (E = k[A], Z = K[A], W = 0, X = E.length; X > W; W++)(V = i(E[W], Z[W], j)), l(V.x, V.y, -F);
  27979.                        }
  27980.                        for (j = y, W = 0; z > W; W++)
  27981.                            (V = b ? i(O[W], Q[W], j) : O[W]), T ? (p.copy(d.normals[0]).multiplyScalar(V.x), f.copy(d.binormals[0]).multiplyScalar(V.y), m.copy(h[0]).add(p).add(f), l(m.x, m.y, m.z)) : l(V.x, V.y, 0);
  27982.                        var J;
  27983.                        for (J = 1; w >= J; J++)
  27984.                            for (W = 0; z > W; W++)
  27985.                                (V = b ? i(O[W], Q[W], j) : O[W]), T ? (p.copy(d.normals[J]).multiplyScalar(V.x), f.copy(d.binormals[J]).multiplyScalar(V.y), m.copy(h[J]).add(p).add(f), l(m.x, m.y, m.z)) : l(V.x, V.y, (v / w) * J);
  27986.                        for (U = _ - 1; U >= 0; U--) {
  27987.                            for (B = U / _, F = g * (1 - B), j = y * Math.sin((B * Math.PI) / 2), W = 0, X = N.length; X > W; W++)(V = i(N[W], H[W], j)), l(V.x, V.y, v + F);
  27988.                            for (A = 0, C = k.length; C > A; A++)
  27989.                                for (E = k[A], Z = K[A], W = 0, X = E.length; X > W; W++)(V = i(E[W], Z[W], j)), T ? l(V.x, V.y + h[w - 1].y, h[w - 1].x + F) : l(V.x, V.y, v + F);
  27990.                        }
  27991.                        o(), a();
  27992.                    }),
  27993.                    (n.ExtrudeGeometry.WorldUVGenerator = {
  27994.                        generateTopUV: function (e, t, i, r) {
  27995.                            var o = e.vertices,
  27996.                                a = o[t],
  27997.                                s = o[i],
  27998.                                l = o[r];
  27999.                            return [new n.Vector2(a.x, a.y), new n.Vector2(s.x, s.y), new n.Vector2(l.x, l.y)];
  28000.                        },
  28001.                        generateSideWallUV: function (e, t, i, r, o) {
  28002.                            var a = e.vertices,
  28003.                                s = a[t],
  28004.                                l = a[i],
  28005.                                c = a[r],
  28006.                                u = a[o];
  28007.                            return Math.abs(s.y - l.y) < 0.01 ?
  28008.                                [new n.Vector2(s.x, 1 - s.z), new n.Vector2(l.x, 1 - l.z), new n.Vector2(c.x, 1 - c.z), new n.Vector2(u.x, 1 - u.z)] :
  28009.                                [new n.Vector2(s.y, 1 - s.z), new n.Vector2(l.y, 1 - l.z), new n.Vector2(c.y, 1 - c.z), new n.Vector2(u.y, 1 - u.z)];
  28010.                        },
  28011.                    }),
  28012.                    (n.ShapeGeometry = function (e, t) {
  28013.                        n.Geometry.call(this), (this.type = "ShapeGeometry"), Array.isArray(e) === !1 && (e = [e]), this.addShapeList(e, t), this.computeFaceNormals();
  28014.                    }),
  28015.                    (n.ShapeGeometry.prototype = Object.create(n.Geometry.prototype)),
  28016.                    (n.ShapeGeometry.prototype.constructor = n.ShapeGeometry),
  28017.                    (n.ShapeGeometry.prototype.addShapeList = function (e, t) {
  28018.                        for (var i = 0, n = e.length; n > i; i++) this.addShape(e[i], t);
  28019.                        return this;
  28020.                    }),
  28021.                    (n.ShapeGeometry.prototype.addShape = function (e, t) {
  28022.                        void 0 === t && (t = {});
  28023.                        var i,
  28024.                            r,
  28025.                            o,
  28026.                            a = void 0 !== t.curveSegments ? t.curveSegments : 12,
  28027.                            s = t.material,
  28028.                            l = void 0 === t.UVGenerator ? n.ExtrudeGeometry.WorldUVGenerator : t.UVGenerator,
  28029.                            c = this.vertices.length,
  28030.                            u = e.extractPoints(a),
  28031.                            h = u.shape,
  28032.                            d = u.holes,
  28033.                            f = !n.ShapeUtils.isClockWise(h);
  28034.                        if (f) {
  28035.                            for (h = h.reverse(), i = 0, r = d.length; r > i; i++)(o = d[i]), n.ShapeUtils.isClockWise(o) && (d[i] = o.reverse());
  28036.                            f = !1;
  28037.                        }
  28038.                        var p = n.ShapeUtils.triangulateShape(h, d);
  28039.                        for (i = 0, r = d.length; r > i; i++)(o = d[i]), (h = h.concat(o));
  28040.                        var m,
  28041.                            v,
  28042.                            g = h.length,
  28043.                            y = p.length;
  28044.                        for (i = 0; g > i; i++)(m = h[i]), this.vertices.push(new n.Vector3(m.x, m.y, 0));
  28045.                        for (i = 0; y > i; i++) {
  28046.                            v = p[i];
  28047.                            var _ = v[0] + c,
  28048.                                b = v[1] + c,
  28049.                                x = v[2] + c;
  28050.                            this.faces.push(new n.Face3(_, b, x, null, null, s)), this.faceVertexUvs[0].push(l.generateTopUV(this, _, b, x));
  28051.                        }
  28052.                    }),
  28053.                    (n.LatheBufferGeometry = function (e, t, i, r) {
  28054.                        n.BufferGeometry.call(this),
  28055.                            (this.type = "LatheBufferGeometry"),
  28056.                            (this.parameters = {
  28057.                                points: e,
  28058.                                segments: t,
  28059.                                phiStart: i,
  28060.                                phiLength: r
  28061.                            }),
  28062.                            (t = Math.floor(t) || 12),
  28063.                            (i = i || 0),
  28064.                            (r = r || 2 * Math.PI),
  28065.                            (r = n.Math.clamp(r, 0, 2 * Math.PI));
  28066.                        var o,
  28067.                            a,
  28068.                            s,
  28069.                            l = (t + 1) * e.length,
  28070.                            c = t * e.length * 2 * 3,
  28071.                            u = new n.BufferAttribute(new(c > 65535 ? Uint32Array : Uint16Array)(c), 1),
  28072.                            h = new n.BufferAttribute(new Float32Array(3 * l), 3),
  28073.                            d = new n.BufferAttribute(new Float32Array(2 * l), 2),
  28074.                            f = 0,
  28075.                            p = 0,
  28076.                            m = (1 / (e.length - 1), 1 / t),
  28077.                            v = new n.Vector3(),
  28078.                            g = new n.Vector2();
  28079.                        for (a = 0; t >= a; a++) {
  28080.                            var y = i + a * m * r,
  28081.                                _ = Math.sin(y),
  28082.                                b = Math.cos(y);
  28083.                            for (s = 0; s <= e.length - 1; s++)(v.x = e[s].x * _), (v.y = e[s].y), (v.z = e[s].x * b), h.setXYZ(f, v.x, v.y, v.z), (g.x = a / t), (g.y = s / (e.length - 1)), d.setXY(f, g.x, g.y), f++;
  28084.                        }
  28085.                        for (a = 0; t > a; a++)
  28086.                            for (s = 0; s < e.length - 1; s++) {
  28087.                                o = s + a * e.length;
  28088.                                var x = o,
  28089.                                    w = o + e.length,
  28090.                                    M = o + e.length + 1,
  28091.                                    T = o + 1;
  28092.                                u.setX(p, x), p++, u.setX(p, w), p++, u.setX(p, T), p++, u.setX(p, w), p++, u.setX(p, M), p++, u.setX(p, T), p++;
  28093.                            }
  28094.                        if ((this.setIndex(u), this.addAttribute("position", h), this.addAttribute("uv", d), this.computeVertexNormals(), r === 2 * Math.PI)) {
  28095.                            var S = this.attributes.normal.array,
  28096.                                E = new n.Vector3(),
  28097.                                A = new n.Vector3(),
  28098.                                C = new n.Vector3();
  28099.                            for (o = t * e.length * 3, a = 0, s = 0; a < e.length; a++, s += 3)
  28100.                                (E.x = S[s + 0]),
  28101.                                (E.y = S[s + 1]),
  28102.                                (E.z = S[s + 2]),
  28103.                                (A.x = S[o + s + 0]),
  28104.                                (A.y = S[o + s + 1]),
  28105.                                (A.z = S[o + s + 2]),
  28106.                                C.addVectors(E, A).normalize(),
  28107.                                (S[s + 0] = S[o + s + 0] = C.x),
  28108.                                (S[s + 1] = S[o + s + 1] = C.y),
  28109.                                (S[s + 2] = S[o + s + 2] = C.z);
  28110.                        }
  28111.                    }),
  28112.                    (n.LatheBufferGeometry.prototype = Object.create(n.BufferGeometry.prototype)),
  28113.                    (n.LatheBufferGeometry.prototype.constructor = n.LatheBufferGeometry),
  28114.                    (n.LatheGeometry = function (e, t, i, r) {
  28115.                        n.Geometry.call(this), (this.type = "LatheGeometry"), (this.parameters = {
  28116.                            points: e,
  28117.                            segments: t,
  28118.                            phiStart: i,
  28119.                            phiLength: r
  28120.                        }), this.fromBufferGeometry(new n.LatheBufferGeometry(e, t, i, r)), this.mergeVertices();
  28121.                    }),
  28122.                    (n.LatheGeometry.prototype = Object.create(n.Geometry.prototype)),
  28123.                    (n.LatheGeometry.prototype.constructor = n.LatheGeometry),
  28124.                    (n.PlaneGeometry = function (e, t, i, r) {
  28125.                        n.Geometry.call(this), (this.type = "PlaneGeometry"), (this.parameters = {
  28126.                            width: e,
  28127.                            height: t,
  28128.                            widthSegments: i,
  28129.                            heightSegments: r
  28130.                        }), this.fromBufferGeometry(new n.PlaneBufferGeometry(e, t, i, r));
  28131.                    }),
  28132.                    (n.PlaneGeometry.prototype = Object.create(n.Geometry.prototype)),
  28133.                    (n.PlaneGeometry.prototype.constructor = n.PlaneGeometry),
  28134.                    (n.PlaneBufferGeometry = function (e, t, i, r) {
  28135.                        n.BufferGeometry.call(this), (this.type = "PlaneBufferGeometry"), (this.parameters = {
  28136.                            width: e,
  28137.                            height: t,
  28138.                            widthSegments: i,
  28139.                            heightSegments: r
  28140.                        });
  28141.                        for (
  28142.                            var o = e / 2,
  28143.                                a = t / 2,
  28144.                                s = Math.floor(i) || 1,
  28145.                                l = Math.floor(r) || 1,
  28146.                                c = s + 1,
  28147.                                u = l + 1,
  28148.                                h = e / s,
  28149.                                d = t / l,
  28150.                                f = new Float32Array(c * u * 3),
  28151.                                p = new Float32Array(c * u * 3),
  28152.                                m = new Float32Array(c * u * 2),
  28153.                                v = 0,
  28154.                                g = 0,
  28155.                                y = 0; u > y; y++
  28156.                        )
  28157.                            for (var _ = y * d - a, b = 0; c > b; b++) {
  28158.                                var x = b * h - o;
  28159.                                (f[v] = x), (f[v + 1] = -_), (p[v + 2] = 1), (m[g] = b / s), (m[g + 1] = 1 - y / l), (v += 3), (g += 2);
  28160.                            }
  28161.                        v = 0;
  28162.                        for (var w = new(f.length / 3 > 65535 ? Uint32Array : Uint16Array)(s * l * 6), y = 0; l > y; y++)
  28163.                            for (var b = 0; s > b; b++) {
  28164.                                var M = b + c * y,
  28165.                                    T = b + c * (y + 1),
  28166.                                    S = b + 1 + c * (y + 1),
  28167.                                    E = b + 1 + c * y;
  28168.                                (w[v] = M), (w[v + 1] = T), (w[v + 2] = E), (w[v + 3] = T), (w[v + 4] = S), (w[v + 5] = E), (v += 6);
  28169.                            }
  28170.                        this.setIndex(new n.BufferAttribute(w, 1)), this.addAttribute("position", new n.BufferAttribute(f, 3)), this.addAttribute("normal", new n.BufferAttribute(p, 3)), this.addAttribute("uv", new n.BufferAttribute(m, 2));
  28171.                    }),
  28172.                    (n.PlaneBufferGeometry.prototype = Object.create(n.BufferGeometry.prototype)),
  28173.                    (n.PlaneBufferGeometry.prototype.constructor = n.PlaneBufferGeometry),
  28174.                    (n.RingBufferGeometry = function (e, t, i, r, o, a) {
  28175.                        n.BufferGeometry.call(this),
  28176.                            (this.type = "RingBufferGeometry"),
  28177.                            (this.parameters = {
  28178.                                innerRadius: e,
  28179.                                outerRadius: t,
  28180.                                thetaSegments: i,
  28181.                                phiSegments: r,
  28182.                                thetaStart: o,
  28183.                                thetaLength: a
  28184.                            }),
  28185.                            (e = e || 20),
  28186.                            (t = t || 50),
  28187.                            (o = void 0 !== o ? o : 0),
  28188.                            (a = void 0 !== a ? a : 2 * Math.PI),
  28189.                            (i = void 0 !== i ? Math.max(3, i) : 8),
  28190.                            (r = void 0 !== r ? Math.max(1, r) : 1);
  28191.                        var s,
  28192.                            l,
  28193.                            c,
  28194.                            u = (i + 1) * (r + 1),
  28195.                            h = i * r * 2 * 3,
  28196.                            d = new n.BufferAttribute(new(h > 65535 ? Uint32Array : Uint16Array)(h), 1),
  28197.                            f = new n.BufferAttribute(new Float32Array(3 * u), 3),
  28198.                            p = new n.BufferAttribute(new Float32Array(3 * u), 3),
  28199.                            m = new n.BufferAttribute(new Float32Array(2 * u), 2),
  28200.                            v = 0,
  28201.                            g = 0,
  28202.                            y = e,
  28203.                            _ = (t - e) / r,
  28204.                            b = new n.Vector3(),
  28205.                            x = new n.Vector2();
  28206.                        for (l = 0; r >= l; l++) {
  28207.                            for (c = 0; i >= c; c++)
  28208.                                (s = o + (c / i) * a), (b.x = y * Math.cos(s)), (b.y = y * Math.sin(s)), f.setXYZ(v, b.x, b.y, b.z), p.setXYZ(v, 0, 0, 1), (x.x = (b.x / t + 1) / 2), (x.y = (b.y / t + 1) / 2), m.setXY(v, x.x, x.y), v++;
  28209.                            y += _;
  28210.                        }
  28211.                        for (l = 0; r > l; l++) {
  28212.                            var w = l * (i + 1);
  28213.                            for (c = 0; i > c; c++) {
  28214.                                s = c + w;
  28215.                                var M = s,
  28216.                                    T = s + i + 1,
  28217.                                    S = s + i + 2,
  28218.                                    E = s + 1;
  28219.                                d.setX(g, M), g++, d.setX(g, T), g++, d.setX(g, S), g++, d.setX(g, M), g++, d.setX(g, S), g++, d.setX(g, E), g++;
  28220.                            }
  28221.                        }
  28222.                        this.setIndex(d), this.addAttribute("position", f), this.addAttribute("normal", p), this.addAttribute("uv", m);
  28223.                    }),
  28224.                    (n.RingBufferGeometry.prototype = Object.create(n.BufferGeometry.prototype)),
  28225.                    (n.RingBufferGeometry.prototype.constructor = n.RingBufferGeometry),
  28226.                    (n.RingGeometry = function (e, t, i, r, o, a) {
  28227.                        n.Geometry.call(this),
  28228.                            (this.type = "RingGeometry"),
  28229.                            (this.parameters = {
  28230.                                innerRadius: e,
  28231.                                outerRadius: t,
  28232.                                thetaSegments: i,
  28233.                                phiSegments: r,
  28234.                                thetaStart: o,
  28235.                                thetaLength: a
  28236.                            }),
  28237.                            this.fromBufferGeometry(new n.RingBufferGeometry(e, t, i, r, o, a));
  28238.                    }),
  28239.                    (n.RingGeometry.prototype = Object.create(n.Geometry.prototype)),
  28240.                    (n.RingGeometry.prototype.constructor = n.RingGeometry),
  28241.                    (n.SphereGeometry = function (e, t, i, r, o, a, s) {
  28242.                        n.Geometry.call(this),
  28243.                            (this.type = "SphereGeometry"),
  28244.                            (this.parameters = {
  28245.                                radius: e,
  28246.                                widthSegments: t,
  28247.                                heightSegments: i,
  28248.                                phiStart: r,
  28249.                                phiLength: o,
  28250.                                thetaStart: a,
  28251.                                thetaLength: s
  28252.                            }),
  28253.                            this.fromBufferGeometry(new n.SphereBufferGeometry(e, t, i, r, o, a, s));
  28254.                    }),
  28255.                    (n.SphereGeometry.prototype = Object.create(n.Geometry.prototype)),
  28256.                    (n.SphereGeometry.prototype.constructor = n.SphereGeometry),
  28257.                    (n.SphereBufferGeometry = function (e, t, i, r, o, a, s) {
  28258.                        n.BufferGeometry.call(this),
  28259.                            (this.type = "SphereBufferGeometry"),
  28260.                            (this.parameters = {
  28261.                                radius: e,
  28262.                                widthSegments: t,
  28263.                                heightSegments: i,
  28264.                                phiStart: r,
  28265.                                phiLength: o,
  28266.                                thetaStart: a,
  28267.                                thetaLength: s
  28268.                            }),
  28269.                            (e = e || 50),
  28270.                            (t = Math.max(3, Math.floor(t) || 8)),
  28271.                            (i = Math.max(2, Math.floor(i) || 6)),
  28272.                            (r = void 0 !== r ? r : 0),
  28273.                            (o = void 0 !== o ? o : 2 * Math.PI),
  28274.                            (a = void 0 !== a ? a : 0),
  28275.                            (s = void 0 !== s ? s : Math.PI);
  28276.                        for (
  28277.                            var l = a + s,
  28278.                                c = (t + 1) * (i + 1),
  28279.                                u = new n.BufferAttribute(new Float32Array(3 * c), 3),
  28280.                                h = new n.BufferAttribute(new Float32Array(3 * c), 3),
  28281.                                d = new n.BufferAttribute(new Float32Array(2 * c), 2),
  28282.                                f = 0,
  28283.                                p = [],
  28284.                                m = new n.Vector3(),
  28285.                                v = 0; i >= v; v++
  28286.                        ) {
  28287.                            for (var g = [], y = v / i, _ = 0; t >= _; _++) {
  28288.                                var b = _ / t,
  28289.                                    x = -e * Math.cos(r + b * o) * Math.sin(a + y * s),
  28290.                                    w = e * Math.cos(a + y * s),
  28291.                                    M = e * Math.sin(r + b * o) * Math.sin(a + y * s);
  28292.                                m.set(x, w, M).normalize(), u.setXYZ(f, x, w, M), h.setXYZ(f, m.x, m.y, m.z), d.setXY(f, b, 1 - y), g.push(f), f++;
  28293.                            }
  28294.                            p.push(g);
  28295.                        }
  28296.                        for (var T = [], v = 0; i > v; v++)
  28297.                            for (var _ = 0; t > _; _++) {
  28298.                                var S = p[v][_ + 1],
  28299.                                    E = p[v][_],
  28300.                                    A = p[v + 1][_],
  28301.                                    C = p[v + 1][_ + 1];
  28302.                                (0 !== v || a > 0) && T.push(S, E, C), (v !== i - 1 || l < Math.PI) && T.push(E, A, C);
  28303.                            }
  28304.                        this.setIndex(new(u.count > 65535 ? n.Uint32Attribute : n.Uint16Attribute)(T, 1)),
  28305.                            this.addAttribute("position", u),
  28306.                            this.addAttribute("normal", h),
  28307.                            this.addAttribute("uv", d),
  28308.                            (this.boundingSphere = new n.Sphere(new n.Vector3(), e));
  28309.                    }),
  28310.                    (n.SphereBufferGeometry.prototype = Object.create(n.BufferGeometry.prototype)),
  28311.                    (n.SphereBufferGeometry.prototype.constructor = n.SphereBufferGeometry),
  28312.                    (n.TextGeometry = function (e, t) {
  28313.                        t = t || {};
  28314.                        var i = t.font;
  28315.                        if (i instanceof n.Font == !1) return console.error("THREE.TextGeometry: font parameter is not an instance of THREE.Font."), new n.Geometry();
  28316.                        var r = i.generateShapes(e, t.size, t.curveSegments);
  28317.                        (t.amount = void 0 !== t.height ? t.height : 50),
  28318.                        void 0 === t.bevelThickness && (t.bevelThickness = 10),
  28319.                            void 0 === t.bevelSize && (t.bevelSize = 8),
  28320.                            void 0 === t.bevelEnabled && (t.bevelEnabled = !1),
  28321.                            n.ExtrudeGeometry.call(this, r, t),
  28322.                            (this.type = "TextGeometry");
  28323.                    }),
  28324.                    (n.TextGeometry.prototype = Object.create(n.ExtrudeGeometry.prototype)),
  28325.                    (n.TextGeometry.prototype.constructor = n.TextGeometry),
  28326.                    (n.TorusBufferGeometry = function (e, t, i, r, o) {
  28327.                        n.BufferGeometry.call(this),
  28328.                            (this.type = "TorusBufferGeometry"),
  28329.                            (this.parameters = {
  28330.                                radius: e,
  28331.                                tube: t,
  28332.                                radialSegments: i,
  28333.                                tubularSegments: r,
  28334.                                arc: o
  28335.                            }),
  28336.                            (e = e || 100),
  28337.                            (t = t || 40),
  28338.                            (i = Math.floor(i) || 8),
  28339.                            (r = Math.floor(r) || 6),
  28340.                            (o = o || 2 * Math.PI);
  28341.                        var a,
  28342.                            s,
  28343.                            l = (i + 1) * (r + 1),
  28344.                            c = i * r * 2 * 3,
  28345.                            u = new(c > 65535 ? Uint32Array : Uint16Array)(c),
  28346.                            h = new Float32Array(3 * l),
  28347.                            d = new Float32Array(3 * l),
  28348.                            f = new Float32Array(2 * l),
  28349.                            p = 0,
  28350.                            m = 0,
  28351.                            v = 0,
  28352.                            g = new n.Vector3(),
  28353.                            y = new n.Vector3(),
  28354.                            _ = new n.Vector3();
  28355.                        for (a = 0; i >= a; a++)
  28356.                            for (s = 0; r >= s; s++) {
  28357.                                var b = (s / r) * o,
  28358.                                    x = (a / i) * Math.PI * 2;
  28359.                                (y.x = (e + t * Math.cos(x)) * Math.cos(b)),
  28360.                                (y.y = (e + t * Math.cos(x)) * Math.sin(b)),
  28361.                                (y.z = t * Math.sin(x)),
  28362.                                (h[p] = y.x),
  28363.                                (h[p + 1] = y.y),
  28364.                                (h[p + 2] = y.z),
  28365.                                (g.x = e * Math.cos(b)),
  28366.                                (g.y = e * Math.sin(b)),
  28367.                                _.subVectors(y, g).normalize(),
  28368.                                    (d[p] = _.x),
  28369.                                    (d[p + 1] = _.y),
  28370.                                    (d[p + 2] = _.z),
  28371.                                    (f[m] = s / r),
  28372.                                    (f[m + 1] = a / i),
  28373.                                    (p += 3),
  28374.                                    (m += 2);
  28375.                            }
  28376.                        for (a = 1; i >= a; a++)
  28377.                            for (s = 1; r >= s; s++) {
  28378.                                var w = (r + 1) * a + s - 1,
  28379.                                    M = (r + 1) * (a - 1) + s - 1,
  28380.                                    T = (r + 1) * (a - 1) + s,
  28381.                                    S = (r + 1) * a + s;
  28382.                                (u[v] = w), (u[v + 1] = M), (u[v + 2] = S), (u[v + 3] = M), (u[v + 4] = T), (u[v + 5] = S), (v += 6);
  28383.                            }
  28384.                        this.setIndex(new n.BufferAttribute(u, 1)), this.addAttribute("position", new n.BufferAttribute(h, 3)), this.addAttribute("normal", new n.BufferAttribute(d, 3)), this.addAttribute("uv", new n.BufferAttribute(f, 2));
  28385.                    }),
  28386.                    (n.TorusBufferGeometry.prototype = Object.create(n.BufferGeometry.prototype)),
  28387.                    (n.TorusBufferGeometry.prototype.constructor = n.TorusBufferGeometry),
  28388.                    (n.TorusGeometry = function (e, t, i, r, o) {
  28389.                        n.Geometry.call(this), (this.type = "TorusGeometry"), (this.parameters = {
  28390.                            radius: e,
  28391.                            tube: t,
  28392.                            radialSegments: i,
  28393.                            tubularSegments: r,
  28394.                            arc: o
  28395.                        }), this.fromBufferGeometry(new n.TorusBufferGeometry(e, t, i, r, o));
  28396.                    }),
  28397.                    (n.TorusGeometry.prototype = Object.create(n.Geometry.prototype)),
  28398.                    (n.TorusGeometry.prototype.constructor = n.TorusGeometry),
  28399.                    (n.TorusKnotBufferGeometry = function (e, t, i, r, o, a) {
  28400.                        function s(e, t, i, n, r) {
  28401.                            var o = Math.cos(e),
  28402.                                a = Math.sin(e),
  28403.                                s = (i / t) * e,
  28404.                                l = Math.cos(s);
  28405.                            (r.x = n * (2 + l) * 0.5 * o), (r.y = n * (2 + l) * a * 0.5), (r.z = n * Math.sin(s) * 0.5);
  28406.                        }
  28407.                        n.BufferGeometry.call(this),
  28408.                            (this.type = "TorusKnotBufferGeometry"),
  28409.                            (this.parameters = {
  28410.                                radius: e,
  28411.                                tube: t,
  28412.                                tubularSegments: i,
  28413.                                radialSegments: r,
  28414.                                p: o,
  28415.                                q: a
  28416.                            }),
  28417.                            (e = e || 100),
  28418.                            (t = t || 40),
  28419.                            (i = Math.floor(i) || 64),
  28420.                            (r = Math.floor(r) || 8),
  28421.                            (o = o || 2),
  28422.                            (a = a || 3);
  28423.                        var l,
  28424.                            c,
  28425.                            u = (r + 1) * (i + 1),
  28426.                            h = r * i * 2 * 3,
  28427.                            d = new n.BufferAttribute(new(h > 65535 ? Uint32Array : Uint16Array)(h), 1),
  28428.                            f = new n.BufferAttribute(new Float32Array(3 * u), 3),
  28429.                            p = new n.BufferAttribute(new Float32Array(3 * u), 3),
  28430.                            m = new n.BufferAttribute(new Float32Array(2 * u), 2),
  28431.                            v = 0,
  28432.                            g = 0,
  28433.                            y = new n.Vector3(),
  28434.                            _ = new n.Vector3(),
  28435.                            b = new n.Vector2(),
  28436.                            x = new n.Vector3(),
  28437.                            w = new n.Vector3(),
  28438.                            M = new n.Vector3(),
  28439.                            T = new n.Vector3(),
  28440.                            S = new n.Vector3();
  28441.                        for (l = 0; i >= l; ++l) {
  28442.                            var E = (l / i) * o * Math.PI * 2;
  28443.                            for (s(E, o, a, e, x), s(E + 0.01, o, a, e, w), T.subVectors(w, x), S.addVectors(w, x), M.crossVectors(T, S), S.crossVectors(M, T), M.normalize(), S.normalize(), c = 0; r >= c; ++c) {
  28444.                                var A = (c / r) * Math.PI * 2,
  28445.                                    C = -t * Math.cos(A),
  28446.                                    P = t * Math.sin(A);
  28447.                                (y.x = x.x + (C * S.x + P * M.x)),
  28448.                                (y.y = x.y + (C * S.y + P * M.y)),
  28449.                                (y.z = x.z + (C * S.z + P * M.z)),
  28450.                                f.setXYZ(v, y.x, y.y, y.z),
  28451.                                    _.subVectors(y, x).normalize(),
  28452.                                    p.setXYZ(v, _.x, _.y, _.z),
  28453.                                    (b.x = l / i),
  28454.                                    (b.y = c / r),
  28455.                                    m.setXY(v, b.x, b.y),
  28456.                                    v++;
  28457.                            }
  28458.                        }
  28459.                        for (c = 1; i >= c; c++)
  28460.                            for (l = 1; r >= l; l++) {
  28461.                                var L = (r + 1) * (c - 1) + (l - 1),
  28462.                                    R = (r + 1) * c + (l - 1),
  28463.                                    O = (r + 1) * c + l,
  28464.                                    k = (r + 1) * (c - 1) + l;
  28465.                                d.setX(g, L), g++, d.setX(g, R), g++, d.setX(g, k), g++, d.setX(g, R), g++, d.setX(g, O), g++, d.setX(g, k), g++;
  28466.                            }
  28467.                        this.setIndex(d), this.addAttribute("position", f), this.addAttribute("normal", p), this.addAttribute("uv", m);
  28468.                    }),
  28469.                    (n.TorusKnotBufferGeometry.prototype = Object.create(n.BufferGeometry.prototype)),
  28470.                    (n.TorusKnotBufferGeometry.prototype.constructor = n.TorusKnotBufferGeometry),
  28471.                    (n.TorusKnotGeometry = function (e, t, i, r, o, a, s) {
  28472.                        n.Geometry.call(this),
  28473.                            (this.type = "TorusKnotGeometry"),
  28474.                            (this.parameters = {
  28475.                                radius: e,
  28476.                                tube: t,
  28477.                                tubularSegments: i,
  28478.                                radialSegments: r,
  28479.                                p: o,
  28480.                                q: a
  28481.                            }),
  28482.                            void 0 !== s && console.warn("THREE.TorusKnotGeometry: heightScale has been deprecated. Use .scale( x, y, z ) instead."),
  28483.                            this.fromBufferGeometry(new n.TorusKnotBufferGeometry(e, t, i, r, o, a)),
  28484.                            this.mergeVertices();
  28485.                    }),
  28486.                    (n.TorusKnotGeometry.prototype = Object.create(n.Geometry.prototype)),
  28487.                    (n.TorusKnotGeometry.prototype.constructor = n.TorusKnotGeometry),
  28488.                    (n.TubeGeometry = function (e, t, i, r, o, a) {
  28489.                        function s(e, t, i) {
  28490.                            return L.vertices.push(new n.Vector3(e, t, i)) - 1;
  28491.                        }
  28492.                        n.Geometry.call(this),
  28493.                            (this.type = "TubeGeometry"),
  28494.                            (this.parameters = {
  28495.                                path: e,
  28496.                                segments: t,
  28497.                                radius: i,
  28498.                                radialSegments: r,
  28499.                                closed: o,
  28500.                                taper: a
  28501.                            }),
  28502.                            (t = t || 64),
  28503.                            (i = i || 1),
  28504.                            (r = r || 8),
  28505.                            (o = o || !1),
  28506.                            (a = a || n.TubeGeometry.NoTaper);
  28507.                        var l,
  28508.                            c,
  28509.                            u,
  28510.                            h,
  28511.                            d,
  28512.                            f,
  28513.                            p,
  28514.                            m,
  28515.                            v,
  28516.                            g,
  28517.                            y,
  28518.                            _,
  28519.                            b,
  28520.                            x,
  28521.                            w,
  28522.                            M,
  28523.                            T,
  28524.                            S,
  28525.                            E,
  28526.                            A,
  28527.                            C,
  28528.                            P = [],
  28529.                            L = this,
  28530.                            R = t + 1,
  28531.                            O = new n.Vector3(),
  28532.                            k = new n.TubeGeometry.FrenetFrames(e, t, o),
  28533.                            D = k.tangents,
  28534.                            I = k.normals,
  28535.                            N = k.binormals;
  28536.                        for (this.tangents = D, this.normals = I, this.binormals = N, g = 0; R > g; g++)
  28537.                            for (P[g] = [], h = g / (R - 1), v = e.getPointAt(h), l = D[g], c = I[g], u = N[g], f = i * a(h), y = 0; r > y; y++)
  28538.                                (d = (y / r) * 2 * Math.PI), (p = -f * Math.cos(d)), (m = f * Math.sin(d)), O.copy(v), (O.x += p * c.x + m * u.x), (O.y += p * c.y + m * u.y), (O.z += p * c.z + m * u.z), (P[g][y] = s(O.x, O.y, O.z));
  28539.                        for (g = 0; t > g; g++)
  28540.                            for (y = 0; r > y; y++)
  28541.                                (_ = o ? (g + 1) % t : g + 1),
  28542.                                (b = (y + 1) % r),
  28543.                                (x = P[g][y]),
  28544.                                (w = P[_][y]),
  28545.                                (M = P[_][b]),
  28546.                                (T = P[g][b]),
  28547.                                (S = new n.Vector2(g / t, y / r)),
  28548.                                (E = new n.Vector2((g + 1) / t, y / r)),
  28549.                                (A = new n.Vector2((g + 1) / t, (y + 1) / r)),
  28550.                                (C = new n.Vector2(g / t, (y + 1) / r)),
  28551.                                this.faces.push(new n.Face3(x, w, T)),
  28552.                                this.faceVertexUvs[0].push([S, E, C]),
  28553.                                this.faces.push(new n.Face3(w, M, T)),
  28554.                                this.faceVertexUvs[0].push([E.clone(), A, C.clone()]);
  28555.                        this.computeFaceNormals(), this.computeVertexNormals();
  28556.                    }),
  28557.                    (n.TubeGeometry.prototype = Object.create(n.Geometry.prototype)),
  28558.                    (n.TubeGeometry.prototype.constructor = n.TubeGeometry),
  28559.                    (n.TubeGeometry.NoTaper = function (e) {
  28560.                        return 1;
  28561.                    }),
  28562.                    (n.TubeGeometry.SinusoidalTaper = function (e) {
  28563.                        return Math.sin(Math.PI * e);
  28564.                    }),
  28565.                    (n.TubeGeometry.FrenetFrames = function (e, t, i) {
  28566.                        function r() {
  28567.                            (p[0] = new n.Vector3()),
  28568.                            (m[0] = new n.Vector3()),
  28569.                            (a = Number.MAX_VALUE),
  28570.                            (s = Math.abs(f[0].x)),
  28571.                            (l = Math.abs(f[0].y)),
  28572.                            (c = Math.abs(f[0].z)),
  28573.                            a >= s && ((a = s), d.set(1, 0, 0)),
  28574.                                a >= l && ((a = l), d.set(0, 1, 0)),
  28575.                                a >= c && d.set(0, 0, 1),
  28576.                                v.crossVectors(f[0], d).normalize(),
  28577.                                p[0].crossVectors(f[0], v),
  28578.                                m[0].crossVectors(f[0], p[0]);
  28579.                        }
  28580.                        var o,
  28581.                            a,
  28582.                            s,
  28583.                            l,
  28584.                            c,
  28585.                            u,
  28586.                            h,
  28587.                            d = new n.Vector3(),
  28588.                            f = [],
  28589.                            p = [],
  28590.                            m = [],
  28591.                            v = new n.Vector3(),
  28592.                            g = new n.Matrix4(),
  28593.                            y = t + 1;
  28594.                        for (this.tangents = f, this.normals = p, this.binormals = m, u = 0; y > u; u++)(h = u / (y - 1)), (f[u] = e.getTangentAt(h)), f[u].normalize();
  28595.                        for (r(), u = 1; y > u; u++)
  28596.                            (p[u] = p[u - 1].clone()),
  28597.                            (m[u] = m[u - 1].clone()),
  28598.                            v.crossVectors(f[u - 1], f[u]),
  28599.                            v.length() > Number.EPSILON && (v.normalize(), (o = Math.acos(n.Math.clamp(f[u - 1].dot(f[u]), -1, 1))), p[u].applyMatrix4(g.makeRotationAxis(v, o))),
  28600.                            m[u].crossVectors(f[u], p[u]);
  28601.                        if (i)
  28602.                            for (o = Math.acos(n.Math.clamp(p[0].dot(p[y - 1]), -1, 1)), o /= y - 1, f[0].dot(v.crossVectors(p[0], p[y - 1])) > 0 && (o = -o), u = 1; y > u; u++)
  28603.                                p[u].applyMatrix4(g.makeRotationAxis(f[u], o * u)), m[u].crossVectors(f[u], p[u]);
  28604.                    }),
  28605.                    (n.PolyhedronGeometry = function (e, t, i, r) {
  28606.                        function o(e) {
  28607.                            var t = e.normalize().clone();
  28608.                            t.index = h.vertices.push(t) - 1;
  28609.                            var i = l(e) / 2 / Math.PI + 0.5,
  28610.                                r = c(e) / Math.PI + 0.5;
  28611.                            return (t.uv = new n.Vector2(i, 1 - r)), t;
  28612.                        }
  28613.  
  28614.                        function a(e, t, i) {
  28615.                            var r = new n.Face3(e.index, t.index, i.index, [e.clone(), t.clone(), i.clone()]);
  28616.                            h.faces.push(r), b.copy(e).add(t).add(i).divideScalar(3);
  28617.                            var o = l(b);
  28618.                            h.faceVertexUvs[0].push([u(e.uv, e, o), u(t.uv, t, o), u(i.uv, i, o)]);
  28619.                        }
  28620.  
  28621.                        function s(e, t) {
  28622.                            for (var i = Math.pow(2, t), n = o(h.vertices[e.a]), r = o(h.vertices[e.b]), s = o(h.vertices[e.c]), l = [], c = 0; i >= c; c++) {
  28623.                                l[c] = [];
  28624.                                for (var u = o(n.clone().lerp(s, c / i)), d = o(r.clone().lerp(s, c / i)), f = i - c, p = 0; f >= p; p++) 0 === p && c === i ? (l[c][p] = u) : (l[c][p] = o(u.clone().lerp(d, p / f)));
  28625.                            }
  28626.                            for (var c = 0; i > c; c++)
  28627.                                for (var p = 0; 2 * (i - c) - 1 > p; p++) {
  28628.                                    var m = Math.floor(p / 2);
  28629.                                    p % 2 === 0 ? a(l[c][m + 1], l[c + 1][m], l[c][m]) : a(l[c][m + 1], l[c + 1][m + 1], l[c + 1][m]);
  28630.                                }
  28631.                        }
  28632.  
  28633.                        function l(e) {
  28634.                            return Math.atan2(e.z, -e.x);
  28635.                        }
  28636.  
  28637.                        function c(e) {
  28638.                            return Math.atan2(-e.y, Math.sqrt(e.x * e.x + e.z * e.z));
  28639.                        }
  28640.  
  28641.                        function u(e, t, i) {
  28642.                            return 0 > i && 1 === e.x && (e = new n.Vector2(e.x - 1, e.y)), 0 === t.x && 0 === t.z && (e = new n.Vector2(i / 2 / Math.PI + 0.5, e.y)), e.clone();
  28643.                        }
  28644.                        n.Geometry.call(this), (this.type = "PolyhedronGeometry"), (this.parameters = {
  28645.                            vertices: e,
  28646.                            indices: t,
  28647.                            radius: i,
  28648.                            detail: r
  28649.                        }), (i = i || 1), (r = r || 0);
  28650.                        for (var h = this, d = 0, f = e.length; f > d; d += 3) o(new n.Vector3(e[d], e[d + 1], e[d + 2]));
  28651.                        for (var p = this.vertices, m = [], d = 0, v = 0, f = t.length; f > d; d += 3, v++) {
  28652.                            var g = p[t[d]],
  28653.                                y = p[t[d + 1]],
  28654.                                _ = p[t[d + 2]];
  28655.                            m[v] = new n.Face3(g.index, y.index, _.index, [g.clone(), y.clone(), _.clone()]);
  28656.                        }
  28657.                        for (var b = new n.Vector3(), d = 0, f = m.length; f > d; d++) s(m[d], r);
  28658.                        for (var d = 0, f = this.faceVertexUvs[0].length; f > d; d++) {
  28659.                            var x = this.faceVertexUvs[0][d],
  28660.                                w = x[0].x,
  28661.                                M = x[1].x,
  28662.                                T = x[2].x,
  28663.                                S = Math.max(w, M, T),
  28664.                                E = Math.min(w, M, T);
  28665.                            S > 0.9 && 0.1 > E && (0.2 > w && (x[0].x += 1), 0.2 > M && (x[1].x += 1), 0.2 > T && (x[2].x += 1));
  28666.                        }
  28667.                        for (var d = 0, f = this.vertices.length; f > d; d++) this.vertices[d].multiplyScalar(i);
  28668.                        this.mergeVertices(), this.computeFaceNormals(), (this.boundingSphere = new n.Sphere(new n.Vector3(), i));
  28669.                    }),
  28670.                    (n.PolyhedronGeometry.prototype = Object.create(n.Geometry.prototype)),
  28671.                    (n.PolyhedronGeometry.prototype.constructor = n.PolyhedronGeometry),
  28672.                    (n.DodecahedronGeometry = function (e, t) {
  28673.                        var i = (1 + Math.sqrt(5)) / 2,
  28674.                            r = 1 / i,
  28675.                            o = [-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, -i, 0, -r, i, 0, r, -i, 0, r, i, -r, -i, 0, -r, i, 0, r, -i, 0, r, i, 0, -i, 0, -r, i, 0, -r, -i, 0, r, i, 0, r],
  28676.                            a = [
  28677.                                3,
  28678.                                11,
  28679.                                7,
  28680.                                3,
  28681.                                7,
  28682.                                15,
  28683.                                3,
  28684.                                15,
  28685.                                13,
  28686.                                7,
  28687.                                19,
  28688.                                17,
  28689.                                7,
  28690.                                17,
  28691.                                6,
  28692.                                7,
  28693.                                6,
  28694.                                15,
  28695.                                17,
  28696.                                4,
  28697.                                8,
  28698.                                17,
  28699.                                8,
  28700.                                10,
  28701.                                17,
  28702.                                10,
  28703.                                6,
  28704.                                8,
  28705.                                0,
  28706.                                16,
  28707.                                8,
  28708.                                16,
  28709.                                2,
  28710.                                8,
  28711.                                2,
  28712.                                10,
  28713.                                0,
  28714.                                12,
  28715.                                1,
  28716.                                0,
  28717.                                1,
  28718.                                18,
  28719.                                0,
  28720.                                18,
  28721.                                16,
  28722.                                6,
  28723.                                10,
  28724.                                2,
  28725.                                6,
  28726.                                2,
  28727.                                13,
  28728.                                6,
  28729.                                13,
  28730.                                15,
  28731.                                2,
  28732.                                16,
  28733.                                18,
  28734.                                2,
  28735.                                18,
  28736.                                3,
  28737.                                2,
  28738.                                3,
  28739.                                13,
  28740.                                18,
  28741.                                1,
  28742.                                9,
  28743.                                18,
  28744.                                9,
  28745.                                11,
  28746.                                18,
  28747.                                11,
  28748.                                3,
  28749.                                4,
  28750.                                14,
  28751.                                12,
  28752.                                4,
  28753.                                12,
  28754.                                0,
  28755.                                4,
  28756.                                0,
  28757.                                8,
  28758.                                11,
  28759.                                9,
  28760.                                5,
  28761.                                11,
  28762.                                5,
  28763.                                19,
  28764.                                11,
  28765.                                19,
  28766.                                7,
  28767.                                19,
  28768.                                5,
  28769.                                14,
  28770.                                19,
  28771.                                14,
  28772.                                4,
  28773.                                19,
  28774.                                4,
  28775.                                17,
  28776.                                1,
  28777.                                12,
  28778.                                14,
  28779.                                1,
  28780.                                14,
  28781.                                5,
  28782.                                1,
  28783.                                5,
  28784.                                9,
  28785.                            ];
  28786.                        n.PolyhedronGeometry.call(this, o, a, e, t), (this.type = "DodecahedronGeometry"), (this.parameters = {
  28787.                            radius: e,
  28788.                            detail: t
  28789.                        });
  28790.                    }),
  28791.                    (n.DodecahedronGeometry.prototype = Object.create(n.PolyhedronGeometry.prototype)),
  28792.                    (n.DodecahedronGeometry.prototype.constructor = n.DodecahedronGeometry),
  28793.                    (n.IcosahedronGeometry = function (e, t) {
  28794.                        var i = (1 + Math.sqrt(5)) / 2,
  28795.                            r = [-1, i, 0, 1, i, 0, -1, -i, 0, 1, -i, 0, 0, -1, i, 0, 1, i, 0, -1, -i, 0, 1, -i, i, 0, -1, i, 0, 1, -i, 0, -1, -i, 0, 1],
  28796.                            o = [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];
  28797.                        n.PolyhedronGeometry.call(this, r, o, e, t), (this.type = "IcosahedronGeometry"), (this.parameters = {
  28798.                            radius: e,
  28799.                            detail: t
  28800.                        });
  28801.                    }),
  28802.                    (n.IcosahedronGeometry.prototype = Object.create(n.PolyhedronGeometry.prototype)),
  28803.                    (n.IcosahedronGeometry.prototype.constructor = n.IcosahedronGeometry),
  28804.                    (n.OctahedronGeometry = function (e, t) {
  28805.                        var i = [1, 0, 0, -1, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 1, 0, 0, -1],
  28806.                            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];
  28807.                        n.PolyhedronGeometry.call(this, i, r, e, t), (this.type = "OctahedronGeometry"), (this.parameters = {
  28808.                            radius: e,
  28809.                            detail: t
  28810.                        });
  28811.                    }),
  28812.                    (n.OctahedronGeometry.prototype = Object.create(n.PolyhedronGeometry.prototype)),
  28813.                    (n.OctahedronGeometry.prototype.constructor = n.OctahedronGeometry),
  28814.                    (n.TetrahedronGeometry = function (e, t) {
  28815.                        var i = [1, 1, 1, -1, -1, 1, -1, 1, -1, 1, -1, -1],
  28816.                            r = [2, 1, 0, 0, 3, 2, 1, 3, 0, 2, 3, 1];
  28817.                        n.PolyhedronGeometry.call(this, i, r, e, t), (this.type = "TetrahedronGeometry"), (this.parameters = {
  28818.                            radius: e,
  28819.                            detail: t
  28820.                        });
  28821.                    }),
  28822.                    (n.TetrahedronGeometry.prototype = Object.create(n.PolyhedronGeometry.prototype)),
  28823.                    (n.TetrahedronGeometry.prototype.constructor = n.TetrahedronGeometry),
  28824.                    (n.ParametricGeometry = function (e, t, i) {
  28825.                        n.Geometry.call(this), (this.type = "ParametricGeometry"), (this.parameters = {
  28826.                            func: e,
  28827.                            slices: t,
  28828.                            stacks: i
  28829.                        });
  28830.                        var r,
  28831.                            o,
  28832.                            a,
  28833.                            s,
  28834.                            l,
  28835.                            c = this.vertices,
  28836.                            u = this.faces,
  28837.                            h = this.faceVertexUvs[0],
  28838.                            d = t + 1;
  28839.                        for (r = 0; i >= r; r++)
  28840.                            for (l = r / i, o = 0; t >= o; o++)(s = o / t), (a = e(s, l)), c.push(a);
  28841.                        var f, p, m, v, g, y, _, b;
  28842.                        for (r = 0; i > r; r++)
  28843.                            for (o = 0; t > o; o++)
  28844.                                (f = r * d + o),
  28845.                                (p = r * d + o + 1),
  28846.                                (m = (r + 1) * d + o + 1),
  28847.                                (v = (r + 1) * d + o),
  28848.                                (g = new n.Vector2(o / t, r / i)),
  28849.                                (y = new n.Vector2((o + 1) / t, r / i)),
  28850.                                (_ = new n.Vector2((o + 1) / t, (r + 1) / i)),
  28851.                                (b = new n.Vector2(o / t, (r + 1) / i)),
  28852.                                u.push(new n.Face3(f, p, v)),
  28853.                                h.push([g, y, b]),
  28854.                                u.push(new n.Face3(p, m, v)),
  28855.                                h.push([y.clone(), _, b.clone()]);
  28856.                        this.computeFaceNormals(), this.computeVertexNormals();
  28857.                    }),
  28858.                    (n.ParametricGeometry.prototype = Object.create(n.Geometry.prototype)),
  28859.                    (n.ParametricGeometry.prototype.constructor = n.ParametricGeometry),
  28860.                    (n.WireframeGeometry = function (e) {
  28861.                        function t(e, t) {
  28862.                            return e - t;
  28863.                        }
  28864.                        n.BufferGeometry.call(this);
  28865.                        var i = [0, 0],
  28866.                            r = {},
  28867.                            o = ["a", "b", "c"];
  28868.                        if (e instanceof n.Geometry) {
  28869.                            for (var a = e.vertices, s = e.faces, l = 0, c = new Uint32Array(6 * s.length), u = 0, h = s.length; h > u; u++)
  28870.                                for (var d = s[u], f = 0; 3 > f; f++) {
  28871.                                    (i[0] = d[o[f]]), (i[1] = d[o[(f + 1) % 3]]), i.sort(t);
  28872.                                    var p = i.toString();
  28873.                                    void 0 === r[p] && ((c[2 * l] = i[0]), (c[2 * l + 1] = i[1]), (r[p] = !0), l++);
  28874.                                }
  28875.                            for (var m = new Float32Array(2 * l * 3), u = 0, h = l; h > u; u++)
  28876.                                for (var f = 0; 2 > f; f++) {
  28877.                                    var v = a[c[2 * u + f]],
  28878.                                        g = 6 * u + 3 * f;
  28879.                                    (m[g + 0] = v.x), (m[g + 1] = v.y), (m[g + 2] = v.z);
  28880.                                }
  28881.                            this.addAttribute("position", new n.BufferAttribute(m, 3));
  28882.                        } else if (e instanceof n.BufferGeometry)
  28883.                            if (null !== e.index) {
  28884.                                var y = e.index.array,
  28885.                                    a = e.attributes.position,
  28886.                                    _ = e.groups,
  28887.                                    l = 0;
  28888.                                0 === _.length && e.addGroup(0, y.length);
  28889.                                for (var c = new Uint32Array(2 * y.length), b = 0, x = _.length; x > b; ++b)
  28890.                                    for (var w = _[b], M = w.start, T = w.count, u = M, S = M + T; S > u; u += 3)
  28891.                                        for (var f = 0; 3 > f; f++) {
  28892.                                            (i[0] = y[u + f]), (i[1] = y[u + ((f + 1) % 3)]), i.sort(t);
  28893.                                            var p = i.toString();
  28894.                                            void 0 === r[p] && ((c[2 * l] = i[0]), (c[2 * l + 1] = i[1]), (r[p] = !0), l++);
  28895.                                        }
  28896.                                for (var m = new Float32Array(2 * l * 3), u = 0, h = l; h > u; u++)
  28897.                                    for (var f = 0; 2 > f; f++) {
  28898.                                        var g = 6 * u + 3 * f,
  28899.                                            E = c[2 * u + f];
  28900.                                        (m[g + 0] = a.getX(E)), (m[g + 1] = a.getY(E)), (m[g + 2] = a.getZ(E));
  28901.                                    }
  28902.                                this.addAttribute("position", new n.BufferAttribute(m, 3));
  28903.                            } else {
  28904.                                for (var a = e.attributes.position.array, l = a.length / 3, A = l / 3, m = new Float32Array(2 * l * 3), u = 0, h = A; h > u; u++)
  28905.                                    for (var f = 0; 3 > f; f++) {
  28906.                                        var g = 18 * u + 6 * f,
  28907.                                            C = 9 * u + 3 * f;
  28908.                                        (m[g + 0] = a[C]), (m[g + 1] = a[C + 1]), (m[g + 2] = a[C + 2]);
  28909.                                        var E = 9 * u + 3 * ((f + 1) % 3);
  28910.                                        (m[g + 3] = a[E]), (m[g + 4] = a[E + 1]), (m[g + 5] = a[E + 2]);
  28911.                                    }
  28912.                                this.addAttribute("position", new n.BufferAttribute(m, 3));
  28913.                            }
  28914.                    }),
  28915.                    (n.WireframeGeometry.prototype = Object.create(n.BufferGeometry.prototype)),
  28916.                    (n.WireframeGeometry.prototype.constructor = n.WireframeGeometry),
  28917.                    (n.AxisHelper = function (e) {
  28918.                        e = e || 1;
  28919.                        var t = new Float32Array([0, 0, 0, e, 0, 0, 0, 0, 0, 0, e, 0, 0, 0, 0, 0, 0, e]),
  28920.                            i = new Float32Array([1, 0, 0, 1, 0.6, 0, 0, 1, 0, 0.6, 1, 0, 0, 0, 1, 0, 0.6, 1]),
  28921.                            r = new n.BufferGeometry();
  28922.                        r.addAttribute("position", new n.BufferAttribute(t, 3)), r.addAttribute("color", new n.BufferAttribute(i, 3));
  28923.                        var o = new n.LineBasicMaterial({
  28924.                            vertexColors: n.VertexColors
  28925.                        });
  28926.                        n.LineSegments.call(this, r, o);
  28927.                    }),
  28928.                    (n.AxisHelper.prototype = Object.create(n.LineSegments.prototype)),
  28929.                    (n.AxisHelper.prototype.constructor = n.AxisHelper),
  28930.                    (n.ArrowHelper = (function () {
  28931.                        var e = new n.BufferGeometry();
  28932.                        e.addAttribute("position", new n.Float32Attribute([0, 0, 0, 0, 1, 0], 3));
  28933.                        var t = new n.CylinderBufferGeometry(0, 0.5, 1, 5, 1);
  28934.                        return (
  28935.                            t.translate(0, -0.5, 0),
  28936.                            function (i, r, o, a, s, l) {
  28937.                                n.Object3D.call(this),
  28938.                                    void 0 === a && (a = 16776960),
  28939.                                    void 0 === o && (o = 1),
  28940.                                    void 0 === s && (s = 0.2 * o),
  28941.                                    void 0 === l && (l = 0.2 * s),
  28942.                                    this.position.copy(r),
  28943.                                    (this.line = new n.Line(e, new n.LineBasicMaterial({
  28944.                                        color: a
  28945.                                    }))),
  28946.                                    (this.line.matrixAutoUpdate = !1),
  28947.                                    this.add(this.line),
  28948.                                    (this.cone = new n.Mesh(t, new n.MeshBasicMaterial({
  28949.                                        color: a
  28950.                                    }))),
  28951.                                    (this.cone.matrixAutoUpdate = !1),
  28952.                                    this.add(this.cone),
  28953.                                    this.setDirection(i),
  28954.                                    this.setLength(o, s, l);
  28955.                            }
  28956.                        );
  28957.                    })()),
  28958.                    (n.ArrowHelper.prototype = Object.create(n.Object3D.prototype)),
  28959.                    (n.ArrowHelper.prototype.constructor = n.ArrowHelper),
  28960.                    (n.ArrowHelper.prototype.setDirection = (function () {
  28961.                        var e,
  28962.                            t = new n.Vector3();
  28963.                        return function (i) {
  28964.                            i.y > 0.99999 ? this.quaternion.set(0, 0, 0, 1) : i.y < -0.99999 ? this.quaternion.set(1, 0, 0, 0) : (t.set(i.z, 0, -i.x).normalize(), (e = Math.acos(i.y)), this.quaternion.setFromAxisAngle(t, e));
  28965.                        };
  28966.                    })()),
  28967.                    (n.ArrowHelper.prototype.setLength = function (e, t, i) {
  28968.                        void 0 === t && (t = 0.2 * e),
  28969.                            void 0 === i && (i = 0.2 * t),
  28970.                            this.line.scale.set(1, Math.max(0, e - t), 1),
  28971.                            this.line.updateMatrix(),
  28972.                            this.cone.scale.set(i, t, i),
  28973.                            (this.cone.position.y = e),
  28974.                            this.cone.updateMatrix();
  28975.                    }),
  28976.                    (n.ArrowHelper.prototype.setColor = function (e) {
  28977.                        this.line.material.color.copy(e), this.cone.material.color.copy(e);
  28978.                    }),
  28979.                    (n.BoxHelper = function (e, t) {
  28980.                        void 0 === t && (t = 16776960);
  28981.                        var i = 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]),
  28982.                            r = new Float32Array(24),
  28983.                            o = new n.BufferGeometry();
  28984.                        o.setIndex(new n.BufferAttribute(i, 1)), o.addAttribute("position", new n.BufferAttribute(r, 3)), n.LineSegments.call(this, o, new n.LineBasicMaterial({
  28985.                            color: t
  28986.                        })), void 0 !== e && this.update(e);
  28987.                    }),
  28988.                    (n.BoxHelper.prototype = Object.create(n.LineSegments.prototype)),
  28989.                    (n.BoxHelper.prototype.constructor = n.BoxHelper),
  28990.                    (n.BoxHelper.prototype.update = (function () {
  28991.                        var e = new n.Box3();
  28992.                        return function (t) {
  28993.                            if ((t instanceof n.Box3 ? e.copy(t) : e.setFromObject(t), !e.isEmpty())) {
  28994.                                var i = e.min,
  28995.                                    r = e.max,
  28996.                                    o = this.geometry.attributes.position,
  28997.                                    a = o.array;
  28998.                                (a[0] = r.x),
  28999.                                (a[1] = r.y),
  29000.                                (a[2] = r.z),
  29001.                                (a[3] = i.x),
  29002.                                (a[4] = r.y),
  29003.                                (a[5] = r.z),
  29004.                                (a[6] = i.x),
  29005.                                (a[7] = i.y),
  29006.                                (a[8] = r.z),
  29007.                                (a[9] = r.x),
  29008.                                (a[10] = i.y),
  29009.                                (a[11] = r.z),
  29010.                                (a[12] = r.x),
  29011.                                (a[13] = r.y),
  29012.                                (a[14] = i.z),
  29013.                                (a[15] = i.x),
  29014.                                (a[16] = r.y),
  29015.                                (a[17] = i.z),
  29016.                                (a[18] = i.x),
  29017.                                (a[19] = i.y),
  29018.                                (a[20] = i.z),
  29019.                                (a[21] = r.x),
  29020.                                (a[22] = i.y),
  29021.                                (a[23] = i.z),
  29022.                                (o.needsUpdate = !0),
  29023.                                this.geometry.computeBoundingSphere();
  29024.                            }
  29025.                        };
  29026.                    })()),
  29027.                    (n.BoundingBoxHelper = function (e, t) {
  29028.                        var i = void 0 !== t ? t : 8947848;
  29029.                        (this.object = e), (this.box = new n.Box3()), n.Mesh.call(this, new n.BoxGeometry(1, 1, 1), new n.MeshBasicMaterial({
  29030.                            color: i,
  29031.                            wireframe: !0
  29032.                        }));
  29033.                    }),
  29034.                    (n.BoundingBoxHelper.prototype = Object.create(n.Mesh.prototype)),
  29035.                    (n.BoundingBoxHelper.prototype.constructor = n.BoundingBoxHelper),
  29036.                    (n.BoundingBoxHelper.prototype.update = function () {
  29037.                        this.box.setFromObject(this.object), this.box.size(this.scale), this.box.center(this.position);
  29038.                    }),
  29039.                    (n.CameraHelper = function (e) {
  29040.                        function t(e, t, n) {
  29041.                            i(e, n), i(t, n);
  29042.                        }
  29043.  
  29044.                        function i(e, t) {
  29045.                            r.vertices.push(new n.Vector3()), r.colors.push(new n.Color(t)), void 0 === a[e] && (a[e] = []), a[e].push(r.vertices.length - 1);
  29046.                        }
  29047.                        var r = new n.Geometry(),
  29048.                            o = new n.LineBasicMaterial({
  29049.                                color: 16777215,
  29050.                                vertexColors: n.FaceColors
  29051.                            }),
  29052.                            a = {},
  29053.                            s = 16755200,
  29054.                            l = 16711680,
  29055.                            c = 43775,
  29056.                            u = 16777215,
  29057.                            h = 3355443;
  29058.                        t("n1", "n2", s),
  29059.                            t("n2", "n4", s),
  29060.                            t("n4", "n3", s),
  29061.                            t("n3", "n1", s),
  29062.                            t("f1", "f2", s),
  29063.                            t("f2", "f4", s),
  29064.                            t("f4", "f3", s),
  29065.                            t("f3", "f1", s),
  29066.                            t("n1", "f1", s),
  29067.                            t("n2", "f2", s),
  29068.                            t("n3", "f3", s),
  29069.                            t("n4", "f4", s),
  29070.                            t("p", "n1", l),
  29071.                            t("p", "n2", l),
  29072.                            t("p", "n3", l),
  29073.                            t("p", "n4", l),
  29074.                            t("u1", "u2", c),
  29075.                            t("u2", "u3", c),
  29076.                            t("u3", "u1", c),
  29077.                            t("c", "t", u),
  29078.                            t("p", "c", h),
  29079.                            t("cn1", "cn2", h),
  29080.                            t("cn3", "cn4", h),
  29081.                            t("cf1", "cf2", h),
  29082.                            t("cf3", "cf4", h),
  29083.                            n.LineSegments.call(this, r, o),
  29084.                            (this.camera = e),
  29085.                            this.camera.updateProjectionMatrix && this.camera.updateProjectionMatrix(),
  29086.                            (this.matrix = e.matrixWorld),
  29087.                            (this.matrixAutoUpdate = !1),
  29088.                            (this.pointMap = a),
  29089.                            this.update();
  29090.                    }),
  29091.                    (n.CameraHelper.prototype = Object.create(n.LineSegments.prototype)),
  29092.                    (n.CameraHelper.prototype.constructor = n.CameraHelper),
  29093.                    (n.CameraHelper.prototype.update = (function () {
  29094.                        function e(e, n, a, s) {
  29095.                            r.set(n, a, s).unproject(o);
  29096.                            var l = i[e];
  29097.                            if (void 0 !== l)
  29098.                                for (var c = 0, u = l.length; u > c; c++) t.vertices[l[c]].copy(r);
  29099.                        }
  29100.                        var t,
  29101.                            i,
  29102.                            r = new n.Vector3(),
  29103.                            o = new n.Camera();
  29104.                        return function () {
  29105.                            (t = this.geometry), (i = this.pointMap);
  29106.                            var n = 1,
  29107.                                r = 1;
  29108.                            o.projectionMatrix.copy(this.camera.projectionMatrix),
  29109.                                e("c", 0, 0, -1),
  29110.                                e("t", 0, 0, 1),
  29111.                                e("n1", -n, -r, -1),
  29112.                                e("n2", n, -r, -1),
  29113.                                e("n3", -n, r, -1),
  29114.                                e("n4", n, r, -1),
  29115.                                e("f1", -n, -r, 1),
  29116.                                e("f2", n, -r, 1),
  29117.                                e("f3", -n, r, 1),
  29118.                                e("f4", n, r, 1),
  29119.                                e("u1", 0.7 * n, 1.1 * r, -1),
  29120.                                e("u2", 0.7 * -n, 1.1 * r, -1),
  29121.                                e("u3", 0, 2 * r, -1),
  29122.                                e("cf1", -n, 0, 1),
  29123.                                e("cf2", n, 0, 1),
  29124.                                e("cf3", 0, -r, 1),
  29125.                                e("cf4", 0, r, 1),
  29126.                                e("cn1", -n, 0, -1),
  29127.                                e("cn2", n, 0, -1),
  29128.                                e("cn3", 0, -r, -1),
  29129.                                e("cn4", 0, r, -1),
  29130.                                (t.verticesNeedUpdate = !0);
  29131.                        };
  29132.                    })()),
  29133.                    (n.DirectionalLightHelper = function (e, t) {
  29134.                        n.Object3D.call(this), (this.light = e), this.light.updateMatrixWorld(), (this.matrix = e.matrixWorld), (this.matrixAutoUpdate = !1), void 0 === t && (t = 1);
  29135.                        var i = new n.BufferGeometry();
  29136.                        i.addAttribute("position", new n.Float32Attribute([-t, t, 0, t, t, 0, t, -t, 0, -t, -t, 0, -t, t, 0], 3));
  29137.                        var r = new n.LineBasicMaterial({
  29138.                            fog: !1
  29139.                        });
  29140.                        this.add(new n.Line(i, r)), (i = new n.BufferGeometry()), i.addAttribute("position", new n.Float32Attribute([0, 0, 0, 0, 0, 1], 3)), this.add(new n.Line(i, r)), this.update();
  29141.                    }),
  29142.                    (n.DirectionalLightHelper.prototype = Object.create(n.Object3D.prototype)),
  29143.                    (n.DirectionalLightHelper.prototype.constructor = n.DirectionalLightHelper),
  29144.                    (n.DirectionalLightHelper.prototype.dispose = function () {
  29145.                        var e = this.children[0],
  29146.                            t = this.children[1];
  29147.                        e.geometry.dispose(), e.material.dispose(), t.geometry.dispose(), t.material.dispose();
  29148.                    }),
  29149.                    (n.DirectionalLightHelper.prototype.update = (function () {
  29150.                        var e = new n.Vector3(),
  29151.                            t = new n.Vector3(),
  29152.                            i = new n.Vector3();
  29153.                        return function () {
  29154.                            e.setFromMatrixPosition(this.light.matrixWorld), t.setFromMatrixPosition(this.light.target.matrixWorld), i.subVectors(t, e);
  29155.                            var n = this.children[0],
  29156.                                r = this.children[1];
  29157.                            n.lookAt(i), n.material.color.copy(this.light.color).multiplyScalar(this.light.intensity), r.lookAt(i), (r.scale.z = i.length());
  29158.                        };
  29159.                    })()),
  29160.                    (n.EdgesHelper = function (e, t, i) {
  29161.                        var r = void 0 !== t ? t : 16777215;
  29162.                        n.LineSegments.call(this, new n.EdgesGeometry(e.geometry, i), new n.LineBasicMaterial({
  29163.                            color: r
  29164.                        })), (this.matrix = e.matrixWorld), (this.matrixAutoUpdate = !1);
  29165.                    }),
  29166.                    (n.EdgesHelper.prototype = Object.create(n.LineSegments.prototype)),
  29167.                    (n.EdgesHelper.prototype.constructor = n.EdgesHelper),
  29168.                    (n.FaceNormalsHelper = function (e, t, i, r) {
  29169.                        (this.object = e), (this.size = void 0 !== t ? t : 1);
  29170.                        var o = void 0 !== i ? i : 16776960,
  29171.                            a = void 0 !== r ? r : 1,
  29172.                            s = 0,
  29173.                            l = this.object.geometry;
  29174.                        l instanceof n.Geometry ? (s = l.faces.length) : console.warn("THREE.FaceNormalsHelper: only THREE.Geometry is supported. Use THREE.VertexNormalsHelper, instead.");
  29175.                        var c = new n.BufferGeometry(),
  29176.                            u = new n.Float32Attribute(2 * s * 3, 3);
  29177.                        c.addAttribute("position", u), n.LineSegments.call(this, c, new n.LineBasicMaterial({
  29178.                            color: o,
  29179.                            linewidth: a
  29180.                        })), (this.matrixAutoUpdate = !1), this.update();
  29181.                    }),
  29182.                    (n.FaceNormalsHelper.prototype = Object.create(n.LineSegments.prototype)),
  29183.                    (n.FaceNormalsHelper.prototype.constructor = n.FaceNormalsHelper),
  29184.                    (n.FaceNormalsHelper.prototype.update = (function () {
  29185.                        var e = new n.Vector3(),
  29186.                            t = new n.Vector3(),
  29187.                            i = new n.Matrix3();
  29188.                        return function () {
  29189.                            this.object.updateMatrixWorld(!0), i.getNormalMatrix(this.object.matrixWorld);
  29190.                            for (var n = this.object.matrixWorld, r = this.geometry.attributes.position, o = this.object.geometry, a = o.vertices, s = o.faces, l = 0, c = 0, u = s.length; u > c; c++) {
  29191.                                var h = s[c],
  29192.                                    d = h.normal;
  29193.                                e.copy(a[h.a]).add(a[h.b]).add(a[h.c]).divideScalar(3).applyMatrix4(n),
  29194.                                    t.copy(d).applyMatrix3(i).normalize().multiplyScalar(this.size).add(e),
  29195.                                    r.setXYZ(l, e.x, e.y, e.z),
  29196.                                    (l += 1),
  29197.                                    r.setXYZ(l, t.x, t.y, t.z),
  29198.                                    (l += 1);
  29199.                            }
  29200.                            return (r.needsUpdate = !0), this;
  29201.                        };
  29202.                    })()),
  29203.                    (n.GridHelper = function (e, t, i, r) {
  29204.                        (t = t || 1), (i = new n.Color(void 0 !== i ? i : 4473924)), (r = new n.Color(void 0 !== r ? r : 8947848));
  29205.                        for (var o = t / 2, a = (2 * e) / t, s = [], l = [], c = 0, u = 0, h = -e; t >= c; c++, h += a) {
  29206.                            s.push(-e, 0, h, e, 0, h), s.push(h, 0, -e, h, 0, e);
  29207.                            var d = c === o ? i : r;
  29208.                            d.toArray(l, u), (u += 3), d.toArray(l, u), (u += 3), d.toArray(l, u), (u += 3), d.toArray(l, u), (u += 3);
  29209.                        }
  29210.                        var f = new n.BufferGeometry();
  29211.                        f.addAttribute("position", new n.Float32Attribute(s, 3)), f.addAttribute("color", new n.Float32Attribute(l, 3));
  29212.                        var p = new n.LineBasicMaterial({
  29213.                            vertexColors: n.VertexColors
  29214.                        });
  29215.                        n.LineSegments.call(this, f, p);
  29216.                    }),
  29217.                    (n.GridHelper.prototype = Object.create(n.LineSegments.prototype)),
  29218.                    (n.GridHelper.prototype.constructor = n.GridHelper),
  29219.                    (n.GridHelper.prototype.setColors = function () {
  29220.                        console.error("THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.");
  29221.                    }),
  29222.                    (n.HemisphereLightHelper = function (e, t) {
  29223.                        n.Object3D.call(this), (this.light = e), this.light.updateMatrixWorld(), (this.matrix = e.matrixWorld), (this.matrixAutoUpdate = !1), (this.colors = [new n.Color(), new n.Color()]);
  29224.                        var i = new n.SphereGeometry(t, 4, 2);
  29225.                        i.rotateX(-Math.PI / 2);
  29226.                        for (var r = 0, o = 8; o > r; r++) i.faces[r].color = this.colors[4 > r ? 0 : 1];
  29227.                        var a = new n.MeshBasicMaterial({
  29228.                            vertexColors: n.FaceColors,
  29229.                            wireframe: !0
  29230.                        });
  29231.                        (this.lightSphere = new n.Mesh(i, a)), this.add(this.lightSphere), this.update();
  29232.                    }),
  29233.                    (n.HemisphereLightHelper.prototype = Object.create(n.Object3D.prototype)),
  29234.                    (n.HemisphereLightHelper.prototype.constructor = n.HemisphereLightHelper),
  29235.                    (n.HemisphereLightHelper.prototype.dispose = function () {
  29236.                        this.lightSphere.geometry.dispose(), this.lightSphere.material.dispose();
  29237.                    }),
  29238.                    (n.HemisphereLightHelper.prototype.update = (function () {
  29239.                        var e = new n.Vector3();
  29240.                        return function () {
  29241.                            this.colors[0].copy(this.light.color).multiplyScalar(this.light.intensity),
  29242.                                this.colors[1].copy(this.light.groundColor).multiplyScalar(this.light.intensity),
  29243.                                this.lightSphere.lookAt(e.setFromMatrixPosition(this.light.matrixWorld).negate()),
  29244.                                (this.lightSphere.geometry.colorsNeedUpdate = !0);
  29245.                        };
  29246.                    })()),
  29247.                    (n.PointLightHelper = function (e, t) {
  29248.                        (this.light = e), this.light.updateMatrixWorld();
  29249.                        var i = new n.SphereBufferGeometry(t, 4, 2),
  29250.                            r = new n.MeshBasicMaterial({
  29251.                                wireframe: !0,
  29252.                                fog: !1
  29253.                            });
  29254.                        r.color.copy(this.light.color).multiplyScalar(this.light.intensity), n.Mesh.call(this, i, r), (this.matrix = this.light.matrixWorld), (this.matrixAutoUpdate = !1);
  29255.                    }),
  29256.                    (n.PointLightHelper.prototype = Object.create(n.Mesh.prototype)),
  29257.                    (n.PointLightHelper.prototype.constructor = n.PointLightHelper),
  29258.                    (n.PointLightHelper.prototype.dispose = function () {
  29259.                        this.geometry.dispose(), this.material.dispose();
  29260.                    }),
  29261.                    (n.PointLightHelper.prototype.update = function () {
  29262.                        this.material.color.copy(this.light.color).multiplyScalar(this.light.intensity);
  29263.                    }),
  29264.                    (n.SkeletonHelper = function (e) {
  29265.                        this.bones = this.getBoneList(e);
  29266.                        for (var t = new n.Geometry(), i = 0; i < this.bones.length; i++) {
  29267.                            var r = this.bones[i];
  29268.                            r.parent instanceof n.Bone && (t.vertices.push(new n.Vector3()), t.vertices.push(new n.Vector3()), t.colors.push(new n.Color(0, 0, 1)), t.colors.push(new n.Color(0, 1, 0)));
  29269.                        }
  29270.                        t.dynamic = !0;
  29271.                        var o = new n.LineBasicMaterial({
  29272.                            vertexColors: n.VertexColors,
  29273.                            depthTest: !1,
  29274.                            depthWrite: !1,
  29275.                            transparent: !0
  29276.                        });
  29277.                        n.LineSegments.call(this, t, o), (this.root = e), (this.matrix = e.matrixWorld), (this.matrixAutoUpdate = !1), this.update();
  29278.                    }),
  29279.                    (n.SkeletonHelper.prototype = Object.create(n.LineSegments.prototype)),
  29280.                    (n.SkeletonHelper.prototype.constructor = n.SkeletonHelper),
  29281.                    (n.SkeletonHelper.prototype.getBoneList = function (e) {
  29282.                        var t = [];
  29283.                        e instanceof n.Bone && t.push(e);
  29284.                        for (var i = 0; i < e.children.length; i++) t.push.apply(t, this.getBoneList(e.children[i]));
  29285.                        return t;
  29286.                    }),
  29287.                    (n.SkeletonHelper.prototype.update = function () {
  29288.                        for (var e = this.geometry, t = new n.Matrix4().getInverse(this.root.matrixWorld), i = new n.Matrix4(), r = 0, o = 0; o < this.bones.length; o++) {
  29289.                            var a = this.bones[o];
  29290.                            a.parent instanceof n.Bone && (i.multiplyMatrices(t, a.matrixWorld), e.vertices[r].setFromMatrixPosition(i), i.multiplyMatrices(t, a.parent.matrixWorld), e.vertices[r + 1].setFromMatrixPosition(i), (r += 2));
  29291.                        }
  29292.                        (e.verticesNeedUpdate = !0), e.computeBoundingSphere();
  29293.                    }),
  29294.                    (n.SpotLightHelper = function (e) {
  29295.                        n.Object3D.call(this), (this.light = e), this.light.updateMatrixWorld(), (this.matrix = e.matrixWorld), (this.matrixAutoUpdate = !1);
  29296.                        for (var t = new n.BufferGeometry(), i = [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], r = 0, o = 1, a = 32; a > r; r++, o++) {
  29297.                            var s = (r / a) * Math.PI * 2,
  29298.                                l = (o / a) * Math.PI * 2;
  29299.                            i.push(Math.cos(s), Math.sin(s), 1, Math.cos(l), Math.sin(l), 1);
  29300.                        }
  29301.                        t.addAttribute("position", new n.Float32Attribute(i, 3));
  29302.                        var c = new n.LineBasicMaterial({
  29303.                            fog: !1
  29304.                        });
  29305.                        (this.cone = new n.LineSegments(t, c)), this.add(this.cone), this.update();
  29306.                    }),
  29307.                    (n.SpotLightHelper.prototype = Object.create(n.Object3D.prototype)),
  29308.                    (n.SpotLightHelper.prototype.constructor = n.SpotLightHelper),
  29309.                    (n.SpotLightHelper.prototype.dispose = function () {
  29310.                        this.cone.geometry.dispose(), this.cone.material.dispose();
  29311.                    }),
  29312.                    (n.SpotLightHelper.prototype.update = (function () {
  29313.                        var e = new n.Vector3(),
  29314.                            t = new n.Vector3();
  29315.                        return function () {
  29316.                            var i = this.light.distance ? this.light.distance : 1e3,
  29317.                                n = i * Math.tan(this.light.angle);
  29318.                            this.cone.scale.set(n, n, i),
  29319.                                e.setFromMatrixPosition(this.light.matrixWorld),
  29320.                                t.setFromMatrixPosition(this.light.target.matrixWorld),
  29321.                                this.cone.lookAt(t.sub(e)),
  29322.                                this.cone.material.color.copy(this.light.color).multiplyScalar(this.light.intensity);
  29323.                        };
  29324.                    })()),
  29325.                    (n.VertexNormalsHelper = function (e, t, i, r) {
  29326.                        (this.object = e), (this.size = void 0 !== t ? t : 1);
  29327.                        var o = void 0 !== i ? i : 16711680,
  29328.                            a = void 0 !== r ? r : 1,
  29329.                            s = 0,
  29330.                            l = this.object.geometry;
  29331.                        l instanceof n.Geometry ? (s = 3 * l.faces.length) : l instanceof n.BufferGeometry && (s = l.attributes.normal.count);
  29332.                        var c = new n.BufferGeometry(),
  29333.                            u = new n.Float32Attribute(2 * s * 3, 3);
  29334.                        c.addAttribute("position", u), n.LineSegments.call(this, c, new n.LineBasicMaterial({
  29335.                            color: o,
  29336.                            linewidth: a
  29337.                        })), (this.matrixAutoUpdate = !1), this.update();
  29338.                    }),
  29339.                    (n.VertexNormalsHelper.prototype = Object.create(n.LineSegments.prototype)),
  29340.                    (n.VertexNormalsHelper.prototype.constructor = n.VertexNormalsHelper),
  29341.                    (n.VertexNormalsHelper.prototype.update = (function () {
  29342.                        var e = new n.Vector3(),
  29343.                            t = new n.Vector3(),
  29344.                            i = new n.Matrix3();
  29345.                        return function () {
  29346.                            var r = ["a", "b", "c"];
  29347.                            this.object.updateMatrixWorld(!0), i.getNormalMatrix(this.object.matrixWorld);
  29348.                            var o = this.object.matrixWorld,
  29349.                                a = this.geometry.attributes.position,
  29350.                                s = this.object.geometry;
  29351.                            if (s instanceof n.Geometry)
  29352.                                for (var l = s.vertices, c = s.faces, u = 0, h = 0, d = c.length; d > h; h++)
  29353.                                    for (var f = c[h], p = 0, m = f.vertexNormals.length; m > p; p++) {
  29354.                                        var v = l[f[r[p]]],
  29355.                                            g = f.vertexNormals[p];
  29356.                                        e.copy(v).applyMatrix4(o), t.copy(g).applyMatrix3(i).normalize().multiplyScalar(this.size).add(e), a.setXYZ(u, e.x, e.y, e.z), (u += 1), a.setXYZ(u, t.x, t.y, t.z), (u += 1);
  29357.                                    }
  29358.                            else if (s instanceof n.BufferGeometry)
  29359.                                for (var y = s.attributes.position, _ = s.attributes.normal, u = 0, p = 0, m = y.count; m > p; p++)
  29360.                                    e.set(y.getX(p), y.getY(p), y.getZ(p)).applyMatrix4(o),
  29361.                                    t.set(_.getX(p), _.getY(p), _.getZ(p)),
  29362.                                    t.applyMatrix3(i).normalize().multiplyScalar(this.size).add(e),
  29363.                                    a.setXYZ(u, e.x, e.y, e.z),
  29364.                                    (u += 1),
  29365.                                    a.setXYZ(u, t.x, t.y, t.z),
  29366.                                    (u += 1);
  29367.                            return (a.needsUpdate = !0), this;
  29368.                        };
  29369.                    })()),
  29370.                    (n.WireframeHelper = function (e, t) {
  29371.                        var i = void 0 !== t ? t : 16777215;
  29372.                        n.LineSegments.call(this, new n.WireframeGeometry(e.geometry), new n.LineBasicMaterial({
  29373.                            color: i
  29374.                        })), (this.matrix = e.matrixWorld), (this.matrixAutoUpdate = !1);
  29375.                    }),
  29376.                    (n.WireframeHelper.prototype = Object.create(n.LineSegments.prototype)),
  29377.                    (n.WireframeHelper.prototype.constructor = n.WireframeHelper),
  29378.                    (n.ImmediateRenderObject = function (e) {
  29379.                        n.Object3D.call(this), (this.material = e), (this.render = function (e) {});
  29380.                    }),
  29381.                    (n.ImmediateRenderObject.prototype = Object.create(n.Object3D.prototype)),
  29382.                    (n.ImmediateRenderObject.prototype.constructor = n.ImmediateRenderObject),
  29383.                    (n.MorphBlendMesh = function (e, t) {
  29384.                        n.Mesh.call(this, e, t), (this.animationsMap = {}), (this.animationsList = []);
  29385.                        var i = this.geometry.morphTargets.length,
  29386.                            r = "__default",
  29387.                            o = 0,
  29388.                            a = i - 1,
  29389.                            s = i / 1;
  29390.                        this.createAnimation(r, o, a, s), this.setAnimationWeight(r, 1);
  29391.                    }),
  29392.                    (n.MorphBlendMesh.prototype = Object.create(n.Mesh.prototype)),
  29393.                    (n.MorphBlendMesh.prototype.constructor = n.MorphBlendMesh),
  29394.                    (n.MorphBlendMesh.prototype.createAnimation = function (e, t, i, n) {
  29395.                        var r = {
  29396.                            start: t,
  29397.                            end: i,
  29398.                            length: i - t + 1,
  29399.                            fps: n,
  29400.                            duration: (i - t) / n,
  29401.                            lastFrame: 0,
  29402.                            currentFrame: 0,
  29403.                            active: !1,
  29404.                            time: 0,
  29405.                            direction: 1,
  29406.                            weight: 1,
  29407.                            directionBackwards: !1,
  29408.                            mirroredLoop: !1
  29409.                        };
  29410.                        (this.animationsMap[e] = r), this.animationsList.push(r);
  29411.                    }),
  29412.                    (n.MorphBlendMesh.prototype.autoCreateAnimations = function (e) {
  29413.                        for (var t, i = /([a-z]+)_?(d+)/i, n = {}, r = this.geometry, o = 0, a = r.morphTargets.length; a > o; o++) {
  29414.                            var s = r.morphTargets[o],
  29415.                                l = s.name.match(i);
  29416.                            if (l && l.length > 1) {
  29417.                                var c = l[1];
  29418.                                n[c] || (n[c] = {
  29419.                                    start: 1 / 0,
  29420.                                    end: -(1 / 0)
  29421.                                });
  29422.                                var u = n[c];
  29423.                                o < u.start && (u.start = o), o > u.end && (u.end = o), t || (t = c);
  29424.                            }
  29425.                        }
  29426.                        for (var c in n) {
  29427.                            var u = n[c];
  29428.                            this.createAnimation(c, u.start, u.end, e);
  29429.                        }
  29430.                        this.firstAnimation = t;
  29431.                    }),
  29432.                    (n.MorphBlendMesh.prototype.setAnimationDirectionForward = function (e) {
  29433.                        var t = this.animationsMap[e];
  29434.                        t && ((t.direction = 1), (t.directionBackwards = !1));
  29435.                    }),
  29436.                    (n.MorphBlendMesh.prototype.setAnimationDirectionBackward = function (e) {
  29437.                        var t = this.animationsMap[e];
  29438.                        t && ((t.direction = -1), (t.directionBackwards = !0));
  29439.                    }),
  29440.                    (n.MorphBlendMesh.prototype.setAnimationFPS = function (e, t) {
  29441.                        var i = this.animationsMap[e];
  29442.                        i && ((i.fps = t), (i.duration = (i.end - i.start) / i.fps));
  29443.                    }),
  29444.                    (n.MorphBlendMesh.prototype.setAnimationDuration = function (e, t) {
  29445.                        var i = this.animationsMap[e];
  29446.                        i && ((i.duration = t), (i.fps = (i.end - i.start) / i.duration));
  29447.                    }),
  29448.                    (n.MorphBlendMesh.prototype.setAnimationWeight = function (e, t) {
  29449.                        var i = this.animationsMap[e];
  29450.                        i && (i.weight = t);
  29451.                    }),
  29452.                    (n.MorphBlendMesh.prototype.setAnimationTime = function (e, t) {
  29453.                        var i = this.animationsMap[e];
  29454.                        i && (i.time = t);
  29455.                    }),
  29456.                    (n.MorphBlendMesh.prototype.getAnimationTime = function (e) {
  29457.                        var t = 0,
  29458.                            i = this.animationsMap[e];
  29459.                        return i && (t = i.time), t;
  29460.                    }),
  29461.                    (n.MorphBlendMesh.prototype.getAnimationDuration = function (e) {
  29462.                        var t = -1,
  29463.                            i = this.animationsMap[e];
  29464.                        return i && (t = i.duration), t;
  29465.                    }),
  29466.                    (n.MorphBlendMesh.prototype.playAnimation = function (e) {
  29467.                        var t = this.animationsMap[e];
  29468.                        t ? ((t.time = 0), (t.active = !0)) : console.warn("THREE.MorphBlendMesh: animation[" + e + "] undefined in .playAnimation()");
  29469.                    }),
  29470.                    (n.MorphBlendMesh.prototype.stopAnimation = function (e) {
  29471.                        var t = this.animationsMap[e];
  29472.                        t && (t.active = !1);
  29473.                    }),
  29474.                    (n.MorphBlendMesh.prototype.update = function (e) {
  29475.                        for (var t = 0, i = this.animationsList.length; i > t; t++) {
  29476.                            var r = this.animationsList[t];
  29477.                            if (r.active) {
  29478.                                var o = r.duration / r.length;
  29479.                                (r.time += r.direction * e),
  29480.                                r.mirroredLoop ?
  29481.                                    (r.time > r.duration || r.time < 0) && ((r.direction *= -1), r.time > r.duration && ((r.time = r.duration), (r.directionBackwards = !0)), r.time < 0 && ((r.time = 0), (r.directionBackwards = !1))) :
  29482.                                    ((r.time = r.time % r.duration), r.time < 0 && (r.time += r.duration));
  29483.                                var a = r.start + n.Math.clamp(Math.floor(r.time / o), 0, r.length - 1),
  29484.                                    s = r.weight;
  29485.                                a !== r.currentFrame &&
  29486.                                    ((this.morphTargetInfluences[r.lastFrame] = 0), (this.morphTargetInfluences[r.currentFrame] = 1 * s), (this.morphTargetInfluences[a] = 0), (r.lastFrame = r.currentFrame), (r.currentFrame = a));
  29487.                                var l = (r.time % o) / o;
  29488.                                r.directionBackwards && (l = 1 - l),
  29489.                                    r.currentFrame !== r.lastFrame ? ((this.morphTargetInfluences[r.currentFrame] = l * s), (this.morphTargetInfluences[r.lastFrame] = (1 - l) * s)) : (this.morphTargetInfluences[r.currentFrame] = s);
  29490.                            }
  29491.                        }
  29492.                    });
  29493.            },
  29494.            {},
  29495.        ],
  29496.        216: [
  29497.            function (e, t, i) {
  29498.                var n = {
  29499.                        emptyUserAgentDeviceType: "desktop",
  29500.                        unknownUserAgentDeviceType: "phone",
  29501.                        botUserAgentDeviceType: "bot"
  29502.                    },
  29503.                    r = {
  29504.                        tv: "tv",
  29505.                        tablet: "tablet",
  29506.                        phone: "phone",
  29507.                        desktop: "desktop",
  29508.                        bot: "bot"
  29509.                    };
  29510.                (t.exports = function (e, t) {
  29511.                    return (
  29512.                        (t = t || {}),
  29513.                        e && "" !== e ?
  29514.                        e.match(/GoogleTV|SmartTV|Internet TV|NetCast|NETTV|AppleTV|boxee|Kylo|Roku|DLNADOC|CE-HTML/i) ?
  29515.                        r.tv :
  29516.                        e.match(/Xbox|PLAYSTATION 3|Wii/i) ?
  29517.                        r.tv :
  29518.                        e.match(/iP(a|ro)d/i) || (e.match(/tablet/i) && !e.match(/RX-34/i)) || e.match(/FOLIO/i) ?
  29519.                        r.tablet :
  29520.                        e.match(/Linux/i) && e.match(/Android/i) && !e.match(/Fennec|mobi|HTC Magic|HTCX06HT|Nexus One|SC-02B|fone 945/i) ?
  29521.                        r.tablet :
  29522.                        e.match(/Kindle/i) || (e.match(/Mac OS/i) && e.match(/Silk/i)) ?
  29523.                        r.tablet :
  29524.                        e.match(
  29525.                            /GT-P10|SC-01C|SHW-M180S|SGH-T849|SCH-I800|SHW-M180L|SPH-P100|SGH-I987|zt180|HTC( Flyer|_Flyer)|Sprint ATP51|ViewPad7|pandigital(sprnova|nova)|Ideos S7|Dell Streak 7|Advent Vega|A101IT|A70BHT|MID7015|Next2|nook/i
  29526.                        ) ||
  29527.                        (e.match(/MB511/i) && e.match(/RUTEM/i)) ?
  29528.                        r.tablet :
  29529.                        e.match(/BOLT|Fennec|Iris|Maemo|Minimo|Mobi|mowser|NetFront|Novarra|Prism|RX-34|Skyfire|Tear|XV6875|XV6975|Google Wireless Transcoder/i) ?
  29530.                        r.phone :
  29531.                        e.match(/Opera/i) && e.match(/Windows NT 5/i) && e.match(/HTC|Xda|Mini|Vario|SAMSUNG-GT-i8000|SAMSUNG-SGH-i9/i) ?
  29532.                        r.phone :
  29533.                        (e.match(/Windows (NT|XP|ME|9)/) && !e.match(/Phone/i) && !e.match(/Bot|Spider|ia_archiver|NewsGator/i)) || e.match(/Win( ?9|NT)/i) ?
  29534.                        r.desktop :
  29535.                        e.match(/Macintosh|PowerPC/i) && !e.match(/Silk/i) ?
  29536.                        r.desktop :
  29537.                        e.match(/Linux/i) && e.match(/X11/i) && !e.match(/Charlotte/i) ?
  29538.                        r.desktop :
  29539.                        e.match(/CrOS/) ?
  29540.                        r.desktop :
  29541.                        e.match(/Solaris|SunOS|BSD/i) ?
  29542.                        r.desktop :
  29543.                        e.match(
  29544.                            /curl|Bot|B-O-T|Crawler|Spider|Spyder|Yahoo|ia_archiver|Covario-IDS|findlinks|DataparkSearch|larbin|Mediapartners-Google|NG-Search|Snappy|Teoma|Jeeves|Charlotte|NewsGator|TinEye|Cerberian|SearchSight|Zao|Scrubby|Qseero|PycURL|Pompos|oegp|SBIder|yoogliFetchAgent|yacy|webcollage|VYU2|voyager|updated|truwoGPS|StackRambler|Sqworm|silk|semanticdiscovery|ScoutJet|Nymesis|NetResearchServer|MVAClient|mogimogi|Mnogosearch|Arachmo|Accoona|holmes|htdig|ichiro|webis|LinkWalker|lwp-trivial/i
  29545.                        ) && !e.match(/mobile|Playstation/i) ?
  29546.                        t.botUserAgentDeviceType || r.bot :
  29547.                        t.unknownUserAgentDeviceType || r.phone :
  29548.                        t.emptyUserAgentDeviceType || r.desktop
  29549.                    );
  29550.                }),
  29551.                (t.exports.devices = r),
  29552.                (t.exports.defaultOptions = n);
  29553.            },
  29554.            {},
  29555.        ],
  29556.        217: [
  29557.            function (e, t, i) {
  29558.                !(function (e, n) {
  29559.                    "use strict";
  29560.                    var r = "0.7.9",
  29561.                        o = "",
  29562.                        a = "?",
  29563.                        s = "function",
  29564.                        l = "undefined",
  29565.                        c = "object",
  29566.                        u = "string",
  29567.                        h = "major",
  29568.                        d = "model",
  29569.                        f = "name",
  29570.                        p = "type",
  29571.                        m = "vendor",
  29572.                        v = "version",
  29573.                        g = "architecture",
  29574.                        y = "console",
  29575.                        _ = "mobile",
  29576.                        b = "tablet",
  29577.                        x = "smarttv",
  29578.                        w = "wearable",
  29579.                        M = "embedded",
  29580.                        T = {
  29581.                            extend: function (e, t) {
  29582.                                for (var i in t) - 1 !== "browser cpu device engine os".indexOf(i) && t[i].length % 2 === 0 && (e[i] = t[i].concat(e[i]));
  29583.                                return e;
  29584.                            },
  29585.                            has: function (e, t) {
  29586.                                return "string" == typeof e ? -1 !== t.toLowerCase().indexOf(e.toLowerCase()) : !1;
  29587.                            },
  29588.                            lowerize: function (e) {
  29589.                                return e.toLowerCase();
  29590.                            },
  29591.                            major: function (e) {
  29592.                                return typeof e === u ? e.split(".")[0] : n;
  29593.                            },
  29594.                        },
  29595.                        S = {
  29596.                            rgx: function () {
  29597.                                for (var e, t, i, r, o, a, u, h = 0, d = arguments; h < d.length && !a;) {
  29598.                                    var f = d[h],
  29599.                                        p = d[h + 1];
  29600.                                    if (typeof e === l) {
  29601.                                        e = {};
  29602.                                        for (r in p)(o = p[r]), typeof o === c ? (e[o[0]] = n) : (e[o] = n);
  29603.                                    }
  29604.                                    for (t = i = 0; t < f.length && !a;)
  29605.                                        if ((a = f[t++].exec(this.getUA())))
  29606.                                            for (r = 0; r < p.length; r++)
  29607.                                                (u = a[++i]),
  29608.                                                (o = p[r]),
  29609.                                                typeof o === c && o.length > 0 ?
  29610.                                                2 == o.length ?
  29611.                                                typeof o[1] == s ?
  29612.                                                (e[o[0]] = o[1].call(this, u)) :
  29613.                                                (e[o[0]] = o[1]) :
  29614.                                                3 == o.length ?
  29615.                                                typeof o[1] !== s || (o[1].exec && o[1].test) ?
  29616.                                                (e[o[0]] = u ? u.replace(o[1], o[2]) : n) :
  29617.                                                (e[o[0]] = u ? o[1].call(this, u, o[2]) : n) :
  29618.                                                4 == o.length && (e[o[0]] = u ? o[3].call(this, u.replace(o[1], o[2])) : n) :
  29619.                                                (e[o] = u ? u : n);
  29620.                                    h += 2;
  29621.                                }
  29622.                                return e;
  29623.                            },
  29624.                            str: function (e, t) {
  29625.                                for (var i in t)
  29626.                                    if (typeof t[i] === c && t[i].length > 0) {
  29627.                                        for (var r = 0; r < t[i].length; r++)
  29628.                                            if (T.has(t[i][r], e)) return i === a ? n : i;
  29629.                                    } else if (T.has(t[i], e)) return i === a ? n : i;
  29630.                                return e;
  29631.                            },
  29632.                        },
  29633.                        E = {
  29634.                            browser: {
  29635.                                oldsafari: {
  29636.                                    version: {
  29637.                                        "1.0": "/8",
  29638.                                        1.2: "/1",
  29639.                                        1.3: "/3",
  29640.                                        "2.0": "/412",
  29641.                                        "2.0.2": "/416",
  29642.                                        "2.0.3": "/417",
  29643.                                        "2.0.4": "/419",
  29644.                                        "?": "/"
  29645.                                    }
  29646.                                }
  29647.                            },
  29648.                            device: {
  29649.                                amazon: {
  29650.                                    model: {
  29651.                                        "Fire Phone": ["SD", "KF"]
  29652.                                    }
  29653.                                },
  29654.                                sprint: {
  29655.                                    model: {
  29656.                                        "Evo Shift 4G": "7373KT"
  29657.                                    },
  29658.                                    vendor: {
  29659.                                        HTC: "APA",
  29660.                                        Sprint: "Sprint"
  29661.                                    }
  29662.                                }
  29663.                            },
  29664.                            os: {
  29665.                                windows: {
  29666.                                    version: {
  29667.                                        ME: "4.90",
  29668.                                        "NT 3.11": "NT3.51",
  29669.                                        "NT 4.0": "NT4.0",
  29670.                                        2000: "NT 5.0",
  29671.                                        XP: ["NT 5.1", "NT 5.2"],
  29672.                                        Vista: "NT 6.0",
  29673.                                        7: "NT 6.1",
  29674.                                        8: "NT 6.2",
  29675.                                        8.1: "NT 6.3",
  29676.                                        10: ["NT 6.4", "NT 10.0"],
  29677.                                        RT: "ARM"
  29678.                                    },
  29679.                                },
  29680.                            },
  29681.                        },
  29682.                        A = {
  29683.                            browser: [
  29684.                                [/(operasmini)/([w.-]+)/i, /(operas[mobiletab]+).+version/([w.-]+)/i, /(opera).+version/([w.]+)/i, /(opera)[/s]+([w.]+)/i],
  29685.                                [f, v],
  29686.                                [/s(opr)/([w.]+)/i],
  29687.                                [
  29688.                                    [f, "Opera"], v
  29689.                                ],
  29690.                                [
  29691.                                    /(kindle)/([w.]+)/i,
  29692.                                    /(lunascape|maxthon|netfront|jasmine|blazer)[/s]?([w.]+)*/i,
  29693.                                    /(avants|iemobile|slim|baidu)(?:browser)?[/s]?([w.]*)/i,
  29694.                                    /(?:ms|()(ie)s([w.]+)/i,
  29695.                                    /(rekonq)/([w.]+)*/i,
  29696.                                    /(chromium|flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium)/([w.-]+)/i,
  29697.                                ],
  29698.                                [f, v],
  29699.                                [/(trident).+rv[:s]([w.]+).+likesgecko/i],
  29700.                                [
  29701.                                    [f, "IE"], v
  29702.                                ],
  29703.                                [/(edge)/((d+)?[w.]+)/i],
  29704.                                [f, v],
  29705.                                [/(yabrowser)/([w.]+)/i],
  29706.                                [
  29707.                                    [f, "Yandex"], v
  29708.                                ],
  29709.                                [/(comodo_dragon)/([w.]+)/i],
  29710.                                [
  29711.                                    [f, /_/g, " "], v
  29712.                                ],
  29713.                                [/(chrome|omniweb|arora|[tizenoka]{5}s?browser)/v?([w.]+)/i, /(ucs?browser|qqbrowser)[/s]?([w.]+)/i],
  29714.                                [f, v],
  29715.                                [/(dolfin)/([w.]+)/i],
  29716.                                [
  29717.                                    [f, "Dolphin"], v
  29718.                                ],
  29719.                                [/((?:android.+)crmo|crios)/([w.]+)/i],
  29720.                                [
  29721.                                    [f, "Chrome"], v
  29722.                                ],
  29723.                                [/XiaoMi/MiuiBrowser/([w.]+)/i],
  29724.                                [v, [f, "MIUI Browser"]],
  29725.                                [/android.+version/([w.]+)s+(?:mobiles?safari|safari)/i],
  29726.                                [v, [f, "Android Browser"]],
  29727.                                [/FBAV/([w.]+);/i],
  29728.                                [v, [f, "Facebook"]],
  29729.                                [/version/([w.]+).+?mobile/w+s(safari)/i],
  29730.                                [v, [f, "Mobile Safari"]],
  29731.                                [/version/([w.]+).+?(mobiles?safari|safari)/i],
  29732.                                [v, f],
  29733.                                [/webkit.+?(mobiles?safari|safari)(/[w.]+)/i],
  29734.                                [f, [v, S.str, E.browser.oldsafari.version]],
  29735.                                [/(konqueror)/([w.]+)/i, /(webkit|khtml)/([w.]+)/i],
  29736.                                [f, v],
  29737.                                [/(navigator|netscape)/([w.-]+)/i],
  29738.                                [
  29739.                                    [f, "Netscape"], v
  29740.                                ],
  29741.                                [/fxios/([w.-]+)/i],
  29742.                                [v, [f, "Firefox"]],
  29743.                                [
  29744.                                    /(swiftfox)/i,
  29745.                                    /(icedragon|iceweasel|camino|chimera|fennec|maemosbrowser|minimo|conkeror)[/s]?([w.+]+)/i,
  29746.                                    /(firefox|seamonkey|k-meleon|icecat|iceape|firebird|phoenix)/([w.-]+)/i,
  29747.                                    /(mozilla)/([w.]+).+rv:.+gecko/d+/i,
  29748.                                    /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf)[/s]?([w.]+)/i,
  29749.                                    /(links)s(([w.]+)/i,
  29750.                                    /(gobrowser)/?([w.]+)*/i,
  29751.                                    /(ices?browser)/v?([w._]+)/i,
  29752.                                    /(mosaic)[/s]([w.]+)/i,
  29753.                                ],
  29754.                                [f, v],
  29755.                            ],
  29756.                            cpu: [
  29757.                                [/(?:(amd|x(?:(?:86|64)[_-])?|wow|win)64)[;)]/i],
  29758.                                [
  29759.                                    [g, "amd64"]
  29760.                                ],
  29761.                                [/(ia32(?=;))/i],
  29762.                                [
  29763.                                    [g, T.lowerize]
  29764.                                ],
  29765.                                [/((?:i[346]|x)86)[;)]/i],
  29766.                                [
  29767.                                    [g, "ia32"]
  29768.                                ],
  29769.                                [/windowss(ce|mobile);sppc;/i],
  29770.                                [
  29771.                                    [g, "arm"]
  29772.                                ],
  29773.                                [/((?:ppc|powerpc)(?:64)?)(?:smac|;|))/i],
  29774.                                [
  29775.                                    [g, /ower/, "", T.lowerize]
  29776.                                ],
  29777.                                [/(sun4w)[;)]/i],
  29778.                                [
  29779.                                    [g, "sparc"]
  29780.                                ],
  29781.                                [/((?:avr32|ia64(?=;))|68k(?=))|arm(?:64|(?=vd+;))|(?=atmels)avr|(?:irix|mips|sparc)(?:64)?(?=;)|pa-risc)/i],
  29782.                                [
  29783.                                    [g, T.lowerize]
  29784.                                ],
  29785.                            ],
  29786.                            device: [
  29787.                                [/((ipad|playbook);[ws);-]+(rim|apple)/i],
  29788.                                [d, m, [p, b]],
  29789.                                [/applecoremedia/[w.]+ ((ipad)/],
  29790.                                [d, [m, "Apple"],
  29791.                                    [p, b]
  29792.                                ],
  29793.                                [/(apples{0,1}tv)/i],
  29794.                                [
  29795.                                    [d, "Apple TV"],
  29796.                                    [m, "Apple"],
  29797.                                ],
  29798.                                [/(archos)s(gamepad2?)/i, /(hp).+(touchpad)/i, /(kindle)/([w.]+)/i, /s(nook)[ws]+build/(w+)/i, /(dell)s(strea[kprsd]*[dko])/i],
  29799.                                [m, d, [p, b]],
  29800.                                [/(kf[A-z]+)sbuild/[w.]+.*silk//i],
  29801.                                [d, [m, "Amazon"],
  29802.                                    [p, b]
  29803.                                ],
  29804.                                [/(sd|kf)[0349hijorstuw]+sbuild/[w.]+.*silk//i],
  29805.                                [
  29806.                                    [d, S.str, E.device.amazon.model],
  29807.                                    [m, "Amazon"],
  29808.                                    [p, _],
  29809.                                ],
  29810.                                [/((ip[honed|sw*]+);.+(apple)/i],
  29811.                                [d, m, [p, _]],
  29812.                                [/((ip[honed|sw*]+);/i],
  29813.                                [d, [m, "Apple"],
  29814.                                    [p, _]
  29815.                                ],
  29816.                                [/(blackberry)[s-]?(w+)/i, /(blackberry|benq|palm(?=-)|sonyericsson|acer|asus|dell|huawei|meizu|motorola|polytron)[s_-]?([w-]+)*/i, /(hp)s([ws]+w)/i, /(asus)-?(w+)/i],
  29817.                                [m, d, [p, _]],
  29818.                                [/(bb10;s(w+)/i],
  29819.                                [d, [m, "BlackBerry"],
  29820.                                    [p, _]
  29821.                                ],
  29822.                                [/android.+(transfo[primes]{4,10}sw+|eeepc|slidersw+|nexus 7)/i],
  29823.                                [d, [m, "Asus"],
  29824.                                    [p, b]
  29825.                                ],
  29826.                                [/(sony)s(tablets[ps])sbuild//i, /(sony)?(?:sgp.+)sbuild//i],
  29827.                                [
  29828.                                    [m, "Sony"],
  29829.                                    [d, "Xperia Tablet"],
  29830.                                    [p, b],
  29831.                                ],
  29832.                                [/(?:sony)?(?:(?:(?:c|d)d{4})|(?:so[-l].+))sbuild//i],
  29833.                                [
  29834.                                    [m, "Sony"],
  29835.                                    [d, "Xperia Phone"],
  29836.                                    [p, _],
  29837.                                ],
  29838.                                [/s(ouya)s/i, /(nintendo)s([wids3u]+)/i],
  29839.                                [m, d, [p, y]],
  29840.                                [/android.+;s(shield)sbuild/i],
  29841.                                [d, [m, "Nvidia"],
  29842.                                    [p, y]
  29843.                                ],
  29844.                                [/(playstations[3portablevi]+)/i],
  29845.                                [d, [m, "Sony"],
  29846.                                    [p, y]
  29847.                                ],
  29848.                                [/(sprints(w+))/i],
  29849.                                [
  29850.                                    [m, S.str, E.device.sprint.vendor],
  29851.                                    [d, S.str, E.device.sprint.model],
  29852.                                    [p, _],
  29853.                                ],
  29854.                                [/(lenovo)s?(S(?:5000|6000)+(?:[-][w+]))/i],
  29855.                                [m, d, [p, b]],
  29856.                                [/(htc)[;_s-]+([ws]+(?=))|w+)*/i, /(zte)-(w+)*/i, /(alcatel|geeksphone|huawei|lenovo|nexian|panasonic|(?=;s)sony)[_s-]?([w-]+)*/i],
  29857.                                [m, [d, /_/g, " "],
  29858.                                    [p, _]
  29859.                                ],
  29860.                                [/(nexuss9)/i],
  29861.                                [d, [m, "HTC"],
  29862.                                    [p, b]
  29863.                                ],
  29864.                                [/[s(;](xbox(?:sone)?)[s);]/i],
  29865.                                [d, [m, "Microsoft"],
  29866.                                    [p, y]
  29867.                                ],
  29868.                                [/(kin.[onetw]{3})/i],
  29869.                                [
  29870.                                    [d, /./g, " "],
  29871.                                    [m, "Microsoft"],
  29872.                                    [p, _],
  29873.                                ],
  29874.                                [/s(milestone|droid(?:[2-4x]|s(?:bionic|x2|pro|razr))?(:?s4g)?)[ws]+build//i, /mot[s-]?(w+)*/i, /(XTd{3,4}) build//i],
  29875.                                [d, [m, "Motorola"],
  29876.                                    [p, _]
  29877.                                ],
  29878.                                [/android.+s(mz60d|xoom[s2]{0,2})sbuild//i],
  29879.                                [d, [m, "Motorola"],
  29880.                                    [p, b]
  29881.                                ],
  29882.                                [/android.+((sch-i[89]0d|shw-m380s|gt-pd{4}|gt-n8000|sgh-t8[56]9|nexus 10))/i, /((SM-Tw+))/i],
  29883.                                [
  29884.                                    [m, "Samsung"], d, [p, b]
  29885.                                ],
  29886.                                [/((s[cgp]h-w+|gt-w+|galaxysnexus|sm-n900))/i, /(sam[sung]*)[s-]*(w+-?[w-]*)*/i, /sec-((sghw+))/i],
  29887.                                [
  29888.                                    [m, "Samsung"], d, [p, _]
  29889.                                ],
  29890.                                [/(samsung);smarttv/i],
  29891.                                [m, d, [p, x]],
  29892.                                [/(dtv[);].+(aquos)/i],
  29893.                                [d, [m, "Sharp"],
  29894.                                    [p, x]
  29895.                                ],
  29896.                                [/sie-(w+)*/i],
  29897.                                [d, [m, "Siemens"],
  29898.                                    [p, _]
  29899.                                ],
  29900.                                [/(maemo|nokia).*(n900|lumiasd+)/i, /(nokia)[s_-]?([w-]+)*/i],
  29901.                                [
  29902.                                    [m, "Nokia"], d, [p, _]
  29903.                                ],
  29904.                                [/androids3.[sw;-]{10}(ad{3})/i],
  29905.                                [d, [m, "Acer"],
  29906.                                    [p, b]
  29907.                                ],
  29908.                                [/androids3.[sw;-]{10}(lg?)-([06cv9]{3,4})/i],
  29909.                                [
  29910.                                    [m, "LG"], d, [p, b]
  29911.                                ],
  29912.                                [/(lg) netcast.tv/i],
  29913.                                [m, d, [p, x]],
  29914.                                [/(nexuss[45])/i, /lg[e;s/-]+(w+)*/i],
  29915.                                [d, [m, "LG"],
  29916.                                    [p, _]
  29917.                                ],
  29918.                                [/android.+(ideatab[a-z0-9-s]+)/i],
  29919.                                [d, [m, "Lenovo"],
  29920.                                    [p, b]
  29921.                                ],
  29922.                                [/linux;.+((jolla));/i],
  29923.                                [m, d, [p, _]],
  29924.                                [/((pebble))app/[d.]+s/i],
  29925.                                [m, d, [p, w]],
  29926.                                [/android.+;s(glass)sd/i],
  29927.                                [d, [m, "Google"],
  29928.                                    [p, w]
  29929.                                ],
  29930.                                [/android.+(w+)s+build/hm1/i, /android.+(hm[s-_]*note?[s_]*(?:dw)?)s+build/i, /android.+(mi[s-_]*(?:one|one[s_]plus)?[s_]*(?:dw)?)s+build/i],
  29931.                                [
  29932.                                    [d, /_/g, " "],
  29933.                                    [m, "Xiaomi"],
  29934.                                    [p, _],
  29935.                                ],
  29936.                                [/(mobile|tablet);.+rv:.+gecko//i],
  29937.                                [
  29938.                                    [p, T.lowerize], m, d
  29939.                                ],
  29940.                            ],
  29941.                            engine: [
  29942.                                [/windows.+sedge/([w.]+)/i],
  29943.                                [v, [f, "EdgeHTML"]],
  29944.                                [/(presto)/([w.]+)/i, /(webkit|trident|netfront|netsurf|amaya|lynx|w3m)/([w.]+)/i, /(khtml|tasman|links)[/s](?([w.]+)/i, /(icab)[/s]([23].[d.]+)/i],
  29945.                                [f, v],
  29946.                                [/rv:([w.]+).*(gecko)/i],
  29947.                                [v, f],
  29948.                            ],
  29949.                            os: [
  29950.                                [/microsofts(windows)s(vista|xp)/i],
  29951.                                [f, v],
  29952.                                [/(windows)snts6.2;s(arm)/i, /(windowssphone(?:sos)*|windowssmobile|windows)[s/]?([ntced.s]+w)/i],
  29953.                                [f, [v, S.str, E.os.windows.version]],
  29954.                                [/(win(?=3|9|n)|wins9xs)([ntd.]+)/i],
  29955.                                [
  29956.                                    [f, "Windows"],
  29957.                                    [v, S.str, E.os.windows.version],
  29958.                                ],
  29959.                                [/((bb)(10);/i],
  29960.                                [
  29961.                                    [f, "BlackBerry"], v
  29962.                                ],
  29963.                                [/(blackberry)w*/?([w.]+)*/i, /(tizen)[/s]([w.]+)/i, /(android|webos|palmsos|qnx|bada|rimstabletsos|meego|contiki)[/s-]?([w.]+)*/i, /linux;.+(sailfish);/i],
  29964.                                [f, v],
  29965.                                [/(symbians?os|symbos|s60(?=;))[/s-]?([w.]+)*/i],
  29966.                                [
  29967.                                    [f, "Symbian"], v
  29968.                                ],
  29969.                                [/((series40);/i],
  29970.                                [f],
  29971.                                [/mozilla.+(mobile;.+gecko.+firefox/i],
  29972.                                [
  29973.                                    [f, "Firefox OS"], v
  29974.                                ],
  29975.                                [
  29976.                                    /(nintendo|playstation)s([wids3portablevu]+)/i,
  29977.                                    /(mint)[/s(]?(w+)*/i,
  29978.                                    /(mageia|vectorlinux)[;s]/i,
  29979.                                    /(joli|[kxln]?ubuntu|debian|[open]*suse|gentoo|arch|slackware|fedora|mandriva|centos|pclinuxos|redhat|zenwalk|linpus)[/s-]?([w.-]+)*/i,
  29980.                                    /(hurd|linux)s?([w.]+)*/i,
  29981.                                    /(gnu)s?([w.]+)*/i,
  29982.                                ],
  29983.                                [f, v],
  29984.                                [/(cros)s[w]+s([w.]+w)/i],
  29985.                                [
  29986.                                    [f, "Chromium OS"], v
  29987.                                ],
  29988.                                [/(sunos)s?([w.]+d)*/i],
  29989.                                [
  29990.                                    [f, "Solaris"], v
  29991.                                ],
  29992.                                [/s([frentopc-]{0,4}bsd|dragonfly)s?([w.]+)*/i],
  29993.                                [f, v],
  29994.                                [/(ip[honead]+)(?:.*oss*([w]+)*slikesmac|;sopera)/i],
  29995.                                [
  29996.                                    [f, "iOS"],
  29997.                                    [v, /_/g, "."],
  29998.                                ],
  29999.                                [/(macsossx)s?([ws.]+w)*/i, /(macintosh|mac(?=_powerpc)s)/i],
  30000.                                [
  30001.                                    [f, "Mac OS"],
  30002.                                    [v, /_/g, "."],
  30003.                                ],
  30004.                                [/((?:open)?solaris)[/s-]?([w.]+)*/i, /(haiku)s(w+)/i, /(aix)s((d)(?=.|)|s)[w.]*)*/i, /(plans9|minix|beos|os/2|amigaos|morphos|riscsos|openvms)/i, /(unix)s?([w.]+)*/i],
  30005.                                [f, v],
  30006.                            ],
  30007.                        },
  30008.                        C = function (t, i) {
  30009.                            if (!(this instanceof C)) return new C(t, i).getResult();
  30010.                            var n = t || (e && e.navigator && e.navigator.userAgent ? e.navigator.userAgent : o),
  30011.                                r = i ? T.extend(A, i) : A;
  30012.                            return (
  30013.                                (this.getBrowser = function () {
  30014.                                    var e = S.rgx.apply(this, r.browser);
  30015.                                    return (e.major = T.major(e.version)), e;
  30016.                                }),
  30017.                                (this.getCPU = function () {
  30018.                                    return S.rgx.apply(this, r.cpu);
  30019.                                }),
  30020.                                (this.getDevice = function () {
  30021.                                    return S.rgx.apply(this, r.device);
  30022.                                }),
  30023.                                (this.getEngine = function () {
  30024.                                    return S.rgx.apply(this, r.engine);
  30025.                                }),
  30026.                                (this.getOS = function () {
  30027.                                    return S.rgx.apply(this, r.os);
  30028.                                }),
  30029.                                (this.getResult = function () {
  30030.                                    return {
  30031.                                        ua: this.getUA(),
  30032.                                        browser: this.getBrowser(),
  30033.                                        engine: this.getEngine(),
  30034.                                        os: this.getOS(),
  30035.                                        device: this.getDevice(),
  30036.                                        cpu: this.getCPU()
  30037.                                    };
  30038.                                }),
  30039.                                (this.getUA = function () {
  30040.                                    return n;
  30041.                                }),
  30042.                                (this.setUA = function (e) {
  30043.                                    return (n = e), this;
  30044.                                }),
  30045.                                this.setUA(n),
  30046.                                this
  30047.                            );
  30048.                        };
  30049.                    (C.VERSION = r),
  30050.                    (C.BROWSER = {
  30051.                        NAME: f,
  30052.                        MAJOR: h,
  30053.                        VERSION: v
  30054.                    }),
  30055.                    (C.CPU = {
  30056.                        ARCHITECTURE: g
  30057.                    }),
  30058.                    (C.DEVICE = {
  30059.                        MODEL: d,
  30060.                        VENDOR: m,
  30061.                        TYPE: p,
  30062.                        CONSOLE: y,
  30063.                        MOBILE: _,
  30064.                        SMARTTV: x,
  30065.                        TABLET: b,
  30066.                        WEARABLE: w,
  30067.                        EMBEDDED: M
  30068.                    }),
  30069.                    (C.ENGINE = {
  30070.                        NAME: f,
  30071.                        VERSION: v
  30072.                    }),
  30073.                    (C.OS = {
  30074.                        NAME: f,
  30075.                        VERSION: v
  30076.                    }),
  30077.                    typeof i !== l ?
  30078.                        (typeof t !== l && t.exports && (i = t.exports = C), (i.UAParser = C)) :
  30079.                        typeof define === s && define.amd ?
  30080.                        define(function () {
  30081.                            return C;
  30082.                        }) :
  30083.                        (e.UAParser = C);
  30084.                    var P = e.jQuery || e.Zepto;
  30085.                    if (typeof P !== l) {
  30086.                        var L = new C();
  30087.                        (P.ua = L.getResult()),
  30088.                        (P.ua.get = function () {
  30089.                            return L.getUA();
  30090.                        }),
  30091.                        (P.ua.set = function (e) {
  30092.                            L.setUA(e);
  30093.                            var t = L.getResult();
  30094.                            for (var i in t) P.ua[i] = t[i];
  30095.                        });
  30096.                    }
  30097.                })("object" == typeof window ? window : this);
  30098.            },
  30099.            {},
  30100.        ],
  30101.        218: [
  30102.            function (e, t, i) {
  30103.                function n(e, t, i) {
  30104.                    o(e, u, t, i), "DOMMouseScroll" == u && o(e, "MozMousePixelScroll", t, i);
  30105.                }
  30106.  
  30107.                function r(e, t, i) {
  30108.                    a(e, u, t, i), "DOMMouseScroll" == u && a(e, "MozMousePixelScroll", t, i);
  30109.                }
  30110.  
  30111.                function o(e, t, i, n) {
  30112.                    e[l](
  30113.                        h + t,
  30114.                        "wheel" == u ?
  30115.                        i :
  30116.                        function (e) {
  30117.                            !e && (e = window.event);
  30118.                            var t = {
  30119.                                originalEvent: e,
  30120.                                target: e.target || e.srcElement,
  30121.                                type: "wheel",
  30122.                                deltaMode: "MozMousePixelScroll" == e.type ? 0 : 1,
  30123.                                deltaX: 0,
  30124.                                delatZ: 0,
  30125.                                preventDefault: function () {
  30126.                                    e.preventDefault ? e.preventDefault() : (e.returnValue = !1);
  30127.                                },
  30128.                                stopPropagation: function () {
  30129.                                    e.stopPropagation && e.stopPropagation();
  30130.                                },
  30131.                                stopImmediatePropagation: function () {
  30132.                                    e.stopImmediatePropagation && e.stopImmediatePropagation();
  30133.                                },
  30134.                            };
  30135.                            return "mousewheel" == u ? ((t.deltaY = (-1 / 40) * e.wheelDelta), e.wheelDeltaX && (t.deltaX = (-1 / 40) * e.wheelDeltaX)) : (t.deltaY = e.detail), i(t);
  30136.                        },
  30137.                        n || !1
  30138.                    );
  30139.                }
  30140.  
  30141.                function a(e, t, i, n) {
  30142.                    e[c](h + t, i, n || !1);
  30143.                }
  30144.  
  30145.                function s(e, t) {
  30146.                    e && e.addEventListener ? ((l = "addEventListener"), (c = "removeEventListener")) : ((l = "attachEvent"), (c = "detachEvent"), (h = "on")),
  30147.                        (u = t ? ("onwheel" in t.createElement("div") ? "wheel" : void 0 !== t.onmousewheel ? "mousewheel" : "DOMMouseScroll") : "wheel");
  30148.                }
  30149.                (t.exports = n), (t.exports.addWheelListener = n), (t.exports.removeWheelListener = r);
  30150.                var l,
  30151.                    c,
  30152.                    u,
  30153.                    h = "";
  30154.                s("undefined" != typeof window && window, "undefined" != typeof document && document);
  30155.            },
  30156.            {},
  30157.        ],
  30158.        219: [
  30159.            function (e, t, i) {
  30160.                t.exports = {
  30161.                    imagepack: [{
  30162.                            name: "arkade"
  30163.                        },
  30164.                        {
  30165.                            name: "arkadesd"
  30166.                        },
  30167.                        {
  30168.                            name: "duracell"
  30169.                        },
  30170.                        {
  30171.                            name: "duracellsd"
  30172.                        },
  30173.                        {
  30174.                            name: "magician"
  30175.                        },
  30176.                        {
  30177.                            name: "magiciansd"
  30178.                        },
  30179.                        {
  30180.                            name: "olivari"
  30181.                        },
  30182.                        {
  30183.                            name: "olivarisd"
  30184.                        },
  30185.                        {
  30186.                            name: "adidas"
  30187.                        },
  30188.                        {
  30189.                            name: "adidassd"
  30190.                        },
  30191.                        {
  30192.                            name: "5gum"
  30193.                        },
  30194.                        {
  30195.                            name: "5gumsd"
  30196.                        },
  30197.                        {
  30198.                            name: "snmn"
  30199.                        },
  30200.                        {
  30201.                            name: "snmnsd"
  30202.                        },
  30203.                    ],
  30204.                    projects: [{
  30205.                            name: "arkade",
  30206.                            title: "Arkade <br/> London",
  30207.                            infotile: "Arkade London",
  30208.                            subtitle: "Audio Reactive Art",
  30209.                            tags: "Design, Art Direction / JUL 2016",
  30210.                            description: "Arkade London is a pure experimental real time audio-reactive experiment working with Soundcloud’s API, WebGL and the WebAudio API. It gives the power to the user and lets them interact, using their keyboard to trigger generative real time graphics and visuals on top of the music they love. It’s been designed so that it can be projected on big walls and give easy access to DJs who need graphic visuals for their shows.<br/><br/><a target='_blank' href='http://arkade.london/'>arkade.london</a>",
  30211.                             color: "0x0d0d0d",
  30212.                             text: "rgb(145, 145, 145)",
  30213.                         },
  30214.                         {
  30215.                             name: "duracell",
  30216.                             title: "Duracell",
  30217.                             infotile: "Duracell",
  30218.                             subtitle: "Corporate Website",
  30219.                             tags: "UI Designer / AUG 2014 / UNIT9",
  30220.                             description: "UNIT9 worked closely with Anomaly to revamp Duracell’s existing website and create a new one with responsive design and smooth user experience on any kind of device, be it mobile, tablet or desktop. <br/><br/> We transformed a static website into one that lives and breathes innovation, reflecting the spirit of the brand. We wanted to draw attention to the premium rank of Duracell batteries, so we focused on creating a site that was simple and elegant.",
  30221.                             color: "0xcb8955",
  30222.                             text: "rgb(255, 207, 170)",
  30223.                         },
  30224.                         {
  30225.                             name: "magician",
  30226.                             title: "The <br/> Magicians",
  30227.                             infotile: "The Magicians",
  30228.                             subtitle: "Welcome to brakebills university",
  30229.                             tags: "Designer / JAN 2014 / UNIT9",
  30230.                             description: "Welcome to Brakebills is  an interactive second screen experience showcasing the new SyFy series ‘The Magicians’. The series is based on a trilogy by Lev Grossman and follows the adventures of a group of young magicians and their journey at Brakebills University for Magical Pedagogy. <br/><br/> The website aims to provide fans with a deeper understanding of what the characters and magic universe of Brakebills is like, unlocking special cult content every time an episode airs.",
  30231.                             color: "0x253044",
  30232.                             text: "rgb(73, 83, 100)",
  30233.                         },
  30234.                         {
  30235.                             name: "olivari",
  30236.                             title: "Olivari",
  30237.                             infotile: "Olivari",
  30238.                             subtitle: "Audio Cookbook",
  30239.                             tags: "Art Director / AUG 2014 / UNIT9",
  30240.                             description: "What do you do when you’re cooking with the aid of a cooking app?<br/><br/> Interaction with the recipe requires touch, which can be problematic if your fingers are covered in olive oil, egg yolk, crushed tomatoes, raw chicken, butter, flour, or any other delicious ingredient that could cause significant harm to your mobile device.<br/><br/>The solution came when Twofifteenmccann partnered with UNIT9  to build an audio-enabled cooking app, controlled by the user’s voice commands. Interaction is intuitive, fluid, and hands-free. Instead of swiping the screen to move to the next step, simply speak aloud to hear what’s next.",
  30241.                             color: "0x547c87",
  30242.                             text: "rgb(159, 178, 184)",
  30243.                         },
  30244.                         {
  30245.                             name: "adidas",
  30246.                             title: "Adidas",
  30247.                             infotile: "Adidas",
  30248.                             subtitle: "All Or Nothing",
  30249.                             tags: "UI Designer / AUG 2014 / UNIT9",
  30250.                             description: "All Or Nothing is an interactive scavenger hunt created to extend the hype beyond the 2014 FIFA World Cup. Powered by Google for Adidas, the virtual quest is set in Brazil and players participate by using StreetView to find clues scattered around the globe. </br> </br>  Players are tested with football trivia and win the next clue in the quest, getting one step closer to the next checkpoint, if they answer correctly. </br> </br>  The project was fully playable on mobile, desktop and tablet. The experience had more than 250,000 unique players. ",
  30251.                             color: "0X21202a",
  30252.                             text: "rgb(65, 62, 94)",
  30253.                         },
  30254.                         {
  30255.                             name: "5gum",
  30256.                             title: "5Gum",
  30257.                             infotile: "5Gum",
  30258.                             subtitle: "5gum experience",
  30259.                             tags: "UI Designer / AUG 2014 / UNIT9",
  30260.                             description: "Experience 5Gum is a multi-sensory virtual reality installation that lets you fly through virtual worlds and shoot thunderbolts from your fingertips.<br/><br/>The experience combines the Oculus Rift, the Kinect, 3D graphics, custom 7.1 sound design, two different forms of scented air, a harness, and a shipping container to create a sensory overload that culminates in letting users experience the sensation of flight.",
  30261.                             color: "0x081116",
  30262.                             text: "rgb(115, 128, 135)",
  30263.                         },
  30264.                         {
  30265.                             name: "snmn",
  30266.                             title: "Snmn",
  30267.                             infotile: "Snmn",
  30268.                             subtitle: "Personal space",
  30269.                             tags: "Blog / AUG 2015",
  30270.                             description: "SNMN is a personal space. This blog is the gap between two projects, a place where I can explore my ideas and try other graphic technics.<br/><br/><a target='_blank' href='http://snmnlab.tumblr.com/'>snmnlab.tumblr.com</a>",
  30271.                             color: "0x1d1d1d",
  30272.                             text: "rgb(96, 96, 96)",
  30273.                         },
  30274.                     ],
  30275.                     wording: {
  30276.                         about: {
  30277.                             title1: "Hello,",
  30278.                             title2: "Is it me you're looking for?",
  30279.                             description: "I’m a London based French Digital Designer currently working at UNIT9. </br> </br> I've worked with Audi, Google, Montblanc, Adidas... </br> </br> New experiences and challenges are my thing. </br> </br> If you have any cool projects or opportunities, get in touch!",
  30280.                             recognition: "Recognition",
  30281.                             recognitions: ["X11 FWA", "X4 AWWWARDS", "X1 WEBBY AWARD", "X1 ADOBE THE CUTTING EDGE"],
  30282.                             experience: "Experiences",
  30283.                             experiences: [
  30284.                                 "UNIT9 London / Digital Designer / JAN 2014",
  30285.                                 "FRED & FARID Paris / AD Junior / MAR 2013 - NOV 2013",
  30286.                                 "EDDI & SON Paris / Designer / OCT 2012 - MAR 2013",
  30287.                                 "S.Y.N Paris / Designer / APR 2012 - OCT 2012",
  30288.                             ],
  30289.                             links: [{
  30290.                                     name: "twitter",
  30291.                                     url: "https://twitter.com/steven_mengin"
  30292.                                 },
  30293.                                 {
  30294.                                     name: "behance",
  30295.                                     url: "https://www.behance.net/steven_mengin"
  30296.                                 },
  30297.                                 {
  30298.                                     name: "linkedin",
  30299.                                     url: "https://uk.linkedin.com/in/steven-mengin-58270352"
  30300.                                 },
  30301.                                 {
  30302.                                     name: "pinterest",
  30303.                                     url: "https://pinterest.com/stevenmengin/"
  30304.                                 },
  30305.                                 {
  30306.                                     name: "instagram",
  30307.                                     url: "https://www.instagram.com/stevenmengin/"
  30308.                                 },
  30309.                             ],
  30310.                         },
  30311.                         nav: {
  30312.                             about: "About",
  30313.                             mail: "[email protected]"
  30314.                         },
  30315.                     },
  30316.                 };
  30317.             },
  30318.             {},
  30319.         ],
  30320.         220: [
  30321.             function (e, t, i) {
  30322.                 "use strict";
  30323.  
  30324.                 function n(e) {
  30325.                     return e && e.__esModule ? e : {
  30326.                         default: e
  30327.                     };
  30328.                 }
  30329.  
  30330.                 function r(e, t) {
  30331.                     if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
  30332.                 }
  30333.                 Object.defineProperty(i, "__esModule", {
  30334.                     value: !0
  30335.                 });
  30336.                 var o = (function () {
  30337.                         function e(e, t) {
  30338.                             for (var i = 0; i < t.length; i++) {
  30339.                                 var n = t[i];
  30340.                                 (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n);
  30341.                             }
  30342.                         }
  30343.                         return function (t, i, n) {
  30344.                             return i && e(t.prototype, i), n && e(t, n), t;
  30345.                         };
  30346.                     })(),
  30347.                     a = e("gsap"),
  30348.                     s = n(a),
  30349.                     l = e("./config.js"),
  30350.                     c = n(l),
  30351.                     u = e("./utils/Mediator.js"),
  30352.                     h = n(u),
  30353.                     d = e("./controllers/slider"),
  30354.                     f = n(d),
  30355.                     p = e("./modules/world3D"),
  30356.                     m = n(p),
  30357.                     v = e("./views/homeslider"),
  30358.                     g = n(v),
  30359.                     y = e("./views/about"),
  30360.                     _ = n(y),
  30361.                     b = e("./views/nav"),
  30362.                     x = n(b),
  30363.                     w = e("./views/grabber"),
  30364.                     M = n(w),
  30365.                     T = c["default"].instance,
  30366.                     S = h["default"].instance.emitter,
  30367.                     E = "",
  30368.                     A = (function () {
  30369.                         function e(t) {
  30370.                             r(this, e), (E = t), this.loadJSON(this.start.bind(this));
  30371.                         }
  30372.                         return (
  30373.                             o(e, [{
  30374.                                     key: "loadJSON",
  30375.                                     value: function (e) {
  30376.                                         var t = window.location.pathname,
  30377.                                             i = t.substring(0, t.lastIndexOf("/")),
  30378.                                             n = new XMLHttpRequest();
  30379.                                         n.overrideMimeType("application/json"),
  30380.                                             n.open("GET", window.location.origin + i + "/media/json/data.json", !0),
  30381.                                             (n.onreadystatechange = function () {
  30382.                                                 4 == n.readyState && "200" == n.status && e(n.responseText);
  30383.                                             }),
  30384.                                             n.send(null);
  30385.                                     },
  30386.                                 },
  30387.                                 {
  30388.                                     key: "start",
  30389.                                     value: function (e) {
  30390.                                         (E.datajson = JSON.parse(e)),
  30391.                                         T.setOptions(E),
  30392.                                             T.isCapable() ?
  30393.                                             ("desktop" != T.device && (T.isPosteffected = !1), this.initVariables(), this.addEvents(), this.initModules()) :
  30394.                                             ((document.querySelector("#orientation-fallback").style.display = "block"), (document.querySelector(".loader").style.display = "none")),
  30395.                                             h["default"].instance.initDevice(T.device);
  30396.                                     },
  30397.                                 },
  30398.                                 {
  30399.                                     key: "initVariables",
  30400.                                     value: function () {
  30401.                                         (this.name = document.querySelector("#name")),
  30402.                                         (this.subname = document.querySelector("#namesub")),
  30403.                                         (this.topname = document.querySelector("#topname")),
  30404.                                         (this.arrowDownTrail = document.querySelector("#arrowdown-trail")),
  30405.                                         (this.arrowCaps = document.querySelector(".arrowdown-caps-one")),
  30406.                                         (this.arrowCaps2 = document.querySelector(".arrowdown-caps-two")),
  30407.                                         (this.timelinetile = new TimelineMax({
  30408.                                             paused: !0
  30409.                                         })),
  30410.                                         s["default"].set([this.subname, this.topname], {
  30411.                                                 y: -25
  30412.                                             }),
  30413.                                             s["default"].set(this.arrowDownTrail, {
  30414.                                                 scaleY: 0
  30415.                                             }),
  30416.                                             s["default"].set([this.arrowCaps, this.arrowCaps2], {
  30417.                                                 scaleY: 0
  30418.                                             }),
  30419.                                             (document.querySelector("#arrowdown").style.display = "block"),
  30420.                                             s["default"].set([this.name], {
  30421.                                                 y: -60
  30422.                                             }),
  30423.                                             (this.topname.style.display = "block"),
  30424.                                             this.timelinetile.add([
  30425.                                                 s["default"].to(this.name, 0.8, {
  30426.                                                     autoAlpha: !0,
  30427.                                                     y: 0
  30428.                                                 }),
  30429.                                                 s["default"].to(this.subname, 0.8, {
  30430.                                                     delay: 0.5,
  30431.                                                     autoAlpha: !0,
  30432.                                                     y: 0
  30433.                                                 }),
  30434.                                                 s["default"].to(this.arrowDownTrail, 0.8, {
  30435.                                                     delay: 0.8,
  30436.                                                     scaleY: 1,
  30437.                                                     ease: T.defaultEase
  30438.                                                 }),
  30439.                                                 s["default"].to(this.arrowCaps, 1, {
  30440.                                                     delay: 1,
  30441.                                                     scaleY: 1,
  30442.                                                     ease: T.defaultEase
  30443.                                                 }),
  30444.                                                 s["default"].to(this.arrowCaps2, 1, {
  30445.                                                     delay: 1,
  30446.                                                     scaleY: 1,
  30447.                                                     ease: T.defaultEase
  30448.                                                 }),
  30449.                                             ]);
  30450.                                     },
  30451.                                 },
  30452.                                 {
  30453.                                     key: "initModules",
  30454.                                     value: function () {
  30455.                                         this.homeSlider = new g["default"]();
  30456.                                     },
  30457.                                 },
  30458.                                 {
  30459.                                     key: "loadWord3D",
  30460.                                     value: function () {
  30461.                                         S.off("coverLoaded", this.loadWord3DEvent),
  30462.                                             s["default"].to(document.querySelector(".loader"), 0.8, {
  30463.                                                 autoAlpha: 0
  30464.                                             }),
  30465.                                             "phone" != T.device && (this.grabber = new M["default"]()),
  30466.                                             (this.slider = new f["default"]()),
  30467.                                             (this.about = new _["default"]()),
  30468.                                             (this.nav = new x["default"]()),
  30469.                                             (this.world3D = new m["default"]()),
  30470.                                             h["default"].instance.onResize();
  30471.                                     },
  30472.                                 },
  30473.                                 {
  30474.                                     key: "showTitle",
  30475.                                     value: function () {
  30476.                                         this.timelinetile.timeScale(1).play(), s["default"].to(this.topname, 0.8, {
  30477.                                             y: -25
  30478.                                         }), (this.coverVisible = !0);
  30479.                                     },
  30480.                                 },
  30481.                                 {
  30482.                                     key: "hideTitle",
  30483.                                     value: function () {
  30484.                                         this.timelinetile.timeScale(2).reverse(), s["default"].to(this.topname, 0.8, {
  30485.                                             y: 0
  30486.                                         }), (this.coverVisible = !1);
  30487.                                     },
  30488.                                 },
  30489.                                 {
  30490.                                     key: "onStage",
  30491.                                     value: function (e) {
  30492.                                         0 == e.actual ? this.hideTitle() : -1 == e.actual && s["default"].delayedCall(1, this.showTitle.bind(this));
  30493.                                     },
  30494.                                 },
  30495.                                 {
  30496.                                     key: "onAboutHide",
  30497.                                     value: function () {
  30498.                                         this.coverVisible && this.timelinetile.timeScale(1).play();
  30499.                                     },
  30500.                                 },
  30501.                                 {
  30502.                                     key: "onAboutShow",
  30503.                                     value: function () {
  30504.                                         this.coverVisible && this.timelinetile.timeScale(2).reverse();
  30505.                                     },
  30506.                                 },
  30507.                                 {
  30508.                                     key: "addEvents",
  30509.                                     value: function () {
  30510.                                         (this.loadWord3DEvent = this.loadWord3D.bind(this)),
  30511.                                         S.on("coverLoaded", this.loadWord3DEvent),
  30512.                                             S.on("world3D:ready", this.showTitle.bind(this)),
  30513.                                             S.on("stage", this.onStage.bind(this)),
  30514.                                             S.on("show-about", this.onAboutShow.bind(this)),
  30515.                                             S.on("hide-about", this.onAboutHide.bind(this));
  30516.                                     },
  30517.                                 },
  30518.                             ]),
  30519.                             e
  30520.                         );
  30521.                     })();
  30522.                 (i["default"] = A), (t.exports = i["default"]);
  30523.             },
  30524.             {
  30525.                 "./config.js": 221,
  30526.                 "./controllers/slider": 222,
  30527.                 "./modules/world3D": 237,
  30528.                 "./utils/Mediator.js": 240,
  30529.                 "./views/about": 244,
  30530.                 "./views/grabber": 247,
  30531.                 "./views/homeslider": 248,
  30532.                 "./views/nav": 249,
  30533.                 gsap: 209
  30534.             },
  30535.         ],
  30536.         221: [
  30537.             function (e, t, i) {
  30538.                 "use strict";
  30539.  
  30540.                 function n(e) {
  30541.                     return e && e.__esModule ? e : {
  30542.                         default: e
  30543.                     };
  30544.                 }
  30545.  
  30546.                 function r(e, t) {
  30547.                     if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
  30548.                 }
  30549.                 Object.defineProperty(i, "__esModule", {
  30550.                     value: !0
  30551.                 });
  30552.                 var o = (function () {
  30553.                         function e(e, t) {
  30554.                             for (var i = 0; i < t.length; i++) {
  30555.                                 var n = t[i];
  30556.                                 (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n);
  30557.                             }
  30558.                         }
  30559.                         return function (t, i, n) {
  30560.                             return i && e(t.prototype, i), n && e(t, n), t;
  30561.                         };
  30562.                     })(),
  30563.                     a = e("ua-parser-js"),
  30564.                     s = n(a),
  30565.                     l = e("ua-device-type"),
  30566.                     c = n(l),
  30567.                     u = e("../media/json/data.json"),
  30568.                     h = (n(u), Symbol()),
  30569.                     d = Symbol(),
  30570.                     f = new s["default"](),
  30571.                     p = (function () {
  30572.                         function e(t) {
  30573.                             if ((r(this, e), t != d)) throw "Cannot construct config singleton";
  30574.                         }
  30575.                         return (
  30576.                             o(
  30577.                                 e,
  30578.                                 [{
  30579.                                         key: "init",
  30580.                                         value: function (e) {
  30581.                                             (this.DEBUG = e.debug), (this.DEBUG_LOG = e.debugLog), (this.isPosteffected = e.isPosteffected), this.DEBUG_LOG && (window.console.log = function () {}), (this.DEBUG_NOSOUND = e.debugNoSound);
  30582.                                             var t = void 0,
  30583.                                                 i = document.createElement("video");
  30584.                                             (t = i.canPlayType("video/webm") ? "webm" : "mp4"),
  30585.                                             (i = null),
  30586.                                             (this.VIDEO_EXTENSION = "." + t),
  30587.                                             (this.VIDEO_PATH = e.cdn ? e.s3url + t + "/" : e.videoPath + t + "/"),
  30588.                                             (this.IMAGE_PATH = e.imagesPath),
  30589.                                             (this.IMAGEPACK_PATH = e.imagesPackPath),
  30590.                                             (this.PATH = e.path),
  30591.                                             (this.DATAJSON = e.datajson),
  30592.                                             f.setUA(navigator.userAgent),
  30593.                                                 (this.browser = f.getBrowser().name),
  30594.                                                 (this.version = f.getBrowser().version),
  30595.                                                 (this.os = f.getOS()),
  30596.                                                 "IE" == this.browser && "11.0" !== this.version,
  30597.                                                 (this.devicePixelRatio = window.devicePixelRatio),
  30598.                                                 (this.device = c["default"](navigator.userAgent)),
  30599.                                                 document.body.classList.add(this.device),
  30600.                                                 (this.model = f.getDevice()),
  30601.                                                 (this.isCapture = e.isCapture),
  30602.                                                 (this.websocketUrl = e.websocketUrl),
  30603.                                                 (this.defaultEase = new Ease(BezierEasing(1, 0, 0, 1)));
  30604.                                         },
  30605.                                     },
  30606.                                     {
  30607.                                         key: "isCapable",
  30608.                                         value: function () {
  30609.                                             if (
  30610.                                                 ((this.tabletVersion = !0),
  30611.                                                     (this.devicePhone = !0),
  30612.                                                     (this.IEVERSION = !0),
  30613.                                                     "IE" == this.browser && "11.0" !== this.version && (this.IEVERSION = !1),
  30614.                                                     "tablet" == this.device &&
  30615.                                                     ("iPad" == this.model.model && this.os.version.split(".", 1)[0] < 7 && (this.tabletVersion = !1),
  30616.                                                         "Android" == this.os.name && (this.os.version.split(".", 1)[0] <= 4 ? (this.tabletVersion = !1) : (this.tabletVersion = !1))),
  30617.                                                     "phone" == this.device)
  30618.                                             )
  30619.                                                 if ("iPhone" == this.model.model) {
  30620.                                                     this.os.version.split(".", 1)[0] <= 8 && (this.devicePhone = !1);
  30621.                                                     var e = window.innerHeight,
  30622.                                                         t = window.innerWidth;
  30623.                                                     t > e ? screen.width > 600 && (this.devicePhone = !0) : screen.width > 374 && (this.devicePhone = !0);
  30624.                                                 } else "Android" == this.os.name ? this.os.version.split(".", 1)[0] < 5 && (this.devicePhone = !1) : (this.devicePhone = !1);
  30625.                                             status = !1;
  30626.                                             try {
  30627.                                                 var i = document.createElement("canvas");
  30628.                                                 return !!(window.WebGLRenderingContext && (i.getContext("webgl") || i.getContext("experimental-webgl")) && this.IEVERSION && this.devicePhone && this.tabletVersion);
  30629.                                             } catch (n) {
  30630.                                                 return !1;
  30631.                                             }
  30632.                                         },
  30633.                                     },
  30634.                                     {
  30635.                                         key: "get",
  30636.                                         value: function (e) {
  30637.                                             return this[h][e];
  30638.                                         },
  30639.                                     },
  30640.                                     {
  30641.                                         key: "setOptions",
  30642.                                         value: function (e) {
  30643.                                             this.init(e);
  30644.                                         },
  30645.                                     },
  30646.                                 ],
  30647.                                 [{
  30648.                                     key: "instance",
  30649.                                     get: function () {
  30650.                                         return this[h] || (this[h] = new e(d)), this[h];
  30651.                                     },
  30652.                                 }, ]
  30653.                             ),
  30654.                             e
  30655.                         );
  30656.                     })();
  30657.                 (i["default"] = p), (t.exports = i["default"]);
  30658.             },
  30659.             {
  30660.                 "../media/json/data.json": 219,
  30661.                 "ua-device-type": 216,
  30662.                 "ua-parser-js": 217
  30663.             },
  30664.         ],
  30665.         222: [
  30666.             function (e, t, i) {
  30667.                 "use strict";
  30668.  
  30669.                 function n(e) {
  30670.                     return e && e.__esModule ? e : {
  30671.                         default: e
  30672.                     };
  30673.                 }
  30674.  
  30675.                 function r(e, t) {
  30676.                     if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
  30677.                 }
  30678.  
  30679.                 function o(e, t) {
  30680.                     if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
  30681.                     (e.prototype = Object.create(t && t.prototype, {
  30682.                         constructor: {
  30683.                             value: e,
  30684.                             enumerable: !1,
  30685.                             writable: !0,
  30686.                             configurable: !0
  30687.                         }
  30688.                     })), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : (e.__proto__ = t));
  30689.                 }
  30690.                 Object.defineProperty(i, "__esModule", {
  30691.                     value: !0
  30692.                 });
  30693.                 var a = (function () {
  30694.                         function e(e, t) {
  30695.                             for (var i = 0; i < t.length; i++) {
  30696.                                 var n = t[i];
  30697.                                 (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n);
  30698.                             }
  30699.                         }
  30700.                         return function (t, i, n) {
  30701.                             return i && e(t.prototype, i), n && e(t, n), t;
  30702.                         };
  30703.                     })(),
  30704.                     s = function (e, t, i) {
  30705.                         for (var n = !0; n;) {
  30706.                             var r = e,
  30707.                                 o = t,
  30708.                                 a = i;
  30709.                             (s = c = l = void 0), (n = !1), null === r && (r = Function.prototype);
  30710.                             var s = Object.getOwnPropertyDescriptor(r, o);
  30711.                             if (void 0 !== s) {
  30712.                                 if ("value" in s) return s.value;
  30713.                                 var l = s.get;
  30714.                                 return void 0 === l ? void 0 : l.call(a);
  30715.                             }
  30716.                             var c = Object.getPrototypeOf(r);
  30717.                             if (null === c) return void 0;
  30718.                             (e = c), (t = o), (i = a), (n = !0);
  30719.                         }
  30720.                     },
  30721.                     l = e("./../../views/AbstractView.js"),
  30722.                     c = n(l),
  30723.                     u = e("./../../config.js"),
  30724.                     h = n(u),
  30725.                     d = e("./../../utils/Mediator.js"),
  30726.                     f = n(d),
  30727.                     p = h["default"].instance,
  30728.                     m = f["default"].instance.emitter,
  30729.                     v = (function (e) {
  30730.                         function t() {
  30731.                             r(this, t), s(Object.getPrototypeOf(t.prototype), "constructor", this).call(this), this.initVariables(), this.addEvents();
  30732.                         }
  30733.                         return (
  30734.                             o(t, e),
  30735.                             a(t, [{
  30736.                                     key: "initVariables",
  30737.                                     value: function () {
  30738.                                         (this.stageCount = p.DATAJSON.projects.length), (this.actualStageCount = -1), (this.lastStageCount = -1);
  30739.                                     },
  30740.                                 },
  30741.                                 {
  30742.                                     key: "onNonInertialScroll",
  30743.                                     value: function (e) {
  30744.                                         if (((this.lastStageCount = this.actualStageCount), (this.actualStageCount -= e), this.actualStageCount == this.stageCount)) return void(this.actualStageCount = this.lastStageCount);
  30745.                                         if (this.actualStageCount < -1) return void(this.actualStageCount = -1);
  30746.                                         var t = {
  30747.                                             actual: this.actualStageCount,
  30748.                                             last: this.lastStageCount
  30749.                                         };
  30750.                                         m.emit("stage", t);
  30751.                                     },
  30752.                                 },
  30753.                                 {
  30754.                                     key: "setActualProject",
  30755.                                     value: function (e) {
  30756.                                         (this.lastStageCount = this.actualStageCount), (this.actualStageCount = e);
  30757.                                     },
  30758.                                 },
  30759.                                 {
  30760.                                     key: "onGoTop",
  30761.                                     value: function () {
  30762.                                         (this.lastStageCount = this.actualStageCount), (this.actualStageCount = -1);
  30763.                                         var e = {
  30764.                                             actual: this.actualStageCount,
  30765.                                             last: this.lastStageCount
  30766.                                         };
  30767.                                         m.emit("stage", e);
  30768.                                     },
  30769.                                 },
  30770.                                 {
  30771.                                     key: "onClickArrow",
  30772.                                     value: function (e) {
  30773.                                         if (-1 == this.actualStageCount) {
  30774.                                             (this.lastStageCount = this.actualStageCount), (this.actualStageCount = 0);
  30775.                                             var t = {
  30776.                                                 actual: this.actualStageCount,
  30777.                                                 last: this.lastStageCount
  30778.                                             };
  30779.                                             m.emit("stage", t);
  30780.                                         }
  30781.                                     },
  30782.                                 },
  30783.                                 {
  30784.                                     key: "addEvents",
  30785.                                     value: function () {
  30786.                                         this.listenNonInertialScroll(),
  30787.                                             m.on("gotop", this.onGoTop.bind(this)),
  30788.                                             m.on("slide:projectchange", this.setActualProject.bind(this)),
  30789.                                             (this.arrowdownWrapper = document.querySelector("#arrowdown")),
  30790.                                             this.arrowdownWrapper.addEventListener("click", this.onClickArrow.bind(this));
  30791.                                     },
  30792.                                 },
  30793.                             ]),
  30794.                             t
  30795.                         );
  30796.                     })(c["default"]);
  30797.                 (i["default"] = v), (t.exports = i["default"]);
  30798.             },
  30799.             {
  30800.                 "./../../config.js": 221,
  30801.                 "./../../utils/Mediator.js": 240,
  30802.                 "./../../views/AbstractView.js": 243
  30803.             },
  30804.         ],
  30805.         223: [
  30806.             function (e, t, i) {
  30807.                 "use strict";
  30808.  
  30809.                 function n(e) {
  30810.                     return e && e.__esModule ? e : {
  30811.                         default: e
  30812.                     };
  30813.                 }
  30814.                 e("babel-core/polyfill");
  30815.                 var r = e("./config.js"),
  30816.                     o = n(r),
  30817.                     a = e("./App.js"),
  30818.                     s = n(a),
  30819.                     l = e("domready"),
  30820.                     c = n(l);
  30821.                 o["default"].instance;
  30822.                 c["default"](function () {
  30823.                     return new s[
  30824.                         "default"
  30825.                     ]({
  30826.                         debug: !1,
  30827.                         isPosteffected: !1,
  30828.                         cdn: !0,
  30829.                         s3url: "",
  30830.                         websocketUrl: "ws://localhost:8000",
  30831.                         videoPath: "",
  30832.                         imagesPackPath: "media/packed/",
  30833.                         imagesPath: "media/assets/",
  30834.                         debugLog: !1,
  30835.                         debugNoSound: !1,
  30836.                         path: window.location.href.substr(0, location.href.lastIndexOf("/") + 1)
  30837.                     });
  30838.                 });
  30839.             },
  30840.             {
  30841.                 "./App.js": 220,
  30842.                 "./config.js": 221,
  30843.                 "babel-core/polyfill": 187,
  30844.                 domready: 193
  30845.             },
  30846.         ],
  30847.         224: [
  30848.             function (e, t, i) {
  30849.                 "use strict";
  30850.  
  30851.                 function n(e) {
  30852.                     return e && e.__esModule ? e : {
  30853.                         default: e
  30854.                     };
  30855.                 }
  30856.  
  30857.                 function r(e, t) {
  30858.                     if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
  30859.                 }
  30860.                 Object.defineProperty(i, "__esModule", {
  30861.                     value: !0
  30862.                 });
  30863.                 var o = (function () {
  30864.                         function e(e, t) {
  30865.                             for (var i = 0; i < t.length; i++) {
  30866.                                 var n = t[i];
  30867.                                 (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n);
  30868.                             }
  30869.                         }
  30870.                         return function (t, i, n) {
  30871.                             return i && e(t.prototype, i), n && e(t, n), t;
  30872.                         };
  30873.                     })(),
  30874.                     a = e("../../utils/imagepackloader.js"),
  30875.                     s = (n(a), e("./../../config.js")),
  30876.                     l = n(s),
  30877.                     c = e("./../../utils/Mediator.js"),
  30878.                     u = n(c),
  30879.                     h = e("../preloadbinaries"),
  30880.                     d = n(h),
  30881.                     f = (e("dat-gui").GUI, l["default"].instance),
  30882.                     p = u["default"].instance.emitter,
  30883.                     m = (function () {
  30884.                         function e() {
  30885.                             r(this, e), (this.arraytoload = f.DATAJSON.projects), (this.loadIndex = 0), (this.currentName = ""), (this.projectloaded = []), this.load(this.arraytoload[this.loadIndex].name);
  30886.                         }
  30887.                         return (
  30888.                             o(e, [{
  30889.                                     key: "load",
  30890.                                     value: function (e) {
  30891.                                         var t = this;
  30892.                                         setTimeout(function () {
  30893.                                             (t.currentName = e), (t.file = e), "desktop" != f.device && (t.file += "sd"), (t.PreloadBinariesCover = new d["default"](t.currentName, t.file, t.callback.bind(t), t.progressioncallback.bind(t)));
  30894.                                         }, 1500);
  30895.                                     },
  30896.                                 },
  30897.                                 {
  30898.                                     key: "callback",
  30899.                                     value: function (e, t) {
  30900.                                         var i = {};
  30901.                                         (i.name = this.currentName),
  30902.                                         (i.urls = e.urls),
  30903.                                         (this.projectloaded[this.loadIndex] = i),
  30904.                                         p.emit("projectloaded" + this.loadIndex, this.projectloaded[this.loadIndex]),
  30905.                                             this.loadIndex++,
  30906.                                             this.loadIndex < this.arraytoload.length && this.load(this.arraytoload[this.loadIndex].name);
  30907.                                     },
  30908.                                 },
  30909.                                 {
  30910.                                     key: "progressioncallback",
  30911.                                     value: function (e) {
  30912.                                         p.emit("projectloading" + this.loadIndex, e);
  30913.                                     },
  30914.                                 },
  30915.                             ]),
  30916.                             e
  30917.                         );
  30918.                     })();
  30919.                 (i["default"] = m), (t.exports = i["default"]);
  30920.             },
  30921.             {
  30922.                 "../../utils/imagepackloader.js": 242,
  30923.                 "../preloadbinaries": 234,
  30924.                 "./../../config.js": 221,
  30925.                 "./../../utils/Mediator.js": 240,
  30926.                 "dat-gui": 190
  30927.             },
  30928.         ],
  30929.         225: [
  30930.             function (e, t, i) {
  30931.                 "use strict";
  30932.  
  30933.                 function n(e) {
  30934.                     return e && e.__esModule ? e : {
  30935.                         default: e
  30936.                     };
  30937.                 }
  30938.  
  30939.                 function r(e, t) {
  30940.                     if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
  30941.                 }
  30942.  
  30943.                 function o(e, t) {
  30944.                     if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
  30945.                     (e.prototype = Object.create(t && t.prototype, {
  30946.                         constructor: {
  30947.                             value: e,
  30948.                             enumerable: !1,
  30949.                             writable: !0,
  30950.                             configurable: !0
  30951.                         }
  30952.                     })), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : (e.__proto__ = t));
  30953.                 }
  30954.                 Object.defineProperty(i, "__esModule", {
  30955.                     value: !0
  30956.                 });
  30957.                 var a = (function () {
  30958.                         function e(e, t) {
  30959.                             for (var i = 0; i < t.length; i++) {
  30960.                                 var n = t[i];
  30961.                                 (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n);
  30962.                             }
  30963.                         }
  30964.                         return function (t, i, n) {
  30965.                             return i && e(t.prototype, i), n && e(t, n), t;
  30966.                         };
  30967.                     })(),
  30968.                     s = function (e, t, i) {
  30969.                         for (var n = !0; n;) {
  30970.                             var r = e,
  30971.                                 o = t,
  30972.                                 a = i;
  30973.                             (s = c = l = void 0), (n = !1), null === r && (r = Function.prototype);
  30974.                             var s = Object.getOwnPropertyDescriptor(r, o);
  30975.                             if (void 0 !== s) {
  30976.                                 if ("value" in s) return s.value;
  30977.                                 var l = s.get;
  30978.                                 return void 0 === l ? void 0 : l.call(a);
  30979.                             }
  30980.                             var c = Object.getPrototypeOf(r);
  30981.                             if (null === c) return void 0;
  30982.                             (e = c), (t = o), (i = a), (n = !0);
  30983.                         }
  30984.                     },
  30985.                     l = e("three"),
  30986.                     c = n(l),
  30987.                     u = e("./../../utils/Mediator.js"),
  30988.                     h = n(u),
  30989.                     d = (e("three-orbit-controls")(c["default"]), h["default"].instance.emitter),
  30990.                     f = (function (e) {
  30991.                         function t(e, i, n, o) {
  30992.                             r(this, t),
  30993.                                 s(Object.getPrototypeOf(t.prototype), "constructor", this).call(this, e, i, n, o),
  30994.                                 (this.rotationnb = 0),
  30995.                                 this.position.set(0, 0, -200),
  30996.                                 (this.originalXPosition = this.position.x),
  30997.                                 (this.originalYPosition = this.position.y),
  30998.                                 (this.originalZPosition = this.position.z),
  30999.                                 (this.zero = new c["default"].Vector3()),
  31000.                                 this.lookAt(this.zero),
  31001.                                 (this.aspect = window.innerWidth / window.innerHeight),
  31002.                                 this.updateProjectionMatrix(),
  31003.                                 this.addEvents();
  31004.                         }
  31005.                         return (
  31006.                             o(t, e),
  31007.                             a(t, [{
  31008.                                     key: "onResize",
  31009.                                     value: function (e) {
  31010.                                         this.ratio = e.h / e.w;
  31011.                                     },
  31012.                                 },
  31013.                                 {
  31014.                                     key: "onUpdate",
  31015.                                     value: function () {
  31016.                                         this.zero.y = this.position.y;
  31017.                                     },
  31018.                                 },
  31019.                                 {
  31020.                                     key: "onBack",
  31021.                                     value: function () {
  31022.                                         TweenMax.to(this.position, 0.6, {
  31023.                                             z: -850,
  31024.                                             ease: Power4.EaseIn
  31025.                                         });
  31026.                                     },
  31027.                                 },
  31028.                                 {
  31029.                                     key: "onFront",
  31030.                                     value: function () {
  31031.                                         TweenMax.to(this.position, 1.2, {
  31032.                                             z: this.originalZPosition,
  31033.                                             ease: Elastic.easeOut.config(1, 1)
  31034.                                         });
  31035.                                     },
  31036.                                 },
  31037.                                 {
  31038.                                     key: "addEvents",
  31039.                                     value: function () {
  31040.                                         (this.onMouseMoveEvent = this.onMouseMove.bind(this)),
  31041.                                         (this.onResizeEvent = this.onResize.bind(this)),
  31042.                                         d.on("resize", this.onResizeEvent),
  31043.                                             (this.onBackEvent = this.onBack.bind(this)),
  31044.                                             (this.onFrontEvent = this.onFront.bind(this)),
  31045.                                             d.on("mousemove", this.onMouseMoveEvent),
  31046.                                             d.on("camera:back", this.onBackEvent),
  31047.                                             d.on("camera:front", this.onFrontEvent);
  31048.                                     },
  31049.                                 },
  31050.                                 {
  31051.                                     key: "onMouseMove",
  31052.                                     value: function (e) {
  31053.                                         var t = this.position.y == this.originalYPosition ? 4 : 0;
  31054.                                         TweenMax.to(this.position, 1, {
  31055.                                             ease: Expo.EaseOut,
  31056.                                             x: this.originalXPosition + -e.xRatio * t
  31057.                                         });
  31058.                                     },
  31059.                                 },
  31060.                             ]),
  31061.                             t
  31062.                         );
  31063.                     })(c["default"].PerspectiveCamera);
  31064.                 (i["default"] = f), (t.exports = i["default"]);
  31065.             },
  31066.             {
  31067.                 "./../../utils/Mediator.js": 240,
  31068.                 three: 215,
  31069.                 "three-orbit-controls": 214
  31070.             },
  31071.         ],
  31072.         226: [
  31073.             function (e, t, i) {
  31074.                 t.exports = "<ul>nn{{#projectlength}}nn {{#.}}n         n               <li>  </li>n    n       {{/.}}n n{{/projectlength}}nn</ul>nn";
  31075.             },
  31076.             {},
  31077.         ],
  31078.         227: [
  31079.             function (e, t, i) {
  31080.                 t.exports = "<div class='overflow'>nn   <div class='counter-title'>n            {{title}}n      </div>n n</div>";
  31081.             },
  31082.             {},
  31083.         ],
  31084.         228: [
  31085.             function (e, t, i) {
  31086.                 "use strict";
  31087.  
  31088.                 function n(e) {
  31089.                     return e && e.__esModule ? e : {
  31090.                         default: e
  31091.                     };
  31092.                 }
  31093.  
  31094.                 function r(e, t) {
  31095.                     if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
  31096.                 }
  31097.  
  31098.                 function o(e, t) {
  31099.                     if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
  31100.                     (e.prototype = Object.create(t && t.prototype, {
  31101.                         constructor: {
  31102.                             value: e,
  31103.                             enumerable: !1,
  31104.                             writable: !0,
  31105.                             configurable: !0
  31106.                         }
  31107.                     })), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : (e.__proto__ = t));
  31108.                 }
  31109.                 Object.defineProperty(i, "__esModule", {
  31110.                     value: !0
  31111.                 });
  31112.                 var a = (function () {
  31113.                         function e(e, t) {
  31114.                             for (var i = 0; i < t.length; i++) {
  31115.                                 var n = t[i];
  31116.                                 (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n);
  31117.                             }
  31118.                         }
  31119.                         return function (t, i, n) {
  31120.                             return i && e(t.prototype, i), n && e(t, n), t;
  31121.                         };
  31122.                     })(),
  31123.                     s = function (e, t, i) {
  31124.                         for (var n = !0; n;) {
  31125.                             var r = e,
  31126.                                 o = t,
  31127.                                 a = i;
  31128.                             (s = c = l = void 0), (n = !1), null === r && (r = Function.prototype);
  31129.                             var s = Object.getOwnPropertyDescriptor(r, o);
  31130.                             if (void 0 !== s) {
  31131.                                 if ("value" in s) return s.value;
  31132.                                 var l = s.get;
  31133.                                 return void 0 === l ? void 0 : l.call(a);
  31134.                             }
  31135.                             var c = Object.getPrototypeOf(r);
  31136.                             if (null === c) return void 0;
  31137.                             (e = c), (t = o), (i = a), (n = !0);
  31138.                         }
  31139.                     },
  31140.                     l = e("./../../config.js"),
  31141.                     c = n(l),
  31142.                     u = e("./../../utils/Mediator.js"),
  31143.                     h = n(u),
  31144.                     d = e("three"),
  31145.                     f = n(d),
  31146.                     p = e("mustache"),
  31147.                     m = n(p),
  31148.                     v = e("./title.html"),
  31149.                     g = n(v),
  31150.                     y = e("./info.html"),
  31151.                     _ = n(y),
  31152.                     b = e("./infoproject.html"),
  31153.                     x = n(b),
  31154.                     w = e("../materials/covermaterial.js"),
  31155.                     M = n(w),
  31156.                     T = e("./counter.html"),
  31157.                     S = n(T),
  31158.                     E = e("./countertitle.html"),
  31159.                     A = n(E),
  31160.                     C = (e("dat-gui").GUI, c["default"].instance),
  31161.                     P = h["default"].instance.emitter,
  31162.                     L = (function (e) {
  31163.                         function t(e, i, n, o, a) {
  31164.                             r(this, t);
  31165.                             var l = C.coverUrls[o],
  31166.                                 c = new f["default"].TextureLoader(),
  31167.                                 u = c.load(l),
  31168.                                 h = C.DATAJSON.projects[o].color,
  31169.                                 d = new M["default"]({
  31170.                                     map: u,
  31171.                                     size: a,
  31172.                                     infocolor: h
  31173.                                 });
  31174.                             s(Object.getPrototypeOf(t.prototype), "constructor", this).call(this, i, d),
  31175.                                 this.initVariables(o, n, e),
  31176.                                 (this.position.z = this.originalZposition),
  31177.                                 (this.position.y = 1e3 * -(o + 1) + 80),
  31178.                                 (this.rotation.y = Math.PI),
  31179.                                 this.scene.add(this),
  31180.                                 this.createCss3D(),
  31181.                                 this.initTweens(),
  31182.                                 this.addEvents();
  31183.                         }
  31184.                         return (
  31185.                             o(t, e),
  31186.                             a(t, [{
  31187.                                     key: "initVariables",
  31188.                                     value: function (e, t, i) {
  31189.                                         (this.scene = i),
  31190.                                         (this.currentScale = 1),
  31191.                                         (this.scaleRatio = 0.1),
  31192.                                         (this.assetsUrls = null),
  31193.                                         (this.infoOpen = !1),
  31194.                                         (this.tempboundingbox = t),
  31195.                                         (this.nb = e),
  31196.                                         (this.h1pos = 130),
  31197.                                         (this.h2pos = 60),
  31198.                                         (this.options = {
  31199.                                             projectLoading: 0
  31200.                                         }),
  31201.                                         (this.originalZposition = 800),
  31202.                                         (this.countTitleTimelineisOpen = !1),
  31203.                                         (this.positionZRange = 0),
  31204.                                         (this.mainObjectZPosition = 0),
  31205.                                         (this.assetsLoaded = !1),
  31206.                                         (this.isBack = !1),
  31207.                                         (this.textArray = []),
  31208.                                         this.textArray.push(this.material.uniforms.tInput.value),
  31209.                                             (this.currentTexture = 0),
  31210.                                             (this.ease = new Ease(BezierEasing(0.81, 0.19, 0.15, 0.86))),
  31211.                                             (this.playtimelineEvent = this.playTimeline.bind(this)),
  31212.                                             (this.playTimelineInfoEvent = this.playTimelineInfo.bind(this));
  31213.                                     },
  31214.                                 },
  31215.                                 {
  31216.                                     key: "initTweens",
  31217.                                     value: function () {
  31218.                                         TweenMax.set([this.titleh1], {
  31219.                                                 y: -this.h1pos
  31220.                                             }),
  31221.                                             TweenMax.set([this.titleh2], {
  31222.                                                 y: -this.h2pos
  31223.                                             }),
  31224.                                             TweenMax.set([this.trail], {
  31225.                                                 scaleX: 0,
  31226.                                                 transformOrigin: "100% 50%"
  31227.                                             }),
  31228.                                             TweenMax.set([this.textInfo], {
  31229.                                                 x: 50
  31230.                                             }),
  31231.                                             (this.titletimeline = new TimelineMax({
  31232.                                                 paused: !0
  31233.                                             })),
  31234.                                             this.titletimeline.add([(this.currentTitleh1Tween = TweenMax.to(this.titleh1, 0.5, {
  31235.                                                 y: 0,
  31236.                                                 ease: Expo.EaseInOut
  31237.                                             }))]),
  31238.                                             (this.infoTimeline = new TimelineMax({
  31239.                                                 paused: !0
  31240.                                             })),
  31241.                                             this.infoTimeline.add([TweenMax.to(this.trail, 0.8, {
  31242.                                                 scaleX: 1,
  31243.                                                 ease: this.ease
  31244.                                             }), TweenMax.to([this.textInfo], 0.8, {
  31245.                                                 delay: 0.3,
  31246.                                                 x: 0,
  31247.                                                 ease: this.ease
  31248.                                             })]);
  31249.                                     },
  31250.                                 },
  31251.                                 {
  31252.                                     key: "onUpdate",
  31253.                                     value: function () {
  31254.                                         this.material.uniforms.timer.value += 0.016;
  31255.                                     },
  31256.                                 },
  31257.                                 {
  31258.                                     key: "createCss3D",
  31259.                                     value: function () {
  31260.                                         (this.cssObject3D = new f["default"].Object3D()), (this.cssObject3D.position.z = 0), (this.cssObject3D.rotation.y = Math.PI);
  31261.                                         var e = document.createElement("div");
  31262.                                         (e.innerHTML = C.DATAJSON.projects[this.nb].title), (e.className = "project-three-div");
  31263.                                         var t = C.DATAJSON.projects[this.nb].title.split("<br/>"),
  31264.                                             i = {
  31265.                                                 title: t,
  31266.                                                 subtitle: C.DATAJSON.projects[this.nb].subtitle
  31267.                                             },
  31268.                                             n = m["default"].render(g["default"], i);
  31269.                                         e.innerHTML = n;
  31270.                                         var r = new f["default"].CSS3DObject(e);
  31271.                                         (r.position.x = this.tempboundingbox.max.x - 150),
  31272.                                         (r.rotation.y = Math.PI),
  31273.                                         this.cssObject3D.add(r),
  31274.                                             (this.infoui = document.createElement("div")),
  31275.                                             (this.infoui.className = "project-three-info-div info-project"),
  31276.                                             (this.infoui.innerHTML = _["default"]);
  31277.                                         var o = new f["default"].CSS3DObject(this.infoui);
  31278.                                         (o.position.x = Math.round(this.tempboundingbox.min.x + 120)),
  31279.                                         (o.position.y = Math.round(this.tempboundingbox.min.y - 22)),
  31280.                                         (o.rotation.y = Math.PI),
  31281.                                         (o.rotation.z = Math.PI / 2),
  31282.                                         this.cssObject3D.add(o),
  31283.                                             this.add(this.cssObject3D),
  31284.                                             (this.titleh1 = e.querySelectorAll("h1")),
  31285.                                             (this.titleh2 = e.querySelector("h2")),
  31286.                                             (this.trail = this.infoui.querySelector(".trail")),
  31287.                                             (this.textInfo = this.infoui.querySelector(".text-info"));
  31288.                                     },
  31289.                                 },
  31290.                                 {
  31291.                                     key: "onSlideProjectChange",
  31292.                                     value: function (e, t) {
  31293.                                         this.nb == e ? (this.material.uniforms.isAnimated.value = !0) : ((this.material.uniforms.isAnimated.value = !1), this.tweenOriginZPosition());
  31294.                                     },
  31295.                                 },
  31296.                                 {
  31297.                                     key: "tweenOriginZPosition",
  31298.                                     value: function () {
  31299.                                         this.position != this.originalZposition && (TweenMax.killTweensOf(this.position), TweenMax.to(this.position, 1, {
  31300.                                             z: this.originalZposition
  31301.                                         }), TweenMax.to(this.cssObject3D.position, 0.1, {
  31302.                                             z: 0
  31303.                                         }));
  31304.                                     },
  31305.                                 },
  31306.                                 {
  31307.                                     key: "putSlideBack",
  31308.                                     value: function () {
  31309.                                         (this.isBack = !1),
  31310.                                         this.assetsLoaded && 0 == this.currentTexture && this.playInfoTimeline(),
  31311.                                             0 != this.currentTexture &&
  31312.                                             (this.countTitleTimelineisOpen && this.countTitleTimeline.play(), (this.currentTitleh1Tween = TweenMax.to(this.titleh1, 0.5, {
  31313.                                                 y: -this.h1pos,
  31314.                                                 ease: Expo.EaseInOut
  31315.                                             }))),
  31316.                                             this.tweenOriginZPosition();
  31317.                                     },
  31318.                                 },
  31319.                                 {
  31320.                                     key: "putSlideFront",
  31321.                                     value: function () {
  31322.                                         (this.isBack = !0),
  31323.                                         this.assetsLoaded && ((this.currentTitleh1Tween = TweenMax.to(this.titleh1, 0.5, {
  31324.                                                 y: 0,
  31325.                                                 ease: Expo.EaseInOut
  31326.                                             })), this.reverseInfoTimeline()),
  31327.                                             this.infoOpen && this.closeInfo(),
  31328.                                             0 != this.currentTexture && this.countTitleTimelineisOpen && this.countTitleTimeline.reverse();
  31329.                                     },
  31330.                                 },
  31331.                                 {
  31332.                                     key: "assetsLoading",
  31333.                                     value: function (e) {
  31334.                                         var t = this;
  31335.                                         TweenMax.killTweensOf(this.options),
  31336.                                             TweenMax.to(this.options, 1.3, {
  31337.                                                 projectLoading: e,
  31338.                                                 ease: Expo.EaseInOut,
  31339.                                                 onUpdate: function () {
  31340.                                                     t.material.uniforms.preload.value = t.options.projectLoading;
  31341.                                                 },
  31342.                                                 onComplete: function () {
  31343.                                                     1 == t.material.uniforms.preload.value && t.assetloadingcomplete();
  31344.                                                 },
  31345.                                             });
  31346.                                     },
  31347.                                 },
  31348.                                 {
  31349.                                     key: "assetloadingcomplete",
  31350.                                     value: function () {
  31351.                                         this.titletimeline.play(), this.isBack || this.playInfoTimeline(), (this.assetsLoaded = !0);
  31352.                                     },
  31353.                                 },
  31354.                                 {
  31355.                                     key: "playInfoTimeline",
  31356.                                     value: function () {
  31357.                                         TweenMax.killTweensOf(this.infoTimeline),
  31358.                                             this.infoTimeline.pause(),
  31359.                                             this.infoTimeline.delay(0).timeScale(1).play(),
  31360.                                             (this.currentTitleh2Tween = TweenMax.to(this.titleh2, 0.5, {
  31361.                                                 delay: 0.35,
  31362.                                                 y: 0,
  31363.                                                 ease: this.ease
  31364.                                             }));
  31365.                                     },
  31366.                                 },
  31367.                                 {
  31368.                                     key: "reverseInfoTimeline",
  31369.                                     value: function () {
  31370.                                         TweenMax.killTweensOf(this.infoTimeline),
  31371.                                             this.infoTimeline.pause(),
  31372.                                             this.infoTimeline.timeScale(1.3).reverse(),
  31373.                                             (this.currentTitleh2Tween = TweenMax.to(this.titleh2, 0.5, {
  31374.                                                 delay: 0.35,
  31375.                                                 y: -this.h2pos,
  31376.                                                 ease: this.ease
  31377.                                             }));
  31378.                                     },
  31379.                                 },
  31380.                                 {
  31381.                                     key: "assetsLoadedf",
  31382.                                     value: function (e) {
  31383.                                         (this.assetsUrls = e.urls), this.addInfoEvent(), this.prepareTextures();
  31384.                                     },
  31385.                                 },
  31386.                                 {
  31387.                                     key: "prepareTextures",
  31388.                                     value: function () {
  31389.                                         for (var e = 0, t = new f["default"].TextureLoader(); e < this.assetsUrls.length;) {
  31390.                                             var i = t.load(this.assetsUrls[e]);
  31391.                                             (i.minFilter = f["default"].LinearFilter), (i.magFilter = f["default"].LinearFilter), (i.wrapping = f["default"].ClampToEdgeWrapping), this.textArray.push(i), e++;
  31392.                                         }
  31393.                                         this.addInfoImage();
  31394.                                     },
  31395.                                 },
  31396.                                 {
  31397.                                     key: "addInfoImage",
  31398.                                     value: function () {
  31399.                                         (this.infoimage = new Image()),
  31400.                                         (this.infoimage.src = this.assetsUrls[this.assetsUrls.length - 1]),
  31401.                                         (this.infoimage.className = "project-three-div-infoimage"),
  31402.                                         (this.divInfoImage = new f["default"].CSS3DObject(this.infoimage)),
  31403.                                         (this.divInfoImage.rotation.y = Math.PI),
  31404.                                         (this.divInfoImage.position.x = this.tempboundingbox.min.x + 270),
  31405.                                         (this.divInfoImage.position.y = this.tempboundingbox.max.y - 300),
  31406.                                         this.cssObject3D.add(this.divInfoImage),
  31407.                                             (this.projectText = document.createElement("div")),
  31408.                                             (this.projectText.className = "project-info");
  31409.                                         var e = {
  31410.                                             title: C.DATAJSON.projects[this.nb].infotile,
  31411.                                             subtitle: C.DATAJSON.projects[this.nb].subtitle,
  31412.                                             tags: C.DATAJSON.projects[this.nb].tags,
  31413.                                             description: C.DATAJSON.projects[this.nb].description,
  31414.                                         };
  31415.                                         (this.projectText.innerHTML = m["default"].render(x["default"], e)),
  31416.                                         (this.projectTextDiv = new f["default"].CSS3DObject(this.projectText)),
  31417.                                         (this.projectTextDiv.position.x = this.tempboundingbox.max.x - 385),
  31418.                                         (this.projectTextDiv.position.y = this.tempboundingbox.max.y - 50),
  31419.                                         (this.projectTextDiv.rotation.y = Math.PI),
  31420.                                         this.cssObject3D.add(this.projectTextDiv),
  31421.                                             (this.projectTextAnimated = this.projectText.querySelectorAll(".animated")),
  31422.                                             TweenMax.set(this.projectText.querySelectorAll(".project-info-colored"), {
  31423.                                                 color: "'" + C.DATAJSON.projects[this.nb].text + "'"
  31424.                                             }),
  31425.                                             TweenMax.set(this.projectTextAnimated, {
  31426.                                                 autoAlpha: 0,
  31427.                                                 y: 40
  31428.                                             }),
  31429.                                             TweenMax.set(this.infoimage, {
  31430.                                                 autoAlpha: 0
  31431.                                             }),
  31432.                                             (this.timelineInfoProject = new TimelineMax({
  31433.                                                 paused: !0
  31434.                                             }));
  31435.                                         new Ease(BezierEasing(0.215, 0.61, 0.355, 1));
  31436.                                         this.timelineInfoProject.add([
  31437.                                             new TweenMax.staggerTo(this.projectTextAnimated, 0.3, {
  31438.                                                 y: 0,
  31439.                                                 autoAlpha: 1,
  31440.                                                 ease: this.ease
  31441.                                             }, 0.05),
  31442.                                             new TweenMax.to(this.infoimage, 1.2, {
  31443.                                                 autoAlpha: 1,
  31444.                                                 delay: 0.2,
  31445.                                                 ease: this.ease
  31446.                                             }),
  31447.                                             new TweenMax.to(this.divInfoImage.position, 1.2, {
  31448.                                                 y: this.tempboundingbox.max.y - 230,
  31449.                                                 ease: this.ease
  31450.                                             }),
  31451.                                             new TweenMax.to(this.material.uniforms.infocolormix, 1.2, {
  31452.                                                 value: 1,
  31453.                                                 ease: this.ease
  31454.                                             }),
  31455.                                         ]);
  31456.                                         var t = this.assetsUrls.slice(0);
  31457.                                         t.pop();
  31458.                                         var i = {
  31459.                                             projectlength: t
  31460.                                         };
  31461.                                         (this.counterWrap = document.createElement("div")),
  31462.                                         (this.counterWrap.className = "counter-project"),
  31463.                                         (this.counterWrap.innerHTML = m["default"].render(S["default"], i)),
  31464.                                         (this.counter3D = new f["default"].CSS3DObject(this.counterWrap)),
  31465.                                         (this.counter3D.position.x = Math.round(this.tempboundingbox.min.x)),
  31466.                                         (this.counter3D.position.y = Math.round(this.tempboundingbox.min.y - 40)),
  31467.                                         this.cssObject3D.add(this.counter3D),
  31468.                                             (this.licounter = this.counterWrap.querySelectorAll("li"));
  31469.                                         TweenMax.set(this.licounter, {
  31470.                                             scaleY: 0
  31471.                                         }), (this.counterTitle = document.createElement("div")), (this.counterTitle.className = "counter-project-title");
  31472.                                         var n = {
  31473.                                             title: C.DATAJSON.projects[this.nb].infotile
  31474.                                         };
  31475.                                         (this.counterTitle.innerHTML = m["default"].render(A["default"], n)),
  31476.                                         (this.counterTopTitle = this.counterTitle.querySelector(".counter-title")),
  31477.                                         (this.countertitle3D = new f["default"].CSS3DObject(this.counterTitle)),
  31478.                                         (this.countertitle3D.position.x = Math.round(this.tempboundingbox.max.x)),
  31479.                                         (this.countertitle3D.position.y = Math.round(this.tempboundingbox.max.y + 50)),
  31480.                                         (this.countertitle3D.rotation.y = Math.PI),
  31481.                                         this.cssObject3D.add(this.countertitle3D),
  31482.                                             TweenMax.set(this.counterTopTitle, {
  31483.                                                 y: 50
  31484.                                             }),
  31485.                                             (this.countTimeline = new TimelineMax({
  31486.                                                 paused: !0
  31487.                                             })),
  31488.                                             this.countTimeline.add([new TweenMax.staggerTo(this.licounter, 0.3, {
  31489.                                                 scaleY: 1,
  31490.                                                 ease: C.defaultEase
  31491.                                             }, 0.05)]),
  31492.                                             (this.countTitleTimeline = new TimelineMax({
  31493.                                                 paused: !0
  31494.                                             })),
  31495.                                             this.countTitleTimeline.add([new TweenMax.to(this.counterTopTitle, 0.7, {
  31496.                                                 y: 0,
  31497.                                                 ease: C.defaultEase
  31498.                                             })]);
  31499.                                     },
  31500.                                 },
  31501.                                 {
  31502.                                     key: "onClick",
  31503.                                     value: function () {
  31504.                                         this.assetsUrls &&
  31505.                                             (this.infoOpen ?
  31506.                                                 (this.closeInfo(), this.countTitleTimeline.reverse()) :
  31507.                                                 (this.currentTexture++,
  31508.                                                     this.currentTexture > this.textArray.length - 2 && ((this.currentTexture = 0), (this.countTitleTimelineisOpen = !1), this.countTimeline.reverse(), this.countTitleTimeline.reverse()),
  31509.                                                     (this.material.uniforms.tInput.value = this.textArray[this.currentTexture]),
  31510.                                                     1 == this.currentTexture && ((this.material.uniforms.isZero.value = 0), (this.countTitleTimelineisOpen = !0), this.onHide(), this.countTimeline.play(), this.countTitleTimeline.play()),
  31511.                                                     0 == this.currentTexture && ((this.material.uniforms.isZero.value = 1), this.setCount(), this.onShow()),
  31512.                                                     this.currentTexture > 0 && this.setCount(this.currentTexture - 1)),
  31513.                                                 P.emit("raycaster:forceperform"));
  31514.                                     },
  31515.                                 },
  31516.                                 {
  31517.                                     key: "onStage",
  31518.                                     value: function (e) {
  31519.                                         if (((this.actual = this.nb), e.actual == this.nb && 0 == this.currentTexture && this.assetsLoaded)) {
  31520.                                             var t = e.last > e.actual ? this.h1pos : -this.h1pos,
  31521.                                                 i = e.last > e.actual ? this.h2pos : -this.h2pos;
  31522.                                             TweenMax.set([this.titleh1], {
  31523.                                                     y: t
  31524.                                                 }),
  31525.                                                 (this.onShowTween1 = TweenMax.delayedCall(1, this.playtimelineEvent)),
  31526.                                                 this.isBack ||
  31527.                                                 (TweenMax.set([this.titleh2], {
  31528.                                                         y: i
  31529.                                                     }),
  31530.                                                     this.infoTimeline.progress(0),
  31531.                                                     this.infoTimeline.restart(),
  31532.                                                     this.infoTimeline.pause(),
  31533.                                                     (this.onShowTween2 = TweenMax.delayedCall(1, this.playTimelineInfoEvent)));
  31534.                                         } else e.last == this.nb && 0 == this.currentTexture && this.onHideLast(e.last, e.actual);
  31535.                                         this.actual == this.nb ? (this.material.uniforms.isAnimated.value = !0) : (this.material.uniforms.isAnimated.value = !1), this.infoOpen && this.closeInfo();
  31536.                                     },
  31537.                                 },
  31538.                                 {
  31539.                                     key: "playTimeline",
  31540.                                     value: function () {
  31541.                                         this.currentTitleh1Tween = TweenMax.to(this.titleh1, 0.5, {
  31542.                                             y: 0,
  31543.                                             ease: Expo.EaseInOut
  31544.                                         });
  31545.                                     },
  31546.                                 },
  31547.                                 {
  31548.                                     key: "playTimelineInfo",
  31549.                                     value: function () {
  31550.                                         (this.currentTitleh2Tween = TweenMax.to(this.titleh2, 0.5, {
  31551.                                             delay: 0.35,
  31552.                                             y: 0,
  31553.                                             ease: this.ease
  31554.                                         })), this.infoTimeline.timeScale(1).restart();
  31555.                                     },
  31556.                                 },
  31557.                                 {
  31558.                                     key: "openInfo",
  31559.                                     value: function () {
  31560.                                         this.infoui.removeEventListener("click", this.openInfoEvent), P.emit("info:open"), (this.infoOpen = !0), this.timelineInfoProject.delay(0.5).timeScale(1).play(), this.onHide();
  31561.                                     },
  31562.                                 },
  31563.                                 {
  31564.                                     key: "closeInfo",
  31565.                                     value: function () {
  31566.                                         this.infoOpen && (this.addInfoEvent(), P.emit("info:close"), (this.infoOpen = !1), this.timelineInfoProject.delay(0).timeScale(1.3).reverse(), TweenMax.delayedCall(1, this.onShow.bind(this)));
  31567.                                     },
  31568.                                 },
  31569.                                 {
  31570.                                     key: "onHideLast",
  31571.                                     value: function (e, t) {
  31572.                                         var i = 1;
  31573.                                         e > t && (i = -1),
  31574.                                             TweenMax.killTweensOf([this.titleh2, this.titleh1, this.infoTimeline, this.currentTitleh1Tween, this.currentTitleh2Tween, this.infoTimeline, this.onShowTween1, this.onShowTween2]),
  31575.                                             TweenMax.killDelayedCallsTo([this.playtimelineEvent, this.playTimelineInfoEvent]),
  31576.                                             (this.currentTitleh2Tween = TweenMax.to(this.titleh2, 0.5, {
  31577.                                                 y: i * this.h2pos,
  31578.                                                 ease: Expo.EaseInOut
  31579.                                             })),
  31580.                                             (this.currentTitleh1Tween = TweenMax.to(this.titleh1, 0.5, {
  31581.                                                 delay: 0.1,
  31582.                                                 y: i * this.h1pos,
  31583.                                                 ease: Expo.EaseInOut
  31584.                                             })),
  31585.                                             this.infoTimeline.timeScale(1.3).reverse();
  31586.                                     },
  31587.                                 },
  31588.                                 {
  31589.                                     key: "onHide",
  31590.                                     value: function () {
  31591.                                         this.actual == this.nb &&
  31592.                                             (TweenMax.killTweensOf([this.titleh2, this.titleh1, this.infoTimeline, this.currentTitleh1Tween, this.currentTitleh2Tween, this.infoTimeline, this.onShowTween1, this.onShowTween2]),
  31593.                                                 TweenMax.killDelayedCallsTo([this.playtimelineEvent, this.playTimelineInfoEvent]),
  31594.                                                 (this.currentTitleh2Tween = TweenMax.to(this.titleh2, 0.5, {
  31595.                                                     y: -this.h2pos,
  31596.                                                     ease: Expo.EaseInOut
  31597.                                                 })),
  31598.                                                 (this.currentTitleh1Tween = TweenMax.to(this.titleh1, 0.5, {
  31599.                                                     delay: 0.1,
  31600.                                                     y: -this.h1pos,
  31601.                                                     ease: Expo.EaseInOut
  31602.                                                 })),
  31603.                                                 this.infoTimeline.timeScale(1.3).reverse());
  31604.                                     },
  31605.                                 },
  31606.                                 {
  31607.                                     key: "onShow",
  31608.                                     value: function () {
  31609.                                         0 == this.currentTexture &&
  31610.                                             (TweenMax.killTweensOf([this.titleh2, this.titleh1, this.infoTimeline, this.currentTitleh1Tween, this.currentTitleh2Tween, this.infoTimeline, this.onShowTween1, this.onShowTween2]),
  31611.                                                 TweenMax.killDelayedCallsTo([this.playtimelineEvent, this.playTimelineInfoEvent]),
  31612.                                                 (this.currentTitleh1Tween = TweenMax.delayedCall(0.2, this.playtimelineEvent)),
  31613.                                                 (this.currentTitleh2Tween = TweenMax.delayedCall(0.3, this.playTimelineInfoEvent)));
  31614.                                     },
  31615.                                 },
  31616.                                 {
  31617.                                     key: "setCount",
  31618.                                     value: function () {
  31619.                                         for (var e = arguments.length <= 0 || void 0 === arguments[0] ? null : arguments[0], t = 0; t < this.licounter.length;) this.licounter[t].classList.remove("active"), t++;
  31620.                                         this.licounter[e] && this.licounter[e].classList.add("active");
  31621.                                     },
  31622.                                 },
  31623.                                 {
  31624.                                     key: "onAboutShow",
  31625.                                     value: function () {
  31626.                                         this.assetsLoaded &&
  31627.                                             (this.countTitleTimelineisOpen && (this.countTitleTimeline.reverse(), this.countTimeline.reverse()), this.infoOpen ? this.timelineInfoProject.delay(0).timeScale(1.8).reverse() : this.onHide());
  31628.                                     },
  31629.                                 },
  31630.                                 {
  31631.                                     key: "onAboutHide",
  31632.                                     value: function () {
  31633.                                         this.assetsLoaded &&
  31634.                                             (this.countTitleTimelineisOpen && (this.countTitleTimeline.play(), this.countTimeline.play()), this.infoOpen ? this.timelineInfoProject.delay(2).timeScale(0.8).play() : this.onShow());
  31635.                                     },
  31636.                                 },
  31637.                                 {
  31638.                                     key: "onLowq",
  31639.                                     value: function () {
  31640.                                         this.material.uniforms.lowq.value = 1;
  31641.                                     },
  31642.                                 },
  31643.                                 {
  31644.                                     key: "addEvents",
  31645.                                     value: function () {
  31646.                                         P.on("update", this.onUpdate.bind(this)),
  31647.                                             P.on("slide:projectchange", this.onSlideProjectChange.bind(this)),
  31648.                                             P.on("camera:front", this.putSlideBack.bind(this)),
  31649.                                             P.on("camera:back", this.putSlideFront.bind(this)),
  31650.                                             P.on("projectloaded" + this.nb, this.assetsLoadedf.bind(this)),
  31651.                                             P.on("projectloading" + this.nb, this.assetsLoading.bind(this)),
  31652.                                             P.on("cover:click" + this.nb, this.onClick.bind(this)),
  31653.                                             P.on("stage", this.onStage.bind(this)),
  31654.                                             P.on("show-about", this.onAboutShow.bind(this)),
  31655.                                             P.on("hide-about", this.onAboutHide.bind(this)),
  31656.                                             P.on("lowq", this.onLowq.bind(this));
  31657.                                     },
  31658.                                 },
  31659.                                 {
  31660.                                     key: "addInfoEvent",
  31661.                                     value: function () {
  31662.                                         (this.openInfoEvent = this.openInfo.bind(this)), this.infoui.addEventListener("click", this.openInfoEvent);
  31663.                                     },
  31664.                                 },
  31665.                                 {
  31666.                                     key: "initGUI",
  31667.                                     value: function () {}
  31668.                                 },
  31669.                             ]),
  31670.                             t
  31671.                         );
  31672.                     })(f["default"].Mesh);
  31673.                 (i["default"] = L), (t.exports = i["default"]);
  31674.             },
  31675.             {
  31676.                 "../materials/covermaterial.js": 233,
  31677.                 "./../../config.js": 221,
  31678.                 "./../../utils/Mediator.js": 240,
  31679.                 "./counter.html": 226,
  31680.                 "./countertitle.html": 227,
  31681.                 "./info.html": 229,
  31682.                 "./infoproject.html": 230,
  31683.                 "./title.html": 231,
  31684.                 "dat-gui": 190,
  31685.                 mustache: 213,
  31686.                 three: 215,
  31687.             },
  31688.         ],
  31689.         229: [
  31690.             function (e, t, i) {
  31691.                 t.exports = "<div class='overflow'>nn   <h4 class='text-info info-ui'> Info </h4>nn</div>nn<div class='trail info-ui'> </div>nn";
  31692.             },
  31693.             {},
  31694.         ],
  31695.         230: [
  31696.             function (e, t, i) {
  31697.                 t.exports =
  31698.                     "<div class='project-info-container'>nn     <div class='overflow'>nn                <h4 class='project-info-title animated'> {{{title}}} </h4>nn    </div>nn        <div class='overflow'>nn                <h4 class='project-info-subtitle animated'> - {{subtitle}} </h4>nn      </div>nn        <div class='overflow'>nn                <h4 class='project-info-description project-info-colored animated'> {{ tags }} </h4>nn  </div>nnn       <div class='overflow'>nn                <h4 class='project-info-text project-info-colored animated'>  {{{description}}} </h4>nn </div>nn</div>nnn";
  31699.             },
  31700.             {},
  31701.         ],
  31702.         231: [
  31703.             function (e, t, i) {
  31704.                 t.exports =
  31705.                     "{{#title}}nn       {{#.}}n n               <div class='overflow'>nn                        <h1 class='project-title'>nn                            {{.}}nn                 </h1>nn         </div>n         n       {{/.}}n n{{/title}}nn<div class='overflow'>nn   <h2 class='project-subtitle'> nn                - {{{subtitle}}}nn      </h2>nn</div>n";
  31706.             },
  31707.             {},
  31708.         ],
  31709.         232: [
  31710.             function (e, t, i) {
  31711.                 "use strict";
  31712.  
  31713.                 function n(e) {
  31714.                     return e && e.__esModule ? e : {
  31715.                         default: e
  31716.                     };
  31717.                 }
  31718.  
  31719.                 function r(e, t) {
  31720.                     if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
  31721.                 }
  31722.                 Object.defineProperty(i, "__esModule", {
  31723.                     value: !0
  31724.                 });
  31725.                 var o = (function () {
  31726.                         function e(e, t) {
  31727.                             for (var i = 0; i < t.length; i++) {
  31728.                                 var n = t[i];
  31729.                                 (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n);
  31730.                             }
  31731.                         }
  31732.                         return function (t, i, n) {
  31733.                             return i && e(t.prototype, i), n && e(t, n), t;
  31734.                         };
  31735.                     })(),
  31736.                     a = e("three"),
  31737.                     s = n(a),
  31738.                     l = e("./../../config.js"),
  31739.                     c = n(l),
  31740.                     u = e("../targetnoise"),
  31741.                     h = n(u),
  31742.                     d = e("./../../utils/Mediator.js"),
  31743.                     f = n(d),
  31744.                     p = e("dat-gui").GUI,
  31745.                     m = c["default"].instance,
  31746.                     v = f["default"].instance.emitter,
  31747.                     g = (function () {
  31748.                         function e(t, i) {
  31749.                             r(this, e),
  31750.                                 (this.scene = t),
  31751.                                 (this.renderer = i),
  31752.                                 (this.options = {
  31753.                                     alphaValue: 0,
  31754.                                     originalYPosition: 10,
  31755.                                     elevation: 0,
  31756.                                     noise_range: 5.8,
  31757.                                     sombrero_amplitude: 1.6,
  31758.                                     sombrero_frequency: 8,
  31759.                                     speed: 1,
  31760.                                     segments: 500,
  31761.                                     wireframe_color: "#67ff39",
  31762.                                     perlin_passes: 3,
  31763.                                     wireframe: !1,
  31764.                                     RotationX: 4.02,
  31765.                                     lightX: 0,
  31766.                                     lightZ: -300,
  31767.                                     lightY: 0,
  31768.                                     uDisplacementScale: -74,
  31769.                                     uDisplacementBias: -152,
  31770.                                 }),
  31771.                                 (this.scale = 50),
  31772.                                 (this.targetNoise = new h["default"](this.scene, i)),
  31773.                                 this.buildPlane(),
  31774.                                 this.addEvents();
  31775.                         }
  31776.                         return (
  31777.                             o(e, [{
  31778.                                     key: "update",
  31779.                                     value: function () {
  31780.                                         this.targetNoise.update(), (this.plane_material.uniforms.time.value += 0.016);
  31781.                                     },
  31782.                                 },
  31783.                                 {
  31784.                                     key: "buildPlane",
  31785.                                     value: function () {
  31786.                                         (this.uniforms = {
  31787.                                             uDisplacementBias: {
  31788.                                                 type: "f",
  31789.                                                 value: this.options.uDisplacementBias
  31790.                                             },
  31791.                                             tDisplacement: {
  31792.                                                 type: "t",
  31793.                                                 value: this.targetNoise.noiseMap
  31794.                                             },
  31795.                                             uDisplacementScale: {
  31796.                                                 type: "f",
  31797.                                                 value: this.options.uDisplacementScale
  31798.                                             },
  31799.                                             uDisplacementPostScale: {
  31800.                                                 type: "f",
  31801.                                                 value: 50
  31802.                                             },
  31803.                                             tDiffuse: {
  31804.                                                 type: "t",
  31805.                                                 value: 0
  31806.                                             },
  31807.                                             alphaVal: {
  31808.                                                 type: "f",
  31809.                                                 value: 1
  31810.                                             },
  31811.                                             time: {
  31812.                                                 type: "f",
  31813.                                                 value: 0
  31814.                                             },
  31815.                                             lowq: {
  31816.                                                 type: "f",
  31817.                                                 value: 0
  31818.                                             },
  31819.                                             amount: {
  31820.                                                 type: "f",
  31821.                                                 value: m.devicePixelRatio > 1 ? 0.07 : 0.035
  31822.                                             },
  31823.                                         }),
  31824.                                         (this.plane_material = new s["default"].ShaderMaterial({
  31825.                                             vertexShader: "#define GLSLIFY 1nnn    varying vec2 vUv;n    n    n    varying float vTime;n  n    uniform sampler2D tDisplacement;n    uniform float uDisplacementScale;n    uniform float uDisplacementBias;n    uniform float uDisplacementPostScale;n    uniform float time;nn  n    n    void main() {nn      vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );nn      vTime = time;n      vUv = uv;n     n      vec3 dv                 = texture2D( tDisplacement, vUv ).xyz;n      float df                = uDisplacementScale * dv.x + uDisplacementBias;n      n      vec4 displacedPosition  = vec4( normalize( normalMatrix * normal ).xyz * df * uDisplacementPostScale/100.0, 0.0 ) + mvPosition;nn      gl_Position             = projectionMatrix * displacedPosition;n  n    }nn  ",
  31826.                                             fragmentShader: "#define GLSLIFY 1nuniform sampler2D tDisplacement;nvarying vec2 vUv;nuniform float alphaVal;nuniform float lowq;nvarying float vTime;nuniform float amount;nnfloat random(vec2 n, float offset ){n // return fract(sin(dot(gl_FragCoord.xyz+seed,scale))*43758.5453);n     return .5 - fract(sin(dot(n.xy + vec2( offset, 0. ), vec2(12.9898, 78.233)))* 43758.5453);n}nnvoid main() {n  n  vec4 diffuseTex  = texture2D( tDisplacement, vUv ) + vec4( vec3( amount * random( vUv, .0000000001 * vTime ) ) , 1.0 );n  n  gl_FragColor = vec4( 1.0 - vec3( diffuseTex.r ), alphaVal );n                n}nnn",
  31827.                                             uniforms: this.uniforms,
  31828.                                             side: s["default"].BackSide,
  31829.                                         })),
  31830.                                         (this.plane_material2 = new s["default"].ShaderMaterial({
  31831.                                             vertexShader: "#define GLSLIFY 1nnn    varying vec2 vUv;n    n    n    varying float vTime;n  n    uniform sampler2D tDisplacement;n    uniform float uDisplacementScale;n    uniform float uDisplacementBias;n    uniform float uDisplacementPostScale;n    uniform float time;nn  n    n    void main() {nn      vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );nn      vTime = time;n      vUv = uv;n     n      vec3 dv                 = texture2D( tDisplacement, vUv ).xyz;n      float df                = uDisplacementScale * dv.x + uDisplacementBias;n      n      vec4 displacedPosition  = vec4( normalize( normalMatrix * normal ).xyz * df * uDisplacementPostScale/100.0, 0.0 ) + mvPosition;nn      gl_Position             = projectionMatrix * displacedPosition;n  n    }nn  ",
  31832.                                             fragmentShader: "#define GLSLIFY 1nuniform float alphaVal;nnconst vec3 color = vec3(0.09411764705882353);nnvoid main() {n n  // with texturen  gl_FragColor = vec4( color, alphaVal);n  n  // without texturen  // gl_FragColor = vec4( totalLight.xyz, 1.0 );n                n}n",
  31833.                                             uniforms: this.uniforms,
  31834.                                             side: s["default"].FrontSide,
  31835.                                         }));
  31836.                                         for (var e = [this.plane_material, this.plane_material2], t = new s["default"].PlaneGeometry(400, 300, 256, 128), i = 0, n = t.faces.length; n > i; i++) {
  31837.                                             var r = t.faces[i].clone();
  31838.                                             (r.materialIndex = 1), t.faces.push(r), t.faceVertexUvs[0].push(t.faceVertexUvs[0][i].slice(0));
  31839.                                         }
  31840.                                         (this.mesh = new s["default"].Mesh(t, new s["default"].MeshFaceMaterial(e))),
  31841.                                         (this.mesh.rotation.y = Math.PI),
  31842.                                         (this.mesh.rotation.x = this.options.RotationX),
  31843.                                         (this.mesh.position.y = this.options.originalYPosition),
  31844.                                         (this.mesh.position.z = 25),
  31845.                                         this.scene.add(this.mesh);
  31846.                                     },
  31847.                                 },
  31848.                                 {
  31849.                                     key: "setPosition",
  31850.                                     value: function (e) {
  31851.                                         var t = this;
  31852.                                         (this.mesh.position.y = e + this.options.originalYPosition),
  31853.                                         (this.isPreviouslyVisible = this.mesh.visible),
  31854.                                         (this.mesh.visible = !0),
  31855.                                         (this.plane_material.transparent = !0),
  31856.                                         (this.plane_material2.transparent = !0),
  31857.                                         (this.plane_material.uniforms.alphaVal.value = 0),
  31858.                                         (this.plane_material.uniforms.uDisplacementScale.value = 200),
  31859.                                         (this.plane_material2.uniforms.alphaVal.value = 0),
  31860.                                         (this.plane_material2.uniforms.uDisplacementScale.value = 200),
  31861.                                         (this.options.alphaValue = 0),
  31862.                                         (this.opacityTween = TweenMax.to(this.options, 1, {
  31863.                                             alphaValue: 1,
  31864.                                             delay: 0.2,
  31865.                                             onUpdate: function () {
  31866.                                                 (t.plane_material.uniforms.alphaVal.value = t.options.alphaValue), (t.plane_material2.uniforms.alphaVal.value = t.options.alphaValue);
  31867.                                             },
  31868.                                         }));
  31869.                                     },
  31870.                                 },
  31871.                                 {
  31872.                                     key: "backPosition",
  31873.                                     value: function () {
  31874.                                         var e = this;
  31875.                                         TweenMax.killTweensOf(this.opacityTween),
  31876.                                             (this.opacityTween = TweenMax.to(this.options, 0.4, {
  31877.                                                 alphaValue: 0,
  31878.                                                 onUpdate: function () {
  31879.                                                     (e.plane_material.uniforms.alphaVal.value = e.options.alphaValue), (e.plane_material2.uniforms.alphaVal.value = e.options.alphaValue);
  31880.                                                 },
  31881.                                                 onComplete: function () {
  31882.                                                     (e.plane_material.transparent = !1),
  31883.                                                     (e.plane_material2.transparent = !1),
  31884.                                                     (e.plane_material.uniforms.uDisplacementScale.value = e.options.uDisplacementScale),
  31885.                                                     (e.plane_material2.uniforms.uDisplacementScale.value = e.options.uDisplacementScale),
  31886.                                                     (e.plane_material.uniforms.alphaVal.value = 1),
  31887.                                                     (e.plane_material2.uniforms.alphaVal.value = 1),
  31888.                                                     (e.mesh.position.y = e.options.originalYPosition),
  31889.                                                     (e.mesh.visible = e.isPreviouslyVisible);
  31890.                                                 },
  31891.                                             }));
  31892.                                     },
  31893.                                 },
  31894.                                 {
  31895.                                     key: "onLowq",
  31896.                                     value: function () {
  31897.                                         this.plane_material.uniforms.lowq.value = !0;
  31898.                                     },
  31899.                                 },
  31900.                                 {
  31901.                                     key: "addEvents",
  31902.                                     value: function () {
  31903.                                         (this.onUpdateEvent = this.update.bind(this)), v.on("update", this.onUpdateEvent), v.on("lowq", this.onLowq.bind(this));
  31904.                                     },
  31905.                                 },
  31906.                                 {
  31907.                                     key: "initGui",
  31908.                                     value: function () {
  31909.                                         var e = this;
  31910.                                         (this.gui = new p()),
  31911.                                         (this.gui.values = {}),
  31912.                                         (this.gui.values.RotationX = this.gui.add(this.options, "RotationX", 0, 2 * Math.PI).step(0.01)),
  31913.                                         (this.gui.values.uDisplacementScale = this.gui.add(this.options, "uDisplacementScale", -200, 200).step(1)),
  31914.                                         (this.gui.values.uDisplacementBias = this.gui.add(this.options, "uDisplacementBias", -200, 200).step(1)),
  31915.                                         this.gui.values.RotationX.onChange(function (t) {
  31916.                                                 e.mesh.rotation.x = t;
  31917.                                             }),
  31918.                                             this.gui.values.uDisplacementScale.onChange(function (t) {
  31919.                                                 e.uniforms.uDisplacementScale.value = t;
  31920.                                             }),
  31921.                                             this.gui.values.uDisplacementBias.onChange(function (t) {
  31922.                                                 e.uniforms.uDisplacementBias.value = t;
  31923.                                             }),
  31924.                                             this.gui.close();
  31925.                                     },
  31926.                                 },
  31927.                             ]),
  31928.                             e
  31929.                         );
  31930.                     })();
  31931.                 (i["default"] = g), (t.exports = i["default"]);
  31932.             },
  31933.             {
  31934.                 "../targetnoise": 236,
  31935.                 "./../../config.js": 221,
  31936.                 "./../../utils/Mediator.js": 240,
  31937.                 "dat-gui": 190,
  31938.                 three: 215
  31939.             },
  31940.         ],
  31941.         233: [
  31942.             function (e, t, i) {
  31943.                 "use strict";
  31944.  
  31945.                 function n(e) {
  31946.                     return e && e.__esModule ? e : {
  31947.                         default: e
  31948.                     };
  31949.                 }
  31950.  
  31951.                 function r(e, t) {
  31952.                     if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
  31953.                 }
  31954.  
  31955.                 function o(e, t) {
  31956.                     if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
  31957.                     (e.prototype = Object.create(t && t.prototype, {
  31958.                         constructor: {
  31959.                             value: e,
  31960.                             enumerable: !1,
  31961.                             writable: !0,
  31962.                             configurable: !0
  31963.                         }
  31964.                     })), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : (e.__proto__ = t));
  31965.                 }
  31966.                 Object.defineProperty(i, "__esModule", {
  31967.                     value: !0
  31968.                 });
  31969.                 var a = function (e, t, i) {
  31970.                         for (var n = !0; n;) {
  31971.                             var r = e,
  31972.                                 o = t,
  31973.                                 a = i;
  31974.                             (s = c = l = void 0), (n = !1), null === r && (r = Function.prototype);
  31975.                             var s = Object.getOwnPropertyDescriptor(r, o);
  31976.                             if (void 0 !== s) {
  31977.                                 if ("value" in s) return s.value;
  31978.                                 var l = s.get;
  31979.                                 return void 0 === l ? void 0 : l.call(a);
  31980.                             }
  31981.                             var c = Object.getPrototypeOf(r);
  31982.                             if (null === c) return void 0;
  31983.                             (e = c), (t = o), (i = a), (n = !0);
  31984.                         }
  31985.                     },
  31986.                     s = e("three"),
  31987.                     l = n(s),
  31988.                     c = e("./../../config.js"),
  31989.                     u = n(c),
  31990.                     h = u["default"].instance,
  31991.                     d = (function (e) {
  31992.                         function t(e) {
  31993.                             r(this, t), (e.map.minFilter = l["default"].NearestFilter);
  31994.                             var i = {};
  31995.                             (i.uniforms = {
  31996.                                 tInput: {
  31997.                                     type: "t",
  31998.                                     value: e.map
  31999.                                 },
  32000.                                 hoverActive: {
  32001.                                     type: "f",
  32002.                                     value: 0
  32003.                                 },
  32004.                                 timer: {
  32005.                                     type: "f",
  32006.                                     value: 0
  32007.                                 },
  32008.                                 loading: {
  32009.                                     type: "f",
  32010.                                     value: 0
  32011.                                 },
  32012.                                 mouse: {
  32013.                                     type: "v2",
  32014.                                     value: new l["default"].Vector2(0, 0)
  32015.                                 },
  32016.                                 displacementRatio: {
  32017.                                     type: "f",
  32018.                                     value: 0
  32019.                                 },
  32020.                                 ratioresolution: {
  32021.                                     type: "f",
  32022.                                     value: e.size.width / e.size.height
  32023.                                 },
  32024.                                 preload: {
  32025.                                     type: "f",
  32026.                                     value: 0
  32027.                                 },
  32028.                                 circleCenter: {
  32029.                                     type: "v2",
  32030.                                     value: new l["default"].Vector2(0, 0)
  32031.                                 },
  32032.                                 circleTimer: {
  32033.                                     type: "f",
  32034.                                     value: 0
  32035.                                 },
  32036.                                 infocolor: {
  32037.                                     type: "c",
  32038.                                     value: new l["default"].Color(parseInt(e.infocolor))
  32039.                                 },
  32040.                                 infocolormix: {
  32041.                                     type: "f",
  32042.                                     value: 0
  32043.                                 },
  32044.                                 isAnimated: {
  32045.                                     type: "f",
  32046.                                     value: 0
  32047.                                 },
  32048.                                 lowq: {
  32049.                                     type: "f",
  32050.                                     value: 0
  32051.                                 },
  32052.                                 isZero: {
  32053.                                     type: "f",
  32054.                                     value: 1
  32055.                                 },
  32056.                                 isRetina: {
  32057.                                     type: "f",
  32058.                                     value: h.devicePixelRatio > 1 ? 1 : 0
  32059.                                 },
  32060.                             }),
  32061.                             "desktop" != h.device ?
  32062.                                 ((i.vertexShader =
  32063.                                         "#define GLSLIFY 1n#define M_PI 3.1415926535897932384626433832795nnvarying vec2 vUv;nnvarying float hoverActivef;nnvarying vec2 mousef;nnuniform float hoverActive;nnuniform vec2 mouse;nnuniform float timer;nnuniform vec2 circleCenter;nnuniform float circleTimer;nnvarying float wave;nnuniform float ratioresolution;nnuniform float isAnimated;nnnvoid main() {nn        vUv = uv;nn     float displacement = 0.0;nn     if( isAnimated == 1.0 ) {nn             mousef = mouse;nn               float distanceCircle = distance( vec2( circleCenter.x, circleCenter.y / ratioresolution), vec2( vUv.x , vUv.y / ratioresolution ) );nn          wave = (1.0 - smoothstep(0., .4, abs(distanceCircle - (timer - circleTimer) * 2.25 )));n        } nn    else {nn                wave = 0.0;nn   }nn     n       gl_Position = projectionMatrix * modelViewMatrix * vec4( position.x, position.y, position.z  + wave * 7.0, 1.0 );nnn}"),
  32064.                                     (i.fragmentShader =
  32065.                                         "#define GLSLIFY 1nuniform sampler2D tInput;nnuniform float hoverActive;nnuniform float loading;nnuniform float timer;nnuniform float ratioresolution;nnuniform float preload;nnuniform float infocolormix;nnuniform vec3 infocolor;nnuniform float lowq;nnvarying vec2 vUv;nnvarying vec2 mousef;nnvarying float wave;nnuniform float isAnimated;nnnfloat random(vec2 n, float offset ){n      // return fract(sin(dot(gl_FragCoord.xyz+seed,scale))*43758.5453);n     return .5 - fract(sin(dot(n.xy + vec2( offset, 0. ), vec2(12.9898, 78.233)))* 43758.5453);n}nnvoid main() {nn   vec4 color = texture2D( tInput, vUv );nn        if(vUv.x >= preload) {nn                float medium = ( color.r + color.g + color.b ) / 3.0;nn         color = vec4(medium);n          n       }nn     if( isAnimated == 1.0 ) { nn            color.rgb += pow(color.rgb * wave, vec3(1.)) * .2;nn    }nnn    color = mix(color, vec4(infocolor, 1.0), infocolormix );nnn    gl_FragColor = color;n}nn")) :
  32066.                                 ((i.vertexShader =
  32067.                                         "#define GLSLIFY 1n#define M_PI 3.1415926535897932384626433832795nnvarying vec2 vUv;nnvarying vec2 mousef;nnuniform float hoverActive;nnuniform float timer;nnuniform vec2 circleCenter;nnuniform float circleTimer;nnvarying float wave;nnuniform float ratioresolution;nnuniform float isAnimated;nnuniform float isZero;nnconst float one = 1.0;nnconst float sombrero_amplitude = 2.0;nconst float sombrero_frequency = 3.3;nnnvoid main() {nn      vUv = uv;nn     float displacement = position.z;nn      wave = 0.0;nn   if( isAnimated == one ) {nn             // if (vUv.x < abs(sin(timer / 4.0) )) {nn              if( isZero  == one ) {nn                        displacement += (sombrero_amplitude * sin(((timer / 2.0) - (distance(uv.x, uv.y) * sombrero_frequency)) * M_PI)) * 2.0 * isZero;n               }nnn            float distanceCircle = distance( vec2( circleCenter.x, circleCenter.y / ratioresolution), vec2( vUv.x , vUv.y / ratioresolution ) );nn          wave = (one - smoothstep(0., .4, abs(distanceCircle - (timer - circleTimer) * 2.25 )));n        } nnn   gl_Position = projectionMatrix * modelViewMatrix * vec4( position.x, position.y, displacement + wave * 7.0, 1.0 );nnn}"),
  32068.                                     (i.fragmentShader =
  32069.                                         "#define GLSLIFY 1nuniform sampler2D tInput;nnuniform float hoverActive;nnuniform float loading;nnuniform float timer;nnuniform float ratioresolution;nnuniform float preload;nnuniform float infocolormix;nnuniform vec3 infocolor;nnuniform float lowq;nnvarying vec2 vUv;nnvarying float wave;nnuniform float isAnimated;nnuniform float isZero;nnuniform float isRetina;nnconst float blurSteps = 1.;nn     nnvoid main() {nn       vec4 color = texture2D( tInput, vUv);nn if( isZero == 1.0 && isRetina == 0.0 ) {nn              color += ( 1. / blurSteps )*texture2D( tInput, vUv + ( vec2( 1.0-blurSteps*.5, 1.0-blurSteps*.5 ) / 1130. ) );n          n              color /= blurSteps+1.0;n        }nnn    if(vUv.x >= preload) {nn                float medium = ( color.r + color.g + color.b ) / 3.0;nn         color = vec4(medium);n          n       }nn     if( isAnimated == 1.0 ) { nn            color.rgb += pow(color.rgb * wave, vec3(1.)) * .2;nn    }nnn    color = mix(color, vec4(infocolor, 1.0), infocolormix );nnn    gl_FragColor = color;n}nn")),
  32070.                                 (i.shading = l["default"].FlatShading),
  32071.                                 (i.transparent = !0),
  32072.                                 (i.depthWrite = !1),
  32073.                                 (i.depthTest = !1),
  32074.                                 a(Object.getPrototypeOf(t.prototype), "constructor", this).call(this, i);
  32075.                         }
  32076.                         return o(t, e), t;
  32077.                     })(l["default"].ShaderMaterial);
  32078.                 (i["default"] = d), (t.exports = i["default"]);
  32079.             },
  32080.             {
  32081.                 "./../../config.js": 221,
  32082.                 three: 215
  32083.             },
  32084.         ],
  32085.         234: [
  32086.             function (e, t, i) {
  32087.                 "use strict";
  32088.  
  32089.                 function n(e) {
  32090.                     return e && e.__esModule ? e : {
  32091.                         default: e
  32092.                     };
  32093.                 }
  32094.  
  32095.                 function r(e, t) {
  32096.                     if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
  32097.                 }
  32098.                 Object.defineProperty(i, "__esModule", {
  32099.                     value: !0
  32100.                 });
  32101.                 var o = (function () {
  32102.                         function e(e, t) {
  32103.                             for (var i = 0; i < t.length; i++) {
  32104.                                 var n = t[i];
  32105.                                 (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n);
  32106.                             }
  32107.                         }
  32108.                         return function (t, i, n) {
  32109.                             return i && e(t.prototype, i), n && e(t, n), t;
  32110.                         };
  32111.                     })(),
  32112.                     a = e("../../utils/imagepackloader.js"),
  32113.                     s = n(a),
  32114.                     l = e("./../../config.js"),
  32115.                     c = n(l),
  32116.                     u = e("./../../utils/Mediator.js"),
  32117.                     h = n(u),
  32118.                     d =
  32119.                     (e("dat-gui").GUI,
  32120.                         c["default"].instance,
  32121.                         h["default"].instance.emitter,
  32122.                         (function () {
  32123.                             function e(t, i, n, o) {
  32124.                                 r(this, e), (this.cb = n), (this.progresscb = o), (this.imagepackloader = new s["default"](this, this.onLoadProgress.bind(this), this.onLoadEnd.bind(this))), this.imagepackloader.load(i);
  32125.                             }
  32126.                             return (
  32127.                                 o(e, [{
  32128.                                         key: "onLoadProgress",
  32129.                                         value: function (e, t) {
  32130.                                             this.progresscb(t);
  32131.                                         },
  32132.                                     },
  32133.                                     {
  32134.                                         key: "onLoadEnd",
  32135.                                         value: function (e) {
  32136.                                             this.processImageUrls(e), this.cb(e), delete e.cb;
  32137.                                         },
  32138.                                     },
  32139.                                     {
  32140.                                         key: "processImageUrls",
  32141.                                         value: function (e) {
  32142.                                             for (var t = [], i = 0; i < e.names.length;) t.push(e.imagepackloader.get(e.names[i])), i++;
  32143.                                             e.urls = t;
  32144.                                         },
  32145.                                     },
  32146.                                 ]),
  32147.                                 e
  32148.                             );
  32149.                         })());
  32150.                 (i["default"] = d), (t.exports = i["default"]);
  32151.             },
  32152.             {
  32153.                 "../../utils/imagepackloader.js": 242,
  32154.                 "./../../config.js": 221,
  32155.                 "./../../utils/Mediator.js": 240,
  32156.                 "dat-gui": 190
  32157.             },
  32158.         ],
  32159.         235: [
  32160.             function (e, t, i) {
  32161.                 "use strict";
  32162.  
  32163.                 function n(e) {
  32164.                     return e && e.__esModule ? e : {
  32165.                         default: e
  32166.                     };
  32167.                 }
  32168.  
  32169.                 function r(e, t) {
  32170.                     if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
  32171.                 }
  32172.                 Object.defineProperty(i, "__esModule", {
  32173.                     value: !0
  32174.                 });
  32175.                 var o = (function () {
  32176.                         function e(e, t) {
  32177.                             for (var i = 0; i < t.length; i++) {
  32178.                                 var n = t[i];
  32179.                                 (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n);
  32180.                             }
  32181.                         }
  32182.                         return function (t, i, n) {
  32183.                             return i && e(t.prototype, i), n && e(t, n), t;
  32184.                         };
  32185.                     })(),
  32186.                     a = e("three"),
  32187.                     s = n(a),
  32188.                     l = e("./../../config.js"),
  32189.                     c = n(l),
  32190.                     u = e("./../../utils/Mediator.js"),
  32191.                     h = n(u),
  32192.                     d = c["default"].instance,
  32193.                     f = h["default"].instance.emitter,
  32194.                     p = (function () {
  32195.                         function e(t, i, n) {
  32196.                             r(this, e),
  32197.                                 (this.stage = 0),
  32198.                                 (this.objects = n),
  32199.                                 (this.currentObject = this.objects[this.stage]),
  32200.                                 (this.mouse = new s["default"].Vector2()),
  32201.                                 (this.lastMouse = new s["default"].Vector2()),
  32202.                                 (this.touchDate = 0),
  32203.                                 (this.camera = i),
  32204.                                 (this.isInfoOpen = !1),
  32205.                                 (this.isPointer = !1),
  32206.                                 (this.ontouchmove = "phone" == d.device ? !1 : !0),
  32207.                                 (this.isRaycasted = !1),
  32208.                                 (this.raycaster = new s["default"].Raycaster()),
  32209.                                 this.addEvents();
  32210.                         }
  32211.                         return (
  32212.                             o(e, [{
  32213.                                     key: "perform",
  32214.                                     value: function () {
  32215.                                         "desktop" != d.device || (this.mouse.x == this.lastMouse.x && this.mouse.y == this.lastMouse.y) || this.raycast();
  32216.                                     },
  32217.                                 },
  32218.                                 {
  32219.                                     key: "forcePerform",
  32220.                                     value: function () {
  32221.                                         (this.isRaycasted = !1), TweenMax.delayedCall(1e-4, this.raycast.bind(this));
  32222.                                     },
  32223.                                 },
  32224.                                 {
  32225.                                     key: "raycast",
  32226.                                     value: function () {
  32227.                                         this.raycaster.setFromCamera(this.mouse, this.camera);
  32228.                                         var e = this.raycaster.intersectObjects([this.currentObject]);
  32229.                                         e.length > 0 ?
  32230.                                             (this.setPointer(), (this.currentObject.material.uniforms.hoverActive.value = 1), this.setMouseUVS(e), (this.isRaycasted = !0)) :
  32231.                                             ((this.isRaycasted = !1), this.removePointer(), (this.currentObject.material.uniforms.hoverActive.value = 0)),
  32232.                                             (this.lastMouse.x = this.mouse.x),
  32233.                                             (this.lastMouse.y = this.mouse.y);
  32234.                                     },
  32235.                                 },
  32236.                                 {
  32237.                                     key: "setMouseUVS",
  32238.                                     value: function (e) {
  32239.                                         var t = e[0].faceIndex,
  32240.                                             i = new s["default"].Vector2(),
  32241.                                             n = new s["default"].Vector2(),
  32242.                                             r = new s["default"].Vector2(),
  32243.                                             o = new s["default"].Vector2();
  32244.                                         (i.x = this.currentObject.geometry.faceVertexUvs[0][t][0].x),
  32245.                                         (i.y = this.currentObject.geometry.faceVertexUvs[0][t][0].y),
  32246.                                         (n.x = this.currentObject.geometry.faceVertexUvs[0][t][1].x),
  32247.                                         (n.y = this.currentObject.geometry.faceVertexUvs[0][t][1].y),
  32248.                                         (r.x = this.currentObject.geometry.faceVertexUvs[0][t][2].x),
  32249.                                         (r.y = this.currentObject.geometry.faceVertexUvs[0][t][2].y),
  32250.                                         (o.x = (i.x + n.x + r.x) / 3),
  32251.                                         (o.y = 1 - (i.y + n.y + r.y) / 3),
  32252.                                         (this.currentObject.material.uniforms.mouse.value = o),
  32253.                                         this.isRaycasted || ((this.currentObject.material.uniforms.circleCenter.value = o), (this.currentObject.material.uniforms.circleTimer.value = this.currentObject.material.uniforms.timer.value));
  32254.                                     },
  32255.                                 },
  32256.                                 {
  32257.                                     key: "changeStage",
  32258.                                     value: function (e) {
  32259.                                         (this.stage = e.actual < 0 ? 0 : e.actual), (this.currentObject = this.objects[this.stage]);
  32260.                                     },
  32261.                                 },
  32262.                                 {
  32263.                                     key: "onChangeStage",
  32264.                                     value: function (e) {
  32265.                                         (this.stage = e), (this.currentObject = this.objects[this.stage]);
  32266.                                     },
  32267.                                 },
  32268.                                 {
  32269.                                     key: "onmouseclick",
  32270.                                     value: function (e) {
  32271.                                         var t = this;
  32272.                                         ("desktop" != d.device && e.changedTouches[0].clientX < 0.3 * this.w) ||
  32273.                                         (this.isRaycasted &&
  32274.                                             ("desktop" == d.device && f.emit("cover:click" + this.currentObject.nb),
  32275.                                                 "desktop" != d.device &&
  32276.                                                 setTimeout(function () {
  32277.                                                     t.ontouchmove || f.emit("cover:click" + t.currentObject.nb);
  32278.                                                 }, 100)));
  32279.                                     },
  32280.                                 },
  32281.                                 {
  32282.                                     key: "mousemove",
  32283.                                     value: function (e) {
  32284.                                         (this.touchDate = Date.now()), (this.mouse.x = e.xRatio), (this.mouse.y = e.yRatio);
  32285.                                     },
  32286.                                 },
  32287.                                 {
  32288.                                     key: "onInfoOpen",
  32289.                                     value: function () {
  32290.                                         (this.isInfoOpen = !0), this.setPointer();
  32291.                                     },
  32292.                                 },
  32293.                                 {
  32294.                                     key: "onInfoClose",
  32295.                                     value: function () {
  32296.                                         this.removePointer(), (this.isInfoOpen = !1), this.setPointer();
  32297.                                     },
  32298.                                 },
  32299.                                 {
  32300.                                     key: "setPointer",
  32301.                                     value: function () {
  32302.                                         this.isPointer || (this.isInfoOpen ? document.body.classList.add("infoopen") : (document.body.style.cursor = "e-resize"), (this.isPointer = !0));
  32303.                                     },
  32304.                                 },
  32305.                                 {
  32306.                                     key: "removePointer",
  32307.                                     value: function () {
  32308.                                         this.isPointer && ((document.body.style.cursor = "initial"), (this.isPointer = !1)), this.isInfoOpen && document.body.classList.remove("infoopen");
  32309.                                     },
  32310.                                 },
  32311.                                 {
  32312.                                     key: "forceRemovePointer",
  32313.                                     value: function () {
  32314.                                         (this.isPointer = !0), this.removePointer();
  32315.                                     },
  32316.                                 },
  32317.                                 {
  32318.                                     key: "resize",
  32319.                                     value: function (e) {
  32320.                                         (this.w = e.w), (this.h = e.h);
  32321.                                     },
  32322.                                 },
  32323.                                 {
  32324.                                     key: "onTouchMove",
  32325.                                     value: function () {
  32326.                                         this.ontouchmove = !0;
  32327.                                     },
  32328.                                 },
  32329.                                 {
  32330.                                     key: "onMouseUp",
  32331.                                     value: function () {
  32332.                                         (this.mouse.x = 0), (this.mouse.y = 0), (this.ontouchmove = !1);
  32333.                                     },
  32334.                                 },
  32335.                                 {
  32336.                                     key: "addEvents",
  32337.                                     value: function () {
  32338.                                         (this.changeStateEvent = this.changeStage.bind(this)),
  32339.                                         (this.onChangeStageEvent = this.onChangeStage.bind(this)),
  32340.                                         (this.mousemoveEvent = this.mousemove.bind(this)),
  32341.                                         (this.onMouseClickEvent = this.onmouseclick.bind(this)),
  32342.                                         f.on("resize", this.resize.bind(this)),
  32343.                                             f.on("stage", this.changeStateEvent),
  32344.                                             f.on("raycast:changestage", this.onChangeStageEvent),
  32345.                                             f.on("raycaster:forceperform", this.forcePerform.bind(this)),
  32346.                                             f.on("info:open", this.onInfoOpen.bind(this)),
  32347.                                             f.on("info:close", this.onInfoClose.bind(this)),
  32348.                                             "desktop" == d.device ?
  32349.                                             (window.addEventListener("click", this.onMouseClickEvent), f.on("mousemove", this.mousemoveEvent)) :
  32350.                                             (window.addEventListener("touchstart", this.onMouseClickEvent.bind(this)), window.addEventListener("touchmove", this.onTouchMove.bind(this)), f.on("mouseup", this.onMouseUp.bind(this)));
  32351.                                     },
  32352.                                 },
  32353.                                 {
  32354.                                     key: "removeEvents",
  32355.                                     value: function () {}
  32356.                                 },
  32357.                             ]),
  32358.                             e
  32359.                         );
  32360.                     })();
  32361.                 (i["default"] = p), (t.exports = i["default"]);
  32362.             },
  32363.             {
  32364.                 "./../../config.js": 221,
  32365.                 "./../../utils/Mediator.js": 240,
  32366.                 three: 215
  32367.             },
  32368.         ],
  32369.         236: [
  32370.             function (e, t, i) {
  32371.                 "use strict";
  32372.  
  32373.                 function n(e) {
  32374.                     return e && e.__esModule ? e : {
  32375.                         default: e
  32376.                     };
  32377.                 }
  32378.  
  32379.                 function r(e, t) {
  32380.                     if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
  32381.                 }
  32382.                 Object.defineProperty(i, "__esModule", {
  32383.                     value: !0
  32384.                 });
  32385.                 var o = (function () {
  32386.                         function e(e, t) {
  32387.                             for (var i = 0; i < t.length; i++) {
  32388.                                 var n = t[i];
  32389.                                 (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n);
  32390.                             }
  32391.                         }
  32392.                         return function (t, i, n) {
  32393.                             return i && e(t.prototype, i), n && e(t, n), t;
  32394.                         };
  32395.                     })(),
  32396.                     a = e("three"),
  32397.                     s = n(a),
  32398.                     l = e("./../../config.js"),
  32399.                     c = n(l),
  32400.                     u = e("./../../utils/Mediator.js"),
  32401.                     h = n(u),
  32402.                     d = e("dat-gui").GUI,
  32403.                     f = c["default"].instance,
  32404.                     p =
  32405.                     (h["default"].instance.emitter,
  32406.                         (function () {
  32407.                             function e(t, i) {
  32408.                                 r(this, e),
  32409.                                     (this.scene = t),
  32410.                                     (this.renderer = i),
  32411.                                     (this.options = {
  32412.                                         vScale: 1.3,
  32413.                                         timeScale: 0.15
  32414.                                     }),
  32415.                                     (this.uniforms = {
  32416.                                         time: {
  32417.                                             type: "f",
  32418.                                             value: 1
  32419.                                         },
  32420.                                         vScale: {
  32421.                                             type: "v2",
  32422.                                             value: new s["default"].Vector2(this.options.vScale, this.options.vScale)
  32423.                                         },
  32424.                                         vOffset: {
  32425.                                             type: "v2",
  32426.                                             value: new s["default"].Vector2(1, 1)
  32427.                                         },
  32428.                                     }),
  32429.                                     (this.noiseMap = new s["default"].WebGLRenderTarget(256, 256, {
  32430.                                         minFilter: s["default"].LinearFilter,
  32431.                                         magFilter: s["default"].LinearFilter,
  32432.                                         format: s["default"].RGBFormat
  32433.                                     })),
  32434.                                     (this.noiseScene = new s["default"].Scene()),
  32435.                                     (this.noiseCameraOrtho = new s["default"].OrthographicCamera(-128, 128, 128, -128, -1e3, 1e3)),
  32436.                                     (this.noiseCameraOrtho.position.z = 100),
  32437.                                     this.noiseScene.add(this.noiseCameraOrtho),
  32438.                                     (this.noiseMaterial = new s["default"].ShaderMaterial({
  32439.                                         fragmentShader: "#define GLSLIFY 1nuniform float time;nvarying vec2 vUv;nvarying vec2 vUv2;nconst float first = 0.7;nconst float second = 0.4;nnvec3 mod289(vec3 x) {n  return x - floor(x * (1.0 / 289.0)) * 289.0;n}nnvec4 mod289(vec4 x) {n  return x - floor(x * (1.0 / 289.0)) * 289.0;n}nnvec4 permute(vec4 x) {n     return mod289(((x*34.0)+1.0)*x);n}nnvec4 taylorInvSqrt(vec4 r)n{n  return 1.79284291400159 - 0.85373472095314 * r;n}nnfloat snoise(vec3 v)n  {n  const vec2  C = vec2(1.0/6.0, 1.0/3.0) ;n  const vec4  D = vec4(0.0, 0.5, 1.0, 2.0);nn// First cornern  vec3 i  = floor(v + dot(v, C.yyy) );n  vec3 x0 =   v - i + dot(i, C.xxx) ;nn// Other cornersn  vec3 g = step(x0.yzx, x0.xyz);n  vec3 l = 1.0 - g;n  vec3 i1 = min( g.xyz, l.zxy );n  vec3 i2 = max( g.xyz, l.zxy );nn  //   x0 = x0 - 0.0 + 0.0 * C.xxx;n  //   x1 = x0 - i1  + 1.0 * C.xxx;n  //   x2 = x0 - i2  + 2.0 * C.xxx;n  //   x3 = x0 - 1.0 + 3.0 * C.xxx;n  vec3 x1 = x0 - i1 + C.xxx;n  vec3 x2 = x0 - i2 + C.yyy; // 2.0*C.x = 1/3 = C.yn  vec3 x3 = x0 - D.yyy;      // -1.0+3.0*C.x = -0.5 = -D.ynn// Permutationsn  i = mod289(i);n  vec4 p = permute( permute( permute(n             i.z + vec4(0.0, i1.z, i2.z, 1.0 ))n           + i.y + vec4(0.0, i1.y, i2.y, 1.0 ))n           + i.x + vec4(0.0, i1.x, i2.x, 1.0 ));nn// Gradients: 7x7 points over a square, mapped onto an octahedron.n// The ring size 17*17 = 289 is close to a multiple of 49 (49*6 = 294)n  float n_ = 0.142857142857; // 1.0/7.0n  vec3  ns = n_ * D.wyz - D.xzx;nn  vec4 j = p - 49.0 * floor(p * ns.z * ns.z);  //  mod(p,7*7)nn  vec4 x_ = floor(j * ns.z);n  vec4 y_ = floor(j - 7.0 * x_ );    // mod(j,N)nn  vec4 x = x_ *ns.x + ns.yyyy;n  vec4 y = y_ *ns.x + ns.yyyy;n  vec4 h = 1.0 - abs(x) - abs(y);nn  vec4 b0 = vec4( x.xy, y.xy );n  vec4 b1 = vec4( x.zw, y.zw );nn  //vec4 s0 = vec4(lessThan(b0,0.0))*2.0 - 1.0;n  //vec4 s1 = vec4(lessThan(b1,0.0))*2.0 - 1.0;n  vec4 s0 = floor(b0)*2.0 + 1.0;n  vec4 s1 = floor(b1)*2.0 + 1.0;n  vec4 sh = -step(h, vec4(0.0));nn  vec4 a0 = b0.xzyw + s0.xzyw*sh.xxyy ;n  vec4 a1 = b1.xzyw + s1.xzyw*sh.zzww ;nn  vec3 p0 = vec3(a0.xy,h.x);n  vec3 p1 = vec3(a0.zw,h.y);n  vec3 p2 = vec3(a1.xy,h.z);n  vec3 p3 = vec3(a1.zw,h.w);nn//Normalise gradientsn  vec4 norm = taylorInvSqrt(vec4(dot(p0,p0), dot(p1,p1), dot(p2, p2), dot(p3,p3)));n  p0 *= norm.x;n  p1 *= norm.y;n  p2 *= norm.z;n  p3 *= norm.w;nn// Mix final noise valuen  vec4 m = max(0.6 - vec4(dot(x0,x0), dot(x1,x1), dot(x2,x2), dot(x3,x3)), 0.0);n  m = m * m;n  return 42.0 * dot( m*m, vec4( dot(p0,x0), dot(p1,x1),n                                dot(p2,x2), dot(p3,x3) ) );n  }nnfloat surface3( vec3 coord ) {nn  float n = 0.0;nn  n += 1.0 * abs( snoise( coord ) );n  n += 0.5 * abs( snoise( coord * 2.0 ) );n  n += 0.25 * abs( snoise( coord * 4.0 ) );n  n += 0.125 * abs( snoise( coord * 8.0 ) );nn  if(vUv2.y > second && vUv2.y < first) {nn    n    n += 0.057 * abs( snoise( coord * 16.0 ) );n  }nn  else {nn    n    n += 0.057 * abs( snoise( coord * 16.0 ) );n    n += 0.023 * abs( snoise( coord * 32.0 ) );n  }n  nn  return n;nn}nnvoid main() {nn  gl_FragColor = vec4( vec3( surface3( vec3( vUv, -time / 50.0 ) ) ), 1.0 );nn}nnn",
  32440.                                         vertexShader: "#define GLSLIFY 1nvarying vec2 vUv;nvarying vec2 vUv2;nuniform vec2 vScale;nuniform vec2 vOffset;nnvoid main() {nn       vUv = (uv * vScale) + vOffset;n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );nn}",
  32441.                                         uniforms: this.uniforms,
  32442.                                         lights: !1,
  32443.                                         depthWrite: !1,
  32444.                                         depthTest: !1,
  32445.                                     })),
  32446.                                     (this.noiseQuadTarget = new s["default"].Mesh(new s["default"].PlaneBufferGeometry(256, 256, 1, 1), this.noiseMaterial)),
  32447.                                     this.noiseScene.add(this.noiseQuadTarget),
  32448.                                     f.DEBUG && this.initGui();
  32449.                             }
  32450.                             return (
  32451.                                 o(e, [{
  32452.                                         key: "update",
  32453.                                         value: function () {
  32454.                                             this.renderer.render(this.noiseScene, this.noiseCameraOrtho, this.noiseMap), (this.noiseMaterial.uniforms.time.value += 0.016);
  32455.                                         },
  32456.                                     },
  32457.                                     {
  32458.                                         key: "initGui",
  32459.                                         value: function () {
  32460.                                             var e = this;
  32461.                                             (this.gui = new d()),
  32462.                                             (this.gui.values = {}),
  32463.                                             (this.gui.values.vScale = this.gui.add(this.options, "vScale", 0, 10).step(0.01)),
  32464.                                             (this.gui.values.timeScale = this.gui.add(this.options, "timeScale", 0, 1).step(0.01)),
  32465.                                             this.gui.values.vScale.onChange(function (t) {
  32466.                                                     e.uniforms.vScale.value = new s["default"].Vector2(t, t);
  32467.                                                 }),
  32468.                                                 this.gui.close();
  32469.                                         },
  32470.                                     },
  32471.                                 ]),
  32472.                                 e
  32473.                             );
  32474.                         })());
  32475.                 (i["default"] = p), (t.exports = i["default"]);
  32476.             },
  32477.             {
  32478.                 "./../../config.js": 221,
  32479.                 "./../../utils/Mediator.js": 240,
  32480.                 "dat-gui": 190,
  32481.                 three: 215
  32482.             },
  32483.         ],
  32484.         237: [
  32485.             function (e, t, i) {
  32486.                 "use strict";
  32487.  
  32488.                 function n(e) {
  32489.                     return e && e.__esModule ? e : {
  32490.                         default: e
  32491.                     };
  32492.                 }
  32493.  
  32494.                 function r(e, t) {
  32495.                     if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
  32496.                 }
  32497.  
  32498.                 function o(e, t) {
  32499.                     if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
  32500.                     (e.prototype = Object.create(t && t.prototype, {
  32501.                         constructor: {
  32502.                             value: e,
  32503.                             enumerable: !1,
  32504.                             writable: !0,
  32505.                             configurable: !0
  32506.                         }
  32507.                     })), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : (e.__proto__ = t));
  32508.                 }
  32509.                 Object.defineProperty(i, "__esModule", {
  32510.                     value: !0
  32511.                 });
  32512.                 var a = (function () {
  32513.                         function e(e, t) {
  32514.                             for (var i = 0; i < t.length; i++) {
  32515.                                 var n = t[i];
  32516.                                 (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n);
  32517.                             }
  32518.                         }
  32519.                         return function (t, i, n) {
  32520.                             return i && e(t.prototype, i), n && e(t, n), t;
  32521.                         };
  32522.                     })(),
  32523.                     s = function (e, t, i) {
  32524.                         for (var n = !0; n;) {
  32525.                             var r = e,
  32526.                                 o = t,
  32527.                                 a = i;
  32528.                             (s = c = l = void 0), (n = !1), null === r && (r = Function.prototype);
  32529.                             var s = Object.getOwnPropertyDescriptor(r, o);
  32530.                             if (void 0 !== s) {
  32531.                                 if ("value" in s) return s.value;
  32532.                                 var l = s.get;
  32533.                                 return void 0 === l ? void 0 : l.call(a);
  32534.                             }
  32535.                             var c = Object.getPrototypeOf(r);
  32536.                             if (null === c) return void 0;
  32537.                             (e = c), (t = o), (i = a), (n = !0);
  32538.                         }
  32539.                     },
  32540.                     l = e("./../../config.js"),
  32541.                     c = n(l),
  32542.                     u = e("./../../utils/Mediator.js"),
  32543.                     h = n(u),
  32544.                     d = e("three"),
  32545.                     f = n(d),
  32546.                     p = e("../../utils/css3drenderer.js"),
  32547.                     m = n(p),
  32548.                     v = e("../camera"),
  32549.                     g = n(v),
  32550.                     y = e("../field"),
  32551.                     _ = n(y),
  32552.                     b = e("../covers"),
  32553.                     x = n(b),
  32554.                     w = e("../raycast"),
  32555.                     M = n(w),
  32556.                     T = e("../assetloader"),
  32557.                     S = n(T),
  32558.                     E = e("./../../views/AbstractView.js"),
  32559.                     A = n(E),
  32560.                     C = (e("dat-gui").GUI, c["default"].instance),
  32561.                     P = h["default"].instance.emitter,
  32562.                     L = (function (e) {
  32563.                         function t(e) {
  32564.                             r(this, t),
  32565.                                 s(Object.getPrototypeOf(t.prototype), "constructor", this).call(this),
  32566.                                 (this.fpscount = document.querySelector("#fpscount")),
  32567.                                 this.initVariables(),
  32568.                                 this.addEvents(),
  32569.                                 this.addExtensions(),
  32570.                                 this.initScene(),
  32571.                                 (this.fps = 0),
  32572.                                 (this.count = 0),
  32573.                                 (this.total = 0),
  32574.                                 (this.maxcountframe = 200),
  32575.                                 TweenMax.delayedCall(0.2, this.show.bind(this)),
  32576.                                 P.emit("lowq"),
  32577.                                 (this.assetLoader = new S["default"]());
  32578.                         }
  32579.                         return (
  32580.                             o(t, e),
  32581.                             a(t, [{
  32582.                                     key: "initVariables",
  32583.                                     value: function () {
  32584.                                         (this.coverLoaded = 0),
  32585.                                         (this.coversArray = []),
  32586.                                         (this.isRaycastable = !0),
  32587.                                         (this.stageCount = C.DATAJSON.projects.length),
  32588.                                         (this.actualStageCount = -1),
  32589.                                         (this.lastStageCount = -1),
  32590.                                         (this.titletop = document.querySelector("#topname"));
  32591.                                     },
  32592.                                 },
  32593.                                 {
  32594.                                     key: "initScene",
  32595.                                     value: function () {
  32596.                                         this.scene = new f["default"].Scene();
  32597.                                         var e = !1,
  32598.                                             t = "mediump";
  32599.                                         (C.devicePixelRatio < 2 || "desktop" != C.device) && (t = "highp"),
  32600.                                         C.devicePixelRatio < 2 && (e = !0),
  32601.                                             (this.renderer = new f["default"].WebGLRenderer({
  32602.                                                 precision: "highp",
  32603.                                                 antialias: !0,
  32604.                                                 transparent: !0,
  32605.                                                 sortObjects: !1
  32606.                                             })),
  32607.                                             this.renderer.setClearColor(1579032),
  32608.                                             "desktop" == C.device && (this.renderer.precision = t),
  32609.                                             this.renderer.setPixelRatio(C.devicePixelRatio),
  32610.                                             (this.camera = new g["default"](60, window.innerWidth / window.innerHeight, 0.5, 2e3)),
  32611.                                             (this.scene2 = new f["default"].Scene()),
  32612.                                             (this.renderer2 = new f["default"].CSS3DRenderer()),
  32613.                                             this.renderer2.setSize(window.innerWidth, window.innerHeight),
  32614.                                             (this.renderer2.domElement.className = "css3dDom"),
  32615.                                             document.body.appendChild(this.renderer2.domElement),
  32616.                                             this.createCovers(),
  32617.                                             (this.raycaster = new M["default"](this.scene, this.camera, this.coversArray)),
  32618.                                             (this.windowHeight = window.innerHeight),
  32619.                                             this.renderer.setSize(window.innerWidth, window.innerHeight),
  32620.                                             (this.container = document.querySelector(".wrapper")),
  32621.                                             (this.canvas = this.renderer.domElement),
  32622.                                             this.container.appendChild(this.canvas),
  32623.                                             (this.field = new _["default"](this.scene, this.renderer));
  32624.                                     },
  32625.                                 },
  32626.                                 {
  32627.                                     key: "checkPerformance",
  32628.                                     value: function () {
  32629.                                         if (!this.lastCalledTime) return void(this.lastCalledTime = Date.now());
  32630.                                         var e = (Date.now() - this.lastCalledTime) / 1e3;
  32631.                                         (this.lastCalledTime = Date.now()), (this.fps = 1 / e), (this.total += this.fps), (this.average = Math.round(this.total / this.count)), this.count++;
  32632.                                     },
  32633.                                 },
  32634.                                 {
  32635.                                     key: "onUpdate",
  32636.                                     value: function () {
  32637.                                         this.actualStageCount >= 0 && this.isRaycastable && this.raycaster.perform(), this.renderer.render(this.scene, this.camera), this.renderer2.render(this.scene, this.camera);
  32638.                                     },
  32639.                                 },
  32640.                                 {
  32641.                                     key: "scroll",
  32642.                                     value: function (e) {
  32643.                                         this.raycaster.forceRemovePointer(), (this.timeline = new TimelineMax({
  32644.                                             paused: !0,
  32645.                                             onComplete: this.callbackcamera.bind(this)
  32646.                                         }));
  32647.                                         var t = 1.6; -
  32648.                                         1 == this.lastStageCount && 0 == this.actualStageCount ?
  32649.                                             this.timeline.add([TweenMax.to(this.camera.position, t, {
  32650.                                                 y: this.coversArray[this.actualStageCount].position.y,
  32651.                                                 ease: C.defaultEase
  32652.                                             })]) :
  32653.                                             -1 == this.actualStageCount ?
  32654.                                             ((this.field.mesh.visible = !0), this.timeline.add([TweenMax.to(this.camera.position, t, {
  32655.                                                 y: this.camera.originalYPosition,
  32656.                                                 ease: new Ease(BezierEasing(0.56, 0.01, 0, 0.98))
  32657.                                             })])) :
  32658.                                             this.timeline.add([TweenMax.to(this.camera.position, 0.9 * t, {
  32659.                                                 y: this.coversArray[this.actualStageCount].position.y,
  32660.                                                 ease: new Ease(BezierEasing(0.81, 0.19, 0.15, 1))
  32661.                                             })]),
  32662.                                             this.timeline.play();
  32663.                                     },
  32664.                                 },
  32665.                                 {
  32666.                                     key: "callbackcamera",
  32667.                                     value: function () {
  32668.                                         -1 == this.lastStageCount && 0 == this.actualStageCount && (this.field.mesh.visible = !1), (this.lastStageCount = this.stageCount), P.emit("raycaster:forceperform");
  32669.                                     },
  32670.                                 },
  32671.                                 {
  32672.                                     key: "cameraSlide",
  32673.                                     value: function (e) {
  32674.                                         var t = this.minCam - this.diffCam * e;
  32675.                                         TweenMax.to(this.camera.position, 0.2, {
  32676.                                             y: t,
  32677.                                             ease: Expo.EaseIn
  32678.                                         });
  32679.                                     },
  32680.                                 },
  32681.                                 {
  32682.                                     key: "createCovers",
  32683.                                     value: function () {
  32684.                                         var e = 1130,
  32685.                                             t = 636,
  32686.                                             i = void 0,
  32687.                                             n = void 0;
  32688.                                         "desktop" == C.device ? ((i = Math.round(e / 10)), (n = Math.round(t / 10))) : ((i = Math.round(e / 20)), (n = Math.round(t / 20)));
  32689.                                         var r = new f["default"].PlaneGeometry(e, t, i, n);
  32690.                                         r.computeBoundingBox();
  32691.                                         for (var o = 0; o < C.DATAJSON.projects.length;) this.coversArray.push(new x["default"](this.scene, r.clone(), r.boundingBox, o, {
  32692.                                             width: e,
  32693.                                             height: t
  32694.                                         })), o++;
  32695.                                         (this.minCam = this.coversArray[0].position.y), (this.maxCam = this.coversArray[this.coversArray.length - 1].position.y), (this.diffCam = this.minCam - this.maxCam);
  32696.                                     },
  32697.                                 },
  32698.                                 {
  32699.                                     key: "onStage",
  32700.                                     value: function (e) {
  32701.                                         (this.actualStageCount = e.actual), (this.lastStageCount = e.last), this.scroll();
  32702.                                     },
  32703.                                 },
  32704.                                 {
  32705.                                     key: "show",
  32706.                                     value: function () {
  32707.                                         TweenMax.to(this.canvas, 1.5, {
  32708.                                             autoAlpha: 1,
  32709.                                             onComplete: function () {
  32710.                                                 P.emit("allow-scroll"), P.emit("world3D:ready");
  32711.                                             },
  32712.                                         });
  32713.                                     },
  32714.                                 },
  32715.                                 {
  32716.                                     key: "onShowAbout",
  32717.                                     value: function () {
  32718.                                         -1 != this.actualStageCount && ((this.isRaycastable = !1), (this.currentPagePosition = this.camera.position.y), this.field.setPosition(this.currentPagePosition));
  32719.                                     },
  32720.                                 },
  32721.                                 {
  32722.                                     key: "onHideAbout",
  32723.                                     value: function () {
  32724.                                         -1 != this.actualStageCount && ((this.isRaycastable = !0), this.field.backPosition());
  32725.                                     },
  32726.                                 },
  32727.                                 {
  32728.                                     key: "onResize",
  32729.                                     value: function (e) {
  32730.                                         this.renderer.setSize(e.w, e.h),
  32731.                                             this.renderer2.setSize(e.w, e.h),
  32732.                                             (this.camera.aspect = e.w / e.h),
  32733.                                             this.camera.updateProjectionMatrix(),
  32734.                                             "desktop" != C.device &&
  32735.                                             setTimeout(function () {
  32736.                                                 window.scrollTo(0, 1);
  32737.                                             }, 10);
  32738.                                     },
  32739.                                 },
  32740.                                 {
  32741.                                     key: "onCLickTopName",
  32742.                                     value: function () {
  32743.                                         P.emit("gotop");
  32744.                                     },
  32745.                                 },
  32746.                                 {
  32747.                                     key: "addEvents",
  32748.                                     value: function () {
  32749.                                         this.listenUpdate(),
  32750.                                             this.listenResize(),
  32751.                                             this.listenStage(),
  32752.                                             this.titletop.addEventListener("click", this.onCLickTopName.bind(this)),
  32753.                                             P.on("camera:slide", this.cameraSlide.bind(this)),
  32754.                                             P.on("show-about", this.onShowAbout.bind(this)),
  32755.                                             P.on("hide-about", this.onHideAbout.bind(this));
  32756.                                     },
  32757.                                 },
  32758.                                 {
  32759.                                     key: "addExtensions",
  32760.                                     value: function () {
  32761.                                         new m["default"](C.browser, C.device);
  32762.                                     },
  32763.                                 },
  32764.                                 {
  32765.                                     key: "initGUI",
  32766.                                     value: function () {}
  32767.                                 },
  32768.                             ]),
  32769.                             t
  32770.                         );
  32771.                     })(A["default"]);
  32772.                 (i["default"] = L), (t.exports = i["default"]);
  32773.             },
  32774.             {
  32775.                 "../../utils/css3drenderer.js": 241,
  32776.                 "../assetloader": 224,
  32777.                 "../camera": 225,
  32778.                 "../covers": 228,
  32779.                 "../field": 232,
  32780.                 "../raycast": 235,
  32781.                 "./../../config.js": 221,
  32782.                 "./../../utils/Mediator.js": 240,
  32783.                 "./../../views/AbstractView.js": 243,
  32784.                 "dat-gui": 190,
  32785.                 three: 215,
  32786.             },
  32787.         ],
  32788.         238: [
  32789.             function (e, t, i) {
  32790.                 "use strict";
  32791.  
  32792.                 function n(e) {
  32793.                     return e && e.__esModule ? e : {
  32794.                         default: e
  32795.                     };
  32796.                 }
  32797.  
  32798.                 function r(e, t) {
  32799.                     if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
  32800.                 }
  32801.  
  32802.                 function o(e, t) {
  32803.                     if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
  32804.                     (e.prototype = Object.create(t && t.prototype, {
  32805.                         constructor: {
  32806.                             value: e,
  32807.                             enumerable: !1,
  32808.                             writable: !0,
  32809.                             configurable: !0
  32810.                         }
  32811.                     })), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : (e.__proto__ = t));
  32812.                 }
  32813.                 Object.defineProperty(i, "__esModule", {
  32814.                     value: !0
  32815.                 });
  32816.                 var a = (function () {
  32817.                         function e(e, t) {
  32818.                             for (var i = 0; i < t.length; i++) {
  32819.                                 var n = t[i];
  32820.                                 (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n);
  32821.                             }
  32822.                         }
  32823.                         return function (t, i, n) {
  32824.                             return i && e(t.prototype, i), n && e(t, n), t;
  32825.                         };
  32826.                     })(),
  32827.                     s = function (e, t, i) {
  32828.                         for (var n = !0; n;) {
  32829.                             var r = e,
  32830.                                 o = t,
  32831.                                 a = i;
  32832.                             (s = c = l = void 0), (n = !1), null === r && (r = Function.prototype);
  32833.                             var s = Object.getOwnPropertyDescriptor(r, o);
  32834.                             if (void 0 !== s) {
  32835.                                 if ("value" in s) return s.value;
  32836.                                 var l = s.get;
  32837.                                 return void 0 === l ? void 0 : l.call(a);
  32838.                             }
  32839.                             var c = Object.getPrototypeOf(r);
  32840.                             if (null === c) return void 0;
  32841.                             (e = c), (t = o), (i = a), (n = !0);
  32842.                         }
  32843.                     },
  32844.                     l = e("./../../views/AbstractView.js"),
  32845.                     c = n(l),
  32846.                     u = e("./template.html"),
  32847.                     h = n(u),
  32848.                     d = e("./../../config.js"),
  32849.                     f = n(d),
  32850.                     p = e("./../../utils/Mediator.js"),
  32851.                     m = n(p),
  32852.                     v = f["default"].instance,
  32853.                     g =
  32854.                     (m["default"].instance.emitter,
  32855.                         (function (e) {
  32856.                             function t(e) {
  32857.                                 r(this, t), s(Object.getPrototypeOf(t.prototype), "constructor", this).call(this), (this.el = document.querySelector(e));
  32858.                                 var i = {
  32859.                                     current: 1,
  32860.                                     total: v.DATAJSON.projects.length
  32861.                                 };
  32862.                                 this.render(this.el, h["default"], i), (this.container = this.el.querySelector(".grabui-container")), this.initVariables(), this.initStyles(), this.initTweens(), this.addEvents();
  32863.                             }
  32864.                             return (
  32865.                                 o(t, e),
  32866.                                 a(t, [{
  32867.                                         key: "initVariables",
  32868.                                         value: function () {
  32869.                                             (this.showDuration = 0.85),
  32870.                                             (this.hoverDuration = 0.35),
  32871.                                             (this.isDown = !1),
  32872.                                             (this.isEnter = !1),
  32873.                                             (this.cursorcontainer = this.el.querySelector(".cursor-container")),
  32874.                                             (this.burg = this.el.querySelector(".grabui-burg")),
  32875.                                             (this.arrow1 = this.el.querySelector(".first-arrow")),
  32876.                                             (this.arrow2 = this.el.querySelector(".second-arrow")),
  32877.                                             (this.nbCurrent = this.el.querySelector(".grabui-current")),
  32878.                                             (this.nbTotal = this.el.querySelector(".grabui-total")),
  32879.                                             (this.trailTop = this.el.querySelector(".timeline-trail-top")),
  32880.                                             (this.trailBot = this.el.querySelector(".timeline-trail-bot"));
  32881.                                         },
  32882.                                     },
  32883.                                     {
  32884.                                         key: "initStyles",
  32885.                                         value: function () {
  32886.                                             TweenMax.set(this.burg, {
  32887.                                                     rotation: -45
  32888.                                                 }),
  32889.                                                 TweenMax.set(this.arrow1, {
  32890.                                                     autoAlpha: 0,
  32891.                                                     transformOrigin: "50% 50%"
  32892.                                                 }),
  32893.                                                 TweenMax.set(this.arrow2, {
  32894.                                                     autoAlpha: 0,
  32895.                                                     rotation: 180,
  32896.                                                     transformOrigin: "50% 50%"
  32897.                                                 }),
  32898.                                                 TweenMax.set(this.nbCurrent, {
  32899.                                                     x: 15,
  32900.                                                     y: -15,
  32901.                                                     transformOrigin: "50% 50%"
  32902.                                                 }),
  32903.                                                 TweenMax.set(this.nbTotal, {
  32904.                                                     x: -15,
  32905.                                                     y: 15,
  32906.                                                     transformOrigin: "50% 50%"
  32907.                                                 }),
  32908.                                                 TweenMax.set(this.trailTop, {
  32909.                                                     scaleY: 0.4,
  32910.                                                     transformOrigin: "50% 0%"
  32911.                                                 }),
  32912.                                                 TweenMax.set(this.trailBot, {
  32913.                                                     scaleY: 0.4,
  32914.                                                     transformOrigin: "50% 100%"
  32915.                                                 });
  32916.                                         },
  32917.                                     },
  32918.                                     {
  32919.                                         key: "initTweens",
  32920.                                         value: function () {
  32921.                                             (this.timelineHover = new TimelineMax({
  32922.                                                 paused: !0
  32923.                                             })),
  32924.                                             this.timelineHover.add([
  32925.                                                     TweenMax.to(this.burg, this.hoverDuration / 2, {
  32926.                                                         rotation: 0,
  32927.                                                         ease: Linear.None
  32928.                                                     }),
  32929.                                                     TweenMax.to(this.arrow1, this.hoverDuration, {
  32930.                                                         y: -30,
  32931.                                                         autoAlpha: 1,
  32932.                                                         ease: Expo.EaseOut
  32933.                                                     }),
  32934.                                                     TweenMax.to(this.arrow2, this.hoverDuration, {
  32935.                                                         y: 30,
  32936.                                                         autoAlpha: 1,
  32937.                                                         ease: Expo.EaseOut
  32938.                                                     }),
  32939.                                                     TweenMax.to(this.nbCurrent, this.hoverDuration / 2, {
  32940.                                                         x: 0,
  32941.                                                         autoAlpha: 1,
  32942.                                                         ease: Circ.EaseIn
  32943.                                                     }),
  32944.                                                     TweenMax.to(this.nbCurrent, this.hoverDuration, {
  32945.                                                         y: 0,
  32946.                                                         autoAlpha: 1,
  32947.                                                         ease: Circ.EaseOut
  32948.                                                     }),
  32949.                                                     TweenMax.to(this.nbTotal, this.hoverDuration / 2, {
  32950.                                                         x: 0,
  32951.                                                         autoAlpha: 1,
  32952.                                                         ease: Circ.EaseIn
  32953.                                                     }),
  32954.                                                     TweenMax.to(this.nbTotal, this.hoverDuration, {
  32955.                                                         y: 0,
  32956.                                                         autoAlpha: 1,
  32957.                                                         ease: Circ.EaseOut
  32958.                                                     }),
  32959.                                                 ]),
  32960.                                                 (this.timeLineDrag = new TimelineMax({
  32961.                                                     paused: !0
  32962.                                                 })),
  32963.                                                 this.timeLineDrag.add([
  32964.                                                     TweenMax.to(this.arrow1, this.hoverDuration / 3, {
  32965.                                                         y: -22,
  32966.                                                         ease: Expo.EaseOut
  32967.                                                     }),
  32968.                                                     TweenMax.to(this.arrow2, this.hoverDuration / 3, {
  32969.                                                         y: 22,
  32970.                                                         ease: Expo.EaseOut
  32971.                                                     }),
  32972.                                                     TweenMax.to(this.nbCurrent, this.hoverDuration / 3, {
  32973.                                                         x: 5,
  32974.                                                         ease: Expo.EaseOut
  32975.                                                     }),
  32976.                                                     TweenMax.to(this.nbTotal, this.hoverDuration / 3, {
  32977.                                                         x: -5,
  32978.                                                         ease: Expo.EaseOut
  32979.                                                     }),
  32980.                                                 ]),
  32981.                                                 (this.timelineShow = new TimelineMax({
  32982.                                                     paused: !0
  32983.                                                 }));
  32984.                                         },
  32985.                                     },
  32986.                                     {
  32987.                                         key: "setProject",
  32988.                                         value: function (e) {
  32989.                                             this.nbCurrent.innerHTML = e + 1;
  32990.                                         },
  32991.                                     },
  32992.                                     {
  32993.                                         key: "onMouseEnter",
  32994.                                         value: function () {
  32995.                                             (this.isEnter = !0), this.timelineHover.pause(), this.timelineHover.timeScale(1).play();
  32996.                                         },
  32997.                                     },
  32998.                                     {
  32999.                                         key: "onMouseLeave",
  33000.                                         value: function () {
  33001.                                             (this.isEnter = !1), this.isDown || (this.timelineHover.pause(), this.timelineHover.timeScale(2).reverse());
  33002.                                         },
  33003.                                     },
  33004.                                     {
  33005.                                         key: "onMouseDown",
  33006.                                         value: function (e) {
  33007.                                             (this.isDown = !0), this.timeLineDrag.pause(), this.timeLineDrag.timeScale(1).play();
  33008.                                         },
  33009.                                     },
  33010.                                     {
  33011.                                         key: "onMouseUp",
  33012.                                         value: function (e) {
  33013.                                             (this.isDown = !1), this.timeLineDrag.pause(), this.isEnter ? this.timeLineDrag.timeScale(2).reverse() : this.onMouseLeave();
  33014.                                         },
  33015.                                     },
  33016.                                     {
  33017.                                         key: "mouseMove",
  33018.                                         value: function (e) {}
  33019.                                     },
  33020.                                     {
  33021.                                         key: "show",
  33022.                                         value: function () {
  33023.                                             TweenMax.killTweensOf(this.container), TweenMax.to(this.container, 1, {
  33024.                                                 autoAlpha: 1
  33025.                                             });
  33026.                                         },
  33027.                                     },
  33028.                                     {
  33029.                                         key: "hide",
  33030.                                         value: function () {
  33031.                                             TweenMax.killTweensOf(this.container), TweenMax.to(this.container, 1, {
  33032.                                                 autoAlpha: 0
  33033.                                             }), this.removeEvents(), this.timelineHover.kill();
  33034.                                         },
  33035.                                     },
  33036.                                     {
  33037.                                         key: "addEvents",
  33038.                                         value: function () {
  33039.                                             (this.enterEvent = this.onMouseEnter.bind(this)),
  33040.                                             (this.leaveEvent = this.onMouseLeave.bind(this)),
  33041.                                             this.cursorcontainer.addEventListener("mouseenter", this.enterEvent),
  33042.                                                 this.cursorcontainer.addEventListener("mouseleave", this.leaveEvent);
  33043.                                         },
  33044.                                     },
  33045.                                     {
  33046.                                         key: "removeEvents",
  33047.                                         value: function () {
  33048.                                             this.cursorcontainer.removeEventListener("mouseenter", this.enterEvent), this.cursorcontainer.removeEventListener("mouseleave", this.leaveEvent);
  33049.                                         },
  33050.                                     },
  33051.                                 ]),
  33052.                                 t
  33053.                             );
  33054.                         })(c["default"]));
  33055.                 (i["default"] = g), (t.exports = i["default"]);
  33056.             },
  33057.             {
  33058.                 "./../../config.js": 221,
  33059.                 "./../../utils/Mediator.js": 240,
  33060.                 "./../../views/AbstractView.js": 243,
  33061.                 "./template.html": 239
  33062.             },
  33063.         ],
  33064.         239: [
  33065.             function (e, t, i) {
  33066.                 t.exports =
  33067.                     "<div class='grabui-container'>nn   <div class='cursor-container'>nn                <div class='cursor'> nn                 <p class='inline number grabui-current'> {{ current }} </p>nn                   <div class='inline grabui-burg'>nn                              <div class='burg-trail one'></div>nn                    </div>nn                        <div class='arrow first-arrow'></div>n                  <div class='arrow second-arrow'></div>nn                        <p class='inline number grabui-total'> {{ total }} </p>nn               </div>nn        </div>nn        <div class='timeline'>nn                <div class='timeline-trail timeline-trail-top'></div>nn         <div class='timeline-trail timeline-trail-bot'></div>nn </div>nn</div>";
  33068.             },
  33069.             {},
  33070.         ],
  33071.         240: [
  33072.             function (e, t, i) {
  33073.                 "use strict";
  33074.  
  33075.                 function n(e) {
  33076.                     return e && e.__esModule ? e : {
  33077.                         default: e
  33078.                     };
  33079.                 }
  33080.  
  33081.                 function r(e, t) {
  33082.                     if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
  33083.                 }
  33084.                 Object.defineProperty(i, "__esModule", {
  33085.                     value: !0
  33086.                 });
  33087.                 var o = (function () {
  33088.                         function e(e, t) {
  33089.                             for (var i = 0; i < t.length; i++) {
  33090.                                 var n = t[i];
  33091.                                 (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n);
  33092.                             }
  33093.                         }
  33094.                         return function (t, i, n) {
  33095.                             return i && e(t.prototype, i), n && e(t, n), t;
  33096.                         };
  33097.                     })(),
  33098.                     a = e("event-emitter"),
  33099.                     s = n(a),
  33100.                     l = e("lethargy"),
  33101.                     c = n(l),
  33102.                     u = Symbol(),
  33103.                     h = Symbol(),
  33104.                     d = (function () {
  33105.                         function t(e) {
  33106.                             if ((r(this, t), (this.emitter = s["default"]({})), e != h)) throw "Cannot construct mediator singleton";
  33107.                         }
  33108.                         return (
  33109.                             o(
  33110.                                 t,
  33111.                                 [{
  33112.                                         key: "initDevice",
  33113.                                         value: function (e) {
  33114.                                             var t = this;
  33115.                                             (this.device = e),
  33116.                                             "desktop" == this.device ? (this.lethargy = new c["default"].Lethargy(7, 55, 0.05)) : (this.touches = {}),
  33117.                                                 (this.isScrollable = !1),
  33118.                                                 (this.listeningMouseWheel = !1),
  33119.                                                 this.addEvents(),
  33120.                                                 setTimeout(function () {
  33121.                                                     t.toggleMouseEvent(), (t.now = new Date());
  33122.                                                 }, 500);
  33123.                                         },
  33124.                                     },
  33125.                                     {
  33126.                                         key: "addEvents",
  33127.                                         value: function () {
  33128.                                             "desktop" == this.device ?
  33129.                                                 (window.addEventListener("mousemove", this.onMouseMove.bind(this)),
  33130.                                                     window.addEventListener("mouseup", this.onMouseUp.bind(this)),
  33131.                                                     window.addEventListener("resize", this.onResize.bind(this)),
  33132.                                                     window.addEventListener("keydown", this.onKeyDown.bind(this))) :
  33133.                                                 (window.DeviceOrientationEvent && window.addEventListener("deviceorientation", this.deviceorientation.bind(this)),
  33134.                                                     window.addEventListener("touchstart", this.onTouchStart.bind(this)),
  33135.                                                     window.addEventListener("touchmove", this.onMouseMove.bind(this), !1),
  33136.                                                     window.addEventListener("touchend", this.onMouseUp.bind(this)),
  33137.                                                     window.addEventListener("orientationchange", this.onResize.bind(this))),
  33138.                                                 "desktop" == this.device && ((this.addWheelListener = e("wheel").addWheelListener), (this.removeWheelListener = e("wheel").removeWheelListener)),
  33139.                                                 this.emitter.on("block-scroll", this.blockScroll.bind(this)),
  33140.                                                 this.emitter.on("allow-scroll", this.allowScroll.bind(this)),
  33141.                                                 TweenMax.ticker.addEventListener("tick", this.onUpdate.bind(this));
  33142.                                         },
  33143.                                     },
  33144.                                     {
  33145.                                         key: "onKeyDown",
  33146.                                         value: function (e) {
  33147.                                             if (this.isScrollable)
  33148.                                                 switch (e.keyCode) {
  33149.                                                 case 38:
  33150.                                                     this.checkHashScroll(1);
  33151.                                                     break;
  33152.                                                 case 40:
  33153.                                                     this.checkHashScroll(-1);
  33154.                                                 }
  33155.                                         },
  33156.                                     },
  33157.                                     {
  33158.                                         key: "onMouseMove",
  33159.                                         value: function (e) {
  33160.                                             if ((e.preventDefault(), "desktop" != this.device && this.isScrollable)) {
  33161.                                                 e = e.changedTouches[0];
  33162.                                                 var t = this.touches.y - e.clientY;
  33163.                                                 Math.abs(t) > 80 && (0 > t ? this.checkHashScroll(1) : this.checkHashScroll(-1));
  33164.                                             }
  33165.                                             var i = (e.clientX / this.w) * 2 - 1,
  33166.                                                 n = (e.clientY / this.h) * 2 - 1,
  33167.                                                 r = e.clientX / this.w,
  33168.                                                 o = e.clientY / this.h;
  33169.                                             this.emitter.emit("mousemove", {
  33170.                                                 xRatio: i,
  33171.                                                 yRatio: n,
  33172.                                                 x: e.clientX,
  33173.                                                 y: e.clientY,
  33174.                                                 fullRatioX: r,
  33175.                                                 fullRatioY: o
  33176.                                             });
  33177.                                         },
  33178.                                     },
  33179.                                     {
  33180.                                         key: "onTouchStart",
  33181.                                         value: function (e) {
  33182.                                             (this.touches.x = e.changedTouches[0].clientX), (this.touches.y = e.changedTouches[0].clientY);
  33183.                                         },
  33184.                                     },
  33185.                                     {
  33186.                                         key: "onMouseUp",
  33187.                                         value: function () {
  33188.                                             this.emitter.emit("mouseup");
  33189.                                         },
  33190.                                     },
  33191.                                     {
  33192.                                         key: "checkSwipe",
  33193.                                         value: function () {}
  33194.                                     },
  33195.                                     {
  33196.                                         key: "toggleMouseEvent",
  33197.                                         value: function () {
  33198.                                             "desktop" == this.device &&
  33199.                                                 (this.listeningMouseWheel ?
  33200.                                                     this.removeWheelListener(window, this.mouseWheelEvent) :
  33201.                                                     ((this.mouseWheelEvent = this.mousewheel.bind(this)), this.addWheelListener(window, this.mouseWheelEvent))),
  33202.                                                 (this.listeningMouseWheel = !this.listeningMouseWheel);
  33203.                                         },
  33204.                                     },
  33205.                                     {
  33206.                                         key: "deviceorientation",
  33207.                                         value: function (e) {
  33208.                                             var t = e.gamma,
  33209.                                                 i = e.beta;
  33210.                                             t > 90 && (t = 90),
  33211.                                                 -90 > t && (t = -90),
  33212.                                                 (t /= 90),
  33213.                                                 (i /= 90),
  33214.                                                 this.w < this.h ? this.emitter.emit("mousemove", {
  33215.                                                     xRatio: 4 * t,
  33216.                                                     yRatio: 4 * i
  33217.                                                 }) : this.emitter.emit("mousemove", {
  33218.                                                     xRatio: 4 * i,
  33219.                                                     yRatio: 4 * t
  33220.                                                 });
  33221.                                         },
  33222.                                     },
  33223.                                     {
  33224.                                         key: "mousewheel",
  33225.                                         value: function (e) {
  33226.                                             if (this.isScrollable) {
  33227.                                                 e.originalEvent = e;
  33228.                                                 var t = void 0;
  33229.                                                 (t = this.lethargy ? this.lethargy.check(e) : !0), t ? this.checkHashScroll(t) : e.preventDefault();
  33230.                                             } else e.preventDefault();
  33231.                                         },
  33232.                                     },
  33233.                                     {
  33234.                                         key: "checkHashScroll",
  33235.                                         value: function (e) {
  33236.                                             new Date() - this.now > 1250 && (this.emitter.emit("noninertialscroll", e), (this.now = new Date()));
  33237.                                         },
  33238.                                     },
  33239.                                     {
  33240.                                         key: "blockScroll",
  33241.                                         value: function () {
  33242.                                             this.isScrollable = !1;
  33243.                                         },
  33244.                                     },
  33245.                                     {
  33246.                                         key: "allowScroll",
  33247.                                         value: function () {
  33248.                                             this.isScrollable = !0;
  33249.                                         },
  33250.                                     },
  33251.                                     {
  33252.                                         key: "onResize",
  33253.                                         value: function (e) {
  33254.                                             var t = this;
  33255.                                             (this.w = window.innerWidth),
  33256.                                             (this.h = window.innerHeight),
  33257.                                             "desktop" != this.device ?
  33258.                                                 setTimeout(function () {
  33259.                                                     (t.w = window.innerWidth), (t.h = window.innerHeight);
  33260.                                                     var e = "";
  33261.                                                     (e = t.h >= t.w ? "block" : "none"),
  33262.                                                     (document.querySelector("#orientationside").style.display = e),
  33263.                                                     (document.body.style.height = t.h + 1 + "px"),
  33264.                                                     window.scrollTo(0, 1),
  33265.                                                         t.emitter.emit("resize", {
  33266.                                                             w: t.w,
  33267.                                                             h: t.h
  33268.                                                         });
  33269.                                                 }, 100) :
  33270.                                                 this.emitter.emit("resize", {
  33271.                                                     w: this.w,
  33272.                                                     h: this.h
  33273.                                                 });
  33274.                                         },
  33275.                                     },
  33276.                                     {
  33277.                                         key: "onUpdate",
  33278.                                         value: function () {
  33279.                                             this.emitter.emit("update");
  33280.                                         },
  33281.                                     },
  33282.                                 ],
  33283.                                 [{
  33284.                                     key: "instance",
  33285.                                     get: function () {
  33286.                                         return this[u] || (this[u] = new t(h)), this[u];
  33287.                                     },
  33288.                                 }, ]
  33289.                             ),
  33290.                             t
  33291.                         );
  33292.                     })();
  33293.                 (i["default"] = d), (t.exports = i["default"]);
  33294.             },
  33295.             {
  33296.                 "event-emitter": 194,
  33297.                 lethargy: 212,
  33298.                 wheel: 218
  33299.             },
  33300.         ],
  33301.         241: [
  33302.             function (e, t, i) {
  33303.                 "use strict";
  33304.  
  33305.                 function n(e) {
  33306.                     return e && e.__esModule ? e : {
  33307.                         default: e
  33308.                     };
  33309.                 }
  33310.  
  33311.                 function r(e, t) {
  33312.                     if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
  33313.                 }
  33314.                 Object.defineProperty(i, "__esModule", {
  33315.                     value: !0
  33316.                 });
  33317.                 var o = e("three"),
  33318.                     a = n(o),
  33319.                     s = function l(e, t) {
  33320.                         r(this, l);
  33321.                         var i = !1;
  33322.                         ("Safari" == e || "desktop" != t) && (i = !0),
  33323.                         (a["default"].CSS3DObject = function (e) {
  33324.                             a["default"].Object3D.call(this),
  33325.                                 (this.element = e),
  33326.                                 (this.element.style.position = "absolute"),
  33327.                                 this.addEventListener("removed", function (e) {
  33328.                                     null !== this.element.parentNode && this.element.parentNode.removeChild(this.element);
  33329.                                 });
  33330.                         }),
  33331.                         (a["default"].CSS3DObject.prototype = Object.create(a["default"].Object3D.prototype)),
  33332.                         (a["default"].CSS3DObject.prototype.constructor = a["default"].CSS3DObject),
  33333.                         (a["default"].CSS3DSprite = function (e) {
  33334.                             a["default"].CSS3DObject.call(this, e);
  33335.                         }),
  33336.                         (a["default"].CSS3DSprite.prototype = Object.create(a["default"].CSS3DObject.prototype)),
  33337.                         (a["default"].CSS3DSprite.prototype.constructor = a["default"].CSS3DSprite),
  33338.                         (a["default"].CSS3DRenderer = function () {
  33339.                             var e,
  33340.                                 t,
  33341.                                 n,
  33342.                                 r,
  33343.                                 o = new a["default"].Matrix4(),
  33344.                                 s = {
  33345.                                     camera: {
  33346.                                         fov: 0,
  33347.                                         style: ""
  33348.                                     },
  33349.                                     objects: {}
  33350.                                 },
  33351.                                 l = document.createElement("div");
  33352.                             (l.style.overflow = "hidden"),
  33353.                             (l.style.WebkitTransformStyle = "preserve-3d"),
  33354.                             (l.style.MozTransformStyle = "preserve-3d"),
  33355.                             (l.style.oTransformStyle = "preserve-3d"),
  33356.                             (l.style.transformStyle = "preserve-3d"),
  33357.                             (this.domElement = l);
  33358.                             var c = document.createElement("div");
  33359.                             (c.style.WebkitTransformStyle = "preserve-3d"),
  33360.                             (c.style.MozTransformStyle = "preserve-3d"),
  33361.                             (c.style.oTransformStyle = "preserve-3d"),
  33362.                             (c.style.transformStyle = "preserve-3d"),
  33363.                             l.appendChild(c),
  33364.                                 (this.setClearColor = function () {}),
  33365.                                 (this.getSize = function () {
  33366.                                     return {
  33367.                                         width: e,
  33368.                                         height: t
  33369.                                     };
  33370.                                 }),
  33371.                                 (this.setSize = function (i, o) {
  33372.                                     (e = i), (t = o), (n = e / 2), (r = t / 2), (l.style.width = i + "px"), (l.style.height = o + "px"), (c.style.width = i + "px"), (c.style.height = o + "px");
  33373.                                 });
  33374.                             var u,
  33375.                                 h = function (e) {
  33376.                                     return Number(e) === e && e % 1 === 0;
  33377.                                 };
  33378.                             u = i ?
  33379.                                 function (e) {
  33380.                                     return Math.abs(e) < Number.EPSILON ? 0 : h(e) ? e : e.toFixed(8);
  33381.                                 } :
  33382.                                 function (e) {
  33383.                                     return Math.abs(e) < Number.EPSILON ? 0 : e;
  33384.                                 };
  33385.                             var d = function (e) {
  33386.                                     var t = e.elements;
  33387.                                     return (
  33388.                                         "matrix3d(" +
  33389.                                         u(t[0]) +
  33390.                                         "," +
  33391.                                         u(-t[1]) +
  33392.                                         "," +
  33393.                                         u(t[2]) +
  33394.                                         "," +
  33395.                                         u(t[3]) +
  33396.                                         "," +
  33397.                                         u(t[4]) +
  33398.                                         "," +
  33399.                                         u(-t[5]) +
  33400.                                         "," +
  33401.                                         u(t[6]) +
  33402.                                         "," +
  33403.                                         u(t[7]) +
  33404.                                         "," +
  33405.                                         u(t[8]) +
  33406.                                         "," +
  33407.                                         u(-t[9]) +
  33408.                                         "," +
  33409.                                         u(t[10]) +
  33410.                                         "," +
  33411.                                         u(t[11]) +
  33412.                                         "," +
  33413.                                         u(t[12]) +
  33414.                                         "," +
  33415.                                         u(-t[13]) +
  33416.                                         "," +
  33417.                                         u(t[14]) +
  33418.                                         "," +
  33419.                                         u(t[15]) +
  33420.                                         ")"
  33421.                                     );
  33422.                                 },
  33423.                                 f = function (e) {
  33424.                                     var t = e.elements;
  33425.                                     return (
  33426.                                         "translate3d(-50%,-50%,0) matrix3d(" +
  33427.                                         u(t[0]) +
  33428.                                         "," +
  33429.                                         u(t[1]) +
  33430.                                         "," +
  33431.                                         u(t[2]) +
  33432.                                         "," +
  33433.                                         u(t[3]) +
  33434.                                         "," +
  33435.                                         u(-t[4]) +
  33436.                                         "," +
  33437.                                         u(-t[5]) +
  33438.                                         "," +
  33439.                                         u(-t[6]) +
  33440.                                         "," +
  33441.                                         u(-t[7]) +
  33442.                                         "," +
  33443.                                         u(t[8]) +
  33444.                                         "," +
  33445.                                         u(t[9]) +
  33446.                                         "," +
  33447.                                         u(t[10]) +
  33448.                                         "," +
  33449.                                         u(t[11]) +
  33450.                                         "," +
  33451.                                         u(t[12]) +
  33452.                                         "," +
  33453.                                         u(t[13]) +
  33454.                                         "," +
  33455.                                         u(t[14]) +
  33456.                                         "," +
  33457.                                         u(t[15]) +
  33458.                                         ")"
  33459.                                     );
  33460.                                 },
  33461.                                 p = function m(e, t) {
  33462.                                     if (e instanceof a["default"].CSS3DObject) {
  33463.                                         var i;
  33464.                                         e instanceof a["default"].CSS3DSprite ?
  33465.                                             (o.copy(t.matrixWorldInverse),
  33466.                                                 o.transpose(),
  33467.                                                 o.copyPosition(e.matrixWorld),
  33468.                                                 o.scale(e.scale),
  33469.                                                 (o.elements[3] = 0),
  33470.                                                 (o.elements[7] = 0),
  33471.                                                 (o.elements[11] = 0),
  33472.                                                 (o.elements[15] = 1),
  33473.                                                 (i = f(o))) :
  33474.                                             (i = f(e.matrixWorld));
  33475.                                         var n = e.element,
  33476.                                             r = s.objects[e.id];
  33477.                                         (void 0 === r || r !== i) && ((n.style.WebkitTransform = i), (n.style.MozTransform = i), (n.style.oTransform = i), (n.style.transform = i), (s.objects[e.id] = i)),
  33478.                                         n.parentNode !== c && c.appendChild(n);
  33479.                                     }
  33480.                                     for (var l = 0, u = e.children.length; u > l; l++) m(e.children[l], t);
  33481.                                 };
  33482.                             this.render = function (e, i) {
  33483.                                 var o = (0.5 / Math.tan(a["default"].Math.degToRad(0.5 * i.fov))) * t;
  33484.                                 s.camera.fov !== o && ((l.style.WebkitPerspective = o + "px"), (l.style.MozPerspective = o + "px"), (l.style.oPerspective = o + "px"), (l.style.perspective = o + "px"), (s.camera.fov = o)),
  33485.                                     e.updateMatrixWorld(),
  33486.                                     null === i.parent && i.updateMatrixWorld(),
  33487.                                     i.matrixWorldInverse.getInverse(i.matrixWorld);
  33488.                                 var u = "translate3d(0,0," + o + "px)" + d(i.matrixWorldInverse) + " translate3d(" + n + "px," + r + "px, 0)";
  33489.                                 s.camera.style !== u && ((c.style.WebkitTransform = u), (c.style.MozTransform = u), (c.style.oTransform = u), (c.style.transform = u), (s.camera.style = u)), p(e, i);
  33490.                             };
  33491.                         });
  33492.                     };
  33493.                 (i["default"] = s), (t.exports = i["default"]);
  33494.             },
  33495.             {
  33496.                 three: 215
  33497.             },
  33498.         ],
  33499.         242: [
  33500.             function (e, t, i) {
  33501.                 "use strict";
  33502.  
  33503.                 function n(e) {
  33504.                     return e && e.__esModule ? e : {
  33505.                         default: e
  33506.                     };
  33507.                 }
  33508.  
  33509.                 function r(e, t) {
  33510.                     if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
  33511.                 }
  33512.                 Object.defineProperty(i, "__esModule", {
  33513.                     value: !0
  33514.                 });
  33515.                 var o = (function () {
  33516.                         function e(e, t) {
  33517.                             for (var i = 0; i < t.length; i++) {
  33518.                                 var n = t[i];
  33519.                                 (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n);
  33520.                             }
  33521.                         }
  33522.                         return function (t, i, n) {
  33523.                             return i && e(t.prototype, i), n && e(t, n), t;
  33524.                         };
  33525.                     })(),
  33526.                     a = e("imagepack"),
  33527.                     s = n(a),
  33528.                     l = e("./../config.js"),
  33529.                     c = n(l),
  33530.                     u = c["default"].instance,
  33531.                     h = (function () {
  33532.                         function e(t, i, n) {
  33533.                             r(this, e), (this.onprogresscb = i), (this.onendcb = n), (this.ctx = t);
  33534.                         }
  33535.                         return (
  33536.                             o(e, [{
  33537.                                     key: "load",
  33538.                                     value: function (e) {
  33539.                                         var t = this;
  33540.                                         this.imagepack = new s["default"]({
  33541.                                                 verbose: !1
  33542.                                             })
  33543.                                             .on("error", function (e) {})
  33544.                                             .on("progress", function (e) {
  33545.                                                 t.onprogresscb(t.ctx, e);
  33546.                                             })
  33547.                                             .once("load", function (e) {
  33548.                                                 (t.ctx.names = e), t.onendcb(t.ctx);
  33549.                                             })
  33550.                                             .load(u.IMAGEPACK_PATH + e + ".bin");
  33551.                                     },
  33552.                                 },
  33553.                                 {
  33554.                                     key: "get",
  33555.                                     value: function (e) {
  33556.                                         return this.imagepack.getURI(e);
  33557.                                     },
  33558.                                 },
  33559.                             ]),
  33560.                             e
  33561.                         );
  33562.                     })();
  33563.                 (i["default"] = h), (t.exports = i["default"]);
  33564.             },
  33565.             {
  33566.                 "./../config.js": 221,
  33567.                 imagepack: 211
  33568.             },
  33569.         ],
  33570.         243: [
  33571.             function (e, t, i) {
  33572.                 "use strict";
  33573.  
  33574.                 function n(e) {
  33575.                     return e && e.__esModule ? e : {
  33576.                         default: e
  33577.                     };
  33578.                 }
  33579.  
  33580.                 function r(e, t) {
  33581.                     if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
  33582.                 }
  33583.                 Object.defineProperty(i, "__esModule", {
  33584.                     value: !0
  33585.                 });
  33586.                 var o = (function () {
  33587.                         function e(e, t) {
  33588.                             for (var i = 0; i < t.length; i++) {
  33589.                                 var n = t[i];
  33590.                                 (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n);
  33591.                             }
  33592.                         }
  33593.                         return function (t, i, n) {
  33594.                             return i && e(t.prototype, i), n && e(t, n), t;
  33595.                         };
  33596.                     })(),
  33597.                     a = e("./../utils/Mediator.js"),
  33598.                     s = n(a),
  33599.                     l = e("./../config.js"),
  33600.                     c = n(l),
  33601.                     u = e("mustache"),
  33602.                     h = n(u),
  33603.                     d = (function () {
  33604.                         function e() {
  33605.                             r(this, e), (this.mediator = s["default"].instance), (this.config = c["default"].instance);
  33606.                         }
  33607.                         return (
  33608.                             o(e, [{
  33609.                                     key: "render",
  33610.                                     value: function (e, t, i) {
  33611.                                         var n = h["default"].render(t, i);
  33612.                                         e.innerHTML = n;
  33613.                                     },
  33614.                                 },
  33615.                                 {
  33616.                                     key: "listenUpdate",
  33617.                                     value: function () {
  33618.                                         (this.onUpdateEvent = this.onUpdate.bind(this)), this.mediator.emitter.on("update", this.onUpdateEvent);
  33619.                                     },
  33620.                                 },
  33621.                                 {
  33622.                                     key: "removeListenUpdate",
  33623.                                     value: function () {
  33624.                                         this.mediator.emitter.off("update", this.onUpdateEvent);
  33625.                                     },
  33626.                                 },
  33627.                                 {
  33628.                                     key: "listenResize",
  33629.                                     value: function () {
  33630.                                         (this.resizeEvent = this.onResize.bind(this)), this.mediator.emitter.on("resize", this.resizeEvent);
  33631.                                     },
  33632.                                 },
  33633.                                 {
  33634.                                     key: "removeListenResize",
  33635.                                     value: function () {
  33636.                                         this.mediator.emitter.off("resize", this.resizeEvent);
  33637.                                     },
  33638.                                 },
  33639.                                 {
  33640.                                     key: "listenNonInertialScroll",
  33641.                                     value: function () {
  33642.                                         this.mediator.emitter.on("noninertialscroll", this.onNonInertialScroll.bind(this));
  33643.                                     },
  33644.                                 },
  33645.                                 {
  33646.                                     key: "listenStage",
  33647.                                     value: function () {
  33648.                                         (this.onStageEvent = this.onStage.bind(this)), this.mediator.emitter.on("stage", this.onStageEvent);
  33649.                                     },
  33650.                                 },
  33651.                                 {
  33652.                                     key: "onStage",
  33653.                                     value: function () {}
  33654.                                 },
  33655.                             ]),
  33656.                             e
  33657.                         );
  33658.                     })();
  33659.                 (i["default"] = d), (t.exports = i["default"]);
  33660.             },
  33661.             {
  33662.                 "./../config.js": 221,
  33663.                 "./../utils/Mediator.js": 240,
  33664.                 mustache: 213
  33665.             },
  33666.         ],
  33667.         244: [
  33668.             function (e, t, i) {
  33669.                 "use strict";
  33670.  
  33671.                 function n(e) {
  33672.                     return e && e.__esModule ? e : {
  33673.                         default: e
  33674.                     };
  33675.                 }
  33676.  
  33677.                 function r(e, t) {
  33678.                     if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
  33679.                 }
  33680.  
  33681.                 function o(e, t) {
  33682.                     if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
  33683.                     (e.prototype = Object.create(t && t.prototype, {
  33684.                         constructor: {
  33685.                             value: e,
  33686.                             enumerable: !1,
  33687.                             writable: !0,
  33688.                             configurable: !0
  33689.                         }
  33690.                     })), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : (e.__proto__ = t));
  33691.                 }
  33692.                 Object.defineProperty(i, "__esModule", {
  33693.                     value: !0
  33694.                 });
  33695.                 var a = (function () {
  33696.                         function e(e, t) {
  33697.                             for (var i = 0; i < t.length; i++) {
  33698.                                 var n = t[i];
  33699.                                 (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n);
  33700.                             }
  33701.                         }
  33702.                         return function (t, i, n) {
  33703.                             return i && e(t.prototype, i), n && e(t, n), t;
  33704.                         };
  33705.                     })(),
  33706.                     s = function (e, t, i) {
  33707.                         for (var n = !0; n;) {
  33708.                             var r = e,
  33709.                                 o = t,
  33710.                                 a = i;
  33711.                             (s = c = l = void 0), (n = !1), null === r && (r = Function.prototype);
  33712.                             var s = Object.getOwnPropertyDescriptor(r, o);
  33713.                             if (void 0 !== s) {
  33714.                                 if ("value" in s) return s.value;
  33715.                                 var l = s.get;
  33716.                                 return void 0 === l ? void 0 : l.call(a);
  33717.                             }
  33718.                             var c = Object.getPrototypeOf(r);
  33719.                             if (null === c) return void 0;
  33720.                             (e = c), (t = o), (i = a), (n = !0);
  33721.                         }
  33722.                     },
  33723.                     l = e("./../../config.js"),
  33724.                     c = n(l),
  33725.                     u = e("./../../utils/Mediator.js"),
  33726.                     h = n(u),
  33727.                     d = e("./../AbstractView.js"),
  33728.                     f = n(d),
  33729.                     p = e("./template.html"),
  33730.                     m = n(p),
  33731.                     v = e("./templatemobile.html"),
  33732.                     g = n(v),
  33733.                     y = c["default"].instance,
  33734.                     _ = h["default"].instance.emitter,
  33735.                     b = (function (e) {
  33736.                         function t() {
  33737.                             r(this, t), s(Object.getPrototypeOf(t.prototype), "constructor", this).call(this), (this.el = document.querySelector(".about"));
  33738.                             var e = {
  33739.                                     wording: y.DATAJSON.wording.about
  33740.                                 },
  33741.                                 i = "phone" == y.device ? g["default"] : m["default"];
  33742.                             this.render(this.el, i, e), this.initVariables(), this.addEvents();
  33743.                         }
  33744.                         return (
  33745.                             o(t, e),
  33746.                             a(t, [{
  33747.                                     key: "show",
  33748.                                     value: function () {
  33749.                                         this.showTimeline.timeScale(1).play();
  33750.                                     },
  33751.                                 },
  33752.                                 {
  33753.                                     key: "hide",
  33754.                                     value: function () {
  33755.                                         this.showTimeline.timeScale(2).reverse();
  33756.                                     },
  33757.                                 },
  33758.                                 {
  33759.                                     key: "hideDom",
  33760.                                     value: function () {}
  33761.                                 },
  33762.                                 {
  33763.                                     key: "initVariables",
  33764.                                     value: function () {
  33765.                                         TweenMax.set(this.el, {
  33766.                                                 autoAlpha: 0
  33767.                                             }),
  33768.                                             (this.animated = this.el.querySelectorAll(".animated")),
  33769.                                             TweenMax.set(this.animated, {
  33770.                                                 y: -6,
  33771.                                                 autoAlpha: 0
  33772.                                             }),
  33773.                                             (this.showTimeline = new TimelineMax({
  33774.                                                 paused: !0
  33775.                                             })),
  33776.                                             this.showTimeline.add([new TweenMax.to(this.el, 0.5, {
  33777.                                                 autoAlpha: 1
  33778.                                             })]),
  33779.                                             this.showTimeline.add([new TweenMax.staggerTo(this.animated, 0.4, {
  33780.                                                 y: 0,
  33781.                                                 autoAlpha: 1,
  33782.                                                 ease: Expo.EaseOut
  33783.                                             }, 0.05)]);
  33784.                                     },
  33785.                                 },
  33786.                                 {
  33787.                                     key: "addEvents",
  33788.                                     value: function () {
  33789.                                         _.on("show-about", this.show.bind(this)), _.on("hide-about", this.hide.bind(this));
  33790.                                     },
  33791.                                 },
  33792.                             ]),
  33793.                             t
  33794.                         );
  33795.                     })(f["default"]);
  33796.                 (i["default"] = b), (t.exports = i["default"]);
  33797.             },
  33798.             {
  33799.                 "./../../config.js": 221,
  33800.                 "./../../utils/Mediator.js": 240,
  33801.                 "./../AbstractView.js": 243,
  33802.                 "./template.html": 245,
  33803.                 "./templatemobile.html": 246
  33804.             },
  33805.         ],
  33806.         245: [
  33807.             function (e, t, i) {
  33808.                 t.exports =
  33809.                     "<div class='about-wrapper'>nn      <h1 class='title1 animated'>{{ wording.title1 }}</h1>n  <h2 class='title2 animated'>{{ wording.title2 }}</h2>nn <p class='description animated'>{{{ wording.description }}}</p>nn       <div class='about-tables'>nn            <div class='about-table left'>nn                        <h3 class='animated'> {{ wording.recognition }} </h3>nn                 <ul> nn                         {{#wording.recognitions}}nn                                   <li class="animated"> {{.}} </li>nn                               {{/wording.recognitions}}nn                     </ul>n                  nn              </div>nn                <div class='about-table right'>nn                       <h3 class="animated"> {{ wording.experience }} </h3>nn                  <ul>n                           {{#wording.experiences}}nn                                    <li class="animated"> {{.}} </li>nn                               {{/wording.experiences}}nn                      </ul>nn         </div>nn        </div>nnn       <div class='about-links'>nn             <ul> nn                 {{#wording.links}}nn                          <li class="animated"> <a href='{{url}}' target='_blank'> {{name}} </a> </li>nn                    {{/wording.links}}nn            <ul> nn </div>nn        <p class='greeting animated'> Coded with hate, love and drugs by <a href='http://samsy.ninja' target='_blank'> Samsy </a>  </p>nn</div>nn";
  33810.             },
  33811.             {},
  33812.         ],
  33813.         246: [
  33814.             function (e, t, i) {
  33815.                 t.exports =
  33816.                     "<div class='about-wrapper'>nn      <h1 class='title1 animated'>{{ wording.title1 }}</h1>n  <h2 class='title2 animated'>{{ wording.title2 }}</h2>nnn        <div class='about-links'>nn             <ul> nn                 {{#wording.links}}nn                          <li class="animated"> <a href='{{url}}' target='_blank'> {{name}} </a> </li>nn                    {{/wording.links}}nn            <ul> nn </div>nn        <p class='greeting animated'> Coded with hate, love and drugs by <a href='http://samsy.ninja' target='_blank'> Samsy </a>  </p>nn</div>nn";
  33817.             },
  33818.             {},
  33819.         ],
  33820.         247: [
  33821.             function (e, t, i) {
  33822.                 "use strict";
  33823.  
  33824.                 function n(e) {
  33825.                     return e && e.__esModule ? e : {
  33826.                         default: e
  33827.                     };
  33828.                 }
  33829.  
  33830.                 function r(e, t) {
  33831.                     if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
  33832.                 }
  33833.  
  33834.                 function o(e, t) {
  33835.                     if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
  33836.                     (e.prototype = Object.create(t && t.prototype, {
  33837.                         constructor: {
  33838.                             value: e,
  33839.                             enumerable: !1,
  33840.                             writable: !0,
  33841.                             configurable: !0
  33842.                         }
  33843.                     })), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : (e.__proto__ = t));
  33844.                 }
  33845.                 Object.defineProperty(i, "__esModule", {
  33846.                     value: !0
  33847.                 });
  33848.                 var a = (function () {
  33849.                         function e(e, t) {
  33850.                             for (var i = 0; i < t.length; i++) {
  33851.                                 var n = t[i];
  33852.                                 (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n);
  33853.                             }
  33854.                         }
  33855.                         return function (t, i, n) {
  33856.                             return i && e(t.prototype, i), n && e(t, n), t;
  33857.                         };
  33858.                     })(),
  33859.                     s = function (e, t, i) {
  33860.                         for (var n = !0; n;) {
  33861.                             var r = e,
  33862.                                 o = t,
  33863.                                 a = i;
  33864.                             (s = c = l = void 0), (n = !1), null === r && (r = Function.prototype);
  33865.                             var s = Object.getOwnPropertyDescriptor(r, o);
  33866.                             if (void 0 !== s) {
  33867.                                 if ("value" in s) return s.value;
  33868.                                 var l = s.get;
  33869.                                 return void 0 === l ? void 0 : l.call(a);
  33870.                             }
  33871.                             var c = Object.getPrototypeOf(r);
  33872.                             if (null === c) return void 0;
  33873.                             (e = c), (t = o), (i = a), (n = !0);
  33874.                         }
  33875.                     },
  33876.                     l = e("./../../config.js"),
  33877.                     c = n(l),
  33878.                     u = e("./../../utils/Mediator.js"),
  33879.                     h = n(u),
  33880.                     d = e("./../AbstractView.js"),
  33881.                     f = n(d),
  33882.                     p = e("./../../ui/grabui"),
  33883.                     m = n(p),
  33884.                     v = (e("dat-gui").GUI, c["default"].instance),
  33885.                     g = h["default"].instance.emitter,
  33886.                     y = (function (e) {
  33887.                         function t() {
  33888.                             r(this, t),
  33889.                                 s(Object.getPrototypeOf(t.prototype), "constructor", this).call(this),
  33890.                                 (this.ui = new m["default"](".grab", {})),
  33891.                                 this.initVariables(),
  33892.                                 this.onStage({
  33893.                                     actual: 0
  33894.                                 }),
  33895.                                 this.listenStage(),
  33896.                                 this.listenResize();
  33897.                         }
  33898.                         return (
  33899.                             o(t, e),
  33900.                             a(t, [{
  33901.                                     key: "initVariables",
  33902.                                     value: function () {
  33903.                                         (this.timelinetrail = document.querySelector(".timeline")),
  33904.                                         TweenMax.set(this.timelinetrail, {
  33905.                                                 scaleY: 0,
  33906.                                                 transformOrigin: "50% 0%"
  33907.                                             }),
  33908.                                             (this.stageCount = v.DATAJSON.projects.length),
  33909.                                             (this.actualproject = 1),
  33910.                                             (this.percentHeight = 0.8),
  33911.                                             (this.realRatioActualProject = 1),
  33912.                                             (this.realPixelDiff = 60),
  33913.                                             (this.pixelDiff = 0),
  33914.                                             (this.diff = Number(((1 - this.percentHeight) / 2).toFixed(2))),
  33915.                                             (this.cursorSlide = this.diff),
  33916.                                             (this.w = 0),
  33917.                                             (this.h = 0),
  33918.                                             (this.scaleTop = 0),
  33919.                                             (this.scaleBot = 0),
  33920.                                             (this.animDuration = 1.3),
  33921.                                             (this.ease = new Ease(BezierEasing(0.81, 0.19, 0.15, 0.86)));
  33922.                                     },
  33923.                                 },
  33924.                                 {
  33925.                                     key: "onStage",
  33926.                                     value: function (e) {
  33927.                                         e.actual < 0 ? this.hide() : 0 == e.actual && -1 == e.last && this.show(),
  33928.                                             (this.actualproject = e.actual),
  33929.                                             this.ui.setProject(this.actualproject < 0 ? 0 : this.actualproject),
  33930.                                             (this.percenttrail = (1 / (this.stageCount - 1)) * this.actualproject),
  33931.                                             (this.percentTop = (this.percentHeight / (this.stageCount - 1)) * this.actualproject),
  33932.                                             this.moveCursor();
  33933.                                     },
  33934.                                 },
  33935.                                 {
  33936.                                     key: "show",
  33937.                                     value: function () {
  33938.                                         this.ui.show(), TweenMax.killTweensOf(this.timelinetrail), TweenMax.to(this.timelinetrail, 1.5, {
  33939.                                             delay: 0.8,
  33940.                                             scaleY: 1,
  33941.                                             ease: v.defaultEase
  33942.                                         }), this.addEvents();
  33943.                                     },
  33944.                                 },
  33945.                                 {
  33946.                                     key: "hide",
  33947.                                     value: function () {
  33948.                                         this.ui.hide(), TweenMax.killTweensOf(this.timelinetrail), TweenMax.to(this.timelinetrail, 0.8, {
  33949.                                             scaleY: 0,
  33950.                                             ease: this.ease
  33951.                                         }), this.removeEvents();
  33952.                                     },
  33953.                                 },
  33954.                                 {
  33955.                                     key: "calcCurrentProject",
  33956.                                     value: function () {
  33957.                                         var e = Math.floor((this.percentTop / this.percentHeight) * (this.stageCount - 1) + 0.5);
  33958.                                         (this.realRatioActualProject = (this.percentTop / this.percentHeight) * (this.stageCount - 1)), (this.actualproject = e), this.ui.setProject(this.actualproject < 0 ? 0 : this.actualproject);
  33959.                                     },
  33960.                                 },
  33961.                                 {
  33962.                                     key: "moveCursor",
  33963.                                     value: function (e) {
  33964.                                         this.calculateTrailScale();
  33965.                                         var t = this.ui.isDown ? 0.1 : this.animDuration;
  33966.                                         e && (t = 0),
  33967.                                             TweenMax.to(this.ui.trailTop, t, {
  33968.                                                 scaleY: this.scaleTop,
  33969.                                                 ease: this.ease
  33970.                                             }),
  33971.                                             TweenMax.to(this.ui.trailBot, t, {
  33972.                                                 scaleY: this.scaleBot,
  33973.                                                 ease: this.ease
  33974.                                             }),
  33975.                                             TweenMax.to(this.ui.cursorcontainer, t, {
  33976.                                                 y: this.h * this.percentTop - 38,
  33977.                                                 ease: this.ease
  33978.                                             });
  33979.                                     },
  33980.                                 },
  33981.                                 {
  33982.                                     key: "calculateTrailScale",
  33983.                                     value: function () {
  33984.                                         (this.scaleBot = 1 - this.percenttrail - this.pixelDiff), this.scaleBot < 0 && (this.scaleBot = 0), (this.scaleTop = this.percenttrail - this.pixelDiff), this.scaleTop < 0 && (this.scaleTop = 0);
  33985.                                     },
  33986.                                 },
  33987.                                 {
  33988.                                     key: "magnetism",
  33989.                                     value: function () {
  33990.                                         var e = 1 / this.stageCount,
  33991.                                             t = e * (this.stageCount - 1),
  33992.                                             i = (e * this.actualproject) / t;
  33993.                                         g.emit("camera:slide", i);
  33994.                                     },
  33995.                                 },
  33996.                                 {
  33997.                                     key: "onMouseUp",
  33998.                                     value: function () {
  33999.                                         this.ui.isDown && (this.ui.onMouseUp(), this.magnetism(), g.emit("camera:front")), (this.ui.isDown = !1);
  34000.                                     },
  34001.                                 },
  34002.                                 {
  34003.                                     key: "onMouseDown",
  34004.                                     value: function () {
  34005.                                         g.emit("camera:back"), this.ui.onMouseDown(), this.calcCurrentProject(), g.emit("slide:projectchange", this.actualproject, this.realRatioActualProject);
  34006.                                     },
  34007.                                 },
  34008.                                 {
  34009.                                     key: "onMouseMove",
  34010.                                     value: function (e) {
  34011.                                         this.ui.isDown &&
  34012.                                             (e &&
  34013.                                                 ((this.oldFullRatio = e.fullRatioY),
  34014.                                                     e.fullRatioY < this.diff ? (this.cursorSlide = 0) : e.fullRatioY > 1 - this.diff ? (this.cursorSlide = 1 - 2 * this.diff) : (this.cursorSlide = e.fullRatioY - this.diff)),
  34015.                                                 (this.percentTop = this.cursorSlide),
  34016.                                                 (this.percenttrail = 1.25 * this.cursorSlide),
  34017.                                                 this.calculateTrailScale(),
  34018.                                                 this.moveCursor(),
  34019.                                                 this.calcCurrentProject(),
  34020.                                                 g.emit("camera:slide", this.percenttrail),
  34021.                                                 g.emit("slide:projectchange", this.actualproject, this.realRatioActualProject),
  34022.                                                 g.emit("raycast:changestage", this.actualproject));
  34023.                                     },
  34024.                                 },
  34025.                                 {
  34026.                                     key: "onResize",
  34027.                                     value: function (e) {
  34028.                                         (this.w = e.w), (this.h = e.h), (this.pixelDiff = this.realPixelDiff / (this.h * this.percentHeight)), this.calculateTrailScale(), this.moveCursor(!0);
  34029.                                     },
  34030.                                 },
  34031.                                 {
  34032.                                     key: "addEvents",
  34033.                                     value: function () {
  34034.                                         (this.onmouseupevent = this.onMouseUp.bind(this)),
  34035.                                         g.on("mouseup", this.onmouseupevent),
  34036.                                             (this.onmousedownevent = this.onMouseDown.bind(this)),
  34037.                                             this.ui.cursorcontainer.addEventListener("mousedown", this.onmousedownevent),
  34038.                                             (this.onmousemoveevent = this.onMouseMove.bind(this)),
  34039.                                             g.on("mousemove", this.onmousemoveevent);
  34040.                                     },
  34041.                                 },
  34042.                                 {
  34043.                                     key: "removeEvents",
  34044.                                     value: function () {
  34045.                                         g.off("mouseup", this.onmouseupevent), this.ui.cursorcontainer.removeEventListener("mousedown", this.onmousedownevent), g.off("mousemove", this.onmousemoveevent);
  34046.                                     },
  34047.                                 },
  34048.                                 {
  34049.                                     key: "initGUI",
  34050.                                     value: function () {}
  34051.                                 },
  34052.                             ]),
  34053.                             t
  34054.                         );
  34055.                     })(f["default"]);
  34056.                 (i["default"] = y), (t.exports = i["default"]);
  34057.             },
  34058.             {
  34059.                 "./../../config.js": 221,
  34060.                 "./../../ui/grabui": 238,
  34061.                 "./../../utils/Mediator.js": 240,
  34062.                 "./../AbstractView.js": 243,
  34063.                 "dat-gui": 190
  34064.             },
  34065.         ],
  34066.         248: [
  34067.             function (e, t, i) {
  34068.                 "use strict";
  34069.  
  34070.                 function n(e) {
  34071.                     return e && e.__esModule ? e : {
  34072.                         default: e
  34073.                     };
  34074.                 }
  34075.  
  34076.                 function r(e, t) {
  34077.                     if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
  34078.                 }
  34079.                 Object.defineProperty(i, "__esModule", {
  34080.                     value: !0
  34081.                 });
  34082.                 var o = (function () {
  34083.                         function e(e, t) {
  34084.                             for (var i = 0; i < t.length; i++) {
  34085.                                 var n = t[i];
  34086.                                 (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n);
  34087.                             }
  34088.                         }
  34089.                         return function (t, i, n) {
  34090.                             return i && e(t.prototype, i), n && e(t, n), t;
  34091.                         };
  34092.                     })(),
  34093.                     a = e("./../../config.js"),
  34094.                     s = n(a),
  34095.                     l = e("./../../utils/Mediator.js"),
  34096.                     c = n(l),
  34097.                     u = e("./../../modules/preloadbinaries/index.js"),
  34098.                     h = n(u),
  34099.                     d = s["default"].instance,
  34100.                     f = c["default"].instance.emitter,
  34101.                     p = (function () {
  34102.                         function e() {
  34103.                             r(this, e), this.preloadCovers();
  34104.                         }
  34105.                         return (
  34106.                             o(e, [{
  34107.                                     key: "preloadCovers",
  34108.                                     value: function () {
  34109.                                         var e = void 0;
  34110.                                         (e = ("desktop" == d.device || d.devicePixelRatio < 2, "coverssd")), (this.PreloadBinariesCover = new h["default"]("covers", e, this.coverPreloaded.bind(this), this.progression.bind(this)));
  34111.                                     },
  34112.                                 },
  34113.                                 {
  34114.                                     key: "progression",
  34115.                                     value: function (e) {}
  34116.                                 },
  34117.                                 {
  34118.                                     key: "coverPreloaded",
  34119.                                     value: function (e) {
  34120.                                         (this.coverPackLoader = e), (d.coverUrls = this.coverPackLoader.urls), f.emit("coverLoaded");
  34121.                                     },
  34122.                                 },
  34123.                             ]),
  34124.                             e
  34125.                         );
  34126.                     })();
  34127.                 (i["default"] = p), (t.exports = i["default"]);
  34128.             },
  34129.             {
  34130.                 "./../../config.js": 221,
  34131.                 "./../../modules/preloadbinaries/index.js": 234,
  34132.                 "./../../utils/Mediator.js": 240
  34133.             },
  34134.         ],
  34135.         249: [
  34136.             function (e, t, i) {
  34137.                 "use strict";
  34138.  
  34139.                 function n(e) {
  34140.                     return e && e.__esModule ? e : {
  34141.                         default: e
  34142.                     };
  34143.                 }
  34144.  
  34145.                 function r(e, t) {
  34146.                     if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
  34147.                 }
  34148.  
  34149.                 function o(e, t) {
  34150.                     if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
  34151.                     (e.prototype = Object.create(t && t.prototype, {
  34152.                         constructor: {
  34153.                             value: e,
  34154.                             enumerable: !1,
  34155.                             writable: !0,
  34156.                             configurable: !0
  34157.                         }
  34158.                     })), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : (e.__proto__ = t));
  34159.                 }
  34160.                 Object.defineProperty(i, "__esModule", {
  34161.                     value: !0
  34162.                 });
  34163.                 var a = (function () {
  34164.                         function e(e, t) {
  34165.                             for (var i = 0; i < t.length; i++) {
  34166.                                 var n = t[i];
  34167.                                 (n.enumerable = n.enumerable || !1), (n.configurable = !0), "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n);
  34168.                             }
  34169.                         }
  34170.                         return function (t, i, n) {
  34171.                             return i && e(t.prototype, i), n && e(t, n), t;
  34172.                         };
  34173.                     })(),
  34174.                     s = function (e, t, i) {
  34175.                         for (var n = !0; n;) {
  34176.                             var r = e,
  34177.                                 o = t,
  34178.                                 a = i;
  34179.                             (s = c = l = void 0), (n = !1), null === r && (r = Function.prototype);
  34180.                             var s = Object.getOwnPropertyDescriptor(r, o);
  34181.                             if (void 0 !== s) {
  34182.                                 if ("value" in s) return s.value;
  34183.                                 var l = s.get;
  34184.                                 return void 0 === l ? void 0 : l.call(a);
  34185.                             }
  34186.                             var c = Object.getPrototypeOf(r);
  34187.                             if (null === c) return void 0;
  34188.                             (e = c), (t = o), (i = a), (n = !0);
  34189.                         }
  34190.                     },
  34191.                     l = e("./../../config.js"),
  34192.                     c = n(l),
  34193.                     u = e("./../../utils/Mediator.js"),
  34194.                     h = n(u),
  34195.                     d = e("./../AbstractView.js"),
  34196.                     f = n(d),
  34197.                     p = e("./template.html"),
  34198.                     m = n(p),
  34199.                     v = (e("dat-gui").GUI, c["default"].instance),
  34200.                     g = h["default"].instance.emitter,
  34201.                     y = (function (e) {
  34202.                         function t() {
  34203.                             r(this, t), s(Object.getPrototypeOf(t.prototype), "constructor", this).call(this);
  34204.                             var e = {
  34205.                                 wording: v.DATAJSON.wording.nav
  34206.                             };
  34207.                             (this.el = document.querySelector(".nav")), this.render(this.el, m["default"], e), this.initVariables(), this.addEvents(), TweenMax.set(this.el, {
  34208.                                 autoAlpha: 0
  34209.                             });
  34210.                         }
  34211.                         return (
  34212.                             o(t, e),
  34213.                             a(t, [{
  34214.                                     key: "initVariables",
  34215.                                     value: function () {
  34216.                                         (this.aboutButton = this.el.querySelector(".nav-about-wrapper")), (this.element = this.el.querySelector(".nav-about")), (this.isAboutVisible = !1);
  34217.                                     },
  34218.                                 },
  34219.                                 {
  34220.                                     key: "toggleAbout",
  34221.                                     value: function () {
  34222.                                         (this.isAboutVisible = !this.isAboutVisible),
  34223.                                         this.isAboutVisible ? (g.emit("block-scroll"), g.emit("show-about"), (this.element.innerHTML = "Close")) : (g.emit("allow-scroll"), g.emit("hide-about"), (this.element.innerHTML = "About"));
  34224.                                     },
  34225.                                 },
  34226.                                 {
  34227.                                     key: "show",
  34228.                                     value: function () {
  34229.                                         TweenMax.to(this.el, 1, {
  34230.                                             autoAlpha: 1,
  34231.                                             delay: 1
  34232.                                         });
  34233.                                     },
  34234.                                 },
  34235.                                 {
  34236.                                     key: "addEvents",
  34237.                                     value: function () {
  34238.                                         (this.aboutButtonEvent = this.toggleAbout.bind(this)), this.aboutButton.addEventListener("click", this.aboutButtonEvent), g.on("world3D:ready", this.show.bind(this));
  34239.                                     },
  34240.                                 },
  34241.                                 {
  34242.                                     key: "removeEvents",
  34243.                                     value: function () {
  34244.                                         this.aboutButton.removeEventListener("click", this.aboutButtonEvent);
  34245.                                     },
  34246.                                 },
  34247.                             ]),
  34248.                             t
  34249.                         );
  34250.                     })(f["default"]);
  34251.                 (i["default"] = y), (t.exports = i["default"]);
  34252.             },
  34253.             {
  34254.                 "./../../config.js": 221,
  34255.                 "./../../utils/Mediator.js": 240,
  34256.                 "./../AbstractView.js": 243,
  34257.                 "./template.html": 250,
  34258.                 "dat-gui": 190
  34259.             },
  34260.         ],
  34261.         250: [
  34262.             function (e, t, i) {
  34263.                 t.exports =
  34264.                     "<div class='nav-left nav-transform'>nn     <div class='nav-about-wrapper'>nn               <h3 class='nav-about'> {{ wording.about }} </h3>nn      </div>nn</div>nnn<div class='nav-mail-wrapper nav-transform-right nav-right'>nnn        <h3 class='nav-mail'>  <a href="mailto:{{ wording.mail }}?subject=Hello steven"> {{ wording.mail }}</a> </h3>nn</div>nnnnn";
  34265.             },
  34266.             {},
  34267.         ],
  34268.     }, {},
  34269.     [223]
  34270. );