"use strict";
(self["webpackChunkclimb_onyx_gui_extension"] = self["webpackChunkclimb_onyx_gui_extension"] || []).push([["vendors-node_modules_climb-onyx-gui_dist_climb-onyx-gui_js"],{

/***/ "./node_modules/climb-onyx-gui/dist/climb-onyx-gui.js":
/*!************************************************************!*\
  !*** ./node_modules/climb-onyx-gui/dist/climb-onyx-gui.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ lH)
/* harmony export */ });
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "webpack/sharing/consume/default/react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);



function lv(s) {
  return s && s.__esModule && Object.prototype.hasOwnProperty.call(s, "default") ? s.default : s;
}
var zS = { exports: {} };
/*!
	Copyright (c) 2018 Jed Watson.
	Licensed under the MIT License (MIT), see
	http://jedwatson.github.io/classnames
*/
(function(s) {
  (function() {
    var o = {}.hasOwnProperty;
    function E() {
      for (var K = "", M = 0; M < arguments.length; M++) {
        var L = arguments[M];
        L && (K = P(K, z(L)));
      }
      return K;
    }
    function z(K) {
      if (typeof K == "string" || typeof K == "number")
        return K;
      if (typeof K != "object")
        return "";
      if (Array.isArray(K))
        return E.apply(null, K);
      if (K.toString !== Object.prototype.toString && !K.toString.toString().includes("[native code]"))
        return K.toString();
      var M = "";
      for (var L in K)
        o.call(K, L) && K[L] && (M = P(M, L));
      return M;
    }
    function P(K, M) {
      return M ? K ? K + " " + M : K + M : K;
    }
    s.exports ? (E.default = E, s.exports = E) : window.classNames = E;
  })();
})(zS);
var IR = zS.exports;
const bn = /* @__PURE__ */ lv(IR), _S = ["xxl", "xl", "lg", "md", "sm", "xs"], HS = "xs", $g = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createContext({
  prefixes: {},
  breakpoints: _S,
  minBreakpoint: HS
});
function kn(s, o) {
  const {
    prefixes: E
  } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)($g);
  return s || E[o] || o;
}
function b3() {
  const {
    breakpoints: s
  } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)($g);
  return s;
}
function x3() {
  const {
    minBreakpoint: s
  } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)($g);
  return s;
}
function NR() {
  const {
    dir: s
  } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)($g);
  return s === "rtl";
}
var Jx = { exports: {} }, dg = { exports: {} }, Oa = {};
/** @license React v16.13.1
 * react-is.production.min.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
var JA;
function OR() {
  if (JA)
    return Oa;
  JA = 1;
  var s = typeof Symbol == "function" && Symbol.for, o = s ? Symbol.for("react.element") : 60103, E = s ? Symbol.for("react.portal") : 60106, z = s ? Symbol.for("react.fragment") : 60107, P = s ? Symbol.for("react.strict_mode") : 60108, K = s ? Symbol.for("react.profiler") : 60114, M = s ? Symbol.for("react.provider") : 60109, L = s ? Symbol.for("react.context") : 60110, r = s ? Symbol.for("react.async_mode") : 60111, a = s ? Symbol.for("react.concurrent_mode") : 60111, p = s ? Symbol.for("react.forward_ref") : 60112, l = s ? Symbol.for("react.suspense") : 60113, f = s ? Symbol.for("react.suspense_list") : 60120, u = s ? Symbol.for("react.memo") : 60115, c = s ? Symbol.for("react.lazy") : 60116, d = s ? Symbol.for("react.block") : 60121, h = s ? Symbol.for("react.fundamental") : 60117, i = s ? Symbol.for("react.responder") : 60118, b = s ? Symbol.for("react.scope") : 60119;
  function x(C) {
    if (typeof C == "object" && C !== null) {
      var w = C.$$typeof;
      switch (w) {
        case o:
          switch (C = C.type, C) {
            case r:
            case a:
            case z:
            case K:
            case P:
            case l:
              return C;
            default:
              switch (C = C && C.$$typeof, C) {
                case L:
                case p:
                case c:
                case u:
                case M:
                  return C;
                default:
                  return w;
              }
          }
        case E:
          return w;
      }
    }
  }
  function D(C) {
    return x(C) === a;
  }
  return Oa.AsyncMode = r, Oa.ConcurrentMode = a, Oa.ContextConsumer = L, Oa.ContextProvider = M, Oa.Element = o, Oa.ForwardRef = p, Oa.Fragment = z, Oa.Lazy = c, Oa.Memo = u, Oa.Portal = E, Oa.Profiler = K, Oa.StrictMode = P, Oa.Suspense = l, Oa.isAsyncMode = function(C) {
    return D(C) || x(C) === r;
  }, Oa.isConcurrentMode = D, Oa.isContextConsumer = function(C) {
    return x(C) === L;
  }, Oa.isContextProvider = function(C) {
    return x(C) === M;
  }, Oa.isElement = function(C) {
    return typeof C == "object" && C !== null && C.$$typeof === o;
  }, Oa.isForwardRef = function(C) {
    return x(C) === p;
  }, Oa.isFragment = function(C) {
    return x(C) === z;
  }, Oa.isLazy = function(C) {
    return x(C) === c;
  }, Oa.isMemo = function(C) {
    return x(C) === u;
  }, Oa.isPortal = function(C) {
    return x(C) === E;
  }, Oa.isProfiler = function(C) {
    return x(C) === K;
  }, Oa.isStrictMode = function(C) {
    return x(C) === P;
  }, Oa.isSuspense = function(C) {
    return x(C) === l;
  }, Oa.isValidElementType = function(C) {
    return typeof C == "string" || typeof C == "function" || C === z || C === a || C === K || C === P || C === l || C === f || typeof C == "object" && C !== null && (C.$$typeof === c || C.$$typeof === u || C.$$typeof === M || C.$$typeof === L || C.$$typeof === p || C.$$typeof === h || C.$$typeof === i || C.$$typeof === b || C.$$typeof === d);
  }, Oa.typeOf = x, Oa;
}
var Pa = {};
/** @license React v16.13.1
 * react-is.development.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
var QA;
function PR() {
  return QA || (QA = 1,  true && function() {
    var s = typeof Symbol == "function" && Symbol.for, o = s ? Symbol.for("react.element") : 60103, E = s ? Symbol.for("react.portal") : 60106, z = s ? Symbol.for("react.fragment") : 60107, P = s ? Symbol.for("react.strict_mode") : 60108, K = s ? Symbol.for("react.profiler") : 60114, M = s ? Symbol.for("react.provider") : 60109, L = s ? Symbol.for("react.context") : 60110, r = s ? Symbol.for("react.async_mode") : 60111, a = s ? Symbol.for("react.concurrent_mode") : 60111, p = s ? Symbol.for("react.forward_ref") : 60112, l = s ? Symbol.for("react.suspense") : 60113, f = s ? Symbol.for("react.suspense_list") : 60120, u = s ? Symbol.for("react.memo") : 60115, c = s ? Symbol.for("react.lazy") : 60116, d = s ? Symbol.for("react.block") : 60121, h = s ? Symbol.for("react.fundamental") : 60117, i = s ? Symbol.for("react.responder") : 60118, b = s ? Symbol.for("react.scope") : 60119;
    function x(Ce) {
      return typeof Ce == "string" || typeof Ce == "function" || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
      Ce === z || Ce === a || Ce === K || Ce === P || Ce === l || Ce === f || typeof Ce == "object" && Ce !== null && (Ce.$$typeof === c || Ce.$$typeof === u || Ce.$$typeof === M || Ce.$$typeof === L || Ce.$$typeof === p || Ce.$$typeof === h || Ce.$$typeof === i || Ce.$$typeof === b || Ce.$$typeof === d);
    }
    function D(Ce) {
      if (typeof Ce == "object" && Ce !== null) {
        var Re = Ce.$$typeof;
        switch (Re) {
          case o:
            var Be = Ce.type;
            switch (Be) {
              case r:
              case a:
              case z:
              case K:
              case P:
              case l:
                return Be;
              default:
                var xe = Be && Be.$$typeof;
                switch (xe) {
                  case L:
                  case p:
                  case c:
                  case u:
                  case M:
                    return xe;
                  default:
                    return Re;
                }
            }
          case E:
            return Re;
        }
      }
    }
    var C = r, w = a, S = L, T = M, k = o, A = p, R = z, g = c, I = u, O = E, $ = K, Y = P, ne = l, q = !1;
    function B(Ce) {
      return q || (q = !0, console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")), X(Ce) || D(Ce) === r;
    }
    function X(Ce) {
      return D(Ce) === a;
    }
    function U(Ce) {
      return D(Ce) === L;
    }
    function te(Ce) {
      return D(Ce) === M;
    }
    function se(Ce) {
      return typeof Ce == "object" && Ce !== null && Ce.$$typeof === o;
    }
    function me(Ce) {
      return D(Ce) === p;
    }
    function J(Ce) {
      return D(Ce) === z;
    }
    function W(Ce) {
      return D(Ce) === c;
    }
    function ae(Ce) {
      return D(Ce) === u;
    }
    function oe(Ce) {
      return D(Ce) === E;
    }
    function ve(Ce) {
      return D(Ce) === K;
    }
    function fe(Ce) {
      return D(Ce) === P;
    }
    function ye(Ce) {
      return D(Ce) === l;
    }
    Pa.AsyncMode = C, Pa.ConcurrentMode = w, Pa.ContextConsumer = S, Pa.ContextProvider = T, Pa.Element = k, Pa.ForwardRef = A, Pa.Fragment = R, Pa.Lazy = g, Pa.Memo = I, Pa.Portal = O, Pa.Profiler = $, Pa.StrictMode = Y, Pa.Suspense = ne, Pa.isAsyncMode = B, Pa.isConcurrentMode = X, Pa.isContextConsumer = U, Pa.isContextProvider = te, Pa.isElement = se, Pa.isForwardRef = me, Pa.isFragment = J, Pa.isLazy = W, Pa.isMemo = ae, Pa.isPortal = oe, Pa.isProfiler = ve, Pa.isStrictMode = fe, Pa.isSuspense = ye, Pa.isValidElementType = x, Pa.typeOf = D;
  }()), Pa;
}
var KA;
function T3() {
  return KA || (KA = 1,  false ? 0 : dg.exports = PR()), dg.exports;
}
/*
object-assign
(c) Sindre Sorhus
@license MIT
*/
var Ax, qA;
function FR() {
  if (qA)
    return Ax;
  qA = 1;
  var s = Object.getOwnPropertySymbols, o = Object.prototype.hasOwnProperty, E = Object.prototype.propertyIsEnumerable;
  function z(K) {
    if (K == null)
      throw new TypeError("Object.assign cannot be called with null or undefined");
    return Object(K);
  }
  function P() {
    try {
      if (!Object.assign)
        return !1;
      var K = new String("abc");
      if (K[5] = "de", Object.getOwnPropertyNames(K)[0] === "5")
        return !1;
      for (var M = {}, L = 0; L < 10; L++)
        M["_" + String.fromCharCode(L)] = L;
      var r = Object.getOwnPropertyNames(M).map(function(p) {
        return M[p];
      });
      if (r.join("") !== "0123456789")
        return !1;
      var a = {};
      return "abcdefghijklmnopqrst".split("").forEach(function(p) {
        a[p] = p;
      }), Object.keys(Object.assign({}, a)).join("") === "abcdefghijklmnopqrst";
    } catch {
      return !1;
    }
  }
  return Ax = P() ? Object.assign : function(K, M) {
    for (var L, r = z(K), a, p = 1; p < arguments.length; p++) {
      L = Object(arguments[p]);
      for (var l in L)
        o.call(L, l) && (r[l] = L[l]);
      if (s) {
        a = s(L);
        for (var f = 0; f < a.length; f++)
          E.call(L, a[f]) && (r[a[f]] = L[a[f]]);
      }
    }
    return r;
  }, Ax;
}
var wx, ew;
function C3() {
  if (ew)
    return wx;
  ew = 1;
  var s = "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";
  return wx = s, wx;
}
var Sx, tw;
function BS() {
  return tw || (tw = 1, Sx = Function.call.bind(Object.prototype.hasOwnProperty)), Sx;
}
var Mx, rw;
function zR() {
  if (rw)
    return Mx;
  rw = 1;
  var s = function() {
  };
  if (true) {
    var o = C3(), E = {}, z = BS();
    s = function(K) {
      var M = "Warning: " + K;
      typeof console < "u" && console.error(M);
      try {
        throw new Error(M);
      } catch {
      }
    };
  }
  function P(K, M, L, r, a) {
    if (true) {
      for (var p in K)
        if (z(K, p)) {
          var l;
          try {
            if (typeof K[p] != "function") {
              var f = Error(
                (r || "React class") + ": " + L + " type `" + p + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof K[p] + "`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`."
              );
              throw f.name = "Invariant Violation", f;
            }
            l = K[p](M, p, r, L, null, o);
          } catch (c) {
            l = c;
          }
          if (l && !(l instanceof Error) && s(
            (r || "React class") + ": type specification of " + L + " `" + p + "` is invalid; the type checker function must return `null` or an `Error` but returned a " + typeof l + ". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."
          ), l instanceof Error && !(l.message in E)) {
            E[l.message] = !0;
            var u = a ? a() : "";
            s(
              "Failed " + L + " type: " + l.message + (u ?? "")
            );
          }
        }
    }
  }
  return P.resetWarningCache = function() {
     true && (E = {});
  }, Mx = P, Mx;
}
var Ex, nw;
function _R() {
  if (nw)
    return Ex;
  nw = 1;
  var s = T3(), o = FR(), E = C3(), z = BS(), P = zR(), K = function() {
  };
   true && (K = function(L) {
    var r = "Warning: " + L;
    typeof console < "u" && console.error(r);
    try {
      throw new Error(r);
    } catch {
    }
  });
  function M() {
    return null;
  }
  return Ex = function(L, r) {
    var a = typeof Symbol == "function" && Symbol.iterator, p = "@@iterator";
    function l(X) {
      var U = X && (a && X[a] || X[p]);
      if (typeof U == "function")
        return U;
    }
    var f = "<<anonymous>>", u = {
      array: i("array"),
      bigint: i("bigint"),
      bool: i("boolean"),
      func: i("function"),
      number: i("number"),
      object: i("object"),
      string: i("string"),
      symbol: i("symbol"),
      any: b(),
      arrayOf: x,
      element: D(),
      elementType: C(),
      instanceOf: w,
      node: A(),
      objectOf: T,
      oneOf: S,
      oneOfType: k,
      shape: g,
      exact: I
    };
    function c(X, U) {
      return X === U ? X !== 0 || 1 / X === 1 / U : X !== X && U !== U;
    }
    function d(X, U) {
      this.message = X, this.data = U && typeof U == "object" ? U : {}, this.stack = "";
    }
    d.prototype = Error.prototype;
    function h(X) {
      if (true)
        var U = {}, te = 0;
      function se(J, W, ae, oe, ve, fe, ye) {
        if (oe = oe || f, fe = fe || ae, ye !== E) {
          if (r) {
            var Ce = new Error(
              "Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types"
            );
            throw Ce.name = "Invariant Violation", Ce;
          } else if ( true && typeof console < "u") {
            var Re = oe + ":" + ae;
            !U[Re] && // Avoid spamming the console because they are often not actionable except for lib authors
            te < 3 && (K(
              "You are manually calling a React.PropTypes validation function for the `" + fe + "` prop on `" + oe + "`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."
            ), U[Re] = !0, te++);
          }
        }
        return W[ae] == null ? J ? W[ae] === null ? new d("The " + ve + " `" + fe + "` is marked as required " + ("in `" + oe + "`, but its value is `null`.")) : new d("The " + ve + " `" + fe + "` is marked as required in " + ("`" + oe + "`, but its value is `undefined`.")) : null : X(W, ae, oe, ve, fe);
      }
      var me = se.bind(null, !1);
      return me.isRequired = se.bind(null, !0), me;
    }
    function i(X) {
      function U(te, se, me, J, W, ae) {
        var oe = te[se], ve = Y(oe);
        if (ve !== X) {
          var fe = ne(oe);
          return new d(
            "Invalid " + J + " `" + W + "` of type " + ("`" + fe + "` supplied to `" + me + "`, expected ") + ("`" + X + "`."),
            { expectedType: X }
          );
        }
        return null;
      }
      return h(U);
    }
    function b() {
      return h(M);
    }
    function x(X) {
      function U(te, se, me, J, W) {
        if (typeof X != "function")
          return new d("Property `" + W + "` of component `" + me + "` has invalid PropType notation inside arrayOf.");
        var ae = te[se];
        if (!Array.isArray(ae)) {
          var oe = Y(ae);
          return new d("Invalid " + J + " `" + W + "` of type " + ("`" + oe + "` supplied to `" + me + "`, expected an array."));
        }
        for (var ve = 0; ve < ae.length; ve++) {
          var fe = X(ae, ve, me, J, W + "[" + ve + "]", E);
          if (fe instanceof Error)
            return fe;
        }
        return null;
      }
      return h(U);
    }
    function D() {
      function X(U, te, se, me, J) {
        var W = U[te];
        if (!L(W)) {
          var ae = Y(W);
          return new d("Invalid " + me + " `" + J + "` of type " + ("`" + ae + "` supplied to `" + se + "`, expected a single ReactElement."));
        }
        return null;
      }
      return h(X);
    }
    function C() {
      function X(U, te, se, me, J) {
        var W = U[te];
        if (!s.isValidElementType(W)) {
          var ae = Y(W);
          return new d("Invalid " + me + " `" + J + "` of type " + ("`" + ae + "` supplied to `" + se + "`, expected a single ReactElement type."));
        }
        return null;
      }
      return h(X);
    }
    function w(X) {
      function U(te, se, me, J, W) {
        if (!(te[se] instanceof X)) {
          var ae = X.name || f, oe = B(te[se]);
          return new d("Invalid " + J + " `" + W + "` of type " + ("`" + oe + "` supplied to `" + me + "`, expected ") + ("instance of `" + ae + "`."));
        }
        return null;
      }
      return h(U);
    }
    function S(X) {
      if (!Array.isArray(X))
        return  true && (arguments.length > 1 ? K(
          "Invalid arguments supplied to oneOf, expected an array, got " + arguments.length + " arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z])."
        ) : K("Invalid argument supplied to oneOf, expected an array.")), M;
      function U(te, se, me, J, W) {
        for (var ae = te[se], oe = 0; oe < X.length; oe++)
          if (c(ae, X[oe]))
            return null;
        var ve = JSON.stringify(X, function(ye, Ce) {
          var Re = ne(Ce);
          return Re === "symbol" ? String(Ce) : Ce;
        });
        return new d("Invalid " + J + " `" + W + "` of value `" + String(ae) + "` " + ("supplied to `" + me + "`, expected one of " + ve + "."));
      }
      return h(U);
    }
    function T(X) {
      function U(te, se, me, J, W) {
        if (typeof X != "function")
          return new d("Property `" + W + "` of component `" + me + "` has invalid PropType notation inside objectOf.");
        var ae = te[se], oe = Y(ae);
        if (oe !== "object")
          return new d("Invalid " + J + " `" + W + "` of type " + ("`" + oe + "` supplied to `" + me + "`, expected an object."));
        for (var ve in ae)
          if (z(ae, ve)) {
            var fe = X(ae, ve, me, J, W + "." + ve, E);
            if (fe instanceof Error)
              return fe;
          }
        return null;
      }
      return h(U);
    }
    function k(X) {
      if (!Array.isArray(X))
        return  true && K("Invalid argument supplied to oneOfType, expected an instance of array."), M;
      for (var U = 0; U < X.length; U++) {
        var te = X[U];
        if (typeof te != "function")
          return K(
            "Invalid argument supplied to oneOfType. Expected an array of check functions, but received " + q(te) + " at index " + U + "."
          ), M;
      }
      function se(me, J, W, ae, oe) {
        for (var ve = [], fe = 0; fe < X.length; fe++) {
          var ye = X[fe], Ce = ye(me, J, W, ae, oe, E);
          if (Ce == null)
            return null;
          Ce.data && z(Ce.data, "expectedType") && ve.push(Ce.data.expectedType);
        }
        var Re = ve.length > 0 ? ", expected one of type [" + ve.join(", ") + "]" : "";
        return new d("Invalid " + ae + " `" + oe + "` supplied to " + ("`" + W + "`" + Re + "."));
      }
      return h(se);
    }
    function A() {
      function X(U, te, se, me, J) {
        return O(U[te]) ? null : new d("Invalid " + me + " `" + J + "` supplied to " + ("`" + se + "`, expected a ReactNode."));
      }
      return h(X);
    }
    function R(X, U, te, se, me) {
      return new d(
        (X || "React class") + ": " + U + " type `" + te + "." + se + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + me + "`."
      );
    }
    function g(X) {
      function U(te, se, me, J, W) {
        var ae = te[se], oe = Y(ae);
        if (oe !== "object")
          return new d("Invalid " + J + " `" + W + "` of type `" + oe + "` " + ("supplied to `" + me + "`, expected `object`."));
        for (var ve in X) {
          var fe = X[ve];
          if (typeof fe != "function")
            return R(me, J, W, ve, ne(fe));
          var ye = fe(ae, ve, me, J, W + "." + ve, E);
          if (ye)
            return ye;
        }
        return null;
      }
      return h(U);
    }
    function I(X) {
      function U(te, se, me, J, W) {
        var ae = te[se], oe = Y(ae);
        if (oe !== "object")
          return new d("Invalid " + J + " `" + W + "` of type `" + oe + "` " + ("supplied to `" + me + "`, expected `object`."));
        var ve = o({}, te[se], X);
        for (var fe in ve) {
          var ye = X[fe];
          if (z(X, fe) && typeof ye != "function")
            return R(me, J, W, fe, ne(ye));
          if (!ye)
            return new d(
              "Invalid " + J + " `" + W + "` key `" + fe + "` supplied to `" + me + "`.\nBad object: " + JSON.stringify(te[se], null, "  ") + `
Valid keys: ` + JSON.stringify(Object.keys(X), null, "  ")
            );
          var Ce = ye(ae, fe, me, J, W + "." + fe, E);
          if (Ce)
            return Ce;
        }
        return null;
      }
      return h(U);
    }
    function O(X) {
      switch (typeof X) {
        case "number":
        case "string":
        case "undefined":
          return !0;
        case "boolean":
          return !X;
        case "object":
          if (Array.isArray(X))
            return X.every(O);
          if (X === null || L(X))
            return !0;
          var U = l(X);
          if (U) {
            var te = U.call(X), se;
            if (U !== X.entries) {
              for (; !(se = te.next()).done; )
                if (!O(se.value))
                  return !1;
            } else
              for (; !(se = te.next()).done; ) {
                var me = se.value;
                if (me && !O(me[1]))
                  return !1;
              }
          } else
            return !1;
          return !0;
        default:
          return !1;
      }
    }
    function $(X, U) {
      return X === "symbol" ? !0 : U ? U["@@toStringTag"] === "Symbol" || typeof Symbol == "function" && U instanceof Symbol : !1;
    }
    function Y(X) {
      var U = typeof X;
      return Array.isArray(X) ? "array" : X instanceof RegExp ? "object" : $(U, X) ? "symbol" : U;
    }
    function ne(X) {
      if (typeof X > "u" || X === null)
        return "" + X;
      var U = Y(X);
      if (U === "object") {
        if (X instanceof Date)
          return "date";
        if (X instanceof RegExp)
          return "regexp";
      }
      return U;
    }
    function q(X) {
      var U = ne(X);
      switch (U) {
        case "array":
        case "object":
          return "an " + U;
        case "boolean":
        case "date":
        case "regexp":
          return "a " + U;
        default:
          return U;
      }
    }
    function B(X) {
      return !X.constructor || !X.constructor.name ? f : X.constructor.name;
    }
    return u.checkPropTypes = P, u.resetWarningCache = P.resetWarningCache, u.PropTypes = u, u;
  }, Ex;
}
var Dx, aw;
function HR() {
  if (aw)
    return Dx;
  aw = 1;
  var s = C3();
  function o() {
  }
  function E() {
  }
  return E.resetWarningCache = o, Dx = function() {
    function z(M, L, r, a, p, l) {
      if (l !== s) {
        var f = new Error(
          "Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types"
        );
        throw f.name = "Invariant Violation", f;
      }
    }
    z.isRequired = z;
    function P() {
      return z;
    }
    var K = {
      array: z,
      bigint: z,
      bool: z,
      func: z,
      number: z,
      object: z,
      string: z,
      symbol: z,
      any: z,
      arrayOf: P,
      element: z,
      elementType: z,
      instanceOf: P,
      node: z,
      objectOf: P,
      oneOf: P,
      oneOfType: P,
      shape: P,
      exact: P,
      checkPropTypes: E,
      resetWarningCache: o
    };
    return K.PropTypes = K, K;
  }, Dx;
}
if (true) {
  var BR = T3(), VR = !0;
  Jx.exports = _R()(BR.isElement, VR);
} else
  {}
var VS = Jx.exports;
const Nn = /* @__PURE__ */ lv(VS);
function GR(s, o = _S, E = HS) {
  const z = [];
  return Object.entries(s).forEach(([P, K]) => {
    K != null && (typeof K == "object" ? o.forEach((M) => {
      const L = K[M];
      if (L != null) {
        const r = M !== E ? `-${M}` : "";
        z.push(`${P}${r}-${L}`);
      }
    }) : z.push(`${P}-${K}`));
  }), z;
}
const Ql = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  as: s = "div",
  bsPrefix: o,
  className: E,
  direction: z,
  gap: P,
  ...K
}, M) => {
  o = kn(o, z === "horizontal" ? "hstack" : "vstack");
  const L = b3(), r = x3();
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(s, {
    ...K,
    ref: M,
    className: bn(E, o, ...GR({
      gap: P
    }, L, r))
  });
});
Ql.displayName = "Stack";
function GS(s, o, E) {
  const z = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(s !== void 0), [P, K] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(o), M = s !== void 0, L = z.current;
  return z.current = M, !M && L && P !== o && K(o), [M ? s : P, (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((...r) => {
    const [a, ...p] = r;
    let l = E == null ? void 0 : E(a, ...p);
    return K(a), l;
  }, [E])];
}
const Rg = {
  prefix: String(Math.round(Math.random() * 1e10)),
  current: 0
}, US = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1___default().createContext(Rg), UR = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1___default().createContext(!1);
let WR = !!(typeof window < "u" && window.document && window.document.createElement), Rx = /* @__PURE__ */ new WeakMap();
function YR(s = !1) {
  let o = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(US), E = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
  if (E.current === null && !s) {
    var z, P;
    let K = (P = (react__WEBPACK_IMPORTED_MODULE_1___default().__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED)) === null || P === void 0 || (z = P.ReactCurrentOwner) === null || z === void 0 ? void 0 : z.current;
    if (K) {
      let M = Rx.get(K);
      M == null ? Rx.set(K, {
        id: o.current,
        state: K.memoizedState
      }) : K.memoizedState !== M.state && (o.current = M.id, Rx.delete(K));
    }
    E.current = ++o.current;
  }
  return E.current;
}
function XR(s) {
  let o = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(US);
  o === Rg && !WR && console.warn("When server rendering, you must wrap your application in an <SSRProvider> to ensure consistent ids are generated between the client and server.");
  let E = YR(!!s), z = o === Rg && "development" === "test" ? 0 : `react-aria${o.prefix}`;
  return s || `${z}-${E}`;
}
function jR(s) {
  let o = react__WEBPACK_IMPORTED_MODULE_1___default().useId(), [E] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(QR()), z = E || "development" === "test" ? "react-aria" : `react-aria${Rg.prefix}`;
  return s || `${z}-${o}`;
}
const WS = typeof (react__WEBPACK_IMPORTED_MODULE_1___default().useId) == "function" ? jR : XR;
function ZR() {
  return !1;
}
function $R() {
  return !0;
}
function JR(s) {
  return () => {
  };
}
function QR() {
  return typeof (react__WEBPACK_IMPORTED_MODULE_1___default().useSyncExternalStore) == "function" ? react__WEBPACK_IMPORTED_MODULE_1___default().useSyncExternalStore(JR, ZR, $R) : (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(UR);
}
const ep = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createContext(null), Uu = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createContext(null), av = (s, o = null) => s != null ? String(s) : o || null;
function KR(s) {
  const o = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(s);
  return (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
    o.current = s;
  }, [s]), o;
}
function Oi(s) {
  const o = KR(s);
  return (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(function(...E) {
    return o.current && o.current(...E);
  }, [o]);
}
const iw = (s) => !s || typeof s == "function" ? s : (o) => {
  s.current = o;
};
function qR(s, o) {
  const E = iw(s), z = iw(o);
  return (P) => {
    E && E(P), z && z(P);
  };
}
function ed(s, o) {
  return (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => qR(s, o), [s, o]);
}
function A3({
  children: s,
  in: o,
  onExited: E,
  mountOnEnter: z,
  unmountOnExit: P
}) {
  const K = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null), M = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(o), L = Oi(E);
  (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
    o ? M.current = !0 : L(K.current);
  }, [o, L]);
  const r = ed(K, s.ref), a = /* @__PURE__ */ (0,react__WEBPACK_IMPORTED_MODULE_1__.cloneElement)(s, {
    ref: r
  });
  return o ? a : P || !M.current && z ? null : a;
}
const eL = ["active", "eventKey", "mountOnEnter", "transition", "unmountOnExit", "role", "onEnter", "onEntering", "onEntered", "onExit", "onExiting", "onExited"], tL = ["activeKey", "getControlledId", "getControllerId"], rL = ["as"];
function Qx(s, o) {
  if (s == null)
    return {};
  var E = {}, z = Object.keys(s), P, K;
  for (K = 0; K < z.length; K++)
    P = z[K], !(o.indexOf(P) >= 0) && (E[P] = s[P]);
  return E;
}
function YS(s) {
  let {
    active: o,
    eventKey: E,
    mountOnEnter: z,
    transition: P,
    unmountOnExit: K,
    role: M = "tabpanel",
    onEnter: L,
    onEntering: r,
    onEntered: a,
    onExit: p,
    onExiting: l,
    onExited: f
  } = s, u = Qx(s, eL);
  const c = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(ep);
  if (!c)
    return [Object.assign({}, u, {
      role: M
    }), {
      eventKey: E,
      isActive: o,
      mountOnEnter: z,
      transition: P,
      unmountOnExit: K,
      onEnter: L,
      onEntering: r,
      onEntered: a,
      onExit: p,
      onExiting: l,
      onExited: f
    }];
  const {
    activeKey: d,
    getControlledId: h,
    getControllerId: i
  } = c, b = Qx(c, tL), x = av(E);
  return [Object.assign({}, u, {
    role: M,
    id: h(E),
    "aria-labelledby": i(E)
  }), {
    eventKey: E,
    isActive: o == null && x != null ? av(d) === x : o,
    transition: P || b.transition,
    mountOnEnter: z ?? b.mountOnEnter,
    unmountOnExit: K ?? b.unmountOnExit,
    onEnter: L,
    onEntering: r,
    onEntered: a,
    onExit: p,
    onExiting: l,
    onExited: f
  }];
}
const XS = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(
  // Need to define the default "as" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595
  (s, o) => {
    let {
      as: E = "div"
    } = s, z = Qx(s, rL);
    const [P, {
      isActive: K,
      onEnter: M,
      onEntering: L,
      onEntered: r,
      onExit: a,
      onExiting: p,
      onExited: l,
      mountOnEnter: f,
      unmountOnExit: u,
      transition: c = A3
    }] = YS(z);
    return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ep.Provider, {
      value: null,
      children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Uu.Provider, {
        value: null,
        children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(c, {
          in: K,
          onEnter: M,
          onEntering: L,
          onEntered: r,
          onExit: a,
          onExiting: p,
          onExited: l,
          mountOnEnter: f,
          unmountOnExit: u,
          children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(E, Object.assign({}, P, {
            ref: o,
            hidden: !K,
            "aria-hidden": !K
          }))
        })
      })
    });
  }
);
XS.displayName = "TabPanel";
const jS = (s) => {
  const {
    id: o,
    generateChildId: E,
    onSelect: z,
    activeKey: P,
    defaultActiveKey: K,
    transition: M,
    mountOnEnter: L,
    unmountOnExit: r,
    children: a
  } = s, [p, l] = GS(P, K, z), f = WS(o), u = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => E || ((d, h) => f ? `${f}-${h}-${d}` : null), [f, E]), c = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => ({
    onSelect: l,
    activeKey: p,
    transition: M,
    mountOnEnter: L || !1,
    unmountOnExit: r || !1,
    getControlledId: (d) => u(d, "tabpane"),
    getControllerId: (d) => u(d, "tab")
  }), [l, p, M, L, r, u]);
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ep.Provider, {
    value: c,
    children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Uu.Provider, {
      value: l || null,
      children: a
    })
  });
};
jS.Panel = XS;
function w3(s, o) {
  if (s == null)
    return {};
  var E = {};
  for (var z in s)
    if (Object.prototype.hasOwnProperty.call(s, z)) {
      if (o.indexOf(z) >= 0)
        continue;
      E[z] = s[z];
    }
  return E;
}
function Lg(s, o) {
  return Lg = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(z, P) {
    return z.__proto__ = P, z;
  }, Lg(s, o);
}
function nL(s, o) {
  s.prototype = Object.create(o.prototype), s.prototype.constructor = s, Lg(s, o);
}
var Kx = { exports: {} }, Dl = {}, vg = { exports: {} }, Lx = {};
/**
 * @license React
 * scheduler.production.min.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
var ow;
function aL() {
  return ow || (ow = 1, function(s) {
    function o(q, B) {
      var X = q.length;
      q.push(B);
      e:
        for (; 0 < X; ) {
          var U = X - 1 >>> 1, te = q[U];
          if (0 < P(te, B))
            q[U] = B, q[X] = te, X = U;
          else
            break e;
        }
    }
    function E(q) {
      return q.length === 0 ? null : q[0];
    }
    function z(q) {
      if (q.length === 0)
        return null;
      var B = q[0], X = q.pop();
      if (X !== B) {
        q[0] = X;
        e:
          for (var U = 0, te = q.length, se = te >>> 1; U < se; ) {
            var me = 2 * (U + 1) - 1, J = q[me], W = me + 1, ae = q[W];
            if (0 > P(J, X))
              W < te && 0 > P(ae, J) ? (q[U] = ae, q[W] = X, U = W) : (q[U] = J, q[me] = X, U = me);
            else if (W < te && 0 > P(ae, X))
              q[U] = ae, q[W] = X, U = W;
            else
              break e;
          }
      }
      return B;
    }
    function P(q, B) {
      var X = q.sortIndex - B.sortIndex;
      return X !== 0 ? X : q.id - B.id;
    }
    if (typeof performance == "object" && typeof performance.now == "function") {
      var K = performance;
      s.unstable_now = function() {
        return K.now();
      };
    } else {
      var M = Date, L = M.now();
      s.unstable_now = function() {
        return M.now() - L;
      };
    }
    var r = [], a = [], p = 1, l = null, f = 3, u = !1, c = !1, d = !1, h = typeof setTimeout == "function" ? setTimeout : null, i = typeof clearTimeout == "function" ? clearTimeout : null, b = typeof setImmediate < "u" ? setImmediate : null;
    typeof navigator < "u" && navigator.scheduling !== void 0 && navigator.scheduling.isInputPending !== void 0 && navigator.scheduling.isInputPending.bind(navigator.scheduling);
    function x(q) {
      for (var B = E(a); B !== null; ) {
        if (B.callback === null)
          z(a);
        else if (B.startTime <= q)
          z(a), B.sortIndex = B.expirationTime, o(r, B);
        else
          break;
        B = E(a);
      }
    }
    function D(q) {
      if (d = !1, x(q), !c)
        if (E(r) !== null)
          c = !0, Y(C);
        else {
          var B = E(a);
          B !== null && ne(D, B.startTime - q);
        }
    }
    function C(q, B) {
      c = !1, d && (d = !1, i(T), T = -1), u = !0;
      var X = f;
      try {
        for (x(B), l = E(r); l !== null && (!(l.expirationTime > B) || q && !R()); ) {
          var U = l.callback;
          if (typeof U == "function") {
            l.callback = null, f = l.priorityLevel;
            var te = U(l.expirationTime <= B);
            B = s.unstable_now(), typeof te == "function" ? l.callback = te : l === E(r) && z(r), x(B);
          } else
            z(r);
          l = E(r);
        }
        if (l !== null)
          var se = !0;
        else {
          var me = E(a);
          me !== null && ne(D, me.startTime - B), se = !1;
        }
        return se;
      } finally {
        l = null, f = X, u = !1;
      }
    }
    var w = !1, S = null, T = -1, k = 5, A = -1;
    function R() {
      return !(s.unstable_now() - A < k);
    }
    function g() {
      if (S !== null) {
        var q = s.unstable_now();
        A = q;
        var B = !0;
        try {
          B = S(!0, q);
        } finally {
          B ? I() : (w = !1, S = null);
        }
      } else
        w = !1;
    }
    var I;
    if (typeof b == "function")
      I = function() {
        b(g);
      };
    else if (typeof MessageChannel < "u") {
      var O = new MessageChannel(), $ = O.port2;
      O.port1.onmessage = g, I = function() {
        $.postMessage(null);
      };
    } else
      I = function() {
        h(g, 0);
      };
    function Y(q) {
      S = q, w || (w = !0, I());
    }
    function ne(q, B) {
      T = h(function() {
        q(s.unstable_now());
      }, B);
    }
    s.unstable_IdlePriority = 5, s.unstable_ImmediatePriority = 1, s.unstable_LowPriority = 4, s.unstable_NormalPriority = 3, s.unstable_Profiling = null, s.unstable_UserBlockingPriority = 2, s.unstable_cancelCallback = function(q) {
      q.callback = null;
    }, s.unstable_continueExecution = function() {
      c || u || (c = !0, Y(C));
    }, s.unstable_forceFrameRate = function(q) {
      0 > q || 125 < q ? console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported") : k = 0 < q ? Math.floor(1e3 / q) : 5;
    }, s.unstable_getCurrentPriorityLevel = function() {
      return f;
    }, s.unstable_getFirstCallbackNode = function() {
      return E(r);
    }, s.unstable_next = function(q) {
      switch (f) {
        case 1:
        case 2:
        case 3:
          var B = 3;
          break;
        default:
          B = f;
      }
      var X = f;
      f = B;
      try {
        return q();
      } finally {
        f = X;
      }
    }, s.unstable_pauseExecution = function() {
    }, s.unstable_requestPaint = function() {
    }, s.unstable_runWithPriority = function(q, B) {
      switch (q) {
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
          break;
        default:
          q = 3;
      }
      var X = f;
      f = q;
      try {
        return B();
      } finally {
        f = X;
      }
    }, s.unstable_scheduleCallback = function(q, B, X) {
      var U = s.unstable_now();
      switch (typeof X == "object" && X !== null ? (X = X.delay, X = typeof X == "number" && 0 < X ? U + X : U) : X = U, q) {
        case 1:
          var te = -1;
          break;
        case 2:
          te = 250;
          break;
        case 5:
          te = 1073741823;
          break;
        case 4:
          te = 1e4;
          break;
        default:
          te = 5e3;
      }
      return te = X + te, q = { id: p++, callback: B, priorityLevel: q, startTime: X, expirationTime: te, sortIndex: -1 }, X > U ? (q.sortIndex = X, o(a, q), E(r) === null && q === E(a) && (d ? (i(T), T = -1) : d = !0, ne(D, X - U))) : (q.sortIndex = te, o(r, q), c || u || (c = !0, Y(C))), q;
    }, s.unstable_shouldYield = R, s.unstable_wrapCallback = function(q) {
      var B = f;
      return function() {
        var X = f;
        f = B;
        try {
          return q.apply(this, arguments);
        } finally {
          f = X;
        }
      };
    };
  }(Lx)), Lx;
}
var kx = {};
/**
 * @license React
 * scheduler.development.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
var lw;
function iL() {
  return lw || (lw = 1, function(s) {
     true && function() {
      typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ < "u" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart == "function" && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());
      var o = !1, E = !1, z = 5;
      function P(Je, et) {
        var at = Je.length;
        Je.push(et), L(Je, et, at);
      }
      function K(Je) {
        return Je.length === 0 ? null : Je[0];
      }
      function M(Je) {
        if (Je.length === 0)
          return null;
        var et = Je[0], at = Je.pop();
        return at !== et && (Je[0] = at, r(Je, at, 0)), et;
      }
      function L(Je, et, at) {
        for (var Le = at; Le > 0; ) {
          var ze = Le - 1 >>> 1, Oe = Je[ze];
          if (a(Oe, et) > 0)
            Je[ze] = et, Je[Le] = Oe, Le = ze;
          else
            return;
        }
      }
      function r(Je, et, at) {
        for (var Le = at, ze = Je.length, Oe = ze >>> 1; Le < Oe; ) {
          var Xe = (Le + 1) * 2 - 1, it = Je[Xe], ut = Xe + 1, wt = Je[ut];
          if (a(it, et) < 0)
            ut < ze && a(wt, it) < 0 ? (Je[Le] = wt, Je[ut] = et, Le = ut) : (Je[Le] = it, Je[Xe] = et, Le = Xe);
          else if (ut < ze && a(wt, et) < 0)
            Je[Le] = wt, Je[ut] = et, Le = ut;
          else
            return;
        }
      }
      function a(Je, et) {
        var at = Je.sortIndex - et.sortIndex;
        return at !== 0 ? at : Je.id - et.id;
      }
      var p = 1, l = 2, f = 3, u = 4, c = 5;
      function d(Je, et) {
      }
      var h = typeof performance == "object" && typeof performance.now == "function";
      if (h) {
        var i = performance;
        s.unstable_now = function() {
          return i.now();
        };
      } else {
        var b = Date, x = b.now();
        s.unstable_now = function() {
          return b.now() - x;
        };
      }
      var D = 1073741823, C = -1, w = 250, S = 5e3, T = 1e4, k = D, A = [], R = [], g = 1, I = null, O = f, $ = !1, Y = !1, ne = !1, q = typeof setTimeout == "function" ? setTimeout : null, B = typeof clearTimeout == "function" ? clearTimeout : null, X = typeof setImmediate < "u" ? setImmediate : null;
      typeof navigator < "u" && navigator.scheduling !== void 0 && navigator.scheduling.isInputPending !== void 0 && navigator.scheduling.isInputPending.bind(navigator.scheduling);
      function U(Je) {
        for (var et = K(R); et !== null; ) {
          if (et.callback === null)
            M(R);
          else if (et.startTime <= Je)
            M(R), et.sortIndex = et.expirationTime, P(A, et);
          else
            return;
          et = K(R);
        }
      }
      function te(Je) {
        if (ne = !1, U(Je), !Y)
          if (K(A) !== null)
            Y = !0, be(se);
          else {
            var et = K(R);
            et !== null && we(te, et.startTime - Je);
          }
      }
      function se(Je, et) {
        Y = !1, ne && (ne = !1, Ie()), $ = !0;
        var at = O;
        try {
          var Le;
          if (!E)
            return me(Je, et);
        } finally {
          I = null, O = at, $ = !1;
        }
      }
      function me(Je, et) {
        var at = et;
        for (U(at), I = K(A); I !== null && !o && !(I.expirationTime > at && (!Je || ee())); ) {
          var Le = I.callback;
          if (typeof Le == "function") {
            I.callback = null, O = I.priorityLevel;
            var ze = I.expirationTime <= at, Oe = Le(ze);
            at = s.unstable_now(), typeof Oe == "function" ? I.callback = Oe : I === K(A) && M(A), U(at);
          } else
            M(A);
          I = K(A);
        }
        if (I !== null)
          return !0;
        var Xe = K(R);
        return Xe !== null && we(te, Xe.startTime - at), !1;
      }
      function J(Je, et) {
        switch (Je) {
          case p:
          case l:
          case f:
          case u:
          case c:
            break;
          default:
            Je = f;
        }
        var at = O;
        O = Je;
        try {
          return et();
        } finally {
          O = at;
        }
      }
      function W(Je) {
        var et;
        switch (O) {
          case p:
          case l:
          case f:
            et = f;
            break;
          default:
            et = O;
            break;
        }
        var at = O;
        O = et;
        try {
          return Je();
        } finally {
          O = at;
        }
      }
      function ae(Je) {
        var et = O;
        return function() {
          var at = O;
          O = et;
          try {
            return Je.apply(this, arguments);
          } finally {
            O = at;
          }
        };
      }
      function oe(Je, et, at) {
        var Le = s.unstable_now(), ze;
        if (typeof at == "object" && at !== null) {
          var Oe = at.delay;
          typeof Oe == "number" && Oe > 0 ? ze = Le + Oe : ze = Le;
        } else
          ze = Le;
        var Xe;
        switch (Je) {
          case p:
            Xe = C;
            break;
          case l:
            Xe = w;
            break;
          case c:
            Xe = k;
            break;
          case u:
            Xe = T;
            break;
          case f:
          default:
            Xe = S;
            break;
        }
        var it = ze + Xe, ut = {
          id: g++,
          callback: et,
          priorityLevel: Je,
          startTime: ze,
          expirationTime: it,
          sortIndex: -1
        };
        return ze > Le ? (ut.sortIndex = ze, P(R, ut), K(A) === null && ut === K(R) && (ne ? Ie() : ne = !0, we(te, ze - Le))) : (ut.sortIndex = it, P(A, ut), !Y && !$ && (Y = !0, be(se))), ut;
      }
      function ve() {
      }
      function fe() {
        !Y && !$ && (Y = !0, be(se));
      }
      function ye() {
        return K(A);
      }
      function Ce(Je) {
        Je.callback = null;
      }
      function Re() {
        return O;
      }
      var Be = !1, xe = null, Me = -1, De = z, Z = -1;
      function ee() {
        var Je = s.unstable_now() - Z;
        return !(Je < De);
      }
      function ie() {
      }
      function G(Je) {
        if (Je < 0 || Je > 125) {
          console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported");
          return;
        }
        Je > 0 ? De = Math.floor(1e3 / Je) : De = z;
      }
      var H = function() {
        if (xe !== null) {
          var Je = s.unstable_now();
          Z = Je;
          var et = !0, at = !0;
          try {
            at = xe(et, Je);
          } finally {
            at ? ce() : (Be = !1, xe = null);
          }
        } else
          Be = !1;
      }, ce;
      if (typeof X == "function")
        ce = function() {
          X(H);
        };
      else if (typeof MessageChannel < "u") {
        var j = new MessageChannel(), he = j.port2;
        j.port1.onmessage = H, ce = function() {
          he.postMessage(null);
        };
      } else
        ce = function() {
          q(H, 0);
        };
      function be(Je) {
        xe = Je, Be || (Be = !0, ce());
      }
      function we(Je, et) {
        Me = q(function() {
          Je(s.unstable_now());
        }, et);
      }
      function Ie() {
        B(Me), Me = -1;
      }
      var Ge = ie, Ve = null;
      s.unstable_IdlePriority = c, s.unstable_ImmediatePriority = p, s.unstable_LowPriority = u, s.unstable_NormalPriority = f, s.unstable_Profiling = Ve, s.unstable_UserBlockingPriority = l, s.unstable_cancelCallback = Ce, s.unstable_continueExecution = fe, s.unstable_forceFrameRate = G, s.unstable_getCurrentPriorityLevel = Re, s.unstable_getFirstCallbackNode = ye, s.unstable_next = W, s.unstable_pauseExecution = ve, s.unstable_requestPaint = Ge, s.unstable_runWithPriority = J, s.unstable_scheduleCallback = oe, s.unstable_shouldYield = ee, s.unstable_wrapCallback = ae, typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ < "u" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop == "function" && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());
    }();
  }(kx)), kx;
}
var sw;
function ZS() {
  return sw || (sw = 1,  false ? 0 : vg.exports = iL()), vg.exports;
}
/**
 * @license React
 * react-dom.production.min.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
var uw;
function oL() {
  if (uw)
    return Dl;
  uw = 1;
  var s = (react__WEBPACK_IMPORTED_MODULE_1___default()), o = ZS();
  function E(n) {
    for (var v = "https://reactjs.org/docs/error-decoder.html?invariant=" + n, F = 1; F < arguments.length; F++)
      v += "&args[]=" + encodeURIComponent(arguments[F]);
    return "Minified React error #" + n + "; visit " + v + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";
  }
  var z = /* @__PURE__ */ new Set(), P = {};
  function K(n, v) {
    M(n, v), M(n + "Capture", v);
  }
  function M(n, v) {
    for (P[n] = v, n = 0; n < v.length; n++)
      z.add(v[n]);
  }
  var L = !(typeof window > "u" || typeof window.document > "u" || typeof window.document.createElement > "u"), r = Object.prototype.hasOwnProperty, a = /^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/, p = {}, l = {};
  function f(n) {
    return r.call(l, n) ? !0 : r.call(p, n) ? !1 : a.test(n) ? l[n] = !0 : (p[n] = !0, !1);
  }
  function u(n, v, F, re) {
    if (F !== null && F.type === 0)
      return !1;
    switch (typeof v) {
      case "function":
      case "symbol":
        return !0;
      case "boolean":
        return re ? !1 : F !== null ? !F.acceptsBooleans : (n = n.toLowerCase().slice(0, 5), n !== "data-" && n !== "aria-");
      default:
        return !1;
    }
  }
  function c(n, v, F, re) {
    if (v === null || typeof v > "u" || u(n, v, F, re))
      return !0;
    if (re)
      return !1;
    if (F !== null)
      switch (F.type) {
        case 3:
          return !v;
        case 4:
          return v === !1;
        case 5:
          return isNaN(v);
        case 6:
          return isNaN(v) || 1 > v;
      }
    return !1;
  }
  function d(n, v, F, re, Te, Ne, ot) {
    this.acceptsBooleans = v === 2 || v === 3 || v === 4, this.attributeName = re, this.attributeNamespace = Te, this.mustUseProperty = F, this.propertyName = n, this.type = v, this.sanitizeURL = Ne, this.removeEmptyString = ot;
  }
  var h = {};
  "children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(n) {
    h[n] = new d(n, 0, !1, n, null, !1, !1);
  }), [["acceptCharset", "accept-charset"], ["className", "class"], ["htmlFor", "for"], ["httpEquiv", "http-equiv"]].forEach(function(n) {
    var v = n[0];
    h[v] = new d(v, 1, !1, n[1], null, !1, !1);
  }), ["contentEditable", "draggable", "spellCheck", "value"].forEach(function(n) {
    h[n] = new d(n, 2, !1, n.toLowerCase(), null, !1, !1);
  }), ["autoReverse", "externalResourcesRequired", "focusable", "preserveAlpha"].forEach(function(n) {
    h[n] = new d(n, 2, !1, n, null, !1, !1);
  }), "allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(n) {
    h[n] = new d(n, 3, !1, n.toLowerCase(), null, !1, !1);
  }), ["checked", "multiple", "muted", "selected"].forEach(function(n) {
    h[n] = new d(n, 3, !0, n, null, !1, !1);
  }), ["capture", "download"].forEach(function(n) {
    h[n] = new d(n, 4, !1, n, null, !1, !1);
  }), ["cols", "rows", "size", "span"].forEach(function(n) {
    h[n] = new d(n, 6, !1, n, null, !1, !1);
  }), ["rowSpan", "start"].forEach(function(n) {
    h[n] = new d(n, 5, !1, n.toLowerCase(), null, !1, !1);
  });
  var i = /[\-:]([a-z])/g;
  function b(n) {
    return n[1].toUpperCase();
  }
  "accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(n) {
    var v = n.replace(
      i,
      b
    );
    h[v] = new d(v, 1, !1, n, null, !1, !1);
  }), "xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(n) {
    var v = n.replace(i, b);
    h[v] = new d(v, 1, !1, n, "http://www.w3.org/1999/xlink", !1, !1);
  }), ["xml:base", "xml:lang", "xml:space"].forEach(function(n) {
    var v = n.replace(i, b);
    h[v] = new d(v, 1, !1, n, "http://www.w3.org/XML/1998/namespace", !1, !1);
  }), ["tabIndex", "crossOrigin"].forEach(function(n) {
    h[n] = new d(n, 1, !1, n.toLowerCase(), null, !1, !1);
  }), h.xlinkHref = new d("xlinkHref", 1, !1, "xlink:href", "http://www.w3.org/1999/xlink", !0, !1), ["src", "href", "action", "formAction"].forEach(function(n) {
    h[n] = new d(n, 1, !1, n.toLowerCase(), null, !0, !0);
  });
  function x(n, v, F, re) {
    var Te = h.hasOwnProperty(v) ? h[v] : null;
    (Te !== null ? Te.type !== 0 : re || !(2 < v.length) || v[0] !== "o" && v[0] !== "O" || v[1] !== "n" && v[1] !== "N") && (c(v, F, Te, re) && (F = null), re || Te === null ? f(v) && (F === null ? n.removeAttribute(v) : n.setAttribute(v, "" + F)) : Te.mustUseProperty ? n[Te.propertyName] = F === null ? Te.type === 3 ? !1 : "" : F : (v = Te.attributeName, re = Te.attributeNamespace, F === null ? n.removeAttribute(v) : (Te = Te.type, F = Te === 3 || Te === 4 && F === !0 ? "" : "" + F, re ? n.setAttributeNS(re, v, F) : n.setAttribute(v, F))));
  }
  var D = s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, C = Symbol.for("react.element"), w = Symbol.for("react.portal"), S = Symbol.for("react.fragment"), T = Symbol.for("react.strict_mode"), k = Symbol.for("react.profiler"), A = Symbol.for("react.provider"), R = Symbol.for("react.context"), g = Symbol.for("react.forward_ref"), I = Symbol.for("react.suspense"), O = Symbol.for("react.suspense_list"), $ = Symbol.for("react.memo"), Y = Symbol.for("react.lazy"), ne = Symbol.for("react.offscreen"), q = Symbol.iterator;
  function B(n) {
    return n === null || typeof n != "object" ? null : (n = q && n[q] || n["@@iterator"], typeof n == "function" ? n : null);
  }
  var X = Object.assign, U;
  function te(n) {
    if (U === void 0)
      try {
        throw Error();
      } catch (F) {
        var v = F.stack.trim().match(/\n( *(at )?)/);
        U = v && v[1] || "";
      }
    return `
` + U + n;
  }
  var se = !1;
  function me(n, v) {
    if (!n || se)
      return "";
    se = !0;
    var F = Error.prepareStackTrace;
    Error.prepareStackTrace = void 0;
    try {
      if (v)
        if (v = function() {
          throw Error();
        }, Object.defineProperty(v.prototype, "props", { set: function() {
          throw Error();
        } }), typeof Reflect == "object" && Reflect.construct) {
          try {
            Reflect.construct(v, []);
          } catch (mr) {
            var re = mr;
          }
          Reflect.construct(n, [], v);
        } else {
          try {
            v.call();
          } catch (mr) {
            re = mr;
          }
          n.call(v.prototype);
        }
      else {
        try {
          throw Error();
        } catch (mr) {
          re = mr;
        }
        n();
      }
    } catch (mr) {
      if (mr && re && typeof mr.stack == "string") {
        for (var Te = mr.stack.split(`
`), Ne = re.stack.split(`
`), ot = Te.length - 1, zt = Ne.length - 1; 1 <= ot && 0 <= zt && Te[ot] !== Ne[zt]; )
          zt--;
        for (; 1 <= ot && 0 <= zt; ot--, zt--)
          if (Te[ot] !== Ne[zt]) {
            if (ot !== 1 || zt !== 1)
              do
                if (ot--, zt--, 0 > zt || Te[ot] !== Ne[zt]) {
                  var Qt = `
` + Te[ot].replace(" at new ", " at ");
                  return n.displayName && Qt.includes("<anonymous>") && (Qt = Qt.replace("<anonymous>", n.displayName)), Qt;
                }
              while (1 <= ot && 0 <= zt);
            break;
          }
      }
    } finally {
      se = !1, Error.prepareStackTrace = F;
    }
    return (n = n ? n.displayName || n.name : "") ? te(n) : "";
  }
  function J(n) {
    switch (n.tag) {
      case 5:
        return te(n.type);
      case 16:
        return te("Lazy");
      case 13:
        return te("Suspense");
      case 19:
        return te("SuspenseList");
      case 0:
      case 2:
      case 15:
        return n = me(n.type, !1), n;
      case 11:
        return n = me(n.type.render, !1), n;
      case 1:
        return n = me(n.type, !0), n;
      default:
        return "";
    }
  }
  function W(n) {
    if (n == null)
      return null;
    if (typeof n == "function")
      return n.displayName || n.name || null;
    if (typeof n == "string")
      return n;
    switch (n) {
      case S:
        return "Fragment";
      case w:
        return "Portal";
      case k:
        return "Profiler";
      case T:
        return "StrictMode";
      case I:
        return "Suspense";
      case O:
        return "SuspenseList";
    }
    if (typeof n == "object")
      switch (n.$$typeof) {
        case R:
          return (n.displayName || "Context") + ".Consumer";
        case A:
          return (n._context.displayName || "Context") + ".Provider";
        case g:
          var v = n.render;
          return n = n.displayName, n || (n = v.displayName || v.name || "", n = n !== "" ? "ForwardRef(" + n + ")" : "ForwardRef"), n;
        case $:
          return v = n.displayName || null, v !== null ? v : W(n.type) || "Memo";
        case Y:
          v = n._payload, n = n._init;
          try {
            return W(n(v));
          } catch {
          }
      }
    return null;
  }
  function ae(n) {
    var v = n.type;
    switch (n.tag) {
      case 24:
        return "Cache";
      case 9:
        return (v.displayName || "Context") + ".Consumer";
      case 10:
        return (v._context.displayName || "Context") + ".Provider";
      case 18:
        return "DehydratedFragment";
      case 11:
        return n = v.render, n = n.displayName || n.name || "", v.displayName || (n !== "" ? "ForwardRef(" + n + ")" : "ForwardRef");
      case 7:
        return "Fragment";
      case 5:
        return v;
      case 4:
        return "Portal";
      case 3:
        return "Root";
      case 6:
        return "Text";
      case 16:
        return W(v);
      case 8:
        return v === T ? "StrictMode" : "Mode";
      case 22:
        return "Offscreen";
      case 12:
        return "Profiler";
      case 21:
        return "Scope";
      case 13:
        return "Suspense";
      case 19:
        return "SuspenseList";
      case 25:
        return "TracingMarker";
      case 1:
      case 0:
      case 17:
      case 2:
      case 14:
      case 15:
        if (typeof v == "function")
          return v.displayName || v.name || null;
        if (typeof v == "string")
          return v;
    }
    return null;
  }
  function oe(n) {
    switch (typeof n) {
      case "boolean":
      case "number":
      case "string":
      case "undefined":
        return n;
      case "object":
        return n;
      default:
        return "";
    }
  }
  function ve(n) {
    var v = n.type;
    return (n = n.nodeName) && n.toLowerCase() === "input" && (v === "checkbox" || v === "radio");
  }
  function fe(n) {
    var v = ve(n) ? "checked" : "value", F = Object.getOwnPropertyDescriptor(n.constructor.prototype, v), re = "" + n[v];
    if (!n.hasOwnProperty(v) && typeof F < "u" && typeof F.get == "function" && typeof F.set == "function") {
      var Te = F.get, Ne = F.set;
      return Object.defineProperty(n, v, { configurable: !0, get: function() {
        return Te.call(this);
      }, set: function(ot) {
        re = "" + ot, Ne.call(this, ot);
      } }), Object.defineProperty(n, v, { enumerable: F.enumerable }), { getValue: function() {
        return re;
      }, setValue: function(ot) {
        re = "" + ot;
      }, stopTracking: function() {
        n._valueTracker = null, delete n[v];
      } };
    }
  }
  function ye(n) {
    n._valueTracker || (n._valueTracker = fe(n));
  }
  function Ce(n) {
    if (!n)
      return !1;
    var v = n._valueTracker;
    if (!v)
      return !0;
    var F = v.getValue(), re = "";
    return n && (re = ve(n) ? n.checked ? "true" : "false" : n.value), n = re, n !== F ? (v.setValue(n), !0) : !1;
  }
  function Re(n) {
    if (n = n || (typeof document < "u" ? document : void 0), typeof n > "u")
      return null;
    try {
      return n.activeElement || n.body;
    } catch {
      return n.body;
    }
  }
  function Be(n, v) {
    var F = v.checked;
    return X({}, v, { defaultChecked: void 0, defaultValue: void 0, value: void 0, checked: F ?? n._wrapperState.initialChecked });
  }
  function xe(n, v) {
    var F = v.defaultValue == null ? "" : v.defaultValue, re = v.checked != null ? v.checked : v.defaultChecked;
    F = oe(v.value != null ? v.value : F), n._wrapperState = { initialChecked: re, initialValue: F, controlled: v.type === "checkbox" || v.type === "radio" ? v.checked != null : v.value != null };
  }
  function Me(n, v) {
    v = v.checked, v != null && x(n, "checked", v, !1);
  }
  function De(n, v) {
    Me(n, v);
    var F = oe(v.value), re = v.type;
    if (F != null)
      re === "number" ? (F === 0 && n.value === "" || n.value != F) && (n.value = "" + F) : n.value !== "" + F && (n.value = "" + F);
    else if (re === "submit" || re === "reset") {
      n.removeAttribute("value");
      return;
    }
    v.hasOwnProperty("value") ? ee(n, v.type, F) : v.hasOwnProperty("defaultValue") && ee(n, v.type, oe(v.defaultValue)), v.checked == null && v.defaultChecked != null && (n.defaultChecked = !!v.defaultChecked);
  }
  function Z(n, v, F) {
    if (v.hasOwnProperty("value") || v.hasOwnProperty("defaultValue")) {
      var re = v.type;
      if (!(re !== "submit" && re !== "reset" || v.value !== void 0 && v.value !== null))
        return;
      v = "" + n._wrapperState.initialValue, F || v === n.value || (n.value = v), n.defaultValue = v;
    }
    F = n.name, F !== "" && (n.name = ""), n.defaultChecked = !!n._wrapperState.initialChecked, F !== "" && (n.name = F);
  }
  function ee(n, v, F) {
    (v !== "number" || Re(n.ownerDocument) !== n) && (F == null ? n.defaultValue = "" + n._wrapperState.initialValue : n.defaultValue !== "" + F && (n.defaultValue = "" + F));
  }
  var ie = Array.isArray;
  function G(n, v, F, re) {
    if (n = n.options, v) {
      v = {};
      for (var Te = 0; Te < F.length; Te++)
        v["$" + F[Te]] = !0;
      for (F = 0; F < n.length; F++)
        Te = v.hasOwnProperty("$" + n[F].value), n[F].selected !== Te && (n[F].selected = Te), Te && re && (n[F].defaultSelected = !0);
    } else {
      for (F = "" + oe(F), v = null, Te = 0; Te < n.length; Te++) {
        if (n[Te].value === F) {
          n[Te].selected = !0, re && (n[Te].defaultSelected = !0);
          return;
        }
        v !== null || n[Te].disabled || (v = n[Te]);
      }
      v !== null && (v.selected = !0);
    }
  }
  function H(n, v) {
    if (v.dangerouslySetInnerHTML != null)
      throw Error(E(91));
    return X({}, v, { value: void 0, defaultValue: void 0, children: "" + n._wrapperState.initialValue });
  }
  function ce(n, v) {
    var F = v.value;
    if (F == null) {
      if (F = v.children, v = v.defaultValue, F != null) {
        if (v != null)
          throw Error(E(92));
        if (ie(F)) {
          if (1 < F.length)
            throw Error(E(93));
          F = F[0];
        }
        v = F;
      }
      v == null && (v = ""), F = v;
    }
    n._wrapperState = { initialValue: oe(F) };
  }
  function j(n, v) {
    var F = oe(v.value), re = oe(v.defaultValue);
    F != null && (F = "" + F, F !== n.value && (n.value = F), v.defaultValue == null && n.defaultValue !== F && (n.defaultValue = F)), re != null && (n.defaultValue = "" + re);
  }
  function he(n) {
    var v = n.textContent;
    v === n._wrapperState.initialValue && v !== "" && v !== null && (n.value = v);
  }
  function be(n) {
    switch (n) {
      case "svg":
        return "http://www.w3.org/2000/svg";
      case "math":
        return "http://www.w3.org/1998/Math/MathML";
      default:
        return "http://www.w3.org/1999/xhtml";
    }
  }
  function we(n, v) {
    return n == null || n === "http://www.w3.org/1999/xhtml" ? be(v) : n === "http://www.w3.org/2000/svg" && v === "foreignObject" ? "http://www.w3.org/1999/xhtml" : n;
  }
  var Ie, Ge = function(n) {
    return typeof MSApp < "u" && MSApp.execUnsafeLocalFunction ? function(v, F, re, Te) {
      MSApp.execUnsafeLocalFunction(function() {
        return n(v, F, re, Te);
      });
    } : n;
  }(function(n, v) {
    if (n.namespaceURI !== "http://www.w3.org/2000/svg" || "innerHTML" in n)
      n.innerHTML = v;
    else {
      for (Ie = Ie || document.createElement("div"), Ie.innerHTML = "<svg>" + v.valueOf().toString() + "</svg>", v = Ie.firstChild; n.firstChild; )
        n.removeChild(n.firstChild);
      for (; v.firstChild; )
        n.appendChild(v.firstChild);
    }
  });
  function Ve(n, v) {
    if (v) {
      var F = n.firstChild;
      if (F && F === n.lastChild && F.nodeType === 3) {
        F.nodeValue = v;
        return;
      }
    }
    n.textContent = v;
  }
  var Je = {
    animationIterationCount: !0,
    aspectRatio: !0,
    borderImageOutset: !0,
    borderImageSlice: !0,
    borderImageWidth: !0,
    boxFlex: !0,
    boxFlexGroup: !0,
    boxOrdinalGroup: !0,
    columnCount: !0,
    columns: !0,
    flex: !0,
    flexGrow: !0,
    flexPositive: !0,
    flexShrink: !0,
    flexNegative: !0,
    flexOrder: !0,
    gridArea: !0,
    gridRow: !0,
    gridRowEnd: !0,
    gridRowSpan: !0,
    gridRowStart: !0,
    gridColumn: !0,
    gridColumnEnd: !0,
    gridColumnSpan: !0,
    gridColumnStart: !0,
    fontWeight: !0,
    lineClamp: !0,
    lineHeight: !0,
    opacity: !0,
    order: !0,
    orphans: !0,
    tabSize: !0,
    widows: !0,
    zIndex: !0,
    zoom: !0,
    fillOpacity: !0,
    floodOpacity: !0,
    stopOpacity: !0,
    strokeDasharray: !0,
    strokeDashoffset: !0,
    strokeMiterlimit: !0,
    strokeOpacity: !0,
    strokeWidth: !0
  }, et = ["Webkit", "ms", "Moz", "O"];
  Object.keys(Je).forEach(function(n) {
    et.forEach(function(v) {
      v = v + n.charAt(0).toUpperCase() + n.substring(1), Je[v] = Je[n];
    });
  });
  function at(n, v, F) {
    return v == null || typeof v == "boolean" || v === "" ? "" : F || typeof v != "number" || v === 0 || Je.hasOwnProperty(n) && Je[n] ? ("" + v).trim() : v + "px";
  }
  function Le(n, v) {
    n = n.style;
    for (var F in v)
      if (v.hasOwnProperty(F)) {
        var re = F.indexOf("--") === 0, Te = at(F, v[F], re);
        F === "float" && (F = "cssFloat"), re ? n.setProperty(F, Te) : n[F] = Te;
      }
  }
  var ze = X({ menuitem: !0 }, { area: !0, base: !0, br: !0, col: !0, embed: !0, hr: !0, img: !0, input: !0, keygen: !0, link: !0, meta: !0, param: !0, source: !0, track: !0, wbr: !0 });
  function Oe(n, v) {
    if (v) {
      if (ze[n] && (v.children != null || v.dangerouslySetInnerHTML != null))
        throw Error(E(137, n));
      if (v.dangerouslySetInnerHTML != null) {
        if (v.children != null)
          throw Error(E(60));
        if (typeof v.dangerouslySetInnerHTML != "object" || !("__html" in v.dangerouslySetInnerHTML))
          throw Error(E(61));
      }
      if (v.style != null && typeof v.style != "object")
        throw Error(E(62));
    }
  }
  function Xe(n, v) {
    if (n.indexOf("-") === -1)
      return typeof v.is == "string";
    switch (n) {
      case "annotation-xml":
      case "color-profile":
      case "font-face":
      case "font-face-src":
      case "font-face-uri":
      case "font-face-format":
      case "font-face-name":
      case "missing-glyph":
        return !1;
      default:
        return !0;
    }
  }
  var it = null;
  function ut(n) {
    return n = n.target || n.srcElement || window, n.correspondingUseElement && (n = n.correspondingUseElement), n.nodeType === 3 ? n.parentNode : n;
  }
  var wt = null, kt = null, Ot = null;
  function Lt(n) {
    if (n = Fs(n)) {
      if (typeof wt != "function")
        throw Error(E(280));
      var v = n.stateNode;
      v && (v = wn(v), wt(n.stateNode, n.type, v));
    }
  }
  function Mt(n) {
    kt ? Ot ? Ot.push(n) : Ot = [n] : kt = n;
  }
  function Ut() {
    if (kt) {
      var n = kt, v = Ot;
      if (Ot = kt = null, Lt(n), v)
        for (n = 0; n < v.length; n++)
          Lt(v[n]);
    }
  }
  function Ct(n, v) {
    return n(v);
  }
  function jt() {
  }
  var nr = !1;
  function Jt(n, v, F) {
    if (nr)
      return n(v, F);
    nr = !0;
    try {
      return Ct(n, v, F);
    } finally {
      nr = !1, (kt !== null || Ot !== null) && (jt(), Ut());
    }
  }
  function Wt(n, v) {
    var F = n.stateNode;
    if (F === null)
      return null;
    var re = wn(F);
    if (re === null)
      return null;
    F = re[v];
    e:
      switch (v) {
        case "onClick":
        case "onClickCapture":
        case "onDoubleClick":
        case "onDoubleClickCapture":
        case "onMouseDown":
        case "onMouseDownCapture":
        case "onMouseMove":
        case "onMouseMoveCapture":
        case "onMouseUp":
        case "onMouseUpCapture":
        case "onMouseEnter":
          (re = !re.disabled) || (n = n.type, re = !(n === "button" || n === "input" || n === "select" || n === "textarea")), n = !re;
          break e;
        default:
          n = !1;
      }
    if (n)
      return null;
    if (F && typeof F != "function")
      throw Error(E(231, v, typeof F));
    return F;
  }
  var qe = !1;
  if (L)
    try {
      var Ue = {};
      Object.defineProperty(Ue, "passive", { get: function() {
        qe = !0;
      } }), window.addEventListener("test", Ue, Ue), window.removeEventListener("test", Ue, Ue);
    } catch {
      qe = !1;
    }
  function We(n, v, F, re, Te, Ne, ot, zt, Qt) {
    var mr = Array.prototype.slice.call(arguments, 3);
    try {
      v.apply(F, mr);
    } catch (Vr) {
      this.onError(Vr);
    }
  }
  var je = !1, lt = null, Se = !1, Pe = null, Ye = { onError: function(n) {
    je = !0, lt = n;
  } };
  function Ze(n, v, F, re, Te, Ne, ot, zt, Qt) {
    je = !1, lt = null, We.apply(Ye, arguments);
  }
  function rt(n, v, F, re, Te, Ne, ot, zt, Qt) {
    if (Ze.apply(this, arguments), je) {
      if (je) {
        var mr = lt;
        je = !1, lt = null;
      } else
        throw Error(E(198));
      Se || (Se = !0, Pe = mr);
    }
  }
  function tt(n) {
    var v = n, F = n;
    if (n.alternate)
      for (; v.return; )
        v = v.return;
    else {
      n = v;
      do
        v = n, v.flags & 4098 && (F = v.return), n = v.return;
      while (n);
    }
    return v.tag === 3 ? F : null;
  }
  function Ft(n) {
    if (n.tag === 13) {
      var v = n.memoizedState;
      if (v === null && (n = n.alternate, n !== null && (v = n.memoizedState)), v !== null)
        return v.dehydrated;
    }
    return null;
  }
  function Dt(n) {
    if (tt(n) !== n)
      throw Error(E(188));
  }
  function dt(n) {
    var v = n.alternate;
    if (!v) {
      if (v = tt(n), v === null)
        throw Error(E(188));
      return v !== n ? null : n;
    }
    for (var F = n, re = v; ; ) {
      var Te = F.return;
      if (Te === null)
        break;
      var Ne = Te.alternate;
      if (Ne === null) {
        if (re = Te.return, re !== null) {
          F = re;
          continue;
        }
        break;
      }
      if (Te.child === Ne.child) {
        for (Ne = Te.child; Ne; ) {
          if (Ne === F)
            return Dt(Te), n;
          if (Ne === re)
            return Dt(Te), v;
          Ne = Ne.sibling;
        }
        throw Error(E(188));
      }
      if (F.return !== re.return)
        F = Te, re = Ne;
      else {
        for (var ot = !1, zt = Te.child; zt; ) {
          if (zt === F) {
            ot = !0, F = Te, re = Ne;
            break;
          }
          if (zt === re) {
            ot = !0, re = Te, F = Ne;
            break;
          }
          zt = zt.sibling;
        }
        if (!ot) {
          for (zt = Ne.child; zt; ) {
            if (zt === F) {
              ot = !0, F = Ne, re = Te;
              break;
            }
            if (zt === re) {
              ot = !0, re = Ne, F = Te;
              break;
            }
            zt = zt.sibling;
          }
          if (!ot)
            throw Error(E(189));
        }
      }
      if (F.alternate !== re)
        throw Error(E(190));
    }
    if (F.tag !== 3)
      throw Error(E(188));
    return F.stateNode.current === F ? n : v;
  }
  function st(n) {
    return n = dt(n), n !== null ? Nt(n) : null;
  }
  function Nt(n) {
    if (n.tag === 5 || n.tag === 6)
      return n;
    for (n = n.child; n !== null; ) {
      var v = Nt(n);
      if (v !== null)
        return v;
      n = n.sibling;
    }
    return null;
  }
  var ar = o.unstable_scheduleCallback, ur = o.unstable_cancelCallback, Or = o.unstable_shouldYield, Fr = o.unstable_requestPaint, br = o.unstable_now, or = o.unstable_getCurrentPriorityLevel, Rr = o.unstable_ImmediatePriority, lr = o.unstable_UserBlockingPriority, Tr = o.unstable_NormalPriority, Gr = o.unstable_LowPriority, Dr = o.unstable_IdlePriority, gr = null, Er = null;
  function Cr(n) {
    if (Er && typeof Er.onCommitFiberRoot == "function")
      try {
        Er.onCommitFiberRoot(gr, n, void 0, (n.current.flags & 128) === 128);
      } catch {
      }
  }
  var zr = Math.clz32 ? Math.clz32 : Ir, en = Math.log, on = Math.LN2;
  function Ir(n) {
    return n >>>= 0, n === 0 ? 32 : 31 - (en(n) / on | 0) | 0;
  }
  var Ae = 64, ue = 4194304;
  function ft(n) {
    switch (n & -n) {
      case 1:
        return 1;
      case 2:
        return 2;
      case 4:
        return 4;
      case 8:
        return 8;
      case 16:
        return 16;
      case 32:
        return 32;
      case 64:
      case 128:
      case 256:
      case 512:
      case 1024:
      case 2048:
      case 4096:
      case 8192:
      case 16384:
      case 32768:
      case 65536:
      case 131072:
      case 262144:
      case 524288:
      case 1048576:
      case 2097152:
        return n & 4194240;
      case 4194304:
      case 8388608:
      case 16777216:
      case 33554432:
      case 67108864:
        return n & 130023424;
      case 134217728:
        return 134217728;
      case 268435456:
        return 268435456;
      case 536870912:
        return 536870912;
      case 1073741824:
        return 1073741824;
      default:
        return n;
    }
  }
  function nt(n, v) {
    var F = n.pendingLanes;
    if (F === 0)
      return 0;
    var re = 0, Te = n.suspendedLanes, Ne = n.pingedLanes, ot = F & 268435455;
    if (ot !== 0) {
      var zt = ot & ~Te;
      zt !== 0 ? re = ft(zt) : (Ne &= ot, Ne !== 0 && (re = ft(Ne)));
    } else
      ot = F & ~Te, ot !== 0 ? re = ft(ot) : Ne !== 0 && (re = ft(Ne));
    if (re === 0)
      return 0;
    if (v !== 0 && v !== re && !(v & Te) && (Te = re & -re, Ne = v & -v, Te >= Ne || Te === 16 && (Ne & 4194240) !== 0))
      return v;
    if (re & 4 && (re |= F & 16), v = n.entangledLanes, v !== 0)
      for (n = n.entanglements, v &= re; 0 < v; )
        F = 31 - zr(v), Te = 1 << F, re |= n[F], v &= ~Te;
    return re;
  }
  function mt(n, v) {
    switch (n) {
      case 1:
      case 2:
      case 4:
        return v + 250;
      case 8:
      case 16:
      case 32:
      case 64:
      case 128:
      case 256:
      case 512:
      case 1024:
      case 2048:
      case 4096:
      case 8192:
      case 16384:
      case 32768:
      case 65536:
      case 131072:
      case 262144:
      case 524288:
      case 1048576:
      case 2097152:
        return v + 5e3;
      case 4194304:
      case 8388608:
      case 16777216:
      case 33554432:
      case 67108864:
        return -1;
      case 134217728:
      case 268435456:
      case 536870912:
      case 1073741824:
        return -1;
      default:
        return -1;
    }
  }
  function Tt(n, v) {
    for (var F = n.suspendedLanes, re = n.pingedLanes, Te = n.expirationTimes, Ne = n.pendingLanes; 0 < Ne; ) {
      var ot = 31 - zr(Ne), zt = 1 << ot, Qt = Te[ot];
      Qt === -1 ? (!(zt & F) || zt & re) && (Te[ot] = mt(zt, v)) : Qt <= v && (n.expiredLanes |= zt), Ne &= ~zt;
    }
  }
  function bt(n) {
    return n = n.pendingLanes & -1073741825, n !== 0 ? n : n & 1073741824 ? 1073741824 : 0;
  }
  function vt() {
    var n = Ae;
    return Ae <<= 1, !(Ae & 4194240) && (Ae = 64), n;
  }
  function ht(n) {
    for (var v = [], F = 0; 31 > F; F++)
      v.push(n);
    return v;
  }
  function St(n, v, F) {
    n.pendingLanes |= v, v !== 536870912 && (n.suspendedLanes = 0, n.pingedLanes = 0), n = n.eventTimes, v = 31 - zr(v), n[v] = F;
  }
  function It(n, v) {
    var F = n.pendingLanes & ~v;
    n.pendingLanes = v, n.suspendedLanes = 0, n.pingedLanes = 0, n.expiredLanes &= v, n.mutableReadLanes &= v, n.entangledLanes &= v, v = n.entanglements;
    var re = n.eventTimes;
    for (n = n.expirationTimes; 0 < F; ) {
      var Te = 31 - zr(F), Ne = 1 << Te;
      v[Te] = 0, re[Te] = -1, n[Te] = -1, F &= ~Ne;
    }
  }
  function Ht(n, v) {
    var F = n.entangledLanes |= v;
    for (n = n.entanglements; F; ) {
      var re = 31 - zr(F), Te = 1 << re;
      Te & v | n[re] & v && (n[re] |= v), F &= ~Te;
    }
  }
  var Et = 0;
  function Zt(n) {
    return n &= -n, 1 < n ? 4 < n ? n & 268435455 ? 16 : 536870912 : 4 : 1;
  }
  var Yt, Gt, $t, ir, wr, sr = !1, Xr = [], Lr = null, Pr = null, $r = null, Jr = /* @__PURE__ */ new Map(), Qr = /* @__PURE__ */ new Map(), vn = [], An = "mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");
  function hn(n, v) {
    switch (n) {
      case "focusin":
      case "focusout":
        Lr = null;
        break;
      case "dragenter":
      case "dragleave":
        Pr = null;
        break;
      case "mouseover":
      case "mouseout":
        $r = null;
        break;
      case "pointerover":
      case "pointerout":
        Jr.delete(v.pointerId);
        break;
      case "gotpointercapture":
      case "lostpointercapture":
        Qr.delete(v.pointerId);
    }
  }
  function Pn(n, v, F, re, Te, Ne) {
    return n === null || n.nativeEvent !== Ne ? (n = { blockedOn: v, domEventName: F, eventSystemFlags: re, nativeEvent: Ne, targetContainers: [Te] }, v !== null && (v = Fs(v), v !== null && Gt(v)), n) : (n.eventSystemFlags |= re, v = n.targetContainers, Te !== null && v.indexOf(Te) === -1 && v.push(Te), n);
  }
  function sa(n, v, F, re, Te) {
    switch (v) {
      case "focusin":
        return Lr = Pn(Lr, n, v, F, re, Te), !0;
      case "dragenter":
        return Pr = Pn(Pr, n, v, F, re, Te), !0;
      case "mouseover":
        return $r = Pn($r, n, v, F, re, Te), !0;
      case "pointerover":
        var Ne = Te.pointerId;
        return Jr.set(Ne, Pn(Jr.get(Ne) || null, n, v, F, re, Te)), !0;
      case "gotpointercapture":
        return Ne = Te.pointerId, Qr.set(Ne, Pn(Qr.get(Ne) || null, n, v, F, re, Te)), !0;
    }
    return !1;
  }
  function Ra(n) {
    var v = uo(n.target);
    if (v !== null) {
      var F = tt(v);
      if (F !== null) {
        if (v = F.tag, v === 13) {
          if (v = Ft(F), v !== null) {
            n.blockedOn = v, wr(n.priority, function() {
              $t(F);
            });
            return;
          }
        } else if (v === 3 && F.stateNode.current.memoizedState.isDehydrated) {
          n.blockedOn = F.tag === 3 ? F.stateNode.containerInfo : null;
          return;
        }
      }
    }
    n.blockedOn = null;
  }
  function rn(n) {
    if (n.blockedOn !== null)
      return !1;
    for (var v = n.targetContainers; 0 < v.length; ) {
      var F = oa(n.domEventName, n.eventSystemFlags, v[0], n.nativeEvent);
      if (F === null) {
        F = n.nativeEvent;
        var re = new F.constructor(F.type, F);
        it = re, F.target.dispatchEvent(re), it = null;
      } else
        return v = Fs(F), v !== null && Gt(v), n.blockedOn = F, !1;
      v.shift();
    }
    return !0;
  }
  function ua(n, v, F) {
    rn(n) && F.delete(v);
  }
  function dn() {
    sr = !1, Lr !== null && rn(Lr) && (Lr = null), Pr !== null && rn(Pr) && (Pr = null), $r !== null && rn($r) && ($r = null), Jr.forEach(ua), Qr.forEach(ua);
  }
  function Dn(n, v) {
    n.blockedOn === v && (n.blockedOn = null, sr || (sr = !0, o.unstable_scheduleCallback(o.unstable_NormalPriority, dn)));
  }
  function Sn(n) {
    function v(Te) {
      return Dn(Te, n);
    }
    if (0 < Xr.length) {
      Dn(Xr[0], n);
      for (var F = 1; F < Xr.length; F++) {
        var re = Xr[F];
        re.blockedOn === n && (re.blockedOn = null);
      }
    }
    for (Lr !== null && Dn(Lr, n), Pr !== null && Dn(Pr, n), $r !== null && Dn($r, n), Jr.forEach(v), Qr.forEach(v), F = 0; F < vn.length; F++)
      re = vn[F], re.blockedOn === n && (re.blockedOn = null);
    for (; 0 < vn.length && (F = vn[0], F.blockedOn === null); )
      Ra(F), F.blockedOn === null && vn.shift();
  }
  var Fn = D.ReactCurrentBatchConfig, Mn = !0;
  function qn(n, v, F, re) {
    var Te = Et, Ne = Fn.transition;
    Fn.transition = null;
    try {
      Et = 1, ea(n, v, F, re);
    } finally {
      Et = Te, Fn.transition = Ne;
    }
  }
  function Rn(n, v, F, re) {
    var Te = Et, Ne = Fn.transition;
    Fn.transition = null;
    try {
      Et = 4, ea(n, v, F, re);
    } finally {
      Et = Te, Fn.transition = Ne;
    }
  }
  function ea(n, v, F, re) {
    if (Mn) {
      var Te = oa(n, v, F, re);
      if (Te === null)
        qu(n, v, re, ga, F), hn(n, re);
      else if (sa(Te, n, v, F, re))
        re.stopPropagation();
      else if (hn(n, re), v & 4 && -1 < An.indexOf(n)) {
        for (; Te !== null; ) {
          var Ne = Fs(Te);
          if (Ne !== null && Yt(Ne), Ne = oa(n, v, F, re), Ne === null && qu(n, v, re, ga, F), Ne === Te)
            break;
          Te = Ne;
        }
        Te !== null && re.stopPropagation();
      } else
        qu(n, v, re, null, F);
    }
  }
  var ga = null;
  function oa(n, v, F, re) {
    if (ga = null, n = ut(re), n = uo(n), n !== null)
      if (v = tt(n), v === null)
        n = null;
      else if (F = v.tag, F === 13) {
        if (n = Ft(v), n !== null)
          return n;
        n = null;
      } else if (F === 3) {
        if (v.stateNode.current.memoizedState.isDehydrated)
          return v.tag === 3 ? v.stateNode.containerInfo : null;
        n = null;
      } else
        v !== n && (n = null);
    return ga = n, null;
  }
  function Kn(n) {
    switch (n) {
      case "cancel":
      case "click":
      case "close":
      case "contextmenu":
      case "copy":
      case "cut":
      case "auxclick":
      case "dblclick":
      case "dragend":
      case "dragstart":
      case "drop":
      case "focusin":
      case "focusout":
      case "input":
      case "invalid":
      case "keydown":
      case "keypress":
      case "keyup":
      case "mousedown":
      case "mouseup":
      case "paste":
      case "pause":
      case "play":
      case "pointercancel":
      case "pointerdown":
      case "pointerup":
      case "ratechange":
      case "reset":
      case "resize":
      case "seeked":
      case "submit":
      case "touchcancel":
      case "touchend":
      case "touchstart":
      case "volumechange":
      case "change":
      case "selectionchange":
      case "textInput":
      case "compositionstart":
      case "compositionend":
      case "compositionupdate":
      case "beforeblur":
      case "afterblur":
      case "beforeinput":
      case "blur":
      case "fullscreenchange":
      case "focus":
      case "hashchange":
      case "popstate":
      case "select":
      case "selectstart":
        return 1;
      case "drag":
      case "dragenter":
      case "dragexit":
      case "dragleave":
      case "dragover":
      case "mousemove":
      case "mouseout":
      case "mouseover":
      case "pointermove":
      case "pointerout":
      case "pointerover":
      case "scroll":
      case "toggle":
      case "touchmove":
      case "wheel":
      case "mouseenter":
      case "mouseleave":
      case "pointerenter":
      case "pointerleave":
        return 4;
      case "message":
        switch (or()) {
          case Rr:
            return 1;
          case lr:
            return 4;
          case Tr:
          case Gr:
            return 16;
          case Dr:
            return 536870912;
          default:
            return 16;
        }
      default:
        return 16;
    }
  }
  var ba = null, Fa = null, xa = null;
  function _a() {
    if (xa)
      return xa;
    var n, v = Fa, F = v.length, re, Te = "value" in ba ? ba.value : ba.textContent, Ne = Te.length;
    for (n = 0; n < F && v[n] === Te[n]; n++)
      ;
    var ot = F - n;
    for (re = 1; re <= ot && v[F - re] === Te[Ne - re]; re++)
      ;
    return xa = Te.slice(n, 1 < re ? 1 - re : void 0);
  }
  function si(n) {
    var v = n.keyCode;
    return "charCode" in n ? (n = n.charCode, n === 0 && v === 13 && (n = 13)) : n = v, n === 10 && (n = 13), 32 <= n || n === 13 ? n : 0;
  }
  function pi() {
    return !0;
  }
  function ri() {
    return !1;
  }
  function da(n) {
    function v(F, re, Te, Ne, ot) {
      this._reactName = F, this._targetInst = Te, this.type = re, this.nativeEvent = Ne, this.target = ot, this.currentTarget = null;
      for (var zt in n)
        n.hasOwnProperty(zt) && (F = n[zt], this[zt] = F ? F(Ne) : Ne[zt]);
      return this.isDefaultPrevented = (Ne.defaultPrevented != null ? Ne.defaultPrevented : Ne.returnValue === !1) ? pi : ri, this.isPropagationStopped = ri, this;
    }
    return X(v.prototype, { preventDefault: function() {
      this.defaultPrevented = !0;
      var F = this.nativeEvent;
      F && (F.preventDefault ? F.preventDefault() : typeof F.returnValue != "unknown" && (F.returnValue = !1), this.isDefaultPrevented = pi);
    }, stopPropagation: function() {
      var F = this.nativeEvent;
      F && (F.stopPropagation ? F.stopPropagation() : typeof F.cancelBubble != "unknown" && (F.cancelBubble = !0), this.isPropagationStopped = pi);
    }, persist: function() {
    }, isPersistent: pi }), v;
  }
  var Fi = { eventPhase: 0, bubbles: 0, cancelable: 0, timeStamp: function(n) {
    return n.timeStamp || Date.now();
  }, defaultPrevented: 0, isTrusted: 0 }, sl = da(Fi), Ta = X({}, Fi, { view: 0, detail: 0 }), oo = da(Ta), mi, wi, ta, Zn = X({}, Ta, { screenX: 0, screenY: 0, clientX: 0, clientY: 0, pageX: 0, pageY: 0, ctrlKey: 0, shiftKey: 0, altKey: 0, metaKey: 0, getModifierState: nd, button: 0, buttons: 0, relatedTarget: function(n) {
    return n.relatedTarget === void 0 ? n.fromElement === n.srcElement ? n.toElement : n.fromElement : n.relatedTarget;
  }, movementX: function(n) {
    return "movementX" in n ? n.movementX : (n !== ta && (ta && n.type === "mousemove" ? (mi = n.screenX - ta.screenX, wi = n.screenY - ta.screenY) : wi = mi = 0, ta = n), mi);
  }, movementY: function(n) {
    return "movementY" in n ? n.movementY : wi;
  } }), ji = da(Zn), ul = X({}, Zn, { dataTransfer: 0 }), Pl = da(ul), Yu = X({}, Ta, { relatedTarget: 0 }), Si = da(Yu), Fl = X({}, Fi, { animationName: 0, elapsedTime: 0, pseudoElement: 0 }), Ms = da(Fl), Es = X({}, Fi, { clipboardData: function(n) {
    return "clipboardData" in n ? n.clipboardData : window.clipboardData;
  } }), ts = da(Es), rs = X({}, Fi, { data: 0 }), Uf = da(rs), Xu = {
    Esc: "Escape",
    Spacebar: " ",
    Left: "ArrowLeft",
    Up: "ArrowUp",
    Right: "ArrowRight",
    Down: "ArrowDown",
    Del: "Delete",
    Win: "OS",
    Menu: "ContextMenu",
    Apps: "ContextMenu",
    Scroll: "ScrollLock",
    MozPrintableKey: "Unidentified"
  }, sv = {
    8: "Backspace",
    9: "Tab",
    12: "Clear",
    13: "Enter",
    16: "Shift",
    17: "Control",
    18: "Alt",
    19: "Pause",
    20: "CapsLock",
    27: "Escape",
    32: " ",
    33: "PageUp",
    34: "PageDown",
    35: "End",
    36: "Home",
    37: "ArrowLeft",
    38: "ArrowUp",
    39: "ArrowRight",
    40: "ArrowDown",
    45: "Insert",
    46: "Delete",
    112: "F1",
    113: "F2",
    114: "F3",
    115: "F4",
    116: "F5",
    117: "F6",
    118: "F7",
    119: "F8",
    120: "F9",
    121: "F10",
    122: "F11",
    123: "F12",
    144: "NumLock",
    145: "ScrollLock",
    224: "Meta"
  }, ju = { Alt: "altKey", Control: "ctrlKey", Meta: "metaKey", Shift: "shiftKey" };
  function uv(n) {
    var v = this.nativeEvent;
    return v.getModifierState ? v.getModifierState(n) : (n = ju[n]) ? !!v[n] : !1;
  }
  function nd() {
    return uv;
  }
  var zl = X({}, Ta, { key: function(n) {
    if (n.key) {
      var v = Xu[n.key] || n.key;
      if (v !== "Unidentified")
        return v;
    }
    return n.type === "keypress" ? (n = si(n), n === 13 ? "Enter" : String.fromCharCode(n)) : n.type === "keydown" || n.type === "keyup" ? sv[n.keyCode] || "Unidentified" : "";
  }, code: 0, location: 0, ctrlKey: 0, shiftKey: 0, altKey: 0, metaKey: 0, repeat: 0, locale: 0, getModifierState: nd, charCode: function(n) {
    return n.type === "keypress" ? si(n) : 0;
  }, keyCode: function(n) {
    return n.type === "keydown" || n.type === "keyup" ? n.keyCode : 0;
  }, which: function(n) {
    return n.type === "keypress" ? si(n) : n.type === "keydown" || n.type === "keyup" ? n.keyCode : 0;
  } }), fv = da(zl), Ds = X({}, Zn, { pointerId: 0, width: 0, height: 0, pressure: 0, tangentialPressure: 0, tiltX: 0, tiltY: 0, twist: 0, pointerType: 0, isPrimary: 0 }), Wf = da(Ds), Zu = X({}, Ta, { touches: 0, targetTouches: 0, changedTouches: 0, altKey: 0, metaKey: 0, ctrlKey: 0, shiftKey: 0, getModifierState: nd }), cv = da(Zu), Fo = X({}, Fi, { propertyName: 0, elapsedTime: 0, pseudoElement: 0 }), ad = da(Fo), zi = X({}, Zn, {
    deltaX: function(n) {
      return "deltaX" in n ? n.deltaX : "wheelDeltaX" in n ? -n.wheelDeltaX : 0;
    },
    deltaY: function(n) {
      return "deltaY" in n ? n.deltaY : "wheelDeltaY" in n ? -n.wheelDeltaY : "wheelDelta" in n ? -n.wheelDelta : 0;
    },
    deltaZ: 0,
    deltaMode: 0
  }), Qo = da(zi), La = [9, 13, 27, 32], lo = L && "CompositionEvent" in window, ns = null;
  L && "documentMode" in document && (ns = document.documentMode);
  var Yf = L && "TextEvent" in window && !ns, dv = L && (!lo || ns && 8 < ns && 11 >= ns), iu = " ", id = !1;
  function od(n, v) {
    switch (n) {
      case "keyup":
        return La.indexOf(v.keyCode) !== -1;
      case "keydown":
        return v.keyCode !== 229;
      case "keypress":
      case "mousedown":
      case "focusout":
        return !0;
      default:
        return !1;
    }
  }
  function Xf(n) {
    return n = n.detail, typeof n == "object" && "data" in n ? n.data : null;
  }
  var ou = !1;
  function ip(n, v) {
    switch (n) {
      case "compositionend":
        return Xf(v);
      case "keypress":
        return v.which !== 32 ? null : (id = !0, iu);
      case "textInput":
        return n = v.data, n === iu && id ? null : n;
      default:
        return null;
    }
  }
  function op(n, v) {
    if (ou)
      return n === "compositionend" || !lo && od(n, v) ? (n = _a(), xa = Fa = ba = null, ou = !1, n) : null;
    switch (n) {
      case "paste":
        return null;
      case "keypress":
        if (!(v.ctrlKey || v.altKey || v.metaKey) || v.ctrlKey && v.altKey) {
          if (v.char && 1 < v.char.length)
            return v.char;
          if (v.which)
            return String.fromCharCode(v.which);
        }
        return null;
      case "compositionend":
        return dv && v.locale !== "ko" ? null : v.data;
      default:
        return null;
    }
  }
  var vv = { color: !0, date: !0, datetime: !0, "datetime-local": !0, email: !0, month: !0, number: !0, password: !0, range: !0, search: !0, tel: !0, text: !0, time: !0, url: !0, week: !0 };
  function hv(n) {
    var v = n && n.nodeName && n.nodeName.toLowerCase();
    return v === "input" ? !!vv[n.type] : v === "textarea";
  }
  function pv(n, v, F, re) {
    Mt(re), v = ef(v, "onChange"), 0 < v.length && (F = new sl("onChange", "change", null, F, re), n.push({ event: F, listeners: v }));
  }
  var $u = null, lu = null;
  function su(n) {
    Qf(n, 0);
  }
  function uu(n) {
    var v = zs(n);
    if (Ce(v))
      return n;
  }
  function mv(n, v) {
    if (n === "change")
      return v;
  }
  var ld = !1;
  if (L) {
    var jf;
    if (L) {
      var Zf = "oninput" in document;
      if (!Zf) {
        var sd = document.createElement("div");
        sd.setAttribute("oninput", "return;"), Zf = typeof sd.oninput == "function";
      }
      jf = Zf;
    } else
      jf = !1;
    ld = jf && (!document.documentMode || 9 < document.documentMode);
  }
  function ud() {
    $u && ($u.detachEvent("onpropertychange", yv), lu = $u = null);
  }
  function yv(n) {
    if (n.propertyName === "value" && uu(lu)) {
      var v = [];
      pv(v, lu, n, ut(n)), Jt(su, v);
    }
  }
  function lp(n, v, F) {
    n === "focusin" ? (ud(), $u = v, lu = F, $u.attachEvent("onpropertychange", yv)) : n === "focusout" && ud();
  }
  function fu(n) {
    if (n === "selectionchange" || n === "keyup" || n === "keydown")
      return uu(lu);
  }
  function sp(n, v) {
    if (n === "click")
      return uu(v);
  }
  function gv(n, v) {
    if (n === "input" || n === "change")
      return uu(v);
  }
  function up(n, v) {
    return n === v && (n !== 0 || 1 / n === 1 / v) || n !== n && v !== v;
  }
  var zo = typeof Object.is == "function" ? Object.is : up;
  function cu(n, v) {
    if (zo(n, v))
      return !0;
    if (typeof n != "object" || n === null || typeof v != "object" || v === null)
      return !1;
    var F = Object.keys(n), re = Object.keys(v);
    if (F.length !== re.length)
      return !1;
    for (re = 0; re < F.length; re++) {
      var Te = F[re];
      if (!r.call(v, Te) || !zo(n[Te], v[Te]))
        return !1;
    }
    return !0;
  }
  function bv(n) {
    for (; n && n.firstChild; )
      n = n.firstChild;
    return n;
  }
  function xv(n, v) {
    var F = bv(n);
    n = 0;
    for (var re; F; ) {
      if (F.nodeType === 3) {
        if (re = n + F.textContent.length, n <= v && re >= v)
          return { node: F, offset: v - n };
        n = re;
      }
      e: {
        for (; F; ) {
          if (F.nextSibling) {
            F = F.nextSibling;
            break e;
          }
          F = F.parentNode;
        }
        F = void 0;
      }
      F = bv(F);
    }
  }
  function Tv(n, v) {
    return n && v ? n === v ? !0 : n && n.nodeType === 3 ? !1 : v && v.nodeType === 3 ? Tv(n, v.parentNode) : "contains" in n ? n.contains(v) : n.compareDocumentPosition ? !!(n.compareDocumentPosition(v) & 16) : !1 : !1;
  }
  function Ju() {
    for (var n = window, v = Re(); v instanceof n.HTMLIFrameElement; ) {
      try {
        var F = typeof v.contentWindow.location.href == "string";
      } catch {
        F = !1;
      }
      if (F)
        n = v.contentWindow;
      else
        break;
      v = Re(n.document);
    }
    return v;
  }
  function _l(n) {
    var v = n && n.nodeName && n.nodeName.toLowerCase();
    return v && (v === "input" && (n.type === "text" || n.type === "search" || n.type === "tel" || n.type === "url" || n.type === "password") || v === "textarea" || n.contentEditable === "true");
  }
  function $f(n) {
    var v = Ju(), F = n.focusedElem, re = n.selectionRange;
    if (v !== F && F && F.ownerDocument && Tv(F.ownerDocument.documentElement, F)) {
      if (re !== null && _l(F)) {
        if (v = re.start, n = re.end, n === void 0 && (n = v), "selectionStart" in F)
          F.selectionStart = v, F.selectionEnd = Math.min(n, F.value.length);
        else if (n = (v = F.ownerDocument || document) && v.defaultView || window, n.getSelection) {
          n = n.getSelection();
          var Te = F.textContent.length, Ne = Math.min(re.start, Te);
          re = re.end === void 0 ? Ne : Math.min(re.end, Te), !n.extend && Ne > re && (Te = re, re = Ne, Ne = Te), Te = xv(F, Ne);
          var ot = xv(
            F,
            re
          );
          Te && ot && (n.rangeCount !== 1 || n.anchorNode !== Te.node || n.anchorOffset !== Te.offset || n.focusNode !== ot.node || n.focusOffset !== ot.offset) && (v = v.createRange(), v.setStart(Te.node, Te.offset), n.removeAllRanges(), Ne > re ? (n.addRange(v), n.extend(ot.node, ot.offset)) : (v.setEnd(ot.node, ot.offset), n.addRange(v)));
        }
      }
      for (v = [], n = F; n = n.parentNode; )
        n.nodeType === 1 && v.push({ element: n, left: n.scrollLeft, top: n.scrollTop });
      for (typeof F.focus == "function" && F.focus(), F = 0; F < v.length; F++)
        n = v[F], n.element.scrollLeft = n.left, n.element.scrollTop = n.top;
    }
  }
  var Cv = L && "documentMode" in document && 11 >= document.documentMode, Ko = null, fd = null, du = null, cd = !1;
  function Av(n, v, F) {
    var re = F.window === F ? F.document : F.nodeType === 9 ? F : F.ownerDocument;
    cd || Ko == null || Ko !== Re(re) || (re = Ko, "selectionStart" in re && _l(re) ? re = { start: re.selectionStart, end: re.selectionEnd } : (re = (re.ownerDocument && re.ownerDocument.defaultView || window).getSelection(), re = { anchorNode: re.anchorNode, anchorOffset: re.anchorOffset, focusNode: re.focusNode, focusOffset: re.focusOffset }), du && cu(du, re) || (du = re, re = ef(fd, "onSelect"), 0 < re.length && (v = new sl("onSelect", "select", null, v, F), n.push({ event: v, listeners: re }), v.target = Ko)));
  }
  function Jf(n, v) {
    var F = {};
    return F[n.toLowerCase()] = v.toLowerCase(), F["Webkit" + n] = "webkit" + v, F["Moz" + n] = "moz" + v, F;
  }
  var qo = { animationend: Jf("Animation", "AnimationEnd"), animationiteration: Jf("Animation", "AnimationIteration"), animationstart: Jf("Animation", "AnimationStart"), transitionend: Jf("Transition", "TransitionEnd") }, Rs = {}, _o = {};
  L && (_o = document.createElement("div").style, "AnimationEvent" in window || (delete qo.animationend.animation, delete qo.animationiteration.animation, delete qo.animationstart.animation), "TransitionEvent" in window || delete qo.transitionend.transition);
  function yi(n) {
    if (Rs[n])
      return Rs[n];
    if (!qo[n])
      return n;
    var v = qo[n], F;
    for (F in v)
      if (v.hasOwnProperty(F) && F in _o)
        return Rs[n] = v[F];
    return n;
  }
  var dd = yi("animationend"), wv = yi("animationiteration"), Sv = yi("animationstart"), vd = yi("transitionend"), Mv = /* @__PURE__ */ new Map(), Ev = "abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");
  function Hl(n, v) {
    Mv.set(n, v), K(v, [n]);
  }
  for (var Qu = 0; Qu < Ev.length; Qu++) {
    var Ls = Ev[Qu], hd = Ls.toLowerCase(), ks = Ls[0].toUpperCase() + Ls.slice(1);
    Hl(hd, "on" + ks);
  }
  Hl(dd, "onAnimationEnd"), Hl(wv, "onAnimationIteration"), Hl(Sv, "onAnimationStart"), Hl("dblclick", "onDoubleClick"), Hl("focusin", "onFocus"), Hl("focusout", "onBlur"), Hl(vd, "onTransitionEnd"), M("onMouseEnter", ["mouseout", "mouseover"]), M("onMouseLeave", ["mouseout", "mouseover"]), M("onPointerEnter", ["pointerout", "pointerover"]), M("onPointerLeave", ["pointerout", "pointerover"]), K("onChange", "change click focusin focusout input keydown keyup selectionchange".split(" ")), K("onSelect", "focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")), K("onBeforeInput", ["compositionend", "keypress", "textInput", "paste"]), K("onCompositionEnd", "compositionend focusout keydown keypress keyup mousedown".split(" ")), K("onCompositionStart", "compositionstart focusout keydown keypress keyup mousedown".split(" ")), K("onCompositionUpdate", "compositionupdate focusout keydown keypress keyup mousedown".split(" "));
  var Ku = "abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "), fp = new Set("cancel close invalid load scroll toggle".split(" ").concat(Ku));
  function Dv(n, v, F) {
    var re = n.type || "unknown-event";
    n.currentTarget = F, rt(re, v, void 0, n), n.currentTarget = null;
  }
  function Qf(n, v) {
    v = (v & 4) !== 0;
    for (var F = 0; F < n.length; F++) {
      var re = n[F], Te = re.event;
      re = re.listeners;
      e: {
        var Ne = void 0;
        if (v)
          for (var ot = re.length - 1; 0 <= ot; ot--) {
            var zt = re[ot], Qt = zt.instance, mr = zt.currentTarget;
            if (zt = zt.listener, Qt !== Ne && Te.isPropagationStopped())
              break e;
            Dv(Te, zt, mr), Ne = Qt;
          }
        else
          for (ot = 0; ot < re.length; ot++) {
            if (zt = re[ot], Qt = zt.instance, mr = zt.currentTarget, zt = zt.listener, Qt !== Ne && Te.isPropagationStopped())
              break e;
            Dv(Te, zt, mr), Ne = Qt;
          }
      }
    }
    if (Se)
      throw n = Pe, Se = !1, Pe = null, n;
  }
  function Ca(n, v) {
    var F = v[rc];
    F === void 0 && (F = v[rc] = /* @__PURE__ */ new Set());
    var re = n + "__bubble";
    F.has(re) || (pd(v, n, 2, !1), F.add(re));
  }
  function as(n, v, F) {
    var re = 0;
    v && (re |= 4), pd(F, n, re, v);
  }
  var Bl = "_reactListening" + Math.random().toString(36).slice(2);
  function is(n) {
    if (!n[Bl]) {
      n[Bl] = !0, z.forEach(function(F) {
        F !== "selectionchange" && (fp.has(F) || as(F, !1, n), as(F, !0, n));
      });
      var v = n.nodeType === 9 ? n : n.ownerDocument;
      v === null || v[Bl] || (v[Bl] = !0, as("selectionchange", !1, v));
    }
  }
  function pd(n, v, F, re) {
    switch (Kn(v)) {
      case 1:
        var Te = qn;
        break;
      case 4:
        Te = Rn;
        break;
      default:
        Te = ea;
    }
    F = Te.bind(null, v, F, n), Te = void 0, !qe || v !== "touchstart" && v !== "touchmove" && v !== "wheel" || (Te = !0), re ? Te !== void 0 ? n.addEventListener(v, F, { capture: !0, passive: Te }) : n.addEventListener(v, F, !0) : Te !== void 0 ? n.addEventListener(v, F, { passive: Te }) : n.addEventListener(v, F, !1);
  }
  function qu(n, v, F, re, Te) {
    var Ne = re;
    if (!(v & 1) && !(v & 2) && re !== null)
      e:
        for (; ; ) {
          if (re === null)
            return;
          var ot = re.tag;
          if (ot === 3 || ot === 4) {
            var zt = re.stateNode.containerInfo;
            if (zt === Te || zt.nodeType === 8 && zt.parentNode === Te)
              break;
            if (ot === 4)
              for (ot = re.return; ot !== null; ) {
                var Qt = ot.tag;
                if ((Qt === 3 || Qt === 4) && (Qt = ot.stateNode.containerInfo, Qt === Te || Qt.nodeType === 8 && Qt.parentNode === Te))
                  return;
                ot = ot.return;
              }
            for (; zt !== null; ) {
              if (ot = uo(zt), ot === null)
                return;
              if (Qt = ot.tag, Qt === 5 || Qt === 6) {
                re = Ne = ot;
                continue e;
              }
              zt = zt.parentNode;
            }
          }
          re = re.return;
        }
    Jt(function() {
      var mr = Ne, Vr = ut(F), Wr = [];
      e: {
        var Hr = Mv.get(n);
        if (Hr !== void 0) {
          var ln = sl, pn = n;
          switch (n) {
            case "keypress":
              if (si(F) === 0)
                break e;
            case "keydown":
            case "keyup":
              ln = fv;
              break;
            case "focusin":
              pn = "focus", ln = Si;
              break;
            case "focusout":
              pn = "blur", ln = Si;
              break;
            case "beforeblur":
            case "afterblur":
              ln = Si;
              break;
            case "click":
              if (F.button === 2)
                break e;
            case "auxclick":
            case "dblclick":
            case "mousedown":
            case "mousemove":
            case "mouseup":
            case "mouseout":
            case "mouseover":
            case "contextmenu":
              ln = ji;
              break;
            case "drag":
            case "dragend":
            case "dragenter":
            case "dragexit":
            case "dragleave":
            case "dragover":
            case "dragstart":
            case "drop":
              ln = Pl;
              break;
            case "touchcancel":
            case "touchend":
            case "touchmove":
            case "touchstart":
              ln = cv;
              break;
            case dd:
            case wv:
            case Sv:
              ln = Ms;
              break;
            case vd:
              ln = ad;
              break;
            case "scroll":
              ln = oo;
              break;
            case "wheel":
              ln = Qo;
              break;
            case "copy":
            case "cut":
            case "paste":
              ln = ts;
              break;
            case "gotpointercapture":
            case "lostpointercapture":
            case "pointercancel":
            case "pointerdown":
            case "pointermove":
            case "pointerout":
            case "pointerover":
            case "pointerup":
              ln = Wf;
          }
          var gn = (v & 4) !== 0, di = !gn && n === "scroll", fr = gn ? Hr !== null ? Hr + "Capture" : null : Hr;
          gn = [];
          for (var tr = mr, vr; tr !== null; ) {
            vr = tr;
            var Zr = vr.stateNode;
            if (vr.tag === 5 && Zr !== null && (vr = Zr, fr !== null && (Zr = Wt(tr, fr), Zr != null && gn.push(vu(tr, Zr, vr)))), di)
              break;
            tr = tr.return;
          }
          0 < gn.length && (Hr = new ln(Hr, pn, null, F, Vr), Wr.push({ event: Hr, listeners: gn }));
        }
      }
      if (!(v & 7)) {
        e: {
          if (Hr = n === "mouseover" || n === "pointerover", ln = n === "mouseout" || n === "pointerout", Hr && F !== it && (pn = F.relatedTarget || F.fromElement) && (uo(pn) || pn[Vl]))
            break e;
          if ((ln || Hr) && (Hr = Vr.window === Vr ? Vr : (Hr = Vr.ownerDocument) ? Hr.defaultView || Hr.parentWindow : window, ln ? (pn = F.relatedTarget || F.toElement, ln = mr, pn = pn ? uo(pn) : null, pn !== null && (di = tt(pn), pn !== di || pn.tag !== 5 && pn.tag !== 6) && (pn = null)) : (ln = null, pn = mr), ln !== pn)) {
            if (gn = ji, Zr = "onMouseLeave", fr = "onMouseEnter", tr = "mouse", (n === "pointerout" || n === "pointerover") && (gn = Wf, Zr = "onPointerLeave", fr = "onPointerEnter", tr = "pointer"), di = ln == null ? Hr : zs(ln), vr = pn == null ? Hr : zs(pn), Hr = new gn(Zr, tr + "leave", ln, F, Vr), Hr.target = di, Hr.relatedTarget = vr, Zr = null, uo(Vr) === mr && (gn = new gn(fr, tr + "enter", pn, F, Vr), gn.target = vr, gn.relatedTarget = di, Zr = gn), di = Zr, ln && pn)
              t: {
                for (gn = ln, fr = pn, tr = 0, vr = gn; vr; vr = Is(vr))
                  tr++;
                for (vr = 0, Zr = fr; Zr; Zr = Is(Zr))
                  vr++;
                for (; 0 < tr - vr; )
                  gn = Is(gn), tr--;
                for (; 0 < vr - tr; )
                  fr = Is(fr), vr--;
                for (; tr--; ) {
                  if (gn === fr || fr !== null && gn === fr.alternate)
                    break t;
                  gn = Is(gn), fr = Is(fr);
                }
                gn = null;
              }
            else
              gn = null;
            ln !== null && Kf(Wr, Hr, ln, gn, !1), pn !== null && di !== null && Kf(Wr, di, pn, gn, !0);
          }
        }
        e: {
          if (Hr = mr ? zs(mr) : window, ln = Hr.nodeName && Hr.nodeName.toLowerCase(), ln === "select" || ln === "input" && Hr.type === "file")
            var xn = mv;
          else if (hv(Hr))
            if (ld)
              xn = gv;
            else {
              xn = fu;
              var In = lp;
            }
          else
            (ln = Hr.nodeName) && ln.toLowerCase() === "input" && (Hr.type === "checkbox" || Hr.type === "radio") && (xn = sp);
          if (xn && (xn = xn(n, mr))) {
            pv(Wr, xn, F, Vr);
            break e;
          }
          In && In(n, Hr, mr), n === "focusout" && (In = Hr._wrapperState) && In.controlled && Hr.type === "number" && ee(Hr, "number", Hr.value);
        }
        switch (In = mr ? zs(mr) : window, n) {
          case "focusin":
            (hv(In) || In.contentEditable === "true") && (Ko = In, fd = mr, du = null);
            break;
          case "focusout":
            du = fd = Ko = null;
            break;
          case "mousedown":
            cd = !0;
            break;
          case "contextmenu":
          case "mouseup":
          case "dragend":
            cd = !1, Av(Wr, F, Vr);
            break;
          case "selectionchange":
            if (Cv)
              break;
          case "keydown":
          case "keyup":
            Av(Wr, F, Vr);
        }
        var mn;
        if (lo)
          e: {
            switch (n) {
              case "compositionstart":
                var zn = "onCompositionStart";
                break e;
              case "compositionend":
                zn = "onCompositionEnd";
                break e;
              case "compositionupdate":
                zn = "onCompositionUpdate";
                break e;
            }
            zn = void 0;
          }
        else
          ou ? od(n, F) && (zn = "onCompositionEnd") : n === "keydown" && F.keyCode === 229 && (zn = "onCompositionStart");
        zn && (dv && F.locale !== "ko" && (ou || zn !== "onCompositionStart" ? zn === "onCompositionEnd" && ou && (mn = _a()) : (ba = Vr, Fa = "value" in ba ? ba.value : ba.textContent, ou = !0)), In = ef(mr, zn), 0 < In.length && (zn = new Uf(zn, n, null, F, Vr), Wr.push({ event: zn, listeners: In }), mn ? zn.data = mn : (mn = Xf(F), mn !== null && (zn.data = mn)))), (mn = Yf ? ip(n, F) : op(n, F)) && (mr = ef(mr, "onBeforeInput"), 0 < mr.length && (Vr = new Uf("onBeforeInput", "beforeinput", null, F, Vr), Wr.push({ event: Vr, listeners: mr }), Vr.data = mn));
      }
      Qf(Wr, v);
    });
  }
  function vu(n, v, F) {
    return { instance: n, listener: v, currentTarget: F };
  }
  function ef(n, v) {
    for (var F = v + "Capture", re = []; n !== null; ) {
      var Te = n, Ne = Te.stateNode;
      Te.tag === 5 && Ne !== null && (Te = Ne, Ne = Wt(n, F), Ne != null && re.unshift(vu(n, Ne, Te)), Ne = Wt(n, v), Ne != null && re.push(vu(n, Ne, Te))), n = n.return;
    }
    return re;
  }
  function Is(n) {
    if (n === null)
      return null;
    do
      n = n.return;
    while (n && n.tag !== 5);
    return n || null;
  }
  function Kf(n, v, F, re, Te) {
    for (var Ne = v._reactName, ot = []; F !== null && F !== re; ) {
      var zt = F, Qt = zt.alternate, mr = zt.stateNode;
      if (Qt !== null && Qt === re)
        break;
      zt.tag === 5 && mr !== null && (zt = mr, Te ? (Qt = Wt(F, Ne), Qt != null && ot.unshift(vu(F, Qt, zt))) : Te || (Qt = Wt(F, Ne), Qt != null && ot.push(vu(F, Qt, zt)))), F = F.return;
    }
    ot.length !== 0 && n.push({ event: v, listeners: ot });
  }
  var qf = /\r\n?/g, Rv = /\u0000|\uFFFD/g;
  function tf(n) {
    return (typeof n == "string" ? n : "" + n).replace(qf, `
`).replace(Rv, "");
  }
  function hu(n, v, F) {
    if (v = tf(v), tf(n) !== v && F)
      throw Error(E(425));
  }
  function ec() {
  }
  var md = null, Ns = null;
  function rf(n, v) {
    return n === "textarea" || n === "noscript" || typeof v.children == "string" || typeof v.children == "number" || typeof v.dangerouslySetInnerHTML == "object" && v.dangerouslySetInnerHTML !== null && v.dangerouslySetInnerHTML.__html != null;
  }
  var Os = typeof setTimeout == "function" ? setTimeout : void 0, yd = typeof clearTimeout == "function" ? clearTimeout : void 0, tc = typeof Promise == "function" ? Promise : void 0, nf = typeof queueMicrotask == "function" ? queueMicrotask : typeof tc < "u" ? function(n) {
    return tc.resolve(null).then(n).catch(Lv);
  } : Os;
  function Lv(n) {
    setTimeout(function() {
      throw n;
    });
  }
  function el(n, v) {
    var F = v, re = 0;
    do {
      var Te = F.nextSibling;
      if (n.removeChild(F), Te && Te.nodeType === 8)
        if (F = Te.data, F === "/$") {
          if (re === 0) {
            n.removeChild(Te), Sn(v);
            return;
          }
          re--;
        } else
          F !== "$" && F !== "$?" && F !== "$!" || re++;
      F = Te;
    } while (F);
    Sn(v);
  }
  function so(n) {
    for (; n != null; n = n.nextSibling) {
      var v = n.nodeType;
      if (v === 1 || v === 3)
        break;
      if (v === 8) {
        if (v = n.data, v === "$" || v === "$!" || v === "$?")
          break;
        if (v === "/$")
          return null;
      }
    }
    return n;
  }
  function af(n) {
    n = n.previousSibling;
    for (var v = 0; n; ) {
      if (n.nodeType === 8) {
        var F = n.data;
        if (F === "$" || F === "$!" || F === "$?") {
          if (v === 0)
            return n;
          v--;
        } else
          F === "/$" && v++;
      }
      n = n.previousSibling;
    }
    return null;
  }
  var fl = Math.random().toString(36).slice(2), tl = "__reactFiber$" + fl, Ps = "__reactProps$" + fl, Vl = "__reactContainer$" + fl, rc = "__reactEvents$" + fl, kv = "__reactListeners$" + fl, nc = "__reactHandles$" + fl;
  function uo(n) {
    var v = n[tl];
    if (v)
      return v;
    for (var F = n.parentNode; F; ) {
      if (v = F[Vl] || F[tl]) {
        if (F = v.alternate, v.child !== null || F !== null && F.child !== null)
          for (n = af(n); n !== null; ) {
            if (F = n[tl])
              return F;
            n = af(n);
          }
        return v;
      }
      n = F, F = n.parentNode;
    }
    return null;
  }
  function Fs(n) {
    return n = n[tl] || n[Vl], !n || n.tag !== 5 && n.tag !== 6 && n.tag !== 13 && n.tag !== 3 ? null : n;
  }
  function zs(n) {
    if (n.tag === 5 || n.tag === 6)
      return n.stateNode;
    throw Error(E(33));
  }
  function wn(n) {
    return n[Ps] || null;
  }
  var Gl = [], Aa = -1;
  function Wn(n) {
    return { current: n };
  }
  function va(n) {
    0 > Aa || (n.current = Gl[Aa], Gl[Aa] = null, Aa--);
  }
  function ha(n, v) {
    Aa++, Gl[Aa] = n.current, n.current = v;
  }
  var cl = {}, Hn = Wn(cl), Xa = Wn(!1), Zi = cl;
  function go(n, v) {
    var F = n.type.contextTypes;
    if (!F)
      return cl;
    var re = n.stateNode;
    if (re && re.__reactInternalMemoizedUnmaskedChildContext === v)
      return re.__reactInternalMemoizedMaskedChildContext;
    var Te = {}, Ne;
    for (Ne in F)
      Te[Ne] = v[Ne];
    return re && (n = n.stateNode, n.__reactInternalMemoizedUnmaskedChildContext = v, n.__reactInternalMemoizedMaskedChildContext = Te), Te;
  }
  function za(n) {
    return n = n.childContextTypes, n != null;
  }
  function Ho() {
    va(Xa), va(Hn);
  }
  function rl(n, v, F) {
    if (Hn.current !== cl)
      throw Error(E(168));
    ha(Hn, v), ha(Xa, F);
  }
  function of(n, v, F) {
    var re = n.stateNode;
    if (v = v.childContextTypes, typeof re.getChildContext != "function")
      return F;
    re = re.getChildContext();
    for (var Te in re)
      if (!(Te in v))
        throw Error(E(108, ae(n) || "Unknown", Te));
    return X({}, F, re);
  }
  function ac(n) {
    return n = (n = n.stateNode) && n.__reactInternalMemoizedMergedChildContext || cl, Zi = Hn.current, ha(Hn, n), ha(Xa, Xa.current), !0;
  }
  function gd(n, v, F) {
    var re = n.stateNode;
    if (!re)
      throw Error(E(169));
    F ? (n = of(n, v, Zi), re.__reactInternalMemoizedMergedChildContext = n, va(Xa), va(Hn), ha(Hn, n)) : va(Xa), ha(Xa, F);
  }
  var fo = null, gi = !1, os = !1;
  function pu(n) {
    fo === null ? fo = [n] : fo.push(n);
  }
  function ic(n) {
    gi = !0, pu(n);
  }
  function $i() {
    if (!os && fo !== null) {
      os = !0;
      var n = 0, v = Et;
      try {
        var F = fo;
        for (Et = 1; n < F.length; n++) {
          var re = F[n];
          do
            re = re(!0);
          while (re !== null);
        }
        fo = null, gi = !1;
      } catch (Te) {
        throw fo !== null && (fo = fo.slice(n + 1)), ar(Rr, $i), Te;
      } finally {
        Et = v, os = !1;
      }
    }
    return null;
  }
  var dl = [], Ha = 0, ls = null, mu = 0, _i = [], bi = 0, Bo = null, Mi = 1, Ul = "";
  function Hi(n, v) {
    dl[Ha++] = mu, dl[Ha++] = ls, ls = n, mu = v;
  }
  function lf(n, v, F) {
    _i[bi++] = Mi, _i[bi++] = Ul, _i[bi++] = Bo, Bo = n;
    var re = Mi;
    n = Ul;
    var Te = 32 - zr(re) - 1;
    re &= ~(1 << Te), F += 1;
    var Ne = 32 - zr(v) + Te;
    if (30 < Ne) {
      var ot = Te - Te % 5;
      Ne = (re & (1 << ot) - 1).toString(32), re >>= ot, Te -= ot, Mi = 1 << 32 - zr(v) + Te | F << Te | re, Ul = Ne + n;
    } else
      Mi = 1 << Ne | F << Te | re, Ul = n;
  }
  function sf(n) {
    n.return !== null && (Hi(n, 1), lf(n, 1, 0));
  }
  function bd(n) {
    for (; n === ls; )
      ls = dl[--Ha], dl[Ha] = null, mu = dl[--Ha], dl[Ha] = null;
    for (; n === Bo; )
      Bo = _i[--bi], _i[bi] = null, Ul = _i[--bi], _i[bi] = null, Mi = _i[--bi], _i[bi] = null;
  }
  var bo = null, co = null, ra = !1, xo = null;
  function oc(n, v) {
    var F = Cl(5, null, null, 0);
    F.elementType = "DELETED", F.stateNode = v, F.return = n, v = n.deletions, v === null ? (n.deletions = [F], n.flags |= 16) : v.push(F);
  }
  function Wl(n, v) {
    switch (n.tag) {
      case 5:
        var F = n.type;
        return v = v.nodeType !== 1 || F.toLowerCase() !== v.nodeName.toLowerCase() ? null : v, v !== null ? (n.stateNode = v, bo = n, co = so(v.firstChild), !0) : !1;
      case 6:
        return v = n.pendingProps === "" || v.nodeType !== 3 ? null : v, v !== null ? (n.stateNode = v, bo = n, co = null, !0) : !1;
      case 13:
        return v = v.nodeType !== 8 ? null : v, v !== null ? (F = Bo !== null ? { id: Mi, overflow: Ul } : null, n.memoizedState = { dehydrated: v, treeContext: F, retryLane: 1073741824 }, F = Cl(18, null, null, 0), F.stateNode = v, F.return = n, n.child = F, bo = n, co = null, !0) : !1;
      default:
        return !1;
    }
  }
  function yu(n) {
    return (n.mode & 1) !== 0 && (n.flags & 128) === 0;
  }
  function gu(n) {
    if (ra) {
      var v = co;
      if (v) {
        var F = v;
        if (!Wl(n, v)) {
          if (yu(n))
            throw Error(E(418));
          v = so(F.nextSibling);
          var re = bo;
          v && Wl(n, v) ? oc(re, F) : (n.flags = n.flags & -4097 | 2, ra = !1, bo = n);
        }
      } else {
        if (yu(n))
          throw Error(E(418));
        n.flags = n.flags & -4097 | 2, ra = !1, bo = n;
      }
    }
  }
  function Iv(n) {
    for (n = n.return; n !== null && n.tag !== 5 && n.tag !== 3 && n.tag !== 13; )
      n = n.return;
    bo = n;
  }
  function lc(n) {
    if (n !== bo)
      return !1;
    if (!ra)
      return Iv(n), ra = !0, !1;
    var v;
    if ((v = n.tag !== 3) && !(v = n.tag !== 5) && (v = n.type, v = v !== "head" && v !== "body" && !rf(n.type, n.memoizedProps)), v && (v = co)) {
      if (yu(n))
        throw Nv(), Error(E(418));
      for (; v; )
        oc(n, v), v = so(v.nextSibling);
    }
    if (Iv(n), n.tag === 13) {
      if (n = n.memoizedState, n = n !== null ? n.dehydrated : null, !n)
        throw Error(E(317));
      e: {
        for (n = n.nextSibling, v = 0; n; ) {
          if (n.nodeType === 8) {
            var F = n.data;
            if (F === "/$") {
              if (v === 0) {
                co = so(n.nextSibling);
                break e;
              }
              v--;
            } else
              F !== "$" && F !== "$!" && F !== "$?" || v++;
          }
          n = n.nextSibling;
        }
        co = null;
      }
    } else
      co = bo ? so(n.stateNode.nextSibling) : null;
    return !0;
  }
  function Nv() {
    for (var n = co; n; )
      n = so(n.nextSibling);
  }
  function Ba() {
    co = bo = null, ra = !1;
  }
  function sc(n) {
    xo === null ? xo = [n] : xo.push(n);
  }
  var uf = D.ReactCurrentBatchConfig;
  function ss(n, v, F) {
    if (n = F.ref, n !== null && typeof n != "function" && typeof n != "object") {
      if (F._owner) {
        if (F = F._owner, F) {
          if (F.tag !== 1)
            throw Error(E(309));
          var re = F.stateNode;
        }
        if (!re)
          throw Error(E(147, n));
        var Te = re, Ne = "" + n;
        return v !== null && v.ref !== null && typeof v.ref == "function" && v.ref._stringRef === Ne ? v.ref : (v = function(ot) {
          var zt = Te.refs;
          ot === null ? delete zt[Ne] : zt[Ne] = ot;
        }, v._stringRef = Ne, v);
      }
      if (typeof n != "string")
        throw Error(E(284));
      if (!F._owner)
        throw Error(E(290, n));
    }
    return n;
  }
  function vl(n, v) {
    throw n = Object.prototype.toString.call(v), Error(E(31, n === "[object Object]" ? "object with keys {" + Object.keys(v).join(", ") + "}" : n));
  }
  function xd(n) {
    var v = n._init;
    return v(n._payload);
  }
  function uc(n) {
    function v(fr, tr) {
      if (n) {
        var vr = fr.deletions;
        vr === null ? (fr.deletions = [tr], fr.flags |= 16) : vr.push(tr);
      }
    }
    function F(fr, tr) {
      if (!n)
        return null;
      for (; tr !== null; )
        v(fr, tr), tr = tr.sibling;
      return null;
    }
    function re(fr, tr) {
      for (fr = /* @__PURE__ */ new Map(); tr !== null; )
        tr.key !== null ? fr.set(tr.key, tr) : fr.set(tr.index, tr), tr = tr.sibling;
      return fr;
    }
    function Te(fr, tr) {
      return fr = Mu(fr, tr), fr.index = 0, fr.sibling = null, fr;
    }
    function Ne(fr, tr, vr) {
      return fr.index = vr, n ? (vr = fr.alternate, vr !== null ? (vr = vr.index, vr < tr ? (fr.flags |= 2, tr) : vr) : (fr.flags |= 2, tr)) : (fr.flags |= 1048576, tr);
    }
    function ot(fr) {
      return n && fr.alternate === null && (fr.flags |= 2), fr;
    }
    function zt(fr, tr, vr, Zr) {
      return tr === null || tr.tag !== 6 ? (tr = nh(vr, fr.mode, Zr), tr.return = fr, tr) : (tr = Te(tr, vr), tr.return = fr, tr);
    }
    function Qt(fr, tr, vr, Zr) {
      var xn = vr.type;
      return xn === S ? Vr(fr, tr, vr.props.children, Zr, vr.key) : tr !== null && (tr.elementType === xn || typeof xn == "object" && xn !== null && xn.$$typeof === Y && xd(xn) === tr.type) ? (Zr = Te(tr, vr.props), Zr.ref = ss(fr, tr, vr), Zr.return = fr, Zr) : (Zr = th(vr.type, vr.key, vr.props, null, fr.mode, Zr), Zr.ref = ss(fr, tr, vr), Zr.return = fr, Zr);
    }
    function mr(fr, tr, vr, Zr) {
      return tr === null || tr.tag !== 4 || tr.stateNode.containerInfo !== vr.containerInfo || tr.stateNode.implementation !== vr.implementation ? (tr = kd(vr, fr.mode, Zr), tr.return = fr, tr) : (tr = Te(tr, vr.children || []), tr.return = fr, tr);
    }
    function Vr(fr, tr, vr, Zr, xn) {
      return tr === null || tr.tag !== 7 ? (tr = xf(vr, fr.mode, Zr, xn), tr.return = fr, tr) : (tr = Te(tr, vr), tr.return = fr, tr);
    }
    function Wr(fr, tr, vr) {
      if (typeof tr == "string" && tr !== "" || typeof tr == "number")
        return tr = nh("" + tr, fr.mode, vr), tr.return = fr, tr;
      if (typeof tr == "object" && tr !== null) {
        switch (tr.$$typeof) {
          case C:
            return vr = th(tr.type, tr.key, tr.props, null, fr.mode, vr), vr.ref = ss(fr, null, tr), vr.return = fr, vr;
          case w:
            return tr = kd(tr, fr.mode, vr), tr.return = fr, tr;
          case Y:
            var Zr = tr._init;
            return Wr(fr, Zr(tr._payload), vr);
        }
        if (ie(tr) || B(tr))
          return tr = xf(tr, fr.mode, vr, null), tr.return = fr, tr;
        vl(fr, tr);
      }
      return null;
    }
    function Hr(fr, tr, vr, Zr) {
      var xn = tr !== null ? tr.key : null;
      if (typeof vr == "string" && vr !== "" || typeof vr == "number")
        return xn !== null ? null : zt(fr, tr, "" + vr, Zr);
      if (typeof vr == "object" && vr !== null) {
        switch (vr.$$typeof) {
          case C:
            return vr.key === xn ? Qt(fr, tr, vr, Zr) : null;
          case w:
            return vr.key === xn ? mr(fr, tr, vr, Zr) : null;
          case Y:
            return xn = vr._init, Hr(
              fr,
              tr,
              xn(vr._payload),
              Zr
            );
        }
        if (ie(vr) || B(vr))
          return xn !== null ? null : Vr(fr, tr, vr, Zr, null);
        vl(fr, vr);
      }
      return null;
    }
    function ln(fr, tr, vr, Zr, xn) {
      if (typeof Zr == "string" && Zr !== "" || typeof Zr == "number")
        return fr = fr.get(vr) || null, zt(tr, fr, "" + Zr, xn);
      if (typeof Zr == "object" && Zr !== null) {
        switch (Zr.$$typeof) {
          case C:
            return fr = fr.get(Zr.key === null ? vr : Zr.key) || null, Qt(tr, fr, Zr, xn);
          case w:
            return fr = fr.get(Zr.key === null ? vr : Zr.key) || null, mr(tr, fr, Zr, xn);
          case Y:
            var In = Zr._init;
            return ln(fr, tr, vr, In(Zr._payload), xn);
        }
        if (ie(Zr) || B(Zr))
          return fr = fr.get(vr) || null, Vr(tr, fr, Zr, xn, null);
        vl(tr, Zr);
      }
      return null;
    }
    function pn(fr, tr, vr, Zr) {
      for (var xn = null, In = null, mn = tr, zn = tr = 0, Ii = null; mn !== null && zn < vr.length; zn++) {
        mn.index > zn ? (Ii = mn, mn = null) : Ii = mn.sibling;
        var pa = Hr(fr, mn, vr[zn], Zr);
        if (pa === null) {
          mn === null && (mn = Ii);
          break;
        }
        n && mn && pa.alternate === null && v(fr, mn), tr = Ne(pa, tr, zn), In === null ? xn = pa : In.sibling = pa, In = pa, mn = Ii;
      }
      if (zn === vr.length)
        return F(fr, mn), ra && Hi(fr, zn), xn;
      if (mn === null) {
        for (; zn < vr.length; zn++)
          mn = Wr(fr, vr[zn], Zr), mn !== null && (tr = Ne(mn, tr, zn), In === null ? xn = mn : In.sibling = mn, In = mn);
        return ra && Hi(fr, zn), xn;
      }
      for (mn = re(fr, mn); zn < vr.length; zn++)
        Ii = ln(mn, fr, zn, vr[zn], Zr), Ii !== null && (n && Ii.alternate !== null && mn.delete(Ii.key === null ? zn : Ii.key), tr = Ne(Ii, tr, zn), In === null ? xn = Ii : In.sibling = Ii, In = Ii);
      return n && mn.forEach(function(Ws) {
        return v(fr, Ws);
      }), ra && Hi(fr, zn), xn;
    }
    function gn(fr, tr, vr, Zr) {
      var xn = B(vr);
      if (typeof xn != "function")
        throw Error(E(150));
      if (vr = xn.call(vr), vr == null)
        throw Error(E(151));
      for (var In = xn = null, mn = tr, zn = tr = 0, Ii = null, pa = vr.next(); mn !== null && !pa.done; zn++, pa = vr.next()) {
        mn.index > zn ? (Ii = mn, mn = null) : Ii = mn.sibling;
        var Ws = Hr(fr, mn, pa.value, Zr);
        if (Ws === null) {
          mn === null && (mn = Ii);
          break;
        }
        n && mn && Ws.alternate === null && v(fr, mn), tr = Ne(Ws, tr, zn), In === null ? xn = Ws : In.sibling = Ws, In = Ws, mn = Ii;
      }
      if (pa.done)
        return F(
          fr,
          mn
        ), ra && Hi(fr, zn), xn;
      if (mn === null) {
        for (; !pa.done; zn++, pa = vr.next())
          pa = Wr(fr, pa.value, Zr), pa !== null && (tr = Ne(pa, tr, zn), In === null ? xn = pa : In.sibling = pa, In = pa);
        return ra && Hi(fr, zn), xn;
      }
      for (mn = re(fr, mn); !pa.done; zn++, pa = vr.next())
        pa = ln(mn, fr, zn, pa.value, Zr), pa !== null && (n && pa.alternate !== null && mn.delete(pa.key === null ? zn : pa.key), tr = Ne(pa, tr, zn), In === null ? xn = pa : In.sibling = pa, In = pa);
      return n && mn.forEach(function(I1) {
        return v(fr, I1);
      }), ra && Hi(fr, zn), xn;
    }
    function di(fr, tr, vr, Zr) {
      if (typeof vr == "object" && vr !== null && vr.type === S && vr.key === null && (vr = vr.props.children), typeof vr == "object" && vr !== null) {
        switch (vr.$$typeof) {
          case C:
            e: {
              for (var xn = vr.key, In = tr; In !== null; ) {
                if (In.key === xn) {
                  if (xn = vr.type, xn === S) {
                    if (In.tag === 7) {
                      F(fr, In.sibling), tr = Te(In, vr.props.children), tr.return = fr, fr = tr;
                      break e;
                    }
                  } else if (In.elementType === xn || typeof xn == "object" && xn !== null && xn.$$typeof === Y && xd(xn) === In.type) {
                    F(fr, In.sibling), tr = Te(In, vr.props), tr.ref = ss(fr, In, vr), tr.return = fr, fr = tr;
                    break e;
                  }
                  F(fr, In);
                  break;
                } else
                  v(fr, In);
                In = In.sibling;
              }
              vr.type === S ? (tr = xf(vr.props.children, fr.mode, Zr, vr.key), tr.return = fr, fr = tr) : (Zr = th(vr.type, vr.key, vr.props, null, fr.mode, Zr), Zr.ref = ss(fr, tr, vr), Zr.return = fr, fr = Zr);
            }
            return ot(fr);
          case w:
            e: {
              for (In = vr.key; tr !== null; ) {
                if (tr.key === In)
                  if (tr.tag === 4 && tr.stateNode.containerInfo === vr.containerInfo && tr.stateNode.implementation === vr.implementation) {
                    F(fr, tr.sibling), tr = Te(tr, vr.children || []), tr.return = fr, fr = tr;
                    break e;
                  } else {
                    F(fr, tr);
                    break;
                  }
                else
                  v(fr, tr);
                tr = tr.sibling;
              }
              tr = kd(vr, fr.mode, Zr), tr.return = fr, fr = tr;
            }
            return ot(fr);
          case Y:
            return In = vr._init, di(fr, tr, In(vr._payload), Zr);
        }
        if (ie(vr))
          return pn(fr, tr, vr, Zr);
        if (B(vr))
          return gn(fr, tr, vr, Zr);
        vl(fr, vr);
      }
      return typeof vr == "string" && vr !== "" || typeof vr == "number" ? (vr = "" + vr, tr !== null && tr.tag === 6 ? (F(fr, tr.sibling), tr = Te(tr, vr), tr.return = fr, fr = tr) : (F(fr, tr), tr = nh(vr, fr.mode, Zr), tr.return = fr, fr = tr), ot(fr)) : F(fr, tr);
    }
    return di;
  }
  var bu = uc(!0), Ov = uc(!1), hl = Wn(null), ni = null, Kr = null, To = null;
  function Bi() {
    To = Kr = ni = null;
  }
  function fc(n) {
    var v = hl.current;
    va(hl), n._currentValue = v;
  }
  function _s(n, v, F) {
    for (; n !== null; ) {
      var re = n.alternate;
      if ((n.childLanes & v) !== v ? (n.childLanes |= v, re !== null && (re.childLanes |= v)) : re !== null && (re.childLanes & v) !== v && (re.childLanes |= v), n === F)
        break;
      n = n.return;
    }
  }
  function ka(n, v) {
    ni = n, To = Kr = null, n = n.dependencies, n !== null && n.firstContext !== null && (n.lanes & v && (Go = !0), n.firstContext = null);
  }
  function Co(n) {
    var v = n._currentValue;
    if (To !== n)
      if (n = { context: n, memoizedValue: v, next: null }, Kr === null) {
        if (ni === null)
          throw Error(E(308));
        Kr = n, ni.dependencies = { lanes: 0, firstContext: n };
      } else
        Kr = Kr.next = n;
    return v;
  }
  var Ao = null;
  function ja(n) {
    Ao === null ? Ao = [n] : Ao.push(n);
  }
  function cc(n, v, F, re) {
    var Te = v.interleaved;
    return Te === null ? (F.next = F, ja(v)) : (F.next = Te.next, Te.next = F), v.interleaved = F, Yl(n, re);
  }
  function Yl(n, v) {
    n.lanes |= v;
    var F = n.alternate;
    for (F !== null && (F.lanes |= v), F = n, n = n.return; n !== null; )
      n.childLanes |= v, F = n.alternate, F !== null && (F.childLanes |= v), F = n, n = n.return;
    return F.tag === 3 ? F.stateNode : null;
  }
  var pl = !1;
  function Hs(n) {
    n.updateQueue = { baseState: n.memoizedState, firstBaseUpdate: null, lastBaseUpdate: null, shared: { pending: null, interleaved: null, lanes: 0 }, effects: null };
  }
  function Bs(n, v) {
    n = n.updateQueue, v.updateQueue === n && (v.updateQueue = { baseState: n.baseState, firstBaseUpdate: n.firstBaseUpdate, lastBaseUpdate: n.lastBaseUpdate, shared: n.shared, effects: n.effects });
  }
  function vo(n, v) {
    return { eventTime: n, lane: v, tag: 0, payload: null, callback: null, next: null };
  }
  function us(n, v, F) {
    var re = n.updateQueue;
    if (re === null)
      return null;
    if (re = re.shared, aa & 2) {
      var Te = re.pending;
      return Te === null ? v.next = v : (v.next = Te.next, Te.next = v), re.pending = v, Yl(n, F);
    }
    return Te = re.interleaved, Te === null ? (v.next = v, ja(re)) : (v.next = Te.next, Te.next = v), re.interleaved = v, Yl(n, F);
  }
  function dc(n, v, F) {
    if (v = v.updateQueue, v !== null && (v = v.shared, (F & 4194240) !== 0)) {
      var re = v.lanes;
      re &= n.pendingLanes, F |= re, v.lanes = F, Ht(n, F);
    }
  }
  function Pv(n, v) {
    var F = n.updateQueue, re = n.alternate;
    if (re !== null && (re = re.updateQueue, F === re)) {
      var Te = null, Ne = null;
      if (F = F.firstBaseUpdate, F !== null) {
        do {
          var ot = { eventTime: F.eventTime, lane: F.lane, tag: F.tag, payload: F.payload, callback: F.callback, next: null };
          Ne === null ? Te = Ne = ot : Ne = Ne.next = ot, F = F.next;
        } while (F !== null);
        Ne === null ? Te = Ne = v : Ne = Ne.next = v;
      } else
        Te = Ne = v;
      F = { baseState: re.baseState, firstBaseUpdate: Te, lastBaseUpdate: Ne, shared: re.shared, effects: re.effects }, n.updateQueue = F;
      return;
    }
    n = F.lastBaseUpdate, n === null ? F.firstBaseUpdate = v : n.next = v, F.lastBaseUpdate = v;
  }
  function xu(n, v, F, re) {
    var Te = n.updateQueue;
    pl = !1;
    var Ne = Te.firstBaseUpdate, ot = Te.lastBaseUpdate, zt = Te.shared.pending;
    if (zt !== null) {
      Te.shared.pending = null;
      var Qt = zt, mr = Qt.next;
      Qt.next = null, ot === null ? Ne = mr : ot.next = mr, ot = Qt;
      var Vr = n.alternate;
      Vr !== null && (Vr = Vr.updateQueue, zt = Vr.lastBaseUpdate, zt !== ot && (zt === null ? Vr.firstBaseUpdate = mr : zt.next = mr, Vr.lastBaseUpdate = Qt));
    }
    if (Ne !== null) {
      var Wr = Te.baseState;
      ot = 0, Vr = mr = Qt = null, zt = Ne;
      do {
        var Hr = zt.lane, ln = zt.eventTime;
        if ((re & Hr) === Hr) {
          Vr !== null && (Vr = Vr.next = {
            eventTime: ln,
            lane: 0,
            tag: zt.tag,
            payload: zt.payload,
            callback: zt.callback,
            next: null
          });
          e: {
            var pn = n, gn = zt;
            switch (Hr = v, ln = F, gn.tag) {
              case 1:
                if (pn = gn.payload, typeof pn == "function") {
                  Wr = pn.call(ln, Wr, Hr);
                  break e;
                }
                Wr = pn;
                break e;
              case 3:
                pn.flags = pn.flags & -65537 | 128;
              case 0:
                if (pn = gn.payload, Hr = typeof pn == "function" ? pn.call(ln, Wr, Hr) : pn, Hr == null)
                  break e;
                Wr = X({}, Wr, Hr);
                break e;
              case 2:
                pl = !0;
            }
          }
          zt.callback !== null && zt.lane !== 0 && (n.flags |= 64, Hr = Te.effects, Hr === null ? Te.effects = [zt] : Hr.push(zt));
        } else
          ln = { eventTime: ln, lane: Hr, tag: zt.tag, payload: zt.payload, callback: zt.callback, next: null }, Vr === null ? (mr = Vr = ln, Qt = Wr) : Vr = Vr.next = ln, ot |= Hr;
        if (zt = zt.next, zt === null) {
          if (zt = Te.shared.pending, zt === null)
            break;
          Hr = zt, zt = Hr.next, Hr.next = null, Te.lastBaseUpdate = Hr, Te.shared.pending = null;
        }
      } while (!0);
      if (Vr === null && (Qt = Wr), Te.baseState = Qt, Te.firstBaseUpdate = mr, Te.lastBaseUpdate = Vr, v = Te.shared.interleaved, v !== null) {
        Te = v;
        do
          ot |= Te.lane, Te = Te.next;
        while (Te !== v);
      } else
        Ne === null && (Te.shared.lanes = 0);
      mf |= ot, n.lanes = ot, n.memoizedState = Wr;
    }
  }
  function Fv(n, v, F) {
    if (n = v.effects, v.effects = null, n !== null)
      for (v = 0; v < n.length; v++) {
        var re = n[v], Te = re.callback;
        if (Te !== null) {
          if (re.callback = null, re = F, typeof Te != "function")
            throw Error(E(191, Te));
          Te.call(re);
        }
      }
  }
  var ff = {}, y = Wn(ff), _ = Wn(ff), Q = Wn(ff);
  function le(n) {
    if (n === ff)
      throw Error(E(174));
    return n;
  }
  function pe(n, v) {
    switch (ha(Q, v), ha(_, n), ha(y, ff), n = v.nodeType, n) {
      case 9:
      case 11:
        v = (v = v.documentElement) ? v.namespaceURI : we(null, "");
        break;
      default:
        n = n === 8 ? v.parentNode : v, v = n.namespaceURI || null, n = n.tagName, v = we(v, n);
    }
    va(y), ha(y, v);
  }
  function ge() {
    va(y), va(_), va(Q);
  }
  function Fe(n) {
    le(Q.current);
    var v = le(y.current), F = we(v, n.type);
    v !== F && (ha(_, n), ha(y, F));
  }
  function ke(n) {
    _.current === n && (va(y), va(_));
  }
  var _e = Wn(0);
  function Qe(n) {
    for (var v = n; v !== null; ) {
      if (v.tag === 13) {
        var F = v.memoizedState;
        if (F !== null && (F = F.dehydrated, F === null || F.data === "$?" || F.data === "$!"))
          return v;
      } else if (v.tag === 19 && v.memoizedProps.revealOrder !== void 0) {
        if (v.flags & 128)
          return v;
      } else if (v.child !== null) {
        v.child.return = v, v = v.child;
        continue;
      }
      if (v === n)
        break;
      for (; v.sibling === null; ) {
        if (v.return === null || v.return === n)
          return null;
        v = v.return;
      }
      v.sibling.return = v.return, v = v.sibling;
    }
    return null;
  }
  var Ke = [];
  function yt() {
    for (var n = 0; n < Ke.length; n++)
      Ke[n]._workInProgressVersionPrimary = null;
    Ke.length = 0;
  }
  var gt = D.ReactCurrentDispatcher, Vt = D.ReactCurrentBatchConfig, Pt = 0, ct = null, xt = null, Rt = null, Xt = !1, Kt = !1, Bt = 0, Ar = 0;
  function Nr() {
    throw Error(E(321));
  }
  function Ur(n, v) {
    if (v === null)
      return !1;
    for (var F = 0; F < v.length && F < n.length; F++)
      if (!zo(n[F], v[F]))
        return !1;
    return !0;
  }
  function qt(n, v, F, re, Te, Ne) {
    if (Pt = Ne, ct = v, v.memoizedState = null, v.updateQueue = null, v.lanes = 0, gt.current = n === null || n.memoizedState === null ? m1 : Ua, n = F(re, Te), Kt) {
      Ne = 0;
      do {
        if (Kt = !1, Bt = 0, 25 <= Ne)
          throw Error(E(301));
        Ne += 1, Rt = xt = null, v.updateQueue = null, gt.current = zv, n = F(re, Te);
      } while (Kt);
    }
    if (gt.current = po, v = xt !== null && xt.next !== null, Pt = 0, Rt = xt = ct = null, Xt = !1, v)
      throw Error(E(300));
    return n;
  }
  function Br() {
    var n = Bt !== 0;
    return Bt = 0, n;
  }
  function xr() {
    var n = { memoizedState: null, baseState: null, baseQueue: null, queue: null, next: null };
    return Rt === null ? ct.memoizedState = Rt = n : Rt = Rt.next = n, Rt;
  }
  function nn() {
    if (xt === null) {
      var n = ct.alternate;
      n = n !== null ? n.memoizedState : null;
    } else
      n = xt.next;
    var v = Rt === null ? ct.memoizedState : Rt.next;
    if (v !== null)
      Rt = v, xt = n;
    else {
      if (n === null)
        throw Error(E(310));
      xt = n, n = { memoizedState: xt.memoizedState, baseState: xt.baseState, baseQueue: xt.baseQueue, queue: xt.queue, next: null }, Rt === null ? ct.memoizedState = Rt = n : Rt = Rt.next = n;
    }
    return Rt;
  }
  function jr(n, v) {
    return typeof v == "function" ? v(n) : v;
  }
  function fn(n) {
    var v = nn(), F = v.queue;
    if (F === null)
      throw Error(E(311));
    F.lastRenderedReducer = n;
    var re = xt, Te = re.baseQueue, Ne = F.pending;
    if (Ne !== null) {
      if (Te !== null) {
        var ot = Te.next;
        Te.next = Ne.next, Ne.next = ot;
      }
      re.baseQueue = Te = Ne, F.pending = null;
    }
    if (Te !== null) {
      Ne = Te.next, re = re.baseState;
      var zt = ot = null, Qt = null, mr = Ne;
      do {
        var Vr = mr.lane;
        if ((Pt & Vr) === Vr)
          Qt !== null && (Qt = Qt.next = { lane: 0, action: mr.action, hasEagerState: mr.hasEagerState, eagerState: mr.eagerState, next: null }), re = mr.hasEagerState ? mr.eagerState : n(re, mr.action);
        else {
          var Wr = {
            lane: Vr,
            action: mr.action,
            hasEagerState: mr.hasEagerState,
            eagerState: mr.eagerState,
            next: null
          };
          Qt === null ? (zt = Qt = Wr, ot = re) : Qt = Qt.next = Wr, ct.lanes |= Vr, mf |= Vr;
        }
        mr = mr.next;
      } while (mr !== null && mr !== Ne);
      Qt === null ? ot = re : Qt.next = zt, zo(re, v.memoizedState) || (Go = !0), v.memoizedState = re, v.baseState = ot, v.baseQueue = Qt, F.lastRenderedState = re;
    }
    if (n = F.interleaved, n !== null) {
      Te = n;
      do
        Ne = Te.lane, ct.lanes |= Ne, mf |= Ne, Te = Te.next;
      while (Te !== n);
    } else
      Te === null && (F.lanes = 0);
    return [v.memoizedState, F.dispatch];
  }
  function Bn(n) {
    var v = nn(), F = v.queue;
    if (F === null)
      throw Error(E(311));
    F.lastRenderedReducer = n;
    var re = F.dispatch, Te = F.pending, Ne = v.memoizedState;
    if (Te !== null) {
      F.pending = null;
      var ot = Te = Te.next;
      do
        Ne = n(Ne, ot.action), ot = ot.next;
      while (ot !== Te);
      zo(Ne, v.memoizedState) || (Go = !0), v.memoizedState = Ne, v.baseQueue === null && (v.baseState = Ne), F.lastRenderedState = Ne;
    }
    return [Ne, re];
  }
  function wa() {
  }
  function Jn(n, v) {
    var F = ct, re = nn(), Te = v(), Ne = !zo(re.memoizedState, Te);
    if (Ne && (re.memoizedState = Te, Go = !0), re = re.queue, qa(En.bind(null, F, re, n), [n]), re.getSnapshot !== v || Ne || Rt !== null && Rt.memoizedState.tag & 1) {
      if (F.flags |= 2048, Ga(9, Tn.bind(null, F, re, Te, v), void 0, null), oi === null)
        throw Error(E(349));
      Pt & 30 || _r(F, v, Te);
    }
    return Te;
  }
  function _r(n, v, F) {
    n.flags |= 16384, n = { getSnapshot: v, value: F }, v = ct.updateQueue, v === null ? (v = { lastEffect: null, stores: null }, ct.updateQueue = v, v.stores = [n]) : (F = v.stores, F === null ? v.stores = [n] : F.push(n));
  }
  function Tn(n, v, F, re) {
    v.value = F, v.getSnapshot = re, Qn(v) && Sa(n);
  }
  function En(n, v, F) {
    return F(function() {
      Qn(v) && Sa(n);
    });
  }
  function Qn(n) {
    var v = n.getSnapshot;
    n = n.value;
    try {
      var F = v();
      return !zo(n, F);
    } catch {
      return !0;
    }
  }
  function Sa(n) {
    var v = Yl(n, 1);
    v !== null && ei(v, n, 1, -1);
  }
  function Va(n) {
    var v = xr();
    return typeof n == "function" && (n = n()), v.memoizedState = v.baseState = n, n = { pending: null, interleaved: null, lanes: 0, dispatch: null, lastRenderedReducer: jr, lastRenderedState: n }, v.queue = n, n = n.dispatch = cs.bind(null, ct, n), [v.memoizedState, n];
  }
  function Ga(n, v, F, re) {
    return n = { tag: n, create: v, destroy: F, deps: re, next: null }, v = ct.updateQueue, v === null ? (v = { lastEffect: null, stores: null }, ct.updateQueue = v, v.lastEffect = n.next = n) : (F = v.lastEffect, F === null ? v.lastEffect = n.next = n : (re = F.next, F.next = n, n.next = re, v.lastEffect = n)), n;
  }
  function ui() {
    return nn().memoizedState;
  }
  function ai(n, v, F, re) {
    var Te = xr();
    ct.flags |= n, Te.memoizedState = Ga(1 | v, F, void 0, re === void 0 ? null : re);
  }
  function Ka(n, v, F, re) {
    var Te = nn();
    re = re === void 0 ? null : re;
    var Ne = void 0;
    if (xt !== null) {
      var ot = xt.memoizedState;
      if (Ne = ot.destroy, re !== null && Ur(re, ot.deps)) {
        Te.memoizedState = Ga(v, F, Ne, re);
        return;
      }
    }
    ct.flags |= n, Te.memoizedState = Ga(1 | v, F, Ne, re);
  }
  function Ei(n, v) {
    return ai(8390656, 8, n, v);
  }
  function qa(n, v) {
    return Ka(2048, 8, n, v);
  }
  function Di(n, v) {
    return Ka(4, 2, n, v);
  }
  function ml(n, v) {
    return Ka(4, 4, n, v);
  }
  function vc(n, v) {
    if (typeof v == "function")
      return n = n(), v(n), function() {
        v(null);
      };
    if (v != null)
      return n = n(), v.current = n, function() {
        v.current = null;
      };
  }
  function ho(n, v, F) {
    return F = F != null ? F.concat([n]) : null, Ka(4, 4, vc.bind(null, v, n), F);
  }
  function Za() {
  }
  function xi(n, v) {
    var F = nn();
    v = v === void 0 ? null : v;
    var re = F.memoizedState;
    return re !== null && v !== null && Ur(v, re[1]) ? re[0] : (F.memoizedState = [n, v], n);
  }
  function wo(n, v) {
    var F = nn();
    v = v === void 0 ? null : v;
    var re = F.memoizedState;
    return re !== null && v !== null && Ur(v, re[1]) ? re[0] : (n = n(), F.memoizedState = [n, v], n);
  }
  function Ji(n, v, F) {
    return Pt & 21 ? (zo(F, v) || (F = vt(), ct.lanes |= F, mf |= F, n.baseState = !0), v) : (n.baseState && (n.baseState = !1, Go = !0), n.memoizedState = F);
  }
  function fs(n, v) {
    var F = Et;
    Et = F !== 0 && 4 > F ? F : 4, n(!0);
    var re = Vt.transition;
    Vt.transition = {};
    try {
      n(!1), v();
    } finally {
      Et = F, Vt.transition = re;
    }
  }
  function yl() {
    return nn().memoizedState;
  }
  function Xl(n, v, F) {
    var re = Us(n);
    if (F = { lane: re, action: F, hasEagerState: !1, eagerState: null, next: null }, hc(n))
      pc(v, F);
    else if (F = cc(n, v, F, re), F !== null) {
      var Te = Ui();
      ei(F, n, re, Te), Tu(F, v, re);
    }
  }
  function cs(n, v, F) {
    var re = Us(n), Te = { lane: re, action: F, hasEagerState: !1, eagerState: null, next: null };
    if (hc(n))
      pc(v, Te);
    else {
      var Ne = n.alternate;
      if (n.lanes === 0 && (Ne === null || Ne.lanes === 0) && (Ne = v.lastRenderedReducer, Ne !== null))
        try {
          var ot = v.lastRenderedState, zt = Ne(ot, F);
          if (Te.hasEagerState = !0, Te.eagerState = zt, zo(zt, ot)) {
            var Qt = v.interleaved;
            Qt === null ? (Te.next = Te, ja(v)) : (Te.next = Qt.next, Qt.next = Te), v.interleaved = Te;
            return;
          }
        } catch {
        } finally {
        }
      F = cc(n, v, Te, re), F !== null && (Te = Ui(), ei(F, n, re, Te), Tu(F, v, re));
    }
  }
  function hc(n) {
    var v = n.alternate;
    return n === ct || v !== null && v === ct;
  }
  function pc(n, v) {
    Kt = Xt = !0;
    var F = n.pending;
    F === null ? v.next = v : (v.next = F.next, F.next = v), n.pending = v;
  }
  function Tu(n, v, F) {
    if (F & 4194240) {
      var re = v.lanes;
      re &= n.pendingLanes, F |= re, v.lanes = F, Ht(n, F);
    }
  }
  var po = { readContext: Co, useCallback: Nr, useContext: Nr, useEffect: Nr, useImperativeHandle: Nr, useInsertionEffect: Nr, useLayoutEffect: Nr, useMemo: Nr, useReducer: Nr, useRef: Nr, useState: Nr, useDebugValue: Nr, useDeferredValue: Nr, useTransition: Nr, useMutableSource: Nr, useSyncExternalStore: Nr, useId: Nr, unstable_isNewReconciler: !1 }, m1 = { readContext: Co, useCallback: function(n, v) {
    return xr().memoizedState = [n, v === void 0 ? null : v], n;
  }, useContext: Co, useEffect: Ei, useImperativeHandle: function(n, v, F) {
    return F = F != null ? F.concat([n]) : null, ai(
      4194308,
      4,
      vc.bind(null, v, n),
      F
    );
  }, useLayoutEffect: function(n, v) {
    return ai(4194308, 4, n, v);
  }, useInsertionEffect: function(n, v) {
    return ai(4, 2, n, v);
  }, useMemo: function(n, v) {
    var F = xr();
    return v = v === void 0 ? null : v, n = n(), F.memoizedState = [n, v], n;
  }, useReducer: function(n, v, F) {
    var re = xr();
    return v = F !== void 0 ? F(v) : v, re.memoizedState = re.baseState = v, n = { pending: null, interleaved: null, lanes: 0, dispatch: null, lastRenderedReducer: n, lastRenderedState: v }, re.queue = n, n = n.dispatch = Xl.bind(null, ct, n), [re.memoizedState, n];
  }, useRef: function(n) {
    var v = xr();
    return n = { current: n }, v.memoizedState = n;
  }, useState: Va, useDebugValue: Za, useDeferredValue: function(n) {
    return xr().memoizedState = n;
  }, useTransition: function() {
    var n = Va(!1), v = n[0];
    return n = fs.bind(null, n[1]), xr().memoizedState = n, [v, n];
  }, useMutableSource: function() {
  }, useSyncExternalStore: function(n, v, F) {
    var re = ct, Te = xr();
    if (ra) {
      if (F === void 0)
        throw Error(E(407));
      F = F();
    } else {
      if (F = v(), oi === null)
        throw Error(E(349));
      Pt & 30 || _r(re, v, F);
    }
    Te.memoizedState = F;
    var Ne = { value: F, getSnapshot: v };
    return Te.queue = Ne, Ei(En.bind(
      null,
      re,
      Ne,
      n
    ), [n]), re.flags |= 2048, Ga(9, Tn.bind(null, re, Ne, F, v), void 0, null), F;
  }, useId: function() {
    var n = xr(), v = oi.identifierPrefix;
    if (ra) {
      var F = Ul, re = Mi;
      F = (re & ~(1 << 32 - zr(re) - 1)).toString(32) + F, v = ":" + v + "R" + F, F = Bt++, 0 < F && (v += "H" + F.toString(32)), v += ":";
    } else
      F = Ar++, v = ":" + v + "r" + F.toString(32) + ":";
    return n.memoizedState = v;
  }, unstable_isNewReconciler: !1 }, Ua = {
    readContext: Co,
    useCallback: xi,
    useContext: Co,
    useEffect: qa,
    useImperativeHandle: ho,
    useInsertionEffect: Di,
    useLayoutEffect: ml,
    useMemo: wo,
    useReducer: fn,
    useRef: ui,
    useState: function() {
      return fn(jr);
    },
    useDebugValue: Za,
    useDeferredValue: function(n) {
      var v = nn();
      return Ji(v, xt.memoizedState, n);
    },
    useTransition: function() {
      var n = fn(jr)[0], v = nn().memoizedState;
      return [n, v];
    },
    useMutableSource: wa,
    useSyncExternalStore: Jn,
    useId: yl,
    unstable_isNewReconciler: !1
  }, zv = { readContext: Co, useCallback: xi, useContext: Co, useEffect: qa, useImperativeHandle: ho, useInsertionEffect: Di, useLayoutEffect: ml, useMemo: wo, useReducer: Bn, useRef: ui, useState: function() {
    return Bn(jr);
  }, useDebugValue: Za, useDeferredValue: function(n) {
    var v = nn();
    return xt === null ? v.memoizedState = n : Ji(v, xt.memoizedState, n);
  }, useTransition: function() {
    var n = Bn(jr)[0], v = nn().memoizedState;
    return [n, v];
  }, useMutableSource: wa, useSyncExternalStore: Jn, useId: yl, unstable_isNewReconciler: !1 };
  function Vo(n, v) {
    if (n && n.defaultProps) {
      v = X({}, v), n = n.defaultProps;
      for (var F in n)
        v[F] === void 0 && (v[F] = n[F]);
      return v;
    }
    return v;
  }
  function cf(n, v, F, re) {
    v = n.memoizedState, F = F(re, v), F = F == null ? v : X({}, v, F), n.memoizedState = F, n.lanes === 0 && (n.updateQueue.baseState = F);
  }
  var df = { isMounted: function(n) {
    return (n = n._reactInternals) ? tt(n) === n : !1;
  }, enqueueSetState: function(n, v, F) {
    n = n._reactInternals;
    var re = Ui(), Te = Us(n), Ne = vo(re, Te);
    Ne.payload = v, F != null && (Ne.callback = F), v = us(n, Ne, Te), v !== null && (ei(v, n, Te, re), dc(v, n, Te));
  }, enqueueReplaceState: function(n, v, F) {
    n = n._reactInternals;
    var re = Ui(), Te = Us(n), Ne = vo(re, Te);
    Ne.tag = 1, Ne.payload = v, F != null && (Ne.callback = F), v = us(n, Ne, Te), v !== null && (ei(v, n, Te, re), dc(v, n, Te));
  }, enqueueForceUpdate: function(n, v) {
    n = n._reactInternals;
    var F = Ui(), re = Us(n), Te = vo(F, re);
    Te.tag = 2, v != null && (Te.callback = v), v = us(n, Te, re), v !== null && (ei(v, n, re, F), dc(v, n, re));
  } };
  function sm(n, v, F, re, Te, Ne, ot) {
    return n = n.stateNode, typeof n.shouldComponentUpdate == "function" ? n.shouldComponentUpdate(re, Ne, ot) : v.prototype && v.prototype.isPureReactComponent ? !cu(F, re) || !cu(Te, Ne) : !0;
  }
  function um(n, v, F) {
    var re = !1, Te = cl, Ne = v.contextType;
    return typeof Ne == "object" && Ne !== null ? Ne = Co(Ne) : (Te = za(v) ? Zi : Hn.current, re = v.contextTypes, Ne = (re = re != null) ? go(n, Te) : cl), v = new v(F, Ne), n.memoizedState = v.state !== null && v.state !== void 0 ? v.state : null, v.updater = df, n.stateNode = v, v._reactInternals = n, re && (n = n.stateNode, n.__reactInternalMemoizedUnmaskedChildContext = Te, n.__reactInternalMemoizedMaskedChildContext = Ne), v;
  }
  function fm(n, v, F, re) {
    n = v.state, typeof v.componentWillReceiveProps == "function" && v.componentWillReceiveProps(F, re), typeof v.UNSAFE_componentWillReceiveProps == "function" && v.UNSAFE_componentWillReceiveProps(F, re), v.state !== n && df.enqueueReplaceState(v, v.state, null);
  }
  function cp(n, v, F, re) {
    var Te = n.stateNode;
    Te.props = F, Te.state = n.memoizedState, Te.refs = {}, Hs(n);
    var Ne = v.contextType;
    typeof Ne == "object" && Ne !== null ? Te.context = Co(Ne) : (Ne = za(v) ? Zi : Hn.current, Te.context = go(n, Ne)), Te.state = n.memoizedState, Ne = v.getDerivedStateFromProps, typeof Ne == "function" && (cf(n, v, Ne, F), Te.state = n.memoizedState), typeof v.getDerivedStateFromProps == "function" || typeof Te.getSnapshotBeforeUpdate == "function" || typeof Te.UNSAFE_componentWillMount != "function" && typeof Te.componentWillMount != "function" || (v = Te.state, typeof Te.componentWillMount == "function" && Te.componentWillMount(), typeof Te.UNSAFE_componentWillMount == "function" && Te.UNSAFE_componentWillMount(), v !== Te.state && df.enqueueReplaceState(Te, Te.state, null), xu(n, F, Te, re), Te.state = n.memoizedState), typeof Te.componentDidMount == "function" && (n.flags |= 4194308);
  }
  function Cu(n, v) {
    try {
      var F = "", re = v;
      do
        F += J(re), re = re.return;
      while (re);
      var Te = F;
    } catch (Ne) {
      Te = `
Error generating stack: ` + Ne.message + `
` + Ne.stack;
    }
    return { value: n, source: v, stack: Te, digest: null };
  }
  function dp(n, v, F) {
    return { value: n, source: null, stack: F ?? null, digest: v ?? null };
  }
  function Td(n, v) {
    try {
      console.error(v.value);
    } catch (F) {
      setTimeout(function() {
        throw F;
      });
    }
  }
  var cm = typeof WeakMap == "function" ? WeakMap : Map;
  function dm(n, v, F) {
    F = vo(-1, F), F.tag = 3, F.payload = { element: null };
    var re = v.value;
    return F.callback = function() {
      $v || ($v = !0, Tp = re), Td(n, v);
    }, F;
  }
  function vm(n, v, F) {
    F = vo(-1, F), F.tag = 3;
    var re = n.type.getDerivedStateFromError;
    if (typeof re == "function") {
      var Te = v.value;
      F.payload = function() {
        return re(Te);
      }, F.callback = function() {
        Td(n, v);
      };
    }
    var Ne = n.stateNode;
    return Ne !== null && typeof Ne.componentDidCatch == "function" && (F.callback = function() {
      Td(n, v), typeof re != "function" && (xl === null ? xl = /* @__PURE__ */ new Set([this]) : xl.add(this));
      var ot = v.stack;
      this.componentDidCatch(v.value, { componentStack: ot !== null ? ot : "" });
    }), F;
  }
  function Cd(n, v, F) {
    var re = n.pingCache;
    if (re === null) {
      re = n.pingCache = new cm();
      var Te = /* @__PURE__ */ new Set();
      re.set(v, Te);
    } else
      Te = re.get(v), Te === void 0 && (Te = /* @__PURE__ */ new Set(), re.set(v, Te));
    Te.has(F) || (Te.add(F), n = M1.bind(null, n, v, F), v.then(n, n));
  }
  function hm(n) {
    do {
      var v;
      if ((v = n.tag === 13) && (v = n.memoizedState, v = v !== null ? v.dehydrated !== null : !0), v)
        return n;
      n = n.return;
    } while (n !== null);
    return null;
  }
  function vp(n, v, F, re, Te) {
    return n.mode & 1 ? (n.flags |= 65536, n.lanes = Te, n) : (n === v ? n.flags |= 65536 : (n.flags |= 128, F.flags |= 131072, F.flags &= -52805, F.tag === 1 && (F.alternate === null ? F.tag = 17 : (v = vo(-1, 1), v.tag = 2, us(F, v, 1))), F.lanes |= 1), n);
  }
  var pm = D.ReactCurrentOwner, Go = !1;
  function fi(n, v, F, re) {
    v.child = n === null ? Ov(v, null, F, re) : bu(v, n.child, F, re);
  }
  function mc(n, v, F, re, Te) {
    F = F.render;
    var Ne = v.ref;
    return ka(v, Te), re = qt(n, v, F, re, Ne, Te), F = Br(), n !== null && !Go ? (v.updateQueue = n.updateQueue, v.flags &= -2053, n.lanes &= ~Te, ci(n, v, Te)) : (ra && F && sf(v), v.flags |= 1, fi(n, v, re, Te), v.child);
  }
  function Au(n, v, F, re, Te) {
    if (n === null) {
      var Ne = F.type;
      return typeof Ne == "function" && !Mp(Ne) && Ne.defaultProps === void 0 && F.compare === null && F.defaultProps === void 0 ? (v.tag = 15, v.type = Ne, _v(n, v, Ne, re, Te)) : (n = th(F.type, null, re, v, v.mode, Te), n.ref = v.ref, n.return = v, v.child = n);
    }
    if (Ne = n.child, !(n.lanes & Te)) {
      var ot = Ne.memoizedProps;
      if (F = F.compare, F = F !== null ? F : cu, F(ot, re) && n.ref === v.ref)
        return ci(n, v, Te);
    }
    return v.flags |= 1, n = Mu(Ne, re), n.ref = v.ref, n.return = v, v.child = n;
  }
  function _v(n, v, F, re, Te) {
    if (n !== null) {
      var Ne = n.memoizedProps;
      if (cu(Ne, re) && n.ref === v.ref)
        if (Go = !1, v.pendingProps = re = Ne, (n.lanes & Te) !== 0)
          n.flags & 131072 && (Go = !0);
        else
          return v.lanes = n.lanes, ci(n, v, Te);
    }
    return $n(n, v, F, re, Te);
  }
  function Uo(n, v, F) {
    var re = v.pendingProps, Te = re.children, Ne = n !== null ? n.memoizedState : null;
    if (re.mode === "hidden")
      if (!(v.mode & 1))
        v.memoizedState = { baseLanes: 0, cachePool: null, transitions: null }, ha(Mc, Wo), Wo |= F;
      else {
        if (!(F & 1073741824))
          return n = Ne !== null ? Ne.baseLanes | F : F, v.lanes = v.childLanes = 1073741824, v.memoizedState = { baseLanes: n, cachePool: null, transitions: null }, v.updateQueue = null, ha(Mc, Wo), Wo |= n, null;
        v.memoizedState = { baseLanes: 0, cachePool: null, transitions: null }, re = Ne !== null ? Ne.baseLanes : F, ha(Mc, Wo), Wo |= re;
      }
    else
      Ne !== null ? (re = Ne.baseLanes | F, v.memoizedState = null) : re = F, ha(Mc, Wo), Wo |= re;
    return fi(n, v, Te, F), v.child;
  }
  function vf(n, v) {
    var F = v.ref;
    (n === null && F !== null || n !== null && n.ref !== F) && (v.flags |= 512, v.flags |= 2097152);
  }
  function $n(n, v, F, re, Te) {
    var Ne = za(F) ? Zi : Hn.current;
    return Ne = go(v, Ne), ka(v, Te), F = qt(n, v, F, re, Ne, Te), re = Br(), n !== null && !Go ? (v.updateQueue = n.updateQueue, v.flags &= -2053, n.lanes &= ~Te, ci(n, v, Te)) : (ra && re && sf(v), v.flags |= 1, fi(n, v, F, Te), v.child);
  }
  function Ad(n, v, F, re, Te) {
    if (za(F)) {
      var Ne = !0;
      ac(v);
    } else
      Ne = !1;
    if (ka(v, Te), v.stateNode === null)
      Sd(n, v), um(v, F, re), cp(v, F, re, Te), re = !0;
    else if (n === null) {
      var ot = v.stateNode, zt = v.memoizedProps;
      ot.props = zt;
      var Qt = ot.context, mr = F.contextType;
      typeof mr == "object" && mr !== null ? mr = Co(mr) : (mr = za(F) ? Zi : Hn.current, mr = go(v, mr));
      var Vr = F.getDerivedStateFromProps, Wr = typeof Vr == "function" || typeof ot.getSnapshotBeforeUpdate == "function";
      Wr || typeof ot.UNSAFE_componentWillReceiveProps != "function" && typeof ot.componentWillReceiveProps != "function" || (zt !== re || Qt !== mr) && fm(v, ot, re, mr), pl = !1;
      var Hr = v.memoizedState;
      ot.state = Hr, xu(v, re, ot, Te), Qt = v.memoizedState, zt !== re || Hr !== Qt || Xa.current || pl ? (typeof Vr == "function" && (cf(v, F, Vr, re), Qt = v.memoizedState), (zt = pl || sm(v, F, zt, re, Hr, Qt, mr)) ? (Wr || typeof ot.UNSAFE_componentWillMount != "function" && typeof ot.componentWillMount != "function" || (typeof ot.componentWillMount == "function" && ot.componentWillMount(), typeof ot.UNSAFE_componentWillMount == "function" && ot.UNSAFE_componentWillMount()), typeof ot.componentDidMount == "function" && (v.flags |= 4194308)) : (typeof ot.componentDidMount == "function" && (v.flags |= 4194308), v.memoizedProps = re, v.memoizedState = Qt), ot.props = re, ot.state = Qt, ot.context = mr, re = zt) : (typeof ot.componentDidMount == "function" && (v.flags |= 4194308), re = !1);
    } else {
      ot = v.stateNode, Bs(n, v), zt = v.memoizedProps, mr = v.type === v.elementType ? zt : Vo(v.type, zt), ot.props = mr, Wr = v.pendingProps, Hr = ot.context, Qt = F.contextType, typeof Qt == "object" && Qt !== null ? Qt = Co(Qt) : (Qt = za(F) ? Zi : Hn.current, Qt = go(v, Qt));
      var ln = F.getDerivedStateFromProps;
      (Vr = typeof ln == "function" || typeof ot.getSnapshotBeforeUpdate == "function") || typeof ot.UNSAFE_componentWillReceiveProps != "function" && typeof ot.componentWillReceiveProps != "function" || (zt !== Wr || Hr !== Qt) && fm(v, ot, re, Qt), pl = !1, Hr = v.memoizedState, ot.state = Hr, xu(v, re, ot, Te);
      var pn = v.memoizedState;
      zt !== Wr || Hr !== pn || Xa.current || pl ? (typeof ln == "function" && (cf(v, F, ln, re), pn = v.memoizedState), (mr = pl || sm(v, F, mr, re, Hr, pn, Qt) || !1) ? (Vr || typeof ot.UNSAFE_componentWillUpdate != "function" && typeof ot.componentWillUpdate != "function" || (typeof ot.componentWillUpdate == "function" && ot.componentWillUpdate(re, pn, Qt), typeof ot.UNSAFE_componentWillUpdate == "function" && ot.UNSAFE_componentWillUpdate(re, pn, Qt)), typeof ot.componentDidUpdate == "function" && (v.flags |= 4), typeof ot.getSnapshotBeforeUpdate == "function" && (v.flags |= 1024)) : (typeof ot.componentDidUpdate != "function" || zt === n.memoizedProps && Hr === n.memoizedState || (v.flags |= 4), typeof ot.getSnapshotBeforeUpdate != "function" || zt === n.memoizedProps && Hr === n.memoizedState || (v.flags |= 1024), v.memoizedProps = re, v.memoizedState = pn), ot.props = re, ot.state = pn, ot.context = Qt, re = mr) : (typeof ot.componentDidUpdate != "function" || zt === n.memoizedProps && Hr === n.memoizedState || (v.flags |= 4), typeof ot.getSnapshotBeforeUpdate != "function" || zt === n.memoizedProps && Hr === n.memoizedState || (v.flags |= 1024), re = !1);
    }
    return Hv(n, v, F, re, Ne, Te);
  }
  function Hv(n, v, F, re, Te, Ne) {
    vf(n, v);
    var ot = (v.flags & 128) !== 0;
    if (!re && !ot)
      return Te && gd(v, F, !1), ci(n, v, Ne);
    re = v.stateNode, pm.current = v;
    var zt = ot && typeof F.getDerivedStateFromError != "function" ? null : re.render();
    return v.flags |= 1, n !== null && ot ? (v.child = bu(v, n.child, null, Ne), v.child = bu(v, null, zt, Ne)) : fi(n, v, zt, Ne), v.memoizedState = re.state, Te && gd(v, F, !0), v.child;
  }
  function y1(n) {
    var v = n.stateNode;
    v.pendingContext ? rl(n, v.pendingContext, v.pendingContext !== v.context) : v.context && rl(n, v.context, !1), pe(n, v.containerInfo);
  }
  function mm(n, v, F, re, Te) {
    return Ba(), sc(Te), v.flags |= 256, fi(n, v, F, re), v.child;
  }
  var wd = { dehydrated: null, treeContext: null, retryLane: 0 };
  function hf(n) {
    return { baseLanes: n, cachePool: null, transitions: null };
  }
  function ym(n, v, F) {
    var re = v.pendingProps, Te = _e.current, Ne = !1, ot = (v.flags & 128) !== 0, zt;
    if ((zt = ot) || (zt = n !== null && n.memoizedState === null ? !1 : (Te & 2) !== 0), zt ? (Ne = !0, v.flags &= -129) : (n === null || n.memoizedState !== null) && (Te |= 1), ha(_e, Te & 1), n === null)
      return gu(v), n = v.memoizedState, n !== null && (n = n.dehydrated, n !== null) ? (v.mode & 1 ? n.data === "$!" ? v.lanes = 8 : v.lanes = 1073741824 : v.lanes = 1, null) : (ot = re.children, n = re.fallback, Ne ? (re = v.mode, Ne = v.child, ot = { mode: "hidden", children: ot }, !(re & 1) && Ne !== null ? (Ne.childLanes = 0, Ne.pendingProps = ot) : Ne = rh(ot, re, 0, null), n = xf(n, re, F, null), Ne.return = v, n.return = v, Ne.sibling = n, v.child = Ne, v.child.memoizedState = hf(F), v.memoizedState = wd, n) : Bv(v, ot));
    if (Te = n.memoizedState, Te !== null && (zt = Te.dehydrated, zt !== null))
      return hp(n, v, ot, re, zt, Te, F);
    if (Ne) {
      Ne = re.fallback, ot = v.mode, Te = n.child, zt = Te.sibling;
      var Qt = { mode: "hidden", children: re.children };
      return !(ot & 1) && v.child !== Te ? (re = v.child, re.childLanes = 0, re.pendingProps = Qt, v.deletions = null) : (re = Mu(Te, Qt), re.subtreeFlags = Te.subtreeFlags & 14680064), zt !== null ? Ne = Mu(zt, Ne) : (Ne = xf(Ne, ot, F, null), Ne.flags |= 2), Ne.return = v, re.return = v, re.sibling = Ne, v.child = re, re = Ne, Ne = v.child, ot = n.child.memoizedState, ot = ot === null ? hf(F) : { baseLanes: ot.baseLanes | F, cachePool: null, transitions: ot.transitions }, Ne.memoizedState = ot, Ne.childLanes = n.childLanes & ~F, v.memoizedState = wd, re;
    }
    return Ne = n.child, n = Ne.sibling, re = Mu(Ne, { mode: "visible", children: re.children }), !(v.mode & 1) && (re.lanes = F), re.return = v, re.sibling = null, n !== null && (F = v.deletions, F === null ? (v.deletions = [n], v.flags |= 16) : F.push(n)), v.child = re, v.memoizedState = null, re;
  }
  function Bv(n, v) {
    return v = rh({ mode: "visible", children: v }, n.mode, 0, null), v.return = n, n.child = v;
  }
  function Vv(n, v, F, re) {
    return re !== null && sc(re), bu(v, n.child, null, F), n = Bv(v, v.pendingProps.children), n.flags |= 2, v.memoizedState = null, n;
  }
  function hp(n, v, F, re, Te, Ne, ot) {
    if (F)
      return v.flags & 256 ? (v.flags &= -257, re = dp(Error(E(422))), Vv(n, v, ot, re)) : v.memoizedState !== null ? (v.child = n.child, v.flags |= 128, null) : (Ne = re.fallback, Te = v.mode, re = rh({ mode: "visible", children: re.children }, Te, 0, null), Ne = xf(Ne, Te, ot, null), Ne.flags |= 2, re.return = v, Ne.return = v, re.sibling = Ne, v.child = re, v.mode & 1 && bu(v, n.child, null, ot), v.child.memoizedState = hf(ot), v.memoizedState = wd, Ne);
    if (!(v.mode & 1))
      return Vv(n, v, ot, null);
    if (Te.data === "$!") {
      if (re = Te.nextSibling && Te.nextSibling.dataset, re)
        var zt = re.dgst;
      return re = zt, Ne = Error(E(419)), re = dp(Ne, re, void 0), Vv(n, v, ot, re);
    }
    if (zt = (ot & n.childLanes) !== 0, Go || zt) {
      if (re = oi, re !== null) {
        switch (ot & -ot) {
          case 4:
            Te = 2;
            break;
          case 16:
            Te = 8;
            break;
          case 64:
          case 128:
          case 256:
          case 512:
          case 1024:
          case 2048:
          case 4096:
          case 8192:
          case 16384:
          case 32768:
          case 65536:
          case 131072:
          case 262144:
          case 524288:
          case 1048576:
          case 2097152:
          case 4194304:
          case 8388608:
          case 16777216:
          case 33554432:
          case 67108864:
            Te = 32;
            break;
          case 536870912:
            Te = 268435456;
            break;
          default:
            Te = 0;
        }
        Te = Te & (re.suspendedLanes | ot) ? 0 : Te, Te !== 0 && Te !== Ne.retryLane && (Ne.retryLane = Te, Yl(n, Te), ei(re, n, Te, -1));
      }
      return Ld(), re = dp(Error(E(421))), Vv(n, v, ot, re);
    }
    return Te.data === "$?" ? (v.flags |= 128, v.child = n.child, v = Sp.bind(null, n), Te._reactRetry = v, null) : (n = Ne.treeContext, co = so(Te.nextSibling), bo = v, ra = !0, xo = null, n !== null && (_i[bi++] = Mi, _i[bi++] = Ul, _i[bi++] = Bo, Mi = n.id, Ul = n.overflow, Bo = v), v = Bv(v, re.children), v.flags |= 4096, v);
  }
  function gm(n, v, F) {
    n.lanes |= v;
    var re = n.alternate;
    re !== null && (re.lanes |= v), _s(n.return, v, F);
  }
  function Gv(n, v, F, re, Te) {
    var Ne = n.memoizedState;
    Ne === null ? n.memoizedState = { isBackwards: v, rendering: null, renderingStartTime: 0, last: re, tail: F, tailMode: Te } : (Ne.isBackwards = v, Ne.rendering = null, Ne.renderingStartTime = 0, Ne.last = re, Ne.tail = F, Ne.tailMode = Te);
  }
  function pp(n, v, F) {
    var re = v.pendingProps, Te = re.revealOrder, Ne = re.tail;
    if (fi(n, v, re.children, F), re = _e.current, re & 2)
      re = re & 1 | 2, v.flags |= 128;
    else {
      if (n !== null && n.flags & 128)
        e:
          for (n = v.child; n !== null; ) {
            if (n.tag === 13)
              n.memoizedState !== null && gm(n, F, v);
            else if (n.tag === 19)
              gm(n, F, v);
            else if (n.child !== null) {
              n.child.return = n, n = n.child;
              continue;
            }
            if (n === v)
              break e;
            for (; n.sibling === null; ) {
              if (n.return === null || n.return === v)
                break e;
              n = n.return;
            }
            n.sibling.return = n.return, n = n.sibling;
          }
      re &= 1;
    }
    if (ha(_e, re), !(v.mode & 1))
      v.memoizedState = null;
    else
      switch (Te) {
        case "forwards":
          for (F = v.child, Te = null; F !== null; )
            n = F.alternate, n !== null && Qe(n) === null && (Te = F), F = F.sibling;
          F = Te, F === null ? (Te = v.child, v.child = null) : (Te = F.sibling, F.sibling = null), Gv(v, !1, Te, F, Ne);
          break;
        case "backwards":
          for (F = null, Te = v.child, v.child = null; Te !== null; ) {
            if (n = Te.alternate, n !== null && Qe(n) === null) {
              v.child = Te;
              break;
            }
            n = Te.sibling, Te.sibling = F, F = Te, Te = n;
          }
          Gv(v, !0, F, null, Ne);
          break;
        case "together":
          Gv(v, !1, null, null, void 0);
          break;
        default:
          v.memoizedState = null;
      }
    return v.child;
  }
  function Sd(n, v) {
    !(v.mode & 1) && n !== null && (n.alternate = null, v.alternate = null, v.flags |= 2);
  }
  function ci(n, v, F) {
    if (n !== null && (v.dependencies = n.dependencies), mf |= v.lanes, !(F & v.childLanes))
      return null;
    if (n !== null && v.child !== n.child)
      throw Error(E(153));
    if (v.child !== null) {
      for (n = v.child, F = Mu(n, n.pendingProps), v.child = F, F.return = v; n.sibling !== null; )
        n = n.sibling, F = F.sibling = Mu(n, n.pendingProps), F.return = v;
      F.sibling = null;
    }
    return v.child;
  }
  function Vs(n, v, F) {
    switch (v.tag) {
      case 3:
        y1(v), Ba();
        break;
      case 5:
        Fe(v);
        break;
      case 1:
        za(v.type) && ac(v);
        break;
      case 4:
        pe(v, v.stateNode.containerInfo);
        break;
      case 10:
        var re = v.type._context, Te = v.memoizedProps.value;
        ha(hl, re._currentValue), re._currentValue = Te;
        break;
      case 13:
        if (re = v.memoizedState, re !== null)
          return re.dehydrated !== null ? (ha(_e, _e.current & 1), v.flags |= 128, null) : F & v.child.childLanes ? ym(n, v, F) : (ha(_e, _e.current & 1), n = ci(n, v, F), n !== null ? n.sibling : null);
        ha(_e, _e.current & 1);
        break;
      case 19:
        if (re = (F & v.childLanes) !== 0, n.flags & 128) {
          if (re)
            return pp(n, v, F);
          v.flags |= 128;
        }
        if (Te = v.memoizedState, Te !== null && (Te.rendering = null, Te.tail = null, Te.lastEffect = null), ha(_e, _e.current), re)
          break;
        return null;
      case 22:
      case 23:
        return v.lanes = 0, Uo(n, v, F);
    }
    return ci(n, v, F);
  }
  var ds, yc, gc, gl;
  ds = function(n, v) {
    for (var F = v.child; F !== null; ) {
      if (F.tag === 5 || F.tag === 6)
        n.appendChild(F.stateNode);
      else if (F.tag !== 4 && F.child !== null) {
        F.child.return = F, F = F.child;
        continue;
      }
      if (F === v)
        break;
      for (; F.sibling === null; ) {
        if (F.return === null || F.return === v)
          return;
        F = F.return;
      }
      F.sibling.return = F.return, F = F.sibling;
    }
  }, yc = function() {
  }, gc = function(n, v, F, re) {
    var Te = n.memoizedProps;
    if (Te !== re) {
      n = v.stateNode, le(y.current);
      var Ne = null;
      switch (F) {
        case "input":
          Te = Be(n, Te), re = Be(n, re), Ne = [];
          break;
        case "select":
          Te = X({}, Te, { value: void 0 }), re = X({}, re, { value: void 0 }), Ne = [];
          break;
        case "textarea":
          Te = H(n, Te), re = H(n, re), Ne = [];
          break;
        default:
          typeof Te.onClick != "function" && typeof re.onClick == "function" && (n.onclick = ec);
      }
      Oe(F, re);
      var ot;
      F = null;
      for (mr in Te)
        if (!re.hasOwnProperty(mr) && Te.hasOwnProperty(mr) && Te[mr] != null)
          if (mr === "style") {
            var zt = Te[mr];
            for (ot in zt)
              zt.hasOwnProperty(ot) && (F || (F = {}), F[ot] = "");
          } else
            mr !== "dangerouslySetInnerHTML" && mr !== "children" && mr !== "suppressContentEditableWarning" && mr !== "suppressHydrationWarning" && mr !== "autoFocus" && (P.hasOwnProperty(mr) ? Ne || (Ne = []) : (Ne = Ne || []).push(mr, null));
      for (mr in re) {
        var Qt = re[mr];
        if (zt = Te != null ? Te[mr] : void 0, re.hasOwnProperty(mr) && Qt !== zt && (Qt != null || zt != null))
          if (mr === "style")
            if (zt) {
              for (ot in zt)
                !zt.hasOwnProperty(ot) || Qt && Qt.hasOwnProperty(ot) || (F || (F = {}), F[ot] = "");
              for (ot in Qt)
                Qt.hasOwnProperty(ot) && zt[ot] !== Qt[ot] && (F || (F = {}), F[ot] = Qt[ot]);
            } else
              F || (Ne || (Ne = []), Ne.push(
                mr,
                F
              )), F = Qt;
          else
            mr === "dangerouslySetInnerHTML" ? (Qt = Qt ? Qt.__html : void 0, zt = zt ? zt.__html : void 0, Qt != null && zt !== Qt && (Ne = Ne || []).push(mr, Qt)) : mr === "children" ? typeof Qt != "string" && typeof Qt != "number" || (Ne = Ne || []).push(mr, "" + Qt) : mr !== "suppressContentEditableWarning" && mr !== "suppressHydrationWarning" && (P.hasOwnProperty(mr) ? (Qt != null && mr === "onScroll" && Ca("scroll", n), Ne || zt === Qt || (Ne = [])) : (Ne = Ne || []).push(mr, Qt));
      }
      F && (Ne = Ne || []).push("style", F);
      var mr = Ne;
      (v.updateQueue = mr) && (v.flags |= 4);
    }
  }, gl = function(n, v, F, re) {
    F !== re && (v.flags |= 4);
  };
  function ii(n, v) {
    if (!ra)
      switch (n.tailMode) {
        case "hidden":
          v = n.tail;
          for (var F = null; v !== null; )
            v.alternate !== null && (F = v), v = v.sibling;
          F === null ? n.tail = null : F.sibling = null;
          break;
        case "collapsed":
          F = n.tail;
          for (var re = null; F !== null; )
            F.alternate !== null && (re = F), F = F.sibling;
          re === null ? v || n.tail === null ? n.tail = null : n.tail.sibling = null : re.sibling = null;
      }
  }
  function mo(n) {
    var v = n.alternate !== null && n.alternate.child === n.child, F = 0, re = 0;
    if (v)
      for (var Te = n.child; Te !== null; )
        F |= Te.lanes | Te.childLanes, re |= Te.subtreeFlags & 14680064, re |= Te.flags & 14680064, Te.return = n, Te = Te.sibling;
    else
      for (Te = n.child; Te !== null; )
        F |= Te.lanes | Te.childLanes, re |= Te.subtreeFlags, re |= Te.flags, Te.return = n, Te = Te.sibling;
    return n.subtreeFlags |= re, n.childLanes = F, v;
  }
  function g1(n, v, F) {
    var re = v.pendingProps;
    switch (bd(v), v.tag) {
      case 2:
      case 16:
      case 15:
      case 0:
      case 11:
      case 7:
      case 8:
      case 12:
      case 9:
      case 14:
        return mo(v), null;
      case 1:
        return za(v.type) && Ho(), mo(v), null;
      case 3:
        return re = v.stateNode, ge(), va(Xa), va(Hn), yt(), re.pendingContext && (re.context = re.pendingContext, re.pendingContext = null), (n === null || n.child === null) && (lc(v) ? v.flags |= 4 : n === null || n.memoizedState.isDehydrated && !(v.flags & 256) || (v.flags |= 1024, xo !== null && (Cp(xo), xo = null))), yc(n, v), mo(v), null;
      case 5:
        ke(v);
        var Te = le(Q.current);
        if (F = v.type, n !== null && v.stateNode != null)
          gc(n, v, F, re, Te), n.ref !== v.ref && (v.flags |= 512, v.flags |= 2097152);
        else {
          if (!re) {
            if (v.stateNode === null)
              throw Error(E(166));
            return mo(v), null;
          }
          if (n = le(y.current), lc(v)) {
            re = v.stateNode, F = v.type;
            var Ne = v.memoizedProps;
            switch (re[tl] = v, re[Ps] = Ne, n = (v.mode & 1) !== 0, F) {
              case "dialog":
                Ca("cancel", re), Ca("close", re);
                break;
              case "iframe":
              case "object":
              case "embed":
                Ca("load", re);
                break;
              case "video":
              case "audio":
                for (Te = 0; Te < Ku.length; Te++)
                  Ca(Ku[Te], re);
                break;
              case "source":
                Ca("error", re);
                break;
              case "img":
              case "image":
              case "link":
                Ca(
                  "error",
                  re
                ), Ca("load", re);
                break;
              case "details":
                Ca("toggle", re);
                break;
              case "input":
                xe(re, Ne), Ca("invalid", re);
                break;
              case "select":
                re._wrapperState = { wasMultiple: !!Ne.multiple }, Ca("invalid", re);
                break;
              case "textarea":
                ce(re, Ne), Ca("invalid", re);
            }
            Oe(F, Ne), Te = null;
            for (var ot in Ne)
              if (Ne.hasOwnProperty(ot)) {
                var zt = Ne[ot];
                ot === "children" ? typeof zt == "string" ? re.textContent !== zt && (Ne.suppressHydrationWarning !== !0 && hu(re.textContent, zt, n), Te = ["children", zt]) : typeof zt == "number" && re.textContent !== "" + zt && (Ne.suppressHydrationWarning !== !0 && hu(
                  re.textContent,
                  zt,
                  n
                ), Te = ["children", "" + zt]) : P.hasOwnProperty(ot) && zt != null && ot === "onScroll" && Ca("scroll", re);
              }
            switch (F) {
              case "input":
                ye(re), Z(re, Ne, !0);
                break;
              case "textarea":
                ye(re), he(re);
                break;
              case "select":
              case "option":
                break;
              default:
                typeof Ne.onClick == "function" && (re.onclick = ec);
            }
            re = Te, v.updateQueue = re, re !== null && (v.flags |= 4);
          } else {
            ot = Te.nodeType === 9 ? Te : Te.ownerDocument, n === "http://www.w3.org/1999/xhtml" && (n = be(F)), n === "http://www.w3.org/1999/xhtml" ? F === "script" ? (n = ot.createElement("div"), n.innerHTML = "<script><\/script>", n = n.removeChild(n.firstChild)) : typeof re.is == "string" ? n = ot.createElement(F, { is: re.is }) : (n = ot.createElement(F), F === "select" && (ot = n, re.multiple ? ot.multiple = !0 : re.size && (ot.size = re.size))) : n = ot.createElementNS(n, F), n[tl] = v, n[Ps] = re, ds(n, v, !1, !1), v.stateNode = n;
            e: {
              switch (ot = Xe(F, re), F) {
                case "dialog":
                  Ca("cancel", n), Ca("close", n), Te = re;
                  break;
                case "iframe":
                case "object":
                case "embed":
                  Ca("load", n), Te = re;
                  break;
                case "video":
                case "audio":
                  for (Te = 0; Te < Ku.length; Te++)
                    Ca(Ku[Te], n);
                  Te = re;
                  break;
                case "source":
                  Ca("error", n), Te = re;
                  break;
                case "img":
                case "image":
                case "link":
                  Ca(
                    "error",
                    n
                  ), Ca("load", n), Te = re;
                  break;
                case "details":
                  Ca("toggle", n), Te = re;
                  break;
                case "input":
                  xe(n, re), Te = Be(n, re), Ca("invalid", n);
                  break;
                case "option":
                  Te = re;
                  break;
                case "select":
                  n._wrapperState = { wasMultiple: !!re.multiple }, Te = X({}, re, { value: void 0 }), Ca("invalid", n);
                  break;
                case "textarea":
                  ce(n, re), Te = H(n, re), Ca("invalid", n);
                  break;
                default:
                  Te = re;
              }
              Oe(F, Te), zt = Te;
              for (Ne in zt)
                if (zt.hasOwnProperty(Ne)) {
                  var Qt = zt[Ne];
                  Ne === "style" ? Le(n, Qt) : Ne === "dangerouslySetInnerHTML" ? (Qt = Qt ? Qt.__html : void 0, Qt != null && Ge(n, Qt)) : Ne === "children" ? typeof Qt == "string" ? (F !== "textarea" || Qt !== "") && Ve(n, Qt) : typeof Qt == "number" && Ve(n, "" + Qt) : Ne !== "suppressContentEditableWarning" && Ne !== "suppressHydrationWarning" && Ne !== "autoFocus" && (P.hasOwnProperty(Ne) ? Qt != null && Ne === "onScroll" && Ca("scroll", n) : Qt != null && x(n, Ne, Qt, ot));
                }
              switch (F) {
                case "input":
                  ye(n), Z(n, re, !1);
                  break;
                case "textarea":
                  ye(n), he(n);
                  break;
                case "option":
                  re.value != null && n.setAttribute("value", "" + oe(re.value));
                  break;
                case "select":
                  n.multiple = !!re.multiple, Ne = re.value, Ne != null ? G(n, !!re.multiple, Ne, !1) : re.defaultValue != null && G(
                    n,
                    !!re.multiple,
                    re.defaultValue,
                    !0
                  );
                  break;
                default:
                  typeof Te.onClick == "function" && (n.onclick = ec);
              }
              switch (F) {
                case "button":
                case "input":
                case "select":
                case "textarea":
                  re = !!re.autoFocus;
                  break e;
                case "img":
                  re = !0;
                  break e;
                default:
                  re = !1;
              }
            }
            re && (v.flags |= 4);
          }
          v.ref !== null && (v.flags |= 512, v.flags |= 2097152);
        }
        return mo(v), null;
      case 6:
        if (n && v.stateNode != null)
          gl(n, v, n.memoizedProps, re);
        else {
          if (typeof re != "string" && v.stateNode === null)
            throw Error(E(166));
          if (F = le(Q.current), le(y.current), lc(v)) {
            if (re = v.stateNode, F = v.memoizedProps, re[tl] = v, (Ne = re.nodeValue !== F) && (n = bo, n !== null))
              switch (n.tag) {
                case 3:
                  hu(re.nodeValue, F, (n.mode & 1) !== 0);
                  break;
                case 5:
                  n.memoizedProps.suppressHydrationWarning !== !0 && hu(re.nodeValue, F, (n.mode & 1) !== 0);
              }
            Ne && (v.flags |= 4);
          } else
            re = (F.nodeType === 9 ? F : F.ownerDocument).createTextNode(re), re[tl] = v, v.stateNode = re;
        }
        return mo(v), null;
      case 13:
        if (va(_e), re = v.memoizedState, n === null || n.memoizedState !== null && n.memoizedState.dehydrated !== null) {
          if (ra && co !== null && v.mode & 1 && !(v.flags & 128))
            Nv(), Ba(), v.flags |= 98560, Ne = !1;
          else if (Ne = lc(v), re !== null && re.dehydrated !== null) {
            if (n === null) {
              if (!Ne)
                throw Error(E(318));
              if (Ne = v.memoizedState, Ne = Ne !== null ? Ne.dehydrated : null, !Ne)
                throw Error(E(317));
              Ne[tl] = v;
            } else
              Ba(), !(v.flags & 128) && (v.memoizedState = null), v.flags |= 4;
            mo(v), Ne = !1;
          } else
            xo !== null && (Cp(xo), xo = null), Ne = !0;
          if (!Ne)
            return v.flags & 65536 ? v : null;
        }
        return v.flags & 128 ? (v.lanes = F, v) : (re = re !== null, re !== (n !== null && n.memoizedState !== null) && re && (v.child.flags |= 8192, v.mode & 1 && (n === null || _e.current & 1 ? Li === 0 && (Li = 3) : Ld())), v.updateQueue !== null && (v.flags |= 4), mo(v), null);
      case 4:
        return ge(), yc(n, v), n === null && is(v.stateNode.containerInfo), mo(v), null;
      case 10:
        return fc(v.type._context), mo(v), null;
      case 17:
        return za(v.type) && Ho(), mo(v), null;
      case 19:
        if (va(_e), Ne = v.memoizedState, Ne === null)
          return mo(v), null;
        if (re = (v.flags & 128) !== 0, ot = Ne.rendering, ot === null)
          if (re)
            ii(Ne, !1);
          else {
            if (Li !== 0 || n !== null && n.flags & 128)
              for (n = v.child; n !== null; ) {
                if (ot = Qe(n), ot !== null) {
                  for (v.flags |= 128, ii(Ne, !1), re = ot.updateQueue, re !== null && (v.updateQueue = re, v.flags |= 4), v.subtreeFlags = 0, re = F, F = v.child; F !== null; )
                    Ne = F, n = re, Ne.flags &= 14680066, ot = Ne.alternate, ot === null ? (Ne.childLanes = 0, Ne.lanes = n, Ne.child = null, Ne.subtreeFlags = 0, Ne.memoizedProps = null, Ne.memoizedState = null, Ne.updateQueue = null, Ne.dependencies = null, Ne.stateNode = null) : (Ne.childLanes = ot.childLanes, Ne.lanes = ot.lanes, Ne.child = ot.child, Ne.subtreeFlags = 0, Ne.deletions = null, Ne.memoizedProps = ot.memoizedProps, Ne.memoizedState = ot.memoizedState, Ne.updateQueue = ot.updateQueue, Ne.type = ot.type, n = ot.dependencies, Ne.dependencies = n === null ? null : { lanes: n.lanes, firstContext: n.firstContext }), F = F.sibling;
                  return ha(_e, _e.current & 1 | 2), v.child;
                }
                n = n.sibling;
              }
            Ne.tail !== null && br() > Dc && (v.flags |= 128, re = !0, ii(Ne, !1), v.lanes = 4194304);
          }
        else {
          if (!re)
            if (n = Qe(ot), n !== null) {
              if (v.flags |= 128, re = !0, F = n.updateQueue, F !== null && (v.updateQueue = F, v.flags |= 4), ii(Ne, !0), Ne.tail === null && Ne.tailMode === "hidden" && !ot.alternate && !ra)
                return mo(v), null;
            } else
              2 * br() - Ne.renderingStartTime > Dc && F !== 1073741824 && (v.flags |= 128, re = !0, ii(Ne, !1), v.lanes = 4194304);
          Ne.isBackwards ? (ot.sibling = v.child, v.child = ot) : (F = Ne.last, F !== null ? F.sibling = ot : v.child = ot, Ne.last = ot);
        }
        return Ne.tail !== null ? (v = Ne.tail, Ne.rendering = v, Ne.tail = v.sibling, Ne.renderingStartTime = br(), v.sibling = null, F = _e.current, ha(_e, re ? F & 1 | 2 : F & 1), v) : (mo(v), null);
      case 22:
      case 23:
        return qv(), re = v.memoizedState !== null, n !== null && n.memoizedState !== null !== re && (v.flags |= 8192), re && v.mode & 1 ? Wo & 1073741824 && (mo(v), v.subtreeFlags & 6 && (v.flags |= 8192)) : mo(v), null;
      case 24:
        return null;
      case 25:
        return null;
    }
    throw Error(E(156, v.tag));
  }
  function b1(n, v) {
    switch (bd(v), v.tag) {
      case 1:
        return za(v.type) && Ho(), n = v.flags, n & 65536 ? (v.flags = n & -65537 | 128, v) : null;
      case 3:
        return ge(), va(Xa), va(Hn), yt(), n = v.flags, n & 65536 && !(n & 128) ? (v.flags = n & -65537 | 128, v) : null;
      case 5:
        return ke(v), null;
      case 13:
        if (va(_e), n = v.memoizedState, n !== null && n.dehydrated !== null) {
          if (v.alternate === null)
            throw Error(E(340));
          Ba();
        }
        return n = v.flags, n & 65536 ? (v.flags = n & -65537 | 128, v) : null;
      case 19:
        return va(_e), null;
      case 4:
        return ge(), null;
      case 10:
        return fc(v.type._context), null;
      case 22:
      case 23:
        return qv(), null;
      case 24:
        return null;
      default:
        return null;
    }
  }
  var bc = !1, Qi = !1, Uv = typeof WeakSet == "function" ? WeakSet : Set, cn = null;
  function xc(n, v) {
    var F = n.ref;
    if (F !== null)
      if (typeof F == "function")
        try {
          F(null);
        } catch (re) {
          li(n, v, re);
        }
      else
        F.current = null;
  }
  function mp(n, v, F) {
    try {
      F();
    } catch (re) {
      li(n, v, re);
    }
  }
  var Wv = !1;
  function x1(n, v) {
    if (md = Mn, n = Ju(), _l(n)) {
      if ("selectionStart" in n)
        var F = { start: n.selectionStart, end: n.selectionEnd };
      else
        e: {
          F = (F = n.ownerDocument) && F.defaultView || window;
          var re = F.getSelection && F.getSelection();
          if (re && re.rangeCount !== 0) {
            F = re.anchorNode;
            var Te = re.anchorOffset, Ne = re.focusNode;
            re = re.focusOffset;
            try {
              F.nodeType, Ne.nodeType;
            } catch {
              F = null;
              break e;
            }
            var ot = 0, zt = -1, Qt = -1, mr = 0, Vr = 0, Wr = n, Hr = null;
            t:
              for (; ; ) {
                for (var ln; Wr !== F || Te !== 0 && Wr.nodeType !== 3 || (zt = ot + Te), Wr !== Ne || re !== 0 && Wr.nodeType !== 3 || (Qt = ot + re), Wr.nodeType === 3 && (ot += Wr.nodeValue.length), (ln = Wr.firstChild) !== null; )
                  Hr = Wr, Wr = ln;
                for (; ; ) {
                  if (Wr === n)
                    break t;
                  if (Hr === F && ++mr === Te && (zt = ot), Hr === Ne && ++Vr === re && (Qt = ot), (ln = Wr.nextSibling) !== null)
                    break;
                  Wr = Hr, Hr = Wr.parentNode;
                }
                Wr = ln;
              }
            F = zt === -1 || Qt === -1 ? null : { start: zt, end: Qt };
          } else
            F = null;
        }
      F = F || { start: 0, end: 0 };
    } else
      F = null;
    for (Ns = { focusedElem: n, selectionRange: F }, Mn = !1, cn = v; cn !== null; )
      if (v = cn, n = v.child, (v.subtreeFlags & 1028) !== 0 && n !== null)
        n.return = v, cn = n;
      else
        for (; cn !== null; ) {
          v = cn;
          try {
            var pn = v.alternate;
            if (v.flags & 1024)
              switch (v.tag) {
                case 0:
                case 11:
                case 15:
                  break;
                case 1:
                  if (pn !== null) {
                    var gn = pn.memoizedProps, di = pn.memoizedState, fr = v.stateNode, tr = fr.getSnapshotBeforeUpdate(v.elementType === v.type ? gn : Vo(v.type, gn), di);
                    fr.__reactInternalSnapshotBeforeUpdate = tr;
                  }
                  break;
                case 3:
                  var vr = v.stateNode.containerInfo;
                  vr.nodeType === 1 ? vr.textContent = "" : vr.nodeType === 9 && vr.documentElement && vr.removeChild(vr.documentElement);
                  break;
                case 5:
                case 6:
                case 4:
                case 17:
                  break;
                default:
                  throw Error(E(163));
              }
          } catch (Zr) {
            li(v, v.return, Zr);
          }
          if (n = v.sibling, n !== null) {
            n.return = v.return, cn = n;
            break;
          }
          cn = v.return;
        }
    return pn = Wv, Wv = !1, pn;
  }
  function Tc(n, v, F) {
    var re = v.updateQueue;
    if (re = re !== null ? re.lastEffect : null, re !== null) {
      var Te = re = re.next;
      do {
        if ((Te.tag & n) === n) {
          var Ne = Te.destroy;
          Te.destroy = void 0, Ne !== void 0 && mp(v, F, Ne);
        }
        Te = Te.next;
      } while (Te !== re);
    }
  }
  function Yv(n, v) {
    if (v = v.updateQueue, v = v !== null ? v.lastEffect : null, v !== null) {
      var F = v = v.next;
      do {
        if ((F.tag & n) === n) {
          var re = F.create;
          F.destroy = re();
        }
        F = F.next;
      } while (F !== v);
    }
  }
  function Xv(n) {
    var v = n.ref;
    if (v !== null) {
      var F = n.stateNode;
      switch (n.tag) {
        case 5:
          n = F;
          break;
        default:
          n = F;
      }
      typeof v == "function" ? v(n) : v.current = n;
    }
  }
  function bm(n) {
    var v = n.alternate;
    v !== null && (n.alternate = null, bm(v)), n.child = null, n.deletions = null, n.sibling = null, n.tag === 5 && (v = n.stateNode, v !== null && (delete v[tl], delete v[Ps], delete v[rc], delete v[kv], delete v[nc])), n.stateNode = null, n.return = null, n.dependencies = null, n.memoizedProps = null, n.memoizedState = null, n.pendingProps = null, n.stateNode = null, n.updateQueue = null;
  }
  function yp(n) {
    return n.tag === 5 || n.tag === 3 || n.tag === 4;
  }
  function xm(n) {
    e:
      for (; ; ) {
        for (; n.sibling === null; ) {
          if (n.return === null || yp(n.return))
            return null;
          n = n.return;
        }
        for (n.sibling.return = n.return, n = n.sibling; n.tag !== 5 && n.tag !== 6 && n.tag !== 18; ) {
          if (n.flags & 2 || n.child === null || n.tag === 4)
            continue e;
          n.child.return = n, n = n.child;
        }
        if (!(n.flags & 2))
          return n.stateNode;
      }
  }
  function Md(n, v, F) {
    var re = n.tag;
    if (re === 5 || re === 6)
      n = n.stateNode, v ? F.nodeType === 8 ? F.parentNode.insertBefore(n, v) : F.insertBefore(n, v) : (F.nodeType === 8 ? (v = F.parentNode, v.insertBefore(n, F)) : (v = F, v.appendChild(n)), F = F._reactRootContainer, F != null || v.onclick !== null || (v.onclick = ec));
    else if (re !== 4 && (n = n.child, n !== null))
      for (Md(n, v, F), n = n.sibling; n !== null; )
        Md(n, v, F), n = n.sibling;
  }
  function Cc(n, v, F) {
    var re = n.tag;
    if (re === 5 || re === 6)
      n = n.stateNode, v ? F.insertBefore(n, v) : F.appendChild(n);
    else if (re !== 4 && (n = n.child, n !== null))
      for (Cc(n, v, F), n = n.sibling; n !== null; )
        Cc(n, v, F), n = n.sibling;
  }
  var Qa = null, Vi = !1;
  function So(n, v, F) {
    for (F = F.child; F !== null; )
      Ac(n, v, F), F = F.sibling;
  }
  function Ac(n, v, F) {
    if (Er && typeof Er.onCommitFiberUnmount == "function")
      try {
        Er.onCommitFiberUnmount(gr, F);
      } catch {
      }
    switch (F.tag) {
      case 5:
        Qi || xc(F, v);
      case 6:
        var re = Qa, Te = Vi;
        Qa = null, So(n, v, F), Qa = re, Vi = Te, Qa !== null && (Vi ? (n = Qa, F = F.stateNode, n.nodeType === 8 ? n.parentNode.removeChild(F) : n.removeChild(F)) : Qa.removeChild(F.stateNode));
        break;
      case 18:
        Qa !== null && (Vi ? (n = Qa, F = F.stateNode, n.nodeType === 8 ? el(n.parentNode, F) : n.nodeType === 1 && el(n, F), Sn(n)) : el(Qa, F.stateNode));
        break;
      case 4:
        re = Qa, Te = Vi, Qa = F.stateNode.containerInfo, Vi = !0, So(n, v, F), Qa = re, Vi = Te;
        break;
      case 0:
      case 11:
      case 14:
      case 15:
        if (!Qi && (re = F.updateQueue, re !== null && (re = re.lastEffect, re !== null))) {
          Te = re = re.next;
          do {
            var Ne = Te, ot = Ne.destroy;
            Ne = Ne.tag, ot !== void 0 && (Ne & 2 || Ne & 4) && mp(F, v, ot), Te = Te.next;
          } while (Te !== re);
        }
        So(n, v, F);
        break;
      case 1:
        if (!Qi && (xc(F, v), re = F.stateNode, typeof re.componentWillUnmount == "function"))
          try {
            re.props = F.memoizedProps, re.state = F.memoizedState, re.componentWillUnmount();
          } catch (zt) {
            li(F, v, zt);
          }
        So(n, v, F);
        break;
      case 21:
        So(n, v, F);
        break;
      case 22:
        F.mode & 1 ? (Qi = (re = Qi) || F.memoizedState !== null, So(n, v, F), Qi = re) : So(n, v, F);
        break;
      default:
        So(n, v, F);
    }
  }
  function wc(n) {
    var v = n.updateQueue;
    if (v !== null) {
      n.updateQueue = null;
      var F = n.stateNode;
      F === null && (F = n.stateNode = new Uv()), v.forEach(function(re) {
        var Te = E1.bind(null, n, re);
        F.has(re) || (F.add(re), re.then(Te, Te));
      });
    }
  }
  function Gi(n, v) {
    var F = v.deletions;
    if (F !== null)
      for (var re = 0; re < F.length; re++) {
        var Te = F[re];
        try {
          var Ne = n, ot = v, zt = ot;
          e:
            for (; zt !== null; ) {
              switch (zt.tag) {
                case 5:
                  Qa = zt.stateNode, Vi = !1;
                  break e;
                case 3:
                  Qa = zt.stateNode.containerInfo, Vi = !0;
                  break e;
                case 4:
                  Qa = zt.stateNode.containerInfo, Vi = !0;
                  break e;
              }
              zt = zt.return;
            }
          if (Qa === null)
            throw Error(E(160));
          Ac(Ne, ot, Te), Qa = null, Vi = !1;
          var Qt = Te.alternate;
          Qt !== null && (Qt.return = null), Te.return = null;
        } catch (mr) {
          li(Te, v, mr);
        }
      }
    if (v.subtreeFlags & 12854)
      for (v = v.child; v !== null; )
        Tm(v, n), v = v.sibling;
  }
  function Tm(n, v) {
    var F = n.alternate, re = n.flags;
    switch (n.tag) {
      case 0:
      case 11:
      case 14:
      case 15:
        if (Gi(v, n), vs(n), re & 4) {
          try {
            Tc(3, n, n.return), Yv(3, n);
          } catch (gn) {
            li(n, n.return, gn);
          }
          try {
            Tc(5, n, n.return);
          } catch (gn) {
            li(n, n.return, gn);
          }
        }
        break;
      case 1:
        Gi(v, n), vs(n), re & 512 && F !== null && xc(F, F.return);
        break;
      case 5:
        if (Gi(v, n), vs(n), re & 512 && F !== null && xc(F, F.return), n.flags & 32) {
          var Te = n.stateNode;
          try {
            Ve(Te, "");
          } catch (gn) {
            li(n, n.return, gn);
          }
        }
        if (re & 4 && (Te = n.stateNode, Te != null)) {
          var Ne = n.memoizedProps, ot = F !== null ? F.memoizedProps : Ne, zt = n.type, Qt = n.updateQueue;
          if (n.updateQueue = null, Qt !== null)
            try {
              zt === "input" && Ne.type === "radio" && Ne.name != null && Me(Te, Ne), Xe(zt, ot);
              var mr = Xe(zt, Ne);
              for (ot = 0; ot < Qt.length; ot += 2) {
                var Vr = Qt[ot], Wr = Qt[ot + 1];
                Vr === "style" ? Le(Te, Wr) : Vr === "dangerouslySetInnerHTML" ? Ge(Te, Wr) : Vr === "children" ? Ve(Te, Wr) : x(Te, Vr, Wr, mr);
              }
              switch (zt) {
                case "input":
                  De(Te, Ne);
                  break;
                case "textarea":
                  j(Te, Ne);
                  break;
                case "select":
                  var Hr = Te._wrapperState.wasMultiple;
                  Te._wrapperState.wasMultiple = !!Ne.multiple;
                  var ln = Ne.value;
                  ln != null ? G(Te, !!Ne.multiple, ln, !1) : Hr !== !!Ne.multiple && (Ne.defaultValue != null ? G(
                    Te,
                    !!Ne.multiple,
                    Ne.defaultValue,
                    !0
                  ) : G(Te, !!Ne.multiple, Ne.multiple ? [] : "", !1));
              }
              Te[Ps] = Ne;
            } catch (gn) {
              li(n, n.return, gn);
            }
        }
        break;
      case 6:
        if (Gi(v, n), vs(n), re & 4) {
          if (n.stateNode === null)
            throw Error(E(162));
          Te = n.stateNode, Ne = n.memoizedProps;
          try {
            Te.nodeValue = Ne;
          } catch (gn) {
            li(n, n.return, gn);
          }
        }
        break;
      case 3:
        if (Gi(v, n), vs(n), re & 4 && F !== null && F.memoizedState.isDehydrated)
          try {
            Sn(v.containerInfo);
          } catch (gn) {
            li(n, n.return, gn);
          }
        break;
      case 4:
        Gi(v, n), vs(n);
        break;
      case 13:
        Gi(v, n), vs(n), Te = n.child, Te.flags & 8192 && (Ne = Te.memoizedState !== null, Te.stateNode.isHidden = Ne, !Ne || Te.alternate !== null && Te.alternate.memoizedState !== null || (Zv = br())), re & 4 && wc(n);
        break;
      case 22:
        if (Vr = F !== null && F.memoizedState !== null, n.mode & 1 ? (Qi = (mr = Qi) || Vr, Gi(v, n), Qi = mr) : Gi(v, n), vs(n), re & 8192) {
          if (mr = n.memoizedState !== null, (n.stateNode.isHidden = mr) && !Vr && n.mode & 1)
            for (cn = n, Vr = n.child; Vr !== null; ) {
              for (Wr = cn = Vr; cn !== null; ) {
                switch (Hr = cn, ln = Hr.child, Hr.tag) {
                  case 0:
                  case 11:
                  case 14:
                  case 15:
                    Tc(4, Hr, Hr.return);
                    break;
                  case 1:
                    xc(Hr, Hr.return);
                    var pn = Hr.stateNode;
                    if (typeof pn.componentWillUnmount == "function") {
                      re = Hr, F = Hr.return;
                      try {
                        v = re, pn.props = v.memoizedProps, pn.state = v.memoizedState, pn.componentWillUnmount();
                      } catch (gn) {
                        li(re, F, gn);
                      }
                    }
                    break;
                  case 5:
                    xc(Hr, Hr.return);
                    break;
                  case 22:
                    if (Hr.memoizedState !== null) {
                      Cm(Wr);
                      continue;
                    }
                }
                ln !== null ? (ln.return = Hr, cn = ln) : Cm(Wr);
              }
              Vr = Vr.sibling;
            }
          e:
            for (Vr = null, Wr = n; ; ) {
              if (Wr.tag === 5) {
                if (Vr === null) {
                  Vr = Wr;
                  try {
                    Te = Wr.stateNode, mr ? (Ne = Te.style, typeof Ne.setProperty == "function" ? Ne.setProperty("display", "none", "important") : Ne.display = "none") : (zt = Wr.stateNode, Qt = Wr.memoizedProps.style, ot = Qt != null && Qt.hasOwnProperty("display") ? Qt.display : null, zt.style.display = at("display", ot));
                  } catch (gn) {
                    li(n, n.return, gn);
                  }
                }
              } else if (Wr.tag === 6) {
                if (Vr === null)
                  try {
                    Wr.stateNode.nodeValue = mr ? "" : Wr.memoizedProps;
                  } catch (gn) {
                    li(n, n.return, gn);
                  }
              } else if ((Wr.tag !== 22 && Wr.tag !== 23 || Wr.memoizedState === null || Wr === n) && Wr.child !== null) {
                Wr.child.return = Wr, Wr = Wr.child;
                continue;
              }
              if (Wr === n)
                break e;
              for (; Wr.sibling === null; ) {
                if (Wr.return === null || Wr.return === n)
                  break e;
                Vr === Wr && (Vr = null), Wr = Wr.return;
              }
              Vr === Wr && (Vr = null), Wr.sibling.return = Wr.return, Wr = Wr.sibling;
            }
        }
        break;
      case 19:
        Gi(v, n), vs(n), re & 4 && wc(n);
        break;
      case 21:
        break;
      default:
        Gi(
          v,
          n
        ), vs(n);
    }
  }
  function vs(n) {
    var v = n.flags;
    if (v & 2) {
      try {
        e: {
          for (var F = n.return; F !== null; ) {
            if (yp(F)) {
              var re = F;
              break e;
            }
            F = F.return;
          }
          throw Error(E(160));
        }
        switch (re.tag) {
          case 5:
            var Te = re.stateNode;
            re.flags & 32 && (Ve(Te, ""), re.flags &= -33);
            var Ne = xm(n);
            Cc(n, Ne, Te);
            break;
          case 3:
          case 4:
            var ot = re.stateNode.containerInfo, zt = xm(n);
            Md(n, zt, ot);
            break;
          default:
            throw Error(E(161));
        }
      } catch (Qt) {
        li(n, n.return, Qt);
      }
      n.flags &= -3;
    }
    v & 4096 && (n.flags &= -4097);
  }
  function T1(n, v, F) {
    cn = n, gp(n);
  }
  function gp(n, v, F) {
    for (var re = (n.mode & 1) !== 0; cn !== null; ) {
      var Te = cn, Ne = Te.child;
      if (Te.tag === 22 && re) {
        var ot = Te.memoizedState !== null || bc;
        if (!ot) {
          var zt = Te.alternate, Qt = zt !== null && zt.memoizedState !== null || Qi;
          zt = bc;
          var mr = Qi;
          if (bc = ot, (Qi = Qt) && !mr)
            for (cn = Te; cn !== null; )
              ot = cn, Qt = ot.child, ot.tag === 22 && ot.memoizedState !== null ? bp(Te) : Qt !== null ? (Qt.return = ot, cn = Qt) : bp(Te);
          for (; Ne !== null; )
            cn = Ne, gp(Ne), Ne = Ne.sibling;
          cn = Te, bc = zt, Qi = mr;
        }
        Sc(n);
      } else
        Te.subtreeFlags & 8772 && Ne !== null ? (Ne.return = Te, cn = Ne) : Sc(n);
    }
  }
  function Sc(n) {
    for (; cn !== null; ) {
      var v = cn;
      if (v.flags & 8772) {
        var F = v.alternate;
        try {
          if (v.flags & 8772)
            switch (v.tag) {
              case 0:
              case 11:
              case 15:
                Qi || Yv(5, v);
                break;
              case 1:
                var re = v.stateNode;
                if (v.flags & 4 && !Qi)
                  if (F === null)
                    re.componentDidMount();
                  else {
                    var Te = v.elementType === v.type ? F.memoizedProps : Vo(v.type, F.memoizedProps);
                    re.componentDidUpdate(Te, F.memoizedState, re.__reactInternalSnapshotBeforeUpdate);
                  }
                var Ne = v.updateQueue;
                Ne !== null && Fv(v, Ne, re);
                break;
              case 3:
                var ot = v.updateQueue;
                if (ot !== null) {
                  if (F = null, v.child !== null)
                    switch (v.child.tag) {
                      case 5:
                        F = v.child.stateNode;
                        break;
                      case 1:
                        F = v.child.stateNode;
                    }
                  Fv(v, ot, F);
                }
                break;
              case 5:
                var zt = v.stateNode;
                if (F === null && v.flags & 4) {
                  F = zt;
                  var Qt = v.memoizedProps;
                  switch (v.type) {
                    case "button":
                    case "input":
                    case "select":
                    case "textarea":
                      Qt.autoFocus && F.focus();
                      break;
                    case "img":
                      Qt.src && (F.src = Qt.src);
                  }
                }
                break;
              case 6:
                break;
              case 4:
                break;
              case 12:
                break;
              case 13:
                if (v.memoizedState === null) {
                  var mr = v.alternate;
                  if (mr !== null) {
                    var Vr = mr.memoizedState;
                    if (Vr !== null) {
                      var Wr = Vr.dehydrated;
                      Wr !== null && Sn(Wr);
                    }
                  }
                }
                break;
              case 19:
              case 17:
              case 21:
              case 22:
              case 23:
              case 25:
                break;
              default:
                throw Error(E(163));
            }
          Qi || v.flags & 512 && Xv(v);
        } catch (Hr) {
          li(v, v.return, Hr);
        }
      }
      if (v === n) {
        cn = null;
        break;
      }
      if (F = v.sibling, F !== null) {
        F.return = v.return, cn = F;
        break;
      }
      cn = v.return;
    }
  }
  function Cm(n) {
    for (; cn !== null; ) {
      var v = cn;
      if (v === n) {
        cn = null;
        break;
      }
      var F = v.sibling;
      if (F !== null) {
        F.return = v.return, cn = F;
        break;
      }
      cn = v.return;
    }
  }
  function bp(n) {
    for (; cn !== null; ) {
      var v = cn;
      try {
        switch (v.tag) {
          case 0:
          case 11:
          case 15:
            var F = v.return;
            try {
              Yv(4, v);
            } catch (Qt) {
              li(v, F, Qt);
            }
            break;
          case 1:
            var re = v.stateNode;
            if (typeof re.componentDidMount == "function") {
              var Te = v.return;
              try {
                re.componentDidMount();
              } catch (Qt) {
                li(v, Te, Qt);
              }
            }
            var Ne = v.return;
            try {
              Xv(v);
            } catch (Qt) {
              li(v, Ne, Qt);
            }
            break;
          case 5:
            var ot = v.return;
            try {
              Xv(v);
            } catch (Qt) {
              li(v, ot, Qt);
            }
        }
      } catch (Qt) {
        li(v, v.return, Qt);
      }
      if (v === n) {
        cn = null;
        break;
      }
      var zt = v.sibling;
      if (zt !== null) {
        zt.return = v.return, cn = zt;
        break;
      }
      cn = v.return;
    }
  }
  var C1 = Math.ceil, pf = D.ReactCurrentDispatcher, jv = D.ReactCurrentOwner, bl = D.ReactCurrentBatchConfig, aa = 0, oi = null, $a = null, Ri = 0, Wo = 0, Mc = Wn(0), Li = 0, Ed = null, mf = 0, Ec = 0, xp = 0, wu = null, yo = null, Zv = 0, Dc = 1 / 0, Gs = null, $v = !1, Tp = null, xl = null, Rc = !1, Tl = null, Jv = 0, Dd = 0, Qv = null, Rd = -1, yf = 0;
  function Ui() {
    return aa & 6 ? br() : Rd !== -1 ? Rd : Rd = br();
  }
  function Us(n) {
    return n.mode & 1 ? aa & 2 && Ri !== 0 ? Ri & -Ri : uf.transition !== null ? (yf === 0 && (yf = vt()), yf) : (n = Et, n !== 0 || (n = window.event, n = n === void 0 ? 16 : Kn(n.type)), n) : 1;
  }
  function ei(n, v, F, re) {
    if (50 < Dd)
      throw Dd = 0, Qv = null, Error(E(185));
    St(n, F, re), (!(aa & 2) || n !== oi) && (n === oi && (!(aa & 2) && (Ec |= F), Li === 4 && hs(n, Ri)), ki(n, re), F === 1 && aa === 0 && !(v.mode & 1) && (Dc = br() + 500, gi && $i()));
  }
  function ki(n, v) {
    var F = n.callbackNode;
    Tt(n, v);
    var re = nt(n, n === oi ? Ri : 0);
    if (re === 0)
      F !== null && ur(F), n.callbackNode = null, n.callbackPriority = 0;
    else if (v = re & -re, n.callbackPriority !== v) {
      if (F != null && ur(F), v === 1)
        n.tag === 0 ? ic(Lc.bind(null, n)) : pu(Lc.bind(null, n)), nf(function() {
          !(aa & 6) && $i();
        }), F = null;
      else {
        switch (Zt(re)) {
          case 1:
            F = Rr;
            break;
          case 4:
            F = lr;
            break;
          case 16:
            F = Tr;
            break;
          case 536870912:
            F = Dr;
            break;
          default:
            F = Tr;
        }
        F = Lm(F, Kv.bind(null, n));
      }
      n.callbackPriority = v, n.callbackNode = F;
    }
  }
  function Kv(n, v) {
    if (Rd = -1, yf = 0, aa & 6)
      throw Error(E(327));
    var F = n.callbackNode;
    if (kc() && n.callbackNode !== F)
      return null;
    var re = nt(n, n === oi ? Ri : 0);
    if (re === 0)
      return null;
    if (re & 30 || re & n.expiredLanes || v)
      v = eh(n, re);
    else {
      v = re;
      var Te = aa;
      aa |= 2;
      var Ne = wm();
      (oi !== n || Ri !== v) && (Gs = null, Dc = br() + 500, bf(n, v));
      do
        try {
          w1();
          break;
        } catch (zt) {
          Am(n, zt);
        }
      while (!0);
      Bi(), pf.current = Ne, aa = Te, $a !== null ? v = 0 : (oi = null, Ri = 0, v = Li);
    }
    if (v !== 0) {
      if (v === 2 && (Te = bt(n), Te !== 0 && (re = Te, v = gf(n, Te))), v === 1)
        throw F = Ed, bf(n, 0), hs(n, re), ki(n, br()), F;
      if (v === 6)
        hs(n, re);
      else {
        if (Te = n.current.alternate, !(re & 30) && !Ap(Te) && (v = eh(n, re), v === 2 && (Ne = bt(n), Ne !== 0 && (re = Ne, v = gf(n, Ne))), v === 1))
          throw F = Ed, bf(n, 0), hs(n, re), ki(n, br()), F;
        switch (n.finishedWork = Te, n.finishedLanes = re, v) {
          case 0:
          case 1:
            throw Error(E(345));
          case 2:
            Su(n, yo, Gs);
            break;
          case 3:
            if (hs(n, re), (re & 130023424) === re && (v = Zv + 500 - br(), 10 < v)) {
              if (nt(n, 0) !== 0)
                break;
              if (Te = n.suspendedLanes, (Te & re) !== re) {
                Ui(), n.pingedLanes |= n.suspendedLanes & Te;
                break;
              }
              n.timeoutHandle = Os(Su.bind(null, n, yo, Gs), v);
              break;
            }
            Su(n, yo, Gs);
            break;
          case 4:
            if (hs(n, re), (re & 4194240) === re)
              break;
            for (v = n.eventTimes, Te = -1; 0 < re; ) {
              var ot = 31 - zr(re);
              Ne = 1 << ot, ot = v[ot], ot > Te && (Te = ot), re &= ~Ne;
            }
            if (re = Te, re = br() - re, re = (120 > re ? 120 : 480 > re ? 480 : 1080 > re ? 1080 : 1920 > re ? 1920 : 3e3 > re ? 3e3 : 4320 > re ? 4320 : 1960 * C1(re / 1960)) - re, 10 < re) {
              n.timeoutHandle = Os(Su.bind(null, n, yo, Gs), re);
              break;
            }
            Su(n, yo, Gs);
            break;
          case 5:
            Su(n, yo, Gs);
            break;
          default:
            throw Error(E(329));
        }
      }
    }
    return ki(n, br()), n.callbackNode === F ? Kv.bind(null, n) : null;
  }
  function gf(n, v) {
    var F = wu;
    return n.current.memoizedState.isDehydrated && (bf(n, v).flags |= 256), n = eh(n, v), n !== 2 && (v = yo, yo = F, v !== null && Cp(v)), n;
  }
  function Cp(n) {
    yo === null ? yo = n : yo.push.apply(yo, n);
  }
  function Ap(n) {
    for (var v = n; ; ) {
      if (v.flags & 16384) {
        var F = v.updateQueue;
        if (F !== null && (F = F.stores, F !== null))
          for (var re = 0; re < F.length; re++) {
            var Te = F[re], Ne = Te.getSnapshot;
            Te = Te.value;
            try {
              if (!zo(Ne(), Te))
                return !1;
            } catch {
              return !1;
            }
          }
      }
      if (F = v.child, v.subtreeFlags & 16384 && F !== null)
        F.return = v, v = F;
      else {
        if (v === n)
          break;
        for (; v.sibling === null; ) {
          if (v.return === null || v.return === n)
            return !0;
          v = v.return;
        }
        v.sibling.return = v.return, v = v.sibling;
      }
    }
    return !0;
  }
  function hs(n, v) {
    for (v &= ~xp, v &= ~Ec, n.suspendedLanes |= v, n.pingedLanes &= ~v, n = n.expirationTimes; 0 < v; ) {
      var F = 31 - zr(v), re = 1 << F;
      n[F] = -1, v &= ~re;
    }
  }
  function Lc(n) {
    if (aa & 6)
      throw Error(E(327));
    kc();
    var v = nt(n, 0);
    if (!(v & 1))
      return ki(n, br()), null;
    var F = eh(n, v);
    if (n.tag !== 0 && F === 2) {
      var re = bt(n);
      re !== 0 && (v = re, F = gf(n, re));
    }
    if (F === 1)
      throw F = Ed, bf(n, 0), hs(n, v), ki(n, br()), F;
    if (F === 6)
      throw Error(E(345));
    return n.finishedWork = n.current.alternate, n.finishedLanes = v, Su(n, yo, Gs), ki(n, br()), null;
  }
  function wp(n, v) {
    var F = aa;
    aa |= 1;
    try {
      return n(v);
    } finally {
      aa = F, aa === 0 && (Dc = br() + 500, gi && $i());
    }
  }
  function ps(n) {
    Tl !== null && Tl.tag === 0 && !(aa & 6) && kc();
    var v = aa;
    aa |= 1;
    var F = bl.transition, re = Et;
    try {
      if (bl.transition = null, Et = 1, n)
        return n();
    } finally {
      Et = re, bl.transition = F, aa = v, !(aa & 6) && $i();
    }
  }
  function qv() {
    Wo = Mc.current, va(Mc);
  }
  function bf(n, v) {
    n.finishedWork = null, n.finishedLanes = 0;
    var F = n.timeoutHandle;
    if (F !== -1 && (n.timeoutHandle = -1, yd(F)), $a !== null)
      for (F = $a.return; F !== null; ) {
        var re = F;
        switch (bd(re), re.tag) {
          case 1:
            re = re.type.childContextTypes, re != null && Ho();
            break;
          case 3:
            ge(), va(Xa), va(Hn), yt();
            break;
          case 5:
            ke(re);
            break;
          case 4:
            ge();
            break;
          case 13:
            va(_e);
            break;
          case 19:
            va(_e);
            break;
          case 10:
            fc(re.type._context);
            break;
          case 22:
          case 23:
            qv();
        }
        F = F.return;
      }
    if (oi = n, $a = n = Mu(n.current, null), Ri = Wo = v, Li = 0, Ed = null, xp = Ec = mf = 0, yo = wu = null, Ao !== null) {
      for (v = 0; v < Ao.length; v++)
        if (F = Ao[v], re = F.interleaved, re !== null) {
          F.interleaved = null;
          var Te = re.next, Ne = F.pending;
          if (Ne !== null) {
            var ot = Ne.next;
            Ne.next = Te, re.next = ot;
          }
          F.pending = re;
        }
      Ao = null;
    }
    return n;
  }
  function Am(n, v) {
    do {
      var F = $a;
      try {
        if (Bi(), gt.current = po, Xt) {
          for (var re = ct.memoizedState; re !== null; ) {
            var Te = re.queue;
            Te !== null && (Te.pending = null), re = re.next;
          }
          Xt = !1;
        }
        if (Pt = 0, Rt = xt = ct = null, Kt = !1, Bt = 0, jv.current = null, F === null || F.return === null) {
          Li = 1, Ed = v, $a = null;
          break;
        }
        e: {
          var Ne = n, ot = F.return, zt = F, Qt = v;
          if (v = Ri, zt.flags |= 32768, Qt !== null && typeof Qt == "object" && typeof Qt.then == "function") {
            var mr = Qt, Vr = zt, Wr = Vr.tag;
            if (!(Vr.mode & 1) && (Wr === 0 || Wr === 11 || Wr === 15)) {
              var Hr = Vr.alternate;
              Hr ? (Vr.updateQueue = Hr.updateQueue, Vr.memoizedState = Hr.memoizedState, Vr.lanes = Hr.lanes) : (Vr.updateQueue = null, Vr.memoizedState = null);
            }
            var ln = hm(ot);
            if (ln !== null) {
              ln.flags &= -257, vp(ln, ot, zt, Ne, v), ln.mode & 1 && Cd(Ne, mr, v), v = ln, Qt = mr;
              var pn = v.updateQueue;
              if (pn === null) {
                var gn = /* @__PURE__ */ new Set();
                gn.add(Qt), v.updateQueue = gn;
              } else
                pn.add(Qt);
              break e;
            } else {
              if (!(v & 1)) {
                Cd(Ne, mr, v), Ld();
                break e;
              }
              Qt = Error(E(426));
            }
          } else if (ra && zt.mode & 1) {
            var di = hm(ot);
            if (di !== null) {
              !(di.flags & 65536) && (di.flags |= 256), vp(di, ot, zt, Ne, v), sc(Cu(Qt, zt));
              break e;
            }
          }
          Ne = Qt = Cu(Qt, zt), Li !== 4 && (Li = 2), wu === null ? wu = [Ne] : wu.push(Ne), Ne = ot;
          do {
            switch (Ne.tag) {
              case 3:
                Ne.flags |= 65536, v &= -v, Ne.lanes |= v;
                var fr = dm(Ne, Qt, v);
                Pv(Ne, fr);
                break e;
              case 1:
                zt = Qt;
                var tr = Ne.type, vr = Ne.stateNode;
                if (!(Ne.flags & 128) && (typeof tr.getDerivedStateFromError == "function" || vr !== null && typeof vr.componentDidCatch == "function" && (xl === null || !xl.has(vr)))) {
                  Ne.flags |= 65536, v &= -v, Ne.lanes |= v;
                  var Zr = vm(Ne, zt, v);
                  Pv(Ne, Zr);
                  break e;
                }
            }
            Ne = Ne.return;
          } while (Ne !== null);
        }
        Mm(F);
      } catch (xn) {
        v = xn, $a === F && F !== null && ($a = F = F.return);
        continue;
      }
      break;
    } while (!0);
  }
  function wm() {
    var n = pf.current;
    return pf.current = po, n === null ? po : n;
  }
  function Ld() {
    (Li === 0 || Li === 3 || Li === 2) && (Li = 4), oi === null || !(mf & 268435455) && !(Ec & 268435455) || hs(oi, Ri);
  }
  function eh(n, v) {
    var F = aa;
    aa |= 2;
    var re = wm();
    (oi !== n || Ri !== v) && (Gs = null, bf(n, v));
    do
      try {
        A1();
        break;
      } catch (Te) {
        Am(n, Te);
      }
    while (!0);
    if (Bi(), aa = F, pf.current = re, $a !== null)
      throw Error(E(261));
    return oi = null, Ri = 0, Li;
  }
  function A1() {
    for (; $a !== null; )
      Sm($a);
  }
  function w1() {
    for (; $a !== null && !Or(); )
      Sm($a);
  }
  function Sm(n) {
    var v = Rm(n.alternate, n, Wo);
    n.memoizedProps = n.pendingProps, v === null ? Mm(n) : $a = v, jv.current = null;
  }
  function Mm(n) {
    var v = n;
    do {
      var F = v.alternate;
      if (n = v.return, v.flags & 32768) {
        if (F = b1(F, v), F !== null) {
          F.flags &= 32767, $a = F;
          return;
        }
        if (n !== null)
          n.flags |= 32768, n.subtreeFlags = 0, n.deletions = null;
        else {
          Li = 6, $a = null;
          return;
        }
      } else if (F = g1(F, v, Wo), F !== null) {
        $a = F;
        return;
      }
      if (v = v.sibling, v !== null) {
        $a = v;
        return;
      }
      $a = v = n;
    } while (v !== null);
    Li === 0 && (Li = 5);
  }
  function Su(n, v, F) {
    var re = Et, Te = bl.transition;
    try {
      bl.transition = null, Et = 1, S1(n, v, F, re);
    } finally {
      bl.transition = Te, Et = re;
    }
    return null;
  }
  function S1(n, v, F, re) {
    do
      kc();
    while (Tl !== null);
    if (aa & 6)
      throw Error(E(327));
    F = n.finishedWork;
    var Te = n.finishedLanes;
    if (F === null)
      return null;
    if (n.finishedWork = null, n.finishedLanes = 0, F === n.current)
      throw Error(E(177));
    n.callbackNode = null, n.callbackPriority = 0;
    var Ne = F.lanes | F.childLanes;
    if (It(n, Ne), n === oi && ($a = oi = null, Ri = 0), !(F.subtreeFlags & 2064) && !(F.flags & 2064) || Rc || (Rc = !0, Lm(Tr, function() {
      return kc(), null;
    })), Ne = (F.flags & 15990) !== 0, F.subtreeFlags & 15990 || Ne) {
      Ne = bl.transition, bl.transition = null;
      var ot = Et;
      Et = 1;
      var zt = aa;
      aa |= 4, jv.current = null, x1(n, F), Tm(F, n), $f(Ns), Mn = !!md, Ns = md = null, n.current = F, T1(F), Fr(), aa = zt, Et = ot, bl.transition = Ne;
    } else
      n.current = F;
    if (Rc && (Rc = !1, Tl = n, Jv = Te), Ne = n.pendingLanes, Ne === 0 && (xl = null), Cr(F.stateNode), ki(n, br()), v !== null)
      for (re = n.onRecoverableError, F = 0; F < v.length; F++)
        Te = v[F], re(Te.value, { componentStack: Te.stack, digest: Te.digest });
    if ($v)
      throw $v = !1, n = Tp, Tp = null, n;
    return Jv & 1 && n.tag !== 0 && kc(), Ne = n.pendingLanes, Ne & 1 ? n === Qv ? Dd++ : (Dd = 0, Qv = n) : Dd = 0, $i(), null;
  }
  function kc() {
    if (Tl !== null) {
      var n = Zt(Jv), v = bl.transition, F = Et;
      try {
        if (bl.transition = null, Et = 16 > n ? 16 : n, Tl === null)
          var re = !1;
        else {
          if (n = Tl, Tl = null, Jv = 0, aa & 6)
            throw Error(E(331));
          var Te = aa;
          for (aa |= 4, cn = n.current; cn !== null; ) {
            var Ne = cn, ot = Ne.child;
            if (cn.flags & 16) {
              var zt = Ne.deletions;
              if (zt !== null) {
                for (var Qt = 0; Qt < zt.length; Qt++) {
                  var mr = zt[Qt];
                  for (cn = mr; cn !== null; ) {
                    var Vr = cn;
                    switch (Vr.tag) {
                      case 0:
                      case 11:
                      case 15:
                        Tc(8, Vr, Ne);
                    }
                    var Wr = Vr.child;
                    if (Wr !== null)
                      Wr.return = Vr, cn = Wr;
                    else
                      for (; cn !== null; ) {
                        Vr = cn;
                        var Hr = Vr.sibling, ln = Vr.return;
                        if (bm(Vr), Vr === mr) {
                          cn = null;
                          break;
                        }
                        if (Hr !== null) {
                          Hr.return = ln, cn = Hr;
                          break;
                        }
                        cn = ln;
                      }
                  }
                }
                var pn = Ne.alternate;
                if (pn !== null) {
                  var gn = pn.child;
                  if (gn !== null) {
                    pn.child = null;
                    do {
                      var di = gn.sibling;
                      gn.sibling = null, gn = di;
                    } while (gn !== null);
                  }
                }
                cn = Ne;
              }
            }
            if (Ne.subtreeFlags & 2064 && ot !== null)
              ot.return = Ne, cn = ot;
            else
              e:
                for (; cn !== null; ) {
                  if (Ne = cn, Ne.flags & 2048)
                    switch (Ne.tag) {
                      case 0:
                      case 11:
                      case 15:
                        Tc(9, Ne, Ne.return);
                    }
                  var fr = Ne.sibling;
                  if (fr !== null) {
                    fr.return = Ne.return, cn = fr;
                    break e;
                  }
                  cn = Ne.return;
                }
          }
          var tr = n.current;
          for (cn = tr; cn !== null; ) {
            ot = cn;
            var vr = ot.child;
            if (ot.subtreeFlags & 2064 && vr !== null)
              vr.return = ot, cn = vr;
            else
              e:
                for (ot = tr; cn !== null; ) {
                  if (zt = cn, zt.flags & 2048)
                    try {
                      switch (zt.tag) {
                        case 0:
                        case 11:
                        case 15:
                          Yv(9, zt);
                      }
                    } catch (xn) {
                      li(zt, zt.return, xn);
                    }
                  if (zt === ot) {
                    cn = null;
                    break e;
                  }
                  var Zr = zt.sibling;
                  if (Zr !== null) {
                    Zr.return = zt.return, cn = Zr;
                    break e;
                  }
                  cn = zt.return;
                }
          }
          if (aa = Te, $i(), Er && typeof Er.onPostCommitFiberRoot == "function")
            try {
              Er.onPostCommitFiberRoot(gr, n);
            } catch {
            }
          re = !0;
        }
        return re;
      } finally {
        Et = F, bl.transition = v;
      }
    }
    return !1;
  }
  function Em(n, v, F) {
    v = Cu(F, v), v = dm(n, v, 1), n = us(n, v, 1), v = Ui(), n !== null && (St(n, 1, v), ki(n, v));
  }
  function li(n, v, F) {
    if (n.tag === 3)
      Em(n, n, F);
    else
      for (; v !== null; ) {
        if (v.tag === 3) {
          Em(v, n, F);
          break;
        } else if (v.tag === 1) {
          var re = v.stateNode;
          if (typeof v.type.getDerivedStateFromError == "function" || typeof re.componentDidCatch == "function" && (xl === null || !xl.has(re))) {
            n = Cu(F, n), n = vm(v, n, 1), v = us(v, n, 1), n = Ui(), v !== null && (St(v, 1, n), ki(v, n));
            break;
          }
        }
        v = v.return;
      }
  }
  function M1(n, v, F) {
    var re = n.pingCache;
    re !== null && re.delete(v), v = Ui(), n.pingedLanes |= n.suspendedLanes & F, oi === n && (Ri & F) === F && (Li === 4 || Li === 3 && (Ri & 130023424) === Ri && 500 > br() - Zv ? bf(n, 0) : xp |= F), ki(n, v);
  }
  function Dm(n, v) {
    v === 0 && (n.mode & 1 ? (v = ue, ue <<= 1, !(ue & 130023424) && (ue = 4194304)) : v = 1);
    var F = Ui();
    n = Yl(n, v), n !== null && (St(n, v, F), ki(n, F));
  }
  function Sp(n) {
    var v = n.memoizedState, F = 0;
    v !== null && (F = v.retryLane), Dm(n, F);
  }
  function E1(n, v) {
    var F = 0;
    switch (n.tag) {
      case 13:
        var re = n.stateNode, Te = n.memoizedState;
        Te !== null && (F = Te.retryLane);
        break;
      case 19:
        re = n.stateNode;
        break;
      default:
        throw Error(E(314));
    }
    re !== null && re.delete(v), Dm(n, F);
  }
  var Rm;
  Rm = function(n, v, F) {
    if (n !== null)
      if (n.memoizedProps !== v.pendingProps || Xa.current)
        Go = !0;
      else {
        if (!(n.lanes & F) && !(v.flags & 128))
          return Go = !1, Vs(n, v, F);
        Go = !!(n.flags & 131072);
      }
    else
      Go = !1, ra && v.flags & 1048576 && lf(v, mu, v.index);
    switch (v.lanes = 0, v.tag) {
      case 2:
        var re = v.type;
        Sd(n, v), n = v.pendingProps;
        var Te = go(v, Hn.current);
        ka(v, F), Te = qt(null, v, re, n, Te, F);
        var Ne = Br();
        return v.flags |= 1, typeof Te == "object" && Te !== null && typeof Te.render == "function" && Te.$$typeof === void 0 ? (v.tag = 1, v.memoizedState = null, v.updateQueue = null, za(re) ? (Ne = !0, ac(v)) : Ne = !1, v.memoizedState = Te.state !== null && Te.state !== void 0 ? Te.state : null, Hs(v), Te.updater = df, v.stateNode = Te, Te._reactInternals = v, cp(v, re, n, F), v = Hv(null, v, re, !0, Ne, F)) : (v.tag = 0, ra && Ne && sf(v), fi(null, v, Te, F), v = v.child), v;
      case 16:
        re = v.elementType;
        e: {
          switch (Sd(n, v), n = v.pendingProps, Te = re._init, re = Te(re._payload), v.type = re, Te = v.tag = D1(re), n = Vo(re, n), Te) {
            case 0:
              v = $n(null, v, re, n, F);
              break e;
            case 1:
              v = Ad(null, v, re, n, F);
              break e;
            case 11:
              v = mc(null, v, re, n, F);
              break e;
            case 14:
              v = Au(null, v, re, Vo(re.type, n), F);
              break e;
          }
          throw Error(E(
            306,
            re,
            ""
          ));
        }
        return v;
      case 0:
        return re = v.type, Te = v.pendingProps, Te = v.elementType === re ? Te : Vo(re, Te), $n(n, v, re, Te, F);
      case 1:
        return re = v.type, Te = v.pendingProps, Te = v.elementType === re ? Te : Vo(re, Te), Ad(n, v, re, Te, F);
      case 3:
        e: {
          if (y1(v), n === null)
            throw Error(E(387));
          re = v.pendingProps, Ne = v.memoizedState, Te = Ne.element, Bs(n, v), xu(v, re, null, F);
          var ot = v.memoizedState;
          if (re = ot.element, Ne.isDehydrated)
            if (Ne = { element: re, isDehydrated: !1, cache: ot.cache, pendingSuspenseBoundaries: ot.pendingSuspenseBoundaries, transitions: ot.transitions }, v.updateQueue.baseState = Ne, v.memoizedState = Ne, v.flags & 256) {
              Te = Cu(Error(E(423)), v), v = mm(n, v, re, F, Te);
              break e;
            } else if (re !== Te) {
              Te = Cu(Error(E(424)), v), v = mm(n, v, re, F, Te);
              break e;
            } else
              for (co = so(v.stateNode.containerInfo.firstChild), bo = v, ra = !0, xo = null, F = Ov(v, null, re, F), v.child = F; F; )
                F.flags = F.flags & -3 | 4096, F = F.sibling;
          else {
            if (Ba(), re === Te) {
              v = ci(n, v, F);
              break e;
            }
            fi(n, v, re, F);
          }
          v = v.child;
        }
        return v;
      case 5:
        return Fe(v), n === null && gu(v), re = v.type, Te = v.pendingProps, Ne = n !== null ? n.memoizedProps : null, ot = Te.children, rf(re, Te) ? ot = null : Ne !== null && rf(re, Ne) && (v.flags |= 32), vf(n, v), fi(n, v, ot, F), v.child;
      case 6:
        return n === null && gu(v), null;
      case 13:
        return ym(n, v, F);
      case 4:
        return pe(v, v.stateNode.containerInfo), re = v.pendingProps, n === null ? v.child = bu(v, null, re, F) : fi(n, v, re, F), v.child;
      case 11:
        return re = v.type, Te = v.pendingProps, Te = v.elementType === re ? Te : Vo(re, Te), mc(n, v, re, Te, F);
      case 7:
        return fi(n, v, v.pendingProps, F), v.child;
      case 8:
        return fi(n, v, v.pendingProps.children, F), v.child;
      case 12:
        return fi(n, v, v.pendingProps.children, F), v.child;
      case 10:
        e: {
          if (re = v.type._context, Te = v.pendingProps, Ne = v.memoizedProps, ot = Te.value, ha(hl, re._currentValue), re._currentValue = ot, Ne !== null)
            if (zo(Ne.value, ot)) {
              if (Ne.children === Te.children && !Xa.current) {
                v = ci(n, v, F);
                break e;
              }
            } else
              for (Ne = v.child, Ne !== null && (Ne.return = v); Ne !== null; ) {
                var zt = Ne.dependencies;
                if (zt !== null) {
                  ot = Ne.child;
                  for (var Qt = zt.firstContext; Qt !== null; ) {
                    if (Qt.context === re) {
                      if (Ne.tag === 1) {
                        Qt = vo(-1, F & -F), Qt.tag = 2;
                        var mr = Ne.updateQueue;
                        if (mr !== null) {
                          mr = mr.shared;
                          var Vr = mr.pending;
                          Vr === null ? Qt.next = Qt : (Qt.next = Vr.next, Vr.next = Qt), mr.pending = Qt;
                        }
                      }
                      Ne.lanes |= F, Qt = Ne.alternate, Qt !== null && (Qt.lanes |= F), _s(
                        Ne.return,
                        F,
                        v
                      ), zt.lanes |= F;
                      break;
                    }
                    Qt = Qt.next;
                  }
                } else if (Ne.tag === 10)
                  ot = Ne.type === v.type ? null : Ne.child;
                else if (Ne.tag === 18) {
                  if (ot = Ne.return, ot === null)
                    throw Error(E(341));
                  ot.lanes |= F, zt = ot.alternate, zt !== null && (zt.lanes |= F), _s(ot, F, v), ot = Ne.sibling;
                } else
                  ot = Ne.child;
                if (ot !== null)
                  ot.return = Ne;
                else
                  for (ot = Ne; ot !== null; ) {
                    if (ot === v) {
                      ot = null;
                      break;
                    }
                    if (Ne = ot.sibling, Ne !== null) {
                      Ne.return = ot.return, ot = Ne;
                      break;
                    }
                    ot = ot.return;
                  }
                Ne = ot;
              }
          fi(n, v, Te.children, F), v = v.child;
        }
        return v;
      case 9:
        return Te = v.type, re = v.pendingProps.children, ka(v, F), Te = Co(Te), re = re(Te), v.flags |= 1, fi(n, v, re, F), v.child;
      case 14:
        return re = v.type, Te = Vo(re, v.pendingProps), Te = Vo(re.type, Te), Au(n, v, re, Te, F);
      case 15:
        return _v(n, v, v.type, v.pendingProps, F);
      case 17:
        return re = v.type, Te = v.pendingProps, Te = v.elementType === re ? Te : Vo(re, Te), Sd(n, v), v.tag = 1, za(re) ? (n = !0, ac(v)) : n = !1, ka(v, F), um(v, re, Te), cp(v, re, Te, F), Hv(null, v, re, !0, n, F);
      case 19:
        return pp(n, v, F);
      case 22:
        return Uo(n, v, F);
    }
    throw Error(E(156, v.tag));
  };
  function Lm(n, v) {
    return ar(n, v);
  }
  function km(n, v, F, re) {
    this.tag = n, this.key = F, this.sibling = this.child = this.return = this.stateNode = this.type = this.elementType = null, this.index = 0, this.ref = null, this.pendingProps = v, this.dependencies = this.memoizedState = this.updateQueue = this.memoizedProps = null, this.mode = re, this.subtreeFlags = this.flags = 0, this.deletions = null, this.childLanes = this.lanes = 0, this.alternate = null;
  }
  function Cl(n, v, F, re) {
    return new km(n, v, F, re);
  }
  function Mp(n) {
    return n = n.prototype, !(!n || !n.isReactComponent);
  }
  function D1(n) {
    if (typeof n == "function")
      return Mp(n) ? 1 : 0;
    if (n != null) {
      if (n = n.$$typeof, n === g)
        return 11;
      if (n === $)
        return 14;
    }
    return 2;
  }
  function Mu(n, v) {
    var F = n.alternate;
    return F === null ? (F = Cl(n.tag, v, n.key, n.mode), F.elementType = n.elementType, F.type = n.type, F.stateNode = n.stateNode, F.alternate = n, n.alternate = F) : (F.pendingProps = v, F.type = n.type, F.flags = 0, F.subtreeFlags = 0, F.deletions = null), F.flags = n.flags & 14680064, F.childLanes = n.childLanes, F.lanes = n.lanes, F.child = n.child, F.memoizedProps = n.memoizedProps, F.memoizedState = n.memoizedState, F.updateQueue = n.updateQueue, v = n.dependencies, F.dependencies = v === null ? null : { lanes: v.lanes, firstContext: v.firstContext }, F.sibling = n.sibling, F.index = n.index, F.ref = n.ref, F;
  }
  function th(n, v, F, re, Te, Ne) {
    var ot = 2;
    if (re = n, typeof n == "function")
      Mp(n) && (ot = 1);
    else if (typeof n == "string")
      ot = 5;
    else
      e:
        switch (n) {
          case S:
            return xf(F.children, Te, Ne, v);
          case T:
            ot = 8, Te |= 8;
            break;
          case k:
            return n = Cl(12, F, v, Te | 2), n.elementType = k, n.lanes = Ne, n;
          case I:
            return n = Cl(13, F, v, Te), n.elementType = I, n.lanes = Ne, n;
          case O:
            return n = Cl(19, F, v, Te), n.elementType = O, n.lanes = Ne, n;
          case ne:
            return rh(F, Te, Ne, v);
          default:
            if (typeof n == "object" && n !== null)
              switch (n.$$typeof) {
                case A:
                  ot = 10;
                  break e;
                case R:
                  ot = 9;
                  break e;
                case g:
                  ot = 11;
                  break e;
                case $:
                  ot = 14;
                  break e;
                case Y:
                  ot = 16, re = null;
                  break e;
              }
            throw Error(E(130, n == null ? n : typeof n, ""));
        }
    return v = Cl(ot, F, v, Te), v.elementType = n, v.type = re, v.lanes = Ne, v;
  }
  function xf(n, v, F, re) {
    return n = Cl(7, n, re, v), n.lanes = F, n;
  }
  function rh(n, v, F, re) {
    return n = Cl(22, n, re, v), n.elementType = ne, n.lanes = F, n.stateNode = { isHidden: !1 }, n;
  }
  function nh(n, v, F) {
    return n = Cl(6, n, null, v), n.lanes = F, n;
  }
  function kd(n, v, F) {
    return v = Cl(4, n.children !== null ? n.children : [], n.key, v), v.lanes = F, v.stateNode = { containerInfo: n.containerInfo, pendingChildren: null, implementation: n.implementation }, v;
  }
  function Id(n, v, F, re, Te) {
    this.tag = v, this.containerInfo = n, this.finishedWork = this.pingCache = this.current = this.pendingChildren = null, this.timeoutHandle = -1, this.callbackNode = this.pendingContext = this.context = null, this.callbackPriority = 0, this.eventTimes = ht(0), this.expirationTimes = ht(-1), this.entangledLanes = this.finishedLanes = this.mutableReadLanes = this.expiredLanes = this.pingedLanes = this.suspendedLanes = this.pendingLanes = 0, this.entanglements = ht(0), this.identifierPrefix = re, this.onRecoverableError = Te, this.mutableSourceEagerHydrationData = null;
  }
  function Ep(n, v, F, re, Te, Ne, ot, zt, Qt) {
    return n = new Id(n, v, F, zt, Qt), v === 1 ? (v = 1, Ne === !0 && (v |= 8)) : v = 0, Ne = Cl(3, null, null, v), n.current = Ne, Ne.stateNode = n, Ne.memoizedState = { element: re, isDehydrated: F, cache: null, transitions: null, pendingSuspenseBoundaries: null }, Hs(Ne), n;
  }
  function Im(n, v, F) {
    var re = 3 < arguments.length && arguments[3] !== void 0 ? arguments[3] : null;
    return { $$typeof: w, key: re == null ? null : "" + re, children: n, containerInfo: v, implementation: F };
  }
  function Dp(n) {
    if (!n)
      return cl;
    n = n._reactInternals;
    e: {
      if (tt(n) !== n || n.tag !== 1)
        throw Error(E(170));
      var v = n;
      do {
        switch (v.tag) {
          case 3:
            v = v.stateNode.context;
            break e;
          case 1:
            if (za(v.type)) {
              v = v.stateNode.__reactInternalMemoizedMergedChildContext;
              break e;
            }
        }
        v = v.return;
      } while (v !== null);
      throw Error(E(171));
    }
    if (n.tag === 1) {
      var F = n.type;
      if (za(F))
        return of(n, F, v);
    }
    return v;
  }
  function Rp(n, v, F, re, Te, Ne, ot, zt, Qt) {
    return n = Ep(F, re, !0, n, Te, Ne, ot, zt, Qt), n.context = Dp(null), F = n.current, re = Ui(), Te = Us(F), Ne = vo(re, Te), Ne.callback = v ?? null, us(F, Ne, Te), n.current.lanes = Te, St(n, Te, re), ki(n, re), n;
  }
  function ah(n, v, F, re) {
    var Te = v.current, Ne = Ui(), ot = Us(Te);
    return F = Dp(F), v.context === null ? v.context = F : v.pendingContext = F, v = vo(Ne, ot), v.payload = { element: n }, re = re === void 0 ? null : re, re !== null && (v.callback = re), n = us(Te, v, ot), n !== null && (ei(n, Te, ot, Ne), dc(n, Te, ot)), ot;
  }
  function Nd(n) {
    if (n = n.current, !n.child)
      return null;
    switch (n.child.tag) {
      case 5:
        return n.child.stateNode;
      default:
        return n.child.stateNode;
    }
  }
  function Nm(n, v) {
    if (n = n.memoizedState, n !== null && n.dehydrated !== null) {
      var F = n.retryLane;
      n.retryLane = F !== 0 && F < v ? F : v;
    }
  }
  function Lp(n, v) {
    Nm(n, v), (n = n.alternate) && Nm(n, v);
  }
  function R1() {
    return null;
  }
  var kp = typeof reportError == "function" ? reportError : function(n) {
    console.error(n);
  };
  function ih(n) {
    this._internalRoot = n;
  }
  Od.prototype.render = ih.prototype.render = function(n) {
    var v = this._internalRoot;
    if (v === null)
      throw Error(E(409));
    ah(n, v, null, null);
  }, Od.prototype.unmount = ih.prototype.unmount = function() {
    var n = this._internalRoot;
    if (n !== null) {
      this._internalRoot = null;
      var v = n.containerInfo;
      ps(function() {
        ah(null, n, null, null);
      }), v[Vl] = null;
    }
  };
  function Od(n) {
    this._internalRoot = n;
  }
  Od.prototype.unstable_scheduleHydration = function(n) {
    if (n) {
      var v = ir();
      n = { blockedOn: null, target: n, priority: v };
      for (var F = 0; F < vn.length && v !== 0 && v < vn[F].priority; F++)
        ;
      vn.splice(F, 0, n), F === 0 && Ra(n);
    }
  };
  function Eu(n) {
    return !(!n || n.nodeType !== 1 && n.nodeType !== 9 && n.nodeType !== 11);
  }
  function oh(n) {
    return !(!n || n.nodeType !== 1 && n.nodeType !== 9 && n.nodeType !== 11 && (n.nodeType !== 8 || n.nodeValue !== " react-mount-point-unstable "));
  }
  function Om() {
  }
  function L1(n, v, F, re, Te) {
    if (Te) {
      if (typeof re == "function") {
        var Ne = re;
        re = function() {
          var mr = Nd(ot);
          Ne.call(mr);
        };
      }
      var ot = Rp(v, re, n, 0, null, !1, !1, "", Om);
      return n._reactRootContainer = ot, n[Vl] = ot.current, is(n.nodeType === 8 ? n.parentNode : n), ps(), ot;
    }
    for (; Te = n.lastChild; )
      n.removeChild(Te);
    if (typeof re == "function") {
      var zt = re;
      re = function() {
        var mr = Nd(Qt);
        zt.call(mr);
      };
    }
    var Qt = Ep(n, 0, !1, null, null, !1, !1, "", Om);
    return n._reactRootContainer = Qt, n[Vl] = Qt.current, is(n.nodeType === 8 ? n.parentNode : n), ps(function() {
      ah(v, Qt, F, re);
    }), Qt;
  }
  function lh(n, v, F, re, Te) {
    var Ne = F._reactRootContainer;
    if (Ne) {
      var ot = Ne;
      if (typeof Te == "function") {
        var zt = Te;
        Te = function() {
          var Qt = Nd(ot);
          zt.call(Qt);
        };
      }
      ah(v, ot, n, Te);
    } else
      ot = L1(F, v, n, Te, re);
    return Nd(ot);
  }
  Yt = function(n) {
    switch (n.tag) {
      case 3:
        var v = n.stateNode;
        if (v.current.memoizedState.isDehydrated) {
          var F = ft(v.pendingLanes);
          F !== 0 && (Ht(v, F | 1), ki(v, br()), !(aa & 6) && (Dc = br() + 500, $i()));
        }
        break;
      case 13:
        ps(function() {
          var re = Yl(n, 1);
          if (re !== null) {
            var Te = Ui();
            ei(re, n, 1, Te);
          }
        }), Lp(n, 1);
    }
  }, Gt = function(n) {
    if (n.tag === 13) {
      var v = Yl(n, 134217728);
      if (v !== null) {
        var F = Ui();
        ei(v, n, 134217728, F);
      }
      Lp(n, 134217728);
    }
  }, $t = function(n) {
    if (n.tag === 13) {
      var v = Us(n), F = Yl(n, v);
      if (F !== null) {
        var re = Ui();
        ei(F, n, v, re);
      }
      Lp(n, v);
    }
  }, ir = function() {
    return Et;
  }, wr = function(n, v) {
    var F = Et;
    try {
      return Et = n, v();
    } finally {
      Et = F;
    }
  }, wt = function(n, v, F) {
    switch (v) {
      case "input":
        if (De(n, F), v = F.name, F.type === "radio" && v != null) {
          for (F = n; F.parentNode; )
            F = F.parentNode;
          for (F = F.querySelectorAll("input[name=" + JSON.stringify("" + v) + '][type="radio"]'), v = 0; v < F.length; v++) {
            var re = F[v];
            if (re !== n && re.form === n.form) {
              var Te = wn(re);
              if (!Te)
                throw Error(E(90));
              Ce(re), De(re, Te);
            }
          }
        }
        break;
      case "textarea":
        j(n, F);
        break;
      case "select":
        v = F.value, v != null && G(n, !!F.multiple, v, !1);
    }
  }, Ct = wp, jt = ps;
  var k1 = { usingClientEntryPoint: !1, Events: [Fs, zs, wn, Mt, Ut, wp] }, Pd = { findFiberByHostInstance: uo, bundleType: 0, version: "18.3.1", rendererPackageName: "react-dom" }, Pm = { bundleType: Pd.bundleType, version: Pd.version, rendererPackageName: Pd.rendererPackageName, rendererConfig: Pd.rendererConfig, overrideHookState: null, overrideHookStateDeletePath: null, overrideHookStateRenamePath: null, overrideProps: null, overridePropsDeletePath: null, overridePropsRenamePath: null, setErrorHandler: null, setSuspenseHandler: null, scheduleUpdate: null, currentDispatcherRef: D.ReactCurrentDispatcher, findHostInstanceByFiber: function(n) {
    return n = st(n), n === null ? null : n.stateNode;
  }, findFiberByHostInstance: Pd.findFiberByHostInstance || R1, findHostInstancesForRefresh: null, scheduleRefresh: null, scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, reconcilerVersion: "18.3.1-next-f1338f8080-20240426" };
  if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ < "u") {
    var sh = __REACT_DEVTOOLS_GLOBAL_HOOK__;
    if (!sh.isDisabled && sh.supportsFiber)
      try {
        gr = sh.inject(Pm), Er = sh;
      } catch {
      }
  }
  return Dl.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = k1, Dl.createPortal = function(n, v) {
    var F = 2 < arguments.length && arguments[2] !== void 0 ? arguments[2] : null;
    if (!Eu(v))
      throw Error(E(200));
    return Im(n, v, null, F);
  }, Dl.createRoot = function(n, v) {
    if (!Eu(n))
      throw Error(E(299));
    var F = !1, re = "", Te = kp;
    return v != null && (v.unstable_strictMode === !0 && (F = !0), v.identifierPrefix !== void 0 && (re = v.identifierPrefix), v.onRecoverableError !== void 0 && (Te = v.onRecoverableError)), v = Ep(n, 1, !1, null, null, F, !1, re, Te), n[Vl] = v.current, is(n.nodeType === 8 ? n.parentNode : n), new ih(v);
  }, Dl.findDOMNode = function(n) {
    if (n == null)
      return null;
    if (n.nodeType === 1)
      return n;
    var v = n._reactInternals;
    if (v === void 0)
      throw typeof n.render == "function" ? Error(E(188)) : (n = Object.keys(n).join(","), Error(E(268, n)));
    return n = st(v), n = n === null ? null : n.stateNode, n;
  }, Dl.flushSync = function(n) {
    return ps(n);
  }, Dl.hydrate = function(n, v, F) {
    if (!oh(v))
      throw Error(E(200));
    return lh(null, n, v, !0, F);
  }, Dl.hydrateRoot = function(n, v, F) {
    if (!Eu(n))
      throw Error(E(405));
    var re = F != null && F.hydratedSources || null, Te = !1, Ne = "", ot = kp;
    if (F != null && (F.unstable_strictMode === !0 && (Te = !0), F.identifierPrefix !== void 0 && (Ne = F.identifierPrefix), F.onRecoverableError !== void 0 && (ot = F.onRecoverableError)), v = Rp(v, null, n, 1, F ?? null, Te, !1, Ne, ot), n[Vl] = v.current, is(n), re)
      for (n = 0; n < re.length; n++)
        F = re[n], Te = F._getVersion, Te = Te(F._source), v.mutableSourceEagerHydrationData == null ? v.mutableSourceEagerHydrationData = [F, Te] : v.mutableSourceEagerHydrationData.push(
          F,
          Te
        );
    return new Od(v);
  }, Dl.render = function(n, v, F) {
    if (!oh(v))
      throw Error(E(200));
    return lh(null, n, v, !1, F);
  }, Dl.unmountComponentAtNode = function(n) {
    if (!oh(n))
      throw Error(E(40));
    return n._reactRootContainer ? (ps(function() {
      lh(null, null, n, !1, function() {
        n._reactRootContainer = null, n[Vl] = null;
      });
    }), !0) : !1;
  }, Dl.unstable_batchedUpdates = wp, Dl.unstable_renderSubtreeIntoContainer = function(n, v, F, re) {
    if (!oh(F))
      throw Error(E(200));
    if (n == null || n._reactInternals === void 0)
      throw Error(E(38));
    return lh(n, v, F, !1, re);
  }, Dl.version = "18.3.1-next-f1338f8080-20240426", Dl;
}
var Rl = {};
/**
 * @license React
 * react-dom.development.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
var fw;
function lL() {
  return fw || (fw = 1,  true && function() {
    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ < "u" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart == "function" && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());
    var s = (react__WEBPACK_IMPORTED_MODULE_1___default()), o = ZS(), E = s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, z = !1;
    function P(e) {
      z = e;
    }
    function K(e) {
      if (!z) {
        for (var t = arguments.length, m = new Array(t > 1 ? t - 1 : 0), N = 1; N < t; N++)
          m[N - 1] = arguments[N];
        L("warn", e, m);
      }
    }
    function M(e) {
      if (!z) {
        for (var t = arguments.length, m = new Array(t > 1 ? t - 1 : 0), N = 1; N < t; N++)
          m[N - 1] = arguments[N];
        L("error", e, m);
      }
    }
    function L(e, t, m) {
      {
        var N = E.ReactDebugCurrentFrame, V = N.getStackAddendum();
        V !== "" && (t += "%s", m = m.concat([V]));
        var de = m.map(function(Ee) {
          return String(Ee);
        });
        de.unshift("Warning: " + t), Function.prototype.apply.call(console[e], console, de);
      }
    }
    var r = 0, a = 1, p = 2, l = 3, f = 4, u = 5, c = 6, d = 7, h = 8, i = 9, b = 10, x = 11, D = 12, C = 13, w = 14, S = 15, T = 16, k = 17, A = 18, R = 19, g = 21, I = 22, O = 23, $ = 24, Y = 25, ne = !0, q = !1, B = !1, X = !1, U = !1, te = !0, se = !1, me = !0, J = !0, W = !0, ae = !0, oe = /* @__PURE__ */ new Set(), ve = {}, fe = {};
    function ye(e, t) {
      Ce(e, t), Ce(e + "Capture", t);
    }
    function Ce(e, t) {
      ve[e] && M("EventRegistry: More than one plugin attempted to publish the same registration name, `%s`.", e), ve[e] = t;
      {
        var m = e.toLowerCase();
        fe[m] = e, e === "onDoubleClick" && (fe.ondblclick = e);
      }
      for (var N = 0; N < t.length; N++)
        oe.add(t[N]);
    }
    var Re = typeof window < "u" && typeof window.document < "u" && typeof window.document.createElement < "u", Be = Object.prototype.hasOwnProperty;
    function xe(e) {
      {
        var t = typeof Symbol == "function" && Symbol.toStringTag, m = t && e[Symbol.toStringTag] || e.constructor.name || "Object";
        return m;
      }
    }
    function Me(e) {
      try {
        return De(e), !1;
      } catch {
        return !0;
      }
    }
    function De(e) {
      return "" + e;
    }
    function Z(e, t) {
      if (Me(e))
        return M("The provided `%s` attribute is an unsupported type %s. This value must be coerced to a string before before using it here.", t, xe(e)), De(e);
    }
    function ee(e) {
      if (Me(e))
        return M("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.", xe(e)), De(e);
    }
    function ie(e, t) {
      if (Me(e))
        return M("The provided `%s` prop is an unsupported type %s. This value must be coerced to a string before before using it here.", t, xe(e)), De(e);
    }
    function G(e, t) {
      if (Me(e))
        return M("The provided `%s` CSS property is an unsupported type %s. This value must be coerced to a string before before using it here.", t, xe(e)), De(e);
    }
    function H(e) {
      if (Me(e))
        return M("The provided HTML markup uses a value of unsupported type %s. This value must be coerced to a string before before using it here.", xe(e)), De(e);
    }
    function ce(e) {
      if (Me(e))
        return M("Form field values (value, checked, defaultValue, or defaultChecked props) must be strings, not %s. This value must be coerced to a string before before using it here.", xe(e)), De(e);
    }
    var j = 0, he = 1, be = 2, we = 3, Ie = 4, Ge = 5, Ve = 6, Je = ":A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD", et = Je + "\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040", at = new RegExp("^[" + Je + "][" + et + "]*$"), Le = {}, ze = {};
    function Oe(e) {
      return Be.call(ze, e) ? !0 : Be.call(Le, e) ? !1 : at.test(e) ? (ze[e] = !0, !0) : (Le[e] = !0, M("Invalid attribute name: `%s`", e), !1);
    }
    function Xe(e, t, m) {
      return t !== null ? t.type === j : m ? !1 : e.length > 2 && (e[0] === "o" || e[0] === "O") && (e[1] === "n" || e[1] === "N");
    }
    function it(e, t, m, N) {
      if (m !== null && m.type === j)
        return !1;
      switch (typeof t) {
        case "function":
        case "symbol":
          return !0;
        case "boolean": {
          if (N)
            return !1;
          if (m !== null)
            return !m.acceptsBooleans;
          var V = e.toLowerCase().slice(0, 5);
          return V !== "data-" && V !== "aria-";
        }
        default:
          return !1;
      }
    }
    function ut(e, t, m, N) {
      if (t === null || typeof t > "u" || it(e, t, m, N))
        return !0;
      if (N)
        return !1;
      if (m !== null)
        switch (m.type) {
          case we:
            return !t;
          case Ie:
            return t === !1;
          case Ge:
            return isNaN(t);
          case Ve:
            return isNaN(t) || t < 1;
        }
      return !1;
    }
    function wt(e) {
      return Ot.hasOwnProperty(e) ? Ot[e] : null;
    }
    function kt(e, t, m, N, V, de, Ee) {
      this.acceptsBooleans = t === be || t === we || t === Ie, this.attributeName = N, this.attributeNamespace = V, this.mustUseProperty = m, this.propertyName = e, this.type = t, this.sanitizeURL = de, this.removeEmptyString = Ee;
    }
    var Ot = {}, Lt = [
      "children",
      "dangerouslySetInnerHTML",
      // TODO: This prevents the assignment of defaultValue to regular
      // elements (not just inputs). Now that ReactDOMInput assigns to the
      // defaultValue property -- do we need this?
      "defaultValue",
      "defaultChecked",
      "innerHTML",
      "suppressContentEditableWarning",
      "suppressHydrationWarning",
      "style"
    ];
    Lt.forEach(function(e) {
      Ot[e] = new kt(
        e,
        j,
        !1,
        // mustUseProperty
        e,
        // attributeName
        null,
        // attributeNamespace
        !1,
        // sanitizeURL
        !1
      );
    }), [["acceptCharset", "accept-charset"], ["className", "class"], ["htmlFor", "for"], ["httpEquiv", "http-equiv"]].forEach(function(e) {
      var t = e[0], m = e[1];
      Ot[t] = new kt(
        t,
        he,
        !1,
        // mustUseProperty
        m,
        // attributeName
        null,
        // attributeNamespace
        !1,
        // sanitizeURL
        !1
      );
    }), ["contentEditable", "draggable", "spellCheck", "value"].forEach(function(e) {
      Ot[e] = new kt(
        e,
        be,
        !1,
        // mustUseProperty
        e.toLowerCase(),
        // attributeName
        null,
        // attributeNamespace
        !1,
        // sanitizeURL
        !1
      );
    }), ["autoReverse", "externalResourcesRequired", "focusable", "preserveAlpha"].forEach(function(e) {
      Ot[e] = new kt(
        e,
        be,
        !1,
        // mustUseProperty
        e,
        // attributeName
        null,
        // attributeNamespace
        !1,
        // sanitizeURL
        !1
      );
    }), [
      "allowFullScreen",
      "async",
      // Note: there is a special case that prevents it from being written to the DOM
      // on the client side because the browsers are inconsistent. Instead we call focus().
      "autoFocus",
      "autoPlay",
      "controls",
      "default",
      "defer",
      "disabled",
      "disablePictureInPicture",
      "disableRemotePlayback",
      "formNoValidate",
      "hidden",
      "loop",
      "noModule",
      "noValidate",
      "open",
      "playsInline",
      "readOnly",
      "required",
      "reversed",
      "scoped",
      "seamless",
      // Microdata
      "itemScope"
    ].forEach(function(e) {
      Ot[e] = new kt(
        e,
        we,
        !1,
        // mustUseProperty
        e.toLowerCase(),
        // attributeName
        null,
        // attributeNamespace
        !1,
        // sanitizeURL
        !1
      );
    }), [
      "checked",
      // Note: `option.selected` is not updated if `select.multiple` is
      // disabled with `removeAttribute`. We have special logic for handling this.
      "multiple",
      "muted",
      "selected"
      // NOTE: if you add a camelCased prop to this list,
      // you'll need to set attributeName to name.toLowerCase()
      // instead in the assignment below.
    ].forEach(function(e) {
      Ot[e] = new kt(
        e,
        we,
        !0,
        // mustUseProperty
        e,
        // attributeName
        null,
        // attributeNamespace
        !1,
        // sanitizeURL
        !1
      );
    }), [
      "capture",
      "download"
      // NOTE: if you add a camelCased prop to this list,
      // you'll need to set attributeName to name.toLowerCase()
      // instead in the assignment below.
    ].forEach(function(e) {
      Ot[e] = new kt(
        e,
        Ie,
        !1,
        // mustUseProperty
        e,
        // attributeName
        null,
        // attributeNamespace
        !1,
        // sanitizeURL
        !1
      );
    }), [
      "cols",
      "rows",
      "size",
      "span"
      // NOTE: if you add a camelCased prop to this list,
      // you'll need to set attributeName to name.toLowerCase()
      // instead in the assignment below.
    ].forEach(function(e) {
      Ot[e] = new kt(
        e,
        Ve,
        !1,
        // mustUseProperty
        e,
        // attributeName
        null,
        // attributeNamespace
        !1,
        // sanitizeURL
        !1
      );
    }), ["rowSpan", "start"].forEach(function(e) {
      Ot[e] = new kt(
        e,
        Ge,
        !1,
        // mustUseProperty
        e.toLowerCase(),
        // attributeName
        null,
        // attributeNamespace
        !1,
        // sanitizeURL
        !1
      );
    });
    var Mt = /[\-\:]([a-z])/g, Ut = function(e) {
      return e[1].toUpperCase();
    };
    [
      "accent-height",
      "alignment-baseline",
      "arabic-form",
      "baseline-shift",
      "cap-height",
      "clip-path",
      "clip-rule",
      "color-interpolation",
      "color-interpolation-filters",
      "color-profile",
      "color-rendering",
      "dominant-baseline",
      "enable-background",
      "fill-opacity",
      "fill-rule",
      "flood-color",
      "flood-opacity",
      "font-family",
      "font-size",
      "font-size-adjust",
      "font-stretch",
      "font-style",
      "font-variant",
      "font-weight",
      "glyph-name",
      "glyph-orientation-horizontal",
      "glyph-orientation-vertical",
      "horiz-adv-x",
      "horiz-origin-x",
      "image-rendering",
      "letter-spacing",
      "lighting-color",
      "marker-end",
      "marker-mid",
      "marker-start",
      "overline-position",
      "overline-thickness",
      "paint-order",
      "panose-1",
      "pointer-events",
      "rendering-intent",
      "shape-rendering",
      "stop-color",
      "stop-opacity",
      "strikethrough-position",
      "strikethrough-thickness",
      "stroke-dasharray",
      "stroke-dashoffset",
      "stroke-linecap",
      "stroke-linejoin",
      "stroke-miterlimit",
      "stroke-opacity",
      "stroke-width",
      "text-anchor",
      "text-decoration",
      "text-rendering",
      "underline-position",
      "underline-thickness",
      "unicode-bidi",
      "unicode-range",
      "units-per-em",
      "v-alphabetic",
      "v-hanging",
      "v-ideographic",
      "v-mathematical",
      "vector-effect",
      "vert-adv-y",
      "vert-origin-x",
      "vert-origin-y",
      "word-spacing",
      "writing-mode",
      "xmlns:xlink",
      "x-height"
      // NOTE: if you add a camelCased prop to this list,
      // you'll need to set attributeName to name.toLowerCase()
      // instead in the assignment below.
    ].forEach(function(e) {
      var t = e.replace(Mt, Ut);
      Ot[t] = new kt(
        t,
        he,
        !1,
        // mustUseProperty
        e,
        null,
        // attributeNamespace
        !1,
        // sanitizeURL
        !1
      );
    }), [
      "xlink:actuate",
      "xlink:arcrole",
      "xlink:role",
      "xlink:show",
      "xlink:title",
      "xlink:type"
      // NOTE: if you add a camelCased prop to this list,
      // you'll need to set attributeName to name.toLowerCase()
      // instead in the assignment below.
    ].forEach(function(e) {
      var t = e.replace(Mt, Ut);
      Ot[t] = new kt(
        t,
        he,
        !1,
        // mustUseProperty
        e,
        "http://www.w3.org/1999/xlink",
        !1,
        // sanitizeURL
        !1
      );
    }), [
      "xml:base",
      "xml:lang",
      "xml:space"
      // NOTE: if you add a camelCased prop to this list,
      // you'll need to set attributeName to name.toLowerCase()
      // instead in the assignment below.
    ].forEach(function(e) {
      var t = e.replace(Mt, Ut);
      Ot[t] = new kt(
        t,
        he,
        !1,
        // mustUseProperty
        e,
        "http://www.w3.org/XML/1998/namespace",
        !1,
        // sanitizeURL
        !1
      );
    }), ["tabIndex", "crossOrigin"].forEach(function(e) {
      Ot[e] = new kt(
        e,
        he,
        !1,
        // mustUseProperty
        e.toLowerCase(),
        // attributeName
        null,
        // attributeNamespace
        !1,
        // sanitizeURL
        !1
      );
    });
    var Ct = "xlinkHref";
    Ot[Ct] = new kt(
      "xlinkHref",
      he,
      !1,
      // mustUseProperty
      "xlink:href",
      "http://www.w3.org/1999/xlink",
      !0,
      // sanitizeURL
      !1
    ), ["src", "href", "action", "formAction"].forEach(function(e) {
      Ot[e] = new kt(
        e,
        he,
        !1,
        // mustUseProperty
        e.toLowerCase(),
        // attributeName
        null,
        // attributeNamespace
        !0,
        // sanitizeURL
        !0
      );
    });
    var jt = /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*\:/i, nr = !1;
    function Jt(e) {
      !nr && jt.test(e) && (nr = !0, M("A future version of React will block javascript: URLs as a security precaution. Use event handlers instead if you can. If you need to generate unsafe HTML try using dangerouslySetInnerHTML instead. React was passed %s.", JSON.stringify(e)));
    }
    function Wt(e, t, m, N) {
      if (N.mustUseProperty) {
        var V = N.propertyName;
        return e[V];
      } else {
        Z(m, t), N.sanitizeURL && Jt("" + m);
        var de = N.attributeName, Ee = null;
        if (N.type === Ie) {
          if (e.hasAttribute(de)) {
            var He = e.getAttribute(de);
            return He === "" ? !0 : ut(t, m, N, !1) ? He : He === "" + m ? m : He;
          }
        } else if (e.hasAttribute(de)) {
          if (ut(t, m, N, !1))
            return e.getAttribute(de);
          if (N.type === we)
            return m;
          Ee = e.getAttribute(de);
        }
        return ut(t, m, N, !1) ? Ee === null ? m : Ee : Ee === "" + m ? m : Ee;
      }
    }
    function qe(e, t, m, N) {
      {
        if (!Oe(t))
          return;
        if (!e.hasAttribute(t))
          return m === void 0 ? void 0 : null;
        var V = e.getAttribute(t);
        return Z(m, t), V === "" + m ? m : V;
      }
    }
    function Ue(e, t, m, N) {
      var V = wt(t);
      if (!Xe(t, V, N)) {
        if (ut(t, m, V, N) && (m = null), N || V === null) {
          if (Oe(t)) {
            var de = t;
            m === null ? e.removeAttribute(de) : (Z(m, t), e.setAttribute(de, "" + m));
          }
          return;
        }
        var Ee = V.mustUseProperty;
        if (Ee) {
          var He = V.propertyName;
          if (m === null) {
            var $e = V.type;
            e[He] = $e === we ? !1 : "";
          } else
            e[He] = m;
          return;
        }
        var pt = V.attributeName, At = V.attributeNamespace;
        if (m === null)
          e.removeAttribute(pt);
        else {
          var rr = V.type, er;
          rr === we || rr === Ie && m === !0 ? er = "" : (Z(m, pt), er = "" + m, V.sanitizeURL && Jt(er.toString())), At ? e.setAttributeNS(At, pt, er) : e.setAttribute(pt, er);
        }
      }
    }
    var We = Symbol.for("react.element"), je = Symbol.for("react.portal"), lt = Symbol.for("react.fragment"), Se = Symbol.for("react.strict_mode"), Pe = Symbol.for("react.profiler"), Ye = Symbol.for("react.provider"), Ze = Symbol.for("react.context"), rt = Symbol.for("react.forward_ref"), tt = Symbol.for("react.suspense"), Ft = Symbol.for("react.suspense_list"), Dt = Symbol.for("react.memo"), dt = Symbol.for("react.lazy"), st = Symbol.for("react.scope"), Nt = Symbol.for("react.debug_trace_mode"), ar = Symbol.for("react.offscreen"), ur = Symbol.for("react.legacy_hidden"), Or = Symbol.for("react.cache"), Fr = Symbol.for("react.tracing_marker"), br = Symbol.iterator, or = "@@iterator";
    function Rr(e) {
      if (e === null || typeof e != "object")
        return null;
      var t = br && e[br] || e[or];
      return typeof t == "function" ? t : null;
    }
    var lr = Object.assign, Tr = 0, Gr, Dr, gr, Er, Cr, zr, en;
    function on() {
    }
    on.__reactDisabledLog = !0;
    function Ir() {
      {
        if (Tr === 0) {
          Gr = console.log, Dr = console.info, gr = console.warn, Er = console.error, Cr = console.group, zr = console.groupCollapsed, en = console.groupEnd;
          var e = {
            configurable: !0,
            enumerable: !0,
            value: on,
            writable: !0
          };
          Object.defineProperties(console, {
            info: e,
            log: e,
            warn: e,
            error: e,
            group: e,
            groupCollapsed: e,
            groupEnd: e
          });
        }
        Tr++;
      }
    }
    function Ae() {
      {
        if (Tr--, Tr === 0) {
          var e = {
            configurable: !0,
            enumerable: !0,
            writable: !0
          };
          Object.defineProperties(console, {
            log: lr({}, e, {
              value: Gr
            }),
            info: lr({}, e, {
              value: Dr
            }),
            warn: lr({}, e, {
              value: gr
            }),
            error: lr({}, e, {
              value: Er
            }),
            group: lr({}, e, {
              value: Cr
            }),
            groupCollapsed: lr({}, e, {
              value: zr
            }),
            groupEnd: lr({}, e, {
              value: en
            })
          });
        }
        Tr < 0 && M("disabledDepth fell below zero. This is a bug in React. Please file an issue.");
      }
    }
    var ue = E.ReactCurrentDispatcher, ft;
    function nt(e, t, m) {
      {
        if (ft === void 0)
          try {
            throw Error();
          } catch (V) {
            var N = V.stack.trim().match(/\n( *(at )?)/);
            ft = N && N[1] || "";
          }
        return `
` + ft + e;
      }
    }
    var mt = !1, Tt;
    {
      var bt = typeof WeakMap == "function" ? WeakMap : Map;
      Tt = new bt();
    }
    function vt(e, t) {
      if (!e || mt)
        return "";
      {
        var m = Tt.get(e);
        if (m !== void 0)
          return m;
      }
      var N;
      mt = !0;
      var V = Error.prepareStackTrace;
      Error.prepareStackTrace = void 0;
      var de;
      de = ue.current, ue.current = null, Ir();
      try {
        if (t) {
          var Ee = function() {
            throw Error();
          };
          if (Object.defineProperty(Ee.prototype, "props", {
            set: function() {
              throw Error();
            }
          }), typeof Reflect == "object" && Reflect.construct) {
            try {
              Reflect.construct(Ee, []);
            } catch (yr) {
              N = yr;
            }
            Reflect.construct(e, [], Ee);
          } else {
            try {
              Ee.call();
            } catch (yr) {
              N = yr;
            }
            e.call(Ee.prototype);
          }
        } else {
          try {
            throw Error();
          } catch (yr) {
            N = yr;
          }
          e();
        }
      } catch (yr) {
        if (yr && N && typeof yr.stack == "string") {
          for (var He = yr.stack.split(`
`), $e = N.stack.split(`
`), pt = He.length - 1, At = $e.length - 1; pt >= 1 && At >= 0 && He[pt] !== $e[At]; )
            At--;
          for (; pt >= 1 && At >= 0; pt--, At--)
            if (He[pt] !== $e[At]) {
              if (pt !== 1 || At !== 1)
                do
                  if (pt--, At--, At < 0 || He[pt] !== $e[At]) {
                    var rr = `
` + He[pt].replace(" at new ", " at ");
                    return e.displayName && rr.includes("<anonymous>") && (rr = rr.replace("<anonymous>", e.displayName)), typeof e == "function" && Tt.set(e, rr), rr;
                  }
                while (pt >= 1 && At >= 0);
              break;
            }
        }
      } finally {
        mt = !1, ue.current = de, Ae(), Error.prepareStackTrace = V;
      }
      var er = e ? e.displayName || e.name : "", pr = er ? nt(er) : "";
      return typeof e == "function" && Tt.set(e, pr), pr;
    }
    function ht(e, t, m) {
      return vt(e, !0);
    }
    function St(e, t, m) {
      return vt(e, !1);
    }
    function It(e) {
      var t = e.prototype;
      return !!(t && t.isReactComponent);
    }
    function Ht(e, t, m) {
      if (e == null)
        return "";
      if (typeof e == "function")
        return vt(e, It(e));
      if (typeof e == "string")
        return nt(e);
      switch (e) {
        case tt:
          return nt("Suspense");
        case Ft:
          return nt("SuspenseList");
      }
      if (typeof e == "object")
        switch (e.$$typeof) {
          case rt:
            return St(e.render);
          case Dt:
            return Ht(e.type, t, m);
          case dt: {
            var N = e, V = N._payload, de = N._init;
            try {
              return Ht(de(V), t, m);
            } catch {
            }
          }
        }
      return "";
    }
    function Et(e) {
      switch (e._debugOwner && e._debugOwner.type, e._debugSource, e.tag) {
        case u:
          return nt(e.type);
        case T:
          return nt("Lazy");
        case C:
          return nt("Suspense");
        case R:
          return nt("SuspenseList");
        case r:
        case p:
        case S:
          return St(e.type);
        case x:
          return St(e.type.render);
        case a:
          return ht(e.type);
        default:
          return "";
      }
    }
    function Zt(e) {
      try {
        var t = "", m = e;
        do
          t += Et(m), m = m.return;
        while (m);
        return t;
      } catch (N) {
        return `
Error generating stack: ` + N.message + `
` + N.stack;
      }
    }
    function Yt(e, t, m) {
      var N = e.displayName;
      if (N)
        return N;
      var V = t.displayName || t.name || "";
      return V !== "" ? m + "(" + V + ")" : m;
    }
    function Gt(e) {
      return e.displayName || "Context";
    }
    function $t(e) {
      if (e == null)
        return null;
      if (typeof e.tag == "number" && M("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."), typeof e == "function")
        return e.displayName || e.name || null;
      if (typeof e == "string")
        return e;
      switch (e) {
        case lt:
          return "Fragment";
        case je:
          return "Portal";
        case Pe:
          return "Profiler";
        case Se:
          return "StrictMode";
        case tt:
          return "Suspense";
        case Ft:
          return "SuspenseList";
      }
      if (typeof e == "object")
        switch (e.$$typeof) {
          case Ze:
            var t = e;
            return Gt(t) + ".Consumer";
          case Ye:
            var m = e;
            return Gt(m._context) + ".Provider";
          case rt:
            return Yt(e, e.render, "ForwardRef");
          case Dt:
            var N = e.displayName || null;
            return N !== null ? N : $t(e.type) || "Memo";
          case dt: {
            var V = e, de = V._payload, Ee = V._init;
            try {
              return $t(Ee(de));
            } catch {
              return null;
            }
          }
        }
      return null;
    }
    function ir(e, t, m) {
      var N = t.displayName || t.name || "";
      return e.displayName || (N !== "" ? m + "(" + N + ")" : m);
    }
    function wr(e) {
      return e.displayName || "Context";
    }
    function sr(e) {
      var t = e.tag, m = e.type;
      switch (t) {
        case $:
          return "Cache";
        case i:
          var N = m;
          return wr(N) + ".Consumer";
        case b:
          var V = m;
          return wr(V._context) + ".Provider";
        case A:
          return "DehydratedFragment";
        case x:
          return ir(m, m.render, "ForwardRef");
        case d:
          return "Fragment";
        case u:
          return m;
        case f:
          return "Portal";
        case l:
          return "Root";
        case c:
          return "Text";
        case T:
          return $t(m);
        case h:
          return m === Se ? "StrictMode" : "Mode";
        case I:
          return "Offscreen";
        case D:
          return "Profiler";
        case g:
          return "Scope";
        case C:
          return "Suspense";
        case R:
          return "SuspenseList";
        case Y:
          return "TracingMarker";
        case a:
        case r:
        case k:
        case p:
        case w:
        case S:
          if (typeof m == "function")
            return m.displayName || m.name || null;
          if (typeof m == "string")
            return m;
          break;
      }
      return null;
    }
    var Xr = E.ReactDebugCurrentFrame, Lr = null, Pr = !1;
    function $r() {
      {
        if (Lr === null)
          return null;
        var e = Lr._debugOwner;
        if (e !== null && typeof e < "u")
          return sr(e);
      }
      return null;
    }
    function Jr() {
      return Lr === null ? "" : Zt(Lr);
    }
    function Qr() {
      Xr.getCurrentStack = null, Lr = null, Pr = !1;
    }
    function vn(e) {
      Xr.getCurrentStack = e === null ? null : Jr, Lr = e, Pr = !1;
    }
    function An() {
      return Lr;
    }
    function hn(e) {
      Pr = e;
    }
    function Pn(e) {
      return "" + e;
    }
    function sa(e) {
      switch (typeof e) {
        case "boolean":
        case "number":
        case "string":
        case "undefined":
          return e;
        case "object":
          return ce(e), e;
        default:
          return "";
      }
    }
    var Ra = {
      button: !0,
      checkbox: !0,
      image: !0,
      hidden: !0,
      radio: !0,
      reset: !0,
      submit: !0
    };
    function rn(e, t) {
      Ra[t.type] || t.onChange || t.onInput || t.readOnly || t.disabled || t.value == null || M("You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`."), t.onChange || t.readOnly || t.disabled || t.checked == null || M("You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.");
    }
    function ua(e) {
      var t = e.type, m = e.nodeName;
      return m && m.toLowerCase() === "input" && (t === "checkbox" || t === "radio");
    }
    function dn(e) {
      return e._valueTracker;
    }
    function Dn(e) {
      e._valueTracker = null;
    }
    function Sn(e) {
      var t = "";
      return e && (ua(e) ? t = e.checked ? "true" : "false" : t = e.value), t;
    }
    function Fn(e) {
      var t = ua(e) ? "checked" : "value", m = Object.getOwnPropertyDescriptor(e.constructor.prototype, t);
      ce(e[t]);
      var N = "" + e[t];
      if (!(e.hasOwnProperty(t) || typeof m > "u" || typeof m.get != "function" || typeof m.set != "function")) {
        var V = m.get, de = m.set;
        Object.defineProperty(e, t, {
          configurable: !0,
          get: function() {
            return V.call(this);
          },
          set: function(He) {
            ce(He), N = "" + He, de.call(this, He);
          }
        }), Object.defineProperty(e, t, {
          enumerable: m.enumerable
        });
        var Ee = {
          getValue: function() {
            return N;
          },
          setValue: function(He) {
            ce(He), N = "" + He;
          },
          stopTracking: function() {
            Dn(e), delete e[t];
          }
        };
        return Ee;
      }
    }
    function Mn(e) {
      dn(e) || (e._valueTracker = Fn(e));
    }
    function qn(e) {
      if (!e)
        return !1;
      var t = dn(e);
      if (!t)
        return !0;
      var m = t.getValue(), N = Sn(e);
      return N !== m ? (t.setValue(N), !0) : !1;
    }
    function Rn(e) {
      if (e = e || (typeof document < "u" ? document : void 0), typeof e > "u")
        return null;
      try {
        return e.activeElement || e.body;
      } catch {
        return e.body;
      }
    }
    var ea = !1, ga = !1, oa = !1, Kn = !1;
    function ba(e) {
      var t = e.type === "checkbox" || e.type === "radio";
      return t ? e.checked != null : e.value != null;
    }
    function Fa(e, t) {
      var m = e, N = t.checked, V = lr({}, t, {
        defaultChecked: void 0,
        defaultValue: void 0,
        value: void 0,
        checked: N ?? m._wrapperState.initialChecked
      });
      return V;
    }
    function xa(e, t) {
      rn("input", t), t.checked !== void 0 && t.defaultChecked !== void 0 && !ga && (M("%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://reactjs.org/link/controlled-components", $r() || "A component", t.type), ga = !0), t.value !== void 0 && t.defaultValue !== void 0 && !ea && (M("%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://reactjs.org/link/controlled-components", $r() || "A component", t.type), ea = !0);
      var m = e, N = t.defaultValue == null ? "" : t.defaultValue;
      m._wrapperState = {
        initialChecked: t.checked != null ? t.checked : t.defaultChecked,
        initialValue: sa(t.value != null ? t.value : N),
        controlled: ba(t)
      };
    }
    function _a(e, t) {
      var m = e, N = t.checked;
      N != null && Ue(m, "checked", N, !1);
    }
    function si(e, t) {
      var m = e;
      {
        var N = ba(t);
        !m._wrapperState.controlled && N && !Kn && (M("A component is changing an uncontrolled input to be controlled. This is likely caused by the value changing from undefined to a defined value, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components"), Kn = !0), m._wrapperState.controlled && !N && !oa && (M("A component is changing a controlled input to be uncontrolled. This is likely caused by the value changing from a defined to undefined, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components"), oa = !0);
      }
      _a(e, t);
      var V = sa(t.value), de = t.type;
      if (V != null)
        de === "number" ? (V === 0 && m.value === "" || // We explicitly want to coerce to number here if possible.
        // eslint-disable-next-line
        m.value != V) && (m.value = Pn(V)) : m.value !== Pn(V) && (m.value = Pn(V));
      else if (de === "submit" || de === "reset") {
        m.removeAttribute("value");
        return;
      }
      t.hasOwnProperty("value") ? Fi(m, t.type, V) : t.hasOwnProperty("defaultValue") && Fi(m, t.type, sa(t.defaultValue)), t.checked == null && t.defaultChecked != null && (m.defaultChecked = !!t.defaultChecked);
    }
    function pi(e, t, m) {
      var N = e;
      if (t.hasOwnProperty("value") || t.hasOwnProperty("defaultValue")) {
        var V = t.type, de = V === "submit" || V === "reset";
        if (de && (t.value === void 0 || t.value === null))
          return;
        var Ee = Pn(N._wrapperState.initialValue);
        m || Ee !== N.value && (N.value = Ee), N.defaultValue = Ee;
      }
      var He = N.name;
      He !== "" && (N.name = ""), N.defaultChecked = !N.defaultChecked, N.defaultChecked = !!N._wrapperState.initialChecked, He !== "" && (N.name = He);
    }
    function ri(e, t) {
      var m = e;
      si(m, t), da(m, t);
    }
    function da(e, t) {
      var m = t.name;
      if (t.type === "radio" && m != null) {
        for (var N = e; N.parentNode; )
          N = N.parentNode;
        Z(m, "name");
        for (var V = N.querySelectorAll("input[name=" + JSON.stringify("" + m) + '][type="radio"]'), de = 0; de < V.length; de++) {
          var Ee = V[de];
          if (!(Ee === e || Ee.form !== e.form)) {
            var He = Km(Ee);
            if (!He)
              throw new Error("ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.");
            qn(Ee), si(Ee, He);
          }
        }
      }
    }
    function Fi(e, t, m) {
      // Focused number inputs synchronize on blur. See ChangeEventPlugin.js
      (t !== "number" || Rn(e.ownerDocument) !== e) && (m == null ? e.defaultValue = Pn(e._wrapperState.initialValue) : e.defaultValue !== Pn(m) && (e.defaultValue = Pn(m)));
    }
    var sl = !1, Ta = !1, oo = !1;
    function mi(e, t) {
      t.value == null && (typeof t.children == "object" && t.children !== null ? s.Children.forEach(t.children, function(m) {
        m != null && (typeof m == "string" || typeof m == "number" || Ta || (Ta = !0, M("Cannot infer the option value of complex children. Pass a `value` prop or use a plain string as children to <option>.")));
      }) : t.dangerouslySetInnerHTML != null && (oo || (oo = !0, M("Pass a `value` prop if you set dangerouslyInnerHTML so React knows which value should be selected.")))), t.selected != null && !sl && (M("Use the `defaultValue` or `value` props on <select> instead of setting `selected` on <option>."), sl = !0);
    }
    function wi(e, t) {
      t.value != null && e.setAttribute("value", Pn(sa(t.value)));
    }
    var ta = Array.isArray;
    function Zn(e) {
      return ta(e);
    }
    var ji;
    ji = !1;
    function ul() {
      var e = $r();
      return e ? `

Check the render method of \`` + e + "`." : "";
    }
    var Pl = ["value", "defaultValue"];
    function Yu(e) {
      {
        rn("select", e);
        for (var t = 0; t < Pl.length; t++) {
          var m = Pl[t];
          if (e[m] != null) {
            var N = Zn(e[m]);
            e.multiple && !N ? M("The `%s` prop supplied to <select> must be an array if `multiple` is true.%s", m, ul()) : !e.multiple && N && M("The `%s` prop supplied to <select> must be a scalar value if `multiple` is false.%s", m, ul());
          }
        }
      }
    }
    function Si(e, t, m, N) {
      var V = e.options;
      if (t) {
        for (var de = m, Ee = {}, He = 0; He < de.length; He++)
          Ee["$" + de[He]] = !0;
        for (var $e = 0; $e < V.length; $e++) {
          var pt = Ee.hasOwnProperty("$" + V[$e].value);
          V[$e].selected !== pt && (V[$e].selected = pt), pt && N && (V[$e].defaultSelected = !0);
        }
      } else {
        for (var At = Pn(sa(m)), rr = null, er = 0; er < V.length; er++) {
          if (V[er].value === At) {
            V[er].selected = !0, N && (V[er].defaultSelected = !0);
            return;
          }
          rr === null && !V[er].disabled && (rr = V[er]);
        }
        rr !== null && (rr.selected = !0);
      }
    }
    function Fl(e, t) {
      return lr({}, t, {
        value: void 0
      });
    }
    function Ms(e, t) {
      var m = e;
      Yu(t), m._wrapperState = {
        wasMultiple: !!t.multiple
      }, t.value !== void 0 && t.defaultValue !== void 0 && !ji && (M("Select elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled select element and remove one of these props. More info: https://reactjs.org/link/controlled-components"), ji = !0);
    }
    function Es(e, t) {
      var m = e;
      m.multiple = !!t.multiple;
      var N = t.value;
      N != null ? Si(m, !!t.multiple, N, !1) : t.defaultValue != null && Si(m, !!t.multiple, t.defaultValue, !0);
    }
    function ts(e, t) {
      var m = e, N = m._wrapperState.wasMultiple;
      m._wrapperState.wasMultiple = !!t.multiple;
      var V = t.value;
      V != null ? Si(m, !!t.multiple, V, !1) : N !== !!t.multiple && (t.defaultValue != null ? Si(m, !!t.multiple, t.defaultValue, !0) : Si(m, !!t.multiple, t.multiple ? [] : "", !1));
    }
    function rs(e, t) {
      var m = e, N = t.value;
      N != null && Si(m, !!t.multiple, N, !1);
    }
    var Uf = !1;
    function Xu(e, t) {
      var m = e;
      if (t.dangerouslySetInnerHTML != null)
        throw new Error("`dangerouslySetInnerHTML` does not make sense on <textarea>.");
      var N = lr({}, t, {
        value: void 0,
        defaultValue: void 0,
        children: Pn(m._wrapperState.initialValue)
      });
      return N;
    }
    function sv(e, t) {
      var m = e;
      rn("textarea", t), t.value !== void 0 && t.defaultValue !== void 0 && !Uf && (M("%s contains a textarea with both value and defaultValue props. Textarea elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled textarea and remove one of these props. More info: https://reactjs.org/link/controlled-components", $r() || "A component"), Uf = !0);
      var N = t.value;
      if (N == null) {
        var V = t.children, de = t.defaultValue;
        if (V != null) {
          M("Use the `defaultValue` or `value` props instead of setting children on <textarea>.");
          {
            if (de != null)
              throw new Error("If you supply `defaultValue` on a <textarea>, do not pass children.");
            if (Zn(V)) {
              if (V.length > 1)
                throw new Error("<textarea> can only have at most one child.");
              V = V[0];
            }
            de = V;
          }
        }
        de == null && (de = ""), N = de;
      }
      m._wrapperState = {
        initialValue: sa(N)
      };
    }
    function ju(e, t) {
      var m = e, N = sa(t.value), V = sa(t.defaultValue);
      if (N != null) {
        var de = Pn(N);
        de !== m.value && (m.value = de), t.defaultValue == null && m.defaultValue !== de && (m.defaultValue = de);
      }
      V != null && (m.defaultValue = Pn(V));
    }
    function uv(e, t) {
      var m = e, N = m.textContent;
      N === m._wrapperState.initialValue && N !== "" && N !== null && (m.value = N);
    }
    function nd(e, t) {
      ju(e, t);
    }
    var zl = "http://www.w3.org/1999/xhtml", fv = "http://www.w3.org/1998/Math/MathML", Ds = "http://www.w3.org/2000/svg";
    function Wf(e) {
      switch (e) {
        case "svg":
          return Ds;
        case "math":
          return fv;
        default:
          return zl;
      }
    }
    function Zu(e, t) {
      return e == null || e === zl ? Wf(t) : e === Ds && t === "foreignObject" ? zl : e;
    }
    var cv = function(e) {
      return typeof MSApp < "u" && MSApp.execUnsafeLocalFunction ? function(t, m, N, V) {
        MSApp.execUnsafeLocalFunction(function() {
          return e(t, m, N, V);
        });
      } : e;
    }, Fo, ad = cv(function(e, t) {
      if (e.namespaceURI === Ds && !("innerHTML" in e)) {
        Fo = Fo || document.createElement("div"), Fo.innerHTML = "<svg>" + t.valueOf().toString() + "</svg>";
        for (var m = Fo.firstChild; e.firstChild; )
          e.removeChild(e.firstChild);
        for (; m.firstChild; )
          e.appendChild(m.firstChild);
        return;
      }
      e.innerHTML = t;
    }), zi = 1, Qo = 3, La = 8, lo = 9, ns = 11, Yf = function(e, t) {
      if (t) {
        var m = e.firstChild;
        if (m && m === e.lastChild && m.nodeType === Qo) {
          m.nodeValue = t;
          return;
        }
      }
      e.textContent = t;
    }, dv = {
      animation: ["animationDelay", "animationDirection", "animationDuration", "animationFillMode", "animationIterationCount", "animationName", "animationPlayState", "animationTimingFunction"],
      background: ["backgroundAttachment", "backgroundClip", "backgroundColor", "backgroundImage", "backgroundOrigin", "backgroundPositionX", "backgroundPositionY", "backgroundRepeat", "backgroundSize"],
      backgroundPosition: ["backgroundPositionX", "backgroundPositionY"],
      border: ["borderBottomColor", "borderBottomStyle", "borderBottomWidth", "borderImageOutset", "borderImageRepeat", "borderImageSlice", "borderImageSource", "borderImageWidth", "borderLeftColor", "borderLeftStyle", "borderLeftWidth", "borderRightColor", "borderRightStyle", "borderRightWidth", "borderTopColor", "borderTopStyle", "borderTopWidth"],
      borderBlockEnd: ["borderBlockEndColor", "borderBlockEndStyle", "borderBlockEndWidth"],
      borderBlockStart: ["borderBlockStartColor", "borderBlockStartStyle", "borderBlockStartWidth"],
      borderBottom: ["borderBottomColor", "borderBottomStyle", "borderBottomWidth"],
      borderColor: ["borderBottomColor", "borderLeftColor", "borderRightColor", "borderTopColor"],
      borderImage: ["borderImageOutset", "borderImageRepeat", "borderImageSlice", "borderImageSource", "borderImageWidth"],
      borderInlineEnd: ["borderInlineEndColor", "borderInlineEndStyle", "borderInlineEndWidth"],
      borderInlineStart: ["borderInlineStartColor", "borderInlineStartStyle", "borderInlineStartWidth"],
      borderLeft: ["borderLeftColor", "borderLeftStyle", "borderLeftWidth"],
      borderRadius: ["borderBottomLeftRadius", "borderBottomRightRadius", "borderTopLeftRadius", "borderTopRightRadius"],
      borderRight: ["borderRightColor", "borderRightStyle", "borderRightWidth"],
      borderStyle: ["borderBottomStyle", "borderLeftStyle", "borderRightStyle", "borderTopStyle"],
      borderTop: ["borderTopColor", "borderTopStyle", "borderTopWidth"],
      borderWidth: ["borderBottomWidth", "borderLeftWidth", "borderRightWidth", "borderTopWidth"],
      columnRule: ["columnRuleColor", "columnRuleStyle", "columnRuleWidth"],
      columns: ["columnCount", "columnWidth"],
      flex: ["flexBasis", "flexGrow", "flexShrink"],
      flexFlow: ["flexDirection", "flexWrap"],
      font: ["fontFamily", "fontFeatureSettings", "fontKerning", "fontLanguageOverride", "fontSize", "fontSizeAdjust", "fontStretch", "fontStyle", "fontVariant", "fontVariantAlternates", "fontVariantCaps", "fontVariantEastAsian", "fontVariantLigatures", "fontVariantNumeric", "fontVariantPosition", "fontWeight", "lineHeight"],
      fontVariant: ["fontVariantAlternates", "fontVariantCaps", "fontVariantEastAsian", "fontVariantLigatures", "fontVariantNumeric", "fontVariantPosition"],
      gap: ["columnGap", "rowGap"],
      grid: ["gridAutoColumns", "gridAutoFlow", "gridAutoRows", "gridTemplateAreas", "gridTemplateColumns", "gridTemplateRows"],
      gridArea: ["gridColumnEnd", "gridColumnStart", "gridRowEnd", "gridRowStart"],
      gridColumn: ["gridColumnEnd", "gridColumnStart"],
      gridColumnGap: ["columnGap"],
      gridGap: ["columnGap", "rowGap"],
      gridRow: ["gridRowEnd", "gridRowStart"],
      gridRowGap: ["rowGap"],
      gridTemplate: ["gridTemplateAreas", "gridTemplateColumns", "gridTemplateRows"],
      listStyle: ["listStyleImage", "listStylePosition", "listStyleType"],
      margin: ["marginBottom", "marginLeft", "marginRight", "marginTop"],
      marker: ["markerEnd", "markerMid", "markerStart"],
      mask: ["maskClip", "maskComposite", "maskImage", "maskMode", "maskOrigin", "maskPositionX", "maskPositionY", "maskRepeat", "maskSize"],
      maskPosition: ["maskPositionX", "maskPositionY"],
      outline: ["outlineColor", "outlineStyle", "outlineWidth"],
      overflow: ["overflowX", "overflowY"],
      padding: ["paddingBottom", "paddingLeft", "paddingRight", "paddingTop"],
      placeContent: ["alignContent", "justifyContent"],
      placeItems: ["alignItems", "justifyItems"],
      placeSelf: ["alignSelf", "justifySelf"],
      textDecoration: ["textDecorationColor", "textDecorationLine", "textDecorationStyle"],
      textEmphasis: ["textEmphasisColor", "textEmphasisStyle"],
      transition: ["transitionDelay", "transitionDuration", "transitionProperty", "transitionTimingFunction"],
      wordWrap: ["overflowWrap"]
    }, iu = {
      animationIterationCount: !0,
      aspectRatio: !0,
      borderImageOutset: !0,
      borderImageSlice: !0,
      borderImageWidth: !0,
      boxFlex: !0,
      boxFlexGroup: !0,
      boxOrdinalGroup: !0,
      columnCount: !0,
      columns: !0,
      flex: !0,
      flexGrow: !0,
      flexPositive: !0,
      flexShrink: !0,
      flexNegative: !0,
      flexOrder: !0,
      gridArea: !0,
      gridRow: !0,
      gridRowEnd: !0,
      gridRowSpan: !0,
      gridRowStart: !0,
      gridColumn: !0,
      gridColumnEnd: !0,
      gridColumnSpan: !0,
      gridColumnStart: !0,
      fontWeight: !0,
      lineClamp: !0,
      lineHeight: !0,
      opacity: !0,
      order: !0,
      orphans: !0,
      tabSize: !0,
      widows: !0,
      zIndex: !0,
      zoom: !0,
      // SVG-related properties
      fillOpacity: !0,
      floodOpacity: !0,
      stopOpacity: !0,
      strokeDasharray: !0,
      strokeDashoffset: !0,
      strokeMiterlimit: !0,
      strokeOpacity: !0,
      strokeWidth: !0
    };
    function id(e, t) {
      return e + t.charAt(0).toUpperCase() + t.substring(1);
    }
    var od = ["Webkit", "ms", "Moz", "O"];
    Object.keys(iu).forEach(function(e) {
      od.forEach(function(t) {
        iu[id(t, e)] = iu[e];
      });
    });
    function Xf(e, t, m) {
      var N = t == null || typeof t == "boolean" || t === "";
      return N ? "" : !m && typeof t == "number" && t !== 0 && !(iu.hasOwnProperty(e) && iu[e]) ? t + "px" : (G(t, e), ("" + t).trim());
    }
    var ou = /([A-Z])/g, ip = /^ms-/;
    function op(e) {
      return e.replace(ou, "-$1").toLowerCase().replace(ip, "-ms-");
    }
    var vv = function() {
    };
    {
      var hv = /^(?:webkit|moz|o)[A-Z]/, pv = /^-ms-/, $u = /-(.)/g, lu = /;\s*$/, su = {}, uu = {}, mv = !1, ld = !1, jf = function(e) {
        return e.replace($u, function(t, m) {
          return m.toUpperCase();
        });
      }, Zf = function(e) {
        su.hasOwnProperty(e) && su[e] || (su[e] = !0, M(
          "Unsupported style property %s. Did you mean %s?",
          e,
          // As Andi Smith suggests
          // (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix
          // is converted to lowercase `ms`.
          jf(e.replace(pv, "ms-"))
        ));
      }, sd = function(e) {
        su.hasOwnProperty(e) && su[e] || (su[e] = !0, M("Unsupported vendor-prefixed style property %s. Did you mean %s?", e, e.charAt(0).toUpperCase() + e.slice(1)));
      }, ud = function(e, t) {
        uu.hasOwnProperty(t) && uu[t] || (uu[t] = !0, M(`Style property values shouldn't contain a semicolon. Try "%s: %s" instead.`, e, t.replace(lu, "")));
      }, yv = function(e, t) {
        mv || (mv = !0, M("`NaN` is an invalid value for the `%s` css style property.", e));
      }, lp = function(e, t) {
        ld || (ld = !0, M("`Infinity` is an invalid value for the `%s` css style property.", e));
      };
      vv = function(e, t) {
        e.indexOf("-") > -1 ? Zf(e) : hv.test(e) ? sd(e) : lu.test(t) && ud(e, t), typeof t == "number" && (isNaN(t) ? yv(e, t) : isFinite(t) || lp(e, t));
      };
    }
    var fu = vv;
    function sp(e) {
      {
        var t = "", m = "";
        for (var N in e)
          if (e.hasOwnProperty(N)) {
            var V = e[N];
            if (V != null) {
              var de = N.indexOf("--") === 0;
              t += m + (de ? N : op(N)) + ":", t += Xf(N, V, de), m = ";";
            }
          }
        return t || null;
      }
    }
    function gv(e, t) {
      var m = e.style;
      for (var N in t)
        if (t.hasOwnProperty(N)) {
          var V = N.indexOf("--") === 0;
          V || fu(N, t[N]);
          var de = Xf(N, t[N], V);
          N === "float" && (N = "cssFloat"), V ? m.setProperty(N, de) : m[N] = de;
        }
    }
    function up(e) {
      return e == null || typeof e == "boolean" || e === "";
    }
    function zo(e) {
      var t = {};
      for (var m in e)
        for (var N = dv[m] || [m], V = 0; V < N.length; V++)
          t[N[V]] = m;
      return t;
    }
    function cu(e, t) {
      {
        if (!t)
          return;
        var m = zo(e), N = zo(t), V = {};
        for (var de in m) {
          var Ee = m[de], He = N[de];
          if (He && Ee !== He) {
            var $e = Ee + "," + He;
            if (V[$e])
              continue;
            V[$e] = !0, M("%s a style property during rerender (%s) when a conflicting property is set (%s) can lead to styling bugs. To avoid this, don't mix shorthand and non-shorthand properties for the same value; instead, replace the shorthand with separate values.", up(e[Ee]) ? "Removing" : "Updating", Ee, He);
          }
        }
      }
    }
    var bv = {
      area: !0,
      base: !0,
      br: !0,
      col: !0,
      embed: !0,
      hr: !0,
      img: !0,
      input: !0,
      keygen: !0,
      link: !0,
      meta: !0,
      param: !0,
      source: !0,
      track: !0,
      wbr: !0
      // NOTE: menuitem's close tag should be omitted, but that causes problems.
    }, xv = lr({
      menuitem: !0
    }, bv), Tv = "__html";
    function Ju(e, t) {
      if (t) {
        if (xv[e] && (t.children != null || t.dangerouslySetInnerHTML != null))
          throw new Error(e + " is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.");
        if (t.dangerouslySetInnerHTML != null) {
          if (t.children != null)
            throw new Error("Can only set one of `children` or `props.dangerouslySetInnerHTML`.");
          if (typeof t.dangerouslySetInnerHTML != "object" || !(Tv in t.dangerouslySetInnerHTML))
            throw new Error("`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://reactjs.org/link/dangerously-set-inner-html for more information.");
        }
        if (!t.suppressContentEditableWarning && t.contentEditable && t.children != null && M("A component is `contentEditable` and contains `children` managed by React. It is now your responsibility to guarantee that none of those nodes are unexpectedly modified or duplicated. This is probably not intentional."), t.style != null && typeof t.style != "object")
          throw new Error("The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX.");
      }
    }
    function _l(e, t) {
      if (e.indexOf("-") === -1)
        return typeof t.is == "string";
      switch (e) {
        case "annotation-xml":
        case "color-profile":
        case "font-face":
        case "font-face-src":
        case "font-face-uri":
        case "font-face-format":
        case "font-face-name":
        case "missing-glyph":
          return !1;
        default:
          return !0;
      }
    }
    var $f = {
      // HTML
      accept: "accept",
      acceptcharset: "acceptCharset",
      "accept-charset": "acceptCharset",
      accesskey: "accessKey",
      action: "action",
      allowfullscreen: "allowFullScreen",
      alt: "alt",
      as: "as",
      async: "async",
      autocapitalize: "autoCapitalize",
      autocomplete: "autoComplete",
      autocorrect: "autoCorrect",
      autofocus: "autoFocus",
      autoplay: "autoPlay",
      autosave: "autoSave",
      capture: "capture",
      cellpadding: "cellPadding",
      cellspacing: "cellSpacing",
      challenge: "challenge",
      charset: "charSet",
      checked: "checked",
      children: "children",
      cite: "cite",
      class: "className",
      classid: "classID",
      classname: "className",
      cols: "cols",
      colspan: "colSpan",
      content: "content",
      contenteditable: "contentEditable",
      contextmenu: "contextMenu",
      controls: "controls",
      controlslist: "controlsList",
      coords: "coords",
      crossorigin: "crossOrigin",
      dangerouslysetinnerhtml: "dangerouslySetInnerHTML",
      data: "data",
      datetime: "dateTime",
      default: "default",
      defaultchecked: "defaultChecked",
      defaultvalue: "defaultValue",
      defer: "defer",
      dir: "dir",
      disabled: "disabled",
      disablepictureinpicture: "disablePictureInPicture",
      disableremoteplayback: "disableRemotePlayback",
      download: "download",
      draggable: "draggable",
      enctype: "encType",
      enterkeyhint: "enterKeyHint",
      for: "htmlFor",
      form: "form",
      formmethod: "formMethod",
      formaction: "formAction",
      formenctype: "formEncType",
      formnovalidate: "formNoValidate",
      formtarget: "formTarget",
      frameborder: "frameBorder",
      headers: "headers",
      height: "height",
      hidden: "hidden",
      high: "high",
      href: "href",
      hreflang: "hrefLang",
      htmlfor: "htmlFor",
      httpequiv: "httpEquiv",
      "http-equiv": "httpEquiv",
      icon: "icon",
      id: "id",
      imagesizes: "imageSizes",
      imagesrcset: "imageSrcSet",
      innerhtml: "innerHTML",
      inputmode: "inputMode",
      integrity: "integrity",
      is: "is",
      itemid: "itemID",
      itemprop: "itemProp",
      itemref: "itemRef",
      itemscope: "itemScope",
      itemtype: "itemType",
      keyparams: "keyParams",
      keytype: "keyType",
      kind: "kind",
      label: "label",
      lang: "lang",
      list: "list",
      loop: "loop",
      low: "low",
      manifest: "manifest",
      marginwidth: "marginWidth",
      marginheight: "marginHeight",
      max: "max",
      maxlength: "maxLength",
      media: "media",
      mediagroup: "mediaGroup",
      method: "method",
      min: "min",
      minlength: "minLength",
      multiple: "multiple",
      muted: "muted",
      name: "name",
      nomodule: "noModule",
      nonce: "nonce",
      novalidate: "noValidate",
      open: "open",
      optimum: "optimum",
      pattern: "pattern",
      placeholder: "placeholder",
      playsinline: "playsInline",
      poster: "poster",
      preload: "preload",
      profile: "profile",
      radiogroup: "radioGroup",
      readonly: "readOnly",
      referrerpolicy: "referrerPolicy",
      rel: "rel",
      required: "required",
      reversed: "reversed",
      role: "role",
      rows: "rows",
      rowspan: "rowSpan",
      sandbox: "sandbox",
      scope: "scope",
      scoped: "scoped",
      scrolling: "scrolling",
      seamless: "seamless",
      selected: "selected",
      shape: "shape",
      size: "size",
      sizes: "sizes",
      span: "span",
      spellcheck: "spellCheck",
      src: "src",
      srcdoc: "srcDoc",
      srclang: "srcLang",
      srcset: "srcSet",
      start: "start",
      step: "step",
      style: "style",
      summary: "summary",
      tabindex: "tabIndex",
      target: "target",
      title: "title",
      type: "type",
      usemap: "useMap",
      value: "value",
      width: "width",
      wmode: "wmode",
      wrap: "wrap",
      // SVG
      about: "about",
      accentheight: "accentHeight",
      "accent-height": "accentHeight",
      accumulate: "accumulate",
      additive: "additive",
      alignmentbaseline: "alignmentBaseline",
      "alignment-baseline": "alignmentBaseline",
      allowreorder: "allowReorder",
      alphabetic: "alphabetic",
      amplitude: "amplitude",
      arabicform: "arabicForm",
      "arabic-form": "arabicForm",
      ascent: "ascent",
      attributename: "attributeName",
      attributetype: "attributeType",
      autoreverse: "autoReverse",
      azimuth: "azimuth",
      basefrequency: "baseFrequency",
      baselineshift: "baselineShift",
      "baseline-shift": "baselineShift",
      baseprofile: "baseProfile",
      bbox: "bbox",
      begin: "begin",
      bias: "bias",
      by: "by",
      calcmode: "calcMode",
      capheight: "capHeight",
      "cap-height": "capHeight",
      clip: "clip",
      clippath: "clipPath",
      "clip-path": "clipPath",
      clippathunits: "clipPathUnits",
      cliprule: "clipRule",
      "clip-rule": "clipRule",
      color: "color",
      colorinterpolation: "colorInterpolation",
      "color-interpolation": "colorInterpolation",
      colorinterpolationfilters: "colorInterpolationFilters",
      "color-interpolation-filters": "colorInterpolationFilters",
      colorprofile: "colorProfile",
      "color-profile": "colorProfile",
      colorrendering: "colorRendering",
      "color-rendering": "colorRendering",
      contentscripttype: "contentScriptType",
      contentstyletype: "contentStyleType",
      cursor: "cursor",
      cx: "cx",
      cy: "cy",
      d: "d",
      datatype: "datatype",
      decelerate: "decelerate",
      descent: "descent",
      diffuseconstant: "diffuseConstant",
      direction: "direction",
      display: "display",
      divisor: "divisor",
      dominantbaseline: "dominantBaseline",
      "dominant-baseline": "dominantBaseline",
      dur: "dur",
      dx: "dx",
      dy: "dy",
      edgemode: "edgeMode",
      elevation: "elevation",
      enablebackground: "enableBackground",
      "enable-background": "enableBackground",
      end: "end",
      exponent: "exponent",
      externalresourcesrequired: "externalResourcesRequired",
      fill: "fill",
      fillopacity: "fillOpacity",
      "fill-opacity": "fillOpacity",
      fillrule: "fillRule",
      "fill-rule": "fillRule",
      filter: "filter",
      filterres: "filterRes",
      filterunits: "filterUnits",
      floodopacity: "floodOpacity",
      "flood-opacity": "floodOpacity",
      floodcolor: "floodColor",
      "flood-color": "floodColor",
      focusable: "focusable",
      fontfamily: "fontFamily",
      "font-family": "fontFamily",
      fontsize: "fontSize",
      "font-size": "fontSize",
      fontsizeadjust: "fontSizeAdjust",
      "font-size-adjust": "fontSizeAdjust",
      fontstretch: "fontStretch",
      "font-stretch": "fontStretch",
      fontstyle: "fontStyle",
      "font-style": "fontStyle",
      fontvariant: "fontVariant",
      "font-variant": "fontVariant",
      fontweight: "fontWeight",
      "font-weight": "fontWeight",
      format: "format",
      from: "from",
      fx: "fx",
      fy: "fy",
      g1: "g1",
      g2: "g2",
      glyphname: "glyphName",
      "glyph-name": "glyphName",
      glyphorientationhorizontal: "glyphOrientationHorizontal",
      "glyph-orientation-horizontal": "glyphOrientationHorizontal",
      glyphorientationvertical: "glyphOrientationVertical",
      "glyph-orientation-vertical": "glyphOrientationVertical",
      glyphref: "glyphRef",
      gradienttransform: "gradientTransform",
      gradientunits: "gradientUnits",
      hanging: "hanging",
      horizadvx: "horizAdvX",
      "horiz-adv-x": "horizAdvX",
      horizoriginx: "horizOriginX",
      "horiz-origin-x": "horizOriginX",
      ideographic: "ideographic",
      imagerendering: "imageRendering",
      "image-rendering": "imageRendering",
      in2: "in2",
      in: "in",
      inlist: "inlist",
      intercept: "intercept",
      k1: "k1",
      k2: "k2",
      k3: "k3",
      k4: "k4",
      k: "k",
      kernelmatrix: "kernelMatrix",
      kernelunitlength: "kernelUnitLength",
      kerning: "kerning",
      keypoints: "keyPoints",
      keysplines: "keySplines",
      keytimes: "keyTimes",
      lengthadjust: "lengthAdjust",
      letterspacing: "letterSpacing",
      "letter-spacing": "letterSpacing",
      lightingcolor: "lightingColor",
      "lighting-color": "lightingColor",
      limitingconeangle: "limitingConeAngle",
      local: "local",
      markerend: "markerEnd",
      "marker-end": "markerEnd",
      markerheight: "markerHeight",
      markermid: "markerMid",
      "marker-mid": "markerMid",
      markerstart: "markerStart",
      "marker-start": "markerStart",
      markerunits: "markerUnits",
      markerwidth: "markerWidth",
      mask: "mask",
      maskcontentunits: "maskContentUnits",
      maskunits: "maskUnits",
      mathematical: "mathematical",
      mode: "mode",
      numoctaves: "numOctaves",
      offset: "offset",
      opacity: "opacity",
      operator: "operator",
      order: "order",
      orient: "orient",
      orientation: "orientation",
      origin: "origin",
      overflow: "overflow",
      overlineposition: "overlinePosition",
      "overline-position": "overlinePosition",
      overlinethickness: "overlineThickness",
      "overline-thickness": "overlineThickness",
      paintorder: "paintOrder",
      "paint-order": "paintOrder",
      panose1: "panose1",
      "panose-1": "panose1",
      pathlength: "pathLength",
      patterncontentunits: "patternContentUnits",
      patterntransform: "patternTransform",
      patternunits: "patternUnits",
      pointerevents: "pointerEvents",
      "pointer-events": "pointerEvents",
      points: "points",
      pointsatx: "pointsAtX",
      pointsaty: "pointsAtY",
      pointsatz: "pointsAtZ",
      prefix: "prefix",
      preservealpha: "preserveAlpha",
      preserveaspectratio: "preserveAspectRatio",
      primitiveunits: "primitiveUnits",
      property: "property",
      r: "r",
      radius: "radius",
      refx: "refX",
      refy: "refY",
      renderingintent: "renderingIntent",
      "rendering-intent": "renderingIntent",
      repeatcount: "repeatCount",
      repeatdur: "repeatDur",
      requiredextensions: "requiredExtensions",
      requiredfeatures: "requiredFeatures",
      resource: "resource",
      restart: "restart",
      result: "result",
      results: "results",
      rotate: "rotate",
      rx: "rx",
      ry: "ry",
      scale: "scale",
      security: "security",
      seed: "seed",
      shaperendering: "shapeRendering",
      "shape-rendering": "shapeRendering",
      slope: "slope",
      spacing: "spacing",
      specularconstant: "specularConstant",
      specularexponent: "specularExponent",
      speed: "speed",
      spreadmethod: "spreadMethod",
      startoffset: "startOffset",
      stddeviation: "stdDeviation",
      stemh: "stemh",
      stemv: "stemv",
      stitchtiles: "stitchTiles",
      stopcolor: "stopColor",
      "stop-color": "stopColor",
      stopopacity: "stopOpacity",
      "stop-opacity": "stopOpacity",
      strikethroughposition: "strikethroughPosition",
      "strikethrough-position": "strikethroughPosition",
      strikethroughthickness: "strikethroughThickness",
      "strikethrough-thickness": "strikethroughThickness",
      string: "string",
      stroke: "stroke",
      strokedasharray: "strokeDasharray",
      "stroke-dasharray": "strokeDasharray",
      strokedashoffset: "strokeDashoffset",
      "stroke-dashoffset": "strokeDashoffset",
      strokelinecap: "strokeLinecap",
      "stroke-linecap": "strokeLinecap",
      strokelinejoin: "strokeLinejoin",
      "stroke-linejoin": "strokeLinejoin",
      strokemiterlimit: "strokeMiterlimit",
      "stroke-miterlimit": "strokeMiterlimit",
      strokewidth: "strokeWidth",
      "stroke-width": "strokeWidth",
      strokeopacity: "strokeOpacity",
      "stroke-opacity": "strokeOpacity",
      suppresscontenteditablewarning: "suppressContentEditableWarning",
      suppresshydrationwarning: "suppressHydrationWarning",
      surfacescale: "surfaceScale",
      systemlanguage: "systemLanguage",
      tablevalues: "tableValues",
      targetx: "targetX",
      targety: "targetY",
      textanchor: "textAnchor",
      "text-anchor": "textAnchor",
      textdecoration: "textDecoration",
      "text-decoration": "textDecoration",
      textlength: "textLength",
      textrendering: "textRendering",
      "text-rendering": "textRendering",
      to: "to",
      transform: "transform",
      typeof: "typeof",
      u1: "u1",
      u2: "u2",
      underlineposition: "underlinePosition",
      "underline-position": "underlinePosition",
      underlinethickness: "underlineThickness",
      "underline-thickness": "underlineThickness",
      unicode: "unicode",
      unicodebidi: "unicodeBidi",
      "unicode-bidi": "unicodeBidi",
      unicoderange: "unicodeRange",
      "unicode-range": "unicodeRange",
      unitsperem: "unitsPerEm",
      "units-per-em": "unitsPerEm",
      unselectable: "unselectable",
      valphabetic: "vAlphabetic",
      "v-alphabetic": "vAlphabetic",
      values: "values",
      vectoreffect: "vectorEffect",
      "vector-effect": "vectorEffect",
      version: "version",
      vertadvy: "vertAdvY",
      "vert-adv-y": "vertAdvY",
      vertoriginx: "vertOriginX",
      "vert-origin-x": "vertOriginX",
      vertoriginy: "vertOriginY",
      "vert-origin-y": "vertOriginY",
      vhanging: "vHanging",
      "v-hanging": "vHanging",
      videographic: "vIdeographic",
      "v-ideographic": "vIdeographic",
      viewbox: "viewBox",
      viewtarget: "viewTarget",
      visibility: "visibility",
      vmathematical: "vMathematical",
      "v-mathematical": "vMathematical",
      vocab: "vocab",
      widths: "widths",
      wordspacing: "wordSpacing",
      "word-spacing": "wordSpacing",
      writingmode: "writingMode",
      "writing-mode": "writingMode",
      x1: "x1",
      x2: "x2",
      x: "x",
      xchannelselector: "xChannelSelector",
      xheight: "xHeight",
      "x-height": "xHeight",
      xlinkactuate: "xlinkActuate",
      "xlink:actuate": "xlinkActuate",
      xlinkarcrole: "xlinkArcrole",
      "xlink:arcrole": "xlinkArcrole",
      xlinkhref: "xlinkHref",
      "xlink:href": "xlinkHref",
      xlinkrole: "xlinkRole",
      "xlink:role": "xlinkRole",
      xlinkshow: "xlinkShow",
      "xlink:show": "xlinkShow",
      xlinktitle: "xlinkTitle",
      "xlink:title": "xlinkTitle",
      xlinktype: "xlinkType",
      "xlink:type": "xlinkType",
      xmlbase: "xmlBase",
      "xml:base": "xmlBase",
      xmllang: "xmlLang",
      "xml:lang": "xmlLang",
      xmlns: "xmlns",
      "xml:space": "xmlSpace",
      xmlnsxlink: "xmlnsXlink",
      "xmlns:xlink": "xmlnsXlink",
      xmlspace: "xmlSpace",
      y1: "y1",
      y2: "y2",
      y: "y",
      ychannelselector: "yChannelSelector",
      z: "z",
      zoomandpan: "zoomAndPan"
    }, Cv = {
      "aria-current": 0,
      // state
      "aria-description": 0,
      "aria-details": 0,
      "aria-disabled": 0,
      // state
      "aria-hidden": 0,
      // state
      "aria-invalid": 0,
      // state
      "aria-keyshortcuts": 0,
      "aria-label": 0,
      "aria-roledescription": 0,
      // Widget Attributes
      "aria-autocomplete": 0,
      "aria-checked": 0,
      "aria-expanded": 0,
      "aria-haspopup": 0,
      "aria-level": 0,
      "aria-modal": 0,
      "aria-multiline": 0,
      "aria-multiselectable": 0,
      "aria-orientation": 0,
      "aria-placeholder": 0,
      "aria-pressed": 0,
      "aria-readonly": 0,
      "aria-required": 0,
      "aria-selected": 0,
      "aria-sort": 0,
      "aria-valuemax": 0,
      "aria-valuemin": 0,
      "aria-valuenow": 0,
      "aria-valuetext": 0,
      // Live Region Attributes
      "aria-atomic": 0,
      "aria-busy": 0,
      "aria-live": 0,
      "aria-relevant": 0,
      // Drag-and-Drop Attributes
      "aria-dropeffect": 0,
      "aria-grabbed": 0,
      // Relationship Attributes
      "aria-activedescendant": 0,
      "aria-colcount": 0,
      "aria-colindex": 0,
      "aria-colspan": 0,
      "aria-controls": 0,
      "aria-describedby": 0,
      "aria-errormessage": 0,
      "aria-flowto": 0,
      "aria-labelledby": 0,
      "aria-owns": 0,
      "aria-posinset": 0,
      "aria-rowcount": 0,
      "aria-rowindex": 0,
      "aria-rowspan": 0,
      "aria-setsize": 0
    }, Ko = {}, fd = new RegExp("^(aria)-[" + et + "]*$"), du = new RegExp("^(aria)[A-Z][" + et + "]*$");
    function cd(e, t) {
      {
        if (Be.call(Ko, t) && Ko[t])
          return !0;
        if (du.test(t)) {
          var m = "aria-" + t.slice(4).toLowerCase(), N = Cv.hasOwnProperty(m) ? m : null;
          if (N == null)
            return M("Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.", t), Ko[t] = !0, !0;
          if (t !== N)
            return M("Invalid ARIA attribute `%s`. Did you mean `%s`?", t, N), Ko[t] = !0, !0;
        }
        if (fd.test(t)) {
          var V = t.toLowerCase(), de = Cv.hasOwnProperty(V) ? V : null;
          if (de == null)
            return Ko[t] = !0, !1;
          if (t !== de)
            return M("Unknown ARIA attribute `%s`. Did you mean `%s`?", t, de), Ko[t] = !0, !0;
        }
      }
      return !0;
    }
    function Av(e, t) {
      {
        var m = [];
        for (var N in t) {
          var V = cd(e, N);
          V || m.push(N);
        }
        var de = m.map(function(Ee) {
          return "`" + Ee + "`";
        }).join(", ");
        m.length === 1 ? M("Invalid aria prop %s on <%s> tag. For details, see https://reactjs.org/link/invalid-aria-props", de, e) : m.length > 1 && M("Invalid aria props %s on <%s> tag. For details, see https://reactjs.org/link/invalid-aria-props", de, e);
      }
    }
    function Jf(e, t) {
      _l(e, t) || Av(e, t);
    }
    var qo = !1;
    function Rs(e, t) {
      {
        if (e !== "input" && e !== "textarea" && e !== "select")
          return;
        t != null && t.value === null && !qo && (qo = !0, e === "select" && t.multiple ? M("`value` prop on `%s` should not be null. Consider using an empty array when `multiple` is set to `true` to clear the component or `undefined` for uncontrolled components.", e) : M("`value` prop on `%s` should not be null. Consider using an empty string to clear the component or `undefined` for uncontrolled components.", e));
      }
    }
    var _o = function() {
    };
    {
      var yi = {}, dd = /^on./, wv = /^on[^A-Z]/, Sv = new RegExp("^(aria)-[" + et + "]*$"), vd = new RegExp("^(aria)[A-Z][" + et + "]*$");
      _o = function(e, t, m, N) {
        if (Be.call(yi, t) && yi[t])
          return !0;
        var V = t.toLowerCase();
        if (V === "onfocusin" || V === "onfocusout")
          return M("React uses onFocus and onBlur instead of onFocusIn and onFocusOut. All React events are normalized to bubble, so onFocusIn and onFocusOut are not needed/supported by React."), yi[t] = !0, !0;
        if (N != null) {
          var de = N.registrationNameDependencies, Ee = N.possibleRegistrationNames;
          if (de.hasOwnProperty(t))
            return !0;
          var He = Ee.hasOwnProperty(V) ? Ee[V] : null;
          if (He != null)
            return M("Invalid event handler property `%s`. Did you mean `%s`?", t, He), yi[t] = !0, !0;
          if (dd.test(t))
            return M("Unknown event handler property `%s`. It will be ignored.", t), yi[t] = !0, !0;
        } else if (dd.test(t))
          return wv.test(t) && M("Invalid event handler property `%s`. React events use the camelCase naming convention, for example `onClick`.", t), yi[t] = !0, !0;
        if (Sv.test(t) || vd.test(t))
          return !0;
        if (V === "innerhtml")
          return M("Directly setting property `innerHTML` is not permitted. For more information, lookup documentation on `dangerouslySetInnerHTML`."), yi[t] = !0, !0;
        if (V === "aria")
          return M("The `aria` attribute is reserved for future use in React. Pass individual `aria-` attributes instead."), yi[t] = !0, !0;
        if (V === "is" && m !== null && m !== void 0 && typeof m != "string")
          return M("Received a `%s` for a string attribute `is`. If this is expected, cast the value to a string.", typeof m), yi[t] = !0, !0;
        if (typeof m == "number" && isNaN(m))
          return M("Received NaN for the `%s` attribute. If this is expected, cast the value to a string.", t), yi[t] = !0, !0;
        var $e = wt(t), pt = $e !== null && $e.type === j;
        if ($f.hasOwnProperty(V)) {
          var At = $f[V];
          if (At !== t)
            return M("Invalid DOM property `%s`. Did you mean `%s`?", t, At), yi[t] = !0, !0;
        } else if (!pt && t !== V)
          return M("React does not recognize the `%s` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `%s` instead. If you accidentally passed it from a parent component, remove it from the DOM element.", t, V), yi[t] = !0, !0;
        return typeof m == "boolean" && it(t, m, $e, !1) ? (m ? M('Received `%s` for a non-boolean attribute `%s`.\n\nIf you want to write it to the DOM, pass a string instead: %s="%s" or %s={value.toString()}.', m, t, t, m, t) : M('Received `%s` for a non-boolean attribute `%s`.\n\nIf you want to write it to the DOM, pass a string instead: %s="%s" or %s={value.toString()}.\n\nIf you used to conditionally omit it with %s={condition && value}, pass %s={condition ? value : undefined} instead.', m, t, t, m, t, t, t), yi[t] = !0, !0) : pt ? !0 : it(t, m, $e, !1) ? (yi[t] = !0, !1) : ((m === "false" || m === "true") && $e !== null && $e.type === we && (M("Received the string `%s` for the boolean attribute `%s`. %s Did you mean %s={%s}?", m, t, m === "false" ? "The browser will interpret it as a truthy value." : 'Although this works, it will not work as expected if you pass the string "false".', t, m), yi[t] = !0), !0);
      };
    }
    var Mv = function(e, t, m) {
      {
        var N = [];
        for (var V in t) {
          var de = _o(e, V, t[V], m);
          de || N.push(V);
        }
        var Ee = N.map(function(He) {
          return "`" + He + "`";
        }).join(", ");
        N.length === 1 ? M("Invalid value for prop %s on <%s> tag. Either remove it from the element, or pass a string or number value to keep it in the DOM. For details, see https://reactjs.org/link/attribute-behavior ", Ee, e) : N.length > 1 && M("Invalid values for props %s on <%s> tag. Either remove them from the element, or pass a string or number value to keep them in the DOM. For details, see https://reactjs.org/link/attribute-behavior ", Ee, e);
      }
    };
    function Ev(e, t, m) {
      _l(e, t) || Mv(e, t, m);
    }
    var Hl = 1, Qu = 2, Ls = 4, hd = Hl | Qu | Ls, ks = null;
    function Ku(e) {
      ks !== null && M("Expected currently replaying event to be null. This error is likely caused by a bug in React. Please file an issue."), ks = e;
    }
    function fp() {
      ks === null && M("Expected currently replaying event to not be null. This error is likely caused by a bug in React. Please file an issue."), ks = null;
    }
    function Dv(e) {
      return e === ks;
    }
    function Qf(e) {
      var t = e.target || e.srcElement || window;
      return t.correspondingUseElement && (t = t.correspondingUseElement), t.nodeType === Qo ? t.parentNode : t;
    }
    var Ca = null, as = null, Bl = null;
    function is(e) {
      var t = Oc(e);
      if (t) {
        if (typeof Ca != "function")
          throw new Error("setRestoreImplementation() needs to be called to handle a target for controlled events. This error is likely caused by a bug in React. Please file an issue.");
        var m = t.stateNode;
        if (m) {
          var N = Km(m);
          Ca(t.stateNode, t.type, N);
        }
      }
    }
    function pd(e) {
      Ca = e;
    }
    function qu(e) {
      as ? Bl ? Bl.push(e) : Bl = [e] : as = e;
    }
    function vu() {
      return as !== null || Bl !== null;
    }
    function ef() {
      if (as) {
        var e = as, t = Bl;
        if (as = null, Bl = null, is(e), t)
          for (var m = 0; m < t.length; m++)
            is(t[m]);
      }
    }
    var Is = function(e, t) {
      return e(t);
    }, Kf = function() {
    }, qf = !1;
    function Rv() {
      var e = vu();
      e && (Kf(), ef());
    }
    function tf(e, t, m) {
      if (qf)
        return e(t, m);
      qf = !0;
      try {
        return Is(e, t, m);
      } finally {
        qf = !1, Rv();
      }
    }
    function hu(e, t, m) {
      Is = e, Kf = m;
    }
    function ec(e) {
      return e === "button" || e === "input" || e === "select" || e === "textarea";
    }
    function md(e, t, m) {
      switch (e) {
        case "onClick":
        case "onClickCapture":
        case "onDoubleClick":
        case "onDoubleClickCapture":
        case "onMouseDown":
        case "onMouseDownCapture":
        case "onMouseMove":
        case "onMouseMoveCapture":
        case "onMouseUp":
        case "onMouseUpCapture":
        case "onMouseEnter":
          return !!(m.disabled && ec(t));
        default:
          return !1;
      }
    }
    function Ns(e, t) {
      var m = e.stateNode;
      if (m === null)
        return null;
      var N = Km(m);
      if (N === null)
        return null;
      var V = N[t];
      if (md(t, e.type, N))
        return null;
      if (V && typeof V != "function")
        throw new Error("Expected `" + t + "` listener to be a function, instead got a value of `" + typeof V + "` type.");
      return V;
    }
    var rf = !1;
    if (Re)
      try {
        var Os = {};
        Object.defineProperty(Os, "passive", {
          get: function() {
            rf = !0;
          }
        }), window.addEventListener("test", Os, Os), window.removeEventListener("test", Os, Os);
      } catch {
        rf = !1;
      }
    function yd(e, t, m, N, V, de, Ee, He, $e) {
      var pt = Array.prototype.slice.call(arguments, 3);
      try {
        t.apply(m, pt);
      } catch (At) {
        this.onError(At);
      }
    }
    var tc = yd;
    if (typeof window < "u" && typeof window.dispatchEvent == "function" && typeof document < "u" && typeof document.createEvent == "function") {
      var nf = document.createElement("react");
      tc = function(t, m, N, V, de, Ee, He, $e, pt) {
        if (typeof document > "u" || document === null)
          throw new Error("The `document` global was defined when React was initialized, but is not defined anymore. This can happen in a test environment if a component schedules an update from an asynchronous callback, but the test has already finished running. To solve this, you can either unmount the component at the end of your test (and ensure that any asynchronous operations get canceled in `componentWillUnmount`), or you can change the test itself to be asynchronous.");
        var At = document.createEvent("Event"), rr = !1, er = !0, pr = window.event, yr = Object.getOwnPropertyDescriptor(window, "event");
        function Sr() {
          nf.removeEventListener(Mr, Ln, !1), typeof window.event < "u" && window.hasOwnProperty("event") && (window.event = pr);
        }
        var tn = Array.prototype.slice.call(arguments, 3);
        function Ln() {
          rr = !0, Sr(), m.apply(N, tn), er = !1;
        }
        var Cn, ca = !1, ia = !1;
        function cr(dr) {
          if (Cn = dr.error, ca = !0, Cn === null && dr.colno === 0 && dr.lineno === 0 && (ia = !0), dr.defaultPrevented && Cn != null && typeof Cn == "object")
            try {
              Cn._suppressLogging = !0;
            } catch {
            }
        }
        var Mr = "react-" + (t || "invokeguardedcallback");
        if (window.addEventListener("error", cr), nf.addEventListener(Mr, Ln, !1), At.initEvent(Mr, !1, !1), nf.dispatchEvent(At), yr && Object.defineProperty(window, "event", yr), rr && er && (ca ? ia && (Cn = new Error("A cross-origin error was thrown. React doesn't have access to the actual error object in development. See https://reactjs.org/link/crossorigin-error for more information.")) : Cn = new Error(`An error was thrown inside one of your components, but React doesn't know what it was. This is likely due to browser flakiness. React does its best to preserve the "Pause on exceptions" behavior of the DevTools, which requires some DEV-mode only tricks. It's possible that these don't work in your browser. Try triggering the error in production mode, or switching to a modern browser. If you suspect that this is actually an issue with React, please file an issue.`), this.onError(Cn)), window.removeEventListener("error", cr), !rr)
          return Sr(), yd.apply(this, arguments);
      };
    }
    var Lv = tc, el = !1, so = null, af = !1, fl = null, tl = {
      onError: function(e) {
        el = !0, so = e;
      }
    };
    function Ps(e, t, m, N, V, de, Ee, He, $e) {
      el = !1, so = null, Lv.apply(tl, arguments);
    }
    function Vl(e, t, m, N, V, de, Ee, He, $e) {
      if (Ps.apply(this, arguments), el) {
        var pt = nc();
        af || (af = !0, fl = pt);
      }
    }
    function rc() {
      if (af) {
        var e = fl;
        throw af = !1, fl = null, e;
      }
    }
    function kv() {
      return el;
    }
    function nc() {
      if (el) {
        var e = so;
        return el = !1, so = null, e;
      } else
        throw new Error("clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue.");
    }
    function uo(e) {
      return e._reactInternals;
    }
    function Fs(e) {
      return e._reactInternals !== void 0;
    }
    function zs(e, t) {
      e._reactInternals = t;
    }
    var wn = (
      /*                      */
      0
    ), Gl = (
      /*                */
      1
    ), Aa = (
      /*                    */
      2
    ), Wn = (
      /*                       */
      4
    ), va = (
      /*                */
      16
    ), ha = (
      /*                 */
      32
    ), cl = (
      /*                     */
      64
    ), Hn = (
      /*                   */
      128
    ), Xa = (
      /*            */
      256
    ), Zi = (
      /*                          */
      512
    ), go = (
      /*                     */
      1024
    ), za = (
      /*                      */
      2048
    ), Ho = (
      /*                    */
      4096
    ), rl = (
      /*                   */
      8192
    ), of = (
      /*             */
      16384
    ), ac = za | Wn | cl | Zi | go | of, gd = (
      /*               */
      32767
    ), fo = (
      /*                   */
      32768
    ), gi = (
      /*                */
      65536
    ), os = (
      /* */
      131072
    ), pu = (
      /*                       */
      1048576
    ), ic = (
      /*                    */
      2097152
    ), $i = (
      /*                 */
      4194304
    ), dl = (
      /*                */
      8388608
    ), Ha = (
      /*               */
      16777216
    ), ls = (
      /*              */
      33554432
    ), mu = (
      // TODO: Remove Update flag from before mutation phase by re-landing Visibility
      // flag logic (see #20043)
      Wn | go | 0
    ), _i = Aa | Wn | va | ha | Zi | Ho | rl, bi = Wn | cl | Zi | rl, Bo = za | va, Mi = $i | dl | ic, Ul = E.ReactCurrentOwner;
    function Hi(e) {
      var t = e, m = e;
      if (e.alternate)
        for (; t.return; )
          t = t.return;
      else {
        var N = t;
        do
          t = N, (t.flags & (Aa | Ho)) !== wn && (m = t.return), N = t.return;
        while (N);
      }
      return t.tag === l ? m : null;
    }
    function lf(e) {
      if (e.tag === C) {
        var t = e.memoizedState;
        if (t === null) {
          var m = e.alternate;
          m !== null && (t = m.memoizedState);
        }
        if (t !== null)
          return t.dehydrated;
      }
      return null;
    }
    function sf(e) {
      return e.tag === l ? e.stateNode.containerInfo : null;
    }
    function bd(e) {
      return Hi(e) === e;
    }
    function bo(e) {
      {
        var t = Ul.current;
        if (t !== null && t.tag === a) {
          var m = t, N = m.stateNode;
          N._warnedAboutRefsInRender || M("%s is accessing isMounted inside its render() function. render() should be a pure function of props and state. It should never access something that requires stale data from the previous render, such as refs. Move this logic to componentDidMount and componentDidUpdate instead.", sr(m) || "A component"), N._warnedAboutRefsInRender = !0;
        }
      }
      var V = uo(e);
      return V ? Hi(V) === V : !1;
    }
    function co(e) {
      if (Hi(e) !== e)
        throw new Error("Unable to find node on an unmounted component.");
    }
    function ra(e) {
      var t = e.alternate;
      if (!t) {
        var m = Hi(e);
        if (m === null)
          throw new Error("Unable to find node on an unmounted component.");
        return m !== e ? null : e;
      }
      for (var N = e, V = t; ; ) {
        var de = N.return;
        if (de === null)
          break;
        var Ee = de.alternate;
        if (Ee === null) {
          var He = de.return;
          if (He !== null) {
            N = V = He;
            continue;
          }
          break;
        }
        if (de.child === Ee.child) {
          for (var $e = de.child; $e; ) {
            if ($e === N)
              return co(de), e;
            if ($e === V)
              return co(de), t;
            $e = $e.sibling;
          }
          throw new Error("Unable to find node on an unmounted component.");
        }
        if (N.return !== V.return)
          N = de, V = Ee;
        else {
          for (var pt = !1, At = de.child; At; ) {
            if (At === N) {
              pt = !0, N = de, V = Ee;
              break;
            }
            if (At === V) {
              pt = !0, V = de, N = Ee;
              break;
            }
            At = At.sibling;
          }
          if (!pt) {
            for (At = Ee.child; At; ) {
              if (At === N) {
                pt = !0, N = Ee, V = de;
                break;
              }
              if (At === V) {
                pt = !0, V = Ee, N = de;
                break;
              }
              At = At.sibling;
            }
            if (!pt)
              throw new Error("Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.");
          }
        }
        if (N.alternate !== V)
          throw new Error("Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue.");
      }
      if (N.tag !== l)
        throw new Error("Unable to find node on an unmounted component.");
      return N.stateNode.current === N ? e : t;
    }
    function xo(e) {
      var t = ra(e);
      return t !== null ? oc(t) : null;
    }
    function oc(e) {
      if (e.tag === u || e.tag === c)
        return e;
      for (var t = e.child; t !== null; ) {
        var m = oc(t);
        if (m !== null)
          return m;
        t = t.sibling;
      }
      return null;
    }
    function Wl(e) {
      var t = ra(e);
      return t !== null ? yu(t) : null;
    }
    function yu(e) {
      if (e.tag === u || e.tag === c)
        return e;
      for (var t = e.child; t !== null; ) {
        if (t.tag !== f) {
          var m = yu(t);
          if (m !== null)
            return m;
        }
        t = t.sibling;
      }
      return null;
    }
    var gu = o.unstable_scheduleCallback, Iv = o.unstable_cancelCallback, lc = o.unstable_shouldYield, Nv = o.unstable_requestPaint, Ba = o.unstable_now, sc = o.unstable_getCurrentPriorityLevel, uf = o.unstable_ImmediatePriority, ss = o.unstable_UserBlockingPriority, vl = o.unstable_NormalPriority, xd = o.unstable_LowPriority, uc = o.unstable_IdlePriority, bu = o.unstable_yieldValue, Ov = o.unstable_setDisableYieldValue, hl = null, ni = null, Kr = null, To = !1, Bi = typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ < "u";
    function fc(e) {
      if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ > "u")
        return !1;
      var t = __REACT_DEVTOOLS_GLOBAL_HOOK__;
      if (t.isDisabled)
        return !0;
      if (!t.supportsFiber)
        return M("The installed version of React DevTools is too old and will not work with the current version of React. Please update React DevTools. https://reactjs.org/link/react-devtools"), !0;
      try {
        J && (e = lr({}, e, {
          getLaneLabelMap: Yl,
          injectProfilingHooks: cc
        })), hl = t.inject(e), ni = t;
      } catch (m) {
        M("React instrumentation encountered an error: %s.", m);
      }
      return !!t.checkDCE;
    }
    function _s(e, t) {
      if (ni && typeof ni.onScheduleFiberRoot == "function")
        try {
          ni.onScheduleFiberRoot(hl, e, t);
        } catch (m) {
          To || (To = !0, M("React instrumentation encountered an error: %s", m));
        }
    }
    function ka(e, t) {
      if (ni && typeof ni.onCommitFiberRoot == "function")
        try {
          var m = (e.current.flags & Hn) === Hn;
          if (W) {
            var N;
            switch (t) {
              case ci:
                N = uf;
                break;
              case Vs:
                N = ss;
                break;
              case ds:
                N = vl;
                break;
              case yc:
                N = uc;
                break;
              default:
                N = vl;
                break;
            }
            ni.onCommitFiberRoot(hl, e, N, m);
          }
        } catch (V) {
          To || (To = !0, M("React instrumentation encountered an error: %s", V));
        }
    }
    function Co(e) {
      if (ni && typeof ni.onPostCommitFiberRoot == "function")
        try {
          ni.onPostCommitFiberRoot(hl, e);
        } catch (t) {
          To || (To = !0, M("React instrumentation encountered an error: %s", t));
        }
    }
    function Ao(e) {
      if (ni && typeof ni.onCommitFiberUnmount == "function")
        try {
          ni.onCommitFiberUnmount(hl, e);
        } catch (t) {
          To || (To = !0, M("React instrumentation encountered an error: %s", t));
        }
    }
    function ja(e) {
      if (typeof bu == "function" && (Ov(e), P(e)), ni && typeof ni.setStrictMode == "function")
        try {
          ni.setStrictMode(hl, e);
        } catch (t) {
          To || (To = !0, M("React instrumentation encountered an error: %s", t));
        }
    }
    function cc(e) {
      Kr = e;
    }
    function Yl() {
      {
        for (var e = /* @__PURE__ */ new Map(), t = 1, m = 0; m < Ur; m++) {
          var N = m1(t);
          e.set(t, N), t *= 2;
        }
        return e;
      }
    }
    function pl(e) {
      Kr !== null && typeof Kr.markCommitStarted == "function" && Kr.markCommitStarted(e);
    }
    function Hs() {
      Kr !== null && typeof Kr.markCommitStopped == "function" && Kr.markCommitStopped();
    }
    function Bs(e) {
      Kr !== null && typeof Kr.markComponentRenderStarted == "function" && Kr.markComponentRenderStarted(e);
    }
    function vo() {
      Kr !== null && typeof Kr.markComponentRenderStopped == "function" && Kr.markComponentRenderStopped();
    }
    function us(e) {
      Kr !== null && typeof Kr.markComponentPassiveEffectMountStarted == "function" && Kr.markComponentPassiveEffectMountStarted(e);
    }
    function dc() {
      Kr !== null && typeof Kr.markComponentPassiveEffectMountStopped == "function" && Kr.markComponentPassiveEffectMountStopped();
    }
    function Pv(e) {
      Kr !== null && typeof Kr.markComponentPassiveEffectUnmountStarted == "function" && Kr.markComponentPassiveEffectUnmountStarted(e);
    }
    function xu() {
      Kr !== null && typeof Kr.markComponentPassiveEffectUnmountStopped == "function" && Kr.markComponentPassiveEffectUnmountStopped();
    }
    function Fv(e) {
      Kr !== null && typeof Kr.markComponentLayoutEffectMountStarted == "function" && Kr.markComponentLayoutEffectMountStarted(e);
    }
    function ff() {
      Kr !== null && typeof Kr.markComponentLayoutEffectMountStopped == "function" && Kr.markComponentLayoutEffectMountStopped();
    }
    function y(e) {
      Kr !== null && typeof Kr.markComponentLayoutEffectUnmountStarted == "function" && Kr.markComponentLayoutEffectUnmountStarted(e);
    }
    function _() {
      Kr !== null && typeof Kr.markComponentLayoutEffectUnmountStopped == "function" && Kr.markComponentLayoutEffectUnmountStopped();
    }
    function Q(e, t, m) {
      Kr !== null && typeof Kr.markComponentErrored == "function" && Kr.markComponentErrored(e, t, m);
    }
    function le(e, t, m) {
      Kr !== null && typeof Kr.markComponentSuspended == "function" && Kr.markComponentSuspended(e, t, m);
    }
    function pe(e) {
      Kr !== null && typeof Kr.markLayoutEffectsStarted == "function" && Kr.markLayoutEffectsStarted(e);
    }
    function ge() {
      Kr !== null && typeof Kr.markLayoutEffectsStopped == "function" && Kr.markLayoutEffectsStopped();
    }
    function Fe(e) {
      Kr !== null && typeof Kr.markPassiveEffectsStarted == "function" && Kr.markPassiveEffectsStarted(e);
    }
    function ke() {
      Kr !== null && typeof Kr.markPassiveEffectsStopped == "function" && Kr.markPassiveEffectsStopped();
    }
    function _e(e) {
      Kr !== null && typeof Kr.markRenderStarted == "function" && Kr.markRenderStarted(e);
    }
    function Qe() {
      Kr !== null && typeof Kr.markRenderYielded == "function" && Kr.markRenderYielded();
    }
    function Ke() {
      Kr !== null && typeof Kr.markRenderStopped == "function" && Kr.markRenderStopped();
    }
    function yt(e) {
      Kr !== null && typeof Kr.markRenderScheduled == "function" && Kr.markRenderScheduled(e);
    }
    function gt(e, t) {
      Kr !== null && typeof Kr.markForceUpdateScheduled == "function" && Kr.markForceUpdateScheduled(e, t);
    }
    function Vt(e, t) {
      Kr !== null && typeof Kr.markStateUpdateScheduled == "function" && Kr.markStateUpdateScheduled(e, t);
    }
    var Pt = (
      /*                         */
      0
    ), ct = (
      /*                 */
      1
    ), xt = (
      /*                    */
      2
    ), Rt = (
      /*               */
      8
    ), Xt = (
      /*              */
      16
    ), Kt = Math.clz32 ? Math.clz32 : Nr, Bt = Math.log, Ar = Math.LN2;
    function Nr(e) {
      var t = e >>> 0;
      return t === 0 ? 32 : 31 - (Bt(t) / Ar | 0) | 0;
    }
    var Ur = 31, qt = (
      /*                        */
      0
    ), Br = (
      /*                          */
      0
    ), xr = (
      /*                        */
      1
    ), nn = (
      /*    */
      2
    ), jr = (
      /*             */
      4
    ), fn = (
      /*            */
      8
    ), Bn = (
      /*                     */
      16
    ), wa = (
      /*                */
      32
    ), Jn = (
      /*                       */
      4194240
    ), _r = (
      /*                        */
      64
    ), Tn = (
      /*                        */
      128
    ), En = (
      /*                        */
      256
    ), Qn = (
      /*                        */
      512
    ), Sa = (
      /*                        */
      1024
    ), Va = (
      /*                        */
      2048
    ), Ga = (
      /*                        */
      4096
    ), ui = (
      /*                        */
      8192
    ), ai = (
      /*                        */
      16384
    ), Ka = (
      /*                       */
      32768
    ), Ei = (
      /*                       */
      65536
    ), qa = (
      /*                       */
      131072
    ), Di = (
      /*                       */
      262144
    ), ml = (
      /*                       */
      524288
    ), vc = (
      /*                       */
      1048576
    ), ho = (
      /*                       */
      2097152
    ), Za = (
      /*                            */
      130023424
    ), xi = (
      /*                             */
      4194304
    ), wo = (
      /*                             */
      8388608
    ), Ji = (
      /*                             */
      16777216
    ), fs = (
      /*                             */
      33554432
    ), yl = (
      /*                             */
      67108864
    ), Xl = xi, cs = (
      /*          */
      134217728
    ), hc = (
      /*                          */
      268435455
    ), pc = (
      /*               */
      268435456
    ), Tu = (
      /*                        */
      536870912
    ), po = (
      /*                   */
      1073741824
    );
    function m1(e) {
      {
        if (e & xr)
          return "Sync";
        if (e & nn)
          return "InputContinuousHydration";
        if (e & jr)
          return "InputContinuous";
        if (e & fn)
          return "DefaultHydration";
        if (e & Bn)
          return "Default";
        if (e & wa)
          return "TransitionHydration";
        if (e & Jn)
          return "Transition";
        if (e & Za)
          return "Retry";
        if (e & cs)
          return "SelectiveHydration";
        if (e & pc)
          return "IdleHydration";
        if (e & Tu)
          return "Idle";
        if (e & po)
          return "Offscreen";
      }
    }
    var Ua = -1, zv = _r, Vo = xi;
    function cf(e) {
      switch (fi(e)) {
        case xr:
          return xr;
        case nn:
          return nn;
        case jr:
          return jr;
        case fn:
          return fn;
        case Bn:
          return Bn;
        case wa:
          return wa;
        case _r:
        case Tn:
        case En:
        case Qn:
        case Sa:
        case Va:
        case Ga:
        case ui:
        case ai:
        case Ka:
        case Ei:
        case qa:
        case Di:
        case ml:
        case vc:
        case ho:
          return e & Jn;
        case xi:
        case wo:
        case Ji:
        case fs:
        case yl:
          return e & Za;
        case cs:
          return cs;
        case pc:
          return pc;
        case Tu:
          return Tu;
        case po:
          return po;
        default:
          return M("Should have found matching lanes. This is a bug in React."), e;
      }
    }
    function df(e, t) {
      var m = e.pendingLanes;
      if (m === qt)
        return qt;
      var N = qt, V = e.suspendedLanes, de = e.pingedLanes, Ee = m & hc;
      if (Ee !== qt) {
        var He = Ee & ~V;
        if (He !== qt)
          N = cf(He);
        else {
          var $e = Ee & de;
          $e !== qt && (N = cf($e));
        }
      } else {
        var pt = m & ~V;
        pt !== qt ? N = cf(pt) : de !== qt && (N = cf(de));
      }
      if (N === qt)
        return qt;
      if (t !== qt && t !== N && // If we already suspended with a delay, then interrupting is fine. Don't
      // bother waiting until the root is complete.
      (t & V) === qt) {
        var At = fi(N), rr = fi(t);
        if (
          // Tests whether the next lane is equal or lower priority than the wip
          // one. This works because the bits decrease in priority as you go left.
          At >= rr || // Default priority updates should not interrupt transition updates. The
          // only difference between default updates and transition updates is that
          // default updates do not support refresh transitions.
          At === Bn && (rr & Jn) !== qt
        )
          return t;
      }
      (N & jr) !== qt && (N |= m & Bn);
      var er = e.entangledLanes;
      if (er !== qt)
        for (var pr = e.entanglements, yr = N & er; yr > 0; ) {
          var Sr = Au(yr), tn = 1 << Sr;
          N |= pr[Sr], yr &= ~tn;
        }
      return N;
    }
    function sm(e, t) {
      for (var m = e.eventTimes, N = Ua; t > 0; ) {
        var V = Au(t), de = 1 << V, Ee = m[V];
        Ee > N && (N = Ee), t &= ~de;
      }
      return N;
    }
    function um(e, t) {
      switch (e) {
        case xr:
        case nn:
        case jr:
          return t + 250;
        case fn:
        case Bn:
        case wa:
        case _r:
        case Tn:
        case En:
        case Qn:
        case Sa:
        case Va:
        case Ga:
        case ui:
        case ai:
        case Ka:
        case Ei:
        case qa:
        case Di:
        case ml:
        case vc:
        case ho:
          return t + 5e3;
        case xi:
        case wo:
        case Ji:
        case fs:
        case yl:
          return Ua;
        case cs:
        case pc:
        case Tu:
        case po:
          return Ua;
        default:
          return M("Should have found matching lanes. This is a bug in React."), Ua;
      }
    }
    function fm(e, t) {
      for (var m = e.pendingLanes, N = e.suspendedLanes, V = e.pingedLanes, de = e.expirationTimes, Ee = m; Ee > 0; ) {
        var He = Au(Ee), $e = 1 << He, pt = de[He];
        pt === Ua ? (($e & N) === qt || ($e & V) !== qt) && (de[He] = um($e, t)) : pt <= t && (e.expiredLanes |= $e), Ee &= ~$e;
      }
    }
    function cp(e) {
      return cf(e.pendingLanes);
    }
    function Cu(e) {
      var t = e.pendingLanes & ~po;
      return t !== qt ? t : t & po ? po : qt;
    }
    function dp(e) {
      return (e & xr) !== qt;
    }
    function Td(e) {
      return (e & hc) !== qt;
    }
    function cm(e) {
      return (e & Za) === e;
    }
    function dm(e) {
      var t = xr | jr | Bn;
      return (e & t) === qt;
    }
    function vm(e) {
      return (e & Jn) === e;
    }
    function Cd(e, t) {
      var m = nn | jr | fn | Bn;
      return (t & m) !== qt;
    }
    function hm(e, t) {
      return (t & e.expiredLanes) !== qt;
    }
    function vp(e) {
      return (e & Jn) !== qt;
    }
    function pm() {
      var e = zv;
      return zv <<= 1, (zv & Jn) === qt && (zv = _r), e;
    }
    function Go() {
      var e = Vo;
      return Vo <<= 1, (Vo & Za) === qt && (Vo = xi), e;
    }
    function fi(e) {
      return e & -e;
    }
    function mc(e) {
      return fi(e);
    }
    function Au(e) {
      return 31 - Kt(e);
    }
    function _v(e) {
      return Au(e);
    }
    function Uo(e, t) {
      return (e & t) !== qt;
    }
    function vf(e, t) {
      return (e & t) === t;
    }
    function $n(e, t) {
      return e | t;
    }
    function Ad(e, t) {
      return e & ~t;
    }
    function Hv(e, t) {
      return e & t;
    }
    function y1(e) {
      return e;
    }
    function mm(e, t) {
      return e !== Br && e < t ? e : t;
    }
    function wd(e) {
      for (var t = [], m = 0; m < Ur; m++)
        t.push(e);
      return t;
    }
    function hf(e, t, m) {
      e.pendingLanes |= t, t !== Tu && (e.suspendedLanes = qt, e.pingedLanes = qt);
      var N = e.eventTimes, V = _v(t);
      N[V] = m;
    }
    function ym(e, t) {
      e.suspendedLanes |= t, e.pingedLanes &= ~t;
      for (var m = e.expirationTimes, N = t; N > 0; ) {
        var V = Au(N), de = 1 << V;
        m[V] = Ua, N &= ~de;
      }
    }
    function Bv(e, t, m) {
      e.pingedLanes |= e.suspendedLanes & t;
    }
    function Vv(e, t) {
      var m = e.pendingLanes & ~t;
      e.pendingLanes = t, e.suspendedLanes = qt, e.pingedLanes = qt, e.expiredLanes &= t, e.mutableReadLanes &= t, e.entangledLanes &= t;
      for (var N = e.entanglements, V = e.eventTimes, de = e.expirationTimes, Ee = m; Ee > 0; ) {
        var He = Au(Ee), $e = 1 << He;
        N[He] = qt, V[He] = Ua, de[He] = Ua, Ee &= ~$e;
      }
    }
    function hp(e, t) {
      for (var m = e.entangledLanes |= t, N = e.entanglements, V = m; V; ) {
        var de = Au(V), Ee = 1 << de;
        // Is this one of the newly entangled lanes?
        Ee & t | // Is this lane transitively entangled with the newly entangled lanes?
        N[de] & t && (N[de] |= t), V &= ~Ee;
      }
    }
    function gm(e, t) {
      var m = fi(t), N;
      switch (m) {
        case jr:
          N = nn;
          break;
        case Bn:
          N = fn;
          break;
        case _r:
        case Tn:
        case En:
        case Qn:
        case Sa:
        case Va:
        case Ga:
        case ui:
        case ai:
        case Ka:
        case Ei:
        case qa:
        case Di:
        case ml:
        case vc:
        case ho:
        case xi:
        case wo:
        case Ji:
        case fs:
        case yl:
          N = wa;
          break;
        case Tu:
          N = pc;
          break;
        default:
          N = Br;
          break;
      }
      return (N & (e.suspendedLanes | t)) !== Br ? Br : N;
    }
    function Gv(e, t, m) {
      if (Bi)
        for (var N = e.pendingUpdatersLaneMap; m > 0; ) {
          var V = _v(m), de = 1 << V, Ee = N[V];
          Ee.add(t), m &= ~de;
        }
    }
    function pp(e, t) {
      if (Bi)
        for (var m = e.pendingUpdatersLaneMap, N = e.memoizedUpdaters; t > 0; ) {
          var V = _v(t), de = 1 << V, Ee = m[V];
          Ee.size > 0 && (Ee.forEach(function(He) {
            var $e = He.alternate;
            ($e === null || !N.has($e)) && N.add(He);
          }), Ee.clear()), t &= ~de;
        }
    }
    function Sd(e, t) {
      return null;
    }
    var ci = xr, Vs = jr, ds = Bn, yc = Tu, gc = Br;
    function gl() {
      return gc;
    }
    function ii(e) {
      gc = e;
    }
    function mo(e, t) {
      var m = gc;
      try {
        return gc = e, t();
      } finally {
        gc = m;
      }
    }
    function g1(e, t) {
      return e !== 0 && e < t ? e : t;
    }
    function b1(e, t) {
      return e > t ? e : t;
    }
    function bc(e, t) {
      return e !== 0 && e < t;
    }
    function Qi(e) {
      var t = fi(e);
      return bc(ci, t) ? bc(Vs, t) ? Td(t) ? ds : yc : Vs : ci;
    }
    function Uv(e) {
      var t = e.current.memoizedState;
      return t.isDehydrated;
    }
    var cn;
    function xc(e) {
      cn = e;
    }
    function mp(e) {
      cn(e);
    }
    var Wv;
    function x1(e) {
      Wv = e;
    }
    var Tc;
    function Yv(e) {
      Tc = e;
    }
    var Xv;
    function bm(e) {
      Xv = e;
    }
    var yp;
    function xm(e) {
      yp = e;
    }
    var Md = !1, Cc = [], Qa = null, Vi = null, So = null, Ac = /* @__PURE__ */ new Map(), wc = /* @__PURE__ */ new Map(), Gi = [], Tm = [
      "mousedown",
      "mouseup",
      "touchcancel",
      "touchend",
      "touchstart",
      "auxclick",
      "dblclick",
      "pointercancel",
      "pointerdown",
      "pointerup",
      "dragend",
      "dragstart",
      "drop",
      "compositionend",
      "compositionstart",
      "keydown",
      "keypress",
      "keyup",
      "input",
      "textInput",
      // Intentionally camelCase
      "copy",
      "cut",
      "paste",
      "click",
      "change",
      "contextmenu",
      "reset",
      "submit"
    ];
    function vs(e) {
      return Tm.indexOf(e) > -1;
    }
    function T1(e, t, m, N, V) {
      return {
        blockedOn: e,
        domEventName: t,
        eventSystemFlags: m,
        nativeEvent: V,
        targetContainers: [N]
      };
    }
    function gp(e, t) {
      switch (e) {
        case "focusin":
        case "focusout":
          Qa = null;
          break;
        case "dragenter":
        case "dragleave":
          Vi = null;
          break;
        case "mouseover":
        case "mouseout":
          So = null;
          break;
        case "pointerover":
        case "pointerout": {
          var m = t.pointerId;
          Ac.delete(m);
          break;
        }
        case "gotpointercapture":
        case "lostpointercapture": {
          var N = t.pointerId;
          wc.delete(N);
          break;
        }
      }
    }
    function Sc(e, t, m, N, V, de) {
      if (e === null || e.nativeEvent !== de) {
        var Ee = T1(t, m, N, V, de);
        if (t !== null) {
          var He = Oc(t);
          He !== null && Wv(He);
        }
        return Ee;
      }
      e.eventSystemFlags |= N;
      var $e = e.targetContainers;
      return V !== null && $e.indexOf(V) === -1 && $e.push(V), e;
    }
    function Cm(e, t, m, N, V) {
      switch (t) {
        case "focusin": {
          var de = V;
          return Qa = Sc(Qa, e, t, m, N, de), !0;
        }
        case "dragenter": {
          var Ee = V;
          return Vi = Sc(Vi, e, t, m, N, Ee), !0;
        }
        case "mouseover": {
          var He = V;
          return So = Sc(So, e, t, m, N, He), !0;
        }
        case "pointerover": {
          var $e = V, pt = $e.pointerId;
          return Ac.set(pt, Sc(Ac.get(pt) || null, e, t, m, N, $e)), !0;
        }
        case "gotpointercapture": {
          var At = V, rr = At.pointerId;
          return wc.set(rr, Sc(wc.get(rr) || null, e, t, m, N, At)), !0;
        }
      }
      return !1;
    }
    function bp(e) {
      var t = _d(e.target);
      if (t !== null) {
        var m = Hi(t);
        if (m !== null) {
          var N = m.tag;
          if (N === C) {
            var V = lf(m);
            if (V !== null) {
              e.blockedOn = V, yp(e.priority, function() {
                Tc(m);
              });
              return;
            }
          } else if (N === l) {
            var de = m.stateNode;
            if (Uv(de)) {
              e.blockedOn = sf(m);
              return;
            }
          }
        }
      }
      e.blockedOn = null;
    }
    function C1(e) {
      for (var t = Xv(), m = {
        blockedOn: null,
        target: e,
        priority: t
      }, N = 0; N < Gi.length && bc(t, Gi[N].priority); N++)
        ;
      Gi.splice(N, 0, m), N === 0 && bp(m);
    }
    function pf(e) {
      if (e.blockedOn !== null)
        return !1;
      for (var t = e.targetContainers; t.length > 0; ) {
        var m = t[0], N = yo(e.domEventName, e.eventSystemFlags, m, e.nativeEvent);
        if (N === null) {
          var V = e.nativeEvent, de = new V.constructor(V.type, V);
          Ku(de), V.target.dispatchEvent(de), fp();
        } else {
          var Ee = Oc(N);
          return Ee !== null && Wv(Ee), e.blockedOn = N, !1;
        }
        t.shift();
      }
      return !0;
    }
    function jv(e, t, m) {
      pf(e) && m.delete(t);
    }
    function bl() {
      Md = !1, Qa !== null && pf(Qa) && (Qa = null), Vi !== null && pf(Vi) && (Vi = null), So !== null && pf(So) && (So = null), Ac.forEach(jv), wc.forEach(jv);
    }
    function aa(e, t) {
      e.blockedOn === t && (e.blockedOn = null, Md || (Md = !0, o.unstable_scheduleCallback(o.unstable_NormalPriority, bl)));
    }
    function oi(e) {
      if (Cc.length > 0) {
        aa(Cc[0], e);
        for (var t = 1; t < Cc.length; t++) {
          var m = Cc[t];
          m.blockedOn === e && (m.blockedOn = null);
        }
      }
      Qa !== null && aa(Qa, e), Vi !== null && aa(Vi, e), So !== null && aa(So, e);
      var N = function(He) {
        return aa(He, e);
      };
      Ac.forEach(N), wc.forEach(N);
      for (var V = 0; V < Gi.length; V++) {
        var de = Gi[V];
        de.blockedOn === e && (de.blockedOn = null);
      }
      for (; Gi.length > 0; ) {
        var Ee = Gi[0];
        if (Ee.blockedOn !== null)
          break;
        bp(Ee), Ee.blockedOn === null && Gi.shift();
      }
    }
    var $a = E.ReactCurrentBatchConfig, Ri = !0;
    function Wo(e) {
      Ri = !!e;
    }
    function Mc() {
      return Ri;
    }
    function Li(e, t, m) {
      var N = Zv(t), V;
      switch (N) {
        case ci:
          V = Ed;
          break;
        case Vs:
          V = mf;
          break;
        case ds:
        default:
          V = Ec;
          break;
      }
      return V.bind(null, t, m, e);
    }
    function Ed(e, t, m, N) {
      var V = gl(), de = $a.transition;
      $a.transition = null;
      try {
        ii(ci), Ec(e, t, m, N);
      } finally {
        ii(V), $a.transition = de;
      }
    }
    function mf(e, t, m, N) {
      var V = gl(), de = $a.transition;
      $a.transition = null;
      try {
        ii(Vs), Ec(e, t, m, N);
      } finally {
        ii(V), $a.transition = de;
      }
    }
    function Ec(e, t, m, N) {
      Ri && xp(e, t, m, N);
    }
    function xp(e, t, m, N) {
      var V = yo(e, t, m, N);
      if (V === null) {
        H1(e, t, N, wu, m), gp(e, N);
        return;
      }
      if (Cm(V, e, t, m, N)) {
        N.stopPropagation();
        return;
      }
      if (gp(e, N), t & Ls && vs(e)) {
        for (; V !== null; ) {
          var de = Oc(V);
          de !== null && mp(de);
          var Ee = yo(e, t, m, N);
          if (Ee === null && H1(e, t, N, wu, m), Ee === V)
            break;
          V = Ee;
        }
        V !== null && N.stopPropagation();
        return;
      }
      H1(e, t, N, null, m);
    }
    var wu = null;
    function yo(e, t, m, N) {
      wu = null;
      var V = Qf(N), de = _d(V);
      if (de !== null) {
        var Ee = Hi(de);
        if (Ee === null)
          de = null;
        else {
          var He = Ee.tag;
          if (He === C) {
            var $e = lf(Ee);
            if ($e !== null)
              return $e;
            de = null;
          } else if (He === l) {
            var pt = Ee.stateNode;
            if (Uv(pt))
              return sf(Ee);
            de = null;
          } else
            Ee !== de && (de = null);
        }
      }
      return wu = de, null;
    }
    function Zv(e) {
      switch (e) {
        case "cancel":
        case "click":
        case "close":
        case "contextmenu":
        case "copy":
        case "cut":
        case "auxclick":
        case "dblclick":
        case "dragend":
        case "dragstart":
        case "drop":
        case "focusin":
        case "focusout":
        case "input":
        case "invalid":
        case "keydown":
        case "keypress":
        case "keyup":
        case "mousedown":
        case "mouseup":
        case "paste":
        case "pause":
        case "play":
        case "pointercancel":
        case "pointerdown":
        case "pointerup":
        case "ratechange":
        case "reset":
        case "resize":
        case "seeked":
        case "submit":
        case "touchcancel":
        case "touchend":
        case "touchstart":
        case "volumechange":
        case "change":
        case "selectionchange":
        case "textInput":
        case "compositionstart":
        case "compositionend":
        case "compositionupdate":
        case "beforeblur":
        case "afterblur":
        case "beforeinput":
        case "blur":
        case "fullscreenchange":
        case "focus":
        case "hashchange":
        case "popstate":
        case "select":
        case "selectstart":
          return ci;
        case "drag":
        case "dragenter":
        case "dragexit":
        case "dragleave":
        case "dragover":
        case "mousemove":
        case "mouseout":
        case "mouseover":
        case "pointermove":
        case "pointerout":
        case "pointerover":
        case "scroll":
        case "toggle":
        case "touchmove":
        case "wheel":
        case "mouseenter":
        case "mouseleave":
        case "pointerenter":
        case "pointerleave":
          return Vs;
        case "message": {
          var t = sc();
          switch (t) {
            case uf:
              return ci;
            case ss:
              return Vs;
            case vl:
            case xd:
              return ds;
            case uc:
              return yc;
            default:
              return ds;
          }
        }
        default:
          return ds;
      }
    }
    function Dc(e, t, m) {
      return e.addEventListener(t, m, !1), m;
    }
    function Gs(e, t, m) {
      return e.addEventListener(t, m, !0), m;
    }
    function $v(e, t, m, N) {
      return e.addEventListener(t, m, {
        capture: !0,
        passive: N
      }), m;
    }
    function Tp(e, t, m, N) {
      return e.addEventListener(t, m, {
        passive: N
      }), m;
    }
    var xl = null, Rc = null, Tl = null;
    function Jv(e) {
      return xl = e, Rc = Rd(), !0;
    }
    function Dd() {
      xl = null, Rc = null, Tl = null;
    }
    function Qv() {
      if (Tl)
        return Tl;
      var e, t = Rc, m = t.length, N, V = Rd(), de = V.length;
      for (e = 0; e < m && t[e] === V[e]; e++)
        ;
      var Ee = m - e;
      for (N = 1; N <= Ee && t[m - N] === V[de - N]; N++)
        ;
      var He = N > 1 ? 1 - N : void 0;
      return Tl = V.slice(e, He), Tl;
    }
    function Rd() {
      return "value" in xl ? xl.value : xl.textContent;
    }
    function yf(e) {
      var t, m = e.keyCode;
      return "charCode" in e ? (t = e.charCode, t === 0 && m === 13 && (t = 13)) : t = m, t === 10 && (t = 13), t >= 32 || t === 13 ? t : 0;
    }
    function Ui() {
      return !0;
    }
    function Us() {
      return !1;
    }
    function ei(e) {
      function t(m, N, V, de, Ee) {
        this._reactName = m, this._targetInst = V, this.type = N, this.nativeEvent = de, this.target = Ee, this.currentTarget = null;
        for (var He in e)
          if (e.hasOwnProperty(He)) {
            var $e = e[He];
            $e ? this[He] = $e(de) : this[He] = de[He];
          }
        var pt = de.defaultPrevented != null ? de.defaultPrevented : de.returnValue === !1;
        return pt ? this.isDefaultPrevented = Ui : this.isDefaultPrevented = Us, this.isPropagationStopped = Us, this;
      }
      return lr(t.prototype, {
        preventDefault: function() {
          this.defaultPrevented = !0;
          var m = this.nativeEvent;
          m && (m.preventDefault ? m.preventDefault() : typeof m.returnValue != "unknown" && (m.returnValue = !1), this.isDefaultPrevented = Ui);
        },
        stopPropagation: function() {
          var m = this.nativeEvent;
          m && (m.stopPropagation ? m.stopPropagation() : typeof m.cancelBubble != "unknown" && (m.cancelBubble = !0), this.isPropagationStopped = Ui);
        },
        /**
         * We release all dispatched `SyntheticEvent`s after each event loop, adding
         * them back into the pool. This allows a way to hold onto a reference that
         * won't be added back into the pool.
         */
        persist: function() {
        },
        /**
         * Checks if this event should be released back into the pool.
         *
         * @return {boolean} True if this should not be released, false otherwise.
         */
        isPersistent: Ui
      }), t;
    }
    var ki = {
      eventPhase: 0,
      bubbles: 0,
      cancelable: 0,
      timeStamp: function(e) {
        return e.timeStamp || Date.now();
      },
      defaultPrevented: 0,
      isTrusted: 0
    }, Kv = ei(ki), gf = lr({}, ki, {
      view: 0,
      detail: 0
    }), Cp = ei(gf), Ap, hs, Lc;
    function wp(e) {
      e !== Lc && (Lc && e.type === "mousemove" ? (Ap = e.screenX - Lc.screenX, hs = e.screenY - Lc.screenY) : (Ap = 0, hs = 0), Lc = e);
    }
    var ps = lr({}, gf, {
      screenX: 0,
      screenY: 0,
      clientX: 0,
      clientY: 0,
      pageX: 0,
      pageY: 0,
      ctrlKey: 0,
      shiftKey: 0,
      altKey: 0,
      metaKey: 0,
      getModifierState: Sp,
      button: 0,
      buttons: 0,
      relatedTarget: function(e) {
        return e.relatedTarget === void 0 ? e.fromElement === e.srcElement ? e.toElement : e.fromElement : e.relatedTarget;
      },
      movementX: function(e) {
        return "movementX" in e ? e.movementX : (wp(e), Ap);
      },
      movementY: function(e) {
        return "movementY" in e ? e.movementY : hs;
      }
    }), qv = ei(ps), bf = lr({}, ps, {
      dataTransfer: 0
    }), Am = ei(bf), wm = lr({}, gf, {
      relatedTarget: 0
    }), Ld = ei(wm), eh = lr({}, ki, {
      animationName: 0,
      elapsedTime: 0,
      pseudoElement: 0
    }), A1 = ei(eh), w1 = lr({}, ki, {
      clipboardData: function(e) {
        return "clipboardData" in e ? e.clipboardData : window.clipboardData;
      }
    }), Sm = ei(w1), Mm = lr({}, ki, {
      data: 0
    }), Su = ei(Mm), S1 = Su, kc = {
      Esc: "Escape",
      Spacebar: " ",
      Left: "ArrowLeft",
      Up: "ArrowUp",
      Right: "ArrowRight",
      Down: "ArrowDown",
      Del: "Delete",
      Win: "OS",
      Menu: "ContextMenu",
      Apps: "ContextMenu",
      Scroll: "ScrollLock",
      MozPrintableKey: "Unidentified"
    }, Em = {
      8: "Backspace",
      9: "Tab",
      12: "Clear",
      13: "Enter",
      16: "Shift",
      17: "Control",
      18: "Alt",
      19: "Pause",
      20: "CapsLock",
      27: "Escape",
      32: " ",
      33: "PageUp",
      34: "PageDown",
      35: "End",
      36: "Home",
      37: "ArrowLeft",
      38: "ArrowUp",
      39: "ArrowRight",
      40: "ArrowDown",
      45: "Insert",
      46: "Delete",
      112: "F1",
      113: "F2",
      114: "F3",
      115: "F4",
      116: "F5",
      117: "F6",
      118: "F7",
      119: "F8",
      120: "F9",
      121: "F10",
      122: "F11",
      123: "F12",
      144: "NumLock",
      145: "ScrollLock",
      224: "Meta"
    };
    function li(e) {
      if (e.key) {
        var t = kc[e.key] || e.key;
        if (t !== "Unidentified")
          return t;
      }
      if (e.type === "keypress") {
        var m = yf(e);
        return m === 13 ? "Enter" : String.fromCharCode(m);
      }
      return e.type === "keydown" || e.type === "keyup" ? Em[e.keyCode] || "Unidentified" : "";
    }
    var M1 = {
      Alt: "altKey",
      Control: "ctrlKey",
      Meta: "metaKey",
      Shift: "shiftKey"
    };
    function Dm(e) {
      var t = this, m = t.nativeEvent;
      if (m.getModifierState)
        return m.getModifierState(e);
      var N = M1[e];
      return N ? !!m[N] : !1;
    }
    function Sp(e) {
      return Dm;
    }
    var E1 = lr({}, gf, {
      key: li,
      code: 0,
      location: 0,
      ctrlKey: 0,
      shiftKey: 0,
      altKey: 0,
      metaKey: 0,
      repeat: 0,
      locale: 0,
      getModifierState: Sp,
      // Legacy Interface
      charCode: function(e) {
        return e.type === "keypress" ? yf(e) : 0;
      },
      keyCode: function(e) {
        return e.type === "keydown" || e.type === "keyup" ? e.keyCode : 0;
      },
      which: function(e) {
        return e.type === "keypress" ? yf(e) : e.type === "keydown" || e.type === "keyup" ? e.keyCode : 0;
      }
    }), Rm = ei(E1), Lm = lr({}, ps, {
      pointerId: 0,
      width: 0,
      height: 0,
      pressure: 0,
      tangentialPressure: 0,
      tiltX: 0,
      tiltY: 0,
      twist: 0,
      pointerType: 0,
      isPrimary: 0
    }), km = ei(Lm), Cl = lr({}, gf, {
      touches: 0,
      targetTouches: 0,
      changedTouches: 0,
      altKey: 0,
      metaKey: 0,
      ctrlKey: 0,
      shiftKey: 0,
      getModifierState: Sp
    }), Mp = ei(Cl), D1 = lr({}, ki, {
      propertyName: 0,
      elapsedTime: 0,
      pseudoElement: 0
    }), Mu = ei(D1), th = lr({}, ps, {
      deltaX: function(e) {
        return "deltaX" in e ? e.deltaX : (
          // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive).
          "wheelDeltaX" in e ? -e.wheelDeltaX : 0
        );
      },
      deltaY: function(e) {
        return "deltaY" in e ? e.deltaY : (
          // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive).
          "wheelDeltaY" in e ? -e.wheelDeltaY : (
            // Fallback to `wheelDelta` for IE<9 and normalize (down is positive).
            "wheelDelta" in e ? -e.wheelDelta : 0
          )
        );
      },
      deltaZ: 0,
      // Browsers without "deltaMode" is reporting in raw wheel delta where one
      // notch on the scroll is always +/- 120, roughly equivalent to pixels.
      // A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or
      // ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size.
      deltaMode: 0
    }), xf = ei(th), rh = [9, 13, 27, 32], nh = 229, kd = Re && "CompositionEvent" in window, Id = null;
    Re && "documentMode" in document && (Id = document.documentMode);
    var Ep = Re && "TextEvent" in window && !Id, Im = Re && (!kd || Id && Id > 8 && Id <= 11), Dp = 32, Rp = String.fromCharCode(Dp);
    function ah() {
      ye("onBeforeInput", ["compositionend", "keypress", "textInput", "paste"]), ye("onCompositionEnd", ["compositionend", "focusout", "keydown", "keypress", "keyup", "mousedown"]), ye("onCompositionStart", ["compositionstart", "focusout", "keydown", "keypress", "keyup", "mousedown"]), ye("onCompositionUpdate", ["compositionupdate", "focusout", "keydown", "keypress", "keyup", "mousedown"]);
    }
    var Nd = !1;
    function Nm(e) {
      return (e.ctrlKey || e.altKey || e.metaKey) && // ctrlKey && altKey is equivalent to AltGr, and is not a command.
      !(e.ctrlKey && e.altKey);
    }
    function Lp(e) {
      switch (e) {
        case "compositionstart":
          return "onCompositionStart";
        case "compositionend":
          return "onCompositionEnd";
        case "compositionupdate":
          return "onCompositionUpdate";
      }
    }
    function R1(e, t) {
      return e === "keydown" && t.keyCode === nh;
    }
    function kp(e, t) {
      switch (e) {
        case "keyup":
          return rh.indexOf(t.keyCode) !== -1;
        case "keydown":
          return t.keyCode !== nh;
        case "keypress":
        case "mousedown":
        case "focusout":
          return !0;
        default:
          return !1;
      }
    }
    function ih(e) {
      var t = e.detail;
      return typeof t == "object" && "data" in t ? t.data : null;
    }
    function Od(e) {
      return e.locale === "ko";
    }
    var Eu = !1;
    function oh(e, t, m, N, V) {
      var de, Ee;
      if (kd ? de = Lp(t) : Eu ? kp(t, N) && (de = "onCompositionEnd") : R1(t, N) && (de = "onCompositionStart"), !de)
        return null;
      Im && !Od(N) && (!Eu && de === "onCompositionStart" ? Eu = Jv(V) : de === "onCompositionEnd" && Eu && (Ee = Qv()));
      var He = Hm(m, de);
      if (He.length > 0) {
        var $e = new Su(de, t, null, N, V);
        if (e.push({
          event: $e,
          listeners: He
        }), Ee)
          $e.data = Ee;
        else {
          var pt = ih(N);
          pt !== null && ($e.data = pt);
        }
      }
    }
    function Om(e, t) {
      switch (e) {
        case "compositionend":
          return ih(t);
        case "keypress":
          var m = t.which;
          return m !== Dp ? null : (Nd = !0, Rp);
        case "textInput":
          var N = t.data;
          return N === Rp && Nd ? null : N;
        default:
          return null;
      }
    }
    function L1(e, t) {
      if (Eu) {
        if (e === "compositionend" || !kd && kp(e, t)) {
          var m = Qv();
          return Dd(), Eu = !1, m;
        }
        return null;
      }
      switch (e) {
        case "paste":
          return null;
        case "keypress":
          if (!Nm(t)) {
            if (t.char && t.char.length > 1)
              return t.char;
            if (t.which)
              return String.fromCharCode(t.which);
          }
          return null;
        case "compositionend":
          return Im && !Od(t) ? null : t.data;
        default:
          return null;
      }
    }
    function lh(e, t, m, N, V) {
      var de;
      if (Ep ? de = Om(t, N) : de = L1(t, N), !de)
        return null;
      var Ee = Hm(m, "onBeforeInput");
      if (Ee.length > 0) {
        var He = new S1("onBeforeInput", "beforeinput", null, N, V);
        e.push({
          event: He,
          listeners: Ee
        }), He.data = de;
      }
    }
    function k1(e, t, m, N, V, de, Ee) {
      oh(e, t, m, N, V), lh(e, t, m, N, V);
    }
    var Pd = {
      color: !0,
      date: !0,
      datetime: !0,
      "datetime-local": !0,
      email: !0,
      month: !0,
      number: !0,
      password: !0,
      range: !0,
      search: !0,
      tel: !0,
      text: !0,
      time: !0,
      url: !0,
      week: !0
    };
    function Pm(e) {
      var t = e && e.nodeName && e.nodeName.toLowerCase();
      return t === "input" ? !!Pd[e.type] : t === "textarea";
    }
    /**
     * Checks if an event is supported in the current execution environment.
     *
     * NOTE: This will not work correctly for non-generic events such as `change`,
     * `reset`, `load`, `error`, and `select`.
     *
     * Borrows from Modernizr.
     *
     * @param {string} eventNameSuffix Event name, e.g. "click".
     * @return {boolean} True if the event is supported.
     * @internal
     * @license Modernizr 3.0.0pre (Custom Build) | MIT
     */
    function sh(e) {
      if (!Re)
        return !1;
      var t = "on" + e, m = t in document;
      if (!m) {
        var N = document.createElement("div");
        N.setAttribute(t, "return;"), m = typeof N[t] == "function";
      }
      return m;
    }
    function n() {
      ye("onChange", ["change", "click", "focusin", "focusout", "input", "keydown", "keyup", "selectionchange"]);
    }
    function v(e, t, m, N) {
      qu(N);
      var V = Hm(t, "onChange");
      if (V.length > 0) {
        var de = new Kv("onChange", "change", null, m, N);
        e.push({
          event: de,
          listeners: V
        });
      }
    }
    var F = null, re = null;
    function Te(e) {
      var t = e.nodeName && e.nodeName.toLowerCase();
      return t === "select" || t === "input" && e.type === "file";
    }
    function Ne(e) {
      var t = [];
      v(t, re, e, Qf(e)), tf(ot, t);
    }
    function ot(e) {
      ET(e, 0);
    }
    function zt(e) {
      var t = hh(e);
      if (qn(t))
        return e;
    }
    function Qt(e, t) {
      if (e === "change")
        return t;
    }
    var mr = !1;
    Re && (mr = sh("input") && (!document.documentMode || document.documentMode > 9));
    function Vr(e, t) {
      F = e, re = t, F.attachEvent("onpropertychange", Hr);
    }
    function Wr() {
      F && (F.detachEvent("onpropertychange", Hr), F = null, re = null);
    }
    function Hr(e) {
      e.propertyName === "value" && zt(re) && Ne(e);
    }
    function ln(e, t, m) {
      e === "focusin" ? (Wr(), Vr(t, m)) : e === "focusout" && Wr();
    }
    function pn(e, t) {
      if (e === "selectionchange" || e === "keyup" || e === "keydown")
        return zt(re);
    }
    function gn(e) {
      var t = e.nodeName;
      return t && t.toLowerCase() === "input" && (e.type === "checkbox" || e.type === "radio");
    }
    function di(e, t) {
      if (e === "click")
        return zt(t);
    }
    function fr(e, t) {
      if (e === "input" || e === "change")
        return zt(t);
    }
    function tr(e) {
      var t = e._wrapperState;
      !t || !t.controlled || e.type !== "number" || Fi(e, "number", e.value);
    }
    function vr(e, t, m, N, V, de, Ee) {
      var He = m ? hh(m) : window, $e, pt;
      if (Te(He) ? $e = Qt : Pm(He) ? mr ? $e = fr : ($e = pn, pt = ln) : gn(He) && ($e = di), $e) {
        var At = $e(t, m);
        if (At) {
          v(e, At, N, V);
          return;
        }
      }
      pt && pt(t, He, m), t === "focusout" && tr(He);
    }
    function Zr() {
      Ce("onMouseEnter", ["mouseout", "mouseover"]), Ce("onMouseLeave", ["mouseout", "mouseover"]), Ce("onPointerEnter", ["pointerout", "pointerover"]), Ce("onPointerLeave", ["pointerout", "pointerover"]);
    }
    function xn(e, t, m, N, V, de, Ee) {
      var He = t === "mouseover" || t === "pointerover", $e = t === "mouseout" || t === "pointerout";
      if (He && !Dv(N)) {
        var pt = N.relatedTarget || N.fromElement;
        if (pt && (_d(pt) || Yp(pt)))
          return;
      }
      if (!(!$e && !He)) {
        var At;
        if (V.window === V)
          At = V;
        else {
          var rr = V.ownerDocument;
          rr ? At = rr.defaultView || rr.parentWindow : At = window;
        }
        var er, pr;
        if ($e) {
          var yr = N.relatedTarget || N.toElement;
          if (er = m, pr = yr ? _d(yr) : null, pr !== null) {
            var Sr = Hi(pr);
            (pr !== Sr || pr.tag !== u && pr.tag !== c) && (pr = null);
          }
        } else
          er = null, pr = m;
        if (er !== pr) {
          var tn = qv, Ln = "onMouseLeave", Cn = "onMouseEnter", ca = "mouse";
          (t === "pointerout" || t === "pointerover") && (tn = km, Ln = "onPointerLeave", Cn = "onPointerEnter", ca = "pointer");
          var ia = er == null ? At : hh(er), cr = pr == null ? At : hh(pr), Mr = new tn(Ln, ca + "leave", er, N, V);
          Mr.target = ia, Mr.relatedTarget = cr;
          var dr = null, Yr = _d(V);
          if (Yr === m) {
            var un = new tn(Cn, ca + "enter", pr, N, V);
            un.target = cr, un.relatedTarget = ia, dr = un;
          }
          oE(e, Mr, dr, er, pr);
        }
      }
    }
    function In(e, t) {
      return e === t && (e !== 0 || 1 / e === 1 / t) || e !== e && t !== t;
    }
    var mn = typeof Object.is == "function" ? Object.is : In;
    function zn(e, t) {
      if (mn(e, t))
        return !0;
      if (typeof e != "object" || e === null || typeof t != "object" || t === null)
        return !1;
      var m = Object.keys(e), N = Object.keys(t);
      if (m.length !== N.length)
        return !1;
      for (var V = 0; V < m.length; V++) {
        var de = m[V];
        if (!Be.call(t, de) || !mn(e[de], t[de]))
          return !1;
      }
      return !0;
    }
    function Ii(e) {
      for (; e && e.firstChild; )
        e = e.firstChild;
      return e;
    }
    function pa(e) {
      for (; e; ) {
        if (e.nextSibling)
          return e.nextSibling;
        e = e.parentNode;
      }
    }
    function Ws(e, t) {
      for (var m = Ii(e), N = 0, V = 0; m; ) {
        if (m.nodeType === Qo) {
          if (V = N + m.textContent.length, N <= t && V >= t)
            return {
              node: m,
              offset: t - N
            };
          N = V;
        }
        m = Ii(pa(m));
      }
    }
    function I1(e) {
      var t = e.ownerDocument, m = t && t.defaultView || window, N = m.getSelection && m.getSelection();
      if (!N || N.rangeCount === 0)
        return null;
      var V = N.anchorNode, de = N.anchorOffset, Ee = N.focusNode, He = N.focusOffset;
      try {
        V.nodeType, Ee.nodeType;
      } catch {
        return null;
      }
      return B6(e, V, de, Ee, He);
    }
    function B6(e, t, m, N, V) {
      var de = 0, Ee = -1, He = -1, $e = 0, pt = 0, At = e, rr = null;
      e:
        for (; ; ) {
          for (var er = null; At === t && (m === 0 || At.nodeType === Qo) && (Ee = de + m), At === N && (V === 0 || At.nodeType === Qo) && (He = de + V), At.nodeType === Qo && (de += At.nodeValue.length), (er = At.firstChild) !== null; )
            rr = At, At = er;
          for (; ; ) {
            if (At === e)
              break e;
            if (rr === t && ++$e === m && (Ee = de), rr === N && ++pt === V && (He = de), (er = At.nextSibling) !== null)
              break;
            At = rr, rr = At.parentNode;
          }
          At = er;
        }
      return Ee === -1 || He === -1 ? null : {
        start: Ee,
        end: He
      };
    }
    function V6(e, t) {
      var m = e.ownerDocument || document, N = m && m.defaultView || window;
      if (N.getSelection) {
        var V = N.getSelection(), de = e.textContent.length, Ee = Math.min(t.start, de), He = t.end === void 0 ? Ee : Math.min(t.end, de);
        if (!V.extend && Ee > He) {
          var $e = He;
          He = Ee, Ee = $e;
        }
        var pt = Ws(e, Ee), At = Ws(e, He);
        if (pt && At) {
          if (V.rangeCount === 1 && V.anchorNode === pt.node && V.anchorOffset === pt.offset && V.focusNode === At.node && V.focusOffset === At.offset)
            return;
          var rr = m.createRange();
          rr.setStart(pt.node, pt.offset), V.removeAllRanges(), Ee > He ? (V.addRange(rr), V.extend(At.node, At.offset)) : (rr.setEnd(At.node, At.offset), V.addRange(rr));
        }
      }
    }
    function pT(e) {
      return e && e.nodeType === Qo;
    }
    function mT(e, t) {
      return !e || !t ? !1 : e === t ? !0 : pT(e) ? !1 : pT(t) ? mT(e, t.parentNode) : "contains" in e ? e.contains(t) : e.compareDocumentPosition ? !!(e.compareDocumentPosition(t) & 16) : !1;
    }
    function G6(e) {
      return e && e.ownerDocument && mT(e.ownerDocument.documentElement, e);
    }
    function U6(e) {
      try {
        return typeof e.contentWindow.location.href == "string";
      } catch {
        return !1;
      }
    }
    function yT() {
      for (var e = window, t = Rn(); t instanceof e.HTMLIFrameElement; ) {
        if (U6(t))
          e = t.contentWindow;
        else
          return t;
        t = Rn(e.document);
      }
      return t;
    }
    function N1(e) {
      var t = e && e.nodeName && e.nodeName.toLowerCase();
      return t && (t === "input" && (e.type === "text" || e.type === "search" || e.type === "tel" || e.type === "url" || e.type === "password") || t === "textarea" || e.contentEditable === "true");
    }
    function W6() {
      var e = yT();
      return {
        focusedElem: e,
        selectionRange: N1(e) ? X6(e) : null
      };
    }
    function Y6(e) {
      var t = yT(), m = e.focusedElem, N = e.selectionRange;
      if (t !== m && G6(m)) {
        N !== null && N1(m) && j6(m, N);
        for (var V = [], de = m; de = de.parentNode; )
          de.nodeType === zi && V.push({
            element: de,
            left: de.scrollLeft,
            top: de.scrollTop
          });
        typeof m.focus == "function" && m.focus();
        for (var Ee = 0; Ee < V.length; Ee++) {
          var He = V[Ee];
          He.element.scrollLeft = He.left, He.element.scrollTop = He.top;
        }
      }
    }
    function X6(e) {
      var t;
      return "selectionStart" in e ? t = {
        start: e.selectionStart,
        end: e.selectionEnd
      } : t = I1(e), t || {
        start: 0,
        end: 0
      };
    }
    function j6(e, t) {
      var m = t.start, N = t.end;
      N === void 0 && (N = m), "selectionStart" in e ? (e.selectionStart = m, e.selectionEnd = Math.min(N, e.value.length)) : V6(e, t);
    }
    var Z6 = Re && "documentMode" in document && document.documentMode <= 11;
    function $6() {
      ye("onSelect", ["focusout", "contextmenu", "dragend", "focusin", "keydown", "keyup", "mousedown", "mouseup", "selectionchange"]);
    }
    var uh = null, O1 = null, Ip = null, P1 = !1;
    function J6(e) {
      if ("selectionStart" in e && N1(e))
        return {
          start: e.selectionStart,
          end: e.selectionEnd
        };
      var t = e.ownerDocument && e.ownerDocument.defaultView || window, m = t.getSelection();
      return {
        anchorNode: m.anchorNode,
        anchorOffset: m.anchorOffset,
        focusNode: m.focusNode,
        focusOffset: m.focusOffset
      };
    }
    function Q6(e) {
      return e.window === e ? e.document : e.nodeType === lo ? e : e.ownerDocument;
    }
    function gT(e, t, m) {
      var N = Q6(m);
      if (!(P1 || uh == null || uh !== Rn(N))) {
        var V = J6(uh);
        if (!Ip || !zn(Ip, V)) {
          Ip = V;
          var de = Hm(O1, "onSelect");
          if (de.length > 0) {
            var Ee = new Kv("onSelect", "select", null, t, m);
            e.push({
              event: Ee,
              listeners: de
            }), Ee.target = uh;
          }
        }
      }
    }
    function K6(e, t, m, N, V, de, Ee) {
      var He = m ? hh(m) : window;
      switch (t) {
        case "focusin":
          (Pm(He) || He.contentEditable === "true") && (uh = He, O1 = m, Ip = null);
          break;
        case "focusout":
          uh = null, O1 = null, Ip = null;
          break;
        case "mousedown":
          P1 = !0;
          break;
        case "contextmenu":
        case "mouseup":
        case "dragend":
          P1 = !1, gT(e, N, V);
          break;
        case "selectionchange":
          if (Z6)
            break;
        case "keydown":
        case "keyup":
          gT(e, N, V);
      }
    }
    function Fm(e, t) {
      var m = {};
      return m[e.toLowerCase()] = t.toLowerCase(), m["Webkit" + e] = "webkit" + t, m["Moz" + e] = "moz" + t, m;
    }
    var fh = {
      animationend: Fm("Animation", "AnimationEnd"),
      animationiteration: Fm("Animation", "AnimationIteration"),
      animationstart: Fm("Animation", "AnimationStart"),
      transitionend: Fm("Transition", "TransitionEnd")
    }, F1 = {}, bT = {};
    Re && (bT = document.createElement("div").style, "AnimationEvent" in window || (delete fh.animationend.animation, delete fh.animationiteration.animation, delete fh.animationstart.animation), "TransitionEvent" in window || delete fh.transitionend.transition);
    function zm(e) {
      if (F1[e])
        return F1[e];
      if (!fh[e])
        return e;
      var t = fh[e];
      for (var m in t)
        if (t.hasOwnProperty(m) && m in bT)
          return F1[e] = t[m];
      return e;
    }
    var xT = zm("animationend"), TT = zm("animationiteration"), CT = zm("animationstart"), AT = zm("transitionend"), wT = /* @__PURE__ */ new Map(), ST = ["abort", "auxClick", "cancel", "canPlay", "canPlayThrough", "click", "close", "contextMenu", "copy", "cut", "drag", "dragEnd", "dragEnter", "dragExit", "dragLeave", "dragOver", "dragStart", "drop", "durationChange", "emptied", "encrypted", "ended", "error", "gotPointerCapture", "input", "invalid", "keyDown", "keyPress", "keyUp", "load", "loadedData", "loadedMetadata", "loadStart", "lostPointerCapture", "mouseDown", "mouseMove", "mouseOut", "mouseOver", "mouseUp", "paste", "pause", "play", "playing", "pointerCancel", "pointerDown", "pointerMove", "pointerOut", "pointerOver", "pointerUp", "progress", "rateChange", "reset", "resize", "seeked", "seeking", "stalled", "submit", "suspend", "timeUpdate", "touchCancel", "touchEnd", "touchStart", "volumeChange", "scroll", "toggle", "touchMove", "waiting", "wheel"];
    function Ic(e, t) {
      wT.set(e, t), ye(t, [e]);
    }
    function q6() {
      for (var e = 0; e < ST.length; e++) {
        var t = ST[e], m = t.toLowerCase(), N = t[0].toUpperCase() + t.slice(1);
        Ic(m, "on" + N);
      }
      Ic(xT, "onAnimationEnd"), Ic(TT, "onAnimationIteration"), Ic(CT, "onAnimationStart"), Ic("dblclick", "onDoubleClick"), Ic("focusin", "onFocus"), Ic("focusout", "onBlur"), Ic(AT, "onTransitionEnd");
    }
    function eE(e, t, m, N, V, de, Ee) {
      var He = wT.get(t);
      if (He !== void 0) {
        var $e = Kv, pt = t;
        switch (t) {
          case "keypress":
            if (yf(N) === 0)
              return;
          case "keydown":
          case "keyup":
            $e = Rm;
            break;
          case "focusin":
            pt = "focus", $e = Ld;
            break;
          case "focusout":
            pt = "blur", $e = Ld;
            break;
          case "beforeblur":
          case "afterblur":
            $e = Ld;
            break;
          case "click":
            if (N.button === 2)
              return;
          case "auxclick":
          case "dblclick":
          case "mousedown":
          case "mousemove":
          case "mouseup":
          case "mouseout":
          case "mouseover":
          case "contextmenu":
            $e = qv;
            break;
          case "drag":
          case "dragend":
          case "dragenter":
          case "dragexit":
          case "dragleave":
          case "dragover":
          case "dragstart":
          case "drop":
            $e = Am;
            break;
          case "touchcancel":
          case "touchend":
          case "touchmove":
          case "touchstart":
            $e = Mp;
            break;
          case xT:
          case TT:
          case CT:
            $e = A1;
            break;
          case AT:
            $e = Mu;
            break;
          case "scroll":
            $e = Cp;
            break;
          case "wheel":
            $e = xf;
            break;
          case "copy":
          case "cut":
          case "paste":
            $e = Sm;
            break;
          case "gotpointercapture":
          case "lostpointercapture":
          case "pointercancel":
          case "pointerdown":
          case "pointermove":
          case "pointerout":
          case "pointerover":
          case "pointerup":
            $e = km;
            break;
        }
        var At = (de & Ls) !== 0;
        {
          var rr = !At && // TODO: ideally, we'd eventually add all events from
          // nonDelegatedEvents list in DOMPluginEventSystem.
          // Then we can remove this special list.
          // This is a breaking change that can wait until React 18.
          t === "scroll", er = aE(m, He, N.type, At, rr);
          if (er.length > 0) {
            var pr = new $e(He, pt, null, N, V);
            e.push({
              event: pr,
              listeners: er
            });
          }
        }
      }
    }
    q6(), Zr(), n(), $6(), ah();
    function tE(e, t, m, N, V, de, Ee) {
      eE(e, t, m, N, V, de);
      var He = (de & hd) === 0;
      He && (xn(e, t, m, N, V), vr(e, t, m, N, V), K6(e, t, m, N, V), k1(e, t, m, N, V));
    }
    var Np = ["abort", "canplay", "canplaythrough", "durationchange", "emptied", "encrypted", "ended", "error", "loadeddata", "loadedmetadata", "loadstart", "pause", "play", "playing", "progress", "ratechange", "resize", "seeked", "seeking", "stalled", "suspend", "timeupdate", "volumechange", "waiting"], z1 = new Set(["cancel", "close", "invalid", "load", "scroll", "toggle"].concat(Np));
    function MT(e, t, m) {
      var N = e.type || "unknown-event";
      e.currentTarget = m, Vl(N, t, void 0, e), e.currentTarget = null;
    }
    function rE(e, t, m) {
      var N;
      if (m)
        for (var V = t.length - 1; V >= 0; V--) {
          var de = t[V], Ee = de.instance, He = de.currentTarget, $e = de.listener;
          if (Ee !== N && e.isPropagationStopped())
            return;
          MT(e, $e, He), N = Ee;
        }
      else
        for (var pt = 0; pt < t.length; pt++) {
          var At = t[pt], rr = At.instance, er = At.currentTarget, pr = At.listener;
          if (rr !== N && e.isPropagationStopped())
            return;
          MT(e, pr, er), N = rr;
        }
    }
    function ET(e, t) {
      for (var m = (t & Ls) !== 0, N = 0; N < e.length; N++) {
        var V = e[N], de = V.event, Ee = V.listeners;
        rE(de, Ee, m);
      }
      rc();
    }
    function nE(e, t, m, N, V) {
      var de = Qf(m), Ee = [];
      tE(Ee, e, N, m, de, t), ET(Ee, t);
    }
    function ti(e, t) {
      z1.has(e) || M('Did not expect a listenToNonDelegatedEvent() call for "%s". This is a bug in React. Please file an issue.', e);
      var m = !1, N = N8(t), V = lE(e);
      N.has(V) || (DT(t, e, Qu, m), N.add(V));
    }
    function _1(e, t, m) {
      z1.has(e) && !t && M('Did not expect a listenToNativeEvent() call for "%s" in the bubble phase. This is a bug in React. Please file an issue.', e);
      var N = 0;
      t && (N |= Ls), DT(m, e, N, t);
    }
    var _m = "_reactListening" + Math.random().toString(36).slice(2);
    function Op(e) {
      if (!e[_m]) {
        e[_m] = !0, oe.forEach(function(m) {
          m !== "selectionchange" && (z1.has(m) || _1(m, !1, e), _1(m, !0, e));
        });
        var t = e.nodeType === lo ? e : e.ownerDocument;
        t !== null && (t[_m] || (t[_m] = !0, _1("selectionchange", !1, t)));
      }
    }
    function DT(e, t, m, N, V) {
      var de = Li(e, t, m), Ee = void 0;
      rf && (t === "touchstart" || t === "touchmove" || t === "wheel") && (Ee = !0), e = e, N ? Ee !== void 0 ? $v(e, t, de, Ee) : Gs(e, t, de) : Ee !== void 0 ? Tp(e, t, de, Ee) : Dc(e, t, de);
    }
    function RT(e, t) {
      return e === t || e.nodeType === La && e.parentNode === t;
    }
    function H1(e, t, m, N, V) {
      var de = N;
      if (!(t & Hl) && !(t & Qu)) {
        var Ee = V;
        if (N !== null) {
          var He = N;
          e:
            for (; ; ) {
              if (He === null)
                return;
              var $e = He.tag;
              if ($e === l || $e === f) {
                var pt = He.stateNode.containerInfo;
                if (RT(pt, Ee))
                  break;
                if ($e === f)
                  for (var At = He.return; At !== null; ) {
                    var rr = At.tag;
                    if (rr === l || rr === f) {
                      var er = At.stateNode.containerInfo;
                      if (RT(er, Ee))
                        return;
                    }
                    At = At.return;
                  }
                for (; pt !== null; ) {
                  var pr = _d(pt);
                  if (pr === null)
                    return;
                  var yr = pr.tag;
                  if (yr === u || yr === c) {
                    He = de = pr;
                    continue e;
                  }
                  pt = pt.parentNode;
                }
              }
              He = He.return;
            }
        }
      }
      tf(function() {
        return nE(e, t, m, de);
      });
    }
    function Pp(e, t, m) {
      return {
        instance: e,
        listener: t,
        currentTarget: m
      };
    }
    function aE(e, t, m, N, V, de) {
      for (var Ee = t !== null ? t + "Capture" : null, He = N ? Ee : t, $e = [], pt = e, At = null; pt !== null; ) {
        var rr = pt, er = rr.stateNode, pr = rr.tag;
        if (pr === u && er !== null && (At = er, He !== null)) {
          var yr = Ns(pt, He);
          yr != null && $e.push(Pp(pt, yr, At));
        }
        if (V)
          break;
        pt = pt.return;
      }
      return $e;
    }
    function Hm(e, t) {
      for (var m = t + "Capture", N = [], V = e; V !== null; ) {
        var de = V, Ee = de.stateNode, He = de.tag;
        if (He === u && Ee !== null) {
          var $e = Ee, pt = Ns(V, m);
          pt != null && N.unshift(Pp(V, pt, $e));
          var At = Ns(V, t);
          At != null && N.push(Pp(V, At, $e));
        }
        V = V.return;
      }
      return N;
    }
    function ch(e) {
      if (e === null)
        return null;
      do
        e = e.return;
      while (e && e.tag !== u);
      return e || null;
    }
    function iE(e, t) {
      for (var m = e, N = t, V = 0, de = m; de; de = ch(de))
        V++;
      for (var Ee = 0, He = N; He; He = ch(He))
        Ee++;
      for (; V - Ee > 0; )
        m = ch(m), V--;
      for (; Ee - V > 0; )
        N = ch(N), Ee--;
      for (var $e = V; $e--; ) {
        if (m === N || N !== null && m === N.alternate)
          return m;
        m = ch(m), N = ch(N);
      }
      return null;
    }
    function LT(e, t, m, N, V) {
      for (var de = t._reactName, Ee = [], He = m; He !== null && He !== N; ) {
        var $e = He, pt = $e.alternate, At = $e.stateNode, rr = $e.tag;
        if (pt !== null && pt === N)
          break;
        if (rr === u && At !== null) {
          var er = At;
          if (V) {
            var pr = Ns(He, de);
            pr != null && Ee.unshift(Pp(He, pr, er));
          } else if (!V) {
            var yr = Ns(He, de);
            yr != null && Ee.push(Pp(He, yr, er));
          }
        }
        He = He.return;
      }
      Ee.length !== 0 && e.push({
        event: t,
        listeners: Ee
      });
    }
    function oE(e, t, m, N, V) {
      var de = N && V ? iE(N, V) : null;
      N !== null && LT(e, t, N, de, !1), V !== null && m !== null && LT(e, m, V, de, !0);
    }
    function lE(e, t) {
      return e + "__bubble";
    }
    var Al = !1, Fp = "dangerouslySetInnerHTML", Bm = "suppressContentEditableWarning", Nc = "suppressHydrationWarning", kT = "autoFocus", Fd = "children", zd = "style", Vm = "__html", B1, Gm, zp, IT, Um, NT, OT;
    B1 = {
      // There are working polyfills for <dialog>. Let people use it.
      dialog: !0,
      // Electron ships a custom <webview> tag to display external web content in
      // an isolated frame and process.
      // This tag is not present in non Electron environments such as JSDom which
      // is often used for testing purposes.
      // @see https://electronjs.org/docs/api/webview-tag
      webview: !0
    }, Gm = function(e, t) {
      Jf(e, t), Rs(e, t), Ev(e, t, {
        registrationNameDependencies: ve,
        possibleRegistrationNames: fe
      });
    }, NT = Re && !document.documentMode, zp = function(e, t, m) {
      if (!Al) {
        var N = Wm(m), V = Wm(t);
        V !== N && (Al = !0, M("Prop `%s` did not match. Server: %s Client: %s", e, JSON.stringify(V), JSON.stringify(N)));
      }
    }, IT = function(e) {
      if (!Al) {
        Al = !0;
        var t = [];
        e.forEach(function(m) {
          t.push(m);
        }), M("Extra attributes from the server: %s", t);
      }
    }, Um = function(e, t) {
      t === !1 ? M("Expected `%s` listener to be a function, instead got `false`.\n\nIf you used to conditionally omit it with %s={condition && value}, pass %s={condition ? value : undefined} instead.", e, e, e) : M("Expected `%s` listener to be a function, instead got a value of `%s` type.", e, typeof t);
    }, OT = function(e, t) {
      var m = e.namespaceURI === zl ? e.ownerDocument.createElement(e.tagName) : e.ownerDocument.createElementNS(e.namespaceURI, e.tagName);
      return m.innerHTML = t, m.innerHTML;
    };
    var sE = /\r\n?/g, uE = /\u0000|\uFFFD/g;
    function Wm(e) {
      H(e);
      var t = typeof e == "string" ? e : "" + e;
      return t.replace(sE, `
`).replace(uE, "");
    }
    function Ym(e, t, m, N) {
      var V = Wm(t), de = Wm(e);
      if (de !== V && (N && (Al || (Al = !0, M('Text content did not match. Server: "%s" Client: "%s"', de, V))), m && ne))
        throw new Error("Text content does not match server-rendered HTML.");
    }
    function PT(e) {
      return e.nodeType === lo ? e : e.ownerDocument;
    }
    function fE() {
    }
    function Xm(e) {
      e.onclick = fE;
    }
    function cE(e, t, m, N, V) {
      for (var de in N)
        if (N.hasOwnProperty(de)) {
          var Ee = N[de];
          if (de === zd)
            Ee && Object.freeze(Ee), gv(t, Ee);
          else if (de === Fp) {
            var He = Ee ? Ee[Vm] : void 0;
            He != null && ad(t, He);
          } else if (de === Fd)
            if (typeof Ee == "string") {
              var $e = e !== "textarea" || Ee !== "";
              $e && Yf(t, Ee);
            } else
              typeof Ee == "number" && Yf(t, "" + Ee);
          else
            de === Bm || de === Nc || de === kT || (ve.hasOwnProperty(de) ? Ee != null && (typeof Ee != "function" && Um(de, Ee), de === "onScroll" && ti("scroll", t)) : Ee != null && Ue(t, de, Ee, V));
        }
    }
    function dE(e, t, m, N) {
      for (var V = 0; V < t.length; V += 2) {
        var de = t[V], Ee = t[V + 1];
        de === zd ? gv(e, Ee) : de === Fp ? ad(e, Ee) : de === Fd ? Yf(e, Ee) : Ue(e, de, Ee, N);
      }
    }
    function vE(e, t, m, N) {
      var V, de = PT(m), Ee, He = N;
      if (He === zl && (He = Wf(e)), He === zl) {
        if (V = _l(e, t), !V && e !== e.toLowerCase() && M("<%s /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.", e), e === "script") {
          var $e = de.createElement("div");
          $e.innerHTML = "<script><\/script>";
          var pt = $e.firstChild;
          Ee = $e.removeChild(pt);
        } else if (typeof t.is == "string")
          Ee = de.createElement(e, {
            is: t.is
          });
        else if (Ee = de.createElement(e), e === "select") {
          var At = Ee;
          t.multiple ? At.multiple = !0 : t.size && (At.size = t.size);
        }
      } else
        Ee = de.createElementNS(He, e);
      return He === zl && !V && Object.prototype.toString.call(Ee) === "[object HTMLUnknownElement]" && !Be.call(B1, e) && (B1[e] = !0, M("The tag <%s> is unrecognized in this browser. If you meant to render a React component, start its name with an uppercase letter.", e)), Ee;
    }
    function hE(e, t) {
      return PT(t).createTextNode(e);
    }
    function pE(e, t, m, N) {
      var V = _l(t, m);
      Gm(t, m);
      var de;
      switch (t) {
        case "dialog":
          ti("cancel", e), ti("close", e), de = m;
          break;
        case "iframe":
        case "object":
        case "embed":
          ti("load", e), de = m;
          break;
        case "video":
        case "audio":
          for (var Ee = 0; Ee < Np.length; Ee++)
            ti(Np[Ee], e);
          de = m;
          break;
        case "source":
          ti("error", e), de = m;
          break;
        case "img":
        case "image":
        case "link":
          ti("error", e), ti("load", e), de = m;
          break;
        case "details":
          ti("toggle", e), de = m;
          break;
        case "input":
          xa(e, m), de = Fa(e, m), ti("invalid", e);
          break;
        case "option":
          mi(e, m), de = m;
          break;
        case "select":
          Ms(e, m), de = Fl(e, m), ti("invalid", e);
          break;
        case "textarea":
          sv(e, m), de = Xu(e, m), ti("invalid", e);
          break;
        default:
          de = m;
      }
      switch (Ju(t, de), cE(t, e, N, de, V), t) {
        case "input":
          Mn(e), pi(e, m, !1);
          break;
        case "textarea":
          Mn(e), uv(e);
          break;
        case "option":
          wi(e, m);
          break;
        case "select":
          Es(e, m);
          break;
        default:
          typeof de.onClick == "function" && Xm(e);
          break;
      }
    }
    function mE(e, t, m, N, V) {
      Gm(t, N);
      var de = null, Ee, He;
      switch (t) {
        case "input":
          Ee = Fa(e, m), He = Fa(e, N), de = [];
          break;
        case "select":
          Ee = Fl(e, m), He = Fl(e, N), de = [];
          break;
        case "textarea":
          Ee = Xu(e, m), He = Xu(e, N), de = [];
          break;
        default:
          Ee = m, He = N, typeof Ee.onClick != "function" && typeof He.onClick == "function" && Xm(e);
          break;
      }
      Ju(t, He);
      var $e, pt, At = null;
      for ($e in Ee)
        if (!(He.hasOwnProperty($e) || !Ee.hasOwnProperty($e) || Ee[$e] == null))
          if ($e === zd) {
            var rr = Ee[$e];
            for (pt in rr)
              rr.hasOwnProperty(pt) && (At || (At = {}), At[pt] = "");
          } else
            $e === Fp || $e === Fd || $e === Bm || $e === Nc || $e === kT || (ve.hasOwnProperty($e) ? de || (de = []) : (de = de || []).push($e, null));
      for ($e in He) {
        var er = He[$e], pr = Ee != null ? Ee[$e] : void 0;
        if (!(!He.hasOwnProperty($e) || er === pr || er == null && pr == null))
          if ($e === zd)
            if (er && Object.freeze(er), pr) {
              for (pt in pr)
                pr.hasOwnProperty(pt) && (!er || !er.hasOwnProperty(pt)) && (At || (At = {}), At[pt] = "");
              for (pt in er)
                er.hasOwnProperty(pt) && pr[pt] !== er[pt] && (At || (At = {}), At[pt] = er[pt]);
            } else
              At || (de || (de = []), de.push($e, At)), At = er;
          else if ($e === Fp) {
            var yr = er ? er[Vm] : void 0, Sr = pr ? pr[Vm] : void 0;
            yr != null && Sr !== yr && (de = de || []).push($e, yr);
          } else
            $e === Fd ? (typeof er == "string" || typeof er == "number") && (de = de || []).push($e, "" + er) : $e === Bm || $e === Nc || (ve.hasOwnProperty($e) ? (er != null && (typeof er != "function" && Um($e, er), $e === "onScroll" && ti("scroll", e)), !de && pr !== er && (de = [])) : (de = de || []).push($e, er));
      }
      return At && (cu(At, He[zd]), (de = de || []).push(zd, At)), de;
    }
    function yE(e, t, m, N, V) {
      m === "input" && V.type === "radio" && V.name != null && _a(e, V);
      var de = _l(m, N), Ee = _l(m, V);
      switch (dE(e, t, de, Ee), m) {
        case "input":
          si(e, V);
          break;
        case "textarea":
          ju(e, V);
          break;
        case "select":
          ts(e, V);
          break;
      }
    }
    function gE(e) {
      {
        var t = e.toLowerCase();
        return $f.hasOwnProperty(t) && $f[t] || null;
      }
    }
    function bE(e, t, m, N, V, de, Ee) {
      var He, $e;
      switch (He = _l(t, m), Gm(t, m), t) {
        case "dialog":
          ti("cancel", e), ti("close", e);
          break;
        case "iframe":
        case "object":
        case "embed":
          ti("load", e);
          break;
        case "video":
        case "audio":
          for (var pt = 0; pt < Np.length; pt++)
            ti(Np[pt], e);
          break;
        case "source":
          ti("error", e);
          break;
        case "img":
        case "image":
        case "link":
          ti("error", e), ti("load", e);
          break;
        case "details":
          ti("toggle", e);
          break;
        case "input":
          xa(e, m), ti("invalid", e);
          break;
        case "option":
          mi(e, m);
          break;
        case "select":
          Ms(e, m), ti("invalid", e);
          break;
        case "textarea":
          sv(e, m), ti("invalid", e);
          break;
      }
      Ju(t, m);
      {
        $e = /* @__PURE__ */ new Set();
        for (var At = e.attributes, rr = 0; rr < At.length; rr++) {
          var er = At[rr].name.toLowerCase();
          switch (er) {
            case "value":
              break;
            case "checked":
              break;
            case "selected":
              break;
            default:
              $e.add(At[rr].name);
          }
        }
      }
      var pr = null;
      for (var yr in m)
        if (m.hasOwnProperty(yr)) {
          var Sr = m[yr];
          if (yr === Fd)
            typeof Sr == "string" ? e.textContent !== Sr && (m[Nc] !== !0 && Ym(e.textContent, Sr, de, Ee), pr = [Fd, Sr]) : typeof Sr == "number" && e.textContent !== "" + Sr && (m[Nc] !== !0 && Ym(e.textContent, Sr, de, Ee), pr = [Fd, "" + Sr]);
          else if (ve.hasOwnProperty(yr))
            Sr != null && (typeof Sr != "function" && Um(yr, Sr), yr === "onScroll" && ti("scroll", e));
          else if (Ee && // Convince Flow we've calculated it (it's DEV-only in this method.)
          typeof He == "boolean") {
            var tn = void 0, Ln = He && se ? null : wt(yr);
            if (m[Nc] !== !0) {
              if (!(yr === Bm || yr === Nc || // Controlled attributes are not validated
              // TODO: Only ignore them on controlled tags.
              yr === "value" || yr === "checked" || yr === "selected")) {
                if (yr === Fp) {
                  var Cn = e.innerHTML, ca = Sr ? Sr[Vm] : void 0;
                  if (ca != null) {
                    var ia = OT(e, ca);
                    ia !== Cn && zp(yr, Cn, ia);
                  }
                } else if (yr === zd) {
                  if ($e.delete(yr), NT) {
                    var cr = sp(Sr);
                    tn = e.getAttribute("style"), cr !== tn && zp(yr, tn, cr);
                  }
                } else if (He && !se)
                  $e.delete(yr.toLowerCase()), tn = qe(e, yr, Sr), Sr !== tn && zp(yr, tn, Sr);
                else if (!Xe(yr, Ln, He) && !ut(yr, Sr, Ln, He)) {
                  var Mr = !1;
                  if (Ln !== null)
                    $e.delete(Ln.attributeName), tn = Wt(e, yr, Sr, Ln);
                  else {
                    var dr = N;
                    if (dr === zl && (dr = Wf(t)), dr === zl)
                      $e.delete(yr.toLowerCase());
                    else {
                      var Yr = gE(yr);
                      Yr !== null && Yr !== yr && (Mr = !0, $e.delete(Yr)), $e.delete(yr);
                    }
                    tn = qe(e, yr, Sr);
                  }
                  var un = se;
                  !un && Sr !== tn && !Mr && zp(yr, tn, Sr);
                }
              }
            }
          }
        }
      switch (Ee && // $FlowFixMe - Should be inferred as not undefined.
      $e.size > 0 && m[Nc] !== !0 && IT($e), t) {
        case "input":
          Mn(e), pi(e, m, !0);
          break;
        case "textarea":
          Mn(e), uv(e);
          break;
        case "select":
        case "option":
          break;
        default:
          typeof m.onClick == "function" && Xm(e);
          break;
      }
      return pr;
    }
    function xE(e, t, m) {
      var N = e.nodeValue !== t;
      return N;
    }
    function V1(e, t) {
      {
        if (Al)
          return;
        Al = !0, M("Did not expect server HTML to contain a <%s> in <%s>.", t.nodeName.toLowerCase(), e.nodeName.toLowerCase());
      }
    }
    function G1(e, t) {
      {
        if (Al)
          return;
        Al = !0, M('Did not expect server HTML to contain the text node "%s" in <%s>.', t.nodeValue, e.nodeName.toLowerCase());
      }
    }
    function U1(e, t, m) {
      {
        if (Al)
          return;
        Al = !0, M("Expected server HTML to contain a matching <%s> in <%s>.", t, e.nodeName.toLowerCase());
      }
    }
    function W1(e, t) {
      {
        if (t === "" || Al)
          return;
        Al = !0, M('Expected server HTML to contain a matching text node for "%s" in <%s>.', t, e.nodeName.toLowerCase());
      }
    }
    function TE(e, t, m) {
      switch (t) {
        case "input":
          ri(e, m);
          return;
        case "textarea":
          nd(e, m);
          return;
        case "select":
          rs(e, m);
          return;
      }
    }
    var _p = function() {
    }, Hp = function() {
    };
    {
      var CE = ["address", "applet", "area", "article", "aside", "base", "basefont", "bgsound", "blockquote", "body", "br", "button", "caption", "center", "col", "colgroup", "dd", "details", "dir", "div", "dl", "dt", "embed", "fieldset", "figcaption", "figure", "footer", "form", "frame", "frameset", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "iframe", "img", "input", "isindex", "li", "link", "listing", "main", "marquee", "menu", "menuitem", "meta", "nav", "noembed", "noframes", "noscript", "object", "ol", "p", "param", "plaintext", "pre", "script", "section", "select", "source", "style", "summary", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "title", "tr", "track", "ul", "wbr", "xmp"], FT = [
        "applet",
        "caption",
        "html",
        "table",
        "td",
        "th",
        "marquee",
        "object",
        "template",
        // https://html.spec.whatwg.org/multipage/syntax.html#html-integration-point
        // TODO: Distinguish by namespace here -- for <title>, including it here
        // errs on the side of fewer warnings
        "foreignObject",
        "desc",
        "title"
      ], AE = FT.concat(["button"]), wE = ["dd", "dt", "li", "option", "optgroup", "p", "rp", "rt"], zT = {
        current: null,
        formTag: null,
        aTagInScope: null,
        buttonTagInScope: null,
        nobrTagInScope: null,
        pTagInButtonScope: null,
        listItemTagAutoclosing: null,
        dlItemTagAutoclosing: null
      };
      Hp = function(e, t) {
        var m = lr({}, e || zT), N = {
          tag: t
        };
        return FT.indexOf(t) !== -1 && (m.aTagInScope = null, m.buttonTagInScope = null, m.nobrTagInScope = null), AE.indexOf(t) !== -1 && (m.pTagInButtonScope = null), CE.indexOf(t) !== -1 && t !== "address" && t !== "div" && t !== "p" && (m.listItemTagAutoclosing = null, m.dlItemTagAutoclosing = null), m.current = N, t === "form" && (m.formTag = N), t === "a" && (m.aTagInScope = N), t === "button" && (m.buttonTagInScope = N), t === "nobr" && (m.nobrTagInScope = N), t === "p" && (m.pTagInButtonScope = N), t === "li" && (m.listItemTagAutoclosing = N), (t === "dd" || t === "dt") && (m.dlItemTagAutoclosing = N), m;
      };
      var SE = function(e, t) {
        switch (t) {
          case "select":
            return e === "option" || e === "optgroup" || e === "#text";
          case "optgroup":
            return e === "option" || e === "#text";
          case "option":
            return e === "#text";
          case "tr":
            return e === "th" || e === "td" || e === "style" || e === "script" || e === "template";
          case "tbody":
          case "thead":
          case "tfoot":
            return e === "tr" || e === "style" || e === "script" || e === "template";
          case "colgroup":
            return e === "col" || e === "template";
          case "table":
            return e === "caption" || e === "colgroup" || e === "tbody" || e === "tfoot" || e === "thead" || e === "style" || e === "script" || e === "template";
          case "head":
            return e === "base" || e === "basefont" || e === "bgsound" || e === "link" || e === "meta" || e === "title" || e === "noscript" || e === "noframes" || e === "style" || e === "script" || e === "template";
          case "html":
            return e === "head" || e === "body" || e === "frameset";
          case "frameset":
            return e === "frame";
          case "#document":
            return e === "html";
        }
        switch (e) {
          case "h1":
          case "h2":
          case "h3":
          case "h4":
          case "h5":
          case "h6":
            return t !== "h1" && t !== "h2" && t !== "h3" && t !== "h4" && t !== "h5" && t !== "h6";
          case "rp":
          case "rt":
            return wE.indexOf(t) === -1;
          case "body":
          case "caption":
          case "col":
          case "colgroup":
          case "frameset":
          case "frame":
          case "head":
          case "html":
          case "tbody":
          case "td":
          case "tfoot":
          case "th":
          case "thead":
          case "tr":
            return t == null;
        }
        return !0;
      }, ME = function(e, t) {
        switch (e) {
          case "address":
          case "article":
          case "aside":
          case "blockquote":
          case "center":
          case "details":
          case "dialog":
          case "dir":
          case "div":
          case "dl":
          case "fieldset":
          case "figcaption":
          case "figure":
          case "footer":
          case "header":
          case "hgroup":
          case "main":
          case "menu":
          case "nav":
          case "ol":
          case "p":
          case "section":
          case "summary":
          case "ul":
          case "pre":
          case "listing":
          case "table":
          case "hr":
          case "xmp":
          case "h1":
          case "h2":
          case "h3":
          case "h4":
          case "h5":
          case "h6":
            return t.pTagInButtonScope;
          case "form":
            return t.formTag || t.pTagInButtonScope;
          case "li":
            return t.listItemTagAutoclosing;
          case "dd":
          case "dt":
            return t.dlItemTagAutoclosing;
          case "button":
            return t.buttonTagInScope;
          case "a":
            return t.aTagInScope;
          case "nobr":
            return t.nobrTagInScope;
        }
        return null;
      }, _T = {};
      _p = function(e, t, m) {
        m = m || zT;
        var N = m.current, V = N && N.tag;
        t != null && (e != null && M("validateDOMNesting: when childText is passed, childTag should be null"), e = "#text");
        var de = SE(e, V) ? null : N, Ee = de ? null : ME(e, m), He = de || Ee;
        if (He) {
          var $e = He.tag, pt = !!de + "|" + e + "|" + $e;
          if (!_T[pt]) {
            _T[pt] = !0;
            var At = e, rr = "";
            if (e === "#text" ? /\S/.test(t) ? At = "Text nodes" : (At = "Whitespace text nodes", rr = " Make sure you don't have any extra whitespace between tags on each line of your source code.") : At = "<" + e + ">", de) {
              var er = "";
              $e === "table" && e === "tr" && (er += " Add a <tbody>, <thead> or <tfoot> to your code to match the DOM tree generated by the browser."), M("validateDOMNesting(...): %s cannot appear as a child of <%s>.%s%s", At, $e, rr, er);
            } else
              M("validateDOMNesting(...): %s cannot appear as a descendant of <%s>.", At, $e);
          }
        }
      };
    }
    var jm = "suppressHydrationWarning", Zm = "$", $m = "/$", Bp = "$?", Vp = "$!", EE = "style", Y1 = null, X1 = null;
    function DE(e) {
      var t, m, N = e.nodeType;
      switch (N) {
        case lo:
        case ns: {
          t = N === lo ? "#document" : "#fragment";
          var V = e.documentElement;
          m = V ? V.namespaceURI : Zu(null, "");
          break;
        }
        default: {
          var de = N === La ? e.parentNode : e, Ee = de.namespaceURI || null;
          t = de.tagName, m = Zu(Ee, t);
          break;
        }
      }
      {
        var He = t.toLowerCase(), $e = Hp(null, He);
        return {
          namespace: m,
          ancestorInfo: $e
        };
      }
    }
    function RE(e, t, m) {
      {
        var N = e, V = Zu(N.namespace, t), de = Hp(N.ancestorInfo, t);
        return {
          namespace: V,
          ancestorInfo: de
        };
      }
    }
    function rH(e) {
      return e;
    }
    function LE(e) {
      Y1 = Mc(), X1 = W6();
      var t = null;
      return Wo(!1), t;
    }
    function kE(e) {
      Y6(X1), Wo(Y1), Y1 = null, X1 = null;
    }
    function IE(e, t, m, N, V) {
      var de;
      {
        var Ee = N;
        if (_p(e, null, Ee.ancestorInfo), typeof t.children == "string" || typeof t.children == "number") {
          var He = "" + t.children, $e = Hp(Ee.ancestorInfo, e);
          _p(null, He, $e);
        }
        de = Ee.namespace;
      }
      var pt = vE(e, t, m, de);
      return Wp(V, pt), e2(pt, t), pt;
    }
    function NE(e, t) {
      e.appendChild(t);
    }
    function OE(e, t, m, N, V) {
      switch (pE(e, t, m, N), t) {
        case "button":
        case "input":
        case "select":
        case "textarea":
          return !!m.autoFocus;
        case "img":
          return !0;
        default:
          return !1;
      }
    }
    function PE(e, t, m, N, V, de) {
      {
        var Ee = de;
        if (typeof N.children != typeof m.children && (typeof N.children == "string" || typeof N.children == "number")) {
          var He = "" + N.children, $e = Hp(Ee.ancestorInfo, t);
          _p(null, He, $e);
        }
      }
      return mE(e, t, m, N);
    }
    function j1(e, t) {
      return e === "textarea" || e === "noscript" || typeof t.children == "string" || typeof t.children == "number" || typeof t.dangerouslySetInnerHTML == "object" && t.dangerouslySetInnerHTML !== null && t.dangerouslySetInnerHTML.__html != null;
    }
    function FE(e, t, m, N) {
      {
        var V = m;
        _p(null, e, V.ancestorInfo);
      }
      var de = hE(e, t);
      return Wp(N, de), de;
    }
    function zE() {
      var e = window.event;
      return e === void 0 ? ds : Zv(e.type);
    }
    var Z1 = typeof setTimeout == "function" ? setTimeout : void 0, _E = typeof clearTimeout == "function" ? clearTimeout : void 0, $1 = -1, HT = typeof Promise == "function" ? Promise : void 0, HE = typeof queueMicrotask == "function" ? queueMicrotask : typeof HT < "u" ? function(e) {
      return HT.resolve(null).then(e).catch(BE);
    } : Z1;
    function BE(e) {
      setTimeout(function() {
        throw e;
      });
    }
    function VE(e, t, m, N) {
      switch (t) {
        case "button":
        case "input":
        case "select":
        case "textarea":
          m.autoFocus && e.focus();
          return;
        case "img": {
          m.src && (e.src = m.src);
          return;
        }
      }
    }
    function GE(e, t, m, N, V, de) {
      yE(e, t, m, N, V), e2(e, V);
    }
    function BT(e) {
      Yf(e, "");
    }
    function UE(e, t, m) {
      e.nodeValue = m;
    }
    function WE(e, t) {
      e.appendChild(t);
    }
    function YE(e, t) {
      var m;
      e.nodeType === La ? (m = e.parentNode, m.insertBefore(t, e)) : (m = e, m.appendChild(t));
      var N = e._reactRootContainer;
      N == null && m.onclick === null && Xm(m);
    }
    function XE(e, t, m) {
      e.insertBefore(t, m);
    }
    function jE(e, t, m) {
      e.nodeType === La ? e.parentNode.insertBefore(t, m) : e.insertBefore(t, m);
    }
    function ZE(e, t) {
      e.removeChild(t);
    }
    function $E(e, t) {
      e.nodeType === La ? e.parentNode.removeChild(t) : e.removeChild(t);
    }
    function J1(e, t) {
      var m = t, N = 0;
      do {
        var V = m.nextSibling;
        if (e.removeChild(m), V && V.nodeType === La) {
          var de = V.data;
          if (de === $m)
            if (N === 0) {
              e.removeChild(V), oi(t);
              return;
            } else
              N--;
          else
            (de === Zm || de === Bp || de === Vp) && N++;
        }
        m = V;
      } while (m);
      oi(t);
    }
    function JE(e, t) {
      e.nodeType === La ? J1(e.parentNode, t) : e.nodeType === zi && J1(e, t), oi(e);
    }
    function QE(e) {
      e = e;
      var t = e.style;
      typeof t.setProperty == "function" ? t.setProperty("display", "none", "important") : t.display = "none";
    }
    function KE(e) {
      e.nodeValue = "";
    }
    function qE(e, t) {
      e = e;
      var m = t[EE], N = m != null && m.hasOwnProperty("display") ? m.display : null;
      e.style.display = Xf("display", N);
    }
    function e8(e, t) {
      e.nodeValue = t;
    }
    function t8(e) {
      e.nodeType === zi ? e.textContent = "" : e.nodeType === lo && e.documentElement && e.removeChild(e.documentElement);
    }
    function r8(e, t, m) {
      return e.nodeType !== zi || t.toLowerCase() !== e.nodeName.toLowerCase() ? null : e;
    }
    function n8(e, t) {
      return t === "" || e.nodeType !== Qo ? null : e;
    }
    function a8(e) {
      return e.nodeType !== La ? null : e;
    }
    function VT(e) {
      return e.data === Bp;
    }
    function Q1(e) {
      return e.data === Vp;
    }
    function i8(e) {
      var t = e.nextSibling && e.nextSibling.dataset, m, N, V;
      return t && (m = t.dgst, N = t.msg, V = t.stck), {
        message: N,
        digest: m,
        stack: V
      };
    }
    function o8(e, t) {
      e._reactRetry = t;
    }
    function Jm(e) {
      for (; e != null; e = e.nextSibling) {
        var t = e.nodeType;
        if (t === zi || t === Qo)
          break;
        if (t === La) {
          var m = e.data;
          if (m === Zm || m === Vp || m === Bp)
            break;
          if (m === $m)
            return null;
        }
      }
      return e;
    }
    function Gp(e) {
      return Jm(e.nextSibling);
    }
    function l8(e) {
      return Jm(e.firstChild);
    }
    function s8(e) {
      return Jm(e.firstChild);
    }
    function u8(e) {
      return Jm(e.nextSibling);
    }
    function f8(e, t, m, N, V, de, Ee) {
      Wp(de, e), e2(e, m);
      var He;
      {
        var $e = V;
        He = $e.namespace;
      }
      var pt = (de.mode & ct) !== Pt;
      return bE(e, t, m, He, N, pt, Ee);
    }
    function c8(e, t, m, N) {
      return Wp(m, e), m.mode & ct, xE(e, t);
    }
    function d8(e, t) {
      Wp(t, e);
    }
    function v8(e) {
      for (var t = e.nextSibling, m = 0; t; ) {
        if (t.nodeType === La) {
          var N = t.data;
          if (N === $m) {
            if (m === 0)
              return Gp(t);
            m--;
          } else
            (N === Zm || N === Vp || N === Bp) && m++;
        }
        t = t.nextSibling;
      }
      return null;
    }
    function GT(e) {
      for (var t = e.previousSibling, m = 0; t; ) {
        if (t.nodeType === La) {
          var N = t.data;
          if (N === Zm || N === Vp || N === Bp) {
            if (m === 0)
              return t;
            m--;
          } else
            N === $m && m++;
        }
        t = t.previousSibling;
      }
      return null;
    }
    function h8(e) {
      oi(e);
    }
    function p8(e) {
      oi(e);
    }
    function m8(e) {
      return e !== "head" && e !== "body";
    }
    function y8(e, t, m, N) {
      var V = !0;
      Ym(t.nodeValue, m, N, V);
    }
    function g8(e, t, m, N, V, de) {
      if (t[jm] !== !0) {
        var Ee = !0;
        Ym(N.nodeValue, V, de, Ee);
      }
    }
    function b8(e, t) {
      t.nodeType === zi ? V1(e, t) : t.nodeType === La || G1(e, t);
    }
    function x8(e, t) {
      {
        var m = e.parentNode;
        m !== null && (t.nodeType === zi ? V1(m, t) : t.nodeType === La || G1(m, t));
      }
    }
    function T8(e, t, m, N, V) {
      (V || t[jm] !== !0) && (N.nodeType === zi ? V1(m, N) : N.nodeType === La || G1(m, N));
    }
    function C8(e, t, m) {
      U1(e, t);
    }
    function A8(e, t) {
      W1(e, t);
    }
    function w8(e, t, m) {
      {
        var N = e.parentNode;
        N !== null && U1(N, t);
      }
    }
    function S8(e, t) {
      {
        var m = e.parentNode;
        m !== null && W1(m, t);
      }
    }
    function M8(e, t, m, N, V, de) {
      (de || t[jm] !== !0) && U1(m, N);
    }
    function E8(e, t, m, N, V) {
      (V || t[jm] !== !0) && W1(m, N);
    }
    function D8(e) {
      M("An error occurred during hydration. The server HTML was replaced with client content in <%s>.", e.nodeName.toLowerCase());
    }
    function R8(e) {
      Op(e);
    }
    var dh = Math.random().toString(36).slice(2), vh = "__reactFiber$" + dh, K1 = "__reactProps$" + dh, Up = "__reactContainer$" + dh, q1 = "__reactEvents$" + dh, L8 = "__reactListeners$" + dh, k8 = "__reactHandles$" + dh;
    function I8(e) {
      delete e[vh], delete e[K1], delete e[q1], delete e[L8], delete e[k8];
    }
    function Wp(e, t) {
      t[vh] = e;
    }
    function Qm(e, t) {
      t[Up] = e;
    }
    function UT(e) {
      e[Up] = null;
    }
    function Yp(e) {
      return !!e[Up];
    }
    function _d(e) {
      var t = e[vh];
      if (t)
        return t;
      for (var m = e.parentNode; m; ) {
        if (t = m[Up] || m[vh], t) {
          var N = t.alternate;
          if (t.child !== null || N !== null && N.child !== null)
            for (var V = GT(e); V !== null; ) {
              var de = V[vh];
              if (de)
                return de;
              V = GT(V);
            }
          return t;
        }
        e = m, m = e.parentNode;
      }
      return null;
    }
    function Oc(e) {
      var t = e[vh] || e[Up];
      return t && (t.tag === u || t.tag === c || t.tag === C || t.tag === l) ? t : null;
    }
    function hh(e) {
      if (e.tag === u || e.tag === c)
        return e.stateNode;
      throw new Error("getNodeFromInstance: Invalid argument.");
    }
    function Km(e) {
      return e[K1] || null;
    }
    function e2(e, t) {
      e[K1] = t;
    }
    function N8(e) {
      var t = e[q1];
      return t === void 0 && (t = e[q1] = /* @__PURE__ */ new Set()), t;
    }
    var WT = {}, YT = E.ReactDebugCurrentFrame;
    function qm(e) {
      if (e) {
        var t = e._owner, m = Ht(e.type, e._source, t ? t.type : null);
        YT.setExtraStackFrame(m);
      } else
        YT.setExtraStackFrame(null);
    }
    function Ys(e, t, m, N, V) {
      {
        var de = Function.call.bind(Be);
        for (var Ee in e)
          if (de(e, Ee)) {
            var He = void 0;
            try {
              if (typeof e[Ee] != "function") {
                var $e = Error((N || "React class") + ": " + m + " type `" + Ee + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof e[Ee] + "`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");
                throw $e.name = "Invariant Violation", $e;
              }
              He = e[Ee](t, Ee, N, m, null, "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED");
            } catch (pt) {
              He = pt;
            }
            He && !(He instanceof Error) && (qm(V), M("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).", N || "React class", m, Ee, typeof He), qm(null)), He instanceof Error && !(He.message in WT) && (WT[He.message] = !0, qm(V), M("Failed %s type: %s", m, He.message), qm(null));
          }
      }
    }
    var t2 = [], ey;
    ey = [];
    var Tf = -1;
    function Pc(e) {
      return {
        current: e
      };
    }
    function Yo(e, t) {
      if (Tf < 0) {
        M("Unexpected pop.");
        return;
      }
      t !== ey[Tf] && M("Unexpected Fiber popped."), e.current = t2[Tf], t2[Tf] = null, ey[Tf] = null, Tf--;
    }
    function Xo(e, t, m) {
      Tf++, t2[Tf] = e.current, ey[Tf] = m, e.current = t;
    }
    var r2;
    r2 = {};
    var jl = {};
    Object.freeze(jl);
    var Cf = Pc(jl), Du = Pc(!1), n2 = jl;
    function ph(e, t, m) {
      return m && Ru(t) ? n2 : Cf.current;
    }
    function XT(e, t, m) {
      {
        var N = e.stateNode;
        N.__reactInternalMemoizedUnmaskedChildContext = t, N.__reactInternalMemoizedMaskedChildContext = m;
      }
    }
    function mh(e, t) {
      {
        var m = e.type, N = m.contextTypes;
        if (!N)
          return jl;
        var V = e.stateNode;
        if (V && V.__reactInternalMemoizedUnmaskedChildContext === t)
          return V.__reactInternalMemoizedMaskedChildContext;
        var de = {};
        for (var Ee in N)
          de[Ee] = t[Ee];
        {
          var He = sr(e) || "Unknown";
          Ys(N, de, "context", He);
        }
        return V && XT(e, t, de), de;
      }
    }
    function ty() {
      return Du.current;
    }
    function Ru(e) {
      {
        var t = e.childContextTypes;
        return t != null;
      }
    }
    function ry(e) {
      Yo(Du, e), Yo(Cf, e);
    }
    function a2(e) {
      Yo(Du, e), Yo(Cf, e);
    }
    function jT(e, t, m) {
      {
        if (Cf.current !== jl)
          throw new Error("Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue.");
        Xo(Cf, t, e), Xo(Du, m, e);
      }
    }
    function ZT(e, t, m) {
      {
        var N = e.stateNode, V = t.childContextTypes;
        if (typeof N.getChildContext != "function") {
          {
            var de = sr(e) || "Unknown";
            r2[de] || (r2[de] = !0, M("%s.childContextTypes is specified but there is no getChildContext() method on the instance. You can either define getChildContext() on %s or remove childContextTypes from it.", de, de));
          }
          return m;
        }
        var Ee = N.getChildContext();
        for (var He in Ee)
          if (!(He in V))
            throw new Error((sr(e) || "Unknown") + '.getChildContext(): key "' + He + '" is not defined in childContextTypes.');
        {
          var $e = sr(e) || "Unknown";
          Ys(V, Ee, "child context", $e);
        }
        return lr({}, m, Ee);
      }
    }
    function ny(e) {
      {
        var t = e.stateNode, m = t && t.__reactInternalMemoizedMergedChildContext || jl;
        return n2 = Cf.current, Xo(Cf, m, e), Xo(Du, Du.current, e), !0;
      }
    }
    function $T(e, t, m) {
      {
        var N = e.stateNode;
        if (!N)
          throw new Error("Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue.");
        if (m) {
          var V = ZT(e, t, n2);
          N.__reactInternalMemoizedMergedChildContext = V, Yo(Du, e), Yo(Cf, e), Xo(Cf, V, e), Xo(Du, m, e);
        } else
          Yo(Du, e), Xo(Du, m, e);
      }
    }
    function O8(e) {
      {
        if (!bd(e) || e.tag !== a)
          throw new Error("Expected subtree parent to be a mounted class component. This error is likely caused by a bug in React. Please file an issue.");
        var t = e;
        do {
          switch (t.tag) {
            case l:
              return t.stateNode.context;
            case a: {
              var m = t.type;
              if (Ru(m))
                return t.stateNode.__reactInternalMemoizedMergedChildContext;
              break;
            }
          }
          t = t.return;
        } while (t !== null);
        throw new Error("Found unexpected detached subtree parent. This error is likely caused by a bug in React. Please file an issue.");
      }
    }
    var Fc = 0, ay = 1, Af = null, i2 = !1, o2 = !1;
    function JT(e) {
      Af === null ? Af = [e] : Af.push(e);
    }
    function P8(e) {
      i2 = !0, JT(e);
    }
    function QT() {
      i2 && zc();
    }
    function zc() {
      if (!o2 && Af !== null) {
        o2 = !0;
        var e = 0, t = gl();
        try {
          var m = !0, N = Af;
          for (ii(ci); e < N.length; e++) {
            var V = N[e];
            do
              V = V(m);
            while (V !== null);
          }
          Af = null, i2 = !1;
        } catch (de) {
          throw Af !== null && (Af = Af.slice(e + 1)), gu(uf, zc), de;
        } finally {
          ii(t), o2 = !1;
        }
      }
      return null;
    }
    var yh = [], gh = 0, iy = null, oy = 0, ms = [], ys = 0, Hd = null, wf = 1, Sf = "";
    function F8(e) {
      return Vd(), (e.flags & pu) !== wn;
    }
    function z8(e) {
      return Vd(), oy;
    }
    function _8() {
      var e = Sf, t = wf, m = t & ~H8(t);
      return m.toString(32) + e;
    }
    function Bd(e, t) {
      Vd(), yh[gh++] = oy, yh[gh++] = iy, iy = e, oy = t;
    }
    function KT(e, t, m) {
      Vd(), ms[ys++] = wf, ms[ys++] = Sf, ms[ys++] = Hd, Hd = e;
      var N = wf, V = Sf, de = ly(N) - 1, Ee = N & ~(1 << de), He = m + 1, $e = ly(t) + de;
      if ($e > 30) {
        var pt = de - de % 5, At = (1 << pt) - 1, rr = (Ee & At).toString(32), er = Ee >> pt, pr = de - pt, yr = ly(t) + pr, Sr = He << pr, tn = Sr | er, Ln = rr + V;
        wf = 1 << yr | tn, Sf = Ln;
      } else {
        var Cn = He << de, ca = Cn | Ee, ia = V;
        wf = 1 << $e | ca, Sf = ia;
      }
    }
    function l2(e) {
      Vd();
      var t = e.return;
      if (t !== null) {
        var m = 1, N = 0;
        Bd(e, m), KT(e, m, N);
      }
    }
    function ly(e) {
      return 32 - Kt(e);
    }
    function H8(e) {
      return 1 << ly(e) - 1;
    }
    function s2(e) {
      for (; e === iy; )
        iy = yh[--gh], yh[gh] = null, oy = yh[--gh], yh[gh] = null;
      for (; e === Hd; )
        Hd = ms[--ys], ms[ys] = null, Sf = ms[--ys], ms[ys] = null, wf = ms[--ys], ms[ys] = null;
    }
    function B8() {
      return Vd(), Hd !== null ? {
        id: wf,
        overflow: Sf
      } : null;
    }
    function V8(e, t) {
      Vd(), ms[ys++] = wf, ms[ys++] = Sf, ms[ys++] = Hd, wf = t.id, Sf = t.overflow, Hd = e;
    }
    function Vd() {
      Eo() || M("Expected to be hydrating. This is a bug in React. Please file an issue.");
    }
    var Mo = null, gs = null, Xs = !1, Gd = !1, _c = null;
    function G8() {
      Xs && M("We should not be hydrating here. This is a bug in React. Please file a bug.");
    }
    function qT() {
      Gd = !0;
    }
    function U8() {
      return Gd;
    }
    function W8(e) {
      var t = e.stateNode.containerInfo;
      return gs = s8(t), Mo = e, Xs = !0, _c = null, Gd = !1, !0;
    }
    function Y8(e, t, m) {
      return gs = u8(t), Mo = e, Xs = !0, _c = null, Gd = !1, m !== null && V8(e, m), !0;
    }
    function e4(e, t) {
      switch (e.tag) {
        case l: {
          b8(e.stateNode.containerInfo, t);
          break;
        }
        case u: {
          var m = (e.mode & ct) !== Pt;
          T8(
            e.type,
            e.memoizedProps,
            e.stateNode,
            t,
            // TODO: Delete this argument when we remove the legacy root API.
            m
          );
          break;
        }
        case C: {
          var N = e.memoizedState;
          N.dehydrated !== null && x8(N.dehydrated, t);
          break;
        }
      }
    }
    function t4(e, t) {
      e4(e, t);
      var m = $D();
      m.stateNode = t, m.return = e;
      var N = e.deletions;
      N === null ? (e.deletions = [m], e.flags |= va) : N.push(m);
    }
    function u2(e, t) {
      {
        if (Gd)
          return;
        switch (e.tag) {
          case l: {
            var m = e.stateNode.containerInfo;
            switch (t.tag) {
              case u:
                var N = t.type;
                t.pendingProps, C8(m, N);
                break;
              case c:
                var V = t.pendingProps;
                A8(m, V);
                break;
            }
            break;
          }
          case u: {
            var de = e.type, Ee = e.memoizedProps, He = e.stateNode;
            switch (t.tag) {
              case u: {
                var $e = t.type, pt = t.pendingProps, At = (e.mode & ct) !== Pt;
                M8(
                  de,
                  Ee,
                  He,
                  $e,
                  pt,
                  // TODO: Delete this argument when we remove the legacy root API.
                  At
                );
                break;
              }
              case c: {
                var rr = t.pendingProps, er = (e.mode & ct) !== Pt;
                E8(
                  de,
                  Ee,
                  He,
                  rr,
                  // TODO: Delete this argument when we remove the legacy root API.
                  er
                );
                break;
              }
            }
            break;
          }
          case C: {
            var pr = e.memoizedState, yr = pr.dehydrated;
            if (yr !== null)
              switch (t.tag) {
                case u:
                  var Sr = t.type;
                  t.pendingProps, w8(yr, Sr);
                  break;
                case c:
                  var tn = t.pendingProps;
                  S8(yr, tn);
                  break;
              }
            break;
          }
          default:
            return;
        }
      }
    }
    function r4(e, t) {
      t.flags = t.flags & ~Ho | Aa, u2(e, t);
    }
    function n4(e, t) {
      switch (e.tag) {
        case u: {
          var m = e.type;
          e.pendingProps;
          var N = r8(t, m);
          return N !== null ? (e.stateNode = N, Mo = e, gs = l8(N), !0) : !1;
        }
        case c: {
          var V = e.pendingProps, de = n8(t, V);
          return de !== null ? (e.stateNode = de, Mo = e, gs = null, !0) : !1;
        }
        case C: {
          var Ee = a8(t);
          if (Ee !== null) {
            var He = {
              dehydrated: Ee,
              treeContext: B8(),
              retryLane: po
            };
            e.memoizedState = He;
            var $e = JD(Ee);
            return $e.return = e, e.child = $e, Mo = e, gs = null, !0;
          }
          return !1;
        }
        default:
          return !1;
      }
    }
    function f2(e) {
      return (e.mode & ct) !== Pt && (e.flags & Hn) === wn;
    }
    function c2(e) {
      throw new Error("Hydration failed because the initial UI does not match what was rendered on the server.");
    }
    function d2(e) {
      if (Xs) {
        var t = gs;
        if (!t) {
          f2(e) && (u2(Mo, e), c2()), r4(Mo, e), Xs = !1, Mo = e;
          return;
        }
        var m = t;
        if (!n4(e, t)) {
          f2(e) && (u2(Mo, e), c2()), t = Gp(m);
          var N = Mo;
          if (!t || !n4(e, t)) {
            r4(Mo, e), Xs = !1, Mo = e;
            return;
          }
          t4(N, m);
        }
      }
    }
    function X8(e, t, m) {
      var N = e.stateNode, V = !Gd, de = f8(N, e.type, e.memoizedProps, t, m, e, V);
      return e.updateQueue = de, de !== null;
    }
    function j8(e) {
      var t = e.stateNode, m = e.memoizedProps, N = c8(t, m, e);
      if (N) {
        var V = Mo;
        if (V !== null)
          switch (V.tag) {
            case l: {
              var de = V.stateNode.containerInfo, Ee = (V.mode & ct) !== Pt;
              y8(
                de,
                t,
                m,
                // TODO: Delete this argument when we remove the legacy root API.
                Ee
              );
              break;
            }
            case u: {
              var He = V.type, $e = V.memoizedProps, pt = V.stateNode, At = (V.mode & ct) !== Pt;
              g8(
                He,
                $e,
                pt,
                t,
                m,
                // TODO: Delete this argument when we remove the legacy root API.
                At
              );
              break;
            }
          }
      }
      return N;
    }
    function Z8(e) {
      var t = e.memoizedState, m = t !== null ? t.dehydrated : null;
      if (!m)
        throw new Error("Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.");
      d8(m, e);
    }
    function $8(e) {
      var t = e.memoizedState, m = t !== null ? t.dehydrated : null;
      if (!m)
        throw new Error("Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.");
      return v8(m);
    }
    function a4(e) {
      for (var t = e.return; t !== null && t.tag !== u && t.tag !== l && t.tag !== C; )
        t = t.return;
      Mo = t;
    }
    function sy(e) {
      if (e !== Mo)
        return !1;
      if (!Xs)
        return a4(e), Xs = !0, !1;
      if (e.tag !== l && (e.tag !== u || m8(e.type) && !j1(e.type, e.memoizedProps))) {
        var t = gs;
        if (t)
          if (f2(e))
            i4(e), c2();
          else
            for (; t; )
              t4(e, t), t = Gp(t);
      }
      return a4(e), e.tag === C ? gs = $8(e) : gs = Mo ? Gp(e.stateNode) : null, !0;
    }
    function J8() {
      return Xs && gs !== null;
    }
    function i4(e) {
      for (var t = gs; t; )
        e4(e, t), t = Gp(t);
    }
    function bh() {
      Mo = null, gs = null, Xs = !1, Gd = !1;
    }
    function o4() {
      _c !== null && (qC(_c), _c = null);
    }
    function Eo() {
      return Xs;
    }
    function v2(e) {
      _c === null ? _c = [e] : _c.push(e);
    }
    var Q8 = E.ReactCurrentBatchConfig, K8 = null;
    function q8() {
      return Q8.transition;
    }
    var js = {
      recordUnsafeLifecycleWarnings: function(e, t) {
      },
      flushPendingUnsafeLifecycleWarnings: function() {
      },
      recordLegacyContextWarning: function(e, t) {
      },
      flushLegacyContextWarning: function() {
      },
      discardPendingWarnings: function() {
      }
    };
    {
      var e9 = function(e) {
        for (var t = null, m = e; m !== null; )
          m.mode & Rt && (t = m), m = m.return;
        return t;
      }, Ud = function(e) {
        var t = [];
        return e.forEach(function(m) {
          t.push(m);
        }), t.sort().join(", ");
      }, Xp = [], jp = [], Zp = [], $p = [], Jp = [], Qp = [], Wd = /* @__PURE__ */ new Set();
      js.recordUnsafeLifecycleWarnings = function(e, t) {
        Wd.has(e.type) || (typeof t.componentWillMount == "function" && // Don't warn about react-lifecycles-compat polyfilled components.
        t.componentWillMount.__suppressDeprecationWarning !== !0 && Xp.push(e), e.mode & Rt && typeof t.UNSAFE_componentWillMount == "function" && jp.push(e), typeof t.componentWillReceiveProps == "function" && t.componentWillReceiveProps.__suppressDeprecationWarning !== !0 && Zp.push(e), e.mode & Rt && typeof t.UNSAFE_componentWillReceiveProps == "function" && $p.push(e), typeof t.componentWillUpdate == "function" && t.componentWillUpdate.__suppressDeprecationWarning !== !0 && Jp.push(e), e.mode & Rt && typeof t.UNSAFE_componentWillUpdate == "function" && Qp.push(e));
      }, js.flushPendingUnsafeLifecycleWarnings = function() {
        var e = /* @__PURE__ */ new Set();
        Xp.length > 0 && (Xp.forEach(function(er) {
          e.add(sr(er) || "Component"), Wd.add(er.type);
        }), Xp = []);
        var t = /* @__PURE__ */ new Set();
        jp.length > 0 && (jp.forEach(function(er) {
          t.add(sr(er) || "Component"), Wd.add(er.type);
        }), jp = []);
        var m = /* @__PURE__ */ new Set();
        Zp.length > 0 && (Zp.forEach(function(er) {
          m.add(sr(er) || "Component"), Wd.add(er.type);
        }), Zp = []);
        var N = /* @__PURE__ */ new Set();
        $p.length > 0 && ($p.forEach(function(er) {
          N.add(sr(er) || "Component"), Wd.add(er.type);
        }), $p = []);
        var V = /* @__PURE__ */ new Set();
        Jp.length > 0 && (Jp.forEach(function(er) {
          V.add(sr(er) || "Component"), Wd.add(er.type);
        }), Jp = []);
        var de = /* @__PURE__ */ new Set();
        if (Qp.length > 0 && (Qp.forEach(function(er) {
          de.add(sr(er) || "Component"), Wd.add(er.type);
        }), Qp = []), t.size > 0) {
          var Ee = Ud(t);
          M(`Using UNSAFE_componentWillMount in strict mode is not recommended and may indicate bugs in your code. See https://reactjs.org/link/unsafe-component-lifecycles for details.

* Move code with side effects to componentDidMount, and set initial state in the constructor.

Please update the following components: %s`, Ee);
        }
        if (N.size > 0) {
          var He = Ud(N);
          M(`Using UNSAFE_componentWillReceiveProps in strict mode is not recommended and may indicate bugs in your code. See https://reactjs.org/link/unsafe-component-lifecycles for details.

* Move data fetching code or side effects to componentDidUpdate.
* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://reactjs.org/link/derived-state

Please update the following components: %s`, He);
        }
        if (de.size > 0) {
          var $e = Ud(de);
          M(`Using UNSAFE_componentWillUpdate in strict mode is not recommended and may indicate bugs in your code. See https://reactjs.org/link/unsafe-component-lifecycles for details.

* Move data fetching code or side effects to componentDidUpdate.

Please update the following components: %s`, $e);
        }
        if (e.size > 0) {
          var pt = Ud(e);
          K(`componentWillMount has been renamed, and is not recommended for use. See https://reactjs.org/link/unsafe-component-lifecycles for details.

* Move code with side effects to componentDidMount, and set initial state in the constructor.
* Rename componentWillMount to UNSAFE_componentWillMount to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run \`npx react-codemod rename-unsafe-lifecycles\` in your project source folder.

Please update the following components: %s`, pt);
        }
        if (m.size > 0) {
          var At = Ud(m);
          K(`componentWillReceiveProps has been renamed, and is not recommended for use. See https://reactjs.org/link/unsafe-component-lifecycles for details.

* Move data fetching code or side effects to componentDidUpdate.
* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://reactjs.org/link/derived-state
* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run \`npx react-codemod rename-unsafe-lifecycles\` in your project source folder.

Please update the following components: %s`, At);
        }
        if (V.size > 0) {
          var rr = Ud(V);
          K(`componentWillUpdate has been renamed, and is not recommended for use. See https://reactjs.org/link/unsafe-component-lifecycles for details.

* Move data fetching code or side effects to componentDidUpdate.
* Rename componentWillUpdate to UNSAFE_componentWillUpdate to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run \`npx react-codemod rename-unsafe-lifecycles\` in your project source folder.

Please update the following components: %s`, rr);
        }
      };
      var uy = /* @__PURE__ */ new Map(), l4 = /* @__PURE__ */ new Set();
      js.recordLegacyContextWarning = function(e, t) {
        var m = e9(e);
        if (m === null) {
          M("Expected to find a StrictMode component in a strict mode tree. This error is likely caused by a bug in React. Please file an issue.");
          return;
        }
        if (!l4.has(e.type)) {
          var N = uy.get(m);
          (e.type.contextTypes != null || e.type.childContextTypes != null || t !== null && typeof t.getChildContext == "function") && (N === void 0 && (N = [], uy.set(m, N)), N.push(e));
        }
      }, js.flushLegacyContextWarning = function() {
        uy.forEach(function(e, t) {
          if (e.length !== 0) {
            var m = e[0], N = /* @__PURE__ */ new Set();
            e.forEach(function(de) {
              N.add(sr(de) || "Component"), l4.add(de.type);
            });
            var V = Ud(N);
            try {
              vn(m), M(`Legacy context API has been detected within a strict-mode tree.

The old API will be supported in all 16.x releases, but applications using it should migrate to the new version.

Please update the following components: %s

Learn more about this warning here: https://reactjs.org/link/legacy-context`, V);
            } finally {
              Qr();
            }
          }
        });
      }, js.discardPendingWarnings = function() {
        Xp = [], jp = [], Zp = [], $p = [], Jp = [], Qp = [], uy = /* @__PURE__ */ new Map();
      };
    }
    var h2, p2, m2, y2, g2, s4 = function(e, t) {
    };
    h2 = !1, p2 = !1, m2 = {}, y2 = {}, g2 = {}, s4 = function(e, t) {
      if (!(e === null || typeof e != "object") && !(!e._store || e._store.validated || e.key != null)) {
        if (typeof e._store != "object")
          throw new Error("React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue.");
        e._store.validated = !0;
        var m = sr(t) || "Component";
        y2[m] || (y2[m] = !0, M('Each child in a list should have a unique "key" prop. See https://reactjs.org/link/warning-keys for more information.'));
      }
    };
    function t9(e) {
      return e.prototype && e.prototype.isReactComponent;
    }
    function Kp(e, t, m) {
      var N = m.ref;
      if (N !== null && typeof N != "function" && typeof N != "object") {
        if ((e.mode & Rt || me) && // We warn in ReactElement.js if owner and self are equal for string refs
        // because these cannot be automatically converted to an arrow function
        // using a codemod. Therefore, we don't have to warn about string refs again.
        !(m._owner && m._self && m._owner.stateNode !== m._self) && // Will already throw with "Function components cannot have string refs"
        !(m._owner && m._owner.tag !== a) && // Will already warn with "Function components cannot be given refs"
        !(typeof m.type == "function" && !t9(m.type)) && // Will already throw with "Element ref was specified as a string (someStringRef) but no owner was set"
        m._owner) {
          var V = sr(e) || "Component";
          m2[V] || (M('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. We recommend using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref', V, N), m2[V] = !0);
        }
        if (m._owner) {
          var de = m._owner, Ee;
          if (de) {
            var He = de;
            if (He.tag !== a)
              throw new Error("Function components cannot have string refs. We recommend using useRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref");
            Ee = He.stateNode;
          }
          if (!Ee)
            throw new Error("Missing owner for string ref " + N + ". This error is likely caused by a bug in React. Please file an issue.");
          var $e = Ee;
          ie(N, "ref");
          var pt = "" + N;
          if (t !== null && t.ref !== null && typeof t.ref == "function" && t.ref._stringRef === pt)
            return t.ref;
          var At = function(rr) {
            var er = $e.refs;
            rr === null ? delete er[pt] : er[pt] = rr;
          };
          return At._stringRef = pt, At;
        } else {
          if (typeof N != "string")
            throw new Error("Expected ref to be a function, a string, an object returned by React.createRef(), or null.");
          if (!m._owner)
            throw new Error("Element ref was specified as a string (" + N + `) but no owner was set. This could happen for one of the following reasons:
1. You may be adding a ref to a function component
2. You may be adding a ref to a component that was not created inside a component's render method
3. You have multiple copies of React loaded
See https://reactjs.org/link/refs-must-have-owner for more information.`);
        }
      }
      return N;
    }
    function fy(e, t) {
      var m = Object.prototype.toString.call(t);
      throw new Error("Objects are not valid as a React child (found: " + (m === "[object Object]" ? "object with keys {" + Object.keys(t).join(", ") + "}" : m) + "). If you meant to render a collection of children, use an array instead.");
    }
    function cy(e) {
      {
        var t = sr(e) || "Component";
        if (g2[t])
          return;
        g2[t] = !0, M("Functions are not valid as a React child. This may happen if you return a Component instead of <Component /> from render. Or maybe you meant to call this function rather than return it.");
      }
    }
    function u4(e) {
      var t = e._payload, m = e._init;
      return m(t);
    }
    function f4(e) {
      function t(cr, Mr) {
        if (e) {
          var dr = cr.deletions;
          dr === null ? (cr.deletions = [Mr], cr.flags |= va) : dr.push(Mr);
        }
      }
      function m(cr, Mr) {
        if (!e)
          return null;
        for (var dr = Mr; dr !== null; )
          t(cr, dr), dr = dr.sibling;
        return null;
      }
      function N(cr, Mr) {
        for (var dr = /* @__PURE__ */ new Map(), Yr = Mr; Yr !== null; )
          Yr.key !== null ? dr.set(Yr.key, Yr) : dr.set(Yr.index, Yr), Yr = Yr.sibling;
        return dr;
      }
      function V(cr, Mr) {
        var dr = qd(cr, Mr);
        return dr.index = 0, dr.sibling = null, dr;
      }
      function de(cr, Mr, dr) {
        if (cr.index = dr, !e)
          return cr.flags |= pu, Mr;
        var Yr = cr.alternate;
        if (Yr !== null) {
          var un = Yr.index;
          return un < Mr ? (cr.flags |= Aa, Mr) : un;
        } else
          return cr.flags |= Aa, Mr;
      }
      function Ee(cr) {
        return e && cr.alternate === null && (cr.flags |= Aa), cr;
      }
      function He(cr, Mr, dr, Yr) {
        if (Mr === null || Mr.tag !== c) {
          var un = vx(dr, cr.mode, Yr);
          return un.return = cr, un;
        } else {
          var an = V(Mr, dr);
          return an.return = cr, an;
        }
      }
      function $e(cr, Mr, dr, Yr) {
        var un = dr.type;
        if (un === lt)
          return At(cr, Mr, dr.props.children, Yr, dr.key);
        if (Mr !== null && (Mr.elementType === un || // Keep this check inline so it only runs on the false path:
        pA(Mr, dr) || // Lazy types should reconcile their resolved type.
        // We need to do this after the Hot Reloading check above,
        // because hot reloading has different semantics than prod because
        // it doesn't resuspend. So we can't let the call below suspend.
        typeof un == "object" && un !== null && un.$$typeof === dt && u4(un) === Mr.type)) {
          var an = V(Mr, dr.props);
          return an.ref = Kp(cr, Mr, dr), an.return = cr, an._debugSource = dr._source, an._debugOwner = dr._owner, an;
        }
        var Gn = dx(dr, cr.mode, Yr);
        return Gn.ref = Kp(cr, Mr, dr), Gn.return = cr, Gn;
      }
      function pt(cr, Mr, dr, Yr) {
        if (Mr === null || Mr.tag !== f || Mr.stateNode.containerInfo !== dr.containerInfo || Mr.stateNode.implementation !== dr.implementation) {
          var un = hx(dr, cr.mode, Yr);
          return un.return = cr, un;
        } else {
          var an = V(Mr, dr.children || []);
          return an.return = cr, an;
        }
      }
      function At(cr, Mr, dr, Yr, un) {
        if (Mr === null || Mr.tag !== d) {
          var an = $c(dr, cr.mode, Yr, un);
          return an.return = cr, an;
        } else {
          var Gn = V(Mr, dr);
          return Gn.return = cr, Gn;
        }
      }
      function rr(cr, Mr, dr) {
        if (typeof Mr == "string" && Mr !== "" || typeof Mr == "number") {
          var Yr = vx("" + Mr, cr.mode, dr);
          return Yr.return = cr, Yr;
        }
        if (typeof Mr == "object" && Mr !== null) {
          switch (Mr.$$typeof) {
            case We: {
              var un = dx(Mr, cr.mode, dr);
              return un.ref = Kp(cr, null, Mr), un.return = cr, un;
            }
            case je: {
              var an = hx(Mr, cr.mode, dr);
              return an.return = cr, an;
            }
            case dt: {
              var Gn = Mr._payload, Xn = Mr._init;
              return rr(cr, Xn(Gn), dr);
            }
          }
          if (Zn(Mr) || Rr(Mr)) {
            var Na = $c(Mr, cr.mode, dr, null);
            return Na.return = cr, Na;
          }
          fy(cr, Mr);
        }
        return typeof Mr == "function" && cy(cr), null;
      }
      function er(cr, Mr, dr, Yr) {
        var un = Mr !== null ? Mr.key : null;
        if (typeof dr == "string" && dr !== "" || typeof dr == "number")
          return un !== null ? null : He(cr, Mr, "" + dr, Yr);
        if (typeof dr == "object" && dr !== null) {
          switch (dr.$$typeof) {
            case We:
              return dr.key === un ? $e(cr, Mr, dr, Yr) : null;
            case je:
              return dr.key === un ? pt(cr, Mr, dr, Yr) : null;
            case dt: {
              var an = dr._payload, Gn = dr._init;
              return er(cr, Mr, Gn(an), Yr);
            }
          }
          if (Zn(dr) || Rr(dr))
            return un !== null ? null : At(cr, Mr, dr, Yr, null);
          fy(cr, dr);
        }
        return typeof dr == "function" && cy(cr), null;
      }
      function pr(cr, Mr, dr, Yr, un) {
        if (typeof Yr == "string" && Yr !== "" || typeof Yr == "number") {
          var an = cr.get(dr) || null;
          return He(Mr, an, "" + Yr, un);
        }
        if (typeof Yr == "object" && Yr !== null) {
          switch (Yr.$$typeof) {
            case We: {
              var Gn = cr.get(Yr.key === null ? dr : Yr.key) || null;
              return $e(Mr, Gn, Yr, un);
            }
            case je: {
              var Xn = cr.get(Yr.key === null ? dr : Yr.key) || null;
              return pt(Mr, Xn, Yr, un);
            }
            case dt:
              var Na = Yr._payload, ma = Yr._init;
              return pr(cr, Mr, dr, ma(Na), un);
          }
          if (Zn(Yr) || Rr(Yr)) {
            var Ni = cr.get(dr) || null;
            return At(Mr, Ni, Yr, un, null);
          }
          fy(Mr, Yr);
        }
        return typeof Yr == "function" && cy(Mr), null;
      }
      function yr(cr, Mr, dr) {
        {
          if (typeof cr != "object" || cr === null)
            return Mr;
          switch (cr.$$typeof) {
            case We:
            case je:
              s4(cr, dr);
              var Yr = cr.key;
              if (typeof Yr != "string")
                break;
              if (Mr === null) {
                Mr = /* @__PURE__ */ new Set(), Mr.add(Yr);
                break;
              }
              if (!Mr.has(Yr)) {
                Mr.add(Yr);
                break;
              }
              M("Encountered two children with the same key, `%s`. Keys should be unique so that components maintain their identity across updates. Non-unique keys may cause children to be duplicated and/or omitted — the behavior is unsupported and could change in a future version.", Yr);
              break;
            case dt:
              var un = cr._payload, an = cr._init;
              yr(an(un), Mr, dr);
              break;
          }
        }
        return Mr;
      }
      function Sr(cr, Mr, dr, Yr) {
        for (var un = null, an = 0; an < dr.length; an++) {
          var Gn = dr[an];
          un = yr(Gn, un, cr);
        }
        for (var Xn = null, Na = null, ma = Mr, Ni = 0, ya = 0, Ti = null; ma !== null && ya < dr.length; ya++) {
          ma.index > ya ? (Ti = ma, ma = null) : Ti = ma.sibling;
          var Zo = er(cr, ma, dr[ya], Yr);
          if (Zo === null) {
            ma === null && (ma = Ti);
            break;
          }
          e && ma && Zo.alternate === null && t(cr, ma), Ni = de(Zo, Ni, ya), Na === null ? Xn = Zo : Na.sibling = Zo, Na = Zo, ma = Ti;
        }
        if (ya === dr.length) {
          if (m(cr, ma), Eo()) {
            var Oo = ya;
            Bd(cr, Oo);
          }
          return Xn;
        }
        if (ma === null) {
          for (; ya < dr.length; ya++) {
            var $l = rr(cr, dr[ya], Yr);
            $l !== null && (Ni = de($l, Ni, ya), Na === null ? Xn = $l : Na.sibling = $l, Na = $l);
          }
          if (Eo()) {
            var ol = ya;
            Bd(cr, ol);
          }
          return Xn;
        }
        for (var ll = N(cr, ma); ya < dr.length; ya++) {
          var $o = pr(ll, cr, ya, dr[ya], Yr);
          $o !== null && (e && $o.alternate !== null && ll.delete($o.key === null ? ya : $o.key), Ni = de($o, Ni, ya), Na === null ? Xn = $o : Na.sibling = $o, Na = $o);
        }
        if (e && ll.forEach(function(_h) {
          return t(cr, _h);
        }), Eo()) {
          var If = ya;
          Bd(cr, If);
        }
        return Xn;
      }
      function tn(cr, Mr, dr, Yr) {
        var un = Rr(dr);
        if (typeof un != "function")
          throw new Error("An object is not an iterable. This error is likely caused by a bug in React. Please file an issue.");
        {
          typeof Symbol == "function" && // $FlowFixMe Flow doesn't know about toStringTag
          dr[Symbol.toStringTag] === "Generator" && (p2 || M("Using Generators as children is unsupported and will likely yield unexpected results because enumerating a generator mutates it. You may convert it to an array with `Array.from()` or the `[...spread]` operator before rendering. Keep in mind you might need to polyfill these features for older browsers."), p2 = !0), dr.entries === un && (h2 || M("Using Maps as children is not supported. Use an array of keyed ReactElements instead."), h2 = !0);
          var an = un.call(dr);
          if (an)
            for (var Gn = null, Xn = an.next(); !Xn.done; Xn = an.next()) {
              var Na = Xn.value;
              Gn = yr(Na, Gn, cr);
            }
        }
        var ma = un.call(dr);
        if (ma == null)
          throw new Error("An iterable object provided no iterator.");
        for (var Ni = null, ya = null, Ti = Mr, Zo = 0, Oo = 0, $l = null, ol = ma.next(); Ti !== null && !ol.done; Oo++, ol = ma.next()) {
          Ti.index > Oo ? ($l = Ti, Ti = null) : $l = Ti.sibling;
          var ll = er(cr, Ti, ol.value, Yr);
          if (ll === null) {
            Ti === null && (Ti = $l);
            break;
          }
          e && Ti && ll.alternate === null && t(cr, Ti), Zo = de(ll, Zo, Oo), ya === null ? Ni = ll : ya.sibling = ll, ya = ll, Ti = $l;
        }
        if (ol.done) {
          if (m(cr, Ti), Eo()) {
            var $o = Oo;
            Bd(cr, $o);
          }
          return Ni;
        }
        if (Ti === null) {
          for (; !ol.done; Oo++, ol = ma.next()) {
            var If = rr(cr, ol.value, Yr);
            If !== null && (Zo = de(If, Zo, Oo), ya === null ? Ni = If : ya.sibling = If, ya = If);
          }
          if (Eo()) {
            var _h = Oo;
            Bd(cr, _h);
          }
          return Ni;
        }
        for (var L0 = N(cr, Ti); !ol.done; Oo++, ol = ma.next()) {
          var zu = pr(L0, cr, Oo, ol.value, Yr);
          zu !== null && (e && zu.alternate !== null && L0.delete(zu.key === null ? Oo : zu.key), Zo = de(zu, Zo, Oo), ya === null ? Ni = zu : ya.sibling = zu, ya = zu);
        }
        if (e && L0.forEach(function(ER) {
          return t(cr, ER);
        }), Eo()) {
          var MR = Oo;
          Bd(cr, MR);
        }
        return Ni;
      }
      function Ln(cr, Mr, dr, Yr) {
        if (Mr !== null && Mr.tag === c) {
          m(cr, Mr.sibling);
          var un = V(Mr, dr);
          return un.return = cr, un;
        }
        m(cr, Mr);
        var an = vx(dr, cr.mode, Yr);
        return an.return = cr, an;
      }
      function Cn(cr, Mr, dr, Yr) {
        for (var un = dr.key, an = Mr; an !== null; ) {
          if (an.key === un) {
            var Gn = dr.type;
            if (Gn === lt) {
              if (an.tag === d) {
                m(cr, an.sibling);
                var Xn = V(an, dr.props.children);
                return Xn.return = cr, Xn._debugSource = dr._source, Xn._debugOwner = dr._owner, Xn;
              }
            } else if (an.elementType === Gn || // Keep this check inline so it only runs on the false path:
            pA(an, dr) || // Lazy types should reconcile their resolved type.
            // We need to do this after the Hot Reloading check above,
            // because hot reloading has different semantics than prod because
            // it doesn't resuspend. So we can't let the call below suspend.
            typeof Gn == "object" && Gn !== null && Gn.$$typeof === dt && u4(Gn) === an.type) {
              m(cr, an.sibling);
              var Na = V(an, dr.props);
              return Na.ref = Kp(cr, an, dr), Na.return = cr, Na._debugSource = dr._source, Na._debugOwner = dr._owner, Na;
            }
            m(cr, an);
            break;
          } else
            t(cr, an);
          an = an.sibling;
        }
        if (dr.type === lt) {
          var ma = $c(dr.props.children, cr.mode, Yr, dr.key);
          return ma.return = cr, ma;
        } else {
          var Ni = dx(dr, cr.mode, Yr);
          return Ni.ref = Kp(cr, Mr, dr), Ni.return = cr, Ni;
        }
      }
      function ca(cr, Mr, dr, Yr) {
        for (var un = dr.key, an = Mr; an !== null; ) {
          if (an.key === un)
            if (an.tag === f && an.stateNode.containerInfo === dr.containerInfo && an.stateNode.implementation === dr.implementation) {
              m(cr, an.sibling);
              var Gn = V(an, dr.children || []);
              return Gn.return = cr, Gn;
            } else {
              m(cr, an);
              break;
            }
          else
            t(cr, an);
          an = an.sibling;
        }
        var Xn = hx(dr, cr.mode, Yr);
        return Xn.return = cr, Xn;
      }
      function ia(cr, Mr, dr, Yr) {
        var un = typeof dr == "object" && dr !== null && dr.type === lt && dr.key === null;
        if (un && (dr = dr.props.children), typeof dr == "object" && dr !== null) {
          switch (dr.$$typeof) {
            case We:
              return Ee(Cn(cr, Mr, dr, Yr));
            case je:
              return Ee(ca(cr, Mr, dr, Yr));
            case dt:
              var an = dr._payload, Gn = dr._init;
              return ia(cr, Mr, Gn(an), Yr);
          }
          if (Zn(dr))
            return Sr(cr, Mr, dr, Yr);
          if (Rr(dr))
            return tn(cr, Mr, dr, Yr);
          fy(cr, dr);
        }
        return typeof dr == "string" && dr !== "" || typeof dr == "number" ? Ee(Ln(cr, Mr, "" + dr, Yr)) : (typeof dr == "function" && cy(cr), m(cr, Mr));
      }
      return ia;
    }
    var xh = f4(!0), c4 = f4(!1);
    function r9(e, t) {
      if (e !== null && t.child !== e.child)
        throw new Error("Resuming work not yet implemented.");
      if (t.child !== null) {
        var m = t.child, N = qd(m, m.pendingProps);
        for (t.child = N, N.return = t; m.sibling !== null; )
          m = m.sibling, N = N.sibling = qd(m, m.pendingProps), N.return = t;
        N.sibling = null;
      }
    }
    function n9(e, t) {
      for (var m = e.child; m !== null; )
        WD(m, t), m = m.sibling;
    }
    var b2 = Pc(null), x2;
    x2 = {};
    var dy = null, Th = null, T2 = null, vy = !1;
    function hy() {
      dy = null, Th = null, T2 = null, vy = !1;
    }
    function d4() {
      vy = !0;
    }
    function v4() {
      vy = !1;
    }
    function h4(e, t, m) {
      Xo(b2, t._currentValue, e), t._currentValue = m, t._currentRenderer !== void 0 && t._currentRenderer !== null && t._currentRenderer !== x2 && M("Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported."), t._currentRenderer = x2;
    }
    function C2(e, t) {
      var m = b2.current;
      Yo(b2, t), e._currentValue = m;
    }
    function A2(e, t, m) {
      for (var N = e; N !== null; ) {
        var V = N.alternate;
        if (vf(N.childLanes, t) ? V !== null && !vf(V.childLanes, t) && (V.childLanes = $n(V.childLanes, t)) : (N.childLanes = $n(N.childLanes, t), V !== null && (V.childLanes = $n(V.childLanes, t))), N === m)
          break;
        N = N.return;
      }
      N !== m && M("Expected to find the propagation root when scheduling context work. This error is likely caused by a bug in React. Please file an issue.");
    }
    function a9(e, t, m) {
      i9(e, t, m);
    }
    function i9(e, t, m) {
      var N = e.child;
      for (N !== null && (N.return = e); N !== null; ) {
        var V = void 0, de = N.dependencies;
        if (de !== null) {
          V = N.child;
          for (var Ee = de.firstContext; Ee !== null; ) {
            if (Ee.context === t) {
              if (N.tag === a) {
                var He = mc(m), $e = Mf(Ua, He);
                $e.tag = my;
                var pt = N.updateQueue;
                if (pt !== null) {
                  var At = pt.shared, rr = At.pending;
                  rr === null ? $e.next = $e : ($e.next = rr.next, rr.next = $e), At.pending = $e;
                }
              }
              N.lanes = $n(N.lanes, m);
              var er = N.alternate;
              er !== null && (er.lanes = $n(er.lanes, m)), A2(N.return, m, e), de.lanes = $n(de.lanes, m);
              break;
            }
            Ee = Ee.next;
          }
        } else if (N.tag === b)
          V = N.type === e.type ? null : N.child;
        else if (N.tag === A) {
          var pr = N.return;
          if (pr === null)
            throw new Error("We just came from a parent so we must have had a parent. This is a bug in React.");
          pr.lanes = $n(pr.lanes, m);
          var yr = pr.alternate;
          yr !== null && (yr.lanes = $n(yr.lanes, m)), A2(pr, m, e), V = N.sibling;
        } else
          V = N.child;
        if (V !== null)
          V.return = N;
        else
          for (V = N; V !== null; ) {
            if (V === e) {
              V = null;
              break;
            }
            var Sr = V.sibling;
            if (Sr !== null) {
              Sr.return = V.return, V = Sr;
              break;
            }
            V = V.return;
          }
        N = V;
      }
    }
    function Ch(e, t) {
      dy = e, Th = null, T2 = null;
      var m = e.dependencies;
      if (m !== null) {
        var N = m.firstContext;
        N !== null && (Uo(m.lanes, t) && v0(), m.firstContext = null);
      }
    }
    function Wi(e) {
      vy && M("Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().");
      var t = e._currentValue;
      if (T2 !== e) {
        var m = {
          context: e,
          memoizedValue: t,
          next: null
        };
        if (Th === null) {
          if (dy === null)
            throw new Error("Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().");
          Th = m, dy.dependencies = {
            lanes: qt,
            firstContext: m
          };
        } else
          Th = Th.next = m;
      }
      return t;
    }
    var Yd = null;
    function w2(e) {
      Yd === null ? Yd = [e] : Yd.push(e);
    }
    function o9() {
      if (Yd !== null) {
        for (var e = 0; e < Yd.length; e++) {
          var t = Yd[e], m = t.interleaved;
          if (m !== null) {
            t.interleaved = null;
            var N = m.next, V = t.pending;
            if (V !== null) {
              var de = V.next;
              V.next = N, m.next = de;
            }
            t.pending = m;
          }
        }
        Yd = null;
      }
    }
    function p4(e, t, m, N) {
      var V = t.interleaved;
      return V === null ? (m.next = m, w2(t)) : (m.next = V.next, V.next = m), t.interleaved = m, py(e, N);
    }
    function l9(e, t, m, N) {
      var V = t.interleaved;
      V === null ? (m.next = m, w2(t)) : (m.next = V.next, V.next = m), t.interleaved = m;
    }
    function s9(e, t, m, N) {
      var V = t.interleaved;
      return V === null ? (m.next = m, w2(t)) : (m.next = V.next, V.next = m), t.interleaved = m, py(e, N);
    }
    function wl(e, t) {
      return py(e, t);
    }
    var u9 = py;
    function py(e, t) {
      e.lanes = $n(e.lanes, t);
      var m = e.alternate;
      m !== null && (m.lanes = $n(m.lanes, t)), m === null && (e.flags & (Aa | Ho)) !== wn && cA(e);
      for (var N = e, V = e.return; V !== null; )
        V.childLanes = $n(V.childLanes, t), m = V.alternate, m !== null ? m.childLanes = $n(m.childLanes, t) : (V.flags & (Aa | Ho)) !== wn && cA(e), N = V, V = V.return;
      if (N.tag === l) {
        var de = N.stateNode;
        return de;
      } else
        return null;
    }
    var m4 = 0, y4 = 1, my = 2, S2 = 3, yy = !1, M2, gy;
    M2 = !1, gy = null;
    function E2(e) {
      var t = {
        baseState: e.memoizedState,
        firstBaseUpdate: null,
        lastBaseUpdate: null,
        shared: {
          pending: null,
          interleaved: null,
          lanes: qt
        },
        effects: null
      };
      e.updateQueue = t;
    }
    function g4(e, t) {
      var m = t.updateQueue, N = e.updateQueue;
      if (m === N) {
        var V = {
          baseState: N.baseState,
          firstBaseUpdate: N.firstBaseUpdate,
          lastBaseUpdate: N.lastBaseUpdate,
          shared: N.shared,
          effects: N.effects
        };
        t.updateQueue = V;
      }
    }
    function Mf(e, t) {
      var m = {
        eventTime: e,
        lane: t,
        tag: m4,
        payload: null,
        callback: null,
        next: null
      };
      return m;
    }
    function Hc(e, t, m) {
      var N = e.updateQueue;
      if (N === null)
        return null;
      var V = N.shared;
      if (gy === V && !M2 && (M("An update (setState, replaceState, or forceUpdate) was scheduled from inside an update function. Update functions should be pure, with zero side-effects. Consider using componentDidUpdate or a callback."), M2 = !0), lD()) {
        var de = V.pending;
        return de === null ? t.next = t : (t.next = de.next, de.next = t), V.pending = t, u9(e, m);
      } else
        return s9(e, V, t, m);
    }
    function by(e, t, m) {
      var N = t.updateQueue;
      if (N !== null) {
        var V = N.shared;
        if (vp(m)) {
          var de = V.lanes;
          de = Hv(de, e.pendingLanes);
          var Ee = $n(de, m);
          V.lanes = Ee, hp(e, Ee);
        }
      }
    }
    function D2(e, t) {
      var m = e.updateQueue, N = e.alternate;
      if (N !== null) {
        var V = N.updateQueue;
        if (m === V) {
          var de = null, Ee = null, He = m.firstBaseUpdate;
          if (He !== null) {
            var $e = He;
            do {
              var pt = {
                eventTime: $e.eventTime,
                lane: $e.lane,
                tag: $e.tag,
                payload: $e.payload,
                callback: $e.callback,
                next: null
              };
              Ee === null ? de = Ee = pt : (Ee.next = pt, Ee = pt), $e = $e.next;
            } while ($e !== null);
            Ee === null ? de = Ee = t : (Ee.next = t, Ee = t);
          } else
            de = Ee = t;
          m = {
            baseState: V.baseState,
            firstBaseUpdate: de,
            lastBaseUpdate: Ee,
            shared: V.shared,
            effects: V.effects
          }, e.updateQueue = m;
          return;
        }
      }
      var At = m.lastBaseUpdate;
      At === null ? m.firstBaseUpdate = t : At.next = t, m.lastBaseUpdate = t;
    }
    function f9(e, t, m, N, V, de) {
      switch (m.tag) {
        case y4: {
          var Ee = m.payload;
          if (typeof Ee == "function") {
            d4();
            var He = Ee.call(de, N, V);
            {
              if (e.mode & Rt) {
                ja(!0);
                try {
                  Ee.call(de, N, V);
                } finally {
                  ja(!1);
                }
              }
              v4();
            }
            return He;
          }
          return Ee;
        }
        case S2:
          e.flags = e.flags & ~gi | Hn;
        case m4: {
          var $e = m.payload, pt;
          if (typeof $e == "function") {
            d4(), pt = $e.call(de, N, V);
            {
              if (e.mode & Rt) {
                ja(!0);
                try {
                  $e.call(de, N, V);
                } finally {
                  ja(!1);
                }
              }
              v4();
            }
          } else
            pt = $e;
          return pt == null ? N : lr({}, N, pt);
        }
        case my:
          return yy = !0, N;
      }
      return N;
    }
    function xy(e, t, m, N) {
      var V = e.updateQueue;
      yy = !1, gy = V.shared;
      var de = V.firstBaseUpdate, Ee = V.lastBaseUpdate, He = V.shared.pending;
      if (He !== null) {
        V.shared.pending = null;
        var $e = He, pt = $e.next;
        $e.next = null, Ee === null ? de = pt : Ee.next = pt, Ee = $e;
        var At = e.alternate;
        if (At !== null) {
          var rr = At.updateQueue, er = rr.lastBaseUpdate;
          er !== Ee && (er === null ? rr.firstBaseUpdate = pt : er.next = pt, rr.lastBaseUpdate = $e);
        }
      }
      if (de !== null) {
        var pr = V.baseState, yr = qt, Sr = null, tn = null, Ln = null, Cn = de;
        do {
          var ca = Cn.lane, ia = Cn.eventTime;
          if (vf(N, ca)) {
            if (Ln !== null) {
              var Mr = {
                eventTime: ia,
                // This update is going to be committed so we never want uncommit
                // it. Using NoLane works because 0 is a subset of all bitmasks, so
                // this will never be skipped by the check above.
                lane: Br,
                tag: Cn.tag,
                payload: Cn.payload,
                callback: Cn.callback,
                next: null
              };
              Ln = Ln.next = Mr;
            }
            pr = f9(e, V, Cn, pr, t, m);
            var dr = Cn.callback;
            if (dr !== null && // If the update was already committed, we should not queue its
            // callback again.
            Cn.lane !== Br) {
              e.flags |= cl;
              var Yr = V.effects;
              Yr === null ? V.effects = [Cn] : Yr.push(Cn);
            }
          } else {
            var cr = {
              eventTime: ia,
              lane: ca,
              tag: Cn.tag,
              payload: Cn.payload,
              callback: Cn.callback,
              next: null
            };
            Ln === null ? (tn = Ln = cr, Sr = pr) : Ln = Ln.next = cr, yr = $n(yr, ca);
          }
          if (Cn = Cn.next, Cn === null) {
            if (He = V.shared.pending, He === null)
              break;
            var un = He, an = un.next;
            un.next = null, Cn = an, V.lastBaseUpdate = un, V.shared.pending = null;
          }
        } while (!0);
        Ln === null && (Sr = pr), V.baseState = Sr, V.firstBaseUpdate = tn, V.lastBaseUpdate = Ln;
        var Gn = V.shared.interleaved;
        if (Gn !== null) {
          var Xn = Gn;
          do
            yr = $n(yr, Xn.lane), Xn = Xn.next;
          while (Xn !== Gn);
        } else
          de === null && (V.shared.lanes = qt);
        S0(yr), e.lanes = yr, e.memoizedState = pr;
      }
      gy = null;
    }
    function c9(e, t) {
      if (typeof e != "function")
        throw new Error("Invalid argument passed as callback. Expected a function. Instead " + ("received: " + e));
      e.call(t);
    }
    function b4() {
      yy = !1;
    }
    function Ty() {
      return yy;
    }
    function x4(e, t, m) {
      var N = t.effects;
      if (t.effects = null, N !== null)
        for (var V = 0; V < N.length; V++) {
          var de = N[V], Ee = de.callback;
          Ee !== null && (de.callback = null, c9(Ee, m));
        }
    }
    var qp = {}, Bc = Pc(qp), e0 = Pc(qp), Cy = Pc(qp);
    function Ay(e) {
      if (e === qp)
        throw new Error("Expected host context to exist. This error is likely caused by a bug in React. Please file an issue.");
      return e;
    }
    function T4() {
      var e = Ay(Cy.current);
      return e;
    }
    function R2(e, t) {
      Xo(Cy, t, e), Xo(e0, e, e), Xo(Bc, qp, e);
      var m = DE(t);
      Yo(Bc, e), Xo(Bc, m, e);
    }
    function Ah(e) {
      Yo(Bc, e), Yo(e0, e), Yo(Cy, e);
    }
    function L2() {
      var e = Ay(Bc.current);
      return e;
    }
    function C4(e) {
      Ay(Cy.current);
      var t = Ay(Bc.current), m = RE(t, e.type);
      t !== m && (Xo(e0, e, e), Xo(Bc, m, e));
    }
    function k2(e) {
      e0.current === e && (Yo(Bc, e), Yo(e0, e));
    }
    var d9 = 0, A4 = 1, w4 = 1, t0 = 2, Zs = Pc(d9);
    function I2(e, t) {
      return (e & t) !== 0;
    }
    function wh(e) {
      return e & A4;
    }
    function N2(e, t) {
      return e & A4 | t;
    }
    function v9(e, t) {
      return e | t;
    }
    function Vc(e, t) {
      Xo(Zs, t, e);
    }
    function Sh(e) {
      Yo(Zs, e);
    }
    function h9(e, t) {
      var m = e.memoizedState;
      return m !== null ? m.dehydrated !== null : (e.memoizedProps, !0);
    }
    function wy(e) {
      for (var t = e; t !== null; ) {
        if (t.tag === C) {
          var m = t.memoizedState;
          if (m !== null) {
            var N = m.dehydrated;
            if (N === null || VT(N) || Q1(N))
              return t;
          }
        } else if (t.tag === R && // revealOrder undefined can't be trusted because it don't
        // keep track of whether it suspended or not.
        t.memoizedProps.revealOrder !== void 0) {
          var V = (t.flags & Hn) !== wn;
          if (V)
            return t;
        } else if (t.child !== null) {
          t.child.return = t, t = t.child;
          continue;
        }
        if (t === e)
          return null;
        for (; t.sibling === null; ) {
          if (t.return === null || t.return === e)
            return null;
          t = t.return;
        }
        t.sibling.return = t.return, t = t.sibling;
      }
      return null;
    }
    var Sl = (
      /*   */
      0
    ), Ki = (
      /* */
      1
    ), Lu = (
      /*  */
      2
    ), qi = (
      /*    */
      4
    ), Do = (
      /*   */
      8
    ), O2 = [];
    function P2() {
      for (var e = 0; e < O2.length; e++) {
        var t = O2[e];
        t._workInProgressVersionPrimary = null;
      }
      O2.length = 0;
    }
    function p9(e, t) {
      var m = t._getVersion, N = m(t._source);
      e.mutableSourceEagerHydrationData == null ? e.mutableSourceEagerHydrationData = [t, N] : e.mutableSourceEagerHydrationData.push(t, N);
    }
    var sn = E.ReactCurrentDispatcher, r0 = E.ReactCurrentBatchConfig, F2, Mh;
    F2 = /* @__PURE__ */ new Set();
    var Xd = qt, Ia = null, eo = null, to = null, Sy = !1, n0 = !1, a0 = 0, m9 = 0, y9 = 25, kr = null, bs = null, Gc = -1, z2 = !1;
    function Ma() {
      {
        var e = kr;
        bs === null ? bs = [e] : bs.push(e);
      }
    }
    function qr() {
      {
        var e = kr;
        bs !== null && (Gc++, bs[Gc] !== e && g9(e));
      }
    }
    function Eh(e) {
      e != null && !Zn(e) && M("%s received a final argument that is not an array (instead, received `%s`). When specified, the final argument must be an array.", kr, typeof e);
    }
    function g9(e) {
      {
        var t = sr(Ia);
        if (!F2.has(t) && (F2.add(t), bs !== null)) {
          for (var m = "", N = 30, V = 0; V <= Gc; V++) {
            for (var de = bs[V], Ee = V === Gc ? e : de, He = V + 1 + ". " + de; He.length < N; )
              He += " ";
            He += Ee + `
`, m += He;
          }
          M(`React has detected a change in the order of Hooks called by %s. This will lead to bugs and errors if not fixed. For more information, read the Rules of Hooks: https://reactjs.org/link/rules-of-hooks

   Previous render            Next render
   ------------------------------------------------------
%s   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
`, t, m);
        }
      }
    }
    function jo() {
      throw new Error(`Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
1. You might have mismatching versions of React and the renderer (such as React DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app
See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.`);
    }
    function _2(e, t) {
      if (z2)
        return !1;
      if (t === null)
        return M("%s received a final argument during this render, but not during the previous render. Even though the final argument is optional, its type cannot change between renders.", kr), !1;
      e.length !== t.length && M(`The final argument passed to %s changed size between renders. The order and size of this array must remain constant.

Previous: %s
Incoming: %s`, kr, "[" + t.join(", ") + "]", "[" + e.join(", ") + "]");
      for (var m = 0; m < t.length && m < e.length; m++)
        if (!mn(e[m], t[m]))
          return !1;
      return !0;
    }
    function Dh(e, t, m, N, V, de) {
      Xd = de, Ia = t, bs = e !== null ? e._debugHookTypes : null, Gc = -1, z2 = e !== null && e.type !== t.type, t.memoizedState = null, t.updateQueue = null, t.lanes = qt, e !== null && e.memoizedState !== null ? sn.current = X4 : bs !== null ? sn.current = Y4 : sn.current = W4;
      var Ee = m(N, V);
      if (n0) {
        var He = 0;
        do {
          if (n0 = !1, a0 = 0, He >= y9)
            throw new Error("Too many re-renders. React limits the number of renders to prevent an infinite loop.");
          He += 1, z2 = !1, eo = null, to = null, t.updateQueue = null, Gc = -1, sn.current = j4, Ee = m(N, V);
        } while (n0);
      }
      sn.current = _y, t._debugHookTypes = bs;
      var $e = eo !== null && eo.next !== null;
      if (Xd = qt, Ia = null, eo = null, to = null, kr = null, bs = null, Gc = -1, e !== null && (e.flags & Mi) !== (t.flags & Mi) && // Disable this warning in legacy mode, because legacy Suspense is weird
      // and creates false positives. To make this work in legacy mode, we'd
      // need to mark fibers that commit in an incomplete state, somehow. For
      // now I'll disable the warning that most of the bugs that would trigger
      // it are either exclusive to concurrent mode or exist in both.
      (e.mode & ct) !== Pt && M("Internal React error: Expected static flag was missing. Please notify the React team."), Sy = !1, $e)
        throw new Error("Rendered fewer hooks than expected. This may be caused by an accidental early return statement.");
      return Ee;
    }
    function Rh() {
      var e = a0 !== 0;
      return a0 = 0, e;
    }
    function S4(e, t, m) {
      t.updateQueue = e.updateQueue, (t.mode & Xt) !== Pt ? t.flags &= ~(ls | Ha | za | Wn) : t.flags &= ~(za | Wn), e.lanes = Ad(e.lanes, m);
    }
    function M4() {
      if (sn.current = _y, Sy) {
        for (var e = Ia.memoizedState; e !== null; ) {
          var t = e.queue;
          t !== null && (t.pending = null), e = e.next;
        }
        Sy = !1;
      }
      Xd = qt, Ia = null, eo = null, to = null, bs = null, Gc = -1, kr = null, H4 = !1, n0 = !1, a0 = 0;
    }
    function ku() {
      var e = {
        memoizedState: null,
        baseState: null,
        baseQueue: null,
        queue: null,
        next: null
      };
      return to === null ? Ia.memoizedState = to = e : to = to.next = e, to;
    }
    function xs() {
      var e;
      if (eo === null) {
        var t = Ia.alternate;
        t !== null ? e = t.memoizedState : e = null;
      } else
        e = eo.next;
      var m;
      if (to === null ? m = Ia.memoizedState : m = to.next, m !== null)
        to = m, m = to.next, eo = e;
      else {
        if (e === null)
          throw new Error("Rendered more hooks than during the previous render.");
        eo = e;
        var N = {
          memoizedState: eo.memoizedState,
          baseState: eo.baseState,
          baseQueue: eo.baseQueue,
          queue: eo.queue,
          next: null
        };
        to === null ? Ia.memoizedState = to = N : to = to.next = N;
      }
      return to;
    }
    function E4() {
      return {
        lastEffect: null,
        stores: null
      };
    }
    function H2(e, t) {
      return typeof t == "function" ? t(e) : t;
    }
    function B2(e, t, m) {
      var N = ku(), V;
      m !== void 0 ? V = m(t) : V = t, N.memoizedState = N.baseState = V;
      var de = {
        pending: null,
        interleaved: null,
        lanes: qt,
        dispatch: null,
        lastRenderedReducer: e,
        lastRenderedState: V
      };
      N.queue = de;
      var Ee = de.dispatch = C9.bind(null, Ia, de);
      return [N.memoizedState, Ee];
    }
    function V2(e, t, m) {
      var N = xs(), V = N.queue;
      if (V === null)
        throw new Error("Should have a queue. This is likely a bug in React. Please file an issue.");
      V.lastRenderedReducer = e;
      var de = eo, Ee = de.baseQueue, He = V.pending;
      if (He !== null) {
        if (Ee !== null) {
          var $e = Ee.next, pt = He.next;
          Ee.next = pt, He.next = $e;
        }
        de.baseQueue !== Ee && M("Internal error: Expected work-in-progress queue to be a clone. This is a bug in React."), de.baseQueue = Ee = He, V.pending = null;
      }
      if (Ee !== null) {
        var At = Ee.next, rr = de.baseState, er = null, pr = null, yr = null, Sr = At;
        do {
          var tn = Sr.lane;
          if (vf(Xd, tn)) {
            if (yr !== null) {
              var Cn = {
                // This update is going to be committed so we never want uncommit
                // it. Using NoLane works because 0 is a subset of all bitmasks, so
                // this will never be skipped by the check above.
                lane: Br,
                action: Sr.action,
                hasEagerState: Sr.hasEagerState,
                eagerState: Sr.eagerState,
                next: null
              };
              yr = yr.next = Cn;
            }
            if (Sr.hasEagerState)
              rr = Sr.eagerState;
            else {
              var ca = Sr.action;
              rr = e(rr, ca);
            }
          } else {
            var Ln = {
              lane: tn,
              action: Sr.action,
              hasEagerState: Sr.hasEagerState,
              eagerState: Sr.eagerState,
              next: null
            };
            yr === null ? (pr = yr = Ln, er = rr) : yr = yr.next = Ln, Ia.lanes = $n(Ia.lanes, tn), S0(tn);
          }
          Sr = Sr.next;
        } while (Sr !== null && Sr !== At);
        yr === null ? er = rr : yr.next = pr, mn(rr, N.memoizedState) || v0(), N.memoizedState = rr, N.baseState = er, N.baseQueue = yr, V.lastRenderedState = rr;
      }
      var ia = V.interleaved;
      if (ia !== null) {
        var cr = ia;
        do {
          var Mr = cr.lane;
          Ia.lanes = $n(Ia.lanes, Mr), S0(Mr), cr = cr.next;
        } while (cr !== ia);
      } else
        Ee === null && (V.lanes = qt);
      var dr = V.dispatch;
      return [N.memoizedState, dr];
    }
    function G2(e, t, m) {
      var N = xs(), V = N.queue;
      if (V === null)
        throw new Error("Should have a queue. This is likely a bug in React. Please file an issue.");
      V.lastRenderedReducer = e;
      var de = V.dispatch, Ee = V.pending, He = N.memoizedState;
      if (Ee !== null) {
        V.pending = null;
        var $e = Ee.next, pt = $e;
        do {
          var At = pt.action;
          He = e(He, At), pt = pt.next;
        } while (pt !== $e);
        mn(He, N.memoizedState) || v0(), N.memoizedState = He, N.baseQueue === null && (N.baseState = He), V.lastRenderedState = He;
      }
      return [He, de];
    }
    function nH(e, t, m) {
    }
    function aH(e, t, m) {
    }
    function U2(e, t, m) {
      var N = Ia, V = ku(), de, Ee = Eo();
      if (Ee) {
        if (m === void 0)
          throw new Error("Missing getServerSnapshot, which is required for server-rendered content. Will revert to client rendering.");
        de = m(), Mh || de !== m() && (M("The result of getServerSnapshot should be cached to avoid an infinite loop"), Mh = !0);
      } else {
        if (de = t(), !Mh) {
          var He = t();
          mn(de, He) || (M("The result of getSnapshot should be cached to avoid an infinite loop"), Mh = !0);
        }
        var $e = ng();
        if ($e === null)
          throw new Error("Expected a work-in-progress root. This is a bug in React. Please file an issue.");
        Cd($e, Xd) || D4(N, t, de);
      }
      V.memoizedState = de;
      var pt = {
        value: de,
        getSnapshot: t
      };
      return V.queue = pt, Ly(L4.bind(null, N, pt, e), [e]), N.flags |= za, i0(Ki | Do, R4.bind(null, N, pt, de, t), void 0, null), de;
    }
    function My(e, t, m) {
      var N = Ia, V = xs(), de = t();
      if (!Mh) {
        var Ee = t();
        mn(de, Ee) || (M("The result of getSnapshot should be cached to avoid an infinite loop"), Mh = !0);
      }
      var He = V.memoizedState, $e = !mn(He, de);
      $e && (V.memoizedState = de, v0());
      var pt = V.queue;
      if (l0(L4.bind(null, N, pt, e), [e]), pt.getSnapshot !== t || $e || // Check if the susbcribe function changed. We can save some memory by
      // checking whether we scheduled a subscription effect above.
      to !== null && to.memoizedState.tag & Ki) {
        N.flags |= za, i0(Ki | Do, R4.bind(null, N, pt, de, t), void 0, null);
        var At = ng();
        if (At === null)
          throw new Error("Expected a work-in-progress root. This is a bug in React. Please file an issue.");
        Cd(At, Xd) || D4(N, t, de);
      }
      return de;
    }
    function D4(e, t, m) {
      e.flags |= of;
      var N = {
        getSnapshot: t,
        value: m
      }, V = Ia.updateQueue;
      if (V === null)
        V = E4(), Ia.updateQueue = V, V.stores = [N];
      else {
        var de = V.stores;
        de === null ? V.stores = [N] : de.push(N);
      }
    }
    function R4(e, t, m, N) {
      t.value = m, t.getSnapshot = N, k4(t) && I4(e);
    }
    function L4(e, t, m) {
      var N = function() {
        k4(t) && I4(e);
      };
      return m(N);
    }
    function k4(e) {
      var t = e.getSnapshot, m = e.value;
      try {
        var N = t();
        return !mn(m, N);
      } catch {
        return !0;
      }
    }
    function I4(e) {
      var t = wl(e, xr);
      t !== null && io(t, e, xr, Ua);
    }
    function Ey(e) {
      var t = ku();
      typeof e == "function" && (e = e()), t.memoizedState = t.baseState = e;
      var m = {
        pending: null,
        interleaved: null,
        lanes: qt,
        dispatch: null,
        lastRenderedReducer: H2,
        lastRenderedState: e
      };
      t.queue = m;
      var N = m.dispatch = A9.bind(null, Ia, m);
      return [t.memoizedState, N];
    }
    function W2(e) {
      return V2(H2);
    }
    function Y2(e) {
      return G2(H2);
    }
    function i0(e, t, m, N) {
      var V = {
        tag: e,
        create: t,
        destroy: m,
        deps: N,
        // Circular
        next: null
      }, de = Ia.updateQueue;
      if (de === null)
        de = E4(), Ia.updateQueue = de, de.lastEffect = V.next = V;
      else {
        var Ee = de.lastEffect;
        if (Ee === null)
          de.lastEffect = V.next = V;
        else {
          var He = Ee.next;
          Ee.next = V, V.next = He, de.lastEffect = V;
        }
      }
      return V;
    }
    function X2(e) {
      var t = ku();
      {
        var m = {
          current: e
        };
        return t.memoizedState = m, m;
      }
    }
    function Dy(e) {
      var t = xs();
      return t.memoizedState;
    }
    function o0(e, t, m, N) {
      var V = ku(), de = N === void 0 ? null : N;
      Ia.flags |= e, V.memoizedState = i0(Ki | t, m, void 0, de);
    }
    function Ry(e, t, m, N) {
      var V = xs(), de = N === void 0 ? null : N, Ee = void 0;
      if (eo !== null) {
        var He = eo.memoizedState;
        if (Ee = He.destroy, de !== null) {
          var $e = He.deps;
          if (_2(de, $e)) {
            V.memoizedState = i0(t, m, Ee, de);
            return;
          }
        }
      }
      Ia.flags |= e, V.memoizedState = i0(Ki | t, m, Ee, de);
    }
    function Ly(e, t) {
      return (Ia.mode & Xt) !== Pt ? o0(ls | za | dl, Do, e, t) : o0(za | dl, Do, e, t);
    }
    function l0(e, t) {
      return Ry(za, Do, e, t);
    }
    function j2(e, t) {
      return o0(Wn, Lu, e, t);
    }
    function ky(e, t) {
      return Ry(Wn, Lu, e, t);
    }
    function Z2(e, t) {
      var m = Wn;
      return m |= $i, (Ia.mode & Xt) !== Pt && (m |= Ha), o0(m, qi, e, t);
    }
    function Iy(e, t) {
      return Ry(Wn, qi, e, t);
    }
    function N4(e, t) {
      if (typeof t == "function") {
        var m = t, N = e();
        return m(N), function() {
          m(null);
        };
      } else if (t != null) {
        var V = t;
        V.hasOwnProperty("current") || M("Expected useImperativeHandle() first argument to either be a ref callback or React.createRef() object. Instead received: %s.", "an object with keys {" + Object.keys(V).join(", ") + "}");
        var de = e();
        return V.current = de, function() {
          V.current = null;
        };
      }
    }
    function $2(e, t, m) {
      typeof t != "function" && M("Expected useImperativeHandle() second argument to be a function that creates a handle. Instead received: %s.", t !== null ? typeof t : "null");
      var N = m != null ? m.concat([e]) : null, V = Wn;
      return V |= $i, (Ia.mode & Xt) !== Pt && (V |= Ha), o0(V, qi, N4.bind(null, t, e), N);
    }
    function Ny(e, t, m) {
      typeof t != "function" && M("Expected useImperativeHandle() second argument to be a function that creates a handle. Instead received: %s.", t !== null ? typeof t : "null");
      var N = m != null ? m.concat([e]) : null;
      return Ry(Wn, qi, N4.bind(null, t, e), N);
    }
    function b9(e, t) {
    }
    var Oy = b9;
    function J2(e, t) {
      var m = ku(), N = t === void 0 ? null : t;
      return m.memoizedState = [e, N], e;
    }
    function Py(e, t) {
      var m = xs(), N = t === void 0 ? null : t, V = m.memoizedState;
      if (V !== null && N !== null) {
        var de = V[1];
        if (_2(N, de))
          return V[0];
      }
      return m.memoizedState = [e, N], e;
    }
    function Q2(e, t) {
      var m = ku(), N = t === void 0 ? null : t, V = e();
      return m.memoizedState = [V, N], V;
    }
    function Fy(e, t) {
      var m = xs(), N = t === void 0 ? null : t, V = m.memoizedState;
      if (V !== null && N !== null) {
        var de = V[1];
        if (_2(N, de))
          return V[0];
      }
      var Ee = e();
      return m.memoizedState = [Ee, N], Ee;
    }
    function K2(e) {
      var t = ku();
      return t.memoizedState = e, e;
    }
    function O4(e) {
      var t = xs(), m = eo, N = m.memoizedState;
      return F4(t, N, e);
    }
    function P4(e) {
      var t = xs();
      if (eo === null)
        return t.memoizedState = e, e;
      var m = eo.memoizedState;
      return F4(t, m, e);
    }
    function F4(e, t, m) {
      var N = !dm(Xd);
      if (N) {
        if (!mn(m, t)) {
          var V = pm();
          Ia.lanes = $n(Ia.lanes, V), S0(V), e.baseState = !0;
        }
        return t;
      } else
        return e.baseState && (e.baseState = !1, v0()), e.memoizedState = m, m;
    }
    function x9(e, t, m) {
      var N = gl();
      ii(g1(N, Vs)), e(!0);
      var V = r0.transition;
      r0.transition = {};
      var de = r0.transition;
      r0.transition._updatedFibers = /* @__PURE__ */ new Set();
      try {
        e(!1), t();
      } finally {
        if (ii(N), r0.transition = V, V === null && de._updatedFibers) {
          var Ee = de._updatedFibers.size;
          Ee > 10 && K("Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table."), de._updatedFibers.clear();
        }
      }
    }
    function q2() {
      var e = Ey(!1), t = e[0], m = e[1], N = x9.bind(null, m), V = ku();
      return V.memoizedState = N, [t, N];
    }
    function z4() {
      var e = W2(), t = e[0], m = xs(), N = m.memoizedState;
      return [t, N];
    }
    function _4() {
      var e = Y2(), t = e[0], m = xs(), N = m.memoizedState;
      return [t, N];
    }
    var H4 = !1;
    function T9() {
      return H4;
    }
    function eb() {
      var e = ku(), t = ng(), m = t.identifierPrefix, N;
      if (Eo()) {
        var V = _8();
        N = ":" + m + "R" + V;
        var de = a0++;
        de > 0 && (N += "H" + de.toString(32)), N += ":";
      } else {
        var Ee = m9++;
        N = ":" + m + "r" + Ee.toString(32) + ":";
      }
      return e.memoizedState = N, N;
    }
    function zy() {
      var e = xs(), t = e.memoizedState;
      return t;
    }
    function C9(e, t, m) {
      typeof arguments[3] == "function" && M("State updates from the useState() and useReducer() Hooks don't support the second callback argument. To execute a side effect after rendering, declare it in the component body with useEffect().");
      var N = jc(e), V = {
        lane: N,
        action: m,
        hasEagerState: !1,
        eagerState: null,
        next: null
      };
      if (B4(e))
        V4(t, V);
      else {
        var de = p4(e, t, V, N);
        if (de !== null) {
          var Ee = il();
          io(de, e, N, Ee), G4(de, t, N);
        }
      }
      U4(e, N);
    }
    function A9(e, t, m) {
      typeof arguments[3] == "function" && M("State updates from the useState() and useReducer() Hooks don't support the second callback argument. To execute a side effect after rendering, declare it in the component body with useEffect().");
      var N = jc(e), V = {
        lane: N,
        action: m,
        hasEagerState: !1,
        eagerState: null,
        next: null
      };
      if (B4(e))
        V4(t, V);
      else {
        var de = e.alternate;
        if (e.lanes === qt && (de === null || de.lanes === qt)) {
          var Ee = t.lastRenderedReducer;
          if (Ee !== null) {
            var He;
            He = sn.current, sn.current = $s;
            try {
              var $e = t.lastRenderedState, pt = Ee($e, m);
              if (V.hasEagerState = !0, V.eagerState = pt, mn(pt, $e)) {
                l9(e, t, V, N);
                return;
              }
            } catch {
            } finally {
              sn.current = He;
            }
          }
        }
        var At = p4(e, t, V, N);
        if (At !== null) {
          var rr = il();
          io(At, e, N, rr), G4(At, t, N);
        }
      }
      U4(e, N);
    }
    function B4(e) {
      var t = e.alternate;
      return e === Ia || t !== null && t === Ia;
    }
    function V4(e, t) {
      n0 = Sy = !0;
      var m = e.pending;
      m === null ? t.next = t : (t.next = m.next, m.next = t), e.pending = t;
    }
    function G4(e, t, m) {
      if (vp(m)) {
        var N = t.lanes;
        N = Hv(N, e.pendingLanes);
        var V = $n(N, m);
        t.lanes = V, hp(e, V);
      }
    }
    function U4(e, t, m) {
      Vt(e, t);
    }
    var _y = {
      readContext: Wi,
      useCallback: jo,
      useContext: jo,
      useEffect: jo,
      useImperativeHandle: jo,
      useInsertionEffect: jo,
      useLayoutEffect: jo,
      useMemo: jo,
      useReducer: jo,
      useRef: jo,
      useState: jo,
      useDebugValue: jo,
      useDeferredValue: jo,
      useTransition: jo,
      useMutableSource: jo,
      useSyncExternalStore: jo,
      useId: jo,
      unstable_isNewReconciler: q
    }, W4 = null, Y4 = null, X4 = null, j4 = null, Iu = null, $s = null, Hy = null;
    {
      var tb = function() {
        M("Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().");
      }, Yn = function() {
        M("Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. You can only call Hooks at the top level of your React function. For more information, see https://reactjs.org/link/rules-of-hooks");
      };
      W4 = {
        readContext: function(e) {
          return Wi(e);
        },
        useCallback: function(e, t) {
          return kr = "useCallback", Ma(), Eh(t), J2(e, t);
        },
        useContext: function(e) {
          return kr = "useContext", Ma(), Wi(e);
        },
        useEffect: function(e, t) {
          return kr = "useEffect", Ma(), Eh(t), Ly(e, t);
        },
        useImperativeHandle: function(e, t, m) {
          return kr = "useImperativeHandle", Ma(), Eh(m), $2(e, t, m);
        },
        useInsertionEffect: function(e, t) {
          return kr = "useInsertionEffect", Ma(), Eh(t), j2(e, t);
        },
        useLayoutEffect: function(e, t) {
          return kr = "useLayoutEffect", Ma(), Eh(t), Z2(e, t);
        },
        useMemo: function(e, t) {
          kr = "useMemo", Ma(), Eh(t);
          var m = sn.current;
          sn.current = Iu;
          try {
            return Q2(e, t);
          } finally {
            sn.current = m;
          }
        },
        useReducer: function(e, t, m) {
          kr = "useReducer", Ma();
          var N = sn.current;
          sn.current = Iu;
          try {
            return B2(e, t, m);
          } finally {
            sn.current = N;
          }
        },
        useRef: function(e) {
          return kr = "useRef", Ma(), X2(e);
        },
        useState: function(e) {
          kr = "useState", Ma();
          var t = sn.current;
          sn.current = Iu;
          try {
            return Ey(e);
          } finally {
            sn.current = t;
          }
        },
        useDebugValue: function(e, t) {
          return kr = "useDebugValue", Ma(), void 0;
        },
        useDeferredValue: function(e) {
          return kr = "useDeferredValue", Ma(), K2(e);
        },
        useTransition: function() {
          return kr = "useTransition", Ma(), q2();
        },
        useMutableSource: function(e, t, m) {
          return kr = "useMutableSource", Ma(), void 0;
        },
        useSyncExternalStore: function(e, t, m) {
          return kr = "useSyncExternalStore", Ma(), U2(e, t, m);
        },
        useId: function() {
          return kr = "useId", Ma(), eb();
        },
        unstable_isNewReconciler: q
      }, Y4 = {
        readContext: function(e) {
          return Wi(e);
        },
        useCallback: function(e, t) {
          return kr = "useCallback", qr(), J2(e, t);
        },
        useContext: function(e) {
          return kr = "useContext", qr(), Wi(e);
        },
        useEffect: function(e, t) {
          return kr = "useEffect", qr(), Ly(e, t);
        },
        useImperativeHandle: function(e, t, m) {
          return kr = "useImperativeHandle", qr(), $2(e, t, m);
        },
        useInsertionEffect: function(e, t) {
          return kr = "useInsertionEffect", qr(), j2(e, t);
        },
        useLayoutEffect: function(e, t) {
          return kr = "useLayoutEffect", qr(), Z2(e, t);
        },
        useMemo: function(e, t) {
          kr = "useMemo", qr();
          var m = sn.current;
          sn.current = Iu;
          try {
            return Q2(e, t);
          } finally {
            sn.current = m;
          }
        },
        useReducer: function(e, t, m) {
          kr = "useReducer", qr();
          var N = sn.current;
          sn.current = Iu;
          try {
            return B2(e, t, m);
          } finally {
            sn.current = N;
          }
        },
        useRef: function(e) {
          return kr = "useRef", qr(), X2(e);
        },
        useState: function(e) {
          kr = "useState", qr();
          var t = sn.current;
          sn.current = Iu;
          try {
            return Ey(e);
          } finally {
            sn.current = t;
          }
        },
        useDebugValue: function(e, t) {
          return kr = "useDebugValue", qr(), void 0;
        },
        useDeferredValue: function(e) {
          return kr = "useDeferredValue", qr(), K2(e);
        },
        useTransition: function() {
          return kr = "useTransition", qr(), q2();
        },
        useMutableSource: function(e, t, m) {
          return kr = "useMutableSource", qr(), void 0;
        },
        useSyncExternalStore: function(e, t, m) {
          return kr = "useSyncExternalStore", qr(), U2(e, t, m);
        },
        useId: function() {
          return kr = "useId", qr(), eb();
        },
        unstable_isNewReconciler: q
      }, X4 = {
        readContext: function(e) {
          return Wi(e);
        },
        useCallback: function(e, t) {
          return kr = "useCallback", qr(), Py(e, t);
        },
        useContext: function(e) {
          return kr = "useContext", qr(), Wi(e);
        },
        useEffect: function(e, t) {
          return kr = "useEffect", qr(), l0(e, t);
        },
        useImperativeHandle: function(e, t, m) {
          return kr = "useImperativeHandle", qr(), Ny(e, t, m);
        },
        useInsertionEffect: function(e, t) {
          return kr = "useInsertionEffect", qr(), ky(e, t);
        },
        useLayoutEffect: function(e, t) {
          return kr = "useLayoutEffect", qr(), Iy(e, t);
        },
        useMemo: function(e, t) {
          kr = "useMemo", qr();
          var m = sn.current;
          sn.current = $s;
          try {
            return Fy(e, t);
          } finally {
            sn.current = m;
          }
        },
        useReducer: function(e, t, m) {
          kr = "useReducer", qr();
          var N = sn.current;
          sn.current = $s;
          try {
            return V2(e, t, m);
          } finally {
            sn.current = N;
          }
        },
        useRef: function(e) {
          return kr = "useRef", qr(), Dy();
        },
        useState: function(e) {
          kr = "useState", qr();
          var t = sn.current;
          sn.current = $s;
          try {
            return W2(e);
          } finally {
            sn.current = t;
          }
        },
        useDebugValue: function(e, t) {
          return kr = "useDebugValue", qr(), Oy();
        },
        useDeferredValue: function(e) {
          return kr = "useDeferredValue", qr(), O4(e);
        },
        useTransition: function() {
          return kr = "useTransition", qr(), z4();
        },
        useMutableSource: function(e, t, m) {
          return kr = "useMutableSource", qr(), void 0;
        },
        useSyncExternalStore: function(e, t, m) {
          return kr = "useSyncExternalStore", qr(), My(e, t);
        },
        useId: function() {
          return kr = "useId", qr(), zy();
        },
        unstable_isNewReconciler: q
      }, j4 = {
        readContext: function(e) {
          return Wi(e);
        },
        useCallback: function(e, t) {
          return kr = "useCallback", qr(), Py(e, t);
        },
        useContext: function(e) {
          return kr = "useContext", qr(), Wi(e);
        },
        useEffect: function(e, t) {
          return kr = "useEffect", qr(), l0(e, t);
        },
        useImperativeHandle: function(e, t, m) {
          return kr = "useImperativeHandle", qr(), Ny(e, t, m);
        },
        useInsertionEffect: function(e, t) {
          return kr = "useInsertionEffect", qr(), ky(e, t);
        },
        useLayoutEffect: function(e, t) {
          return kr = "useLayoutEffect", qr(), Iy(e, t);
        },
        useMemo: function(e, t) {
          kr = "useMemo", qr();
          var m = sn.current;
          sn.current = Hy;
          try {
            return Fy(e, t);
          } finally {
            sn.current = m;
          }
        },
        useReducer: function(e, t, m) {
          kr = "useReducer", qr();
          var N = sn.current;
          sn.current = Hy;
          try {
            return G2(e, t, m);
          } finally {
            sn.current = N;
          }
        },
        useRef: function(e) {
          return kr = "useRef", qr(), Dy();
        },
        useState: function(e) {
          kr = "useState", qr();
          var t = sn.current;
          sn.current = Hy;
          try {
            return Y2(e);
          } finally {
            sn.current = t;
          }
        },
        useDebugValue: function(e, t) {
          return kr = "useDebugValue", qr(), Oy();
        },
        useDeferredValue: function(e) {
          return kr = "useDeferredValue", qr(), P4(e);
        },
        useTransition: function() {
          return kr = "useTransition", qr(), _4();
        },
        useMutableSource: function(e, t, m) {
          return kr = "useMutableSource", qr(), void 0;
        },
        useSyncExternalStore: function(e, t, m) {
          return kr = "useSyncExternalStore", qr(), My(e, t);
        },
        useId: function() {
          return kr = "useId", qr(), zy();
        },
        unstable_isNewReconciler: q
      }, Iu = {
        readContext: function(e) {
          return tb(), Wi(e);
        },
        useCallback: function(e, t) {
          return kr = "useCallback", Yn(), Ma(), J2(e, t);
        },
        useContext: function(e) {
          return kr = "useContext", Yn(), Ma(), Wi(e);
        },
        useEffect: function(e, t) {
          return kr = "useEffect", Yn(), Ma(), Ly(e, t);
        },
        useImperativeHandle: function(e, t, m) {
          return kr = "useImperativeHandle", Yn(), Ma(), $2(e, t, m);
        },
        useInsertionEffect: function(e, t) {
          return kr = "useInsertionEffect", Yn(), Ma(), j2(e, t);
        },
        useLayoutEffect: function(e, t) {
          return kr = "useLayoutEffect", Yn(), Ma(), Z2(e, t);
        },
        useMemo: function(e, t) {
          kr = "useMemo", Yn(), Ma();
          var m = sn.current;
          sn.current = Iu;
          try {
            return Q2(e, t);
          } finally {
            sn.current = m;
          }
        },
        useReducer: function(e, t, m) {
          kr = "useReducer", Yn(), Ma();
          var N = sn.current;
          sn.current = Iu;
          try {
            return B2(e, t, m);
          } finally {
            sn.current = N;
          }
        },
        useRef: function(e) {
          return kr = "useRef", Yn(), Ma(), X2(e);
        },
        useState: function(e) {
          kr = "useState", Yn(), Ma();
          var t = sn.current;
          sn.current = Iu;
          try {
            return Ey(e);
          } finally {
            sn.current = t;
          }
        },
        useDebugValue: function(e, t) {
          return kr = "useDebugValue", Yn(), Ma(), void 0;
        },
        useDeferredValue: function(e) {
          return kr = "useDeferredValue", Yn(), Ma(), K2(e);
        },
        useTransition: function() {
          return kr = "useTransition", Yn(), Ma(), q2();
        },
        useMutableSource: function(e, t, m) {
          return kr = "useMutableSource", Yn(), Ma(), void 0;
        },
        useSyncExternalStore: function(e, t, m) {
          return kr = "useSyncExternalStore", Yn(), Ma(), U2(e, t, m);
        },
        useId: function() {
          return kr = "useId", Yn(), Ma(), eb();
        },
        unstable_isNewReconciler: q
      }, $s = {
        readContext: function(e) {
          return tb(), Wi(e);
        },
        useCallback: function(e, t) {
          return kr = "useCallback", Yn(), qr(), Py(e, t);
        },
        useContext: function(e) {
          return kr = "useContext", Yn(), qr(), Wi(e);
        },
        useEffect: function(e, t) {
          return kr = "useEffect", Yn(), qr(), l0(e, t);
        },
        useImperativeHandle: function(e, t, m) {
          return kr = "useImperativeHandle", Yn(), qr(), Ny(e, t, m);
        },
        useInsertionEffect: function(e, t) {
          return kr = "useInsertionEffect", Yn(), qr(), ky(e, t);
        },
        useLayoutEffect: function(e, t) {
          return kr = "useLayoutEffect", Yn(), qr(), Iy(e, t);
        },
        useMemo: function(e, t) {
          kr = "useMemo", Yn(), qr();
          var m = sn.current;
          sn.current = $s;
          try {
            return Fy(e, t);
          } finally {
            sn.current = m;
          }
        },
        useReducer: function(e, t, m) {
          kr = "useReducer", Yn(), qr();
          var N = sn.current;
          sn.current = $s;
          try {
            return V2(e, t, m);
          } finally {
            sn.current = N;
          }
        },
        useRef: function(e) {
          return kr = "useRef", Yn(), qr(), Dy();
        },
        useState: function(e) {
          kr = "useState", Yn(), qr();
          var t = sn.current;
          sn.current = $s;
          try {
            return W2(e);
          } finally {
            sn.current = t;
          }
        },
        useDebugValue: function(e, t) {
          return kr = "useDebugValue", Yn(), qr(), Oy();
        },
        useDeferredValue: function(e) {
          return kr = "useDeferredValue", Yn(), qr(), O4(e);
        },
        useTransition: function() {
          return kr = "useTransition", Yn(), qr(), z4();
        },
        useMutableSource: function(e, t, m) {
          return kr = "useMutableSource", Yn(), qr(), void 0;
        },
        useSyncExternalStore: function(e, t, m) {
          return kr = "useSyncExternalStore", Yn(), qr(), My(e, t);
        },
        useId: function() {
          return kr = "useId", Yn(), qr(), zy();
        },
        unstable_isNewReconciler: q
      }, Hy = {
        readContext: function(e) {
          return tb(), Wi(e);
        },
        useCallback: function(e, t) {
          return kr = "useCallback", Yn(), qr(), Py(e, t);
        },
        useContext: function(e) {
          return kr = "useContext", Yn(), qr(), Wi(e);
        },
        useEffect: function(e, t) {
          return kr = "useEffect", Yn(), qr(), l0(e, t);
        },
        useImperativeHandle: function(e, t, m) {
          return kr = "useImperativeHandle", Yn(), qr(), Ny(e, t, m);
        },
        useInsertionEffect: function(e, t) {
          return kr = "useInsertionEffect", Yn(), qr(), ky(e, t);
        },
        useLayoutEffect: function(e, t) {
          return kr = "useLayoutEffect", Yn(), qr(), Iy(e, t);
        },
        useMemo: function(e, t) {
          kr = "useMemo", Yn(), qr();
          var m = sn.current;
          sn.current = $s;
          try {
            return Fy(e, t);
          } finally {
            sn.current = m;
          }
        },
        useReducer: function(e, t, m) {
          kr = "useReducer", Yn(), qr();
          var N = sn.current;
          sn.current = $s;
          try {
            return G2(e, t, m);
          } finally {
            sn.current = N;
          }
        },
        useRef: function(e) {
          return kr = "useRef", Yn(), qr(), Dy();
        },
        useState: function(e) {
          kr = "useState", Yn(), qr();
          var t = sn.current;
          sn.current = $s;
          try {
            return Y2(e);
          } finally {
            sn.current = t;
          }
        },
        useDebugValue: function(e, t) {
          return kr = "useDebugValue", Yn(), qr(), Oy();
        },
        useDeferredValue: function(e) {
          return kr = "useDeferredValue", Yn(), qr(), P4(e);
        },
        useTransition: function() {
          return kr = "useTransition", Yn(), qr(), _4();
        },
        useMutableSource: function(e, t, m) {
          return kr = "useMutableSource", Yn(), qr(), void 0;
        },
        useSyncExternalStore: function(e, t, m) {
          return kr = "useSyncExternalStore", Yn(), qr(), My(e, t);
        },
        useId: function() {
          return kr = "useId", Yn(), qr(), zy();
        },
        unstable_isNewReconciler: q
      };
    }
    var Uc = o.unstable_now, Z4 = 0, By = -1, s0 = -1, Vy = -1, rb = !1, Gy = !1;
    function $4() {
      return rb;
    }
    function w9() {
      Gy = !0;
    }
    function S9() {
      rb = !1, Gy = !1;
    }
    function M9() {
      rb = Gy, Gy = !1;
    }
    function J4() {
      return Z4;
    }
    function Q4() {
      Z4 = Uc();
    }
    function nb(e) {
      s0 = Uc(), e.actualStartTime < 0 && (e.actualStartTime = Uc());
    }
    function K4(e) {
      s0 = -1;
    }
    function Uy(e, t) {
      if (s0 >= 0) {
        var m = Uc() - s0;
        e.actualDuration += m, t && (e.selfBaseDuration = m), s0 = -1;
      }
    }
    function Nu(e) {
      if (By >= 0) {
        var t = Uc() - By;
        By = -1;
        for (var m = e.return; m !== null; ) {
          switch (m.tag) {
            case l:
              var N = m.stateNode;
              N.effectDuration += t;
              return;
            case D:
              var V = m.stateNode;
              V.effectDuration += t;
              return;
          }
          m = m.return;
        }
      }
    }
    function ab(e) {
      if (Vy >= 0) {
        var t = Uc() - Vy;
        Vy = -1;
        for (var m = e.return; m !== null; ) {
          switch (m.tag) {
            case l:
              var N = m.stateNode;
              N !== null && (N.passiveEffectDuration += t);
              return;
            case D:
              var V = m.stateNode;
              V !== null && (V.passiveEffectDuration += t);
              return;
          }
          m = m.return;
        }
      }
    }
    function Ou() {
      By = Uc();
    }
    function ib() {
      Vy = Uc();
    }
    function ob(e) {
      for (var t = e.child; t; )
        e.actualDuration += t.actualDuration, t = t.sibling;
    }
    function Js(e, t) {
      if (e && e.defaultProps) {
        var m = lr({}, t), N = e.defaultProps;
        for (var V in N)
          m[V] === void 0 && (m[V] = N[V]);
        return m;
      }
      return t;
    }
    var lb = {}, sb, ub, fb, cb, db, q4, Wy, vb, hb, pb, u0;
    {
      sb = /* @__PURE__ */ new Set(), ub = /* @__PURE__ */ new Set(), fb = /* @__PURE__ */ new Set(), cb = /* @__PURE__ */ new Set(), vb = /* @__PURE__ */ new Set(), db = /* @__PURE__ */ new Set(), hb = /* @__PURE__ */ new Set(), pb = /* @__PURE__ */ new Set(), u0 = /* @__PURE__ */ new Set();
      var eC = /* @__PURE__ */ new Set();
      Wy = function(e, t) {
        if (!(e === null || typeof e == "function")) {
          var m = t + "_" + e;
          eC.has(m) || (eC.add(m), M("%s(...): Expected the last optional `callback` argument to be a function. Instead received: %s.", t, e));
        }
      }, q4 = function(e, t) {
        if (t === void 0) {
          var m = $t(e) || "Component";
          db.has(m) || (db.add(m), M("%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. You have returned undefined.", m));
        }
      }, Object.defineProperty(lb, "_processChildContext", {
        enumerable: !1,
        value: function() {
          throw new Error("_processChildContext is not available in React 16+. This likely means you have multiple copies of React and are attempting to nest a React 15 tree inside a React 16 tree using unstable_renderSubtreeIntoContainer, which isn't supported. Try to make sure you have only one copy of React (and ideally, switch to ReactDOM.createPortal).");
        }
      }), Object.freeze(lb);
    }
    function mb(e, t, m, N) {
      var V = e.memoizedState, de = m(N, V);
      {
        if (e.mode & Rt) {
          ja(!0);
          try {
            de = m(N, V);
          } finally {
            ja(!1);
          }
        }
        q4(t, de);
      }
      var Ee = de == null ? V : lr({}, V, de);
      if (e.memoizedState = Ee, e.lanes === qt) {
        var He = e.updateQueue;
        He.baseState = Ee;
      }
    }
    var yb = {
      isMounted: bo,
      enqueueSetState: function(e, t, m) {
        var N = uo(e), V = il(), de = jc(N), Ee = Mf(V, de);
        Ee.payload = t, m != null && (Wy(m, "setState"), Ee.callback = m);
        var He = Hc(N, Ee, de);
        He !== null && (io(He, N, de, V), by(He, N, de)), Vt(N, de);
      },
      enqueueReplaceState: function(e, t, m) {
        var N = uo(e), V = il(), de = jc(N), Ee = Mf(V, de);
        Ee.tag = y4, Ee.payload = t, m != null && (Wy(m, "replaceState"), Ee.callback = m);
        var He = Hc(N, Ee, de);
        He !== null && (io(He, N, de, V), by(He, N, de)), Vt(N, de);
      },
      enqueueForceUpdate: function(e, t) {
        var m = uo(e), N = il(), V = jc(m), de = Mf(N, V);
        de.tag = my, t != null && (Wy(t, "forceUpdate"), de.callback = t);
        var Ee = Hc(m, de, V);
        Ee !== null && (io(Ee, m, V, N), by(Ee, m, V)), gt(m, V);
      }
    };
    function tC(e, t, m, N, V, de, Ee) {
      var He = e.stateNode;
      if (typeof He.shouldComponentUpdate == "function") {
        var $e = He.shouldComponentUpdate(N, de, Ee);
        {
          if (e.mode & Rt) {
            ja(!0);
            try {
              $e = He.shouldComponentUpdate(N, de, Ee);
            } finally {
              ja(!1);
            }
          }
          $e === void 0 && M("%s.shouldComponentUpdate(): Returned undefined instead of a boolean value. Make sure to return true or false.", $t(t) || "Component");
        }
        return $e;
      }
      return t.prototype && t.prototype.isPureReactComponent ? !zn(m, N) || !zn(V, de) : !0;
    }
    function E9(e, t, m) {
      var N = e.stateNode;
      {
        var V = $t(t) || "Component", de = N.render;
        de || (t.prototype && typeof t.prototype.render == "function" ? M("%s(...): No `render` method found on the returned component instance: did you accidentally return an object from the constructor?", V) : M("%s(...): No `render` method found on the returned component instance: you may have forgotten to define `render`.", V)), N.getInitialState && !N.getInitialState.isReactClassApproved && !N.state && M("getInitialState was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Did you mean to define a state property instead?", V), N.getDefaultProps && !N.getDefaultProps.isReactClassApproved && M("getDefaultProps was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Use a static property to define defaultProps instead.", V), N.propTypes && M("propTypes was defined as an instance property on %s. Use a static property to define propTypes instead.", V), N.contextType && M("contextType was defined as an instance property on %s. Use a static property to define contextType instead.", V), t.childContextTypes && !u0.has(t) && // Strict Mode has its own warning for legacy context, so we can skip
        // this one.
        (e.mode & Rt) === Pt && (u0.add(t), M(`%s uses the legacy childContextTypes API which is no longer supported and will be removed in the next major release. Use React.createContext() instead

.Learn more about this warning here: https://reactjs.org/link/legacy-context`, V)), t.contextTypes && !u0.has(t) && // Strict Mode has its own warning for legacy context, so we can skip
        // this one.
        (e.mode & Rt) === Pt && (u0.add(t), M(`%s uses the legacy contextTypes API which is no longer supported and will be removed in the next major release. Use React.createContext() with static contextType instead.

Learn more about this warning here: https://reactjs.org/link/legacy-context`, V)), N.contextTypes && M("contextTypes was defined as an instance property on %s. Use a static property to define contextTypes instead.", V), t.contextType && t.contextTypes && !hb.has(t) && (hb.add(t), M("%s declares both contextTypes and contextType static properties. The legacy contextTypes property will be ignored.", V)), typeof N.componentShouldUpdate == "function" && M("%s has a method called componentShouldUpdate(). Did you mean shouldComponentUpdate()? The name is phrased as a question because the function is expected to return a value.", V), t.prototype && t.prototype.isPureReactComponent && typeof N.shouldComponentUpdate < "u" && M("%s has a method called shouldComponentUpdate(). shouldComponentUpdate should not be used when extending React.PureComponent. Please extend React.Component if shouldComponentUpdate is used.", $t(t) || "A pure component"), typeof N.componentDidUnmount == "function" && M("%s has a method called componentDidUnmount(). But there is no such lifecycle method. Did you mean componentWillUnmount()?", V), typeof N.componentDidReceiveProps == "function" && M("%s has a method called componentDidReceiveProps(). But there is no such lifecycle method. If you meant to update the state in response to changing props, use componentWillReceiveProps(). If you meant to fetch data or run side-effects or mutations after React has updated the UI, use componentDidUpdate().", V), typeof N.componentWillRecieveProps == "function" && M("%s has a method called componentWillRecieveProps(). Did you mean componentWillReceiveProps()?", V), typeof N.UNSAFE_componentWillRecieveProps == "function" && M("%s has a method called UNSAFE_componentWillRecieveProps(). Did you mean UNSAFE_componentWillReceiveProps()?", V);
        var Ee = N.props !== m;
        N.props !== void 0 && Ee && M("%s(...): When calling super() in `%s`, make sure to pass up the same props that your component's constructor was passed.", V, V), N.defaultProps && M("Setting defaultProps as an instance property on %s is not supported and will be ignored. Instead, define defaultProps as a static property on %s.", V, V), typeof N.getSnapshotBeforeUpdate == "function" && typeof N.componentDidUpdate != "function" && !fb.has(t) && (fb.add(t), M("%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). This component defines getSnapshotBeforeUpdate() only.", $t(t))), typeof N.getDerivedStateFromProps == "function" && M("%s: getDerivedStateFromProps() is defined as an instance method and will be ignored. Instead, declare it as a static method.", V), typeof N.getDerivedStateFromError == "function" && M("%s: getDerivedStateFromError() is defined as an instance method and will be ignored. Instead, declare it as a static method.", V), typeof t.getSnapshotBeforeUpdate == "function" && M("%s: getSnapshotBeforeUpdate() is defined as a static method and will be ignored. Instead, declare it as an instance method.", V);
        var He = N.state;
        He && (typeof He != "object" || Zn(He)) && M("%s.state: must be set to an object or null", V), typeof N.getChildContext == "function" && typeof t.childContextTypes != "object" && M("%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().", V);
      }
    }
    function rC(e, t) {
      t.updater = yb, e.stateNode = t, zs(t, e), t._reactInternalInstance = lb;
    }
    function nC(e, t, m) {
      var N = !1, V = jl, de = jl, Ee = t.contextType;
      if ("contextType" in t) {
        var He = (
          // Allow null for conditional declaration
          Ee === null || Ee !== void 0 && Ee.$$typeof === Ze && Ee._context === void 0
        );
        if (!He && !pb.has(t)) {
          pb.add(t);
          var $e = "";
          Ee === void 0 ? $e = " However, it is set to undefined. This can be caused by a typo or by mixing up named and default imports. This can also happen due to a circular dependency, so try moving the createContext() call to a separate file." : typeof Ee != "object" ? $e = " However, it is set to a " + typeof Ee + "." : Ee.$$typeof === Ye ? $e = " Did you accidentally pass the Context.Provider instead?" : Ee._context !== void 0 ? $e = " Did you accidentally pass the Context.Consumer instead?" : $e = " However, it is set to an object with keys {" + Object.keys(Ee).join(", ") + "}.", M("%s defines an invalid contextType. contextType should point to the Context object returned by React.createContext().%s", $t(t) || "Component", $e);
        }
      }
      if (typeof Ee == "object" && Ee !== null)
        de = Wi(Ee);
      else {
        V = ph(e, t, !0);
        var pt = t.contextTypes;
        N = pt != null, de = N ? mh(e, V) : jl;
      }
      var At = new t(m, de);
      if (e.mode & Rt) {
        ja(!0);
        try {
          At = new t(m, de);
        } finally {
          ja(!1);
        }
      }
      var rr = e.memoizedState = At.state !== null && At.state !== void 0 ? At.state : null;
      rC(e, At);
      {
        if (typeof t.getDerivedStateFromProps == "function" && rr === null) {
          var er = $t(t) || "Component";
          ub.has(er) || (ub.add(er), M("`%s` uses `getDerivedStateFromProps` but its initial state is %s. This is not recommended. Instead, define the initial state by assigning an object to `this.state` in the constructor of `%s`. This ensures that `getDerivedStateFromProps` arguments have a consistent shape.", er, At.state === null ? "null" : "undefined", er));
        }
        if (typeof t.getDerivedStateFromProps == "function" || typeof At.getSnapshotBeforeUpdate == "function") {
          var pr = null, yr = null, Sr = null;
          if (typeof At.componentWillMount == "function" && At.componentWillMount.__suppressDeprecationWarning !== !0 ? pr = "componentWillMount" : typeof At.UNSAFE_componentWillMount == "function" && (pr = "UNSAFE_componentWillMount"), typeof At.componentWillReceiveProps == "function" && At.componentWillReceiveProps.__suppressDeprecationWarning !== !0 ? yr = "componentWillReceiveProps" : typeof At.UNSAFE_componentWillReceiveProps == "function" && (yr = "UNSAFE_componentWillReceiveProps"), typeof At.componentWillUpdate == "function" && At.componentWillUpdate.__suppressDeprecationWarning !== !0 ? Sr = "componentWillUpdate" : typeof At.UNSAFE_componentWillUpdate == "function" && (Sr = "UNSAFE_componentWillUpdate"), pr !== null || yr !== null || Sr !== null) {
            var tn = $t(t) || "Component", Ln = typeof t.getDerivedStateFromProps == "function" ? "getDerivedStateFromProps()" : "getSnapshotBeforeUpdate()";
            cb.has(tn) || (cb.add(tn), M(`Unsafe legacy lifecycles will not be called for components using new component APIs.

%s uses %s but also contains the following legacy lifecycles:%s%s%s

The above lifecycles should be removed. Learn more about this warning here:
https://reactjs.org/link/unsafe-component-lifecycles`, tn, Ln, pr !== null ? `
  ` + pr : "", yr !== null ? `
  ` + yr : "", Sr !== null ? `
  ` + Sr : ""));
          }
        }
      }
      return N && XT(e, V, de), At;
    }
    function D9(e, t) {
      var m = t.state;
      typeof t.componentWillMount == "function" && t.componentWillMount(), typeof t.UNSAFE_componentWillMount == "function" && t.UNSAFE_componentWillMount(), m !== t.state && (M("%s.componentWillMount(): Assigning directly to this.state is deprecated (except inside a component's constructor). Use setState instead.", sr(e) || "Component"), yb.enqueueReplaceState(t, t.state, null));
    }
    function aC(e, t, m, N) {
      var V = t.state;
      if (typeof t.componentWillReceiveProps == "function" && t.componentWillReceiveProps(m, N), typeof t.UNSAFE_componentWillReceiveProps == "function" && t.UNSAFE_componentWillReceiveProps(m, N), t.state !== V) {
        {
          var de = sr(e) || "Component";
          sb.has(de) || (sb.add(de), M("%s.componentWillReceiveProps(): Assigning directly to this.state is deprecated (except inside a component's constructor). Use setState instead.", de));
        }
        yb.enqueueReplaceState(t, t.state, null);
      }
    }
    function gb(e, t, m, N) {
      E9(e, t, m);
      var V = e.stateNode;
      V.props = m, V.state = e.memoizedState, V.refs = {}, E2(e);
      var de = t.contextType;
      if (typeof de == "object" && de !== null)
        V.context = Wi(de);
      else {
        var Ee = ph(e, t, !0);
        V.context = mh(e, Ee);
      }
      {
        if (V.state === m) {
          var He = $t(t) || "Component";
          vb.has(He) || (vb.add(He), M("%s: It is not recommended to assign props directly to state because updates to props won't be reflected in state. In most cases, it is better to use props directly.", He));
        }
        e.mode & Rt && js.recordLegacyContextWarning(e, V), js.recordUnsafeLifecycleWarnings(e, V);
      }
      V.state = e.memoizedState;
      var $e = t.getDerivedStateFromProps;
      if (typeof $e == "function" && (mb(e, t, $e, m), V.state = e.memoizedState), typeof t.getDerivedStateFromProps != "function" && typeof V.getSnapshotBeforeUpdate != "function" && (typeof V.UNSAFE_componentWillMount == "function" || typeof V.componentWillMount == "function") && (D9(e, V), xy(e, m, V, N), V.state = e.memoizedState), typeof V.componentDidMount == "function") {
        var pt = Wn;
        pt |= $i, (e.mode & Xt) !== Pt && (pt |= Ha), e.flags |= pt;
      }
    }
    function R9(e, t, m, N) {
      var V = e.stateNode, de = e.memoizedProps;
      V.props = de;
      var Ee = V.context, He = t.contextType, $e = jl;
      if (typeof He == "object" && He !== null)
        $e = Wi(He);
      else {
        var pt = ph(e, t, !0);
        $e = mh(e, pt);
      }
      var At = t.getDerivedStateFromProps, rr = typeof At == "function" || typeof V.getSnapshotBeforeUpdate == "function";
      !rr && (typeof V.UNSAFE_componentWillReceiveProps == "function" || typeof V.componentWillReceiveProps == "function") && (de !== m || Ee !== $e) && aC(e, V, m, $e), b4();
      var er = e.memoizedState, pr = V.state = er;
      if (xy(e, m, V, N), pr = e.memoizedState, de === m && er === pr && !ty() && !Ty()) {
        if (typeof V.componentDidMount == "function") {
          var yr = Wn;
          yr |= $i, (e.mode & Xt) !== Pt && (yr |= Ha), e.flags |= yr;
        }
        return !1;
      }
      typeof At == "function" && (mb(e, t, At, m), pr = e.memoizedState);
      var Sr = Ty() || tC(e, t, de, m, er, pr, $e);
      if (Sr) {
        if (!rr && (typeof V.UNSAFE_componentWillMount == "function" || typeof V.componentWillMount == "function") && (typeof V.componentWillMount == "function" && V.componentWillMount(), typeof V.UNSAFE_componentWillMount == "function" && V.UNSAFE_componentWillMount()), typeof V.componentDidMount == "function") {
          var tn = Wn;
          tn |= $i, (e.mode & Xt) !== Pt && (tn |= Ha), e.flags |= tn;
        }
      } else {
        if (typeof V.componentDidMount == "function") {
          var Ln = Wn;
          Ln |= $i, (e.mode & Xt) !== Pt && (Ln |= Ha), e.flags |= Ln;
        }
        e.memoizedProps = m, e.memoizedState = pr;
      }
      return V.props = m, V.state = pr, V.context = $e, Sr;
    }
    function L9(e, t, m, N, V) {
      var de = t.stateNode;
      g4(e, t);
      var Ee = t.memoizedProps, He = t.type === t.elementType ? Ee : Js(t.type, Ee);
      de.props = He;
      var $e = t.pendingProps, pt = de.context, At = m.contextType, rr = jl;
      if (typeof At == "object" && At !== null)
        rr = Wi(At);
      else {
        var er = ph(t, m, !0);
        rr = mh(t, er);
      }
      var pr = m.getDerivedStateFromProps, yr = typeof pr == "function" || typeof de.getSnapshotBeforeUpdate == "function";
      !yr && (typeof de.UNSAFE_componentWillReceiveProps == "function" || typeof de.componentWillReceiveProps == "function") && (Ee !== $e || pt !== rr) && aC(t, de, N, rr), b4();
      var Sr = t.memoizedState, tn = de.state = Sr;
      if (xy(t, N, de, V), tn = t.memoizedState, Ee === $e && Sr === tn && !ty() && !Ty() && !B)
        return typeof de.componentDidUpdate == "function" && (Ee !== e.memoizedProps || Sr !== e.memoizedState) && (t.flags |= Wn), typeof de.getSnapshotBeforeUpdate == "function" && (Ee !== e.memoizedProps || Sr !== e.memoizedState) && (t.flags |= go), !1;
      typeof pr == "function" && (mb(t, m, pr, N), tn = t.memoizedState);
      var Ln = Ty() || tC(t, m, He, N, Sr, tn, rr) || // TODO: In some cases, we'll end up checking if context has changed twice,
      // both before and after `shouldComponentUpdate` has been called. Not ideal,
      // but I'm loath to refactor this function. This only happens for memoized
      // components so it's not that common.
      B;
      return Ln ? (!yr && (typeof de.UNSAFE_componentWillUpdate == "function" || typeof de.componentWillUpdate == "function") && (typeof de.componentWillUpdate == "function" && de.componentWillUpdate(N, tn, rr), typeof de.UNSAFE_componentWillUpdate == "function" && de.UNSAFE_componentWillUpdate(N, tn, rr)), typeof de.componentDidUpdate == "function" && (t.flags |= Wn), typeof de.getSnapshotBeforeUpdate == "function" && (t.flags |= go)) : (typeof de.componentDidUpdate == "function" && (Ee !== e.memoizedProps || Sr !== e.memoizedState) && (t.flags |= Wn), typeof de.getSnapshotBeforeUpdate == "function" && (Ee !== e.memoizedProps || Sr !== e.memoizedState) && (t.flags |= go), t.memoizedProps = N, t.memoizedState = tn), de.props = N, de.state = tn, de.context = rr, Ln;
    }
    function jd(e, t) {
      return {
        value: e,
        source: t,
        stack: Zt(t),
        digest: null
      };
    }
    function bb(e, t, m) {
      return {
        value: e,
        source: null,
        stack: m ?? null,
        digest: t ?? null
      };
    }
    function k9(e, t) {
      return !0;
    }
    function xb(e, t) {
      try {
        var m = k9(e, t);
        if (m === !1)
          return;
        var N = t.value, V = t.source, de = t.stack, Ee = de !== null ? de : "";
        if (N != null && N._suppressLogging) {
          if (e.tag === a)
            return;
          console.error(N);
        }
        var He = V ? sr(V) : null, $e = He ? "The above error occurred in the <" + He + "> component:" : "The above error occurred in one of your React components:", pt;
        if (e.tag === l)
          pt = `Consider adding an error boundary to your tree to customize error handling behavior.
Visit https://reactjs.org/link/error-boundaries to learn more about error boundaries.`;
        else {
          var At = sr(e) || "Anonymous";
          pt = "React will try to recreate this component tree from scratch " + ("using the error boundary you provided, " + At + ".");
        }
        var rr = $e + `
` + Ee + `

` + ("" + pt);
        console.error(rr);
      } catch (er) {
        setTimeout(function() {
          throw er;
        });
      }
    }
    var I9 = typeof WeakMap == "function" ? WeakMap : Map;
    function iC(e, t, m) {
      var N = Mf(Ua, m);
      N.tag = S2, N.payload = {
        element: null
      };
      var V = t.value;
      return N.callback = function() {
        wD(V), xb(e, t);
      }, N;
    }
    function Tb(e, t, m) {
      var N = Mf(Ua, m);
      N.tag = S2;
      var V = e.type.getDerivedStateFromError;
      if (typeof V == "function") {
        var de = t.value;
        N.payload = function() {
          return V(de);
        }, N.callback = function() {
          mA(e), xb(e, t);
        };
      }
      var Ee = e.stateNode;
      return Ee !== null && typeof Ee.componentDidCatch == "function" && (N.callback = function() {
        mA(e), xb(e, t), typeof V != "function" && CD(this);
        var $e = t.value, pt = t.stack;
        this.componentDidCatch($e, {
          componentStack: pt !== null ? pt : ""
        }), typeof V != "function" && (Uo(e.lanes, xr) || M("%s: Error boundaries should implement getDerivedStateFromError(). In that method, return a state update to display an error message or fallback UI.", sr(e) || "Unknown"));
      }), N;
    }
    function oC(e, t, m) {
      var N = e.pingCache, V;
      if (N === null ? (N = e.pingCache = new I9(), V = /* @__PURE__ */ new Set(), N.set(t, V)) : (V = N.get(t), V === void 0 && (V = /* @__PURE__ */ new Set(), N.set(t, V))), !V.has(m)) {
        V.add(m);
        var de = SD.bind(null, e, t, m);
        Bi && M0(e, m), t.then(de, de);
      }
    }
    function N9(e, t, m, N) {
      var V = e.updateQueue;
      if (V === null) {
        var de = /* @__PURE__ */ new Set();
        de.add(m), e.updateQueue = de;
      } else
        V.add(m);
    }
    function O9(e, t) {
      var m = e.tag;
      if ((e.mode & ct) === Pt && (m === r || m === x || m === S)) {
        var N = e.alternate;
        N ? (e.updateQueue = N.updateQueue, e.memoizedState = N.memoizedState, e.lanes = N.lanes) : (e.updateQueue = null, e.memoizedState = null);
      }
    }
    function lC(e) {
      var t = e;
      do {
        if (t.tag === C && h9(t))
          return t;
        t = t.return;
      } while (t !== null);
      return null;
    }
    function sC(e, t, m, N, V) {
      if ((e.mode & ct) === Pt) {
        if (e === t)
          e.flags |= gi;
        else {
          if (e.flags |= Hn, m.flags |= os, m.flags &= ~(ac | fo), m.tag === a) {
            var de = m.alternate;
            if (de === null)
              m.tag = k;
            else {
              var Ee = Mf(Ua, xr);
              Ee.tag = my, Hc(m, Ee, xr);
            }
          }
          m.lanes = $n(m.lanes, xr);
        }
        return e;
      }
      return e.flags |= gi, e.lanes = V, e;
    }
    function P9(e, t, m, N, V) {
      if (m.flags |= fo, Bi && M0(e, V), N !== null && typeof N == "object" && typeof N.then == "function") {
        var de = N;
        O9(m), Eo() && m.mode & ct && qT();
        var Ee = lC(t);
        if (Ee !== null) {
          Ee.flags &= ~Xa, sC(Ee, t, m, e, V), Ee.mode & ct && oC(e, de, V), N9(Ee, e, de);
          return;
        } else {
          if (!dp(V)) {
            oC(e, de, V), ex();
            return;
          }
          var He = new Error("A component suspended while responding to synchronous input. This will cause the UI to be replaced with a loading indicator. To fix, updates that suspend should be wrapped with startTransition.");
          N = He;
        }
      } else if (Eo() && m.mode & ct) {
        qT();
        var $e = lC(t);
        if ($e !== null) {
          ($e.flags & gi) === wn && ($e.flags |= Xa), sC($e, t, m, e, V), v2(jd(N, m));
          return;
        }
      }
      N = jd(N, m), hD(N);
      var pt = t;
      do {
        switch (pt.tag) {
          case l: {
            var At = N;
            pt.flags |= gi;
            var rr = mc(V);
            pt.lanes = $n(pt.lanes, rr);
            var er = iC(pt, At, rr);
            D2(pt, er);
            return;
          }
          case a:
            var pr = N, yr = pt.type, Sr = pt.stateNode;
            if ((pt.flags & Hn) === wn && (typeof yr.getDerivedStateFromError == "function" || Sr !== null && typeof Sr.componentDidCatch == "function" && !lA(Sr))) {
              pt.flags |= gi;
              var tn = mc(V);
              pt.lanes = $n(pt.lanes, tn);
              var Ln = Tb(pt, pr, tn);
              D2(pt, Ln);
              return;
            }
            break;
        }
        pt = pt.return;
      } while (pt !== null);
    }
    function F9() {
      return null;
    }
    var f0 = E.ReactCurrentOwner, Qs = !1, Cb, c0, Ab, wb, Sb, Zd, Mb, Yy, d0;
    Cb = {}, c0 = {}, Ab = {}, wb = {}, Sb = {}, Zd = !1, Mb = {}, Yy = {}, d0 = {};
    function nl(e, t, m, N) {
      e === null ? t.child = c4(t, null, m, N) : t.child = xh(t, e.child, m, N);
    }
    function z9(e, t, m, N) {
      t.child = xh(t, e.child, null, N), t.child = xh(t, null, m, N);
    }
    function uC(e, t, m, N, V) {
      if (t.type !== t.elementType) {
        var de = m.propTypes;
        de && Ys(
          de,
          N,
          // Resolved props
          "prop",
          $t(m)
        );
      }
      var Ee = m.render, He = t.ref, $e, pt;
      Ch(t, V), Bs(t);
      {
        if (f0.current = t, hn(!0), $e = Dh(e, t, Ee, N, He, V), pt = Rh(), t.mode & Rt) {
          ja(!0);
          try {
            $e = Dh(e, t, Ee, N, He, V), pt = Rh();
          } finally {
            ja(!1);
          }
        }
        hn(!1);
      }
      return vo(), e !== null && !Qs ? (S4(e, t, V), Ef(e, t, V)) : (Eo() && pt && l2(t), t.flags |= Gl, nl(e, t, $e, V), t.child);
    }
    function fC(e, t, m, N, V) {
      if (e === null) {
        var de = m.type;
        if (GD(de) && m.compare === null && // SimpleMemoComponent codepath doesn't resolve outer props either.
        m.defaultProps === void 0) {
          var Ee = de;
          return Ee = zh(de), t.tag = S, t.type = Ee, Rb(t, de), cC(e, t, Ee, N, V);
        }
        {
          var He = de.propTypes;
          if (He && Ys(
            He,
            N,
            // Resolved props
            "prop",
            $t(de)
          ), m.defaultProps !== void 0) {
            var $e = $t(de) || "Unknown";
            d0[$e] || (M("%s: Support for defaultProps will be removed from memo components in a future major release. Use JavaScript default parameters instead.", $e), d0[$e] = !0);
          }
        }
        var pt = cx(m.type, null, N, t, t.mode, V);
        return pt.ref = t.ref, pt.return = t, t.child = pt, pt;
      }
      {
        var At = m.type, rr = At.propTypes;
        rr && Ys(
          rr,
          N,
          // Resolved props
          "prop",
          $t(At)
        );
      }
      var er = e.child, pr = Pb(e, V);
      if (!pr) {
        var yr = er.memoizedProps, Sr = m.compare;
        if (Sr = Sr !== null ? Sr : zn, Sr(yr, N) && e.ref === t.ref)
          return Ef(e, t, V);
      }
      t.flags |= Gl;
      var tn = qd(er, N);
      return tn.ref = t.ref, tn.return = t, t.child = tn, tn;
    }
    function cC(e, t, m, N, V) {
      if (t.type !== t.elementType) {
        var de = t.elementType;
        if (de.$$typeof === dt) {
          var Ee = de, He = Ee._payload, $e = Ee._init;
          try {
            de = $e(He);
          } catch {
            de = null;
          }
          var pt = de && de.propTypes;
          pt && Ys(
            pt,
            N,
            // Resolved (SimpleMemoComponent has no defaultProps)
            "prop",
            $t(de)
          );
        }
      }
      if (e !== null) {
        var At = e.memoizedProps;
        if (zn(At, N) && e.ref === t.ref && // Prevent bailout if the implementation changed due to hot reload.
        t.type === e.type)
          if (Qs = !1, t.pendingProps = N = At, Pb(e, V))
            (e.flags & os) !== wn && (Qs = !0);
          else
            return t.lanes = e.lanes, Ef(e, t, V);
      }
      return Eb(e, t, m, N, V);
    }
    function dC(e, t, m) {
      var N = t.pendingProps, V = N.children, de = e !== null ? e.memoizedState : null;
      if (N.mode === "hidden" || X)
        if ((t.mode & ct) === Pt) {
          var Ee = {
            baseLanes: qt,
            cachePool: null,
            transitions: null
          };
          t.memoizedState = Ee, ag(t, m);
        } else if (Uo(m, po)) {
          var rr = {
            baseLanes: qt,
            cachePool: null,
            transitions: null
          };
          t.memoizedState = rr;
          var er = de !== null ? de.baseLanes : m;
          ag(t, er);
        } else {
          var He = null, $e;
          if (de !== null) {
            var pt = de.baseLanes;
            $e = $n(pt, m);
          } else
            $e = m;
          t.lanes = t.childLanes = po;
          var At = {
            baseLanes: $e,
            cachePool: He,
            transitions: null
          };
          return t.memoizedState = At, t.updateQueue = null, ag(t, $e), null;
        }
      else {
        var pr;
        de !== null ? (pr = $n(de.baseLanes, m), t.memoizedState = null) : pr = m, ag(t, pr);
      }
      return nl(e, t, V, m), t.child;
    }
    function _9(e, t, m) {
      var N = t.pendingProps;
      return nl(e, t, N, m), t.child;
    }
    function H9(e, t, m) {
      var N = t.pendingProps.children;
      return nl(e, t, N, m), t.child;
    }
    function B9(e, t, m) {
      {
        t.flags |= Wn;
        {
          var N = t.stateNode;
          N.effectDuration = 0, N.passiveEffectDuration = 0;
        }
      }
      var V = t.pendingProps, de = V.children;
      return nl(e, t, de, m), t.child;
    }
    function vC(e, t) {
      var m = t.ref;
      (e === null && m !== null || e !== null && e.ref !== m) && (t.flags |= Zi, t.flags |= ic);
    }
    function Eb(e, t, m, N, V) {
      if (t.type !== t.elementType) {
        var de = m.propTypes;
        de && Ys(
          de,
          N,
          // Resolved props
          "prop",
          $t(m)
        );
      }
      var Ee;
      {
        var He = ph(t, m, !0);
        Ee = mh(t, He);
      }
      var $e, pt;
      Ch(t, V), Bs(t);
      {
        if (f0.current = t, hn(!0), $e = Dh(e, t, m, N, Ee, V), pt = Rh(), t.mode & Rt) {
          ja(!0);
          try {
            $e = Dh(e, t, m, N, Ee, V), pt = Rh();
          } finally {
            ja(!1);
          }
        }
        hn(!1);
      }
      return vo(), e !== null && !Qs ? (S4(e, t, V), Ef(e, t, V)) : (Eo() && pt && l2(t), t.flags |= Gl, nl(e, t, $e, V), t.child);
    }
    function hC(e, t, m, N, V) {
      {
        switch (nR(t)) {
          case !1: {
            var de = t.stateNode, Ee = t.type, He = new Ee(t.memoizedProps, de.context), $e = He.state;
            de.updater.enqueueSetState(de, $e, null);
            break;
          }
          case !0: {
            t.flags |= Hn, t.flags |= gi;
            var pt = new Error("Simulated error coming from DevTools"), At = mc(V);
            t.lanes = $n(t.lanes, At);
            var rr = Tb(t, jd(pt, t), At);
            D2(t, rr);
            break;
          }
        }
        if (t.type !== t.elementType) {
          var er = m.propTypes;
          er && Ys(
            er,
            N,
            // Resolved props
            "prop",
            $t(m)
          );
        }
      }
      var pr;
      Ru(m) ? (pr = !0, ny(t)) : pr = !1, Ch(t, V);
      var yr = t.stateNode, Sr;
      yr === null ? (jy(e, t), nC(t, m, N), gb(t, m, N, V), Sr = !0) : e === null ? Sr = R9(t, m, N, V) : Sr = L9(e, t, m, N, V);
      var tn = Db(e, t, m, Sr, pr, V);
      {
        var Ln = t.stateNode;
        Sr && Ln.props !== N && (Zd || M("It looks like %s is reassigning its own `this.props` while rendering. This is not supported and can lead to confusing bugs.", sr(t) || "a component"), Zd = !0);
      }
      return tn;
    }
    function Db(e, t, m, N, V, de) {
      vC(e, t);
      var Ee = (t.flags & Hn) !== wn;
      if (!N && !Ee)
        return V && $T(t, m, !1), Ef(e, t, de);
      var He = t.stateNode;
      f0.current = t;
      var $e;
      if (Ee && typeof m.getDerivedStateFromError != "function")
        $e = null, K4();
      else {
        Bs(t);
        {
          if (hn(!0), $e = He.render(), t.mode & Rt) {
            ja(!0);
            try {
              He.render();
            } finally {
              ja(!1);
            }
          }
          hn(!1);
        }
        vo();
      }
      return t.flags |= Gl, e !== null && Ee ? z9(e, t, $e, de) : nl(e, t, $e, de), t.memoizedState = He.state, V && $T(t, m, !0), t.child;
    }
    function pC(e) {
      var t = e.stateNode;
      t.pendingContext ? jT(e, t.pendingContext, t.pendingContext !== t.context) : t.context && jT(e, t.context, !1), R2(e, t.containerInfo);
    }
    function V9(e, t, m) {
      if (pC(t), e === null)
        throw new Error("Should have a current fiber. This is a bug in React.");
      var N = t.pendingProps, V = t.memoizedState, de = V.element;
      g4(e, t), xy(t, N, null, m);
      var Ee = t.memoizedState;
      t.stateNode;
      var He = Ee.element;
      if (V.isDehydrated) {
        var $e = {
          element: He,
          isDehydrated: !1,
          cache: Ee.cache,
          pendingSuspenseBoundaries: Ee.pendingSuspenseBoundaries,
          transitions: Ee.transitions
        }, pt = t.updateQueue;
        if (pt.baseState = $e, t.memoizedState = $e, t.flags & Xa) {
          var At = jd(new Error("There was an error while hydrating. Because the error happened outside of a Suspense boundary, the entire root will switch to client rendering."), t);
          return mC(e, t, He, m, At);
        } else if (He !== de) {
          var rr = jd(new Error("This root received an early update, before anything was able hydrate. Switched the entire root to client rendering."), t);
          return mC(e, t, He, m, rr);
        } else {
          W8(t);
          var er = c4(t, null, He, m);
          t.child = er;
          for (var pr = er; pr; )
            pr.flags = pr.flags & ~Aa | Ho, pr = pr.sibling;
        }
      } else {
        if (bh(), He === de)
          return Ef(e, t, m);
        nl(e, t, He, m);
      }
      return t.child;
    }
    function mC(e, t, m, N, V) {
      return bh(), v2(V), t.flags |= Xa, nl(e, t, m, N), t.child;
    }
    function G9(e, t, m) {
      C4(t), e === null && d2(t);
      var N = t.type, V = t.pendingProps, de = e !== null ? e.memoizedProps : null, Ee = V.children, He = j1(N, V);
      return He ? Ee = null : de !== null && j1(N, de) && (t.flags |= ha), vC(e, t), nl(e, t, Ee, m), t.child;
    }
    function U9(e, t) {
      return e === null && d2(t), null;
    }
    function W9(e, t, m, N) {
      jy(e, t);
      var V = t.pendingProps, de = m, Ee = de._payload, He = de._init, $e = He(Ee);
      t.type = $e;
      var pt = t.tag = UD($e), At = Js($e, V), rr;
      switch (pt) {
        case r:
          return Rb(t, $e), t.type = $e = zh($e), rr = Eb(null, t, $e, At, N), rr;
        case a:
          return t.type = $e = ix($e), rr = hC(null, t, $e, At, N), rr;
        case x:
          return t.type = $e = ox($e), rr = uC(null, t, $e, At, N), rr;
        case w: {
          if (t.type !== t.elementType) {
            var er = $e.propTypes;
            er && Ys(
              er,
              At,
              // Resolved for outer only
              "prop",
              $t($e)
            );
          }
          return rr = fC(
            null,
            t,
            $e,
            Js($e.type, At),
            // The inner type can have defaults too
            N
          ), rr;
        }
      }
      var pr = "";
      throw $e !== null && typeof $e == "object" && $e.$$typeof === dt && (pr = " Did you wrap a component in React.lazy() more than once?"), new Error("Element type is invalid. Received a promise that resolves to: " + $e + ". " + ("Lazy element type must resolve to a class or function." + pr));
    }
    function Y9(e, t, m, N, V) {
      jy(e, t), t.tag = a;
      var de;
      return Ru(m) ? (de = !0, ny(t)) : de = !1, Ch(t, V), nC(t, m, N), gb(t, m, N, V), Db(null, t, m, !0, de, V);
    }
    function X9(e, t, m, N) {
      jy(e, t);
      var V = t.pendingProps, de;
      {
        var Ee = ph(t, m, !1);
        de = mh(t, Ee);
      }
      Ch(t, N);
      var He, $e;
      Bs(t);
      {
        if (m.prototype && typeof m.prototype.render == "function") {
          var pt = $t(m) || "Unknown";
          Cb[pt] || (M("The <%s /> component appears to have a render method, but doesn't extend React.Component. This is likely to cause errors. Change %s to extend React.Component instead.", pt, pt), Cb[pt] = !0);
        }
        t.mode & Rt && js.recordLegacyContextWarning(t, null), hn(!0), f0.current = t, He = Dh(null, t, m, V, de, N), $e = Rh(), hn(!1);
      }
      if (vo(), t.flags |= Gl, typeof He == "object" && He !== null && typeof He.render == "function" && He.$$typeof === void 0) {
        var At = $t(m) || "Unknown";
        c0[At] || (M("The <%s /> component appears to be a function component that returns a class instance. Change %s to a class that extends React.Component instead. If you can't use a class try assigning the prototype on the function as a workaround. `%s.prototype = React.Component.prototype`. Don't use an arrow function since it cannot be called with `new` by React.", At, At, At), c0[At] = !0);
      }
      if (
        // Run these checks in production only if the flag is off.
        // Eventually we'll delete this branch altogether.
        typeof He == "object" && He !== null && typeof He.render == "function" && He.$$typeof === void 0
      ) {
        {
          var rr = $t(m) || "Unknown";
          c0[rr] || (M("The <%s /> component appears to be a function component that returns a class instance. Change %s to a class that extends React.Component instead. If you can't use a class try assigning the prototype on the function as a workaround. `%s.prototype = React.Component.prototype`. Don't use an arrow function since it cannot be called with `new` by React.", rr, rr, rr), c0[rr] = !0);
        }
        t.tag = a, t.memoizedState = null, t.updateQueue = null;
        var er = !1;
        return Ru(m) ? (er = !0, ny(t)) : er = !1, t.memoizedState = He.state !== null && He.state !== void 0 ? He.state : null, E2(t), rC(t, He), gb(t, m, V, N), Db(null, t, m, !0, er, N);
      } else {
        if (t.tag = r, t.mode & Rt) {
          ja(!0);
          try {
            He = Dh(null, t, m, V, de, N), $e = Rh();
          } finally {
            ja(!1);
          }
        }
        return Eo() && $e && l2(t), nl(null, t, He, N), Rb(t, m), t.child;
      }
    }
    function Rb(e, t) {
      {
        if (t && t.childContextTypes && M("%s(...): childContextTypes cannot be defined on a function component.", t.displayName || t.name || "Component"), e.ref !== null) {
          var m = "", N = $r();
          N && (m += `

Check the render method of \`` + N + "`.");
          var V = N || "", de = e._debugSource;
          de && (V = de.fileName + ":" + de.lineNumber), Sb[V] || (Sb[V] = !0, M("Function components cannot be given refs. Attempts to access this ref will fail. Did you mean to use React.forwardRef()?%s", m));
        }
        if (t.defaultProps !== void 0) {
          var Ee = $t(t) || "Unknown";
          d0[Ee] || (M("%s: Support for defaultProps will be removed from function components in a future major release. Use JavaScript default parameters instead.", Ee), d0[Ee] = !0);
        }
        if (typeof t.getDerivedStateFromProps == "function") {
          var He = $t(t) || "Unknown";
          wb[He] || (M("%s: Function components do not support getDerivedStateFromProps.", He), wb[He] = !0);
        }
        if (typeof t.contextType == "object" && t.contextType !== null) {
          var $e = $t(t) || "Unknown";
          Ab[$e] || (M("%s: Function components do not support contextType.", $e), Ab[$e] = !0);
        }
      }
    }
    var Lb = {
      dehydrated: null,
      treeContext: null,
      retryLane: Br
    };
    function kb(e) {
      return {
        baseLanes: e,
        cachePool: F9(),
        transitions: null
      };
    }
    function j9(e, t) {
      var m = null;
      return {
        baseLanes: $n(e.baseLanes, t),
        cachePool: m,
        transitions: e.transitions
      };
    }
    function Z9(e, t, m, N) {
      if (t !== null) {
        var V = t.memoizedState;
        if (V === null)
          return !1;
      }
      return I2(e, t0);
    }
    function $9(e, t) {
      return Ad(e.childLanes, t);
    }
    function yC(e, t, m) {
      var N = t.pendingProps;
      aR(t) && (t.flags |= Hn);
      var V = Zs.current, de = !1, Ee = (t.flags & Hn) !== wn;
      if (Ee || Z9(V, e) ? (de = !0, t.flags &= ~Hn) : (e === null || e.memoizedState !== null) && (V = v9(V, w4)), V = wh(V), Vc(t, V), e === null) {
        d2(t);
        var He = t.memoizedState;
        if (He !== null) {
          var $e = He.dehydrated;
          if ($e !== null)
            return e7(t, $e);
        }
        var pt = N.children, At = N.fallback;
        if (de) {
          var rr = J9(t, pt, At, m), er = t.child;
          return er.memoizedState = kb(m), t.memoizedState = Lb, rr;
        } else
          return Ib(t, pt);
      } else {
        var pr = e.memoizedState;
        if (pr !== null) {
          var yr = pr.dehydrated;
          if (yr !== null)
            return t7(e, t, Ee, N, yr, pr, m);
        }
        if (de) {
          var Sr = N.fallback, tn = N.children, Ln = K9(e, t, tn, Sr, m), Cn = t.child, ca = e.child.memoizedState;
          return Cn.memoizedState = ca === null ? kb(m) : j9(ca, m), Cn.childLanes = $9(e, m), t.memoizedState = Lb, Ln;
        } else {
          var ia = N.children, cr = Q9(e, t, ia, m);
          return t.memoizedState = null, cr;
        }
      }
    }
    function Ib(e, t, m) {
      var N = e.mode, V = {
        mode: "visible",
        children: t
      }, de = Nb(V, N);
      return de.return = e, e.child = de, de;
    }
    function J9(e, t, m, N) {
      var V = e.mode, de = e.child, Ee = {
        mode: "hidden",
        children: t
      }, He, $e;
      return (V & ct) === Pt && de !== null ? (He = de, He.childLanes = qt, He.pendingProps = Ee, e.mode & xt && (He.actualDuration = 0, He.actualStartTime = -1, He.selfBaseDuration = 0, He.treeBaseDuration = 0), $e = $c(m, V, N, null)) : (He = Nb(Ee, V), $e = $c(m, V, N, null)), He.return = e, $e.return = e, He.sibling = $e, e.child = He, $e;
    }
    function Nb(e, t, m) {
      return gA(e, t, qt, null);
    }
    function gC(e, t) {
      return qd(e, t);
    }
    function Q9(e, t, m, N) {
      var V = e.child, de = V.sibling, Ee = gC(V, {
        mode: "visible",
        children: m
      });
      if ((t.mode & ct) === Pt && (Ee.lanes = N), Ee.return = t, Ee.sibling = null, de !== null) {
        var He = t.deletions;
        He === null ? (t.deletions = [de], t.flags |= va) : He.push(de);
      }
      return t.child = Ee, Ee;
    }
    function K9(e, t, m, N, V) {
      var de = t.mode, Ee = e.child, He = Ee.sibling, $e = {
        mode: "hidden",
        children: m
      }, pt;
      if (
        // In legacy mode, we commit the primary tree as if it successfully
        // completed, even though it's in an inconsistent state.
        (de & ct) === Pt && // Make sure we're on the second pass, i.e. the primary child fragment was
        // already cloned. In legacy mode, the only case where this isn't true is
        // when DevTools forces us to display a fallback; we skip the first render
        // pass entirely and go straight to rendering the fallback. (In Concurrent
        // Mode, SuspenseList can also trigger this scenario, but this is a legacy-
        // only codepath.)
        t.child !== Ee
      ) {
        var At = t.child;
        pt = At, pt.childLanes = qt, pt.pendingProps = $e, t.mode & xt && (pt.actualDuration = 0, pt.actualStartTime = -1, pt.selfBaseDuration = Ee.selfBaseDuration, pt.treeBaseDuration = Ee.treeBaseDuration), t.deletions = null;
      } else
        pt = gC(Ee, $e), pt.subtreeFlags = Ee.subtreeFlags & Mi;
      var rr;
      return He !== null ? rr = qd(He, N) : (rr = $c(N, de, V, null), rr.flags |= Aa), rr.return = t, pt.return = t, pt.sibling = rr, t.child = pt, rr;
    }
    function Xy(e, t, m, N) {
      N !== null && v2(N), xh(t, e.child, null, m);
      var V = t.pendingProps, de = V.children, Ee = Ib(t, de);
      return Ee.flags |= Aa, t.memoizedState = null, Ee;
    }
    function q9(e, t, m, N, V) {
      var de = t.mode, Ee = {
        mode: "visible",
        children: m
      }, He = Nb(Ee, de), $e = $c(N, de, V, null);
      return $e.flags |= Aa, He.return = t, $e.return = t, He.sibling = $e, t.child = He, (t.mode & ct) !== Pt && xh(t, e.child, null, V), $e;
    }
    function e7(e, t, m) {
      return (e.mode & ct) === Pt ? (M("Cannot hydrate Suspense in legacy mode. Switch from ReactDOM.hydrate(element, container) to ReactDOMClient.hydrateRoot(container, <App />).render(element) or remove the Suspense components from the server rendered components."), e.lanes = xr) : Q1(t) ? e.lanes = fn : e.lanes = po, null;
    }
    function t7(e, t, m, N, V, de, Ee) {
      if (m)
        if (t.flags & Xa) {
          t.flags &= ~Xa;
          var cr = bb(new Error("There was an error while hydrating this Suspense boundary. Switched to client rendering."));
          return Xy(e, t, Ee, cr);
        } else {
          if (t.memoizedState !== null)
            return t.child = e.child, t.flags |= Hn, null;
          var Mr = N.children, dr = N.fallback, Yr = q9(e, t, Mr, dr, Ee), un = t.child;
          return un.memoizedState = kb(Ee), t.memoizedState = Lb, Yr;
        }
      else {
        if (G8(), (t.mode & ct) === Pt)
          return Xy(
            e,
            t,
            Ee,
            // TODO: When we delete legacy mode, we should make this error argument
            // required — every concurrent mode path that causes hydration to
            // de-opt to client rendering should have an error message.
            null
          );
        if (Q1(V)) {
          var He, $e, pt;
          {
            var At = i8(V);
            He = At.digest, $e = At.message, pt = At.stack;
          }
          var rr;
          $e ? rr = new Error($e) : rr = new Error("The server could not finish this Suspense boundary, likely due to an error during server rendering. Switched to client rendering.");
          var er = bb(rr, He, pt);
          return Xy(e, t, Ee, er);
        }
        var pr = Uo(Ee, e.childLanes);
        if (Qs || pr) {
          var yr = ng();
          if (yr !== null) {
            var Sr = gm(yr, Ee);
            if (Sr !== Br && Sr !== de.retryLane) {
              de.retryLane = Sr;
              var tn = Ua;
              wl(e, Sr), io(yr, e, Sr, tn);
            }
          }
          ex();
          var Ln = bb(new Error("This Suspense boundary received an update before it finished hydrating. This caused the boundary to switch to client rendering. The usual way to fix this is to wrap the original update in startTransition."));
          return Xy(e, t, Ee, Ln);
        } else if (VT(V)) {
          t.flags |= Hn, t.child = e.child;
          var Cn = MD.bind(null, e);
          return o8(V, Cn), null;
        } else {
          Y8(t, V, de.treeContext);
          var ca = N.children, ia = Ib(t, ca);
          return ia.flags |= Ho, ia;
        }
      }
    }
    function bC(e, t, m) {
      e.lanes = $n(e.lanes, t);
      var N = e.alternate;
      N !== null && (N.lanes = $n(N.lanes, t)), A2(e.return, t, m);
    }
    function r7(e, t, m) {
      for (var N = t; N !== null; ) {
        if (N.tag === C) {
          var V = N.memoizedState;
          V !== null && bC(N, m, e);
        } else if (N.tag === R)
          bC(N, m, e);
        else if (N.child !== null) {
          N.child.return = N, N = N.child;
          continue;
        }
        if (N === e)
          return;
        for (; N.sibling === null; ) {
          if (N.return === null || N.return === e)
            return;
          N = N.return;
        }
        N.sibling.return = N.return, N = N.sibling;
      }
    }
    function n7(e) {
      for (var t = e, m = null; t !== null; ) {
        var N = t.alternate;
        N !== null && wy(N) === null && (m = t), t = t.sibling;
      }
      return m;
    }
    function a7(e) {
      if (e !== void 0 && e !== "forwards" && e !== "backwards" && e !== "together" && !Mb[e])
        if (Mb[e] = !0, typeof e == "string")
          switch (e.toLowerCase()) {
            case "together":
            case "forwards":
            case "backwards": {
              M('"%s" is not a valid value for revealOrder on <SuspenseList />. Use lowercase "%s" instead.', e, e.toLowerCase());
              break;
            }
            case "forward":
            case "backward": {
              M('"%s" is not a valid value for revealOrder on <SuspenseList />. React uses the -s suffix in the spelling. Use "%ss" instead.', e, e.toLowerCase());
              break;
            }
            default:
              M('"%s" is not a supported revealOrder on <SuspenseList />. Did you mean "together", "forwards" or "backwards"?', e);
              break;
          }
        else
          M('%s is not a supported value for revealOrder on <SuspenseList />. Did you mean "together", "forwards" or "backwards"?', e);
    }
    function i7(e, t) {
      e !== void 0 && !Yy[e] && (e !== "collapsed" && e !== "hidden" ? (Yy[e] = !0, M('"%s" is not a supported value for tail on <SuspenseList />. Did you mean "collapsed" or "hidden"?', e)) : t !== "forwards" && t !== "backwards" && (Yy[e] = !0, M('<SuspenseList tail="%s" /> is only valid if revealOrder is "forwards" or "backwards". Did you mean to specify revealOrder="forwards"?', e)));
    }
    function xC(e, t) {
      {
        var m = Zn(e), N = !m && typeof Rr(e) == "function";
        if (m || N) {
          var V = m ? "array" : "iterable";
          return M("A nested %s was passed to row #%s in <SuspenseList />. Wrap it in an additional SuspenseList to configure its revealOrder: <SuspenseList revealOrder=...> ... <SuspenseList revealOrder=...>{%s}</SuspenseList> ... </SuspenseList>", V, t, V), !1;
        }
      }
      return !0;
    }
    function o7(e, t) {
      if ((t === "forwards" || t === "backwards") && e !== void 0 && e !== null && e !== !1)
        if (Zn(e)) {
          for (var m = 0; m < e.length; m++)
            if (!xC(e[m], m))
              return;
        } else {
          var N = Rr(e);
          if (typeof N == "function") {
            var V = N.call(e);
            if (V)
              for (var de = V.next(), Ee = 0; !de.done; de = V.next()) {
                if (!xC(de.value, Ee))
                  return;
                Ee++;
              }
          } else
            M('A single row was passed to a <SuspenseList revealOrder="%s" />. This is not useful since it needs multiple rows. Did you mean to pass multiple children or an array?', t);
        }
    }
    function Ob(e, t, m, N, V) {
      var de = e.memoizedState;
      de === null ? e.memoizedState = {
        isBackwards: t,
        rendering: null,
        renderingStartTime: 0,
        last: N,
        tail: m,
        tailMode: V
      } : (de.isBackwards = t, de.rendering = null, de.renderingStartTime = 0, de.last = N, de.tail = m, de.tailMode = V);
    }
    function TC(e, t, m) {
      var N = t.pendingProps, V = N.revealOrder, de = N.tail, Ee = N.children;
      a7(V), i7(de, V), o7(Ee, V), nl(e, t, Ee, m);
      var He = Zs.current, $e = I2(He, t0);
      if ($e)
        He = N2(He, t0), t.flags |= Hn;
      else {
        var pt = e !== null && (e.flags & Hn) !== wn;
        pt && r7(t, t.child, m), He = wh(He);
      }
      if (Vc(t, He), (t.mode & ct) === Pt)
        t.memoizedState = null;
      else
        switch (V) {
          case "forwards": {
            var At = n7(t.child), rr;
            At === null ? (rr = t.child, t.child = null) : (rr = At.sibling, At.sibling = null), Ob(
              t,
              !1,
              // isBackwards
              rr,
              At,
              de
            );
            break;
          }
          case "backwards": {
            var er = null, pr = t.child;
            for (t.child = null; pr !== null; ) {
              var yr = pr.alternate;
              if (yr !== null && wy(yr) === null) {
                t.child = pr;
                break;
              }
              var Sr = pr.sibling;
              pr.sibling = er, er = pr, pr = Sr;
            }
            Ob(
              t,
              !0,
              // isBackwards
              er,
              null,
              // last
              de
            );
            break;
          }
          case "together": {
            Ob(
              t,
              !1,
              // isBackwards
              null,
              // tail
              null,
              // last
              void 0
            );
            break;
          }
          default:
            t.memoizedState = null;
        }
      return t.child;
    }
    function l7(e, t, m) {
      R2(t, t.stateNode.containerInfo);
      var N = t.pendingProps;
      return e === null ? t.child = xh(t, null, N, m) : nl(e, t, N, m), t.child;
    }
    var CC = !1;
    function s7(e, t, m) {
      var N = t.type, V = N._context, de = t.pendingProps, Ee = t.memoizedProps, He = de.value;
      {
        "value" in de || CC || (CC = !0, M("The `value` prop is required for the `<Context.Provider>`. Did you misspell it or forget to pass it?"));
        var $e = t.type.propTypes;
        $e && Ys($e, de, "prop", "Context.Provider");
      }
      if (h4(t, V, He), Ee !== null) {
        var pt = Ee.value;
        if (mn(pt, He)) {
          if (Ee.children === de.children && !ty())
            return Ef(e, t, m);
        } else
          a9(t, V, m);
      }
      var At = de.children;
      return nl(e, t, At, m), t.child;
    }
    var AC = !1;
    function u7(e, t, m) {
      var N = t.type;
      N._context === void 0 ? N !== N.Consumer && (AC || (AC = !0, M("Rendering <Context> directly is not supported and will be removed in a future major release. Did you mean to render <Context.Consumer> instead?"))) : N = N._context;
      var V = t.pendingProps, de = V.children;
      typeof de != "function" && M("A context consumer was rendered with multiple children, or a child that isn't a function. A context consumer expects a single child that is a function. If you did pass a function, make sure there is no trailing or leading whitespace around it."), Ch(t, m);
      var Ee = Wi(N);
      Bs(t);
      var He;
      return f0.current = t, hn(!0), He = de(Ee), hn(!1), vo(), t.flags |= Gl, nl(e, t, He, m), t.child;
    }
    function v0() {
      Qs = !0;
    }
    function jy(e, t) {
      (t.mode & ct) === Pt && e !== null && (e.alternate = null, t.alternate = null, t.flags |= Aa);
    }
    function Ef(e, t, m) {
      return e !== null && (t.dependencies = e.dependencies), K4(), S0(t.lanes), Uo(m, t.childLanes) ? (r9(e, t), t.child) : null;
    }
    function f7(e, t, m) {
      {
        var N = t.return;
        if (N === null)
          throw new Error("Cannot swap the root fiber.");
        if (e.alternate = null, t.alternate = null, m.index = t.index, m.sibling = t.sibling, m.return = t.return, m.ref = t.ref, t === N.child)
          N.child = m;
        else {
          var V = N.child;
          if (V === null)
            throw new Error("Expected parent to have a child.");
          for (; V.sibling !== t; )
            if (V = V.sibling, V === null)
              throw new Error("Expected to find the previous sibling.");
          V.sibling = m;
        }
        var de = N.deletions;
        return de === null ? (N.deletions = [e], N.flags |= va) : de.push(e), m.flags |= Aa, m;
      }
    }
    function Pb(e, t) {
      var m = e.lanes;
      return !!Uo(m, t);
    }
    function c7(e, t, m) {
      switch (t.tag) {
        case l:
          pC(t), t.stateNode, bh();
          break;
        case u:
          C4(t);
          break;
        case a: {
          var N = t.type;
          Ru(N) && ny(t);
          break;
        }
        case f:
          R2(t, t.stateNode.containerInfo);
          break;
        case b: {
          var V = t.memoizedProps.value, de = t.type._context;
          h4(t, de, V);
          break;
        }
        case D:
          {
            var Ee = Uo(m, t.childLanes);
            Ee && (t.flags |= Wn);
            {
              var He = t.stateNode;
              He.effectDuration = 0, He.passiveEffectDuration = 0;
            }
          }
          break;
        case C: {
          var $e = t.memoizedState;
          if ($e !== null) {
            if ($e.dehydrated !== null)
              return Vc(t, wh(Zs.current)), t.flags |= Hn, null;
            var pt = t.child, At = pt.childLanes;
            if (Uo(m, At))
              return yC(e, t, m);
            Vc(t, wh(Zs.current));
            var rr = Ef(e, t, m);
            return rr !== null ? rr.sibling : null;
          } else
            Vc(t, wh(Zs.current));
          break;
        }
        case R: {
          var er = (e.flags & Hn) !== wn, pr = Uo(m, t.childLanes);
          if (er) {
            if (pr)
              return TC(e, t, m);
            t.flags |= Hn;
          }
          var yr = t.memoizedState;
          if (yr !== null && (yr.rendering = null, yr.tail = null, yr.lastEffect = null), Vc(t, Zs.current), pr)
            break;
          return null;
        }
        case I:
        case O:
          return t.lanes = qt, dC(e, t, m);
      }
      return Ef(e, t, m);
    }
    function wC(e, t, m) {
      if (t._debugNeedsRemount && e !== null)
        return f7(e, t, cx(t.type, t.key, t.pendingProps, t._debugOwner || null, t.mode, t.lanes));
      if (e !== null) {
        var N = e.memoizedProps, V = t.pendingProps;
        if (N !== V || ty() || // Force a re-render if the implementation changed due to hot reload:
        t.type !== e.type)
          Qs = !0;
        else {
          var de = Pb(e, m);
          if (!de && // If this is the second pass of an error or suspense boundary, there
          // may not be work scheduled on `current`, so we check for this flag.
          (t.flags & Hn) === wn)
            return Qs = !1, c7(e, t, m);
          (e.flags & os) !== wn ? Qs = !0 : Qs = !1;
        }
      } else if (Qs = !1, Eo() && F8(t)) {
        var Ee = t.index, He = z8();
        KT(t, He, Ee);
      }
      switch (t.lanes = qt, t.tag) {
        case p:
          return X9(e, t, t.type, m);
        case T: {
          var $e = t.elementType;
          return W9(e, t, $e, m);
        }
        case r: {
          var pt = t.type, At = t.pendingProps, rr = t.elementType === pt ? At : Js(pt, At);
          return Eb(e, t, pt, rr, m);
        }
        case a: {
          var er = t.type, pr = t.pendingProps, yr = t.elementType === er ? pr : Js(er, pr);
          return hC(e, t, er, yr, m);
        }
        case l:
          return V9(e, t, m);
        case u:
          return G9(e, t, m);
        case c:
          return U9(e, t);
        case C:
          return yC(e, t, m);
        case f:
          return l7(e, t, m);
        case x: {
          var Sr = t.type, tn = t.pendingProps, Ln = t.elementType === Sr ? tn : Js(Sr, tn);
          return uC(e, t, Sr, Ln, m);
        }
        case d:
          return _9(e, t, m);
        case h:
          return H9(e, t, m);
        case D:
          return B9(e, t, m);
        case b:
          return s7(e, t, m);
        case i:
          return u7(e, t, m);
        case w: {
          var Cn = t.type, ca = t.pendingProps, ia = Js(Cn, ca);
          if (t.type !== t.elementType) {
            var cr = Cn.propTypes;
            cr && Ys(
              cr,
              ia,
              // Resolved for outer only
              "prop",
              $t(Cn)
            );
          }
          return ia = Js(Cn.type, ia), fC(e, t, Cn, ia, m);
        }
        case S:
          return cC(e, t, t.type, t.pendingProps, m);
        case k: {
          var Mr = t.type, dr = t.pendingProps, Yr = t.elementType === Mr ? dr : Js(Mr, dr);
          return Y9(e, t, Mr, Yr, m);
        }
        case R:
          return TC(e, t, m);
        case g:
          break;
        case I:
          return dC(e, t, m);
      }
      throw new Error("Unknown unit of work tag (" + t.tag + "). This error is likely caused by a bug in React. Please file an issue.");
    }
    function Lh(e) {
      e.flags |= Wn;
    }
    function SC(e) {
      e.flags |= Zi, e.flags |= ic;
    }
    var MC, Fb, EC, DC;
    MC = function(e, t, m, N) {
      for (var V = t.child; V !== null; ) {
        if (V.tag === u || V.tag === c)
          NE(e, V.stateNode);
        else if (V.tag !== f) {
          if (V.child !== null) {
            V.child.return = V, V = V.child;
            continue;
          }
        }
        if (V === t)
          return;
        for (; V.sibling === null; ) {
          if (V.return === null || V.return === t)
            return;
          V = V.return;
        }
        V.sibling.return = V.return, V = V.sibling;
      }
    }, Fb = function(e, t) {
    }, EC = function(e, t, m, N, V) {
      var de = e.memoizedProps;
      if (de !== N) {
        var Ee = t.stateNode, He = L2(), $e = PE(Ee, m, de, N, V, He);
        t.updateQueue = $e, $e && Lh(t);
      }
    }, DC = function(e, t, m, N) {
      m !== N && Lh(t);
    };
    function h0(e, t) {
      if (!Eo())
        switch (e.tailMode) {
          case "hidden": {
            for (var m = e.tail, N = null; m !== null; )
              m.alternate !== null && (N = m), m = m.sibling;
            N === null ? e.tail = null : N.sibling = null;
            break;
          }
          case "collapsed": {
            for (var V = e.tail, de = null; V !== null; )
              V.alternate !== null && (de = V), V = V.sibling;
            de === null ? !t && e.tail !== null ? e.tail.sibling = null : e.tail = null : de.sibling = null;
            break;
          }
        }
    }
    function Ro(e) {
      var t = e.alternate !== null && e.alternate.child === e.child, m = qt, N = wn;
      if (t) {
        if ((e.mode & xt) !== Pt) {
          for (var $e = e.selfBaseDuration, pt = e.child; pt !== null; )
            m = $n(m, $n(pt.lanes, pt.childLanes)), N |= pt.subtreeFlags & Mi, N |= pt.flags & Mi, $e += pt.treeBaseDuration, pt = pt.sibling;
          e.treeBaseDuration = $e;
        } else
          for (var At = e.child; At !== null; )
            m = $n(m, $n(At.lanes, At.childLanes)), N |= At.subtreeFlags & Mi, N |= At.flags & Mi, At.return = e, At = At.sibling;
        e.subtreeFlags |= N;
      } else {
        if ((e.mode & xt) !== Pt) {
          for (var V = e.actualDuration, de = e.selfBaseDuration, Ee = e.child; Ee !== null; )
            m = $n(m, $n(Ee.lanes, Ee.childLanes)), N |= Ee.subtreeFlags, N |= Ee.flags, V += Ee.actualDuration, de += Ee.treeBaseDuration, Ee = Ee.sibling;
          e.actualDuration = V, e.treeBaseDuration = de;
        } else
          for (var He = e.child; He !== null; )
            m = $n(m, $n(He.lanes, He.childLanes)), N |= He.subtreeFlags, N |= He.flags, He.return = e, He = He.sibling;
        e.subtreeFlags |= N;
      }
      return e.childLanes = m, t;
    }
    function d7(e, t, m) {
      if (J8() && (t.mode & ct) !== Pt && (t.flags & Hn) === wn)
        return i4(t), bh(), t.flags |= Xa | fo | gi, !1;
      var N = sy(t);
      if (m !== null && m.dehydrated !== null)
        if (e === null) {
          if (!N)
            throw new Error("A dehydrated suspense component was completed without a hydrated node. This is probably a bug in React.");
          if (Z8(t), Ro(t), (t.mode & xt) !== Pt) {
            var V = m !== null;
            if (V) {
              var de = t.child;
              de !== null && (t.treeBaseDuration -= de.treeBaseDuration);
            }
          }
          return !1;
        } else {
          if (bh(), (t.flags & Hn) === wn && (t.memoizedState = null), t.flags |= Wn, Ro(t), (t.mode & xt) !== Pt) {
            var Ee = m !== null;
            if (Ee) {
              var He = t.child;
              He !== null && (t.treeBaseDuration -= He.treeBaseDuration);
            }
          }
          return !1;
        }
      else
        return o4(), !0;
    }
    function RC(e, t, m) {
      var N = t.pendingProps;
      switch (s2(t), t.tag) {
        case p:
        case T:
        case S:
        case r:
        case x:
        case d:
        case h:
        case D:
        case i:
        case w:
          return Ro(t), null;
        case a: {
          var V = t.type;
          return Ru(V) && ry(t), Ro(t), null;
        }
        case l: {
          var de = t.stateNode;
          if (Ah(t), a2(t), P2(), de.pendingContext && (de.context = de.pendingContext, de.pendingContext = null), e === null || e.child === null) {
            var Ee = sy(t);
            if (Ee)
              Lh(t);
            else if (e !== null) {
              var He = e.memoizedState;
              // Check if this is a client root
              (!He.isDehydrated || // Check if we reverted to client rendering (e.g. due to an error)
              (t.flags & Xa) !== wn) && (t.flags |= go, o4());
            }
          }
          return Fb(e, t), Ro(t), null;
        }
        case u: {
          k2(t);
          var $e = T4(), pt = t.type;
          if (e !== null && t.stateNode != null)
            EC(e, t, pt, N, $e), e.ref !== t.ref && SC(t);
          else {
            if (!N) {
              if (t.stateNode === null)
                throw new Error("We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.");
              return Ro(t), null;
            }
            var At = L2(), rr = sy(t);
            if (rr)
              X8(t, $e, At) && Lh(t);
            else {
              var er = IE(pt, N, $e, At, t);
              MC(er, t, !1, !1), t.stateNode = er, OE(er, pt, N, $e) && Lh(t);
            }
            t.ref !== null && SC(t);
          }
          return Ro(t), null;
        }
        case c: {
          var pr = N;
          if (e && t.stateNode != null) {
            var yr = e.memoizedProps;
            DC(e, t, yr, pr);
          } else {
            if (typeof pr != "string" && t.stateNode === null)
              throw new Error("We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.");
            var Sr = T4(), tn = L2(), Ln = sy(t);
            Ln ? j8(t) && Lh(t) : t.stateNode = FE(pr, Sr, tn, t);
          }
          return Ro(t), null;
        }
        case C: {
          Sh(t);
          var Cn = t.memoizedState;
          if (e === null || e.memoizedState !== null && e.memoizedState.dehydrated !== null) {
            var ca = d7(e, t, Cn);
            if (!ca)
              return t.flags & gi ? t : null;
          }
          if ((t.flags & Hn) !== wn)
            return t.lanes = m, (t.mode & xt) !== Pt && ob(t), t;
          var ia = Cn !== null, cr = e !== null && e.memoizedState !== null;
          if (ia !== cr && ia) {
            var Mr = t.child;
            if (Mr.flags |= rl, (t.mode & ct) !== Pt) {
              var dr = e === null && (t.memoizedProps.unstable_avoidThisFallback !== !0 || !U);
              dr || I2(Zs.current, w4) ? vD() : ex();
            }
          }
          var Yr = t.updateQueue;
          if (Yr !== null && (t.flags |= Wn), Ro(t), (t.mode & xt) !== Pt && ia) {
            var un = t.child;
            un !== null && (t.treeBaseDuration -= un.treeBaseDuration);
          }
          return null;
        }
        case f:
          return Ah(t), Fb(e, t), e === null && R8(t.stateNode.containerInfo), Ro(t), null;
        case b:
          var an = t.type._context;
          return C2(an, t), Ro(t), null;
        case k: {
          var Gn = t.type;
          return Ru(Gn) && ry(t), Ro(t), null;
        }
        case R: {
          Sh(t);
          var Xn = t.memoizedState;
          if (Xn === null)
            return Ro(t), null;
          var Na = (t.flags & Hn) !== wn, ma = Xn.rendering;
          if (ma === null)
            if (Na)
              h0(Xn, !1);
            else {
              var Ni = pD() && (e === null || (e.flags & Hn) === wn);
              if (!Ni)
                for (var ya = t.child; ya !== null; ) {
                  var Ti = wy(ya);
                  if (Ti !== null) {
                    Na = !0, t.flags |= Hn, h0(Xn, !1);
                    var Zo = Ti.updateQueue;
                    return Zo !== null && (t.updateQueue = Zo, t.flags |= Wn), t.subtreeFlags = wn, n9(t, m), Vc(t, N2(Zs.current, t0)), t.child;
                  }
                  ya = ya.sibling;
                }
              Xn.tail !== null && Ba() > JC() && (t.flags |= Hn, Na = !0, h0(Xn, !1), t.lanes = Xl);
            }
          else {
            if (!Na) {
              var Oo = wy(ma);
              if (Oo !== null) {
                t.flags |= Hn, Na = !0;
                var $l = Oo.updateQueue;
                if ($l !== null && (t.updateQueue = $l, t.flags |= Wn), h0(Xn, !0), Xn.tail === null && Xn.tailMode === "hidden" && !ma.alternate && !Eo())
                  return Ro(t), null;
              } else
                // The time it took to render last row is greater than the remaining
                // time we have to render. So rendering one more row would likely
                // exceed it.
                Ba() * 2 - Xn.renderingStartTime > JC() && m !== po && (t.flags |= Hn, Na = !0, h0(Xn, !1), t.lanes = Xl);
            }
            if (Xn.isBackwards)
              ma.sibling = t.child, t.child = ma;
            else {
              var ol = Xn.last;
              ol !== null ? ol.sibling = ma : t.child = ma, Xn.last = ma;
            }
          }
          if (Xn.tail !== null) {
            var ll = Xn.tail;
            Xn.rendering = ll, Xn.tail = ll.sibling, Xn.renderingStartTime = Ba(), ll.sibling = null;
            var $o = Zs.current;
            return Na ? $o = N2($o, t0) : $o = wh($o), Vc(t, $o), ll;
          }
          return Ro(t), null;
        }
        case g:
          break;
        case I:
        case O: {
          qb(t);
          var If = t.memoizedState, _h = If !== null;
          if (e !== null) {
            var L0 = e.memoizedState, zu = L0 !== null;
            zu !== _h && // LegacyHidden doesn't do any hiding — it only pre-renders.
            !X && (t.flags |= rl);
          }
          return !_h || (t.mode & ct) === Pt ? Ro(t) : Uo(Fu, po) && (Ro(t), t.subtreeFlags & (Aa | Wn) && (t.flags |= rl)), null;
        }
        case $:
          return null;
        case Y:
          return null;
      }
      throw new Error("Unknown unit of work tag (" + t.tag + "). This error is likely caused by a bug in React. Please file an issue.");
    }
    function v7(e, t, m) {
      switch (s2(t), t.tag) {
        case a: {
          var N = t.type;
          Ru(N) && ry(t);
          var V = t.flags;
          return V & gi ? (t.flags = V & ~gi | Hn, (t.mode & xt) !== Pt && ob(t), t) : null;
        }
        case l: {
          t.stateNode, Ah(t), a2(t), P2();
          var de = t.flags;
          return (de & gi) !== wn && (de & Hn) === wn ? (t.flags = de & ~gi | Hn, t) : null;
        }
        case u:
          return k2(t), null;
        case C: {
          Sh(t);
          var Ee = t.memoizedState;
          if (Ee !== null && Ee.dehydrated !== null) {
            if (t.alternate === null)
              throw new Error("Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue.");
            bh();
          }
          var He = t.flags;
          return He & gi ? (t.flags = He & ~gi | Hn, (t.mode & xt) !== Pt && ob(t), t) : null;
        }
        case R:
          return Sh(t), null;
        case f:
          return Ah(t), null;
        case b:
          var $e = t.type._context;
          return C2($e, t), null;
        case I:
        case O:
          return qb(t), null;
        case $:
          return null;
        default:
          return null;
      }
    }
    function LC(e, t, m) {
      switch (s2(t), t.tag) {
        case a: {
          var N = t.type.childContextTypes;
          N != null && ry(t);
          break;
        }
        case l: {
          t.stateNode, Ah(t), a2(t), P2();
          break;
        }
        case u: {
          k2(t);
          break;
        }
        case f:
          Ah(t);
          break;
        case C:
          Sh(t);
          break;
        case R:
          Sh(t);
          break;
        case b:
          var V = t.type._context;
          C2(V, t);
          break;
        case I:
        case O:
          qb(t);
          break;
      }
    }
    var kC = null;
    kC = /* @__PURE__ */ new Set();
    var Zy = !1, Lo = !1, h7 = typeof WeakSet == "function" ? WeakSet : Set, yn = null, kh = null, Ih = null;
    function p7(e) {
      Ps(null, function() {
        throw e;
      }), nc();
    }
    var m7 = function(e, t) {
      if (t.props = e.memoizedProps, t.state = e.memoizedState, e.mode & xt)
        try {
          Ou(), t.componentWillUnmount();
        } finally {
          Nu(e);
        }
      else
        t.componentWillUnmount();
    };
    function IC(e, t) {
      try {
        Wc(qi, e);
      } catch (m) {
        Ja(e, t, m);
      }
    }
    function zb(e, t, m) {
      try {
        m7(e, m);
      } catch (N) {
        Ja(e, t, N);
      }
    }
    function y7(e, t, m) {
      try {
        m.componentDidMount();
      } catch (N) {
        Ja(e, t, N);
      }
    }
    function NC(e, t) {
      try {
        PC(e);
      } catch (m) {
        Ja(e, t, m);
      }
    }
    function Nh(e, t) {
      var m = e.ref;
      if (m !== null)
        if (typeof m == "function") {
          var N;
          try {
            if (W && ae && e.mode & xt)
              try {
                Ou(), N = m(null);
              } finally {
                Nu(e);
              }
            else
              N = m(null);
          } catch (V) {
            Ja(e, t, V);
          }
          typeof N == "function" && M("Unexpected return value from a callback ref in %s. A callback ref should not return a function.", sr(e));
        } else
          m.current = null;
    }
    function $y(e, t, m) {
      try {
        m();
      } catch (N) {
        Ja(e, t, N);
      }
    }
    var OC = !1;
    function g7(e, t) {
      LE(e.containerInfo), yn = t, b7();
      var m = OC;
      return OC = !1, m;
    }
    function b7() {
      for (; yn !== null; ) {
        var e = yn, t = e.child;
        (e.subtreeFlags & mu) !== wn && t !== null ? (t.return = e, yn = t) : x7();
      }
    }
    function x7() {
      for (; yn !== null; ) {
        var e = yn;
        vn(e);
        try {
          T7(e);
        } catch (m) {
          Ja(e, e.return, m);
        }
        Qr();
        var t = e.sibling;
        if (t !== null) {
          t.return = e.return, yn = t;
          return;
        }
        yn = e.return;
      }
    }
    function T7(e) {
      var t = e.alternate, m = e.flags;
      if ((m & go) !== wn) {
        switch (vn(e), e.tag) {
          case r:
          case x:
          case S:
            break;
          case a: {
            if (t !== null) {
              var N = t.memoizedProps, V = t.memoizedState, de = e.stateNode;
              e.type === e.elementType && !Zd && (de.props !== e.memoizedProps && M("Expected %s props to match memoized props before getSnapshotBeforeUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.", sr(e) || "instance"), de.state !== e.memoizedState && M("Expected %s state to match memoized state before getSnapshotBeforeUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.", sr(e) || "instance"));
              var Ee = de.getSnapshotBeforeUpdate(e.elementType === e.type ? N : Js(e.type, N), V);
              {
                var He = kC;
                Ee === void 0 && !He.has(e.type) && (He.add(e.type), M("%s.getSnapshotBeforeUpdate(): A snapshot value (or null) must be returned. You have returned undefined.", sr(e)));
              }
              de.__reactInternalSnapshotBeforeUpdate = Ee;
            }
            break;
          }
          case l: {
            {
              var $e = e.stateNode;
              t8($e.containerInfo);
            }
            break;
          }
          case u:
          case c:
          case f:
          case k:
            break;
          default:
            throw new Error("This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.");
        }
        Qr();
      }
    }
    function Ks(e, t, m) {
      var N = t.updateQueue, V = N !== null ? N.lastEffect : null;
      if (V !== null) {
        var de = V.next, Ee = de;
        do {
          if ((Ee.tag & e) === e) {
            var He = Ee.destroy;
            Ee.destroy = void 0, He !== void 0 && ((e & Do) !== Sl ? Pv(t) : (e & qi) !== Sl && y(t), (e & Lu) !== Sl && E0(!0), $y(t, m, He), (e & Lu) !== Sl && E0(!1), (e & Do) !== Sl ? xu() : (e & qi) !== Sl && _());
          }
          Ee = Ee.next;
        } while (Ee !== de);
      }
    }
    function Wc(e, t) {
      var m = t.updateQueue, N = m !== null ? m.lastEffect : null;
      if (N !== null) {
        var V = N.next, de = V;
        do {
          if ((de.tag & e) === e) {
            (e & Do) !== Sl ? us(t) : (e & qi) !== Sl && Fv(t);
            var Ee = de.create;
            (e & Lu) !== Sl && E0(!0), de.destroy = Ee(), (e & Lu) !== Sl && E0(!1), (e & Do) !== Sl ? dc() : (e & qi) !== Sl && ff();
            {
              var He = de.destroy;
              if (He !== void 0 && typeof He != "function") {
                var $e = void 0;
                (de.tag & qi) !== wn ? $e = "useLayoutEffect" : (de.tag & Lu) !== wn ? $e = "useInsertionEffect" : $e = "useEffect";
                var pt = void 0;
                He === null ? pt = " You returned null. If your effect does not require clean up, return undefined (or nothing)." : typeof He.then == "function" ? pt = `

It looks like you wrote ` + $e + `(async () => ...) or returned a Promise. Instead, write the async function inside your effect and call it immediately:

` + $e + `(() => {
  async function fetchData() {
    // You can await here
    const response = await MyAPI.getData(someId);
    // ...
  }
  fetchData();
}, [someId]); // Or [] if effect doesn't need props or state

Learn more about data fetching with Hooks: https://reactjs.org/link/hooks-data-fetching` : pt = " You returned: " + He, M("%s must not return anything besides a function, which is used for clean-up.%s", $e, pt);
              }
            }
          }
          de = de.next;
        } while (de !== V);
      }
    }
    function C7(e, t) {
      if ((t.flags & Wn) !== wn)
        switch (t.tag) {
          case D: {
            var m = t.stateNode.passiveEffectDuration, N = t.memoizedProps, V = N.id, de = N.onPostCommit, Ee = J4(), He = t.alternate === null ? "mount" : "update";
            $4() && (He = "nested-update"), typeof de == "function" && de(V, He, m, Ee);
            var $e = t.return;
            e:
              for (; $e !== null; ) {
                switch ($e.tag) {
                  case l:
                    var pt = $e.stateNode;
                    pt.passiveEffectDuration += m;
                    break e;
                  case D:
                    var At = $e.stateNode;
                    At.passiveEffectDuration += m;
                    break e;
                }
                $e = $e.return;
              }
            break;
          }
        }
    }
    function A7(e, t, m, N) {
      if ((m.flags & bi) !== wn)
        switch (m.tag) {
          case r:
          case x:
          case S: {
            if (!Lo)
              if (m.mode & xt)
                try {
                  Ou(), Wc(qi | Ki, m);
                } finally {
                  Nu(m);
                }
              else
                Wc(qi | Ki, m);
            break;
          }
          case a: {
            var V = m.stateNode;
            if (m.flags & Wn && !Lo)
              if (t === null)
                if (m.type === m.elementType && !Zd && (V.props !== m.memoizedProps && M("Expected %s props to match memoized props before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.", sr(m) || "instance"), V.state !== m.memoizedState && M("Expected %s state to match memoized state before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.", sr(m) || "instance")), m.mode & xt)
                  try {
                    Ou(), V.componentDidMount();
                  } finally {
                    Nu(m);
                  }
                else
                  V.componentDidMount();
              else {
                var de = m.elementType === m.type ? t.memoizedProps : Js(m.type, t.memoizedProps), Ee = t.memoizedState;
                if (m.type === m.elementType && !Zd && (V.props !== m.memoizedProps && M("Expected %s props to match memoized props before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.", sr(m) || "instance"), V.state !== m.memoizedState && M("Expected %s state to match memoized state before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.", sr(m) || "instance")), m.mode & xt)
                  try {
                    Ou(), V.componentDidUpdate(de, Ee, V.__reactInternalSnapshotBeforeUpdate);
                  } finally {
                    Nu(m);
                  }
                else
                  V.componentDidUpdate(de, Ee, V.__reactInternalSnapshotBeforeUpdate);
              }
            var He = m.updateQueue;
            He !== null && (m.type === m.elementType && !Zd && (V.props !== m.memoizedProps && M("Expected %s props to match memoized props before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.", sr(m) || "instance"), V.state !== m.memoizedState && M("Expected %s state to match memoized state before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.", sr(m) || "instance")), x4(m, He, V));
            break;
          }
          case l: {
            var $e = m.updateQueue;
            if ($e !== null) {
              var pt = null;
              if (m.child !== null)
                switch (m.child.tag) {
                  case u:
                    pt = m.child.stateNode;
                    break;
                  case a:
                    pt = m.child.stateNode;
                    break;
                }
              x4(m, $e, pt);
            }
            break;
          }
          case u: {
            var At = m.stateNode;
            if (t === null && m.flags & Wn) {
              var rr = m.type, er = m.memoizedProps;
              VE(At, rr, er);
            }
            break;
          }
          case c:
            break;
          case f:
            break;
          case D: {
            {
              var pr = m.memoizedProps, yr = pr.onCommit, Sr = pr.onRender, tn = m.stateNode.effectDuration, Ln = J4(), Cn = t === null ? "mount" : "update";
              $4() && (Cn = "nested-update"), typeof Sr == "function" && Sr(m.memoizedProps.id, Cn, m.actualDuration, m.treeBaseDuration, m.actualStartTime, Ln);
              {
                typeof yr == "function" && yr(m.memoizedProps.id, Cn, tn, Ln), xD(m);
                var ca = m.return;
                e:
                  for (; ca !== null; ) {
                    switch (ca.tag) {
                      case l:
                        var ia = ca.stateNode;
                        ia.effectDuration += tn;
                        break e;
                      case D:
                        var cr = ca.stateNode;
                        cr.effectDuration += tn;
                        break e;
                    }
                    ca = ca.return;
                  }
              }
            }
            break;
          }
          case C: {
            k7(e, m);
            break;
          }
          case R:
          case k:
          case g:
          case I:
          case O:
          case Y:
            break;
          default:
            throw new Error("This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.");
        }
      Lo || m.flags & Zi && PC(m);
    }
    function w7(e) {
      switch (e.tag) {
        case r:
        case x:
        case S: {
          if (e.mode & xt)
            try {
              Ou(), IC(e, e.return);
            } finally {
              Nu(e);
            }
          else
            IC(e, e.return);
          break;
        }
        case a: {
          var t = e.stateNode;
          typeof t.componentDidMount == "function" && y7(e, e.return, t), NC(e, e.return);
          break;
        }
        case u: {
          NC(e, e.return);
          break;
        }
      }
    }
    function S7(e, t) {
      for (var m = null, N = e; ; ) {
        if (N.tag === u) {
          if (m === null) {
            m = N;
            try {
              var V = N.stateNode;
              t ? QE(V) : qE(N.stateNode, N.memoizedProps);
            } catch (Ee) {
              Ja(e, e.return, Ee);
            }
          }
        } else if (N.tag === c) {
          if (m === null)
            try {
              var de = N.stateNode;
              t ? KE(de) : e8(de, N.memoizedProps);
            } catch (Ee) {
              Ja(e, e.return, Ee);
            }
        } else if (!((N.tag === I || N.tag === O) && N.memoizedState !== null && N !== e)) {
          if (N.child !== null) {
            N.child.return = N, N = N.child;
            continue;
          }
        }
        if (N === e)
          return;
        for (; N.sibling === null; ) {
          if (N.return === null || N.return === e)
            return;
          m === N && (m = null), N = N.return;
        }
        m === N && (m = null), N.sibling.return = N.return, N = N.sibling;
      }
    }
    function PC(e) {
      var t = e.ref;
      if (t !== null) {
        var m = e.stateNode, N;
        switch (e.tag) {
          case u:
            N = m;
            break;
          default:
            N = m;
        }
        if (typeof t == "function") {
          var V;
          if (e.mode & xt)
            try {
              Ou(), V = t(N);
            } finally {
              Nu(e);
            }
          else
            V = t(N);
          typeof V == "function" && M("Unexpected return value from a callback ref in %s. A callback ref should not return a function.", sr(e));
        } else
          t.hasOwnProperty("current") || M("Unexpected ref object provided for %s. Use either a ref-setter function or React.createRef().", sr(e)), t.current = N;
      }
    }
    function M7(e) {
      var t = e.alternate;
      t !== null && (t.return = null), e.return = null;
    }
    function FC(e) {
      var t = e.alternate;
      t !== null && (e.alternate = null, FC(t));
      {
        if (e.child = null, e.deletions = null, e.sibling = null, e.tag === u) {
          var m = e.stateNode;
          m !== null && I8(m);
        }
        e.stateNode = null, e._debugOwner = null, e.return = null, e.dependencies = null, e.memoizedProps = null, e.memoizedState = null, e.pendingProps = null, e.stateNode = null, e.updateQueue = null;
      }
    }
    function E7(e) {
      for (var t = e.return; t !== null; ) {
        if (zC(t))
          return t;
        t = t.return;
      }
      throw new Error("Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.");
    }
    function zC(e) {
      return e.tag === u || e.tag === l || e.tag === f;
    }
    function _C(e) {
      var t = e;
      e:
        for (; ; ) {
          for (; t.sibling === null; ) {
            if (t.return === null || zC(t.return))
              return null;
            t = t.return;
          }
          for (t.sibling.return = t.return, t = t.sibling; t.tag !== u && t.tag !== c && t.tag !== A; ) {
            if (t.flags & Aa || t.child === null || t.tag === f)
              continue e;
            t.child.return = t, t = t.child;
          }
          if (!(t.flags & Aa))
            return t.stateNode;
        }
    }
    function D7(e) {
      var t = E7(e);
      switch (t.tag) {
        case u: {
          var m = t.stateNode;
          t.flags & ha && (BT(m), t.flags &= ~ha);
          var N = _C(e);
          Hb(e, N, m);
          break;
        }
        case l:
        case f: {
          var V = t.stateNode.containerInfo, de = _C(e);
          _b(e, de, V);
          break;
        }
        default:
          throw new Error("Invalid host parent fiber. This error is likely caused by a bug in React. Please file an issue.");
      }
    }
    function _b(e, t, m) {
      var N = e.tag, V = N === u || N === c;
      if (V) {
        var de = e.stateNode;
        t ? jE(m, de, t) : YE(m, de);
      } else if (N !== f) {
        var Ee = e.child;
        if (Ee !== null) {
          _b(Ee, t, m);
          for (var He = Ee.sibling; He !== null; )
            _b(He, t, m), He = He.sibling;
        }
      }
    }
    function Hb(e, t, m) {
      var N = e.tag, V = N === u || N === c;
      if (V) {
        var de = e.stateNode;
        t ? XE(m, de, t) : WE(m, de);
      } else if (N !== f) {
        var Ee = e.child;
        if (Ee !== null) {
          Hb(Ee, t, m);
          for (var He = Ee.sibling; He !== null; )
            Hb(He, t, m), He = He.sibling;
        }
      }
    }
    var ko = null, qs = !1;
    function R7(e, t, m) {
      {
        var N = t;
        e:
          for (; N !== null; ) {
            switch (N.tag) {
              case u: {
                ko = N.stateNode, qs = !1;
                break e;
              }
              case l: {
                ko = N.stateNode.containerInfo, qs = !0;
                break e;
              }
              case f: {
                ko = N.stateNode.containerInfo, qs = !0;
                break e;
              }
            }
            N = N.return;
          }
        if (ko === null)
          throw new Error("Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.");
        HC(e, t, m), ko = null, qs = !1;
      }
      M7(m);
    }
    function Yc(e, t, m) {
      for (var N = m.child; N !== null; )
        HC(e, t, N), N = N.sibling;
    }
    function HC(e, t, m) {
      switch (Ao(m), m.tag) {
        case u:
          Lo || Nh(m, t);
        case c: {
          {
            var N = ko, V = qs;
            ko = null, Yc(e, t, m), ko = N, qs = V, ko !== null && (qs ? $E(ko, m.stateNode) : ZE(ko, m.stateNode));
          }
          return;
        }
        case A: {
          ko !== null && (qs ? JE(ko, m.stateNode) : J1(ko, m.stateNode));
          return;
        }
        case f: {
          {
            var de = ko, Ee = qs;
            ko = m.stateNode.containerInfo, qs = !0, Yc(e, t, m), ko = de, qs = Ee;
          }
          return;
        }
        case r:
        case x:
        case w:
        case S: {
          if (!Lo) {
            var He = m.updateQueue;
            if (He !== null) {
              var $e = He.lastEffect;
              if ($e !== null) {
                var pt = $e.next, At = pt;
                do {
                  var rr = At, er = rr.destroy, pr = rr.tag;
                  er !== void 0 && ((pr & Lu) !== Sl ? $y(m, t, er) : (pr & qi) !== Sl && (y(m), m.mode & xt ? (Ou(), $y(m, t, er), Nu(m)) : $y(m, t, er), _())), At = At.next;
                } while (At !== pt);
              }
            }
          }
          Yc(e, t, m);
          return;
        }
        case a: {
          if (!Lo) {
            Nh(m, t);
            var yr = m.stateNode;
            typeof yr.componentWillUnmount == "function" && zb(m, t, yr);
          }
          Yc(e, t, m);
          return;
        }
        case g: {
          Yc(e, t, m);
          return;
        }
        case I: {
          if (
            // TODO: Remove this dead flag
            m.mode & ct
          ) {
            var Sr = Lo;
            Lo = Sr || m.memoizedState !== null, Yc(e, t, m), Lo = Sr;
          } else
            Yc(e, t, m);
          break;
        }
        default: {
          Yc(e, t, m);
          return;
        }
      }
    }
    function L7(e) {
      e.memoizedState;
    }
    function k7(e, t) {
      var m = t.memoizedState;
      if (m === null) {
        var N = t.alternate;
        if (N !== null) {
          var V = N.memoizedState;
          if (V !== null) {
            var de = V.dehydrated;
            de !== null && p8(de);
          }
        }
      }
    }
    function BC(e) {
      var t = e.updateQueue;
      if (t !== null) {
        e.updateQueue = null;
        var m = e.stateNode;
        m === null && (m = e.stateNode = new h7()), t.forEach(function(N) {
          var V = ED.bind(null, e, N);
          if (!m.has(N)) {
            if (m.add(N), Bi)
              if (kh !== null && Ih !== null)
                M0(Ih, kh);
              else
                throw Error("Expected finished root and lanes to be set. This is a bug in React.");
            N.then(V, V);
          }
        });
      }
    }
    function I7(e, t, m) {
      kh = m, Ih = e, vn(t), VC(t, e), vn(t), kh = null, Ih = null;
    }
    function eu(e, t, m) {
      var N = t.deletions;
      if (N !== null)
        for (var V = 0; V < N.length; V++) {
          var de = N[V];
          try {
            R7(e, t, de);
          } catch ($e) {
            Ja(de, t, $e);
          }
        }
      var Ee = An();
      if (t.subtreeFlags & _i)
        for (var He = t.child; He !== null; )
          vn(He), VC(He, e), He = He.sibling;
      vn(Ee);
    }
    function VC(e, t, m) {
      var N = e.alternate, V = e.flags;
      switch (e.tag) {
        case r:
        case x:
        case w:
        case S: {
          if (eu(t, e), Pu(e), V & Wn) {
            try {
              Ks(Lu | Ki, e, e.return), Wc(Lu | Ki, e);
            } catch (Gn) {
              Ja(e, e.return, Gn);
            }
            if (e.mode & xt) {
              try {
                Ou(), Ks(qi | Ki, e, e.return);
              } catch (Gn) {
                Ja(e, e.return, Gn);
              }
              Nu(e);
            } else
              try {
                Ks(qi | Ki, e, e.return);
              } catch (Gn) {
                Ja(e, e.return, Gn);
              }
          }
          return;
        }
        case a: {
          eu(t, e), Pu(e), V & Zi && N !== null && Nh(N, N.return);
          return;
        }
        case u: {
          eu(t, e), Pu(e), V & Zi && N !== null && Nh(N, N.return);
          {
            if (e.flags & ha) {
              var de = e.stateNode;
              try {
                BT(de);
              } catch (Gn) {
                Ja(e, e.return, Gn);
              }
            }
            if (V & Wn) {
              var Ee = e.stateNode;
              if (Ee != null) {
                var He = e.memoizedProps, $e = N !== null ? N.memoizedProps : He, pt = e.type, At = e.updateQueue;
                if (e.updateQueue = null, At !== null)
                  try {
                    GE(Ee, At, pt, $e, He, e);
                  } catch (Gn) {
                    Ja(e, e.return, Gn);
                  }
              }
            }
          }
          return;
        }
        case c: {
          if (eu(t, e), Pu(e), V & Wn) {
            if (e.stateNode === null)
              throw new Error("This should have a text node initialized. This error is likely caused by a bug in React. Please file an issue.");
            var rr = e.stateNode, er = e.memoizedProps, pr = N !== null ? N.memoizedProps : er;
            try {
              UE(rr, pr, er);
            } catch (Gn) {
              Ja(e, e.return, Gn);
            }
          }
          return;
        }
        case l: {
          if (eu(t, e), Pu(e), V & Wn && N !== null) {
            var yr = N.memoizedState;
            if (yr.isDehydrated)
              try {
                h8(t.containerInfo);
              } catch (Gn) {
                Ja(e, e.return, Gn);
              }
          }
          return;
        }
        case f: {
          eu(t, e), Pu(e);
          return;
        }
        case C: {
          eu(t, e), Pu(e);
          var Sr = e.child;
          if (Sr.flags & rl) {
            var tn = Sr.stateNode, Ln = Sr.memoizedState, Cn = Ln !== null;
            if (tn.isHidden = Cn, Cn) {
              var ca = Sr.alternate !== null && Sr.alternate.memoizedState !== null;
              ca || dD();
            }
          }
          if (V & Wn) {
            try {
              L7(e);
            } catch (Gn) {
              Ja(e, e.return, Gn);
            }
            BC(e);
          }
          return;
        }
        case I: {
          var ia = N !== null && N.memoizedState !== null;
          if (
            // TODO: Remove this dead flag
            e.mode & ct
          ) {
            var cr = Lo;
            Lo = cr || ia, eu(t, e), Lo = cr;
          } else
            eu(t, e);
          if (Pu(e), V & rl) {
            var Mr = e.stateNode, dr = e.memoizedState, Yr = dr !== null, un = e;
            if (Mr.isHidden = Yr, Yr && !ia && (un.mode & ct) !== Pt) {
              yn = un;
              for (var an = un.child; an !== null; )
                yn = an, O7(an), an = an.sibling;
            }
            S7(un, Yr);
          }
          return;
        }
        case R: {
          eu(t, e), Pu(e), V & Wn && BC(e);
          return;
        }
        case g:
          return;
        default: {
          eu(t, e), Pu(e);
          return;
        }
      }
    }
    function Pu(e) {
      var t = e.flags;
      if (t & Aa) {
        try {
          D7(e);
        } catch (m) {
          Ja(e, e.return, m);
        }
        e.flags &= ~Aa;
      }
      t & Ho && (e.flags &= ~Ho);
    }
    function N7(e, t, m) {
      kh = m, Ih = t, yn = e, GC(e, t, m), kh = null, Ih = null;
    }
    function GC(e, t, m) {
      for (var N = (e.mode & ct) !== Pt; yn !== null; ) {
        var V = yn, de = V.child;
        if (V.tag === I && N) {
          var Ee = V.memoizedState !== null, He = Ee || Zy;
          if (He) {
            Bb(e, t, m);
            continue;
          } else {
            var $e = V.alternate, pt = $e !== null && $e.memoizedState !== null, At = pt || Lo, rr = Zy, er = Lo;
            Zy = He, Lo = At, Lo && !er && (yn = V, P7(V));
            for (var pr = de; pr !== null; )
              yn = pr, GC(
                pr,
                // New root; bubble back up to here and stop.
                t,
                m
              ), pr = pr.sibling;
            yn = V, Zy = rr, Lo = er, Bb(e, t, m);
            continue;
          }
        }
        (V.subtreeFlags & bi) !== wn && de !== null ? (de.return = V, yn = de) : Bb(e, t, m);
      }
    }
    function Bb(e, t, m) {
      for (; yn !== null; ) {
        var N = yn;
        if ((N.flags & bi) !== wn) {
          var V = N.alternate;
          vn(N);
          try {
            A7(t, V, N, m);
          } catch (Ee) {
            Ja(N, N.return, Ee);
          }
          Qr();
        }
        if (N === e) {
          yn = null;
          return;
        }
        var de = N.sibling;
        if (de !== null) {
          de.return = N.return, yn = de;
          return;
        }
        yn = N.return;
      }
    }
    function O7(e) {
      for (; yn !== null; ) {
        var t = yn, m = t.child;
        switch (t.tag) {
          case r:
          case x:
          case w:
          case S: {
            if (t.mode & xt)
              try {
                Ou(), Ks(qi, t, t.return);
              } finally {
                Nu(t);
              }
            else
              Ks(qi, t, t.return);
            break;
          }
          case a: {
            Nh(t, t.return);
            var N = t.stateNode;
            typeof N.componentWillUnmount == "function" && zb(t, t.return, N);
            break;
          }
          case u: {
            Nh(t, t.return);
            break;
          }
          case I: {
            var V = t.memoizedState !== null;
            if (V) {
              UC(e);
              continue;
            }
            break;
          }
        }
        m !== null ? (m.return = t, yn = m) : UC(e);
      }
    }
    function UC(e) {
      for (; yn !== null; ) {
        var t = yn;
        if (t === e) {
          yn = null;
          return;
        }
        var m = t.sibling;
        if (m !== null) {
          m.return = t.return, yn = m;
          return;
        }
        yn = t.return;
      }
    }
    function P7(e) {
      for (; yn !== null; ) {
        var t = yn, m = t.child;
        if (t.tag === I) {
          var N = t.memoizedState !== null;
          if (N) {
            WC(e);
            continue;
          }
        }
        m !== null ? (m.return = t, yn = m) : WC(e);
      }
    }
    function WC(e) {
      for (; yn !== null; ) {
        var t = yn;
        vn(t);
        try {
          w7(t);
        } catch (N) {
          Ja(t, t.return, N);
        }
        if (Qr(), t === e) {
          yn = null;
          return;
        }
        var m = t.sibling;
        if (m !== null) {
          m.return = t.return, yn = m;
          return;
        }
        yn = t.return;
      }
    }
    function F7(e, t, m, N) {
      yn = t, z7(t, e, m, N);
    }
    function z7(e, t, m, N) {
      for (; yn !== null; ) {
        var V = yn, de = V.child;
        (V.subtreeFlags & Bo) !== wn && de !== null ? (de.return = V, yn = de) : _7(e, t, m, N);
      }
    }
    function _7(e, t, m, N) {
      for (; yn !== null; ) {
        var V = yn;
        if ((V.flags & za) !== wn) {
          vn(V);
          try {
            H7(t, V, m, N);
          } catch (Ee) {
            Ja(V, V.return, Ee);
          }
          Qr();
        }
        if (V === e) {
          yn = null;
          return;
        }
        var de = V.sibling;
        if (de !== null) {
          de.return = V.return, yn = de;
          return;
        }
        yn = V.return;
      }
    }
    function H7(e, t, m, N) {
      switch (t.tag) {
        case r:
        case x:
        case S: {
          if (t.mode & xt) {
            ib();
            try {
              Wc(Do | Ki, t);
            } finally {
              ab(t);
            }
          } else
            Wc(Do | Ki, t);
          break;
        }
      }
    }
    function B7(e) {
      yn = e, V7();
    }
    function V7() {
      for (; yn !== null; ) {
        var e = yn, t = e.child;
        if ((yn.flags & va) !== wn) {
          var m = e.deletions;
          if (m !== null) {
            for (var N = 0; N < m.length; N++) {
              var V = m[N];
              yn = V, W7(V, e);
            }
            {
              var de = e.alternate;
              if (de !== null) {
                var Ee = de.child;
                if (Ee !== null) {
                  de.child = null;
                  do {
                    var He = Ee.sibling;
                    Ee.sibling = null, Ee = He;
                  } while (Ee !== null);
                }
              }
            }
            yn = e;
          }
        }
        (e.subtreeFlags & Bo) !== wn && t !== null ? (t.return = e, yn = t) : G7();
      }
    }
    function G7() {
      for (; yn !== null; ) {
        var e = yn;
        (e.flags & za) !== wn && (vn(e), U7(e), Qr());
        var t = e.sibling;
        if (t !== null) {
          t.return = e.return, yn = t;
          return;
        }
        yn = e.return;
      }
    }
    function U7(e) {
      switch (e.tag) {
        case r:
        case x:
        case S: {
          e.mode & xt ? (ib(), Ks(Do | Ki, e, e.return), ab(e)) : Ks(Do | Ki, e, e.return);
          break;
        }
      }
    }
    function W7(e, t) {
      for (; yn !== null; ) {
        var m = yn;
        vn(m), X7(m, t), Qr();
        var N = m.child;
        N !== null ? (N.return = m, yn = N) : Y7(e);
      }
    }
    function Y7(e) {
      for (; yn !== null; ) {
        var t = yn, m = t.sibling, N = t.return;
        if (FC(t), t === e) {
          yn = null;
          return;
        }
        if (m !== null) {
          m.return = N, yn = m;
          return;
        }
        yn = N;
      }
    }
    function X7(e, t) {
      switch (e.tag) {
        case r:
        case x:
        case S: {
          e.mode & xt ? (ib(), Ks(Do, e, t), ab(e)) : Ks(Do, e, t);
          break;
        }
      }
    }
    function j7(e) {
      switch (e.tag) {
        case r:
        case x:
        case S: {
          try {
            Wc(qi | Ki, e);
          } catch (m) {
            Ja(e, e.return, m);
          }
          break;
        }
        case a: {
          var t = e.stateNode;
          try {
            t.componentDidMount();
          } catch (m) {
            Ja(e, e.return, m);
          }
          break;
        }
      }
    }
    function Z7(e) {
      switch (e.tag) {
        case r:
        case x:
        case S: {
          try {
            Wc(Do | Ki, e);
          } catch (t) {
            Ja(e, e.return, t);
          }
          break;
        }
      }
    }
    function $7(e) {
      switch (e.tag) {
        case r:
        case x:
        case S: {
          try {
            Ks(qi | Ki, e, e.return);
          } catch (m) {
            Ja(e, e.return, m);
          }
          break;
        }
        case a: {
          var t = e.stateNode;
          typeof t.componentWillUnmount == "function" && zb(e, e.return, t);
          break;
        }
      }
    }
    function J7(e) {
      switch (e.tag) {
        case r:
        case x:
        case S:
          try {
            Ks(Do | Ki, e, e.return);
          } catch (t) {
            Ja(e, e.return, t);
          }
      }
    }
    if (typeof Symbol == "function" && Symbol.for) {
      var p0 = Symbol.for;
      p0("selector.component"), p0("selector.has_pseudo_class"), p0("selector.role"), p0("selector.test_id"), p0("selector.text");
    }
    var Q7 = [];
    function K7() {
      Q7.forEach(function(e) {
        return e();
      });
    }
    var q7 = E.ReactCurrentActQueue;
    function eD(e) {
      {
        var t = (
          // $FlowExpectedError – Flow doesn't know about IS_REACT_ACT_ENVIRONMENT global
          typeof IS_REACT_ACT_ENVIRONMENT < "u" ? IS_REACT_ACT_ENVIRONMENT : void 0
        ), m = typeof jest < "u";
        return m && t !== !1;
      }
    }
    function YC() {
      {
        var e = (
          // $FlowExpectedError – Flow doesn't know about IS_REACT_ACT_ENVIRONMENT global
          typeof IS_REACT_ACT_ENVIRONMENT < "u" ? IS_REACT_ACT_ENVIRONMENT : void 0
        );
        return !e && q7.current !== null && M("The current testing environment is not configured to support act(...)"), e;
      }
    }
    var tD = Math.ceil, Vb = E.ReactCurrentDispatcher, Gb = E.ReactCurrentOwner, Io = E.ReactCurrentBatchConfig, tu = E.ReactCurrentActQueue, ro = (
      /*             */
      0
    ), XC = (
      /*               */
      1
    ), No = (
      /*                */
      2
    ), Ts = (
      /*                */
      4
    ), Df = 0, m0 = 1, $d = 2, Jy = 3, y0 = 4, jC = 5, Ub = 6, fa = ro, al = null, hi = null, no = qt, Fu = qt, Wb = Pc(qt), ao = Df, g0 = null, Qy = qt, b0 = qt, Ky = qt, x0 = null, Ml = null, Yb = 0, ZC = 500, $C = 1 / 0, rD = 500, Rf = null;
    function T0() {
      $C = Ba() + rD;
    }
    function JC() {
      return $C;
    }
    var qy = !1, Xb = null, Oh = null, Jd = !1, Xc = null, C0 = qt, jb = [], Zb = null, nD = 50, A0 = 0, $b = null, Jb = !1, eg = !1, aD = 50, Ph = 0, tg = null, w0 = Ua, rg = qt, QC = !1;
    function ng() {
      return al;
    }
    function il() {
      return (fa & (No | Ts)) !== ro ? Ba() : (w0 !== Ua || (w0 = Ba()), w0);
    }
    function jc(e) {
      var t = e.mode;
      if ((t & ct) === Pt)
        return xr;
      if ((fa & No) !== ro && no !== qt)
        return mc(no);
      var m = q8() !== K8;
      if (m) {
        if (Io.transition !== null) {
          var N = Io.transition;
          N._updatedFibers || (N._updatedFibers = /* @__PURE__ */ new Set()), N._updatedFibers.add(e);
        }
        return rg === Br && (rg = pm()), rg;
      }
      var V = gl();
      if (V !== Br)
        return V;
      var de = zE();
      return de;
    }
    function iD(e) {
      var t = e.mode;
      return (t & ct) === Pt ? xr : Go();
    }
    function io(e, t, m, N) {
      RD(), QC && M("useInsertionEffect must not schedule updates."), Jb && (eg = !0), hf(e, m, N), (fa & No) !== qt && e === al ? ID(t) : (Bi && Gv(e, t, m), ND(t), e === al && ((fa & No) === ro && (b0 = $n(b0, m)), ao === y0 && Zc(e, no)), El(e, N), m === xr && fa === ro && (t.mode & ct) === Pt && // Treat `act` as if it's inside `batchedUpdates`, even in legacy mode.
      !tu.isBatchingLegacy && (T0(), QT()));
    }
    function oD(e, t, m) {
      var N = e.current;
      N.lanes = t, hf(e, t, m), El(e, m);
    }
    function lD(e) {
      return (
        // TODO: Remove outdated deferRenderPhaseUpdateToNextBatch experiment. We
        // decided not to enable it.
        (fa & No) !== ro
      );
    }
    function El(e, t) {
      var m = e.callbackNode;
      fm(e, t);
      var N = df(e, e === al ? no : qt);
      if (N === qt) {
        m !== null && vA(m), e.callbackNode = null, e.callbackPriority = Br;
        return;
      }
      var V = fi(N), de = e.callbackPriority;
      if (de === V && // Special case related to `act`. If the currently scheduled task is a
      // Scheduler task, rather than an `act` task, cancel it and re-scheduled
      // on the `act` queue.
      !(tu.current !== null && m !== nx)) {
        m == null && de !== xr && M("Expected scheduled callback to exist. This error is likely caused by a bug in React. Please file an issue.");
        return;
      }
      m != null && vA(m);
      var Ee;
      if (V === xr)
        e.tag === Fc ? (tu.isBatchingLegacy !== null && (tu.didScheduleLegacyUpdate = !0), P8(eA.bind(null, e))) : JT(eA.bind(null, e)), tu.current !== null ? tu.current.push(zc) : HE(function() {
          (fa & (No | Ts)) === ro && zc();
        }), Ee = null;
      else {
        var He;
        switch (Qi(N)) {
          case ci:
            He = uf;
            break;
          case Vs:
            He = ss;
            break;
          case ds:
            He = vl;
            break;
          case yc:
            He = uc;
            break;
          default:
            He = vl;
            break;
        }
        Ee = ax(He, KC.bind(null, e));
      }
      e.callbackPriority = V, e.callbackNode = Ee;
    }
    function KC(e, t) {
      if (S9(), w0 = Ua, rg = qt, (fa & (No | Ts)) !== ro)
        throw new Error("Should not already be working.");
      var m = e.callbackNode, N = kf();
      if (N && e.callbackNode !== m)
        return null;
      var V = df(e, e === al ? no : qt);
      if (V === qt)
        return null;
      var de = !Cd(e, V) && !hm(e, V) && !t, Ee = de ? yD(e, V) : ig(e, V);
      if (Ee !== Df) {
        if (Ee === $d) {
          var He = Cu(e);
          He !== qt && (V = He, Ee = Qb(e, He));
        }
        if (Ee === m0) {
          var $e = g0;
          throw Qd(e, qt), Zc(e, V), El(e, Ba()), $e;
        }
        if (Ee === Ub)
          Zc(e, V);
        else {
          var pt = !Cd(e, V), At = e.current.alternate;
          if (pt && !uD(At)) {
            if (Ee = ig(e, V), Ee === $d) {
              var rr = Cu(e);
              rr !== qt && (V = rr, Ee = Qb(e, rr));
            }
            if (Ee === m0) {
              var er = g0;
              throw Qd(e, qt), Zc(e, V), El(e, Ba()), er;
            }
          }
          e.finishedWork = At, e.finishedLanes = V, sD(e, Ee, V);
        }
      }
      return El(e, Ba()), e.callbackNode === m ? KC.bind(null, e) : null;
    }
    function Qb(e, t) {
      var m = x0;
      if (Uv(e)) {
        var N = Qd(e, t);
        N.flags |= Xa, D8(e.containerInfo);
      }
      var V = ig(e, t);
      if (V !== $d) {
        var de = Ml;
        Ml = m, de !== null && qC(de);
      }
      return V;
    }
    function qC(e) {
      Ml === null ? Ml = e : Ml.push.apply(Ml, e);
    }
    function sD(e, t, m) {
      switch (t) {
        case Df:
        case m0:
          throw new Error("Root did not complete. This is a bug in React.");
        case $d: {
          Kd(e, Ml, Rf);
          break;
        }
        case Jy: {
          if (Zc(e, m), cm(m) && // do not delay if we're inside an act() scope
          !hA()) {
            var N = Yb + ZC - Ba();
            if (N > 10) {
              var V = df(e, qt);
              if (V !== qt)
                break;
              var de = e.suspendedLanes;
              if (!vf(de, m)) {
                il(), Bv(e, de);
                break;
              }
              e.timeoutHandle = Z1(Kd.bind(null, e, Ml, Rf), N);
              break;
            }
          }
          Kd(e, Ml, Rf);
          break;
        }
        case y0: {
          if (Zc(e, m), vm(m))
            break;
          if (!hA()) {
            var Ee = sm(e, m), He = Ee, $e = Ba() - He, pt = DD($e) - $e;
            if (pt > 10) {
              e.timeoutHandle = Z1(Kd.bind(null, e, Ml, Rf), pt);
              break;
            }
          }
          Kd(e, Ml, Rf);
          break;
        }
        case jC: {
          Kd(e, Ml, Rf);
          break;
        }
        default:
          throw new Error("Unknown root exit status.");
      }
    }
    function uD(e) {
      for (var t = e; ; ) {
        if (t.flags & of) {
          var m = t.updateQueue;
          if (m !== null) {
            var N = m.stores;
            if (N !== null)
              for (var V = 0; V < N.length; V++) {
                var de = N[V], Ee = de.getSnapshot, He = de.value;
                try {
                  if (!mn(Ee(), He))
                    return !1;
                } catch {
                  return !1;
                }
              }
          }
        }
        var $e = t.child;
        if (t.subtreeFlags & of && $e !== null) {
          $e.return = t, t = $e;
          continue;
        }
        if (t === e)
          return !0;
        for (; t.sibling === null; ) {
          if (t.return === null || t.return === e)
            return !0;
          t = t.return;
        }
        t.sibling.return = t.return, t = t.sibling;
      }
      return !0;
    }
    function Zc(e, t) {
      t = Ad(t, Ky), t = Ad(t, b0), ym(e, t);
    }
    function eA(e) {
      if (M9(), (fa & (No | Ts)) !== ro)
        throw new Error("Should not already be working.");
      kf();
      var t = df(e, qt);
      if (!Uo(t, xr))
        return El(e, Ba()), null;
      var m = ig(e, t);
      if (e.tag !== Fc && m === $d) {
        var N = Cu(e);
        N !== qt && (t = N, m = Qb(e, N));
      }
      if (m === m0) {
        var V = g0;
        throw Qd(e, qt), Zc(e, t), El(e, Ba()), V;
      }
      if (m === Ub)
        throw new Error("Root did not complete. This is a bug in React.");
      var de = e.current.alternate;
      return e.finishedWork = de, e.finishedLanes = t, Kd(e, Ml, Rf), El(e, Ba()), null;
    }
    function fD(e, t) {
      t !== qt && (hp(e, $n(t, xr)), El(e, Ba()), (fa & (No | Ts)) === ro && (T0(), zc()));
    }
    function Kb(e, t) {
      var m = fa;
      fa |= XC;
      try {
        return e(t);
      } finally {
        fa = m, fa === ro && // Treat `act` as if it's inside `batchedUpdates`, even in legacy mode.
        !tu.isBatchingLegacy && (T0(), QT());
      }
    }
    function cD(e, t, m, N, V) {
      var de = gl(), Ee = Io.transition;
      try {
        return Io.transition = null, ii(ci), e(t, m, N, V);
      } finally {
        ii(de), Io.transition = Ee, fa === ro && T0();
      }
    }
    function Lf(e) {
      Xc !== null && Xc.tag === Fc && (fa & (No | Ts)) === ro && kf();
      var t = fa;
      fa |= XC;
      var m = Io.transition, N = gl();
      try {
        return Io.transition = null, ii(ci), e ? e() : void 0;
      } finally {
        ii(N), Io.transition = m, fa = t, (fa & (No | Ts)) === ro && zc();
      }
    }
    function tA() {
      return (fa & (No | Ts)) !== ro;
    }
    function ag(e, t) {
      Xo(Wb, Fu, e), Fu = $n(Fu, t);
    }
    function qb(e) {
      Fu = Wb.current, Yo(Wb, e);
    }
    function Qd(e, t) {
      e.finishedWork = null, e.finishedLanes = qt;
      var m = e.timeoutHandle;
      if (m !== $1 && (e.timeoutHandle = $1, _E(m)), hi !== null)
        for (var N = hi.return; N !== null; ) {
          var V = N.alternate;
          LC(V, N), N = N.return;
        }
      al = e;
      var de = qd(e.current, null);
      return hi = de, no = Fu = t, ao = Df, g0 = null, Qy = qt, b0 = qt, Ky = qt, x0 = null, Ml = null, o9(), js.discardPendingWarnings(), de;
    }
    function rA(e, t) {
      do {
        var m = hi;
        try {
          if (hy(), M4(), Qr(), Gb.current = null, m === null || m.return === null) {
            ao = m0, g0 = t, hi = null;
            return;
          }
          if (W && m.mode & xt && Uy(m, !0), J)
            if (vo(), t !== null && typeof t == "object" && typeof t.then == "function") {
              var N = t;
              le(m, N, no);
            } else
              Q(m, t, no);
          P9(e, m.return, m, t, no), oA(m);
        } catch (V) {
          t = V, hi === m && m !== null ? (m = m.return, hi = m) : m = hi;
          continue;
        }
        return;
      } while (!0);
    }
    function nA() {
      var e = Vb.current;
      return Vb.current = _y, e === null ? _y : e;
    }
    function aA(e) {
      Vb.current = e;
    }
    function dD() {
      Yb = Ba();
    }
    function S0(e) {
      Qy = $n(e, Qy);
    }
    function vD() {
      ao === Df && (ao = Jy);
    }
    function ex() {
      (ao === Df || ao === Jy || ao === $d) && (ao = y0), al !== null && (Td(Qy) || Td(b0)) && Zc(al, no);
    }
    function hD(e) {
      ao !== y0 && (ao = $d), x0 === null ? x0 = [e] : x0.push(e);
    }
    function pD() {
      return ao === Df;
    }
    function ig(e, t) {
      var m = fa;
      fa |= No;
      var N = nA();
      if (al !== e || no !== t) {
        if (Bi) {
          var V = e.memoizedUpdaters;
          V.size > 0 && (M0(e, no), V.clear()), pp(e, t);
        }
        Rf = Sd(), Qd(e, t);
      }
      _e(t);
      do
        try {
          mD();
          break;
        } catch (de) {
          rA(e, de);
        }
      while (!0);
      if (hy(), fa = m, aA(N), hi !== null)
        throw new Error("Cannot commit an incomplete root. This error is likely caused by a bug in React. Please file an issue.");
      return Ke(), al = null, no = qt, ao;
    }
    function mD() {
      for (; hi !== null; )
        iA(hi);
    }
    function yD(e, t) {
      var m = fa;
      fa |= No;
      var N = nA();
      if (al !== e || no !== t) {
        if (Bi) {
          var V = e.memoizedUpdaters;
          V.size > 0 && (M0(e, no), V.clear()), pp(e, t);
        }
        Rf = Sd(), T0(), Qd(e, t);
      }
      _e(t);
      do
        try {
          gD();
          break;
        } catch (de) {
          rA(e, de);
        }
      while (!0);
      return hy(), aA(N), fa = m, hi !== null ? (Qe(), Df) : (Ke(), al = null, no = qt, ao);
    }
    function gD() {
      for (; hi !== null && !lc(); )
        iA(hi);
    }
    function iA(e) {
      var t = e.alternate;
      vn(e);
      var m;
      (e.mode & xt) !== Pt ? (nb(e), m = tx(t, e, Fu), Uy(e, !0)) : m = tx(t, e, Fu), Qr(), e.memoizedProps = e.pendingProps, m === null ? oA(e) : hi = m, Gb.current = null;
    }
    function oA(e) {
      var t = e;
      do {
        var m = t.alternate, N = t.return;
        if ((t.flags & fo) === wn) {
          vn(t);
          var V = void 0;
          if ((t.mode & xt) === Pt ? V = RC(m, t, Fu) : (nb(t), V = RC(m, t, Fu), Uy(t, !1)), Qr(), V !== null) {
            hi = V;
            return;
          }
        } else {
          var de = v7(m, t);
          if (de !== null) {
            de.flags &= gd, hi = de;
            return;
          }
          if ((t.mode & xt) !== Pt) {
            Uy(t, !1);
            for (var Ee = t.actualDuration, He = t.child; He !== null; )
              Ee += He.actualDuration, He = He.sibling;
            t.actualDuration = Ee;
          }
          if (N !== null)
            N.flags |= fo, N.subtreeFlags = wn, N.deletions = null;
          else {
            ao = Ub, hi = null;
            return;
          }
        }
        var $e = t.sibling;
        if ($e !== null) {
          hi = $e;
          return;
        }
        t = N, hi = t;
      } while (t !== null);
      ao === Df && (ao = jC);
    }
    function Kd(e, t, m) {
      var N = gl(), V = Io.transition;
      try {
        Io.transition = null, ii(ci), bD(e, t, m, N);
      } finally {
        Io.transition = V, ii(N);
      }
      return null;
    }
    function bD(e, t, m, N) {
      do
        kf();
      while (Xc !== null);
      if (LD(), (fa & (No | Ts)) !== ro)
        throw new Error("Should not already be working.");
      var V = e.finishedWork, de = e.finishedLanes;
      if (pl(de), V === null)
        return Hs(), null;
      if (de === qt && M("root.finishedLanes should not be empty during a commit. This is a bug in React."), e.finishedWork = null, e.finishedLanes = qt, V === e.current)
        throw new Error("Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue.");
      e.callbackNode = null, e.callbackPriority = Br;
      var Ee = $n(V.lanes, V.childLanes);
      Vv(e, Ee), e === al && (al = null, hi = null, no = qt), ((V.subtreeFlags & Bo) !== wn || (V.flags & Bo) !== wn) && (Jd || (Jd = !0, Zb = m, ax(vl, function() {
        return kf(), null;
      })));
      var He = (V.subtreeFlags & (mu | _i | bi | Bo)) !== wn, $e = (V.flags & (mu | _i | bi | Bo)) !== wn;
      if (He || $e) {
        var pt = Io.transition;
        Io.transition = null;
        var At = gl();
        ii(ci);
        var rr = fa;
        fa |= Ts, Gb.current = null, g7(e, V), Q4(), I7(e, V, de), kE(e.containerInfo), e.current = V, pe(de), N7(V, e, de), ge(), Nv(), fa = rr, ii(At), Io.transition = pt;
      } else
        e.current = V, Q4();
      var er = Jd;
      if (Jd ? (Jd = !1, Xc = e, C0 = de) : (Ph = 0, tg = null), Ee = e.pendingLanes, Ee === qt && (Oh = null), er || fA(e.current, !1), ka(V.stateNode, N), Bi && e.memoizedUpdaters.clear(), K7(), El(e, Ba()), t !== null)
        for (var pr = e.onRecoverableError, yr = 0; yr < t.length; yr++) {
          var Sr = t[yr], tn = Sr.stack, Ln = Sr.digest;
          pr(Sr.value, {
            componentStack: tn,
            digest: Ln
          });
        }
      if (qy) {
        qy = !1;
        var Cn = Xb;
        throw Xb = null, Cn;
      }
      return Uo(C0, xr) && e.tag !== Fc && kf(), Ee = e.pendingLanes, Uo(Ee, xr) ? (w9(), e === $b ? A0++ : (A0 = 0, $b = e)) : A0 = 0, zc(), Hs(), null;
    }
    function kf() {
      if (Xc !== null) {
        var e = Qi(C0), t = b1(ds, e), m = Io.transition, N = gl();
        try {
          return Io.transition = null, ii(t), TD();
        } finally {
          ii(N), Io.transition = m;
        }
      }
      return !1;
    }
    function xD(e) {
      jb.push(e), Jd || (Jd = !0, ax(vl, function() {
        return kf(), null;
      }));
    }
    function TD() {
      if (Xc === null)
        return !1;
      var e = Zb;
      Zb = null;
      var t = Xc, m = C0;
      if (Xc = null, C0 = qt, (fa & (No | Ts)) !== ro)
        throw new Error("Cannot flush passive effects while already rendering.");
      Jb = !0, eg = !1, Fe(m);
      var N = fa;
      fa |= Ts, B7(t.current), F7(t, t.current, m, e);
      {
        var V = jb;
        jb = [];
        for (var de = 0; de < V.length; de++) {
          var Ee = V[de];
          C7(t, Ee);
        }
      }
      ke(), fA(t.current, !0), fa = N, zc(), eg ? t === tg ? Ph++ : (Ph = 0, tg = t) : Ph = 0, Jb = !1, eg = !1, Co(t);
      {
        var He = t.current.stateNode;
        He.effectDuration = 0, He.passiveEffectDuration = 0;
      }
      return !0;
    }
    function lA(e) {
      return Oh !== null && Oh.has(e);
    }
    function CD(e) {
      Oh === null ? Oh = /* @__PURE__ */ new Set([e]) : Oh.add(e);
    }
    function AD(e) {
      qy || (qy = !0, Xb = e);
    }
    var wD = AD;
    function sA(e, t, m) {
      var N = jd(m, t), V = iC(e, N, xr), de = Hc(e, V, xr), Ee = il();
      de !== null && (hf(de, xr, Ee), El(de, Ee));
    }
    function Ja(e, t, m) {
      if (p7(m), E0(!1), e.tag === l) {
        sA(e, e, m);
        return;
      }
      var N = null;
      for (N = t; N !== null; ) {
        if (N.tag === l) {
          sA(N, e, m);
          return;
        } else if (N.tag === a) {
          var V = N.type, de = N.stateNode;
          if (typeof V.getDerivedStateFromError == "function" || typeof de.componentDidCatch == "function" && !lA(de)) {
            var Ee = jd(m, e), He = Tb(N, Ee, xr), $e = Hc(N, He, xr), pt = il();
            $e !== null && (hf($e, xr, pt), El($e, pt));
            return;
          }
        }
        N = N.return;
      }
      M(`Internal React error: Attempted to capture a commit phase error inside a detached tree. This indicates a bug in React. Likely causes include deleting the same fiber more than once, committing an already-finished tree, or an inconsistent return pointer.

Error message:

%s`, m);
    }
    function SD(e, t, m) {
      var N = e.pingCache;
      N !== null && N.delete(t);
      var V = il();
      Bv(e, m), OD(e), al === e && vf(no, m) && (ao === y0 || ao === Jy && cm(no) && Ba() - Yb < ZC ? Qd(e, qt) : Ky = $n(Ky, m)), El(e, V);
    }
    function uA(e, t) {
      t === Br && (t = iD(e));
      var m = il(), N = wl(e, t);
      N !== null && (hf(N, t, m), El(N, m));
    }
    function MD(e) {
      var t = e.memoizedState, m = Br;
      t !== null && (m = t.retryLane), uA(e, m);
    }
    function ED(e, t) {
      var m = Br, N;
      switch (e.tag) {
        case C:
          N = e.stateNode;
          var V = e.memoizedState;
          V !== null && (m = V.retryLane);
          break;
        case R:
          N = e.stateNode;
          break;
        default:
          throw new Error("Pinged unknown suspense boundary type. This is probably a bug in React.");
      }
      N !== null && N.delete(t), uA(e, m);
    }
    function DD(e) {
      return e < 120 ? 120 : e < 480 ? 480 : e < 1080 ? 1080 : e < 1920 ? 1920 : e < 3e3 ? 3e3 : e < 4320 ? 4320 : tD(e / 1960) * 1960;
    }
    function RD() {
      if (A0 > nD)
        throw A0 = 0, $b = null, new Error("Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.");
      Ph > aD && (Ph = 0, tg = null, M("Maximum update depth exceeded. This can happen when a component calls setState inside useEffect, but useEffect either doesn't have a dependency array, or one of the dependencies changes on every render."));
    }
    function LD() {
      js.flushLegacyContextWarning(), js.flushPendingUnsafeLifecycleWarnings();
    }
    function fA(e, t) {
      vn(e), og(e, Ha, $7), t && og(e, ls, J7), og(e, Ha, j7), t && og(e, ls, Z7), Qr();
    }
    function og(e, t, m) {
      for (var N = e, V = null; N !== null; ) {
        var de = N.subtreeFlags & t;
        N !== V && N.child !== null && de !== wn ? N = N.child : ((N.flags & t) !== wn && m(N), N.sibling !== null ? N = N.sibling : N = V = N.return);
      }
    }
    var lg = null;
    function cA(e) {
      {
        if ((fa & No) !== ro || !(e.mode & ct))
          return;
        var t = e.tag;
        if (t !== p && t !== l && t !== a && t !== r && t !== x && t !== w && t !== S)
          return;
        var m = sr(e) || "ReactComponent";
        if (lg !== null) {
          if (lg.has(m))
            return;
          lg.add(m);
        } else
          lg = /* @__PURE__ */ new Set([m]);
        var N = Lr;
        try {
          vn(e), M("Can't perform a React state update on a component that hasn't mounted yet. This indicates that you have a side-effect in your render function that asynchronously later calls tries to update the component. Move this work to useEffect instead.");
        } finally {
          N ? vn(e) : Qr();
        }
      }
    }
    var tx;
    {
      var kD = null;
      tx = function(e, t, m) {
        var N = bA(kD, t);
        try {
          return wC(e, t, m);
        } catch (de) {
          if (U8() || de !== null && typeof de == "object" && typeof de.then == "function")
            throw de;
          if (hy(), M4(), LC(e, t), bA(t, N), t.mode & xt && nb(t), Ps(null, wC, null, e, t, m), kv()) {
            var V = nc();
            typeof V == "object" && V !== null && V._suppressLogging && typeof de == "object" && de !== null && !de._suppressLogging && (de._suppressLogging = !0);
          }
          throw de;
        }
      };
    }
    var dA = !1, rx;
    rx = /* @__PURE__ */ new Set();
    function ID(e) {
      if (Pr && !T9())
        switch (e.tag) {
          case r:
          case x:
          case S: {
            var t = hi && sr(hi) || "Unknown", m = t;
            if (!rx.has(m)) {
              rx.add(m);
              var N = sr(e) || "Unknown";
              M("Cannot update a component (`%s`) while rendering a different component (`%s`). To locate the bad setState() call inside `%s`, follow the stack trace as described in https://reactjs.org/link/setstate-in-render", N, t, t);
            }
            break;
          }
          case a: {
            dA || (M("Cannot update during an existing state transition (such as within `render`). Render methods should be a pure function of props and state."), dA = !0);
            break;
          }
        }
    }
    function M0(e, t) {
      if (Bi) {
        var m = e.memoizedUpdaters;
        m.forEach(function(N) {
          Gv(e, N, t);
        });
      }
    }
    var nx = {};
    function ax(e, t) {
      {
        var m = tu.current;
        return m !== null ? (m.push(t), nx) : gu(e, t);
      }
    }
    function vA(e) {
      if (e !== nx)
        return Iv(e);
    }
    function hA() {
      return tu.current !== null;
    }
    function ND(e) {
      {
        if (e.mode & ct) {
          if (!YC())
            return;
        } else if (!eD() || fa !== ro || e.tag !== r && e.tag !== x && e.tag !== S)
          return;
        if (tu.current === null) {
          var t = Lr;
          try {
            vn(e), M(`An update to %s inside a test was not wrapped in act(...).

When testing, code that causes React state updates should be wrapped into act(...):

act(() => {
  /* fire events that update state */
});
/* assert on the output */

This ensures that you're testing the behavior the user would see in the browser. Learn more at https://reactjs.org/link/wrap-tests-with-act`, sr(e));
          } finally {
            t ? vn(e) : Qr();
          }
        }
      }
    }
    function OD(e) {
      e.tag !== Fc && YC() && tu.current === null && M(`A suspended resource finished loading inside a test, but the event was not wrapped in act(...).

When testing, code that resolves suspended data should be wrapped into act(...):

act(() => {
  /* finish loading suspended data */
});
/* assert on the output */

This ensures that you're testing the behavior the user would see in the browser. Learn more at https://reactjs.org/link/wrap-tests-with-act`);
    }
    function E0(e) {
      QC = e;
    }
    var Cs = null, Fh = null, PD = function(e) {
      Cs = e;
    };
    function zh(e) {
      {
        if (Cs === null)
          return e;
        var t = Cs(e);
        return t === void 0 ? e : t.current;
      }
    }
    function ix(e) {
      return zh(e);
    }
    function ox(e) {
      {
        if (Cs === null)
          return e;
        var t = Cs(e);
        if (t === void 0) {
          if (e != null && typeof e.render == "function") {
            var m = zh(e.render);
            if (e.render !== m) {
              var N = {
                $$typeof: rt,
                render: m
              };
              return e.displayName !== void 0 && (N.displayName = e.displayName), N;
            }
          }
          return e;
        }
        return t.current;
      }
    }
    function pA(e, t) {
      {
        if (Cs === null)
          return !1;
        var m = e.elementType, N = t.type, V = !1, de = typeof N == "object" && N !== null ? N.$$typeof : null;
        switch (e.tag) {
          case a: {
            typeof N == "function" && (V = !0);
            break;
          }
          case r: {
            (typeof N == "function" || de === dt) && (V = !0);
            break;
          }
          case x: {
            (de === rt || de === dt) && (V = !0);
            break;
          }
          case w:
          case S: {
            (de === Dt || de === dt) && (V = !0);
            break;
          }
          default:
            return !1;
        }
        if (V) {
          var Ee = Cs(m);
          if (Ee !== void 0 && Ee === Cs(N))
            return !0;
        }
        return !1;
      }
    }
    function mA(e) {
      {
        if (Cs === null || typeof WeakSet != "function")
          return;
        Fh === null && (Fh = /* @__PURE__ */ new WeakSet()), Fh.add(e);
      }
    }
    var FD = function(e, t) {
      {
        if (Cs === null)
          return;
        var m = t.staleFamilies, N = t.updatedFamilies;
        kf(), Lf(function() {
          lx(e.current, N, m);
        });
      }
    }, zD = function(e, t) {
      {
        if (e.context !== jl)
          return;
        kf(), Lf(function() {
          D0(t, e, null, null);
        });
      }
    };
    function lx(e, t, m) {
      {
        var N = e.alternate, V = e.child, de = e.sibling, Ee = e.tag, He = e.type, $e = null;
        switch (Ee) {
          case r:
          case S:
          case a:
            $e = He;
            break;
          case x:
            $e = He.render;
            break;
        }
        if (Cs === null)
          throw new Error("Expected resolveFamily to be set during hot reload.");
        var pt = !1, At = !1;
        if ($e !== null) {
          var rr = Cs($e);
          rr !== void 0 && (m.has(rr) ? At = !0 : t.has(rr) && (Ee === a ? At = !0 : pt = !0));
        }
        if (Fh !== null && (Fh.has(e) || N !== null && Fh.has(N)) && (At = !0), At && (e._debugNeedsRemount = !0), At || pt) {
          var er = wl(e, xr);
          er !== null && io(er, e, xr, Ua);
        }
        V !== null && !At && lx(V, t, m), de !== null && lx(de, t, m);
      }
    }
    var _D = function(e, t) {
      {
        var m = /* @__PURE__ */ new Set(), N = new Set(t.map(function(V) {
          return V.current;
        }));
        return sx(e.current, N, m), m;
      }
    };
    function sx(e, t, m) {
      {
        var N = e.child, V = e.sibling, de = e.tag, Ee = e.type, He = null;
        switch (de) {
          case r:
          case S:
          case a:
            He = Ee;
            break;
          case x:
            He = Ee.render;
            break;
        }
        var $e = !1;
        He !== null && t.has(He) && ($e = !0), $e ? HD(e, m) : N !== null && sx(N, t, m), V !== null && sx(V, t, m);
      }
    }
    function HD(e, t) {
      {
        var m = BD(e, t);
        if (m)
          return;
        for (var N = e; ; ) {
          switch (N.tag) {
            case u:
              t.add(N.stateNode);
              return;
            case f:
              t.add(N.stateNode.containerInfo);
              return;
            case l:
              t.add(N.stateNode.containerInfo);
              return;
          }
          if (N.return === null)
            throw new Error("Expected to reach root first.");
          N = N.return;
        }
      }
    }
    function BD(e, t) {
      for (var m = e, N = !1; ; ) {
        if (m.tag === u)
          N = !0, t.add(m.stateNode);
        else if (m.child !== null) {
          m.child.return = m, m = m.child;
          continue;
        }
        if (m === e)
          return N;
        for (; m.sibling === null; ) {
          if (m.return === null || m.return === e)
            return N;
          m = m.return;
        }
        m.sibling.return = m.return, m = m.sibling;
      }
      return !1;
    }
    var ux;
    {
      ux = !1;
      try {
        var yA = Object.preventExtensions({});
      } catch {
        ux = !0;
      }
    }
    function VD(e, t, m, N) {
      this.tag = e, this.key = m, this.elementType = null, this.type = null, this.stateNode = null, this.return = null, this.child = null, this.sibling = null, this.index = 0, this.ref = null, this.pendingProps = t, this.memoizedProps = null, this.updateQueue = null, this.memoizedState = null, this.dependencies = null, this.mode = N, this.flags = wn, this.subtreeFlags = wn, this.deletions = null, this.lanes = qt, this.childLanes = qt, this.alternate = null, this.actualDuration = Number.NaN, this.actualStartTime = Number.NaN, this.selfBaseDuration = Number.NaN, this.treeBaseDuration = Number.NaN, this.actualDuration = 0, this.actualStartTime = -1, this.selfBaseDuration = 0, this.treeBaseDuration = 0, this._debugSource = null, this._debugOwner = null, this._debugNeedsRemount = !1, this._debugHookTypes = null, !ux && typeof Object.preventExtensions == "function" && Object.preventExtensions(this);
    }
    var Zl = function(e, t, m, N) {
      return new VD(e, t, m, N);
    };
    function fx(e) {
      var t = e.prototype;
      return !!(t && t.isReactComponent);
    }
    function GD(e) {
      return typeof e == "function" && !fx(e) && e.defaultProps === void 0;
    }
    function UD(e) {
      if (typeof e == "function")
        return fx(e) ? a : r;
      if (e != null) {
        var t = e.$$typeof;
        if (t === rt)
          return x;
        if (t === Dt)
          return w;
      }
      return p;
    }
    function qd(e, t) {
      var m = e.alternate;
      m === null ? (m = Zl(e.tag, t, e.key, e.mode), m.elementType = e.elementType, m.type = e.type, m.stateNode = e.stateNode, m._debugSource = e._debugSource, m._debugOwner = e._debugOwner, m._debugHookTypes = e._debugHookTypes, m.alternate = e, e.alternate = m) : (m.pendingProps = t, m.type = e.type, m.flags = wn, m.subtreeFlags = wn, m.deletions = null, m.actualDuration = 0, m.actualStartTime = -1), m.flags = e.flags & Mi, m.childLanes = e.childLanes, m.lanes = e.lanes, m.child = e.child, m.memoizedProps = e.memoizedProps, m.memoizedState = e.memoizedState, m.updateQueue = e.updateQueue;
      var N = e.dependencies;
      switch (m.dependencies = N === null ? null : {
        lanes: N.lanes,
        firstContext: N.firstContext
      }, m.sibling = e.sibling, m.index = e.index, m.ref = e.ref, m.selfBaseDuration = e.selfBaseDuration, m.treeBaseDuration = e.treeBaseDuration, m._debugNeedsRemount = e._debugNeedsRemount, m.tag) {
        case p:
        case r:
        case S:
          m.type = zh(e.type);
          break;
        case a:
          m.type = ix(e.type);
          break;
        case x:
          m.type = ox(e.type);
          break;
      }
      return m;
    }
    function WD(e, t) {
      e.flags &= Mi | Aa;
      var m = e.alternate;
      if (m === null)
        e.childLanes = qt, e.lanes = t, e.child = null, e.subtreeFlags = wn, e.memoizedProps = null, e.memoizedState = null, e.updateQueue = null, e.dependencies = null, e.stateNode = null, e.selfBaseDuration = 0, e.treeBaseDuration = 0;
      else {
        e.childLanes = m.childLanes, e.lanes = m.lanes, e.child = m.child, e.subtreeFlags = wn, e.deletions = null, e.memoizedProps = m.memoizedProps, e.memoizedState = m.memoizedState, e.updateQueue = m.updateQueue, e.type = m.type;
        var N = m.dependencies;
        e.dependencies = N === null ? null : {
          lanes: N.lanes,
          firstContext: N.firstContext
        }, e.selfBaseDuration = m.selfBaseDuration, e.treeBaseDuration = m.treeBaseDuration;
      }
      return e;
    }
    function YD(e, t, m) {
      var N;
      return e === ay ? (N = ct, t === !0 && (N |= Rt, N |= Xt)) : N = Pt, Bi && (N |= xt), Zl(l, null, null, N);
    }
    function cx(e, t, m, N, V, de) {
      var Ee = p, He = e;
      if (typeof e == "function")
        fx(e) ? (Ee = a, He = ix(He)) : He = zh(He);
      else if (typeof e == "string")
        Ee = u;
      else
        e:
          switch (e) {
            case lt:
              return $c(m.children, V, de, t);
            case Se:
              Ee = h, V |= Rt, (V & ct) !== Pt && (V |= Xt);
              break;
            case Pe:
              return XD(m, V, de, t);
            case tt:
              return jD(m, V, de, t);
            case Ft:
              return ZD(m, V, de, t);
            case ar:
              return gA(m, V, de, t);
            case ur:
            case st:
            case Or:
            case Fr:
            case Nt:
            default: {
              if (typeof e == "object" && e !== null)
                switch (e.$$typeof) {
                  case Ye:
                    Ee = b;
                    break e;
                  case Ze:
                    Ee = i;
                    break e;
                  case rt:
                    Ee = x, He = ox(He);
                    break e;
                  case Dt:
                    Ee = w;
                    break e;
                  case dt:
                    Ee = T, He = null;
                    break e;
                }
              var $e = "";
              {
                (e === void 0 || typeof e == "object" && e !== null && Object.keys(e).length === 0) && ($e += " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");
                var pt = N ? sr(N) : null;
                pt && ($e += `

Check the render method of \`` + pt + "`.");
              }
              throw new Error("Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) " + ("but got: " + (e == null ? e : typeof e) + "." + $e));
            }
          }
      var At = Zl(Ee, m, t, V);
      return At.elementType = e, At.type = He, At.lanes = de, At._debugOwner = N, At;
    }
    function dx(e, t, m) {
      var N = null;
      N = e._owner;
      var V = e.type, de = e.key, Ee = e.props, He = cx(V, de, Ee, N, t, m);
      return He._debugSource = e._source, He._debugOwner = e._owner, He;
    }
    function $c(e, t, m, N) {
      var V = Zl(d, e, N, t);
      return V.lanes = m, V;
    }
    function XD(e, t, m, N) {
      typeof e.id != "string" && M('Profiler must specify an "id" of type `string` as a prop. Received the type `%s` instead.', typeof e.id);
      var V = Zl(D, e, N, t | xt);
      return V.elementType = Pe, V.lanes = m, V.stateNode = {
        effectDuration: 0,
        passiveEffectDuration: 0
      }, V;
    }
    function jD(e, t, m, N) {
      var V = Zl(C, e, N, t);
      return V.elementType = tt, V.lanes = m, V;
    }
    function ZD(e, t, m, N) {
      var V = Zl(R, e, N, t);
      return V.elementType = Ft, V.lanes = m, V;
    }
    function gA(e, t, m, N) {
      var V = Zl(I, e, N, t);
      V.elementType = ar, V.lanes = m;
      var de = {
        isHidden: !1
      };
      return V.stateNode = de, V;
    }
    function vx(e, t, m) {
      var N = Zl(c, e, null, t);
      return N.lanes = m, N;
    }
    function $D() {
      var e = Zl(u, null, null, Pt);
      return e.elementType = "DELETED", e;
    }
    function JD(e) {
      var t = Zl(A, null, null, Pt);
      return t.stateNode = e, t;
    }
    function hx(e, t, m) {
      var N = e.children !== null ? e.children : [], V = Zl(f, N, e.key, t);
      return V.lanes = m, V.stateNode = {
        containerInfo: e.containerInfo,
        pendingChildren: null,
        // Used by persistent updates
        implementation: e.implementation
      }, V;
    }
    function bA(e, t) {
      return e === null && (e = Zl(p, null, null, Pt)), e.tag = t.tag, e.key = t.key, e.elementType = t.elementType, e.type = t.type, e.stateNode = t.stateNode, e.return = t.return, e.child = t.child, e.sibling = t.sibling, e.index = t.index, e.ref = t.ref, e.pendingProps = t.pendingProps, e.memoizedProps = t.memoizedProps, e.updateQueue = t.updateQueue, e.memoizedState = t.memoizedState, e.dependencies = t.dependencies, e.mode = t.mode, e.flags = t.flags, e.subtreeFlags = t.subtreeFlags, e.deletions = t.deletions, e.lanes = t.lanes, e.childLanes = t.childLanes, e.alternate = t.alternate, e.actualDuration = t.actualDuration, e.actualStartTime = t.actualStartTime, e.selfBaseDuration = t.selfBaseDuration, e.treeBaseDuration = t.treeBaseDuration, e._debugSource = t._debugSource, e._debugOwner = t._debugOwner, e._debugNeedsRemount = t._debugNeedsRemount, e._debugHookTypes = t._debugHookTypes, e;
    }
    function QD(e, t, m, N, V) {
      this.tag = t, this.containerInfo = e, this.pendingChildren = null, this.current = null, this.pingCache = null, this.finishedWork = null, this.timeoutHandle = $1, this.context = null, this.pendingContext = null, this.callbackNode = null, this.callbackPriority = Br, this.eventTimes = wd(qt), this.expirationTimes = wd(Ua), this.pendingLanes = qt, this.suspendedLanes = qt, this.pingedLanes = qt, this.expiredLanes = qt, this.mutableReadLanes = qt, this.finishedLanes = qt, this.entangledLanes = qt, this.entanglements = wd(qt), this.identifierPrefix = N, this.onRecoverableError = V, this.mutableSourceEagerHydrationData = null, this.effectDuration = 0, this.passiveEffectDuration = 0;
      {
        this.memoizedUpdaters = /* @__PURE__ */ new Set();
        for (var de = this.pendingUpdatersLaneMap = [], Ee = 0; Ee < Ur; Ee++)
          de.push(/* @__PURE__ */ new Set());
      }
      switch (t) {
        case ay:
          this._debugRootType = m ? "hydrateRoot()" : "createRoot()";
          break;
        case Fc:
          this._debugRootType = m ? "hydrate()" : "render()";
          break;
      }
    }
    function xA(e, t, m, N, V, de, Ee, He, $e, pt) {
      var At = new QD(e, t, m, He, $e), rr = YD(t, de);
      At.current = rr, rr.stateNode = At;
      {
        var er = {
          element: N,
          isDehydrated: m,
          cache: null,
          // not enabled yet
          transitions: null,
          pendingSuspenseBoundaries: null
        };
        rr.memoizedState = er;
      }
      return E2(rr), At;
    }
    var px = "18.3.1";
    function KD(e, t, m) {
      var N = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : null;
      return ee(N), {
        // This tag allow us to uniquely identify this as a React Portal
        $$typeof: je,
        key: N == null ? null : "" + N,
        children: e,
        containerInfo: t,
        implementation: m
      };
    }
    var mx, yx;
    mx = !1, yx = {};
    function TA(e) {
      if (!e)
        return jl;
      var t = uo(e), m = O8(t);
      if (t.tag === a) {
        var N = t.type;
        if (Ru(N))
          return ZT(t, N, m);
      }
      return m;
    }
    function qD(e, t) {
      {
        var m = uo(e);
        if (m === void 0) {
          if (typeof e.render == "function")
            throw new Error("Unable to find node on an unmounted component.");
          var N = Object.keys(e).join(",");
          throw new Error("Argument appears to not be a ReactComponent. Keys: " + N);
        }
        var V = xo(m);
        if (V === null)
          return null;
        if (V.mode & Rt) {
          var de = sr(m) || "Component";
          if (!yx[de]) {
            yx[de] = !0;
            var Ee = Lr;
            try {
              vn(V), m.mode & Rt ? M("%s is deprecated in StrictMode. %s was passed an instance of %s which is inside StrictMode. Instead, add a ref directly to the element you want to reference. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-find-node", t, t, de) : M("%s is deprecated in StrictMode. %s was passed an instance of %s which renders StrictMode children. Instead, add a ref directly to the element you want to reference. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-find-node", t, t, de);
            } finally {
              Ee ? vn(Ee) : Qr();
            }
          }
        }
        return V.stateNode;
      }
    }
    function CA(e, t, m, N, V, de, Ee, He) {
      var $e = !1, pt = null;
      return xA(e, t, $e, pt, m, N, V, de, Ee);
    }
    function AA(e, t, m, N, V, de, Ee, He, $e, pt) {
      var At = !0, rr = xA(m, N, At, e, V, de, Ee, He, $e);
      rr.context = TA(null);
      var er = rr.current, pr = il(), yr = jc(er), Sr = Mf(pr, yr);
      return Sr.callback = t ?? null, Hc(er, Sr, yr), oD(rr, yr, pr), rr;
    }
    function D0(e, t, m, N) {
      _s(t, e);
      var V = t.current, de = il(), Ee = jc(V);
      yt(Ee);
      var He = TA(m);
      t.context === null ? t.context = He : t.pendingContext = He, Pr && Lr !== null && !mx && (mx = !0, M(`Render methods should be a pure function of props and state; triggering nested component updates from render is not allowed. If necessary, trigger nested updates in componentDidUpdate.

Check the render method of %s.`, sr(Lr) || "Unknown"));
      var $e = Mf(de, Ee);
      $e.payload = {
        element: e
      }, N = N === void 0 ? null : N, N !== null && (typeof N != "function" && M("render(...): Expected the last optional `callback` argument to be a function. Instead received: %s.", N), $e.callback = N);
      var pt = Hc(V, $e, Ee);
      return pt !== null && (io(pt, V, Ee, de), by(pt, V, Ee)), Ee;
    }
    function sg(e) {
      var t = e.current;
      if (!t.child)
        return null;
      switch (t.child.tag) {
        case u:
          return t.child.stateNode;
        default:
          return t.child.stateNode;
      }
    }
    function eR(e) {
      switch (e.tag) {
        case l: {
          var t = e.stateNode;
          if (Uv(t)) {
            var m = cp(t);
            fD(t, m);
          }
          break;
        }
        case C: {
          Lf(function() {
            var V = wl(e, xr);
            if (V !== null) {
              var de = il();
              io(V, e, xr, de);
            }
          });
          var N = xr;
          gx(e, N);
          break;
        }
      }
    }
    function wA(e, t) {
      var m = e.memoizedState;
      m !== null && m.dehydrated !== null && (m.retryLane = mm(m.retryLane, t));
    }
    function gx(e, t) {
      wA(e, t);
      var m = e.alternate;
      m && wA(m, t);
    }
    function tR(e) {
      if (e.tag === C) {
        var t = cs, m = wl(e, t);
        if (m !== null) {
          var N = il();
          io(m, e, t, N);
        }
        gx(e, t);
      }
    }
    function rR(e) {
      if (e.tag === C) {
        var t = jc(e), m = wl(e, t);
        if (m !== null) {
          var N = il();
          io(m, e, t, N);
        }
        gx(e, t);
      }
    }
    function SA(e) {
      var t = Wl(e);
      return t === null ? null : t.stateNode;
    }
    var MA = function(e) {
      return null;
    };
    function nR(e) {
      return MA(e);
    }
    var EA = function(e) {
      return !1;
    };
    function aR(e) {
      return EA(e);
    }
    var DA = null, RA = null, LA = null, kA = null, IA = null, NA = null, OA = null, PA = null, FA = null;
    {
      var zA = function(e, t, m) {
        var N = t[m], V = Zn(e) ? e.slice() : lr({}, e);
        return m + 1 === t.length ? (Zn(V) ? V.splice(N, 1) : delete V[N], V) : (V[N] = zA(e[N], t, m + 1), V);
      }, _A = function(e, t) {
        return zA(e, t, 0);
      }, HA = function(e, t, m, N) {
        var V = t[N], de = Zn(e) ? e.slice() : lr({}, e);
        if (N + 1 === t.length) {
          var Ee = m[N];
          de[Ee] = de[V], Zn(de) ? de.splice(V, 1) : delete de[V];
        } else
          de[V] = HA(
            // $FlowFixMe number or string is fine here
            e[V],
            t,
            m,
            N + 1
          );
        return de;
      }, BA = function(e, t, m) {
        if (t.length !== m.length) {
          K("copyWithRename() expects paths of the same length");
          return;
        } else
          for (var N = 0; N < m.length - 1; N++)
            if (t[N] !== m[N]) {
              K("copyWithRename() expects paths to be the same except for the deepest key");
              return;
            }
        return HA(e, t, m, 0);
      }, VA = function(e, t, m, N) {
        if (m >= t.length)
          return N;
        var V = t[m], de = Zn(e) ? e.slice() : lr({}, e);
        return de[V] = VA(e[V], t, m + 1, N), de;
      }, GA = function(e, t, m) {
        return VA(e, t, 0, m);
      }, bx = function(e, t) {
        for (var m = e.memoizedState; m !== null && t > 0; )
          m = m.next, t--;
        return m;
      };
      DA = function(e, t, m, N) {
        var V = bx(e, t);
        if (V !== null) {
          var de = GA(V.memoizedState, m, N);
          V.memoizedState = de, V.baseState = de, e.memoizedProps = lr({}, e.memoizedProps);
          var Ee = wl(e, xr);
          Ee !== null && io(Ee, e, xr, Ua);
        }
      }, RA = function(e, t, m) {
        var N = bx(e, t);
        if (N !== null) {
          var V = _A(N.memoizedState, m);
          N.memoizedState = V, N.baseState = V, e.memoizedProps = lr({}, e.memoizedProps);
          var de = wl(e, xr);
          de !== null && io(de, e, xr, Ua);
        }
      }, LA = function(e, t, m, N) {
        var V = bx(e, t);
        if (V !== null) {
          var de = BA(V.memoizedState, m, N);
          V.memoizedState = de, V.baseState = de, e.memoizedProps = lr({}, e.memoizedProps);
          var Ee = wl(e, xr);
          Ee !== null && io(Ee, e, xr, Ua);
        }
      }, kA = function(e, t, m) {
        e.pendingProps = GA(e.memoizedProps, t, m), e.alternate && (e.alternate.pendingProps = e.pendingProps);
        var N = wl(e, xr);
        N !== null && io(N, e, xr, Ua);
      }, IA = function(e, t) {
        e.pendingProps = _A(e.memoizedProps, t), e.alternate && (e.alternate.pendingProps = e.pendingProps);
        var m = wl(e, xr);
        m !== null && io(m, e, xr, Ua);
      }, NA = function(e, t, m) {
        e.pendingProps = BA(e.memoizedProps, t, m), e.alternate && (e.alternate.pendingProps = e.pendingProps);
        var N = wl(e, xr);
        N !== null && io(N, e, xr, Ua);
      }, OA = function(e) {
        var t = wl(e, xr);
        t !== null && io(t, e, xr, Ua);
      }, PA = function(e) {
        MA = e;
      }, FA = function(e) {
        EA = e;
      };
    }
    function iR(e) {
      var t = xo(e);
      return t === null ? null : t.stateNode;
    }
    function oR(e) {
      return null;
    }
    function lR() {
      return Lr;
    }
    function sR(e) {
      var t = e.findFiberByHostInstance, m = E.ReactCurrentDispatcher;
      return fc({
        bundleType: e.bundleType,
        version: e.version,
        rendererPackageName: e.rendererPackageName,
        rendererConfig: e.rendererConfig,
        overrideHookState: DA,
        overrideHookStateDeletePath: RA,
        overrideHookStateRenamePath: LA,
        overrideProps: kA,
        overridePropsDeletePath: IA,
        overridePropsRenamePath: NA,
        setErrorHandler: PA,
        setSuspenseHandler: FA,
        scheduleUpdate: OA,
        currentDispatcherRef: m,
        findHostInstanceByFiber: iR,
        findFiberByHostInstance: t || oR,
        // React Refresh
        findHostInstancesForRefresh: _D,
        scheduleRefresh: FD,
        scheduleRoot: zD,
        setRefreshHandler: PD,
        // Enables DevTools to append owner stacks to error messages in DEV mode.
        getCurrentFiber: lR,
        // Enables DevTools to detect reconciler version rather than renderer version
        // which may not match for third party renderers.
        reconcilerVersion: px
      });
    }
    var UA = typeof reportError == "function" ? (
      // In modern browsers, reportError will dispatch an error event,
      // emulating an uncaught JavaScript error.
      reportError
    ) : function(e) {
      console.error(e);
    };
    function xx(e) {
      this._internalRoot = e;
    }
    ug.prototype.render = xx.prototype.render = function(e) {
      var t = this._internalRoot;
      if (t === null)
        throw new Error("Cannot update an unmounted root.");
      {
        typeof arguments[1] == "function" ? M("render(...): does not support the second callback argument. To execute a side effect after rendering, declare it in a component body with useEffect().") : fg(arguments[1]) ? M("You passed a container to the second argument of root.render(...). You don't need to pass it again since you already passed it to create the root.") : typeof arguments[1] < "u" && M("You passed a second argument to root.render(...) but it only accepts one argument.");
        var m = t.containerInfo;
        if (m.nodeType !== La) {
          var N = SA(t.current);
          N && N.parentNode !== m && M("render(...): It looks like the React-rendered content of the root container was removed without using React. This is not supported and will cause errors. Instead, call root.unmount() to empty a root's container.");
        }
      }
      D0(e, t, null, null);
    }, ug.prototype.unmount = xx.prototype.unmount = function() {
      typeof arguments[0] == "function" && M("unmount(...): does not support a callback argument. To execute a side effect after rendering, declare it in a component body with useEffect().");
      var e = this._internalRoot;
      if (e !== null) {
        this._internalRoot = null;
        var t = e.containerInfo;
        tA() && M("Attempted to synchronously unmount a root while React was already rendering. React cannot finish unmounting the root until the current render has completed, which may lead to a race condition."), Lf(function() {
          D0(null, e, null, null);
        }), UT(t);
      }
    };
    function uR(e, t) {
      if (!fg(e))
        throw new Error("createRoot(...): Target container is not a DOM element.");
      WA(e);
      var m = !1, N = !1, V = "", de = UA;
      t != null && (t.hydrate ? K("hydrate through createRoot is deprecated. Use ReactDOMClient.hydrateRoot(container, <App />) instead.") : typeof t == "object" && t !== null && t.$$typeof === We && M(`You passed a JSX element to createRoot. You probably meant to call root.render instead. Example usage:

  let root = createRoot(domContainer);
  root.render(<App />);`), t.unstable_strictMode === !0 && (m = !0), t.identifierPrefix !== void 0 && (V = t.identifierPrefix), t.onRecoverableError !== void 0 && (de = t.onRecoverableError), t.transitionCallbacks !== void 0 && t.transitionCallbacks);
      var Ee = CA(e, ay, null, m, N, V, de);
      Qm(Ee.current, e);
      var He = e.nodeType === La ? e.parentNode : e;
      return Op(He), new xx(Ee);
    }
    function ug(e) {
      this._internalRoot = e;
    }
    function fR(e) {
      e && C1(e);
    }
    ug.prototype.unstable_scheduleHydration = fR;
    function cR(e, t, m) {
      if (!fg(e))
        throw new Error("hydrateRoot(...): Target container is not a DOM element.");
      WA(e), t === void 0 && M("Must provide initial children as second argument to hydrateRoot. Example usage: hydrateRoot(domContainer, <App />)");
      var N = m ?? null, V = m != null && m.hydratedSources || null, de = !1, Ee = !1, He = "", $e = UA;
      m != null && (m.unstable_strictMode === !0 && (de = !0), m.identifierPrefix !== void 0 && (He = m.identifierPrefix), m.onRecoverableError !== void 0 && ($e = m.onRecoverableError));
      var pt = AA(t, null, e, ay, N, de, Ee, He, $e);
      if (Qm(pt.current, e), Op(e), V)
        for (var At = 0; At < V.length; At++) {
          var rr = V[At];
          p9(pt, rr);
        }
      return new ug(pt);
    }
    function fg(e) {
      return !!(e && (e.nodeType === zi || e.nodeType === lo || e.nodeType === ns || !te));
    }
    function R0(e) {
      return !!(e && (e.nodeType === zi || e.nodeType === lo || e.nodeType === ns || e.nodeType === La && e.nodeValue === " react-mount-point-unstable "));
    }
    function WA(e) {
      e.nodeType === zi && e.tagName && e.tagName.toUpperCase() === "BODY" && M("createRoot(): Creating roots directly with document.body is discouraged, since its children are often manipulated by third-party scripts and browser extensions. This may lead to subtle reconciliation issues. Try using a container element created for your app."), Yp(e) && (e._reactRootContainer ? M("You are calling ReactDOMClient.createRoot() on a container that was previously passed to ReactDOM.render(). This is not supported.") : M("You are calling ReactDOMClient.createRoot() on a container that has already been passed to createRoot() before. Instead, call root.render() on the existing root instead if you want to update it."));
    }
    var dR = E.ReactCurrentOwner, YA;
    YA = function(e) {
      if (e._reactRootContainer && e.nodeType !== La) {
        var t = SA(e._reactRootContainer.current);
        t && t.parentNode !== e && M("render(...): It looks like the React-rendered content of this container was removed without using React. This is not supported and will cause errors. Instead, call ReactDOM.unmountComponentAtNode to empty a container.");
      }
      var m = !!e._reactRootContainer, N = Tx(e), V = !!(N && Oc(N));
      V && !m && M("render(...): Replacing React-rendered children with a new root component. If you intended to update the children of this node, you should instead have the existing children update their state and render the new components instead of calling ReactDOM.render."), e.nodeType === zi && e.tagName && e.tagName.toUpperCase() === "BODY" && M("render(): Rendering components directly into document.body is discouraged, since its children are often manipulated by third-party scripts and browser extensions. This may lead to subtle reconciliation issues. Try rendering into a container element created for your app.");
    };
    function Tx(e) {
      return e ? e.nodeType === lo ? e.documentElement : e.firstChild : null;
    }
    function XA() {
    }
    function vR(e, t, m, N, V) {
      if (V) {
        if (typeof N == "function") {
          var de = N;
          N = function() {
            var er = sg(Ee);
            de.call(er);
          };
        }
        var Ee = AA(
          t,
          N,
          e,
          Fc,
          null,
          // hydrationCallbacks
          !1,
          // isStrictMode
          !1,
          // concurrentUpdatesByDefaultOverride,
          "",
          // identifierPrefix
          XA
        );
        e._reactRootContainer = Ee, Qm(Ee.current, e);
        var He = e.nodeType === La ? e.parentNode : e;
        return Op(He), Lf(), Ee;
      } else {
        for (var $e; $e = e.lastChild; )
          e.removeChild($e);
        if (typeof N == "function") {
          var pt = N;
          N = function() {
            var er = sg(At);
            pt.call(er);
          };
        }
        var At = CA(
          e,
          Fc,
          null,
          // hydrationCallbacks
          !1,
          // isStrictMode
          !1,
          // concurrentUpdatesByDefaultOverride,
          "",
          // identifierPrefix
          XA
        );
        e._reactRootContainer = At, Qm(At.current, e);
        var rr = e.nodeType === La ? e.parentNode : e;
        return Op(rr), Lf(function() {
          D0(t, At, m, N);
        }), At;
      }
    }
    function hR(e, t) {
      e !== null && typeof e != "function" && M("%s(...): Expected the last optional `callback` argument to be a function. Instead received: %s.", t, e);
    }
    function cg(e, t, m, N, V) {
      YA(m), hR(V === void 0 ? null : V, "render");
      var de = m._reactRootContainer, Ee;
      if (!de)
        Ee = vR(m, t, e, V, N);
      else {
        if (Ee = de, typeof V == "function") {
          var He = V;
          V = function() {
            var $e = sg(Ee);
            He.call($e);
          };
        }
        D0(t, Ee, e, V);
      }
      return sg(Ee);
    }
    var jA = !1;
    function pR(e) {
      {
        jA || (jA = !0, M("findDOMNode is deprecated and will be removed in the next major release. Instead, add a ref directly to the element you want to reference. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-find-node"));
        var t = dR.current;
        if (t !== null && t.stateNode !== null) {
          var m = t.stateNode._warnedAboutRefsInRender;
          m || M("%s is accessing findDOMNode inside its render(). render() should be a pure function of props and state. It should never access something that requires stale data from the previous render, such as refs. Move this logic to componentDidMount and componentDidUpdate instead.", $t(t.type) || "A component"), t.stateNode._warnedAboutRefsInRender = !0;
        }
      }
      return e == null ? null : e.nodeType === zi ? e : qD(e, "findDOMNode");
    }
    function mR(e, t, m) {
      if (M("ReactDOM.hydrate is no longer supported in React 18. Use hydrateRoot instead. Until you switch to the new API, your app will behave as if it's running React 17. Learn more: https://reactjs.org/link/switch-to-createroot"), !R0(t))
        throw new Error("Target container is not a DOM element.");
      {
        var N = Yp(t) && t._reactRootContainer === void 0;
        N && M("You are calling ReactDOM.hydrate() on a container that was previously passed to ReactDOMClient.createRoot(). This is not supported. Did you mean to call hydrateRoot(container, element)?");
      }
      return cg(null, e, t, !0, m);
    }
    function yR(e, t, m) {
      if (M("ReactDOM.render is no longer supported in React 18. Use createRoot instead. Until you switch to the new API, your app will behave as if it's running React 17. Learn more: https://reactjs.org/link/switch-to-createroot"), !R0(t))
        throw new Error("Target container is not a DOM element.");
      {
        var N = Yp(t) && t._reactRootContainer === void 0;
        N && M("You are calling ReactDOM.render() on a container that was previously passed to ReactDOMClient.createRoot(). This is not supported. Did you mean to call root.render(element)?");
      }
      return cg(null, e, t, !1, m);
    }
    function gR(e, t, m, N) {
      if (M("ReactDOM.unstable_renderSubtreeIntoContainer() is no longer supported in React 18. Consider using a portal instead. Until you switch to the createRoot API, your app will behave as if it's running React 17. Learn more: https://reactjs.org/link/switch-to-createroot"), !R0(m))
        throw new Error("Target container is not a DOM element.");
      if (e == null || !Fs(e))
        throw new Error("parentComponent must be a valid React Component");
      return cg(e, t, m, !1, N);
    }
    var ZA = !1;
    function bR(e) {
      if (ZA || (ZA = !0, M("unmountComponentAtNode is deprecated and will be removed in the next major release. Switch to the createRoot API. Learn more: https://reactjs.org/link/switch-to-createroot")), !R0(e))
        throw new Error("unmountComponentAtNode(...): Target container is not a DOM element.");
      {
        var t = Yp(e) && e._reactRootContainer === void 0;
        t && M("You are calling ReactDOM.unmountComponentAtNode() on a container that was previously passed to ReactDOMClient.createRoot(). This is not supported. Did you mean to call root.unmount()?");
      }
      if (e._reactRootContainer) {
        {
          var m = Tx(e), N = m && !Oc(m);
          N && M("unmountComponentAtNode(): The node you're attempting to unmount was rendered by another copy of React.");
        }
        return Lf(function() {
          cg(null, null, e, !1, function() {
            e._reactRootContainer = null, UT(e);
          });
        }), !0;
      } else {
        {
          var V = Tx(e), de = !!(V && Oc(V)), Ee = e.nodeType === zi && R0(e.parentNode) && !!e.parentNode._reactRootContainer;
          de && M("unmountComponentAtNode(): The node you're attempting to unmount was rendered by React and is not a top-level container. %s", Ee ? "You may have accidentally passed in a React root node instead of its container." : "Instead, have the parent component update its state and rerender in order to remove this component.");
        }
        return !1;
      }
    }
    xc(eR), x1(tR), Yv(rR), bm(gl), xm(mo), (typeof Map != "function" || // $FlowIssue Flow incorrectly thinks Map has no prototype
    Map.prototype == null || typeof Map.prototype.forEach != "function" || typeof Set != "function" || // $FlowIssue Flow incorrectly thinks Set has no prototype
    Set.prototype == null || typeof Set.prototype.clear != "function" || typeof Set.prototype.forEach != "function") && M("React depends on Map and Set built-in types. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"), pd(TE), hu(Kb, cD, Lf);
    function xR(e, t) {
      var m = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;
      if (!fg(t))
        throw new Error("Target container is not a DOM element.");
      return KD(e, t, null, m);
    }
    function TR(e, t, m, N) {
      return gR(e, t, m, N);
    }
    var Cx = {
      usingClientEntryPoint: !1,
      // Keep in sync with ReactTestUtils.js.
      // This is an array for better minification.
      Events: [Oc, hh, Km, qu, ef, Kb]
    };
    function CR(e, t) {
      return Cx.usingClientEntryPoint || M('You are importing createRoot from "react-dom" which is not supported. You should instead import it from "react-dom/client".'), uR(e, t);
    }
    function AR(e, t, m) {
      return Cx.usingClientEntryPoint || M('You are importing hydrateRoot from "react-dom" which is not supported. You should instead import it from "react-dom/client".'), cR(e, t, m);
    }
    function wR(e) {
      return tA() && M("flushSync was called from inside a lifecycle method. React cannot flush when React is already rendering. Consider moving this call to a scheduler task or micro task."), Lf(e);
    }
    var SR = sR({
      findFiberByHostInstance: _d,
      bundleType: 1,
      version: px,
      rendererPackageName: "react-dom"
    });
    if (!SR && Re && window.top === window.self && (navigator.userAgent.indexOf("Chrome") > -1 && navigator.userAgent.indexOf("Edge") === -1 || navigator.userAgent.indexOf("Firefox") > -1)) {
      var $A = window.location.protocol;
      /^(https?|file):$/.test($A) && console.info("%cDownload the React DevTools for a better development experience: https://reactjs.org/link/react-devtools" + ($A === "file:" ? `
You might need to use a local HTTP server (instead of file://): https://reactjs.org/link/react-devtools-faq` : ""), "font-weight:bold");
    }
    Rl.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = Cx, Rl.createPortal = xR, Rl.createRoot = CR, Rl.findDOMNode = pR, Rl.flushSync = wR, Rl.hydrate = mR, Rl.hydrateRoot = AR, Rl.render = yR, Rl.unmountComponentAtNode = bR, Rl.unstable_batchedUpdates = Kb, Rl.unstable_renderSubtreeIntoContainer = TR, Rl.version = px, typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ < "u" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop == "function" && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());
  }()), Rl;
}
function $S() {
  if (!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ > "u" || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE != "function")) {
    if (true)
      throw new Error("^_^");
    try {
      __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE($S);
    } catch (s) {
      console.error(s);
    }
  }
}
 false ? (0) : Kx.exports = lL();
var JS = Kx.exports;
const Gh = /* @__PURE__ */ lv(JS), cw = {
  disabled: !1
};
var sL =  true ? Nn.oneOfType([Nn.number, Nn.shape({
  enter: Nn.number,
  exit: Nn.number,
  appear: Nn.number
}).isRequired]) : 0;
 true && Nn.oneOfType([Nn.string, Nn.shape({
  enter: Nn.string,
  exit: Nn.string,
  active: Nn.string
}), Nn.shape({
  enter: Nn.string,
  enterDone: Nn.string,
  enterActive: Nn.string,
  exit: Nn.string,
  exitDone: Nn.string,
  exitActive: Nn.string
})]);
const QS = react__WEBPACK_IMPORTED_MODULE_1___default().createContext(null);
var uL = function(o) {
  return o.scrollTop;
}, F0 = "unmounted", Jc = "exited", ru = "entering", Of = "entered", Y0 = "exiting", Gf = /* @__PURE__ */ function(s) {
  nL(o, s);
  function o(z, P) {
    var K;
    K = s.call(this, z, P) || this;
    var M = P, L = M && !M.isMounting ? z.enter : z.appear, r;
    return K.appearStatus = null, z.in ? L ? (r = Jc, K.appearStatus = ru) : r = Of : z.unmountOnExit || z.mountOnEnter ? r = F0 : r = Jc, K.state = {
      status: r
    }, K.nextCallback = null, K;
  }
  o.getDerivedStateFromProps = function(P, K) {
    var M = P.in;
    return M && K.status === F0 ? {
      status: Jc
    } : null;
  };
  var E = o.prototype;
  return E.componentDidMount = function() {
    this.updateStatus(!0, this.appearStatus);
  }, E.componentDidUpdate = function(P) {
    var K = null;
    if (P !== this.props) {
      var M = this.state.status;
      this.props.in ? M !== ru && M !== Of && (K = ru) : (M === ru || M === Of) && (K = Y0);
    }
    this.updateStatus(!1, K);
  }, E.componentWillUnmount = function() {
    this.cancelNextCallback();
  }, E.getTimeouts = function() {
    var P = this.props.timeout, K, M, L;
    return K = M = L = P, P != null && typeof P != "number" && (K = P.exit, M = P.enter, L = P.appear !== void 0 ? P.appear : M), {
      exit: K,
      enter: M,
      appear: L
    };
  }, E.updateStatus = function(P, K) {
    if (P === void 0 && (P = !1), K !== null)
      if (this.cancelNextCallback(), K === ru) {
        if (this.props.unmountOnExit || this.props.mountOnEnter) {
          var M = this.props.nodeRef ? this.props.nodeRef.current : Gh.findDOMNode(this);
          M && uL(M);
        }
        this.performEnter(P);
      } else
        this.performExit();
    else
      this.props.unmountOnExit && this.state.status === Jc && this.setState({
        status: F0
      });
  }, E.performEnter = function(P) {
    var K = this, M = this.props.enter, L = this.context ? this.context.isMounting : P, r = this.props.nodeRef ? [L] : [Gh.findDOMNode(this), L], a = r[0], p = r[1], l = this.getTimeouts(), f = L ? l.appear : l.enter;
    if (!P && !M || cw.disabled) {
      this.safeSetState({
        status: Of
      }, function() {
        K.props.onEntered(a);
      });
      return;
    }
    this.props.onEnter(a, p), this.safeSetState({
      status: ru
    }, function() {
      K.props.onEntering(a, p), K.onTransitionEnd(f, function() {
        K.safeSetState({
          status: Of
        }, function() {
          K.props.onEntered(a, p);
        });
      });
    });
  }, E.performExit = function() {
    var P = this, K = this.props.exit, M = this.getTimeouts(), L = this.props.nodeRef ? void 0 : Gh.findDOMNode(this);
    if (!K || cw.disabled) {
      this.safeSetState({
        status: Jc
      }, function() {
        P.props.onExited(L);
      });
      return;
    }
    this.props.onExit(L), this.safeSetState({
      status: Y0
    }, function() {
      P.props.onExiting(L), P.onTransitionEnd(M.exit, function() {
        P.safeSetState({
          status: Jc
        }, function() {
          P.props.onExited(L);
        });
      });
    });
  }, E.cancelNextCallback = function() {
    this.nextCallback !== null && (this.nextCallback.cancel(), this.nextCallback = null);
  }, E.safeSetState = function(P, K) {
    K = this.setNextCallback(K), this.setState(P, K);
  }, E.setNextCallback = function(P) {
    var K = this, M = !0;
    return this.nextCallback = function(L) {
      M && (M = !1, K.nextCallback = null, P(L));
    }, this.nextCallback.cancel = function() {
      M = !1;
    }, this.nextCallback;
  }, E.onTransitionEnd = function(P, K) {
    this.setNextCallback(K);
    var M = this.props.nodeRef ? this.props.nodeRef.current : Gh.findDOMNode(this), L = P == null && !this.props.addEndListener;
    if (!M || L) {
      setTimeout(this.nextCallback, 0);
      return;
    }
    if (this.props.addEndListener) {
      var r = this.props.nodeRef ? [this.nextCallback] : [M, this.nextCallback], a = r[0], p = r[1];
      this.props.addEndListener(a, p);
    }
    P != null && setTimeout(this.nextCallback, P);
  }, E.render = function() {
    var P = this.state.status;
    if (P === F0)
      return null;
    var K = this.props, M = K.children;
    K.in, K.mountOnEnter, K.unmountOnExit, K.appear, K.enter, K.exit, K.timeout, K.addEndListener, K.onEnter, K.onEntering, K.onEntered, K.onExit, K.onExiting, K.onExited, K.nodeRef;
    var L = w3(K, ["children", "in", "mountOnEnter", "unmountOnExit", "appear", "enter", "exit", "timeout", "addEndListener", "onEnter", "onEntering", "onEntered", "onExit", "onExiting", "onExited", "nodeRef"]);
    return (
      // allows for nested Transitions
      /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1___default().createElement(QS.Provider, {
        value: null
      }, typeof M == "function" ? M(P, L) : react__WEBPACK_IMPORTED_MODULE_1___default().cloneElement(react__WEBPACK_IMPORTED_MODULE_1___default().Children.only(M), L))
    );
  }, o;
}((react__WEBPACK_IMPORTED_MODULE_1___default().Component));
Gf.contextType = QS;
Gf.propTypes =  true ? {
  /**
   * A React reference to DOM element that need to transition:
   * https://stackoverflow.com/a/51127130/4671932
   *
   *   - When `nodeRef` prop is used, `node` is not passed to callback functions
   *      (e.g. `onEnter`) because user already has direct access to the node.
   *   - When changing `key` prop of `Transition` in a `TransitionGroup` a new
   *     `nodeRef` need to be provided to `Transition` with changed `key` prop
   *     (see
   *     [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).
   */
  nodeRef: Nn.shape({
    current: typeof Element > "u" ? Nn.any : function(s, o, E, z, P, K) {
      var M = s[o];
      return Nn.instanceOf(M && "ownerDocument" in M ? M.ownerDocument.defaultView.Element : Element)(s, o, E, z, P, K);
    }
  }),
  /**
   * A `function` child can be used instead of a React element. This function is
   * called with the current transition status (`'entering'`, `'entered'`,
   * `'exiting'`, `'exited'`), which can be used to apply context
   * specific props to a component.
   *
   * ```jsx
   * <Transition in={this.state.in} timeout={150}>
   *   {state => (
   *     <MyComponent className={`fade fade-${state}`} />
   *   )}
   * </Transition>
   * ```
   */
  children: Nn.oneOfType([Nn.func.isRequired, Nn.element.isRequired]).isRequired,
  /**
   * Show the component; triggers the enter or exit states
   */
  in: Nn.bool,
  /**
   * By default the child component is mounted immediately along with
   * the parent `Transition` component. If you want to "lazy mount" the component on the
   * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay
   * mounted, even on "exited", unless you also specify `unmountOnExit`.
   */
  mountOnEnter: Nn.bool,
  /**
   * By default the child component stays mounted after it reaches the `'exited'` state.
   * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.
   */
  unmountOnExit: Nn.bool,
  /**
   * By default the child component does not perform the enter transition when
   * it first mounts, regardless of the value of `in`. If you want this
   * behavior, set both `appear` and `in` to `true`.
   *
   * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop
   * > only adds an additional enter transition. However, in the
   * > `<CSSTransition>` component that first enter transition does result in
   * > additional `.appear-*` classes, that way you can choose to style it
   * > differently.
   */
  appear: Nn.bool,
  /**
   * Enable or disable enter transitions.
   */
  enter: Nn.bool,
  /**
   * Enable or disable exit transitions.
   */
  exit: Nn.bool,
  /**
   * The duration of the transition, in milliseconds.
   * Required unless `addEndListener` is provided.
   *
   * You may specify a single timeout for all transitions:
   *
   * ```jsx
   * timeout={500}
   * ```
   *
   * or individually:
   *
   * ```jsx
   * timeout={{
   *  appear: 500,
   *  enter: 300,
   *  exit: 500,
   * }}
   * ```
   *
   * - `appear` defaults to the value of `enter`
   * - `enter` defaults to `0`
   * - `exit` defaults to `0`
   *
   * @type {number | { enter?: number, exit?: number, appear?: number }}
   */
  timeout: function(o) {
    var E = sL;
    o.addEndListener || (E = E.isRequired);
    for (var z = arguments.length, P = new Array(z > 1 ? z - 1 : 0), K = 1; K < z; K++)
      P[K - 1] = arguments[K];
    return E.apply(void 0, [o].concat(P));
  },
  /**
   * Add a custom transition end trigger. Called with the transitioning
   * DOM node and a `done` callback. Allows for more fine grained transition end
   * logic. Timeouts are still used as a fallback if provided.
   *
   * **Note**: when `nodeRef` prop is passed, `node` is not passed.
   *
   * ```jsx
   * addEndListener={(node, done) => {
   *   // use the css transitionend event to mark the finish of a transition
   *   node.addEventListener('transitionend', done, false);
   * }}
   * ```
   */
  addEndListener: Nn.func,
  /**
   * Callback fired before the "entering" status is applied. An extra parameter
   * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount
   *
   * **Note**: when `nodeRef` prop is passed, `node` is not passed.
   *
   * @type Function(node: HtmlElement, isAppearing: bool) -> void
   */
  onEnter: Nn.func,
  /**
   * Callback fired after the "entering" status is applied. An extra parameter
   * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount
   *
   * **Note**: when `nodeRef` prop is passed, `node` is not passed.
   *
   * @type Function(node: HtmlElement, isAppearing: bool)
   */
  onEntering: Nn.func,
  /**
   * Callback fired after the "entered" status is applied. An extra parameter
   * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount
   *
   * **Note**: when `nodeRef` prop is passed, `node` is not passed.
   *
   * @type Function(node: HtmlElement, isAppearing: bool) -> void
   */
  onEntered: Nn.func,
  /**
   * Callback fired before the "exiting" status is applied.
   *
   * **Note**: when `nodeRef` prop is passed, `node` is not passed.
   *
   * @type Function(node: HtmlElement) -> void
   */
  onExit: Nn.func,
  /**
   * Callback fired after the "exiting" status is applied.
   *
   * **Note**: when `nodeRef` prop is passed, `node` is not passed.
   *
   * @type Function(node: HtmlElement) -> void
   */
  onExiting: Nn.func,
  /**
   * Callback fired after the "exited" status is applied.
   *
   * **Note**: when `nodeRef` prop is passed, `node` is not passed
   *
   * @type Function(node: HtmlElement) -> void
   */
  onExited: Nn.func
} : 0;
function Hh() {
}
Gf.defaultProps = {
  in: !1,
  mountOnEnter: !1,
  unmountOnExit: !1,
  appear: !1,
  enter: !0,
  exit: !0,
  onEnter: Hh,
  onEntering: Hh,
  onEntered: Hh,
  onExit: Hh,
  onExiting: Hh,
  onExited: Hh
};
Gf.UNMOUNTED = F0;
Gf.EXITED = Jc;
Gf.ENTERING = ru;
Gf.ENTERED = Of;
Gf.EXITING = Y0;
function Jg(s) {
  return s && s.ownerDocument || document;
}
function fL(s) {
  var o = Jg(s);
  return o && o.defaultView || window;
}
function cL(s, o) {
  return fL(s).getComputedStyle(s, o);
}
var dL = /([A-Z])/g;
function vL(s) {
  return s.replace(dL, "-$1").toLowerCase();
}
var hL = /^ms-/;
function hg(s) {
  return vL(s).replace(hL, "-ms-");
}
var pL = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;
function mL(s) {
  return !!(s && pL.test(s));
}
function Ff(s, o) {
  var E = "", z = "";
  if (typeof o == "string")
    return s.style.getPropertyValue(hg(o)) || cL(s).getPropertyValue(hg(o));
  Object.keys(o).forEach(function(P) {
    var K = o[P];
    !K && K !== 0 ? s.style.removeProperty(hg(P)) : mL(P) ? z += P + "(" + K + ") " : E += hg(P) + ": " + K + ";";
  }), z && (E += "transform: " + z + ";"), s.style.cssText += ";" + E;
}
const Qg = !!(typeof window < "u" && window.document && window.document.createElement);
var qx = !1, e3 = !1;
try {
  var Ix = {
    get passive() {
      return qx = !0;
    },
    get once() {
      return e3 = qx = !0;
    }
  };
  Qg && (window.addEventListener("test", Ix, Ix), window.removeEventListener("test", Ix, !0));
} catch {
}
function KS(s, o, E, z) {
  if (z && typeof z != "boolean" && !e3) {
    var P = z.once, K = z.capture, M = E;
    !e3 && P && (M = E.__once || function L(r) {
      this.removeEventListener(o, L, K), E.call(this, r);
    }, E.__once = M), s.addEventListener(o, M, qx ? z : K);
  }
  s.addEventListener(o, E, z);
}
function yL(s, o, E, z) {
  var P = z && typeof z != "boolean" ? z.capture : z;
  s.removeEventListener(o, E, P), E.__once && s.removeEventListener(o, E.__once, P);
}
function Kc(s, o, E, z) {
  return KS(s, o, E, z), function() {
    yL(s, o, E, z);
  };
}
function gL(s, o, E, z) {
  if (z === void 0 && (z = !0), s) {
    var P = document.createEvent("HTMLEvents");
    P.initEvent(o, E, z), s.dispatchEvent(P);
  }
}
function bL(s) {
  var o = Ff(s, "transitionDuration") || "", E = o.indexOf("ms") === -1 ? 1e3 : 1;
  return parseFloat(o) * E;
}
function xL(s, o, E) {
  E === void 0 && (E = 5);
  var z = !1, P = setTimeout(function() {
    z || gL(s, "transitionend", !0);
  }, o + E), K = Kc(s, "transitionend", function() {
    z = !0;
  }, {
    once: !0
  });
  return function() {
    clearTimeout(P), K();
  };
}
function TL(s, o, E, z) {
  E == null && (E = bL(s) || 0);
  var P = xL(s, E, z), K = Kc(s, "transitionend", o);
  return function() {
    P(), K();
  };
}
function dw(s, o) {
  const E = Ff(s, o) || "", z = E.indexOf("ms") === -1 ? 1e3 : 1;
  return parseFloat(E) * z;
}
function S3(s, o) {
  const E = dw(s, "transitionDuration"), z = dw(s, "transitionDelay"), P = TL(s, (K) => {
    K.target === s && (P(), o(K));
  }, E + z);
}
function qS(s) {
  s.offsetHeight;
}
function CL(s) {
  return s && "setState" in s ? Gh.findDOMNode(s) : s ?? null;
}
const M3 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1___default().forwardRef(({
  onEnter: s,
  onEntering: o,
  onEntered: E,
  onExit: z,
  onExiting: P,
  onExited: K,
  addEndListener: M,
  children: L,
  childRef: r,
  ...a
}, p) => {
  const l = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null), f = ed(l, r), u = (w) => {
    f(CL(w));
  }, c = (w) => (S) => {
    w && l.current && w(l.current, S);
  }, d = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(c(s), [s]), h = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(c(o), [o]), i = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(c(E), [E]), b = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(c(z), [z]), x = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(c(P), [P]), D = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(c(K), [K]), C = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(c(M), [M]);
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Gf, {
    ref: p,
    ...a,
    onEnter: d,
    onEntered: i,
    onEntering: h,
    onExit: b,
    onExited: D,
    onExiting: x,
    addEndListener: C,
    nodeRef: l,
    children: typeof L == "function" ? (w, S) => (
      // TODO: Types for RTG missing innerProps, so need to cast.
      L(w, {
        ...S,
        ref: u
      })
    ) : /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1___default().cloneElement(L, {
      ref: u
    })
  });
}), AL = {
  [ru]: "show",
  [Of]: "show"
}, jh = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  className: s,
  children: o,
  transitionClasses: E = {},
  onEnter: z,
  ...P
}, K) => {
  const M = {
    in: !1,
    timeout: 300,
    mountOnEnter: !1,
    unmountOnExit: !1,
    appear: !1,
    ...P
  }, L = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((r, a) => {
    qS(r), z == null || z(r, a);
  }, [z]);
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(M3, {
    ref: K,
    addEndListener: S3,
    ...M,
    onEnter: L,
    childRef: o.ref,
    children: (r, a) => /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.cloneElement(o, {
      ...a,
      className: bn("fade", s, o.props.className, AL[r], E[r])
    })
  });
});
jh.displayName = "Fade";
function e5(s) {
  return typeof s == "boolean" ? s ? jh : A3 : s;
}
const t5 = ({
  transition: s,
  ...o
}) => /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(jS, {
  ...o,
  transition: e5(s)
});
t5.displayName = "TabContainer";
const r5 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  className: s,
  bsPrefix: o,
  as: E = "div",
  ...z
}, P) => (o = kn(o, "tab-content"), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(E, {
  ref: P,
  className: bn(s, o),
  ...z
})));
r5.displayName = "TabContent";
const n5 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  bsPrefix: s,
  transition: o,
  ...E
}, z) => {
  const [{
    className: P,
    // Need to define the default "as" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595
    as: K = "div",
    ...M
  }, {
    isActive: L,
    onEnter: r,
    onEntering: a,
    onEntered: p,
    onExit: l,
    onExiting: f,
    onExited: u,
    mountOnEnter: c,
    unmountOnExit: d,
    transition: h = jh
  }] = YS({
    ...E,
    transition: e5(o)
  }), i = kn(s, "tab-pane");
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ep.Provider, {
    value: null,
    children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Uu.Provider, {
      value: null,
      children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(h, {
        in: L,
        onEnter: r,
        onEntering: a,
        onEntered: p,
        onExit: l,
        onExiting: f,
        onExited: u,
        mountOnEnter: c,
        unmountOnExit: d,
        children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(K, {
          ...M,
          ref: z,
          className: bn(P, i, L && "active")
        })
      })
    })
  });
});
n5.displayName = "TabPane";
const wL = {
  eventKey: Nn.oneOfType([Nn.string, Nn.number]),
  /**
   * Content for the tab title.
   */
  title: Nn.node.isRequired,
  /**
   * The disabled state of the tab.
   */
  disabled: Nn.bool,
  /**
   * Class to pass to the underlying nav link.
   */
  tabClassName: Nn.string,
  /**
   * Object containing attributes to pass to underlying nav link.
   */
  tabAttrs: Nn.object
}, a5 = () => {
  throw new Error("ReactBootstrap: The `Tab` component is not meant to be rendered! It's an abstract component that is only valid as a direct Child of the `Tabs` Component. For custom tabs components use TabPane and TabsContainer directly");
};
a5.propTypes = wL;
const z0 = Object.assign(a5, {
  Container: t5,
  Content: r5,
  Pane: n5
});
class tm {
  constructor() {
    this.listeners = /* @__PURE__ */ new Set(), this.subscribe = this.subscribe.bind(this);
  }
  subscribe(o) {
    const E = {
      listener: o
    };
    return this.listeners.add(E), this.onSubscribe(), () => {
      this.listeners.delete(E), this.onUnsubscribe();
    };
  }
  hasListeners() {
    return this.listeners.size > 0;
  }
  onSubscribe() {
  }
  onUnsubscribe() {
  }
}
const X0 = typeof window > "u" || "Deno" in window;
function As() {
}
function SL(s, o) {
  return typeof s == "function" ? s(o) : s;
}
function t3(s) {
  return typeof s == "number" && s >= 0 && s !== 1 / 0;
}
function i5(s, o) {
  return Math.max(s + (o || 0) - Date.now(), 0);
}
function _0(s, o, E) {
  return Kg(s) ? typeof o == "function" ? {
    ...E,
    queryKey: s,
    queryFn: o
  } : {
    ...o,
    queryKey: s
  } : s;
}
function Qc(s, o, E) {
  return Kg(s) ? [{
    ...o,
    queryKey: s
  }, E] : [s || {}, o];
}
function vw(s, o) {
  const {
    type: E = "all",
    exact: z,
    fetchStatus: P,
    predicate: K,
    queryKey: M,
    stale: L
  } = s;
  if (Kg(M)) {
    if (z) {
      if (o.queryHash !== E3(M, o.options))
        return !1;
    } else if (!Uh(o.queryKey, M))
      return !1;
  }
  if (E !== "all") {
    const r = o.isActive();
    if (E === "active" && !r || E === "inactive" && r)
      return !1;
  }
  return !(typeof L == "boolean" && o.isStale() !== L || typeof P < "u" && P !== o.state.fetchStatus || K && !K(o));
}
function hw(s, o) {
  const {
    exact: E,
    fetching: z,
    predicate: P,
    mutationKey: K
  } = s;
  if (Kg(K)) {
    if (!o.options.mutationKey)
      return !1;
    if (E) {
      if (ev(o.options.mutationKey) !== ev(K))
        return !1;
    } else if (!Uh(o.options.mutationKey, K))
      return !1;
  }
  return !(typeof z == "boolean" && o.state.status === "loading" !== z || P && !P(o));
}
function E3(s, o) {
  return ((o == null ? void 0 : o.queryKeyHashFn) || ev)(s);
}
function ev(s) {
  return JSON.stringify(s, (o, E) => n3(E) ? Object.keys(E).sort().reduce((z, P) => (z[P] = E[P], z), {}) : E);
}
function Uh(s, o) {
  return o5(s, o);
}
function o5(s, o) {
  return s === o ? !0 : typeof s != typeof o ? !1 : s && o && typeof s == "object" && typeof o == "object" ? !Object.keys(o).some((E) => !o5(s[E], o[E])) : !1;
}
function l5(s, o) {
  if (s === o)
    return s;
  const E = pw(s) && pw(o);
  if (E || n3(s) && n3(o)) {
    const z = E ? s.length : Object.keys(s).length, P = E ? o : Object.keys(o), K = P.length, M = E ? [] : {};
    let L = 0;
    for (let r = 0; r < K; r++) {
      const a = E ? r : P[r];
      M[a] = l5(s[a], o[a]), M[a] === s[a] && L++;
    }
    return z === K && L === z ? s : M;
  }
  return o;
}
function r3(s, o) {
  if (s && !o || o && !s)
    return !1;
  for (const E in s)
    if (s[E] !== o[E])
      return !1;
  return !0;
}
function pw(s) {
  return Array.isArray(s) && s.length === Object.keys(s).length;
}
function n3(s) {
  if (!mw(s))
    return !1;
  const o = s.constructor;
  if (typeof o > "u")
    return !0;
  const E = o.prototype;
  return !(!mw(E) || !E.hasOwnProperty("isPrototypeOf"));
}
function mw(s) {
  return Object.prototype.toString.call(s) === "[object Object]";
}
function Kg(s) {
  return Array.isArray(s);
}
function s5(s) {
  return new Promise((o) => {
    setTimeout(o, s);
  });
}
function yw(s) {
  s5(0).then(s);
}
function ML() {
  if (typeof AbortController == "function")
    return new AbortController();
}
function a3(s, o, E) {
  return E.isDataEqual != null && E.isDataEqual(s, o) ? s : typeof E.structuralSharing == "function" ? E.structuralSharing(s, o) : E.structuralSharing !== !1 ? l5(s, o) : o;
}
class EL extends tm {
  constructor() {
    super(), this.setup = (o) => {
      if (!X0 && window.addEventListener) {
        const E = () => o();
        return window.addEventListener("visibilitychange", E, !1), window.addEventListener("focus", E, !1), () => {
          window.removeEventListener("visibilitychange", E), window.removeEventListener("focus", E);
        };
      }
    };
  }
  onSubscribe() {
    this.cleanup || this.setEventListener(this.setup);
  }
  onUnsubscribe() {
    if (!this.hasListeners()) {
      var o;
      (o = this.cleanup) == null || o.call(this), this.cleanup = void 0;
    }
  }
  setEventListener(o) {
    var E;
    this.setup = o, (E = this.cleanup) == null || E.call(this), this.cleanup = o((z) => {
      typeof z == "boolean" ? this.setFocused(z) : this.onFocus();
    });
  }
  setFocused(o) {
    this.focused !== o && (this.focused = o, this.onFocus());
  }
  onFocus() {
    this.listeners.forEach(({
      listener: o
    }) => {
      o();
    });
  }
  isFocused() {
    return typeof this.focused == "boolean" ? this.focused : typeof document > "u" ? !0 : [void 0, "visible", "prerender"].includes(document.visibilityState);
  }
}
const kg = new EL(), gw = ["online", "offline"];
class DL extends tm {
  constructor() {
    super(), this.setup = (o) => {
      if (!X0 && window.addEventListener) {
        const E = () => o();
        return gw.forEach((z) => {
          window.addEventListener(z, E, !1);
        }), () => {
          gw.forEach((z) => {
            window.removeEventListener(z, E);
          });
        };
      }
    };
  }
  onSubscribe() {
    this.cleanup || this.setEventListener(this.setup);
  }
  onUnsubscribe() {
    if (!this.hasListeners()) {
      var o;
      (o = this.cleanup) == null || o.call(this), this.cleanup = void 0;
    }
  }
  setEventListener(o) {
    var E;
    this.setup = o, (E = this.cleanup) == null || E.call(this), this.cleanup = o((z) => {
      typeof z == "boolean" ? this.setOnline(z) : this.onOnline();
    });
  }
  setOnline(o) {
    this.online !== o && (this.online = o, this.onOnline());
  }
  onOnline() {
    this.listeners.forEach(({
      listener: o
    }) => {
      o();
    });
  }
  isOnline() {
    return typeof this.online == "boolean" ? this.online : typeof navigator > "u" || typeof navigator.onLine > "u" ? !0 : navigator.onLine;
  }
}
const Ig = new DL();
function RL(s) {
  return Math.min(1e3 * 2 ** s, 3e4);
}
function qg(s) {
  return (s ?? "online") === "online" ? Ig.isOnline() : !0;
}
class u5 {
  constructor(o) {
    this.revert = o == null ? void 0 : o.revert, this.silent = o == null ? void 0 : o.silent;
  }
}
function Tg(s) {
  return s instanceof u5;
}
function f5(s) {
  let o = !1, E = 0, z = !1, P, K, M;
  const L = new Promise((h, i) => {
    K = h, M = i;
  }), r = (h) => {
    z || (u(new u5(h)), s.abort == null || s.abort());
  }, a = () => {
    o = !0;
  }, p = () => {
    o = !1;
  }, l = () => !kg.isFocused() || s.networkMode !== "always" && !Ig.isOnline(), f = (h) => {
    z || (z = !0, s.onSuccess == null || s.onSuccess(h), P == null || P(), K(h));
  }, u = (h) => {
    z || (z = !0, s.onError == null || s.onError(h), P == null || P(), M(h));
  }, c = () => new Promise((h) => {
    P = (i) => {
      const b = z || !l();
      return b && h(i), b;
    }, s.onPause == null || s.onPause();
  }).then(() => {
    P = void 0, z || s.onContinue == null || s.onContinue();
  }), d = () => {
    if (z)
      return;
    let h;
    try {
      h = s.fn();
    } catch (i) {
      h = Promise.reject(i);
    }
    Promise.resolve(h).then(f).catch((i) => {
      var b, x;
      if (z)
        return;
      const D = (b = s.retry) != null ? b : 3, C = (x = s.retryDelay) != null ? x : RL, w = typeof C == "function" ? C(E, i) : C, S = D === !0 || typeof D == "number" && E < D || typeof D == "function" && D(E, i);
      if (o || !S) {
        u(i);
        return;
      }
      E++, s.onFail == null || s.onFail(E, i), s5(w).then(() => {
        if (l())
          return c();
      }).then(() => {
        o ? u(i) : d();
      });
    });
  };
  return qg(s.networkMode) ? d() : c().then(d), {
    promise: L,
    cancel: r,
    continue: () => (P == null ? void 0 : P()) ? L : Promise.resolve(),
    cancelRetry: a,
    continueRetry: p
  };
}
const D3 = console;
function LL() {
  let s = [], o = 0, E = (p) => {
    p();
  }, z = (p) => {
    p();
  };
  const P = (p) => {
    let l;
    o++;
    try {
      l = p();
    } finally {
      o--, o || L();
    }
    return l;
  }, K = (p) => {
    o ? s.push(p) : yw(() => {
      E(p);
    });
  }, M = (p) => (...l) => {
    K(() => {
      p(...l);
    });
  }, L = () => {
    const p = s;
    s = [], p.length && yw(() => {
      z(() => {
        p.forEach((l) => {
          E(l);
        });
      });
    });
  };
  return {
    batch: P,
    batchCalls: M,
    schedule: K,
    setNotifyFunction: (p) => {
      E = p;
    },
    setBatchNotifyFunction: (p) => {
      z = p;
    }
  };
}
const Yi = LL();
class c5 {
  destroy() {
    this.clearGcTimeout();
  }
  scheduleGc() {
    this.clearGcTimeout(), t3(this.cacheTime) && (this.gcTimeout = setTimeout(() => {
      this.optionalRemove();
    }, this.cacheTime));
  }
  updateCacheTime(o) {
    this.cacheTime = Math.max(this.cacheTime || 0, o ?? (X0 ? 1 / 0 : 5 * 60 * 1e3));
  }
  clearGcTimeout() {
    this.gcTimeout && (clearTimeout(this.gcTimeout), this.gcTimeout = void 0);
  }
}
class kL extends c5 {
  constructor(o) {
    super(), this.abortSignalConsumed = !1, this.defaultOptions = o.defaultOptions, this.setOptions(o.options), this.observers = [], this.cache = o.cache, this.logger = o.logger || D3, this.queryKey = o.queryKey, this.queryHash = o.queryHash, this.initialState = o.state || IL(this.options), this.state = this.initialState, this.scheduleGc();
  }
  get meta() {
    return this.options.meta;
  }
  setOptions(o) {
    this.options = {
      ...this.defaultOptions,
      ...o
    }, this.updateCacheTime(this.options.cacheTime);
  }
  optionalRemove() {
    !this.observers.length && this.state.fetchStatus === "idle" && this.cache.remove(this);
  }
  setData(o, E) {
    const z = a3(this.state.data, o, this.options);
    return this.dispatch({
      data: z,
      type: "success",
      dataUpdatedAt: E == null ? void 0 : E.updatedAt,
      manual: E == null ? void 0 : E.manual
    }), z;
  }
  setState(o, E) {
    this.dispatch({
      type: "setState",
      state: o,
      setStateOptions: E
    });
  }
  cancel(o) {
    var E;
    const z = this.promise;
    return (E = this.retryer) == null || E.cancel(o), z ? z.then(As).catch(As) : Promise.resolve();
  }
  destroy() {
    super.destroy(), this.cancel({
      silent: !0
    });
  }
  reset() {
    this.destroy(), this.setState(this.initialState);
  }
  isActive() {
    return this.observers.some((o) => o.options.enabled !== !1);
  }
  isDisabled() {
    return this.getObserversCount() > 0 && !this.isActive();
  }
  isStale() {
    return this.state.isInvalidated || !this.state.dataUpdatedAt || this.observers.some((o) => o.getCurrentResult().isStale);
  }
  isStaleByTime(o = 0) {
    return this.state.isInvalidated || !this.state.dataUpdatedAt || !i5(this.state.dataUpdatedAt, o);
  }
  onFocus() {
    var o;
    const E = this.observers.find((z) => z.shouldFetchOnWindowFocus());
    E && E.refetch({
      cancelRefetch: !1
    }), (o = this.retryer) == null || o.continue();
  }
  onOnline() {
    var o;
    const E = this.observers.find((z) => z.shouldFetchOnReconnect());
    E && E.refetch({
      cancelRefetch: !1
    }), (o = this.retryer) == null || o.continue();
  }
  addObserver(o) {
    this.observers.includes(o) || (this.observers.push(o), this.clearGcTimeout(), this.cache.notify({
      type: "observerAdded",
      query: this,
      observer: o
    }));
  }
  removeObserver(o) {
    this.observers.includes(o) && (this.observers = this.observers.filter((E) => E !== o), this.observers.length || (this.retryer && (this.abortSignalConsumed ? this.retryer.cancel({
      revert: !0
    }) : this.retryer.cancelRetry()), this.scheduleGc()), this.cache.notify({
      type: "observerRemoved",
      query: this,
      observer: o
    }));
  }
  getObserversCount() {
    return this.observers.length;
  }
  invalidate() {
    this.state.isInvalidated || this.dispatch({
      type: "invalidate"
    });
  }
  fetch(o, E) {
    var z, P;
    if (this.state.fetchStatus !== "idle") {
      if (this.state.dataUpdatedAt && E != null && E.cancelRefetch)
        this.cancel({
          silent: !0
        });
      else if (this.promise) {
        var K;
        return (K = this.retryer) == null || K.continueRetry(), this.promise;
      }
    }
    if (o && this.setOptions(o), !this.options.queryFn) {
      const u = this.observers.find((c) => c.options.queryFn);
      u && this.setOptions(u.options);
    }
     true && (Array.isArray(this.options.queryKey) || this.logger.error("As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']"));
    const M = ML(), L = {
      queryKey: this.queryKey,
      pageParam: void 0,
      meta: this.meta
    }, r = (u) => {
      Object.defineProperty(u, "signal", {
        enumerable: !0,
        get: () => {
          if (M)
            return this.abortSignalConsumed = !0, M.signal;
        }
      });
    };
    r(L);
    const a = () => this.options.queryFn ? (this.abortSignalConsumed = !1, this.options.queryFn(L)) : Promise.reject("Missing queryFn for queryKey '" + this.options.queryHash + "'"), p = {
      fetchOptions: E,
      options: this.options,
      queryKey: this.queryKey,
      state: this.state,
      fetchFn: a
    };
    if (r(p), (z = this.options.behavior) == null || z.onFetch(p), this.revertState = this.state, this.state.fetchStatus === "idle" || this.state.fetchMeta !== ((P = p.fetchOptions) == null ? void 0 : P.meta)) {
      var l;
      this.dispatch({
        type: "fetch",
        meta: (l = p.fetchOptions) == null ? void 0 : l.meta
      });
    }
    const f = (u) => {
      if (Tg(u) && u.silent || this.dispatch({
        type: "error",
        error: u
      }), !Tg(u)) {
        var c, d, h, i;
        (c = (d = this.cache.config).onError) == null || c.call(d, u, this), (h = (i = this.cache.config).onSettled) == null || h.call(i, this.state.data, u, this),  true && this.logger.error(u);
      }
      this.isFetchingOptimistic || this.scheduleGc(), this.isFetchingOptimistic = !1;
    };
    return this.retryer = f5({
      fn: p.fetchFn,
      abort: M == null ? void 0 : M.abort.bind(M),
      onSuccess: (u) => {
        var c, d, h, i;
        if (typeof u > "u") {
           true && this.logger.error("Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: " + this.queryHash), f(new Error(this.queryHash + " data is undefined"));
          return;
        }
        this.setData(u), (c = (d = this.cache.config).onSuccess) == null || c.call(d, u, this), (h = (i = this.cache.config).onSettled) == null || h.call(i, u, this.state.error, this), this.isFetchingOptimistic || this.scheduleGc(), this.isFetchingOptimistic = !1;
      },
      onError: f,
      onFail: (u, c) => {
        this.dispatch({
          type: "failed",
          failureCount: u,
          error: c
        });
      },
      onPause: () => {
        this.dispatch({
          type: "pause"
        });
      },
      onContinue: () => {
        this.dispatch({
          type: "continue"
        });
      },
      retry: p.options.retry,
      retryDelay: p.options.retryDelay,
      networkMode: p.options.networkMode
    }), this.promise = this.retryer.promise, this.promise;
  }
  dispatch(o) {
    const E = (z) => {
      var P, K;
      switch (o.type) {
        case "failed":
          return {
            ...z,
            fetchFailureCount: o.failureCount,
            fetchFailureReason: o.error
          };
        case "pause":
          return {
            ...z,
            fetchStatus: "paused"
          };
        case "continue":
          return {
            ...z,
            fetchStatus: "fetching"
          };
        case "fetch":
          return {
            ...z,
            fetchFailureCount: 0,
            fetchFailureReason: null,
            fetchMeta: (P = o.meta) != null ? P : null,
            fetchStatus: qg(this.options.networkMode) ? "fetching" : "paused",
            ...!z.dataUpdatedAt && {
              error: null,
              status: "loading"
            }
          };
        case "success":
          return {
            ...z,
            data: o.data,
            dataUpdateCount: z.dataUpdateCount + 1,
            dataUpdatedAt: (K = o.dataUpdatedAt) != null ? K : Date.now(),
            error: null,
            isInvalidated: !1,
            status: "success",
            ...!o.manual && {
              fetchStatus: "idle",
              fetchFailureCount: 0,
              fetchFailureReason: null
            }
          };
        case "error":
          const M = o.error;
          return Tg(M) && M.revert && this.revertState ? {
            ...this.revertState,
            fetchStatus: "idle"
          } : {
            ...z,
            error: M,
            errorUpdateCount: z.errorUpdateCount + 1,
            errorUpdatedAt: Date.now(),
            fetchFailureCount: z.fetchFailureCount + 1,
            fetchFailureReason: M,
            fetchStatus: "idle",
            status: "error"
          };
        case "invalidate":
          return {
            ...z,
            isInvalidated: !0
          };
        case "setState":
          return {
            ...z,
            ...o.state
          };
      }
    };
    this.state = E(this.state), Yi.batch(() => {
      this.observers.forEach((z) => {
        z.onQueryUpdate(o);
      }), this.cache.notify({
        query: this,
        type: "updated",
        action: o
      });
    });
  }
}
function IL(s) {
  const o = typeof s.initialData == "function" ? s.initialData() : s.initialData, E = typeof o < "u", z = E ? typeof s.initialDataUpdatedAt == "function" ? s.initialDataUpdatedAt() : s.initialDataUpdatedAt : 0;
  return {
    data: o,
    dataUpdateCount: 0,
    dataUpdatedAt: E ? z ?? Date.now() : 0,
    error: null,
    errorUpdateCount: 0,
    errorUpdatedAt: 0,
    fetchFailureCount: 0,
    fetchFailureReason: null,
    fetchMeta: null,
    isInvalidated: !1,
    status: E ? "success" : "loading",
    fetchStatus: "idle"
  };
}
class NL extends tm {
  constructor(o) {
    super(), this.config = o || {}, this.queries = [], this.queriesMap = {};
  }
  build(o, E, z) {
    var P;
    const K = E.queryKey, M = (P = E.queryHash) != null ? P : E3(K, E);
    let L = this.get(M);
    return L || (L = new kL({
      cache: this,
      logger: o.getLogger(),
      queryKey: K,
      queryHash: M,
      options: o.defaultQueryOptions(E),
      state: z,
      defaultOptions: o.getQueryDefaults(K)
    }), this.add(L)), L;
  }
  add(o) {
    this.queriesMap[o.queryHash] || (this.queriesMap[o.queryHash] = o, this.queries.push(o), this.notify({
      type: "added",
      query: o
    }));
  }
  remove(o) {
    const E = this.queriesMap[o.queryHash];
    E && (o.destroy(), this.queries = this.queries.filter((z) => z !== o), E === o && delete this.queriesMap[o.queryHash], this.notify({
      type: "removed",
      query: o
    }));
  }
  clear() {
    Yi.batch(() => {
      this.queries.forEach((o) => {
        this.remove(o);
      });
    });
  }
  get(o) {
    return this.queriesMap[o];
  }
  getAll() {
    return this.queries;
  }
  find(o, E) {
    const [z] = Qc(o, E);
    return typeof z.exact > "u" && (z.exact = !0), this.queries.find((P) => vw(z, P));
  }
  findAll(o, E) {
    const [z] = Qc(o, E);
    return Object.keys(z).length > 0 ? this.queries.filter((P) => vw(z, P)) : this.queries;
  }
  notify(o) {
    Yi.batch(() => {
      this.listeners.forEach(({
        listener: E
      }) => {
        E(o);
      });
    });
  }
  onFocus() {
    Yi.batch(() => {
      this.queries.forEach((o) => {
        o.onFocus();
      });
    });
  }
  onOnline() {
    Yi.batch(() => {
      this.queries.forEach((o) => {
        o.onOnline();
      });
    });
  }
}
class OL extends c5 {
  constructor(o) {
    super(), this.defaultOptions = o.defaultOptions, this.mutationId = o.mutationId, this.mutationCache = o.mutationCache, this.logger = o.logger || D3, this.observers = [], this.state = o.state || PL(), this.setOptions(o.options), this.scheduleGc();
  }
  setOptions(o) {
    this.options = {
      ...this.defaultOptions,
      ...o
    }, this.updateCacheTime(this.options.cacheTime);
  }
  get meta() {
    return this.options.meta;
  }
  setState(o) {
    this.dispatch({
      type: "setState",
      state: o
    });
  }
  addObserver(o) {
    this.observers.includes(o) || (this.observers.push(o), this.clearGcTimeout(), this.mutationCache.notify({
      type: "observerAdded",
      mutation: this,
      observer: o
    }));
  }
  removeObserver(o) {
    this.observers = this.observers.filter((E) => E !== o), this.scheduleGc(), this.mutationCache.notify({
      type: "observerRemoved",
      mutation: this,
      observer: o
    });
  }
  optionalRemove() {
    this.observers.length || (this.state.status === "loading" ? this.scheduleGc() : this.mutationCache.remove(this));
  }
  continue() {
    var o, E;
    return (o = (E = this.retryer) == null ? void 0 : E.continue()) != null ? o : this.execute();
  }
  async execute() {
    const o = () => {
      var S;
      return this.retryer = f5({
        fn: () => this.options.mutationFn ? this.options.mutationFn(this.state.variables) : Promise.reject("No mutationFn found"),
        onFail: (T, k) => {
          this.dispatch({
            type: "failed",
            failureCount: T,
            error: k
          });
        },
        onPause: () => {
          this.dispatch({
            type: "pause"
          });
        },
        onContinue: () => {
          this.dispatch({
            type: "continue"
          });
        },
        retry: (S = this.options.retry) != null ? S : 0,
        retryDelay: this.options.retryDelay,
        networkMode: this.options.networkMode
      }), this.retryer.promise;
    }, E = this.state.status === "loading";
    try {
      var z, P, K, M, L, r, a, p;
      if (!E) {
        var l, f, u, c;
        this.dispatch({
          type: "loading",
          variables: this.options.variables
        }), await ((l = (f = this.mutationCache.config).onMutate) == null ? void 0 : l.call(f, this.state.variables, this));
        const T = await ((u = (c = this.options).onMutate) == null ? void 0 : u.call(c, this.state.variables));
        T !== this.state.context && this.dispatch({
          type: "loading",
          context: T,
          variables: this.state.variables
        });
      }
      const S = await o();
      return await ((z = (P = this.mutationCache.config).onSuccess) == null ? void 0 : z.call(P, S, this.state.variables, this.state.context, this)), await ((K = (M = this.options).onSuccess) == null ? void 0 : K.call(M, S, this.state.variables, this.state.context)), await ((L = (r = this.mutationCache.config).onSettled) == null ? void 0 : L.call(r, S, null, this.state.variables, this.state.context, this)), await ((a = (p = this.options).onSettled) == null ? void 0 : a.call(p, S, null, this.state.variables, this.state.context)), this.dispatch({
        type: "success",
        data: S
      }), S;
    } catch (S) {
      try {
        var d, h, i, b, x, D, C, w;
        throw await ((d = (h = this.mutationCache.config).onError) == null ? void 0 : d.call(h, S, this.state.variables, this.state.context, this)),  true && this.logger.error(S), await ((i = (b = this.options).onError) == null ? void 0 : i.call(b, S, this.state.variables, this.state.context)), await ((x = (D = this.mutationCache.config).onSettled) == null ? void 0 : x.call(D, void 0, S, this.state.variables, this.state.context, this)), await ((C = (w = this.options).onSettled) == null ? void 0 : C.call(w, void 0, S, this.state.variables, this.state.context)), S;
      } finally {
        this.dispatch({
          type: "error",
          error: S
        });
      }
    }
  }
  dispatch(o) {
    const E = (z) => {
      switch (o.type) {
        case "failed":
          return {
            ...z,
            failureCount: o.failureCount,
            failureReason: o.error
          };
        case "pause":
          return {
            ...z,
            isPaused: !0
          };
        case "continue":
          return {
            ...z,
            isPaused: !1
          };
        case "loading":
          return {
            ...z,
            context: o.context,
            data: void 0,
            failureCount: 0,
            failureReason: null,
            error: null,
            isPaused: !qg(this.options.networkMode),
            status: "loading",
            variables: o.variables
          };
        case "success":
          return {
            ...z,
            data: o.data,
            failureCount: 0,
            failureReason: null,
            error: null,
            status: "success",
            isPaused: !1
          };
        case "error":
          return {
            ...z,
            data: void 0,
            error: o.error,
            failureCount: z.failureCount + 1,
            failureReason: o.error,
            isPaused: !1,
            status: "error"
          };
        case "setState":
          return {
            ...z,
            ...o.state
          };
      }
    };
    this.state = E(this.state), Yi.batch(() => {
      this.observers.forEach((z) => {
        z.onMutationUpdate(o);
      }), this.mutationCache.notify({
        mutation: this,
        type: "updated",
        action: o
      });
    });
  }
}
function PL() {
  return {
    context: void 0,
    data: void 0,
    error: null,
    failureCount: 0,
    failureReason: null,
    isPaused: !1,
    status: "idle",
    variables: void 0
  };
}
class FL extends tm {
  constructor(o) {
    super(), this.config = o || {}, this.mutations = [], this.mutationId = 0;
  }
  build(o, E, z) {
    const P = new OL({
      mutationCache: this,
      logger: o.getLogger(),
      mutationId: ++this.mutationId,
      options: o.defaultMutationOptions(E),
      state: z,
      defaultOptions: E.mutationKey ? o.getMutationDefaults(E.mutationKey) : void 0
    });
    return this.add(P), P;
  }
  add(o) {
    this.mutations.push(o), this.notify({
      type: "added",
      mutation: o
    });
  }
  remove(o) {
    this.mutations = this.mutations.filter((E) => E !== o), this.notify({
      type: "removed",
      mutation: o
    });
  }
  clear() {
    Yi.batch(() => {
      this.mutations.forEach((o) => {
        this.remove(o);
      });
    });
  }
  getAll() {
    return this.mutations;
  }
  find(o) {
    return typeof o.exact > "u" && (o.exact = !0), this.mutations.find((E) => hw(o, E));
  }
  findAll(o) {
    return this.mutations.filter((E) => hw(o, E));
  }
  notify(o) {
    Yi.batch(() => {
      this.listeners.forEach(({
        listener: E
      }) => {
        E(o);
      });
    });
  }
  resumePausedMutations() {
    var o;
    return this.resuming = ((o = this.resuming) != null ? o : Promise.resolve()).then(() => {
      const E = this.mutations.filter((z) => z.state.isPaused);
      return Yi.batch(() => E.reduce((z, P) => z.then(() => P.continue().catch(As)), Promise.resolve()));
    }).then(() => {
      this.resuming = void 0;
    }), this.resuming;
  }
}
function zL() {
  return {
    onFetch: (s) => {
      s.fetchFn = () => {
        var o, E, z, P, K, M;
        const L = (o = s.fetchOptions) == null || (E = o.meta) == null ? void 0 : E.refetchPage, r = (z = s.fetchOptions) == null || (P = z.meta) == null ? void 0 : P.fetchMore, a = r == null ? void 0 : r.pageParam, p = (r == null ? void 0 : r.direction) === "forward", l = (r == null ? void 0 : r.direction) === "backward", f = ((K = s.state.data) == null ? void 0 : K.pages) || [], u = ((M = s.state.data) == null ? void 0 : M.pageParams) || [];
        let c = u, d = !1;
        const h = (w) => {
          Object.defineProperty(w, "signal", {
            enumerable: !0,
            get: () => {
              var S;
              if ((S = s.signal) != null && S.aborted)
                d = !0;
              else {
                var T;
                (T = s.signal) == null || T.addEventListener("abort", () => {
                  d = !0;
                });
              }
              return s.signal;
            }
          });
        }, i = s.options.queryFn || (() => Promise.reject("Missing queryFn for queryKey '" + s.options.queryHash + "'")), b = (w, S, T, k) => (c = k ? [S, ...c] : [...c, S], k ? [T, ...w] : [...w, T]), x = (w, S, T, k) => {
          if (d)
            return Promise.reject("Cancelled");
          if (typeof T > "u" && !S && w.length)
            return Promise.resolve(w);
          const A = {
            queryKey: s.queryKey,
            pageParam: T,
            meta: s.options.meta
          };
          h(A);
          const R = i(A);
          return Promise.resolve(R).then((I) => b(w, T, I, k));
        };
        let D;
        if (!f.length)
          D = x([]);
        else if (p) {
          const w = typeof a < "u", S = w ? a : bw(s.options, f);
          D = x(f, w, S);
        } else if (l) {
          const w = typeof a < "u", S = w ? a : _L(s.options, f);
          D = x(f, w, S, !0);
        } else {
          c = [];
          const w = typeof s.options.getNextPageParam > "u";
          D = (L && f[0] ? L(f[0], 0, f) : !0) ? x([], w, u[0]) : Promise.resolve(b([], u[0], f[0]));
          for (let T = 1; T < f.length; T++)
            D = D.then((k) => {
              if (L && f[T] ? L(f[T], T, f) : !0) {
                const R = w ? u[T] : bw(s.options, k);
                return x(k, w, R);
              }
              return Promise.resolve(b(k, u[T], f[T]));
            });
        }
        return D.then((w) => ({
          pages: w,
          pageParams: c
        }));
      };
    }
  };
}
function bw(s, o) {
  return s.getNextPageParam == null ? void 0 : s.getNextPageParam(o[o.length - 1], o);
}
function _L(s, o) {
  return s.getPreviousPageParam == null ? void 0 : s.getPreviousPageParam(o[0], o);
}
class HL {
  constructor(o = {}) {
    this.queryCache = o.queryCache || new NL(), this.mutationCache = o.mutationCache || new FL(), this.logger = o.logger || D3, this.defaultOptions = o.defaultOptions || {}, this.queryDefaults = [], this.mutationDefaults = [], this.mountCount = 0,  true && o.logger && this.logger.error("Passing a custom logger has been deprecated and will be removed in the next major version.");
  }
  mount() {
    this.mountCount++, this.mountCount === 1 && (this.unsubscribeFocus = kg.subscribe(() => {
      kg.isFocused() && (this.resumePausedMutations(), this.queryCache.onFocus());
    }), this.unsubscribeOnline = Ig.subscribe(() => {
      Ig.isOnline() && (this.resumePausedMutations(), this.queryCache.onOnline());
    }));
  }
  unmount() {
    var o, E;
    this.mountCount--, this.mountCount === 0 && ((o = this.unsubscribeFocus) == null || o.call(this), this.unsubscribeFocus = void 0, (E = this.unsubscribeOnline) == null || E.call(this), this.unsubscribeOnline = void 0);
  }
  isFetching(o, E) {
    const [z] = Qc(o, E);
    return z.fetchStatus = "fetching", this.queryCache.findAll(z).length;
  }
  isMutating(o) {
    return this.mutationCache.findAll({
      ...o,
      fetching: !0
    }).length;
  }
  getQueryData(o, E) {
    var z;
    return (z = this.queryCache.find(o, E)) == null ? void 0 : z.state.data;
  }
  ensureQueryData(o, E, z) {
    const P = _0(o, E, z), K = this.getQueryData(P.queryKey);
    return K ? Promise.resolve(K) : this.fetchQuery(P);
  }
  getQueriesData(o) {
    return this.getQueryCache().findAll(o).map(({
      queryKey: E,
      state: z
    }) => {
      const P = z.data;
      return [E, P];
    });
  }
  setQueryData(o, E, z) {
    const P = this.queryCache.find(o), K = P == null ? void 0 : P.state.data, M = SL(E, K);
    if (typeof M > "u")
      return;
    const L = _0(o), r = this.defaultQueryOptions(L);
    return this.queryCache.build(this, r).setData(M, {
      ...z,
      manual: !0
    });
  }
  setQueriesData(o, E, z) {
    return Yi.batch(() => this.getQueryCache().findAll(o).map(({
      queryKey: P
    }) => [P, this.setQueryData(P, E, z)]));
  }
  getQueryState(o, E) {
    var z;
    return (z = this.queryCache.find(o, E)) == null ? void 0 : z.state;
  }
  removeQueries(o, E) {
    const [z] = Qc(o, E), P = this.queryCache;
    Yi.batch(() => {
      P.findAll(z).forEach((K) => {
        P.remove(K);
      });
    });
  }
  resetQueries(o, E, z) {
    const [P, K] = Qc(o, E, z), M = this.queryCache, L = {
      type: "active",
      ...P
    };
    return Yi.batch(() => (M.findAll(P).forEach((r) => {
      r.reset();
    }), this.refetchQueries(L, K)));
  }
  cancelQueries(o, E, z) {
    const [P, K = {}] = Qc(o, E, z);
    typeof K.revert > "u" && (K.revert = !0);
    const M = Yi.batch(() => this.queryCache.findAll(P).map((L) => L.cancel(K)));
    return Promise.all(M).then(As).catch(As);
  }
  invalidateQueries(o, E, z) {
    const [P, K] = Qc(o, E, z);
    return Yi.batch(() => {
      var M, L;
      if (this.queryCache.findAll(P).forEach((a) => {
        a.invalidate();
      }), P.refetchType === "none")
        return Promise.resolve();
      const r = {
        ...P,
        type: (M = (L = P.refetchType) != null ? L : P.type) != null ? M : "active"
      };
      return this.refetchQueries(r, K);
    });
  }
  refetchQueries(o, E, z) {
    const [P, K] = Qc(o, E, z), M = Yi.batch(() => this.queryCache.findAll(P).filter((r) => !r.isDisabled()).map((r) => {
      var a;
      return r.fetch(void 0, {
        ...K,
        cancelRefetch: (a = K == null ? void 0 : K.cancelRefetch) != null ? a : !0,
        meta: {
          refetchPage: P.refetchPage
        }
      });
    }));
    let L = Promise.all(M).then(As);
    return K != null && K.throwOnError || (L = L.catch(As)), L;
  }
  fetchQuery(o, E, z) {
    const P = _0(o, E, z), K = this.defaultQueryOptions(P);
    typeof K.retry > "u" && (K.retry = !1);
    const M = this.queryCache.build(this, K);
    return M.isStaleByTime(K.staleTime) ? M.fetch(K) : Promise.resolve(M.state.data);
  }
  prefetchQuery(o, E, z) {
    return this.fetchQuery(o, E, z).then(As).catch(As);
  }
  fetchInfiniteQuery(o, E, z) {
    const P = _0(o, E, z);
    return P.behavior = zL(), this.fetchQuery(P);
  }
  prefetchInfiniteQuery(o, E, z) {
    return this.fetchInfiniteQuery(o, E, z).then(As).catch(As);
  }
  resumePausedMutations() {
    return this.mutationCache.resumePausedMutations();
  }
  getQueryCache() {
    return this.queryCache;
  }
  getMutationCache() {
    return this.mutationCache;
  }
  getLogger() {
    return this.logger;
  }
  getDefaultOptions() {
    return this.defaultOptions;
  }
  setDefaultOptions(o) {
    this.defaultOptions = o;
  }
  setQueryDefaults(o, E) {
    const z = this.queryDefaults.find((P) => ev(o) === ev(P.queryKey));
    z ? z.defaultOptions = E : this.queryDefaults.push({
      queryKey: o,
      defaultOptions: E
    });
  }
  getQueryDefaults(o) {
    if (!o)
      return;
    const E = this.queryDefaults.find((z) => Uh(o, z.queryKey));
    return  true && this.queryDefaults.filter((P) => Uh(o, P.queryKey)).length > 1 && this.logger.error("[QueryClient] Several query defaults match with key '" + JSON.stringify(o) + "'. The first matching query defaults are used. Please check how query defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetquerydefaults."), E == null ? void 0 : E.defaultOptions;
  }
  setMutationDefaults(o, E) {
    const z = this.mutationDefaults.find((P) => ev(o) === ev(P.mutationKey));
    z ? z.defaultOptions = E : this.mutationDefaults.push({
      mutationKey: o,
      defaultOptions: E
    });
  }
  getMutationDefaults(o) {
    if (!o)
      return;
    const E = this.mutationDefaults.find((z) => Uh(o, z.mutationKey));
    return  true && this.mutationDefaults.filter((P) => Uh(o, P.mutationKey)).length > 1 && this.logger.error("[QueryClient] Several mutation defaults match with key '" + JSON.stringify(o) + "'. The first matching mutation defaults are used. Please check how mutation defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetmutationdefaults."), E == null ? void 0 : E.defaultOptions;
  }
  defaultQueryOptions(o) {
    if (o != null && o._defaulted)
      return o;
    const E = {
      ...this.defaultOptions.queries,
      ...this.getQueryDefaults(o == null ? void 0 : o.queryKey),
      ...o,
      _defaulted: !0
    };
    return !E.queryHash && E.queryKey && (E.queryHash = E3(E.queryKey, E)), typeof E.refetchOnReconnect > "u" && (E.refetchOnReconnect = E.networkMode !== "always"), typeof E.useErrorBoundary > "u" && (E.useErrorBoundary = !!E.suspense), E;
  }
  defaultMutationOptions(o) {
    return o != null && o._defaulted ? o : {
      ...this.defaultOptions.mutations,
      ...this.getMutationDefaults(o == null ? void 0 : o.mutationKey),
      ...o,
      _defaulted: !0
    };
  }
  clear() {
    this.queryCache.clear(), this.mutationCache.clear();
  }
}
class BL extends tm {
  constructor(o, E) {
    super(), this.client = o, this.options = E, this.trackedProps = /* @__PURE__ */ new Set(), this.selectError = null, this.bindMethods(), this.setOptions(E);
  }
  bindMethods() {
    this.remove = this.remove.bind(this), this.refetch = this.refetch.bind(this);
  }
  onSubscribe() {
    this.listeners.size === 1 && (this.currentQuery.addObserver(this), xw(this.currentQuery, this.options) && this.executeFetch(), this.updateTimers());
  }
  onUnsubscribe() {
    this.hasListeners() || this.destroy();
  }
  shouldFetchOnReconnect() {
    return i3(this.currentQuery, this.options, this.options.refetchOnReconnect);
  }
  shouldFetchOnWindowFocus() {
    return i3(this.currentQuery, this.options, this.options.refetchOnWindowFocus);
  }
  destroy() {
    this.listeners = /* @__PURE__ */ new Set(), this.clearStaleTimeout(), this.clearRefetchInterval(), this.currentQuery.removeObserver(this);
  }
  setOptions(o, E) {
    const z = this.options, P = this.currentQuery;
    if (this.options = this.client.defaultQueryOptions(o),  true && typeof (o == null ? void 0 : o.isDataEqual) < "u" && this.client.getLogger().error("The isDataEqual option has been deprecated and will be removed in the next major version. You can achieve the same functionality by passing a function as the structuralSharing option"), r3(z, this.options) || this.client.getQueryCache().notify({
      type: "observerOptionsUpdated",
      query: this.currentQuery,
      observer: this
    }), typeof this.options.enabled < "u" && typeof this.options.enabled != "boolean")
      throw new Error("Expected enabled to be a boolean");
    this.options.queryKey || (this.options.queryKey = z.queryKey), this.updateQuery();
    const K = this.hasListeners();
    K && Tw(this.currentQuery, P, this.options, z) && this.executeFetch(), this.updateResult(E), K && (this.currentQuery !== P || this.options.enabled !== z.enabled || this.options.staleTime !== z.staleTime) && this.updateStaleTimeout();
    const M = this.computeRefetchInterval();
    K && (this.currentQuery !== P || this.options.enabled !== z.enabled || M !== this.currentRefetchInterval) && this.updateRefetchInterval(M);
  }
  getOptimisticResult(o) {
    const E = this.client.getQueryCache().build(this.client, o), z = this.createResult(E, o);
    return GL(this, z, o) && (this.currentResult = z, this.currentResultOptions = this.options, this.currentResultState = this.currentQuery.state), z;
  }
  getCurrentResult() {
    return this.currentResult;
  }
  trackResult(o) {
    const E = {};
    return Object.keys(o).forEach((z) => {
      Object.defineProperty(E, z, {
        configurable: !1,
        enumerable: !0,
        get: () => (this.trackedProps.add(z), o[z])
      });
    }), E;
  }
  getCurrentQuery() {
    return this.currentQuery;
  }
  remove() {
    this.client.getQueryCache().remove(this.currentQuery);
  }
  refetch({
    refetchPage: o,
    ...E
  } = {}) {
    return this.fetch({
      ...E,
      meta: {
        refetchPage: o
      }
    });
  }
  fetchOptimistic(o) {
    const E = this.client.defaultQueryOptions(o), z = this.client.getQueryCache().build(this.client, E);
    return z.isFetchingOptimistic = !0, z.fetch().then(() => this.createResult(z, E));
  }
  fetch(o) {
    var E;
    return this.executeFetch({
      ...o,
      cancelRefetch: (E = o.cancelRefetch) != null ? E : !0
    }).then(() => (this.updateResult(), this.currentResult));
  }
  executeFetch(o) {
    this.updateQuery();
    let E = this.currentQuery.fetch(this.options, o);
    return o != null && o.throwOnError || (E = E.catch(As)), E;
  }
  updateStaleTimeout() {
    if (this.clearStaleTimeout(), X0 || this.currentResult.isStale || !t3(this.options.staleTime))
      return;
    const E = i5(this.currentResult.dataUpdatedAt, this.options.staleTime) + 1;
    this.staleTimeoutId = setTimeout(() => {
      this.currentResult.isStale || this.updateResult();
    }, E);
  }
  computeRefetchInterval() {
    var o;
    return typeof this.options.refetchInterval == "function" ? this.options.refetchInterval(this.currentResult.data, this.currentQuery) : (o = this.options.refetchInterval) != null ? o : !1;
  }
  updateRefetchInterval(o) {
    this.clearRefetchInterval(), this.currentRefetchInterval = o, !(X0 || this.options.enabled === !1 || !t3(this.currentRefetchInterval) || this.currentRefetchInterval === 0) && (this.refetchIntervalId = setInterval(() => {
      (this.options.refetchIntervalInBackground || kg.isFocused()) && this.executeFetch();
    }, this.currentRefetchInterval));
  }
  updateTimers() {
    this.updateStaleTimeout(), this.updateRefetchInterval(this.computeRefetchInterval());
  }
  clearStaleTimeout() {
    this.staleTimeoutId && (clearTimeout(this.staleTimeoutId), this.staleTimeoutId = void 0);
  }
  clearRefetchInterval() {
    this.refetchIntervalId && (clearInterval(this.refetchIntervalId), this.refetchIntervalId = void 0);
  }
  createResult(o, E) {
    const z = this.currentQuery, P = this.options, K = this.currentResult, M = this.currentResultState, L = this.currentResultOptions, r = o !== z, a = r ? o.state : this.currentQueryInitialState, p = r ? this.currentResult : this.previousQueryResult, {
      state: l
    } = o;
    let {
      dataUpdatedAt: f,
      error: u,
      errorUpdatedAt: c,
      fetchStatus: d,
      status: h
    } = l, i = !1, b = !1, x;
    if (E._optimisticResults) {
      const T = this.hasListeners(), k = !T && xw(o, E), A = T && Tw(o, z, E, P);
      (k || A) && (d = qg(o.options.networkMode) ? "fetching" : "paused", f || (h = "loading")), E._optimisticResults === "isRestoring" && (d = "idle");
    }
    if (E.keepPreviousData && !l.dataUpdatedAt && p != null && p.isSuccess && h !== "error")
      x = p.data, f = p.dataUpdatedAt, h = p.status, i = !0;
    else if (E.select && typeof l.data < "u")
      if (K && l.data === (M == null ? void 0 : M.data) && E.select === this.selectFn)
        x = this.selectResult;
      else
        try {
          this.selectFn = E.select, x = E.select(l.data), x = a3(K == null ? void 0 : K.data, x, E), this.selectResult = x, this.selectError = null;
        } catch (T) {
           true && this.client.getLogger().error(T), this.selectError = T;
        }
    else
      x = l.data;
    if (typeof E.placeholderData < "u" && typeof x > "u" && h === "loading") {
      let T;
      if (K != null && K.isPlaceholderData && E.placeholderData === (L == null ? void 0 : L.placeholderData))
        T = K.data;
      else if (T = typeof E.placeholderData == "function" ? E.placeholderData() : E.placeholderData, E.select && typeof T < "u")
        try {
          T = E.select(T), this.selectError = null;
        } catch (k) {
           true && this.client.getLogger().error(k), this.selectError = k;
        }
      typeof T < "u" && (h = "success", x = a3(K == null ? void 0 : K.data, T, E), b = !0);
    }
    this.selectError && (u = this.selectError, x = this.selectResult, c = Date.now(), h = "error");
    const D = d === "fetching", C = h === "loading", w = h === "error";
    return {
      status: h,
      fetchStatus: d,
      isLoading: C,
      isSuccess: h === "success",
      isError: w,
      isInitialLoading: C && D,
      data: x,
      dataUpdatedAt: f,
      error: u,
      errorUpdatedAt: c,
      failureCount: l.fetchFailureCount,
      failureReason: l.fetchFailureReason,
      errorUpdateCount: l.errorUpdateCount,
      isFetched: l.dataUpdateCount > 0 || l.errorUpdateCount > 0,
      isFetchedAfterMount: l.dataUpdateCount > a.dataUpdateCount || l.errorUpdateCount > a.errorUpdateCount,
      isFetching: D,
      isRefetching: D && !C,
      isLoadingError: w && l.dataUpdatedAt === 0,
      isPaused: d === "paused",
      isPlaceholderData: b,
      isPreviousData: i,
      isRefetchError: w && l.dataUpdatedAt !== 0,
      isStale: R3(o, E),
      refetch: this.refetch,
      remove: this.remove
    };
  }
  updateResult(o) {
    const E = this.currentResult, z = this.createResult(this.currentQuery, this.options);
    if (this.currentResultState = this.currentQuery.state, this.currentResultOptions = this.options, r3(z, E))
      return;
    this.currentResult = z;
    const P = {
      cache: !0
    }, K = () => {
      if (!E)
        return !0;
      const {
        notifyOnChangeProps: M
      } = this.options, L = typeof M == "function" ? M() : M;
      if (L === "all" || !L && !this.trackedProps.size)
        return !0;
      const r = new Set(L ?? this.trackedProps);
      return this.options.useErrorBoundary && r.add("error"), Object.keys(this.currentResult).some((a) => {
        const p = a;
        return this.currentResult[p] !== E[p] && r.has(p);
      });
    };
    (o == null ? void 0 : o.listeners) !== !1 && K() && (P.listeners = !0), this.notify({
      ...P,
      ...o
    });
  }
  updateQuery() {
    const o = this.client.getQueryCache().build(this.client, this.options);
    if (o === this.currentQuery)
      return;
    const E = this.currentQuery;
    this.currentQuery = o, this.currentQueryInitialState = o.state, this.previousQueryResult = this.currentResult, this.hasListeners() && (E == null || E.removeObserver(this), o.addObserver(this));
  }
  onQueryUpdate(o) {
    const E = {};
    o.type === "success" ? E.onSuccess = !o.manual : o.type === "error" && !Tg(o.error) && (E.onError = !0), this.updateResult(E), this.hasListeners() && this.updateTimers();
  }
  notify(o) {
    Yi.batch(() => {
      if (o.onSuccess) {
        var E, z, P, K;
        (E = (z = this.options).onSuccess) == null || E.call(z, this.currentResult.data), (P = (K = this.options).onSettled) == null || P.call(K, this.currentResult.data, null);
      } else if (o.onError) {
        var M, L, r, a;
        (M = (L = this.options).onError) == null || M.call(L, this.currentResult.error), (r = (a = this.options).onSettled) == null || r.call(a, void 0, this.currentResult.error);
      }
      o.listeners && this.listeners.forEach(({
        listener: p
      }) => {
        p(this.currentResult);
      }), o.cache && this.client.getQueryCache().notify({
        query: this.currentQuery,
        type: "observerResultsUpdated"
      });
    });
  }
}
function VL(s, o) {
  return o.enabled !== !1 && !s.state.dataUpdatedAt && !(s.state.status === "error" && o.retryOnMount === !1);
}
function xw(s, o) {
  return VL(s, o) || s.state.dataUpdatedAt > 0 && i3(s, o, o.refetchOnMount);
}
function i3(s, o, E) {
  if (o.enabled !== !1) {
    const z = typeof E == "function" ? E(s) : E;
    return z === "always" || z !== !1 && R3(s, o);
  }
  return !1;
}
function Tw(s, o, E, z) {
  return E.enabled !== !1 && (s !== o || z.enabled === !1) && (!E.suspense || s.state.status !== "error") && R3(s, E);
}
function R3(s, o) {
  return s.isStaleByTime(o.staleTime);
}
function GL(s, o, E) {
  return E.keepPreviousData ? !1 : E.placeholderData !== void 0 ? o.isPlaceholderData : !r3(s.getCurrentResult(), o);
}
var o3 = { exports: {} }, Nx = {};
/**
 * @license React
 * use-sync-external-store-shim.production.min.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
var Cw;
function UL() {
  if (Cw)
    return Nx;
  Cw = 1;
  var s = (react__WEBPACK_IMPORTED_MODULE_1___default());
  function o(l, f) {
    return l === f && (l !== 0 || 1 / l === 1 / f) || l !== l && f !== f;
  }
  var E = typeof Object.is == "function" ? Object.is : o, z = s.useState, P = s.useEffect, K = s.useLayoutEffect, M = s.useDebugValue;
  function L(l, f) {
    var u = f(), c = z({ inst: { value: u, getSnapshot: f } }), d = c[0].inst, h = c[1];
    return K(function() {
      d.value = u, d.getSnapshot = f, r(d) && h({ inst: d });
    }, [l, u, f]), P(function() {
      return r(d) && h({ inst: d }), l(function() {
        r(d) && h({ inst: d });
      });
    }, [l]), M(u), u;
  }
  function r(l) {
    var f = l.getSnapshot;
    l = l.value;
    try {
      var u = f();
      return !E(l, u);
    } catch {
      return !0;
    }
  }
  function a(l, f) {
    return f();
  }
  var p = typeof window > "u" || typeof window.document > "u" || typeof window.document.createElement > "u" ? a : L;
  return Nx.useSyncExternalStore = s.useSyncExternalStore !== void 0 ? s.useSyncExternalStore : p, Nx;
}
var Ox = {};
/**
 * @license React
 * use-sync-external-store-shim.development.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
var Aw;
function WL() {
  return Aw || (Aw = 1,  true && function() {
    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ < "u" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart == "function" && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());
    var s = (react__WEBPACK_IMPORTED_MODULE_1___default()), o = s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
    function E(x) {
      {
        for (var D = arguments.length, C = new Array(D > 1 ? D - 1 : 0), w = 1; w < D; w++)
          C[w - 1] = arguments[w];
        z("error", x, C);
      }
    }
    function z(x, D, C) {
      {
        var w = o.ReactDebugCurrentFrame, S = w.getStackAddendum();
        S !== "" && (D += "%s", C = C.concat([S]));
        var T = C.map(function(k) {
          return String(k);
        });
        T.unshift("Warning: " + D), Function.prototype.apply.call(console[x], console, T);
      }
    }
    function P(x, D) {
      return x === D && (x !== 0 || 1 / x === 1 / D) || x !== x && D !== D;
    }
    var K = typeof Object.is == "function" ? Object.is : P, M = s.useState, L = s.useEffect, r = s.useLayoutEffect, a = s.useDebugValue, p = !1, l = !1;
    function f(x, D, C) {
      p || s.startTransition !== void 0 && (p = !0, E("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));
      var w = D();
      if (!l) {
        var S = D();
        K(w, S) || (E("The result of getSnapshot should be cached to avoid an infinite loop"), l = !0);
      }
      var T = M({
        inst: {
          value: w,
          getSnapshot: D
        }
      }), k = T[0].inst, A = T[1];
      return r(function() {
        k.value = w, k.getSnapshot = D, u(k) && A({
          inst: k
        });
      }, [x, w, D]), L(function() {
        u(k) && A({
          inst: k
        });
        var R = function() {
          u(k) && A({
            inst: k
          });
        };
        return x(R);
      }, [x]), a(w), w;
    }
    function u(x) {
      var D = x.getSnapshot, C = x.value;
      try {
        var w = D();
        return !K(C, w);
      } catch {
        return !0;
      }
    }
    function c(x, D, C) {
      return D();
    }
    var d = typeof window < "u" && typeof window.document < "u" && typeof window.document.createElement < "u", h = !d, i = h ? c : f, b = s.useSyncExternalStore !== void 0 ? s.useSyncExternalStore : i;
    Ox.useSyncExternalStore = b, typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ < "u" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop == "function" && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());
  }()), Ox;
}
 false ? 0 : o3.exports = WL();
var YL = o3.exports;
const XL = YL.useSyncExternalStore, ww = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createContext(void 0), d5 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createContext(!1);
function v5(s, o) {
  return s || (o && typeof window < "u" ? (window.ReactQueryClientContext || (window.ReactQueryClientContext = ww), window.ReactQueryClientContext) : ww);
}
const jL = ({
  context: s
} = {}) => {
  const o = react__WEBPACK_IMPORTED_MODULE_1__.useContext(v5(s, react__WEBPACK_IMPORTED_MODULE_1__.useContext(d5)));
  if (!o)
    throw new Error("No QueryClient set, use QueryClientProvider to set one");
  return o;
}, ZL = ({
  client: s,
  children: o,
  context: E,
  contextSharing: z = !1
}) => {
  react__WEBPACK_IMPORTED_MODULE_1__.useEffect(() => (s.mount(), () => {
    s.unmount();
  }), [s]),  true && z && s.getLogger().error("The contextSharing option has been deprecated and will be removed in the next major version");
  const P = v5(E, z);
  return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(d5.Provider, {
    value: !E && z
  }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(P.Provider, {
    value: s
  }, o));
}, h5 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createContext(!1), $L = () => react__WEBPACK_IMPORTED_MODULE_1__.useContext(h5);
h5.Provider;
function JL() {
  let s = !1;
  return {
    clearReset: () => {
      s = !1;
    },
    reset: () => {
      s = !0;
    },
    isReset: () => s
  };
}
const QL = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createContext(JL()), KL = () => react__WEBPACK_IMPORTED_MODULE_1__.useContext(QL);
function qL(s, o) {
  return typeof s == "function" ? s(...o) : !!s;
}
const ek = (s, o) => {
  (s.suspense || s.useErrorBoundary) && (o.isReset() || (s.retryOnMount = !1));
}, tk = (s) => {
  react__WEBPACK_IMPORTED_MODULE_1__.useEffect(() => {
    s.clearReset();
  }, [s]);
}, rk = ({
  result: s,
  errorResetBoundary: o,
  useErrorBoundary: E,
  query: z
}) => s.isError && !o.isReset() && !s.isFetching && qL(E, [s.error, z]), nk = (s) => {
  s.suspense && typeof s.staleTime != "number" && (s.staleTime = 1e3);
}, ak = (s, o) => s.isLoading && s.isFetching && !o, ik = (s, o, E) => (s == null ? void 0 : s.suspense) && ak(o, E), ok = (s, o, E) => o.fetchOptimistic(s).then(({
  data: z
}) => {
  s.onSuccess == null || s.onSuccess(z), s.onSettled == null || s.onSettled(z, null);
}).catch((z) => {
  E.clearReset(), s.onError == null || s.onError(z), s.onSettled == null || s.onSettled(void 0, z);
});
function lk(s, o) {
  const E = jL({
    context: s.context
  }), z = $L(), P = KL(), K = E.defaultQueryOptions(s);
  K._optimisticResults = z ? "isRestoring" : "optimistic", K.onError && (K.onError = Yi.batchCalls(K.onError)), K.onSuccess && (K.onSuccess = Yi.batchCalls(K.onSuccess)), K.onSettled && (K.onSettled = Yi.batchCalls(K.onSettled)), nk(K), ek(K, P), tk(P);
  const [M] = react__WEBPACK_IMPORTED_MODULE_1__.useState(() => new o(E, K)), L = M.getOptimisticResult(K);
  if (XL(react__WEBPACK_IMPORTED_MODULE_1__.useCallback((r) => {
    const a = z ? () => {
    } : M.subscribe(Yi.batchCalls(r));
    return M.updateResult(), a;
  }, [M, z]), () => M.getCurrentResult(), () => M.getCurrentResult()), react__WEBPACK_IMPORTED_MODULE_1__.useEffect(() => {
    M.setOptions(K, {
      listeners: !1
    });
  }, [K, M]), ik(K, L, z))
    throw ok(K, M, P);
  if (rk({
    result: L,
    errorResetBoundary: P,
    useErrorBoundary: K.useErrorBoundary,
    query: M.getCurrentQuery()
  }))
    throw L.error;
  return K.notifyOnChangeProps ? L : M.trackResult(L);
}
function Pf(s, o, E) {
  const z = _0(s, o, E);
  return lk(z, BL);
}
const _f = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  bsPrefix: s,
  fluid: o = !1,
  // Need to define the default "as" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595
  as: E = "div",
  className: z,
  ...P
}, K) => {
  const M = kn(s, "container"), L = typeof o == "string" ? `-${o}` : "-fluid";
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(E, {
    ref: K,
    ...P,
    className: bn(z, o ? `${M}${L}` : M)
  });
});
_f.displayName = "Container";
const sk = {
  /**
   * Specify whether the feedback is for valid or invalid fields
   *
   * @type {('valid'|'invalid')}
   */
  type: Nn.string,
  /** Display feedback as a tooltip. */
  tooltip: Nn.bool,
  as: Nn.elementType
}, e1 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(
  // Need to define the default "as" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595
  ({
    as: s = "div",
    className: o,
    type: E = "valid",
    tooltip: z = !1,
    ...P
  }, K) => /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(s, {
    ...P,
    ref: K,
    className: bn(o, `${E}-${z ? "tooltip" : "feedback"}`)
  })
);
e1.displayName = "Feedback";
e1.propTypes = sk;
const Hf = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createContext({}), L3 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  id: s,
  bsPrefix: o,
  className: E,
  type: z = "checkbox",
  isValid: P = !1,
  isInvalid: K = !1,
  // Need to define the default "as" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595
  as: M = "input",
  ...L
}, r) => {
  const {
    controlId: a
  } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(Hf);
  return o = kn(o, "form-check-input"), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(M, {
    ...L,
    ref: r,
    type: z,
    id: s || a,
    className: bn(E, o, P && "is-valid", K && "is-invalid")
  });
});
L3.displayName = "FormCheckInput";
const Ng = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  bsPrefix: s,
  className: o,
  htmlFor: E,
  ...z
}, P) => {
  const {
    controlId: K
  } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(Hf);
  return s = kn(s, "form-check-label"), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("label", {
    ...z,
    ref: P,
    htmlFor: E || K,
    className: bn(o, s)
  });
});
Ng.displayName = "FormCheckLabel";
function uk(s, o) {
  return react__WEBPACK_IMPORTED_MODULE_1__.Children.toArray(s).some((E) => /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.isValidElement(E) && E.type === o);
}
const p5 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  id: s,
  bsPrefix: o,
  bsSwitchPrefix: E,
  inline: z = !1,
  reverse: P = !1,
  disabled: K = !1,
  isValid: M = !1,
  isInvalid: L = !1,
  feedbackTooltip: r = !1,
  feedback: a,
  feedbackType: p,
  className: l,
  style: f,
  title: u = "",
  type: c = "checkbox",
  label: d,
  children: h,
  // Need to define the default "as" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595
  as: i = "input",
  ...b
}, x) => {
  o = kn(o, "form-check"), E = kn(E, "form-switch");
  const {
    controlId: D
  } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(Hf), C = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => ({
    controlId: s || D
  }), [D, s]), w = !h && d != null && d !== !1 || uk(h, Ng), S = /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(L3, {
    ...b,
    type: c === "switch" ? "checkbox" : c,
    ref: x,
    isValid: M,
    isInvalid: L,
    disabled: K,
    as: i
  });
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Hf.Provider, {
    value: C,
    children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
      style: f,
      className: bn(l, w && o, z && `${o}-inline`, P && `${o}-reverse`, c === "switch" && E),
      children: h || /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
        children: [S, w && /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Ng, {
          title: u,
          children: d
        }), a && /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(e1, {
          type: p,
          tooltip: r,
          children: a
        })]
      })
    })
  });
});
p5.displayName = "FormCheck";
const Og = Object.assign(p5, {
  Input: L3,
  Label: Ng
});
var fk = "development" !== "production", m5 = function() {
};
if (fk) {
  var ck = function(o, E) {
    var z = arguments.length;
    E = new Array(z > 1 ? z - 1 : 0);
    for (var P = 1; P < z; P++)
      E[P - 1] = arguments[P];
    var K = 0, M = "Warning: " + o.replace(/%s/g, function() {
      return E[K++];
    });
    typeof console < "u" && console.error(M);
    try {
      throw new Error(M);
    } catch {
    }
  };
  m5 = function(s, o, E) {
    var z = arguments.length;
    E = new Array(z > 2 ? z - 2 : 0);
    for (var P = 2; P < z; P++)
      E[P - 2] = arguments[P];
    if (o === void 0)
      throw new Error(
        "`warning(condition, format, ...args)` requires a warning message argument"
      );
    s || ck.apply(null, [o].concat(E));
  };
}
var dk = m5;
const t1 = /* @__PURE__ */ lv(dk), y5 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  bsPrefix: s,
  type: o,
  size: E,
  htmlSize: z,
  id: P,
  className: K,
  isValid: M = !1,
  isInvalid: L = !1,
  plaintext: r,
  readOnly: a,
  // Need to define the default "as" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595
  as: p = "input",
  ...l
}, f) => {
  const {
    controlId: u
  } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(Hf);
  return s = kn(s, "form-control"),  true && t1(u == null || !P, "`controlId` is ignored on `<FormControl>` when `id` is specified."), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(p, {
    ...l,
    type: o,
    size: z,
    ref: f,
    readOnly: a,
    id: P || u,
    className: bn(K, r ? `${s}-plaintext` : s, E && `${s}-${E}`, o === "color" && `${s}-color`, M && "is-valid", L && "is-invalid")
  });
});
y5.displayName = "FormControl";
const vk = Object.assign(y5, {
  Feedback: e1
}), g5 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  className: s,
  bsPrefix: o,
  as: E = "div",
  ...z
}, P) => (o = kn(o, "form-floating"), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(E, {
  ref: P,
  className: bn(s, o),
  ...z
})));
g5.displayName = "FormFloating";
const k3 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  controlId: s,
  // Need to define the default "as" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595
  as: o = "div",
  ...E
}, z) => {
  const P = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => ({
    controlId: s
  }), [s]);
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Hf.Provider, {
    value: P,
    children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(o, {
      ...E,
      ref: z
    })
  });
});
k3.displayName = "FormGroup";
function hk({
  as: s,
  bsPrefix: o,
  className: E,
  ...z
}) {
  o = kn(o, "col");
  const P = b3(), K = x3(), M = [], L = [];
  return P.forEach((r) => {
    const a = z[r];
    delete z[r];
    let p, l, f;
    typeof a == "object" && a != null ? {
      span: p,
      offset: l,
      order: f
    } = a : p = a;
    const u = r !== K ? `-${r}` : "";
    p && M.push(p === !0 ? `${o}${u}` : `${o}${u}-${p}`), f != null && L.push(`order${u}-${f}`), l != null && L.push(`offset${u}-${l}`);
  }), [{
    ...z,
    className: bn(E, ...M, ...L)
  }, {
    as: s,
    bsPrefix: o,
    spans: M
  }];
}
const au = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(
  // Need to define the default "as" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595
  (s, o) => {
    const [{
      className: E,
      ...z
    }, {
      as: P = "div",
      bsPrefix: K,
      spans: M
    }] = hk(s);
    return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(P, {
      ...z,
      ref: o,
      className: bn(E, !M.length && K)
    });
  }
);
au.displayName = "Col";
const b5 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  // Need to define the default "as" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595
  as: s = "label",
  bsPrefix: o,
  column: E = !1,
  visuallyHidden: z = !1,
  className: P,
  htmlFor: K,
  ...M
}, L) => {
  const {
    controlId: r
  } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(Hf);
  o = kn(o, "form-label");
  let a = "col-form-label";
  typeof E == "string" && (a = `${a} ${a}-${E}`);
  const p = bn(P, o, z && "visually-hidden", E && a);
  return  true && t1(r == null || !K, "`controlId` is ignored on `<FormLabel>` when `htmlFor` is specified."), K = K || r, E ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(au, {
    ref: L,
    as: "label",
    className: p,
    htmlFor: K,
    ...M
  }) : (
    // eslint-disable-next-line jsx-a11y/label-has-for, jsx-a11y/label-has-associated-control
    /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(s, {
      ref: L,
      className: p,
      htmlFor: K,
      ...M
    })
  );
});
b5.displayName = "FormLabel";
const x5 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  bsPrefix: s,
  className: o,
  id: E,
  ...z
}, P) => {
  const {
    controlId: K
  } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(Hf);
  return s = kn(s, "form-range"), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("input", {
    ...z,
    type: "range",
    ref: P,
    className: bn(o, s),
    id: E || K
  });
});
x5.displayName = "FormRange";
const T5 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  bsPrefix: s,
  size: o,
  htmlSize: E,
  className: z,
  isValid: P = !1,
  isInvalid: K = !1,
  id: M,
  ...L
}, r) => {
  const {
    controlId: a
  } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(Hf);
  return s = kn(s, "form-select"), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("select", {
    ...L,
    size: E,
    ref: r,
    className: bn(z, s, o && `${s}-${o}`, P && "is-valid", K && "is-invalid"),
    id: M || a
  });
});
T5.displayName = "FormSelect";
const C5 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(
  // Need to define the default "as" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595
  ({
    bsPrefix: s,
    className: o,
    as: E = "small",
    muted: z,
    ...P
  }, K) => (s = kn(s, "form-text"), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(E, {
    ...P,
    ref: K,
    className: bn(o, s, z && "text-muted")
  }))
);
C5.displayName = "FormText";
const A5 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef((s, o) => /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Og, {
  ...s,
  ref: o,
  type: "switch"
}));
A5.displayName = "Switch";
const pk = Object.assign(A5, {
  Input: Og.Input,
  Label: Og.Label
}), w5 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  bsPrefix: s,
  className: o,
  children: E,
  controlId: z,
  label: P,
  ...K
}, M) => (s = kn(s, "form-floating"), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(k3, {
  ref: M,
  className: bn(o, s),
  controlId: z,
  ...K,
  children: [E, /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("label", {
    htmlFor: z,
    children: P
  })]
})));
w5.displayName = "FloatingLabel";
const mk = {
  /**
   * The Form `ref` will be forwarded to the underlying element,
   * which means, unless it's rendered `as` a composite component,
   * it will be a DOM node, when resolved.
   *
   * @type {ReactRef}
   * @alias ref
   */
  _ref: Nn.any,
  /**
   * Mark a form as having been validated. Setting it to `true` will
   * toggle any validation styles on the forms elements.
   */
  validated: Nn.bool,
  as: Nn.elementType
}, I3 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  className: s,
  validated: o,
  // Need to define the default "as" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595
  as: E = "form",
  ...z
}, P) => /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(E, {
  ...z,
  ref: P,
  className: bn(s, o && "was-validated")
}));
I3.displayName = "Form";
I3.propTypes = mk;
const Ll = Object.assign(I3, {
  Group: k3,
  Control: vk,
  Floating: g5,
  Check: Og,
  Switch: pk,
  Label: b5,
  Text: C5,
  Range: x5,
  Select: T5,
  FloatingLabel: w5
});
var Sw = { exports: {} }, l3 = { exports: {} };
(function(s, o) {
  Object.defineProperty(o, "__esModule", {
    value: !0
  }), o.default = E;
  function E(z) {
    function P(M, L, r, a, p, l) {
      var f = a || "<<anonymous>>", u = l || r;
      if (L[r] == null)
        return M ? new Error("Required " + p + " `" + u + "` was not specified " + ("in `" + f + "`.")) : null;
      for (var c = arguments.length, d = Array(c > 6 ? c - 6 : 0), h = 6; h < c; h++)
        d[h - 6] = arguments[h];
      return z.apply(void 0, [L, r, f, p, u].concat(d));
    }
    var K = P.bind(null, !1);
    return K.isRequired = P.bind(null, !0), K;
  }
  s.exports = o.default;
})(l3, l3.exports);
var yk = l3.exports;
(function(s, o) {
  Object.defineProperty(o, "__esModule", {
    value: !0
  }), o.default = K;
  var E = yk, z = P(E);
  function P(M) {
    return M && M.__esModule ? M : { default: M };
  }
  function K() {
    for (var M = arguments.length, L = Array(M), r = 0; r < M; r++)
      L[r] = arguments[r];
    function a() {
      for (var p = arguments.length, l = Array(p), f = 0; f < p; f++)
        l[f] = arguments[f];
      var u = null;
      return L.forEach(function(c) {
        if (u == null) {
          var d = c.apply(void 0, l);
          d != null && (u = d);
        }
      }), u;
    }
    return (0, z.default)(a);
  }
  s.exports = o.default;
})(Sw, Sw.exports);
function Vn() {
  return Vn = Object.assign ? Object.assign.bind() : function(s) {
    for (var o = 1; o < arguments.length; o++) {
      var E = arguments[o];
      for (var z in E)
        Object.prototype.hasOwnProperty.call(E, z) && (s[z] = E[z]);
    }
    return s;
  }, Vn.apply(this, arguments);
}
var gk = function(s, o, E, z, P, K, M, L) {
  if ( true && o === void 0)
    throw new Error("invariant requires an error message argument");
  if (!s) {
    var r;
    if (o === void 0)
      r = new Error(
        "Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings."
      );
    else {
      var a = [E, z, P, K, M, L], p = 0;
      r = new Error(
        o.replace(/%s/g, function() {
          return a[p++];
        })
      ), r.name = "Invariant Violation";
    }
    throw r.framesToPop = 1, r;
  }
}, bk = gk;
const Mw = /* @__PURE__ */ lv(bk);
function Ew(s) {
  return "default" + s.charAt(0).toUpperCase() + s.substr(1);
}
function xk(s) {
  var o = Tk(s, "string");
  return typeof o == "symbol" ? o : String(o);
}
function Tk(s, o) {
  if (typeof s != "object" || s === null)
    return s;
  var E = s[Symbol.toPrimitive];
  if (E !== void 0) {
    var z = E.call(s, o);
    if (typeof z != "object")
      return z;
    throw new TypeError("@@toPrimitive must return a primitive value.");
  }
  return String(s);
}
function Ck(s, o, E) {
  var z = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(s !== void 0), P = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(o), K = P[0], M = P[1], L = s !== void 0, r = z.current;
  return z.current = L, !L && r && K !== o && M(o), [L ? s : K, (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(function(a) {
    for (var p = arguments.length, l = new Array(p > 1 ? p - 1 : 0), f = 1; f < p; f++)
      l[f - 1] = arguments[f];
    E && E.apply(void 0, [a].concat(l)), M(a);
  }, [E])];
}
function r1(s, o) {
  return Object.keys(o).reduce(function(E, z) {
    var P, K = E, M = K[Ew(z)], L = K[z], r = w3(K, [Ew(z), z].map(xk)), a = o[z], p = Ck(L, M, s[a]), l = p[0], f = p[1];
    return Vn({}, r, (P = {}, P[z] = l, P[a] = f, P));
  }, s);
}
var Ak = Function.prototype.bind.call(Function.prototype.call, [].slice);
function Nf(s, o) {
  return Ak(s.querySelectorAll(o));
}
function S5() {
  const [, s] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useReducer)((o) => !o, !1);
  return s;
}
const n1 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createContext(null);
n1.displayName = "NavContext";
const wk = "data-rr-ui-", Sk = "rrUi";
function tp(s) {
  return `${wk}${s}`;
}
function Mk(s) {
  return `${Sk}${s}`;
}
const Ek = ["as", "disabled"];
function Dk(s, o) {
  if (s == null)
    return {};
  var E = {}, z = Object.keys(s), P, K;
  for (K = 0; K < z.length; K++)
    P = z[K], !(o.indexOf(P) >= 0) && (E[P] = s[P]);
  return E;
}
function Rk(s) {
  return !s || s.trim() === "#";
}
function N3({
  tagName: s,
  disabled: o,
  href: E,
  target: z,
  rel: P,
  role: K,
  onClick: M,
  tabIndex: L = 0,
  type: r
}) {
  s || (E != null || z != null || P != null ? s = "a" : s = "button");
  const a = {
    tagName: s
  };
  if (s === "button")
    return [{
      type: r || "button",
      disabled: o
    }, a];
  const p = (f) => {
    if ((o || s === "a" && Rk(E)) && f.preventDefault(), o) {
      f.stopPropagation();
      return;
    }
    M == null || M(f);
  }, l = (f) => {
    f.key === " " && (f.preventDefault(), p(f));
  };
  return s === "a" && (E || (E = "#"), o && (E = void 0)), [{
    role: K ?? "button",
    // explicitly undefined so that it overrides the props disabled in a spread
    // e.g. <Tag {...props} {...hookProps} />
    disabled: void 0,
    tabIndex: o ? void 0 : L,
    href: E,
    target: s === "a" ? z : void 0,
    "aria-disabled": o || void 0,
    rel: s === "a" ? P : void 0,
    onClick: p,
    onKeyDown: l
  }, a];
}
const O3 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef((s, o) => {
  let {
    as: E,
    disabled: z
  } = s, P = Dk(s, Ek);
  const [K, {
    tagName: M
  }] = N3(Object.assign({
    tagName: E,
    disabled: z
  }, P));
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(M, Object.assign({}, P, K, {
    ref: o
  }));
});
O3.displayName = "Button";
const Lk = ["as", "active", "eventKey"];
function kk(s, o) {
  if (s == null)
    return {};
  var E = {}, z = Object.keys(s), P, K;
  for (K = 0; K < z.length; K++)
    P = z[K], !(o.indexOf(P) >= 0) && (E[P] = s[P]);
  return E;
}
function M5({
  key: s,
  onClick: o,
  active: E,
  id: z,
  role: P,
  disabled: K
}) {
  const M = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(Uu), L = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(n1), r = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(ep);
  let a = E;
  const p = {
    role: P
  };
  if (L) {
    !P && L.role === "tablist" && (p.role = "tab");
    const l = L.getControllerId(s ?? null), f = L.getControlledId(s ?? null);
    p[tp("event-key")] = s, p.id = l || z, a = E == null && s != null ? L.activeKey === s : E, (a || !(r != null && r.unmountOnExit) && !(r != null && r.mountOnEnter)) && (p["aria-controls"] = f);
  }
  return p.role === "tab" && (p["aria-selected"] = a, a || (p.tabIndex = -1), K && (p.tabIndex = -1, p["aria-disabled"] = !0)), p.onClick = Oi((l) => {
    K || (o == null || o(l), s != null && M && !l.isPropagationStopped() && M(s, l));
  }), [p, {
    isActive: a
  }];
}
const E5 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef((s, o) => {
  let {
    as: E = O3,
    active: z,
    eventKey: P
  } = s, K = kk(s, Lk);
  const [M, L] = M5(Object.assign({
    key: av(P, K.href),
    active: z
  }, K));
  return M[tp("active")] = L.isActive, /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(E, Object.assign({}, K, M, {
    ref: o
  }));
});
E5.displayName = "NavItem";
const Ik = E5, Nk = ["as", "onSelect", "activeKey", "role", "onKeyDown"];
function Ok(s, o) {
  if (s == null)
    return {};
  var E = {}, z = Object.keys(s), P, K;
  for (K = 0; K < z.length; K++)
    P = z[K], !(o.indexOf(P) >= 0) && (E[P] = s[P]);
  return E;
}
const Dw = () => {
}, Rw = tp("event-key"), D5 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef((s, o) => {
  let {
    // Need to define the default "as" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595
    as: E = "div",
    onSelect: z,
    activeKey: P,
    role: K,
    onKeyDown: M
  } = s, L = Ok(s, Nk);
  const r = S5(), a = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(!1), p = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(Uu), l = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(ep);
  let f, u;
  l && (K = K || "tablist", P = l.activeKey, f = l.getControlledId, u = l.getControllerId);
  const c = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null), d = (x) => {
    const D = c.current;
    if (!D)
      return null;
    const C = Nf(D, `[${Rw}]:not([aria-disabled=true])`), w = D.querySelector("[aria-selected=true]");
    if (!w || w !== document.activeElement)
      return null;
    const S = C.indexOf(w);
    if (S === -1)
      return null;
    let T = S + x;
    return T >= C.length && (T = 0), T < 0 && (T = C.length - 1), C[T];
  }, h = (x, D) => {
    x != null && (z == null || z(x, D), p == null || p(x, D));
  }, i = (x) => {
    if (M == null || M(x), !l)
      return;
    let D;
    switch (x.key) {
      case "ArrowLeft":
      case "ArrowUp":
        D = d(-1);
        break;
      case "ArrowRight":
      case "ArrowDown":
        D = d(1);
        break;
      default:
        return;
    }
    D && (x.preventDefault(), h(D.dataset[Mk("EventKey")] || null, x), a.current = !0, r());
  };
  (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
    if (c.current && a.current) {
      const x = c.current.querySelector(`[${Rw}][aria-selected=true]`);
      x == null || x.focus();
    }
    a.current = !1;
  });
  const b = ed(o, c);
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Uu.Provider, {
    value: h,
    children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(n1.Provider, {
      value: {
        role: K,
        // used by NavLink to determine it's role
        activeKey: av(P),
        getControlledId: f || Dw,
        getControllerId: u || Dw
      },
      children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(E, Object.assign({}, L, {
        onKeyDown: i,
        ref: b,
        role: K
      }))
    })
  });
});
D5.displayName = "Nav";
const Pk = Object.assign(D5, {
  Item: Ik
}), td = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createContext(null);
td.displayName = "NavbarContext";
const P3 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createContext(null);
P3.displayName = "CardHeaderContext";
const R5 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  className: s,
  bsPrefix: o,
  as: E = "div",
  ...z
}, P) => (o = kn(o, "nav-item"), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(E, {
  ref: P,
  className: bn(s, o),
  ...z
})));
R5.displayName = "NavItem";
function Fk() {
  return (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);
}
function zk(s, o, E, z = !1) {
  const P = Oi(E);
  (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
    const K = typeof s == "function" ? s() : s;
    return K.addEventListener(o, P, z), () => K.removeEventListener(o, P, z);
  }, [s]);
}
function L5() {
  const s = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(!0), o = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(() => s.current);
  return (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => (s.current = !0, () => {
    s.current = !1;
  }), []), o.current;
}
function k5(s) {
  const o = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
  return (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
    o.current = s;
  }), o.current;
}
const _k = typeof __webpack_require__.g < "u" && // @ts-ignore
__webpack_require__.g.navigator && // @ts-ignore
__webpack_require__.g.navigator.product === "ReactNative", Hk = typeof document < "u", Pg = Hk || _k ? react__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_1__.useEffect, Bk = ["onKeyDown"];
function Vk(s, o) {
  if (s == null)
    return {};
  var E = {}, z = Object.keys(s), P, K;
  for (K = 0; K < z.length; K++)
    P = z[K], !(o.indexOf(P) >= 0) && (E[P] = s[P]);
  return E;
}
function Gk(s) {
  return !s || s.trim() === "#";
}
const rm = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef((s, o) => {
  let {
    onKeyDown: E
  } = s, z = Vk(s, Bk);
  const [P] = N3(Object.assign({
    tagName: "a"
  }, z)), K = Oi((M) => {
    P.onKeyDown(M), E == null || E(M);
  });
  return Gk(z.href) || z.role === "button" ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("a", Object.assign({
    ref: o
  }, z, P, {
    onKeyDown: K
  })) : /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("a", Object.assign({
    ref: o
  }, z, {
    onKeyDown: E
  }));
});
rm.displayName = "Anchor";
const F3 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  bsPrefix: s,
  className: o,
  as: E = rm,
  active: z,
  eventKey: P,
  disabled: K = !1,
  ...M
}, L) => {
  s = kn(s, "nav-link");
  const [r, a] = M5({
    key: av(P, M.href),
    active: z,
    disabled: K,
    ...M
  });
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(E, {
    ...M,
    ...r,
    ref: L,
    disabled: K,
    className: bn(o, s, K && "disabled", a.isActive && "active")
  });
});
F3.displayName = "NavLink";
const I5 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef((s, o) => {
  const {
    as: E = "div",
    bsPrefix: z,
    variant: P,
    fill: K = !1,
    justify: M = !1,
    navbar: L,
    navbarScroll: r,
    className: a,
    activeKey: p,
    ...l
  } = r1(s, {
    activeKey: "onSelect"
  }), f = kn(z, "nav");
  let u, c, d = !1;
  const h = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(td), i = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(P3);
  return h ? (u = h.bsPrefix, d = L ?? !0) : i && ({
    cardHeaderBsPrefix: c
  } = i), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Pk, {
    as: E,
    ref: o,
    activeKey: p,
    className: bn(a, {
      [f]: !d,
      [`${u}-nav`]: d,
      [`${u}-nav-scroll`]: d && r,
      [`${c}-${P}`]: !!c,
      [`${f}-${P}`]: !!P,
      [`${f}-fill`]: K,
      [`${f}-justified`]: M
    }),
    ...l
  });
});
I5.displayName = "Nav";
const k0 = Object.assign(I5, {
  Item: R5,
  Link: F3
}), N5 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  bsPrefix: s,
  className: o,
  as: E,
  ...z
}, P) => {
  s = kn(s, "navbar-brand");
  const K = E || (z.href ? "a" : "span");
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(K, {
    ...z,
    ref: P,
    className: bn(o, s)
  });
});
N5.displayName = "NavbarBrand";
function I0(...s) {
  return s.filter((o) => o != null).reduce((o, E) => {
    if (typeof E != "function")
      throw new Error("Invalid Argument Type, must only provide functions, undefined, or null.");
    return o === null ? E : function(...P) {
      o.apply(this, P), E.apply(this, P);
    };
  }, null);
}
const Uk = {
  height: ["marginTop", "marginBottom"],
  width: ["marginLeft", "marginRight"]
};
function Wk(s, o) {
  const E = `offset${s[0].toUpperCase()}${s.slice(1)}`, z = o[E], P = Uk[s];
  return z + // @ts-ignore
  parseInt(Ff(o, P[0]), 10) + // @ts-ignore
  parseInt(Ff(o, P[1]), 10);
}
const Yk = {
  [Jc]: "collapse",
  [Y0]: "collapsing",
  [ru]: "collapsing",
  [Of]: "collapse show"
}, Xk = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1___default().forwardRef(({
  onEnter: s,
  onEntering: o,
  onEntered: E,
  onExit: z,
  onExiting: P,
  className: K,
  children: M,
  dimension: L = "height",
  in: r = !1,
  timeout: a = 300,
  mountOnEnter: p = !1,
  unmountOnExit: l = !1,
  appear: f = !1,
  getDimensionValue: u = Wk,
  ...c
}, d) => {
  const h = typeof L == "function" ? L() : L, i = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => I0((w) => {
    w.style[h] = "0";
  }, s), [h, s]), b = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => I0((w) => {
    const S = `scroll${h[0].toUpperCase()}${h.slice(1)}`;
    w.style[h] = `${w[S]}px`;
  }, o), [h, o]), x = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => I0((w) => {
    w.style[h] = null;
  }, E), [h, E]), D = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => I0((w) => {
    w.style[h] = `${u(h, w)}px`, qS(w);
  }, z), [z, u, h]), C = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => I0((w) => {
    w.style[h] = null;
  }, P), [h, P]);
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(M3, {
    ref: d,
    addEndListener: S3,
    ...c,
    "aria-expanded": c.role ? r : null,
    onEnter: i,
    onEntering: b,
    onEntered: x,
    onExit: D,
    onExiting: C,
    childRef: M.ref,
    in: r,
    timeout: a,
    mountOnEnter: p,
    unmountOnExit: l,
    appear: f,
    children: (w, S) => /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1___default().cloneElement(M, {
      ...S,
      className: bn(K, M.props.className, Yk[w], h === "width" && "collapse-horizontal")
    })
  });
}), O5 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  children: s,
  bsPrefix: o,
  ...E
}, z) => {
  o = kn(o, "navbar-collapse");
  const P = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(td);
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Xk, {
    in: !!(P && P.expanded),
    ...E,
    children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
      ref: z,
      className: o,
      children: s
    })
  });
});
O5.displayName = "NavbarCollapse";
const P5 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  bsPrefix: s,
  className: o,
  children: E,
  label: z = "Toggle navigation",
  // Need to define the default "as" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595
  as: P = "button",
  onClick: K,
  ...M
}, L) => {
  s = kn(s, "navbar-toggler");
  const {
    onToggle: r,
    expanded: a
  } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(td) || {}, p = Oi((l) => {
    K && K(l), r && r();
  });
  return P === "button" && (M.type = "button"), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(P, {
    ...M,
    ref: L,
    onClick: p,
    "aria-label": z,
    className: bn(o, s, !a && "collapsed"),
    children: E || /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", {
      className: `${s}-icon`
    })
  });
});
P5.displayName = "NavbarToggle";
const s3 = /* @__PURE__ */ new WeakMap(), Lw = (s, o) => {
  if (!s || !o)
    return;
  const E = s3.get(o) || /* @__PURE__ */ new Map();
  s3.set(o, E);
  let z = E.get(s);
  return z || (z = o.matchMedia(s), z.refCount = 0, E.set(z.media, z)), z;
};
function jk(s, o = typeof window > "u" ? void 0 : window) {
  const E = Lw(s, o), [z, P] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(() => E ? E.matches : !1);
  return Pg(() => {
    let K = Lw(s, o);
    if (!K)
      return P(!1);
    let M = s3.get(o);
    const L = () => {
      P(K.matches);
    };
    return K.refCount++, K.addListener(L), L(), () => {
      K.removeListener(L), K.refCount--, K.refCount <= 0 && (M == null || M.delete(K.media)), K = void 0;
    };
  }, [s]), z;
}
function Zk(s) {
  const o = Object.keys(s);
  function E(L, r) {
    return L === r ? r : L ? `${L} and ${r}` : r;
  }
  function z(L) {
    return o[Math.min(o.indexOf(L) + 1, o.length - 1)];
  }
  function P(L) {
    const r = z(L);
    let a = s[r];
    return typeof a == "number" ? a = `${a - 0.2}px` : a = `calc(${a} - 0.2px)`, `(max-width: ${a})`;
  }
  function K(L) {
    let r = s[L];
    return typeof r == "number" && (r = `${r}px`), `(min-width: ${r})`;
  }
  function M(L, r, a) {
    let p;
    typeof L == "object" ? (p = L, a = r, r = !0) : (r = r || !0, p = {
      [L]: r
    });
    let l = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => Object.entries(p).reduce((f, [u, c]) => ((c === "up" || c === !0) && (f = E(f, K(u))), (c === "down" || c === !0) && (f = E(f, P(u))), f), ""), [JSON.stringify(p)]);
    return jk(l, a);
  }
  return M;
}
const $k = Zk({
  xs: 0,
  sm: 576,
  md: 768,
  lg: 992,
  xl: 1200,
  xxl: 1400
});
function Px(s) {
  s === void 0 && (s = Jg());
  try {
    var o = s.activeElement;
    return !o || !o.nodeName ? null : o;
  } catch {
    return s.body;
  }
}
function Fg(s, o) {
  if (s.contains)
    return s.contains(o);
  if (s.compareDocumentPosition)
    return s === o || !!(s.compareDocumentPosition(o) & 16);
}
function Jk(s) {
  const o = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(s);
  return o.current = s, o;
}
function Qk(s) {
  const o = Jk(s);
  (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => () => o.current(), []);
}
function Kk(s = document) {
  const o = s.defaultView;
  return Math.abs(o.innerWidth - s.documentElement.clientWidth);
}
const kw = tp("modal-open");
class z3 {
  constructor({
    ownerDocument: o,
    handleContainerOverflow: E = !0,
    isRTL: z = !1
  } = {}) {
    this.handleContainerOverflow = E, this.isRTL = z, this.modals = [], this.ownerDocument = o;
  }
  getScrollbarWidth() {
    return Kk(this.ownerDocument);
  }
  getElement() {
    return (this.ownerDocument || document).body;
  }
  setModalAttributes(o) {
  }
  removeModalAttributes(o) {
  }
  setContainerStyle(o) {
    const E = {
      overflow: "hidden"
    }, z = this.isRTL ? "paddingLeft" : "paddingRight", P = this.getElement();
    o.style = {
      overflow: P.style.overflow,
      [z]: P.style[z]
    }, o.scrollBarWidth && (E[z] = `${parseInt(Ff(P, z) || "0", 10) + o.scrollBarWidth}px`), P.setAttribute(kw, ""), Ff(P, E);
  }
  reset() {
    [...this.modals].forEach((o) => this.remove(o));
  }
  removeContainerStyle(o) {
    const E = this.getElement();
    E.removeAttribute(kw), Object.assign(E.style, o.style);
  }
  add(o) {
    let E = this.modals.indexOf(o);
    return E !== -1 || (E = this.modals.length, this.modals.push(o), this.setModalAttributes(o), E !== 0) || (this.state = {
      scrollBarWidth: this.getScrollbarWidth(),
      style: {}
    }, this.handleContainerOverflow && this.setContainerStyle(this.state)), E;
  }
  remove(o) {
    const E = this.modals.indexOf(o);
    E !== -1 && (this.modals.splice(E, 1), !this.modals.length && this.handleContainerOverflow && this.removeContainerStyle(this.state), this.removeModalAttributes(o));
  }
  isTopModal(o) {
    return !!this.modals.length && this.modals[this.modals.length - 1] === o;
  }
}
const F5 = /* @__PURE__ */ (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)(Qg ? window : void 0);
F5.Provider;
function a1() {
  return (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(F5);
}
const Fx = (s, o) => Qg ? s == null ? (o || Jg()).body : (typeof s == "function" && (s = s()), s && "current" in s && (s = s.current), s && ("nodeType" in s || s.getBoundingClientRect) ? s : null) : null;
function qk(s, o) {
  const E = a1(), [z, P] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(() => Fx(s, E == null ? void 0 : E.document));
  if (!z) {
    const K = Fx(s);
    K && P(K);
  }
  return (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
  }, [o, z]), (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
    const K = Fx(s);
    K !== z && P(K);
  }, [s, z]), z;
}
function eI(s) {
  return s.code === "Escape" || s.keyCode === 27;
}
function tI() {
  const s = react__WEBPACK_IMPORTED_MODULE_1__.version.split(".");
  return {
    major: +s[0],
    minor: +s[1],
    patch: +s[2]
  };
}
const rI = ["onEnter", "onEntering", "onEntered", "onExit", "onExiting", "onExited", "addEndListener", "children"];
function nI(s, o) {
  if (s == null)
    return {};
  var E = {}, z = Object.keys(s), P, K;
  for (K = 0; K < z.length; K++)
    P = z[K], !(o.indexOf(P) >= 0) && (E[P] = s[P]);
  return E;
}
function aI(s) {
  let {
    onEnter: o,
    onEntering: E,
    onEntered: z,
    onExit: P,
    onExiting: K,
    onExited: M,
    addEndListener: L,
    children: r
  } = s, a = nI(s, rI);
  const {
    major: p
  } = tI(), l = p >= 19 ? r.props.ref : r.ref, f = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null), u = ed(f, typeof r == "function" ? null : l), c = (w) => (S) => {
    w && f.current && w(f.current, S);
  }, d = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(c(o), [o]), h = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(c(E), [E]), i = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(c(z), [z]), b = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(c(P), [P]), x = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(c(K), [K]), D = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(c(M), [M]), C = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(c(L), [L]);
  return Object.assign({}, a, {
    nodeRef: f
  }, o && {
    onEnter: d
  }, E && {
    onEntering: h
  }, z && {
    onEntered: i
  }, P && {
    onExit: b
  }, K && {
    onExiting: x
  }, M && {
    onExited: D
  }, L && {
    addEndListener: C
  }, {
    children: typeof r == "function" ? (w, S) => (
      // TODO: Types for RTG missing innerProps, so need to cast.
      r(w, Object.assign({}, S, {
        ref: u
      }))
    ) : /* @__PURE__ */ (0,react__WEBPACK_IMPORTED_MODULE_1__.cloneElement)(r, {
      ref: u
    })
  });
}
const iI = ["component"];
function oI(s, o) {
  if (s == null)
    return {};
  var E = {}, z = Object.keys(s), P, K;
  for (K = 0; K < z.length; K++)
    P = z[K], !(o.indexOf(P) >= 0) && (E[P] = s[P]);
  return E;
}
const lI = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef((s, o) => {
  let {
    component: E
  } = s, z = oI(s, iI);
  const P = aI(z);
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(E, Object.assign({
    ref: o
  }, P));
});
function sI({
  in: s,
  onTransition: o
}) {
  const E = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null), z = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(!0), P = Oi(o);
  return Pg(() => {
    if (!E.current)
      return;
    let K = !1;
    return P({
      in: s,
      element: E.current,
      initial: z.current,
      isStale: () => K
    }), () => {
      K = !0;
    };
  }, [s, P]), Pg(() => (z.current = !1, () => {
    z.current = !0;
  }), []), E;
}
function uI({
  children: s,
  in: o,
  onExited: E,
  onEntered: z,
  transition: P
}) {
  const [K, M] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(!o);
  o && K && M(!1);
  const L = sI({
    in: !!o,
    onTransition: (a) => {
      const p = () => {
        a.isStale() || (a.in ? z == null || z(a.element, a.initial) : (M(!0), E == null || E(a.element)));
      };
      Promise.resolve(P(a)).then(p, (l) => {
        throw a.in || M(!0), l;
      });
    }
  }), r = ed(L, s.ref);
  return K && !o ? null : /* @__PURE__ */ (0,react__WEBPACK_IMPORTED_MODULE_1__.cloneElement)(s, {
    ref: r
  });
}
function Iw(s, o, E) {
  return s ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(lI, Object.assign({}, E, {
    component: s
  })) : o ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(uI, Object.assign({}, E, {
    transition: o
  })) : /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(A3, Object.assign({}, E));
}
const fI = ["show", "role", "className", "style", "children", "backdrop", "keyboard", "onBackdropClick", "onEscapeKeyDown", "transition", "runTransition", "backdropTransition", "runBackdropTransition", "autoFocus", "enforceFocus", "restoreFocus", "restoreFocusOptions", "renderDialog", "renderBackdrop", "manager", "container", "onShow", "onHide", "onExit", "onExited", "onExiting", "onEnter", "onEntering", "onEntered"];
function cI(s, o) {
  if (s == null)
    return {};
  var E = {}, z = Object.keys(s), P, K;
  for (K = 0; K < z.length; K++)
    P = z[K], !(o.indexOf(P) >= 0) && (E[P] = s[P]);
  return E;
}
let zx;
function dI(s) {
  return zx || (zx = new z3({
    ownerDocument: s == null ? void 0 : s.document
  })), zx;
}
function vI(s) {
  const o = a1(), E = s || dI(o), z = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)({
    dialog: null,
    backdrop: null
  });
  return Object.assign(z.current, {
    add: () => E.add(z.current),
    remove: () => E.remove(z.current),
    isTopModal: () => E.isTopModal(z.current),
    setDialogRef: (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((P) => {
      z.current.dialog = P;
    }, []),
    setBackdropRef: (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((P) => {
      z.current.backdrop = P;
    }, [])
  });
}
const z5 = /* @__PURE__ */ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((s, o) => {
  let {
    show: E = !1,
    role: z = "dialog",
    className: P,
    style: K,
    children: M,
    backdrop: L = !0,
    keyboard: r = !0,
    onBackdropClick: a,
    onEscapeKeyDown: p,
    transition: l,
    runTransition: f,
    backdropTransition: u,
    runBackdropTransition: c,
    autoFocus: d = !0,
    enforceFocus: h = !0,
    restoreFocus: i = !0,
    restoreFocusOptions: b,
    renderDialog: x,
    renderBackdrop: D = (xe) => /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", Object.assign({}, xe)),
    manager: C,
    container: w,
    onShow: S,
    onHide: T = () => {
    },
    onExit: k,
    onExited: A,
    onExiting: R,
    onEnter: g,
    onEntering: I,
    onEntered: O
  } = s, $ = cI(s, fI);
  const Y = a1(), ne = qk(w), q = vI(C), B = L5(), X = k5(E), [U, te] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(!E), se = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
  (0,react__WEBPACK_IMPORTED_MODULE_1__.useImperativeHandle)(o, () => q, [q]), Qg && !X && E && (se.current = Px(Y == null ? void 0 : Y.document)), E && U && te(!1);
  const me = Oi(() => {
    if (q.add(), fe.current = Kc(document, "keydown", oe), ve.current = Kc(
      document,
      "focus",
      // the timeout is necessary b/c this will run before the new modal is mounted
      // and so steals focus from it
      () => setTimeout(W),
      !0
    ), S && S(), d) {
      var xe, Me;
      const De = Px((xe = (Me = q.dialog) == null ? void 0 : Me.ownerDocument) != null ? xe : Y == null ? void 0 : Y.document);
      q.dialog && De && !Fg(q.dialog, De) && (se.current = De, q.dialog.focus());
    }
  }), J = Oi(() => {
    if (q.remove(), fe.current == null || fe.current(), ve.current == null || ve.current(), i) {
      var xe;
      (xe = se.current) == null || xe.focus == null || xe.focus(b), se.current = null;
    }
  });
  (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
    !E || !ne || me();
  }, [
    E,
    ne,
    /* should never change: */
    me
  ]), (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
    U && J();
  }, [U, J]), Qk(() => {
    J();
  });
  const W = Oi(() => {
    if (!h || !B() || !q.isTopModal())
      return;
    const xe = Px(Y == null ? void 0 : Y.document);
    q.dialog && xe && !Fg(q.dialog, xe) && q.dialog.focus();
  }), ae = Oi((xe) => {
    xe.target === xe.currentTarget && (a == null || a(xe), L === !0 && T());
  }), oe = Oi((xe) => {
    r && eI(xe) && q.isTopModal() && (p == null || p(xe), xe.defaultPrevented || T());
  }), ve = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(), fe = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(), ye = (...xe) => {
    te(!0), A == null || A(...xe);
  };
  if (!ne)
    return null;
  const Ce = Object.assign({
    role: z,
    ref: q.setDialogRef,
    // apparently only works on the dialog role element
    "aria-modal": z === "dialog" ? !0 : void 0
  }, $, {
    style: K,
    className: P,
    tabIndex: -1
  });
  let Re = x ? x(Ce) : /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", Object.assign({}, Ce, {
    children: /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.cloneElement(M, {
      role: "document"
    })
  }));
  Re = Iw(l, f, {
    unmountOnExit: !0,
    mountOnEnter: !0,
    appear: !0,
    in: !!E,
    onExit: k,
    onExiting: R,
    onExited: ye,
    onEnter: g,
    onEntering: I,
    onEntered: O,
    children: Re
  });
  let Be = null;
  return L && (Be = D({
    ref: q.setBackdropRef,
    onClick: ae
  }), Be = Iw(u, c, {
    in: !!E,
    appear: !0,
    mountOnEnter: !0,
    unmountOnExit: !0,
    children: Be
  })), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
    children: /* @__PURE__ */ Gh.createPortal(/* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
      children: [Be, Re]
    }), ne)
  });
});
z5.displayName = "Modal";
const hI = Object.assign(z5, {
  Manager: z3
}), _5 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  className: s,
  bsPrefix: o,
  as: E = "div",
  ...z
}, P) => (o = kn(o, "offcanvas-body"), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(E, {
  ref: P,
  className: bn(s, o),
  ...z
})));
_5.displayName = "OffcanvasBody";
const pI = {
  [ru]: "show",
  [Of]: "show"
}, H5 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  bsPrefix: s,
  className: o,
  children: E,
  in: z = !1,
  mountOnEnter: P = !1,
  unmountOnExit: K = !1,
  appear: M = !1,
  ...L
}, r) => (s = kn(s, "offcanvas"), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(M3, {
  ref: r,
  addEndListener: S3,
  in: z,
  mountOnEnter: P,
  unmountOnExit: K,
  appear: M,
  ...L,
  childRef: E.ref,
  children: (a, p) => /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.cloneElement(E, {
    ...p,
    className: bn(o, E.props.className, (a === ru || a === Y0) && `${s}-toggling`, pI[a])
  })
})));
H5.displayName = "OffcanvasToggling";
const B5 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createContext({
  // eslint-disable-next-line @typescript-eslint/no-empty-function
  onHide() {
  }
}), mI = {
  /** An accessible label indicating the relevant information about the Close Button. */
  "aria-label": Nn.string,
  /** A callback fired after the Close Button is clicked. */
  onClick: Nn.func,
  /**
   * Render different color variant for the button.
   *
   * Omitting this will render the default dark color.
   */
  variant: Nn.oneOf(["white"])
}, i1 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  className: s,
  variant: o,
  "aria-label": E = "Close",
  ...z
}, P) => /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("button", {
  ref: P,
  type: "button",
  className: bn("btn-close", o && `btn-close-${o}`, s),
  "aria-label": E,
  ...z
}));
i1.displayName = "CloseButton";
i1.propTypes = mI;
const yI = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  closeLabel: s = "Close",
  closeVariant: o,
  closeButton: E = !1,
  onHide: z,
  children: P,
  ...K
}, M) => {
  const L = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(B5), r = Oi(() => {
    L == null || L.onHide(), z == null || z();
  });
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
    ref: M,
    ...K,
    children: [P, E && /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(i1, {
      "aria-label": s,
      variant: o,
      onClick: r
    })]
  });
}), V5 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  bsPrefix: s,
  className: o,
  closeLabel: E = "Close",
  closeButton: z = !1,
  ...P
}, K) => (s = kn(s, "offcanvas-header"), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(yI, {
  ref: K,
  ...P,
  className: bn(o, s),
  closeLabel: E,
  closeButton: z
})));
V5.displayName = "OffcanvasHeader";
const o1 = (s) => /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef((o, E) => /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
  ...o,
  ref: E,
  className: bn(o.className, s)
})), gI = o1("h5"), G5 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  className: s,
  bsPrefix: o,
  as: E = gI,
  ...z
}, P) => (o = kn(o, "offcanvas-title"), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(E, {
  ref: P,
  className: bn(s, o),
  ...z
})));
G5.displayName = "OffcanvasTitle";
function bI(s, o) {
  return s.classList ? s.classList.contains(o) : (" " + (s.className.baseVal || s.className) + " ").indexOf(" " + o + " ") !== -1;
}
function xI(s, o) {
  s.classList ? s.classList.add(o) : bI(s, o) || (typeof s.className == "string" ? s.className = s.className + " " + o : s.setAttribute("class", (s.className && s.className.baseVal || "") + " " + o));
}
function Nw(s, o) {
  return s.replace(new RegExp("(^|\\s)" + o + "(?:\\s|$)", "g"), "$1").replace(/\s+/g, " ").replace(/^\s*|\s*$/g, "");
}
function TI(s, o) {
  s.classList ? s.classList.remove(o) : typeof s.className == "string" ? s.className = Nw(s.className, o) : s.setAttribute("class", Nw(s.className && s.className.baseVal || "", o));
}
const Bh = {
  FIXED_CONTENT: ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",
  STICKY_CONTENT: ".sticky-top",
  NAVBAR_TOGGLER: ".navbar-toggler"
};
class U5 extends z3 {
  adjustAndStore(o, E, z) {
    const P = E.style[o];
    E.dataset[o] = P, Ff(E, {
      [o]: `${parseFloat(Ff(E, o)) + z}px`
    });
  }
  restore(o, E) {
    const z = E.dataset[o];
    z !== void 0 && (delete E.dataset[o], Ff(E, {
      [o]: z
    }));
  }
  setContainerStyle(o) {
    super.setContainerStyle(o);
    const E = this.getElement();
    if (xI(E, "modal-open"), !o.scrollBarWidth)
      return;
    const z = this.isRTL ? "paddingLeft" : "paddingRight", P = this.isRTL ? "marginLeft" : "marginRight";
    Nf(E, Bh.FIXED_CONTENT).forEach((K) => this.adjustAndStore(z, K, o.scrollBarWidth)), Nf(E, Bh.STICKY_CONTENT).forEach((K) => this.adjustAndStore(P, K, -o.scrollBarWidth)), Nf(E, Bh.NAVBAR_TOGGLER).forEach((K) => this.adjustAndStore(P, K, o.scrollBarWidth));
  }
  removeContainerStyle(o) {
    super.removeContainerStyle(o);
    const E = this.getElement();
    TI(E, "modal-open");
    const z = this.isRTL ? "paddingLeft" : "paddingRight", P = this.isRTL ? "marginLeft" : "marginRight";
    Nf(E, Bh.FIXED_CONTENT).forEach((K) => this.restore(z, K)), Nf(E, Bh.STICKY_CONTENT).forEach((K) => this.restore(P, K)), Nf(E, Bh.NAVBAR_TOGGLER).forEach((K) => this.restore(P, K));
  }
}
let _x;
function CI(s) {
  return _x || (_x = new U5(s)), _x;
}
function AI(s) {
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(H5, {
    ...s
  });
}
function wI(s) {
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(jh, {
    ...s
  });
}
const W5 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  bsPrefix: s,
  className: o,
  children: E,
  "aria-labelledby": z,
  placement: P = "start",
  responsive: K,
  /* BaseModal props */
  show: M = !1,
  backdrop: L = !0,
  keyboard: r = !0,
  scroll: a = !1,
  onEscapeKeyDown: p,
  onShow: l,
  onHide: f,
  container: u,
  autoFocus: c = !0,
  enforceFocus: d = !0,
  restoreFocus: h = !0,
  restoreFocusOptions: i,
  onEntered: b,
  onExit: x,
  onExiting: D,
  onEnter: C,
  onEntering: w,
  onExited: S,
  backdropClassName: T,
  manager: k,
  renderStaticNode: A = !1,
  ...R
}, g) => {
  const I = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)();
  s = kn(s, "offcanvas");
  const {
    onToggle: O
  } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(td) || {}, [$, Y] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(!1), ne = $k(K || "xs", "up");
  (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
    Y(K ? M && !ne : M);
  }, [M, K, ne]);
  const q = Oi(() => {
    O == null || O(), f == null || f();
  }), B = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => ({
    onHide: q
  }), [q]);
  function X() {
    return k || (a ? (I.current || (I.current = new U5({
      handleContainerOverflow: !1
    })), I.current) : CI());
  }
  const U = (J, ...W) => {
    J && (J.style.visibility = "visible"), C == null || C(J, ...W);
  }, te = (J, ...W) => {
    J && (J.style.visibility = ""), S == null || S(...W);
  }, se = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((J) => /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
    ...J,
    className: bn(`${s}-backdrop`, T)
  }), [T, s]), me = (J) => /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
    ...J,
    ...R,
    className: bn(o, K ? `${s}-${K}` : s, `${s}-${P}`),
    "aria-labelledby": z,
    children: E
  });
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
    children: [!$ && (K || A) && me({}), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(B5.Provider, {
      value: B,
      children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(hI, {
        show: $,
        ref: g,
        backdrop: L,
        container: u,
        keyboard: r,
        autoFocus: c,
        enforceFocus: d && !a,
        restoreFocus: h,
        restoreFocusOptions: i,
        onEscapeKeyDown: p,
        onShow: l,
        onHide: q,
        onEnter: U,
        onEntering: w,
        onEntered: b,
        onExit: x,
        onExiting: D,
        onExited: te,
        manager: X(),
        transition: AI,
        backdropTransition: wI,
        renderBackdrop: se,
        renderDialog: me
      })
    })]
  });
});
W5.displayName = "Offcanvas";
const SI = Object.assign(W5, {
  Body: _5,
  Header: V5,
  Title: G5
}), Y5 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef((s, o) => {
  const E = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(td);
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(SI, {
    ref: o,
    show: !!(E != null && E.expanded),
    ...s,
    renderStaticNode: !0
  });
});
Y5.displayName = "NavbarOffcanvas";
const X5 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  className: s,
  bsPrefix: o,
  as: E = "span",
  ...z
}, P) => (o = kn(o, "navbar-text"), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(E, {
  ref: P,
  className: bn(s, o),
  ...z
})));
X5.displayName = "NavbarText";
const j5 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef((s, o) => {
  const {
    bsPrefix: E,
    expand: z = !0,
    variant: P = "light",
    bg: K,
    fixed: M,
    sticky: L,
    className: r,
    // Need to define the default "as" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595
    as: a = "nav",
    expanded: p,
    onToggle: l,
    onSelect: f,
    collapseOnSelect: u = !1,
    ...c
  } = r1(s, {
    expanded: "onToggle"
  }), d = kn(E, "navbar"), h = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((...x) => {
    f == null || f(...x), u && p && (l == null || l(!1));
  }, [f, u, p, l]);
  c.role === void 0 && a !== "nav" && (c.role = "navigation");
  let i = `${d}-expand`;
  typeof z == "string" && (i = `${i}-${z}`);
  const b = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => ({
    onToggle: () => l == null ? void 0 : l(!p),
    bsPrefix: d,
    expanded: !!p,
    expand: z
  }), [d, p, z, l]);
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(td.Provider, {
    value: b,
    children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Uu.Provider, {
      value: h,
      children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(a, {
        ref: o,
        ...c,
        className: bn(r, d, z && i, P && `${d}-${P}`, K && `bg-${K}`, L && `sticky-${L}`, M && `fixed-${M}`)
      })
    })
  });
});
j5.displayName = "Navbar";
const Wh = Object.assign(j5, {
  Brand: N5,
  Collapse: O5,
  Offcanvas: Y5,
  Text: X5,
  Toggle: P5
}), l1 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createContext(null);
var Ow = Object.prototype.hasOwnProperty;
function Pw(s, o, E) {
  for (E of s.keys())
    if (V0(E, o))
      return E;
}
function V0(s, o) {
  var E, z, P;
  if (s === o)
    return !0;
  if (s && o && (E = s.constructor) === o.constructor) {
    if (E === Date)
      return s.getTime() === o.getTime();
    if (E === RegExp)
      return s.toString() === o.toString();
    if (E === Array) {
      if ((z = s.length) === o.length)
        for (; z-- && V0(s[z], o[z]); )
          ;
      return z === -1;
    }
    if (E === Set) {
      if (s.size !== o.size)
        return !1;
      for (z of s)
        if (P = z, P && typeof P == "object" && (P = Pw(o, P), !P) || !o.has(P))
          return !1;
      return !0;
    }
    if (E === Map) {
      if (s.size !== o.size)
        return !1;
      for (z of s)
        if (P = z[0], P && typeof P == "object" && (P = Pw(o, P), !P) || !V0(z[1], o.get(P)))
          return !1;
      return !0;
    }
    if (E === ArrayBuffer)
      s = new Uint8Array(s), o = new Uint8Array(o);
    else if (E === DataView) {
      if ((z = s.byteLength) === o.byteLength)
        for (; z-- && s.getInt8(z) === o.getInt8(z); )
          ;
      return z === -1;
    }
    if (ArrayBuffer.isView(s)) {
      if ((z = s.byteLength) === o.byteLength)
        for (; z-- && s[z] === o[z]; )
          ;
      return z === -1;
    }
    if (!E || typeof s == "object") {
      z = 0;
      for (E in s)
        if (Ow.call(s, E) && ++z && !Ow.call(o, E) || !(E in o) || !V0(s[E], o[E]))
          return !1;
      return Object.keys(o).length === z;
    }
  }
  return s !== s && o !== o;
}
function MI(s) {
  const o = L5();
  return [s[0], (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((E) => {
    if (o())
      return s[1](E);
  }, [o, s[1]])];
}
var kl = "top", ws = "bottom", Ss = "right", Il = "left", _3 = "auto", nm = [kl, ws, Ss, Il], Zh = "start", j0 = "end", EI = "clippingParents", Z5 = "viewport", N0 = "popper", DI = "reference", Fw = /* @__PURE__ */ nm.reduce(function(s, o) {
  return s.concat([o + "-" + Zh, o + "-" + j0]);
}, []), $5 = /* @__PURE__ */ [].concat(nm, [_3]).reduce(function(s, o) {
  return s.concat([o, o + "-" + Zh, o + "-" + j0]);
}, []), RI = "beforeRead", LI = "read", kI = "afterRead", II = "beforeMain", NI = "main", OI = "afterMain", PI = "beforeWrite", FI = "write", zI = "afterWrite", _I = [RI, LI, kI, II, NI, OI, PI, FI, zI];
function Bu(s) {
  return s.split("-")[0];
}
function es(s) {
  if (s == null)
    return window;
  if (s.toString() !== "[object Window]") {
    var o = s.ownerDocument;
    return o && o.defaultView || window;
  }
  return s;
}
function iv(s) {
  var o = es(s).Element;
  return s instanceof o || s instanceof Element;
}
function Vu(s) {
  var o = es(s).HTMLElement;
  return s instanceof o || s instanceof HTMLElement;
}
function H3(s) {
  if (typeof ShadowRoot > "u")
    return !1;
  var o = es(s).ShadowRoot;
  return s instanceof o || s instanceof ShadowRoot;
}
var rv = Math.max, zg = Math.min, $h = Math.round;
function u3() {
  var s = navigator.userAgentData;
  return s != null && s.brands && Array.isArray(s.brands) ? s.brands.map(function(o) {
    return o.brand + "/" + o.version;
  }).join(" ") : navigator.userAgent;
}
function J5() {
  return !/^((?!chrome|android).)*safari/i.test(u3());
}
function Jh(s, o, E) {
  o === void 0 && (o = !1), E === void 0 && (E = !1);
  var z = s.getBoundingClientRect(), P = 1, K = 1;
  o && Vu(s) && (P = s.offsetWidth > 0 && $h(z.width) / s.offsetWidth || 1, K = s.offsetHeight > 0 && $h(z.height) / s.offsetHeight || 1);
  var M = iv(s) ? es(s) : window, L = M.visualViewport, r = !J5() && E, a = (z.left + (r && L ? L.offsetLeft : 0)) / P, p = (z.top + (r && L ? L.offsetTop : 0)) / K, l = z.width / P, f = z.height / K;
  return {
    width: l,
    height: f,
    top: p,
    right: a + l,
    bottom: p + f,
    left: a,
    x: a,
    y: p
  };
}
function B3(s) {
  var o = Jh(s), E = s.offsetWidth, z = s.offsetHeight;
  return Math.abs(o.width - E) <= 1 && (E = o.width), Math.abs(o.height - z) <= 1 && (z = o.height), {
    x: s.offsetLeft,
    y: s.offsetTop,
    width: E,
    height: z
  };
}
function Q5(s, o) {
  var E = o.getRootNode && o.getRootNode();
  if (s.contains(o))
    return !0;
  if (E && H3(E)) {
    var z = o;
    do {
      if (z && s.isSameNode(z))
        return !0;
      z = z.parentNode || z.host;
    } while (z);
  }
  return !1;
}
function qc(s) {
  return s ? (s.nodeName || "").toLowerCase() : null;
}
function Bf(s) {
  return es(s).getComputedStyle(s);
}
function HI(s) {
  return ["table", "td", "th"].indexOf(qc(s)) >= 0;
}
function rd(s) {
  return ((iv(s) ? s.ownerDocument : (
    // $FlowFixMe[prop-missing]
    s.document
  )) || window.document).documentElement;
}
function s1(s) {
  return qc(s) === "html" ? s : (
    // this is a quicker (but less type safe) way to save quite some bytes from the bundle
    // $FlowFixMe[incompatible-return]
    // $FlowFixMe[prop-missing]
    s.assignedSlot || // step into the shadow DOM of the parent of a slotted node
    s.parentNode || // DOM Element detected
    (H3(s) ? s.host : null) || // ShadowRoot detected
    // $FlowFixMe[incompatible-call]: HTMLElement is a Node
    rd(s)
  );
}
function zw(s) {
  return !Vu(s) || // https://github.com/popperjs/popper-core/issues/837
  Bf(s).position === "fixed" ? null : s.offsetParent;
}
function BI(s) {
  var o = /firefox/i.test(u3()), E = /Trident/i.test(u3());
  if (E && Vu(s)) {
    var z = Bf(s);
    if (z.position === "fixed")
      return null;
  }
  var P = s1(s);
  for (H3(P) && (P = P.host); Vu(P) && ["html", "body"].indexOf(qc(P)) < 0; ) {
    var K = Bf(P);
    if (K.transform !== "none" || K.perspective !== "none" || K.contain === "paint" || ["transform", "perspective"].indexOf(K.willChange) !== -1 || o && K.willChange === "filter" || o && K.filter && K.filter !== "none")
      return P;
    P = P.parentNode;
  }
  return null;
}
function am(s) {
  for (var o = es(s), E = zw(s); E && HI(E) && Bf(E).position === "static"; )
    E = zw(E);
  return E && (qc(E) === "html" || qc(E) === "body" && Bf(E).position === "static") ? o : E || BI(s) || o;
}
function V3(s) {
  return ["top", "bottom"].indexOf(s) >= 0 ? "x" : "y";
}
function G0(s, o, E) {
  return rv(s, zg(o, E));
}
function VI(s, o, E) {
  var z = G0(s, o, E);
  return z > E ? E : z;
}
function K5() {
  return {
    top: 0,
    right: 0,
    bottom: 0,
    left: 0
  };
}
function q5(s) {
  return Object.assign({}, K5(), s);
}
function eM(s, o) {
  return o.reduce(function(E, z) {
    return E[z] = s, E;
  }, {});
}
var GI = function(o, E) {
  return o = typeof o == "function" ? o(Object.assign({}, E.rects, {
    placement: E.placement
  })) : o, q5(typeof o != "number" ? o : eM(o, nm));
};
function UI(s) {
  var o, E = s.state, z = s.name, P = s.options, K = E.elements.arrow, M = E.modifiersData.popperOffsets, L = Bu(E.placement), r = V3(L), a = [Il, Ss].indexOf(L) >= 0, p = a ? "height" : "width";
  if (!(!K || !M)) {
    var l = GI(P.padding, E), f = B3(K), u = r === "y" ? kl : Il, c = r === "y" ? ws : Ss, d = E.rects.reference[p] + E.rects.reference[r] - M[r] - E.rects.popper[p], h = M[r] - E.rects.reference[r], i = am(K), b = i ? r === "y" ? i.clientHeight || 0 : i.clientWidth || 0 : 0, x = d / 2 - h / 2, D = l[u], C = b - f[p] - l[c], w = b / 2 - f[p] / 2 + x, S = G0(D, w, C), T = r;
    E.modifiersData[z] = (o = {}, o[T] = S, o.centerOffset = S - w, o);
  }
}
function WI(s) {
  var o = s.state, E = s.options, z = E.element, P = z === void 0 ? "[data-popper-arrow]" : z;
  P != null && (typeof P == "string" && (P = o.elements.popper.querySelector(P), !P) || Q5(o.elements.popper, P) && (o.elements.arrow = P));
}
const YI = {
  name: "arrow",
  enabled: !0,
  phase: "main",
  fn: UI,
  effect: WI,
  requires: ["popperOffsets"],
  requiresIfExists: ["preventOverflow"]
};
function Qh(s) {
  return s.split("-")[1];
}
var XI = {
  top: "auto",
  right: "auto",
  bottom: "auto",
  left: "auto"
};
function jI(s, o) {
  var E = s.x, z = s.y, P = o.devicePixelRatio || 1;
  return {
    x: $h(E * P) / P || 0,
    y: $h(z * P) / P || 0
  };
}
function _w(s) {
  var o, E = s.popper, z = s.popperRect, P = s.placement, K = s.variation, M = s.offsets, L = s.position, r = s.gpuAcceleration, a = s.adaptive, p = s.roundOffsets, l = s.isFixed, f = M.x, u = f === void 0 ? 0 : f, c = M.y, d = c === void 0 ? 0 : c, h = typeof p == "function" ? p({
    x: u,
    y: d
  }) : {
    x: u,
    y: d
  };
  u = h.x, d = h.y;
  var i = M.hasOwnProperty("x"), b = M.hasOwnProperty("y"), x = Il, D = kl, C = window;
  if (a) {
    var w = am(E), S = "clientHeight", T = "clientWidth";
    if (w === es(E) && (w = rd(E), Bf(w).position !== "static" && L === "absolute" && (S = "scrollHeight", T = "scrollWidth")), w = w, P === kl || (P === Il || P === Ss) && K === j0) {
      D = ws;
      var k = l && w === C && C.visualViewport ? C.visualViewport.height : (
        // $FlowFixMe[prop-missing]
        w[S]
      );
      d -= k - z.height, d *= r ? 1 : -1;
    }
    if (P === Il || (P === kl || P === ws) && K === j0) {
      x = Ss;
      var A = l && w === C && C.visualViewport ? C.visualViewport.width : (
        // $FlowFixMe[prop-missing]
        w[T]
      );
      u -= A - z.width, u *= r ? 1 : -1;
    }
  }
  var R = Object.assign({
    position: L
  }, a && XI), g = p === !0 ? jI({
    x: u,
    y: d
  }, es(E)) : {
    x: u,
    y: d
  };
  if (u = g.x, d = g.y, r) {
    var I;
    return Object.assign({}, R, (I = {}, I[D] = b ? "0" : "", I[x] = i ? "0" : "", I.transform = (C.devicePixelRatio || 1) <= 1 ? "translate(" + u + "px, " + d + "px)" : "translate3d(" + u + "px, " + d + "px, 0)", I));
  }
  return Object.assign({}, R, (o = {}, o[D] = b ? d + "px" : "", o[x] = i ? u + "px" : "", o.transform = "", o));
}
function ZI(s) {
  var o = s.state, E = s.options, z = E.gpuAcceleration, P = z === void 0 ? !0 : z, K = E.adaptive, M = K === void 0 ? !0 : K, L = E.roundOffsets, r = L === void 0 ? !0 : L, a = {
    placement: Bu(o.placement),
    variation: Qh(o.placement),
    popper: o.elements.popper,
    popperRect: o.rects.popper,
    gpuAcceleration: P,
    isFixed: o.options.strategy === "fixed"
  };
  o.modifiersData.popperOffsets != null && (o.styles.popper = Object.assign({}, o.styles.popper, _w(Object.assign({}, a, {
    offsets: o.modifiersData.popperOffsets,
    position: o.options.strategy,
    adaptive: M,
    roundOffsets: r
  })))), o.modifiersData.arrow != null && (o.styles.arrow = Object.assign({}, o.styles.arrow, _w(Object.assign({}, a, {
    offsets: o.modifiersData.arrow,
    position: "absolute",
    adaptive: !1,
    roundOffsets: r
  })))), o.attributes.popper = Object.assign({}, o.attributes.popper, {
    "data-popper-placement": o.placement
  });
}
const $I = {
  name: "computeStyles",
  enabled: !0,
  phase: "beforeWrite",
  fn: ZI,
  data: {}
};
var pg = {
  passive: !0
};
function JI(s) {
  var o = s.state, E = s.instance, z = s.options, P = z.scroll, K = P === void 0 ? !0 : P, M = z.resize, L = M === void 0 ? !0 : M, r = es(o.elements.popper), a = [].concat(o.scrollParents.reference, o.scrollParents.popper);
  return K && a.forEach(function(p) {
    p.addEventListener("scroll", E.update, pg);
  }), L && r.addEventListener("resize", E.update, pg), function() {
    K && a.forEach(function(p) {
      p.removeEventListener("scroll", E.update, pg);
    }), L && r.removeEventListener("resize", E.update, pg);
  };
}
const QI = {
  name: "eventListeners",
  enabled: !0,
  phase: "write",
  fn: function() {
  },
  effect: JI,
  data: {}
};
var KI = {
  left: "right",
  right: "left",
  bottom: "top",
  top: "bottom"
};
function Cg(s) {
  return s.replace(/left|right|bottom|top/g, function(o) {
    return KI[o];
  });
}
var qI = {
  start: "end",
  end: "start"
};
function Hw(s) {
  return s.replace(/start|end/g, function(o) {
    return qI[o];
  });
}
function G3(s) {
  var o = es(s), E = o.pageXOffset, z = o.pageYOffset;
  return {
    scrollLeft: E,
    scrollTop: z
  };
}
function U3(s) {
  return Jh(rd(s)).left + G3(s).scrollLeft;
}
function eN(s, o) {
  var E = es(s), z = rd(s), P = E.visualViewport, K = z.clientWidth, M = z.clientHeight, L = 0, r = 0;
  if (P) {
    K = P.width, M = P.height;
    var a = J5();
    (a || !a && o === "fixed") && (L = P.offsetLeft, r = P.offsetTop);
  }
  return {
    width: K,
    height: M,
    x: L + U3(s),
    y: r
  };
}
function tN(s) {
  var o, E = rd(s), z = G3(s), P = (o = s.ownerDocument) == null ? void 0 : o.body, K = rv(E.scrollWidth, E.clientWidth, P ? P.scrollWidth : 0, P ? P.clientWidth : 0), M = rv(E.scrollHeight, E.clientHeight, P ? P.scrollHeight : 0, P ? P.clientHeight : 0), L = -z.scrollLeft + U3(s), r = -z.scrollTop;
  return Bf(P || E).direction === "rtl" && (L += rv(E.clientWidth, P ? P.clientWidth : 0) - K), {
    width: K,
    height: M,
    x: L,
    y: r
  };
}
function W3(s) {
  var o = Bf(s), E = o.overflow, z = o.overflowX, P = o.overflowY;
  return /auto|scroll|overlay|hidden/.test(E + P + z);
}
function tM(s) {
  return ["html", "body", "#document"].indexOf(qc(s)) >= 0 ? s.ownerDocument.body : Vu(s) && W3(s) ? s : tM(s1(s));
}
function U0(s, o) {
  var E;
  o === void 0 && (o = []);
  var z = tM(s), P = z === ((E = s.ownerDocument) == null ? void 0 : E.body), K = es(z), M = P ? [K].concat(K.visualViewport || [], W3(z) ? z : []) : z, L = o.concat(M);
  return P ? L : (
    // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here
    L.concat(U0(s1(M)))
  );
}
function f3(s) {
  return Object.assign({}, s, {
    left: s.x,
    top: s.y,
    right: s.x + s.width,
    bottom: s.y + s.height
  });
}
function rN(s, o) {
  var E = Jh(s, !1, o === "fixed");
  return E.top = E.top + s.clientTop, E.left = E.left + s.clientLeft, E.bottom = E.top + s.clientHeight, E.right = E.left + s.clientWidth, E.width = s.clientWidth, E.height = s.clientHeight, E.x = E.left, E.y = E.top, E;
}
function Bw(s, o, E) {
  return o === Z5 ? f3(eN(s, E)) : iv(o) ? rN(o, E) : f3(tN(rd(s)));
}
function nN(s) {
  var o = U0(s1(s)), E = ["absolute", "fixed"].indexOf(Bf(s).position) >= 0, z = E && Vu(s) ? am(s) : s;
  return iv(z) ? o.filter(function(P) {
    return iv(P) && Q5(P, z) && qc(P) !== "body";
  }) : [];
}
function aN(s, o, E, z) {
  var P = o === "clippingParents" ? nN(s) : [].concat(o), K = [].concat(P, [E]), M = K[0], L = K.reduce(function(r, a) {
    var p = Bw(s, a, z);
    return r.top = rv(p.top, r.top), r.right = zg(p.right, r.right), r.bottom = zg(p.bottom, r.bottom), r.left = rv(p.left, r.left), r;
  }, Bw(s, M, z));
  return L.width = L.right - L.left, L.height = L.bottom - L.top, L.x = L.left, L.y = L.top, L;
}
function rM(s) {
  var o = s.reference, E = s.element, z = s.placement, P = z ? Bu(z) : null, K = z ? Qh(z) : null, M = o.x + o.width / 2 - E.width / 2, L = o.y + o.height / 2 - E.height / 2, r;
  switch (P) {
    case kl:
      r = {
        x: M,
        y: o.y - E.height
      };
      break;
    case ws:
      r = {
        x: M,
        y: o.y + o.height
      };
      break;
    case Ss:
      r = {
        x: o.x + o.width,
        y: L
      };
      break;
    case Il:
      r = {
        x: o.x - E.width,
        y: L
      };
      break;
    default:
      r = {
        x: o.x,
        y: o.y
      };
  }
  var a = P ? V3(P) : null;
  if (a != null) {
    var p = a === "y" ? "height" : "width";
    switch (K) {
      case Zh:
        r[a] = r[a] - (o[p] / 2 - E[p] / 2);
        break;
      case j0:
        r[a] = r[a] + (o[p] / 2 - E[p] / 2);
        break;
    }
  }
  return r;
}
function Z0(s, o) {
  o === void 0 && (o = {});
  var E = o, z = E.placement, P = z === void 0 ? s.placement : z, K = E.strategy, M = K === void 0 ? s.strategy : K, L = E.boundary, r = L === void 0 ? EI : L, a = E.rootBoundary, p = a === void 0 ? Z5 : a, l = E.elementContext, f = l === void 0 ? N0 : l, u = E.altBoundary, c = u === void 0 ? !1 : u, d = E.padding, h = d === void 0 ? 0 : d, i = q5(typeof h != "number" ? h : eM(h, nm)), b = f === N0 ? DI : N0, x = s.rects.popper, D = s.elements[c ? b : f], C = aN(iv(D) ? D : D.contextElement || rd(s.elements.popper), r, p, M), w = Jh(s.elements.reference), S = rM({
    reference: w,
    element: x,
    strategy: "absolute",
    placement: P
  }), T = f3(Object.assign({}, x, S)), k = f === N0 ? T : w, A = {
    top: C.top - k.top + i.top,
    bottom: k.bottom - C.bottom + i.bottom,
    left: C.left - k.left + i.left,
    right: k.right - C.right + i.right
  }, R = s.modifiersData.offset;
  if (f === N0 && R) {
    var g = R[P];
    Object.keys(A).forEach(function(I) {
      var O = [Ss, ws].indexOf(I) >= 0 ? 1 : -1, $ = [kl, ws].indexOf(I) >= 0 ? "y" : "x";
      A[I] += g[$] * O;
    });
  }
  return A;
}
function iN(s, o) {
  o === void 0 && (o = {});
  var E = o, z = E.placement, P = E.boundary, K = E.rootBoundary, M = E.padding, L = E.flipVariations, r = E.allowedAutoPlacements, a = r === void 0 ? $5 : r, p = Qh(z), l = p ? L ? Fw : Fw.filter(function(c) {
    return Qh(c) === p;
  }) : nm, f = l.filter(function(c) {
    return a.indexOf(c) >= 0;
  });
  f.length === 0 && (f = l);
  var u = f.reduce(function(c, d) {
    return c[d] = Z0(s, {
      placement: d,
      boundary: P,
      rootBoundary: K,
      padding: M
    })[Bu(d)], c;
  }, {});
  return Object.keys(u).sort(function(c, d) {
    return u[c] - u[d];
  });
}
function oN(s) {
  if (Bu(s) === _3)
    return [];
  var o = Cg(s);
  return [Hw(s), o, Hw(o)];
}
function lN(s) {
  var o = s.state, E = s.options, z = s.name;
  if (!o.modifiersData[z]._skip) {
    for (var P = E.mainAxis, K = P === void 0 ? !0 : P, M = E.altAxis, L = M === void 0 ? !0 : M, r = E.fallbackPlacements, a = E.padding, p = E.boundary, l = E.rootBoundary, f = E.altBoundary, u = E.flipVariations, c = u === void 0 ? !0 : u, d = E.allowedAutoPlacements, h = o.options.placement, i = Bu(h), b = i === h, x = r || (b || !c ? [Cg(h)] : oN(h)), D = [h].concat(x).reduce(function(me, J) {
      return me.concat(Bu(J) === _3 ? iN(o, {
        placement: J,
        boundary: p,
        rootBoundary: l,
        padding: a,
        flipVariations: c,
        allowedAutoPlacements: d
      }) : J);
    }, []), C = o.rects.reference, w = o.rects.popper, S = /* @__PURE__ */ new Map(), T = !0, k = D[0], A = 0; A < D.length; A++) {
      var R = D[A], g = Bu(R), I = Qh(R) === Zh, O = [kl, ws].indexOf(g) >= 0, $ = O ? "width" : "height", Y = Z0(o, {
        placement: R,
        boundary: p,
        rootBoundary: l,
        altBoundary: f,
        padding: a
      }), ne = O ? I ? Ss : Il : I ? ws : kl;
      C[$] > w[$] && (ne = Cg(ne));
      var q = Cg(ne), B = [];
      if (K && B.push(Y[g] <= 0), L && B.push(Y[ne] <= 0, Y[q] <= 0), B.every(function(me) {
        return me;
      })) {
        k = R, T = !1;
        break;
      }
      S.set(R, B);
    }
    if (T)
      for (var X = c ? 3 : 1, U = function(J) {
        var W = D.find(function(ae) {
          var oe = S.get(ae);
          if (oe)
            return oe.slice(0, J).every(function(ve) {
              return ve;
            });
        });
        if (W)
          return k = W, "break";
      }, te = X; te > 0; te--) {
        var se = U(te);
        if (se === "break")
          break;
      }
    o.placement !== k && (o.modifiersData[z]._skip = !0, o.placement = k, o.reset = !0);
  }
}
const sN = {
  name: "flip",
  enabled: !0,
  phase: "main",
  fn: lN,
  requiresIfExists: ["offset"],
  data: {
    _skip: !1
  }
};
function Vw(s, o, E) {
  return E === void 0 && (E = {
    x: 0,
    y: 0
  }), {
    top: s.top - o.height - E.y,
    right: s.right - o.width + E.x,
    bottom: s.bottom - o.height + E.y,
    left: s.left - o.width - E.x
  };
}
function Gw(s) {
  return [kl, Ss, ws, Il].some(function(o) {
    return s[o] >= 0;
  });
}
function uN(s) {
  var o = s.state, E = s.name, z = o.rects.reference, P = o.rects.popper, K = o.modifiersData.preventOverflow, M = Z0(o, {
    elementContext: "reference"
  }), L = Z0(o, {
    altBoundary: !0
  }), r = Vw(M, z), a = Vw(L, P, K), p = Gw(r), l = Gw(a);
  o.modifiersData[E] = {
    referenceClippingOffsets: r,
    popperEscapeOffsets: a,
    isReferenceHidden: p,
    hasPopperEscaped: l
  }, o.attributes.popper = Object.assign({}, o.attributes.popper, {
    "data-popper-reference-hidden": p,
    "data-popper-escaped": l
  });
}
const fN = {
  name: "hide",
  enabled: !0,
  phase: "main",
  requiresIfExists: ["preventOverflow"],
  fn: uN
};
function cN(s, o, E) {
  var z = Bu(s), P = [Il, kl].indexOf(z) >= 0 ? -1 : 1, K = typeof E == "function" ? E(Object.assign({}, o, {
    placement: s
  })) : E, M = K[0], L = K[1];
  return M = M || 0, L = (L || 0) * P, [Il, Ss].indexOf(z) >= 0 ? {
    x: L,
    y: M
  } : {
    x: M,
    y: L
  };
}
function dN(s) {
  var o = s.state, E = s.options, z = s.name, P = E.offset, K = P === void 0 ? [0, 0] : P, M = $5.reduce(function(p, l) {
    return p[l] = cN(l, o.rects, K), p;
  }, {}), L = M[o.placement], r = L.x, a = L.y;
  o.modifiersData.popperOffsets != null && (o.modifiersData.popperOffsets.x += r, o.modifiersData.popperOffsets.y += a), o.modifiersData[z] = M;
}
const vN = {
  name: "offset",
  enabled: !0,
  phase: "main",
  requires: ["popperOffsets"],
  fn: dN
};
function hN(s) {
  var o = s.state, E = s.name;
  o.modifiersData[E] = rM({
    reference: o.rects.reference,
    element: o.rects.popper,
    strategy: "absolute",
    placement: o.placement
  });
}
const pN = {
  name: "popperOffsets",
  enabled: !0,
  phase: "read",
  fn: hN,
  data: {}
};
function mN(s) {
  return s === "x" ? "y" : "x";
}
function yN(s) {
  var o = s.state, E = s.options, z = s.name, P = E.mainAxis, K = P === void 0 ? !0 : P, M = E.altAxis, L = M === void 0 ? !1 : M, r = E.boundary, a = E.rootBoundary, p = E.altBoundary, l = E.padding, f = E.tether, u = f === void 0 ? !0 : f, c = E.tetherOffset, d = c === void 0 ? 0 : c, h = Z0(o, {
    boundary: r,
    rootBoundary: a,
    padding: l,
    altBoundary: p
  }), i = Bu(o.placement), b = Qh(o.placement), x = !b, D = V3(i), C = mN(D), w = o.modifiersData.popperOffsets, S = o.rects.reference, T = o.rects.popper, k = typeof d == "function" ? d(Object.assign({}, o.rects, {
    placement: o.placement
  })) : d, A = typeof k == "number" ? {
    mainAxis: k,
    altAxis: k
  } : Object.assign({
    mainAxis: 0,
    altAxis: 0
  }, k), R = o.modifiersData.offset ? o.modifiersData.offset[o.placement] : null, g = {
    x: 0,
    y: 0
  };
  if (w) {
    if (K) {
      var I, O = D === "y" ? kl : Il, $ = D === "y" ? ws : Ss, Y = D === "y" ? "height" : "width", ne = w[D], q = ne + h[O], B = ne - h[$], X = u ? -T[Y] / 2 : 0, U = b === Zh ? S[Y] : T[Y], te = b === Zh ? -T[Y] : -S[Y], se = o.elements.arrow, me = u && se ? B3(se) : {
        width: 0,
        height: 0
      }, J = o.modifiersData["arrow#persistent"] ? o.modifiersData["arrow#persistent"].padding : K5(), W = J[O], ae = J[$], oe = G0(0, S[Y], me[Y]), ve = x ? S[Y] / 2 - X - oe - W - A.mainAxis : U - oe - W - A.mainAxis, fe = x ? -S[Y] / 2 + X + oe + ae + A.mainAxis : te + oe + ae + A.mainAxis, ye = o.elements.arrow && am(o.elements.arrow), Ce = ye ? D === "y" ? ye.clientTop || 0 : ye.clientLeft || 0 : 0, Re = (I = R == null ? void 0 : R[D]) != null ? I : 0, Be = ne + ve - Re - Ce, xe = ne + fe - Re, Me = G0(u ? zg(q, Be) : q, ne, u ? rv(B, xe) : B);
      w[D] = Me, g[D] = Me - ne;
    }
    if (L) {
      var De, Z = D === "x" ? kl : Il, ee = D === "x" ? ws : Ss, ie = w[C], G = C === "y" ? "height" : "width", H = ie + h[Z], ce = ie - h[ee], j = [kl, Il].indexOf(i) !== -1, he = (De = R == null ? void 0 : R[C]) != null ? De : 0, be = j ? H : ie - S[G] - T[G] - he + A.altAxis, we = j ? ie + S[G] + T[G] - he - A.altAxis : ce, Ie = u && j ? VI(be, ie, we) : G0(u ? be : H, ie, u ? we : ce);
      w[C] = Ie, g[C] = Ie - ie;
    }
    o.modifiersData[z] = g;
  }
}
const gN = {
  name: "preventOverflow",
  enabled: !0,
  phase: "main",
  fn: yN,
  requiresIfExists: ["offset"]
};
function bN(s) {
  return {
    scrollLeft: s.scrollLeft,
    scrollTop: s.scrollTop
  };
}
function xN(s) {
  return s === es(s) || !Vu(s) ? G3(s) : bN(s);
}
function TN(s) {
  var o = s.getBoundingClientRect(), E = $h(o.width) / s.offsetWidth || 1, z = $h(o.height) / s.offsetHeight || 1;
  return E !== 1 || z !== 1;
}
function CN(s, o, E) {
  E === void 0 && (E = !1);
  var z = Vu(o), P = Vu(o) && TN(o), K = rd(o), M = Jh(s, P, E), L = {
    scrollLeft: 0,
    scrollTop: 0
  }, r = {
    x: 0,
    y: 0
  };
  return (z || !z && !E) && ((qc(o) !== "body" || // https://github.com/popperjs/popper-core/issues/1078
  W3(K)) && (L = xN(o)), Vu(o) ? (r = Jh(o, !0), r.x += o.clientLeft, r.y += o.clientTop) : K && (r.x = U3(K))), {
    x: M.left + L.scrollLeft - r.x,
    y: M.top + L.scrollTop - r.y,
    width: M.width,
    height: M.height
  };
}
function AN(s) {
  var o = /* @__PURE__ */ new Map(), E = /* @__PURE__ */ new Set(), z = [];
  s.forEach(function(K) {
    o.set(K.name, K);
  });
  function P(K) {
    E.add(K.name);
    var M = [].concat(K.requires || [], K.requiresIfExists || []);
    M.forEach(function(L) {
      if (!E.has(L)) {
        var r = o.get(L);
        r && P(r);
      }
    }), z.push(K);
  }
  return s.forEach(function(K) {
    E.has(K.name) || P(K);
  }), z;
}
function wN(s) {
  var o = AN(s);
  return _I.reduce(function(E, z) {
    return E.concat(o.filter(function(P) {
      return P.phase === z;
    }));
  }, []);
}
function SN(s) {
  var o;
  return function() {
    return o || (o = new Promise(function(E) {
      Promise.resolve().then(function() {
        o = void 0, E(s());
      });
    })), o;
  };
}
function MN(s) {
  var o = s.reduce(function(E, z) {
    var P = E[z.name];
    return E[z.name] = P ? Object.assign({}, P, z, {
      options: Object.assign({}, P.options, z.options),
      data: Object.assign({}, P.data, z.data)
    }) : z, E;
  }, {});
  return Object.keys(o).map(function(E) {
    return o[E];
  });
}
var Uw = {
  placement: "bottom",
  modifiers: [],
  strategy: "absolute"
};
function Ww() {
  for (var s = arguments.length, o = new Array(s), E = 0; E < s; E++)
    o[E] = arguments[E];
  return !o.some(function(z) {
    return !(z && typeof z.getBoundingClientRect == "function");
  });
}
function EN(s) {
  s === void 0 && (s = {});
  var o = s, E = o.defaultModifiers, z = E === void 0 ? [] : E, P = o.defaultOptions, K = P === void 0 ? Uw : P;
  return function(L, r, a) {
    a === void 0 && (a = K);
    var p = {
      placement: "bottom",
      orderedModifiers: [],
      options: Object.assign({}, Uw, K),
      modifiersData: {},
      elements: {
        reference: L,
        popper: r
      },
      attributes: {},
      styles: {}
    }, l = [], f = !1, u = {
      state: p,
      setOptions: function(i) {
        var b = typeof i == "function" ? i(p.options) : i;
        d(), p.options = Object.assign({}, K, p.options, b), p.scrollParents = {
          reference: iv(L) ? U0(L) : L.contextElement ? U0(L.contextElement) : [],
          popper: U0(r)
        };
        var x = wN(MN([].concat(z, p.options.modifiers)));
        return p.orderedModifiers = x.filter(function(D) {
          return D.enabled;
        }), c(), u.update();
      },
      // Sync update – it will always be executed, even if not necessary. This
      // is useful for low frequency updates where sync behavior simplifies the
      // logic.
      // For high frequency updates (e.g. `resize` and `scroll` events), always
      // prefer the async Popper#update method
      forceUpdate: function() {
        if (!f) {
          var i = p.elements, b = i.reference, x = i.popper;
          if (Ww(b, x)) {
            p.rects = {
              reference: CN(b, am(x), p.options.strategy === "fixed"),
              popper: B3(x)
            }, p.reset = !1, p.placement = p.options.placement, p.orderedModifiers.forEach(function(A) {
              return p.modifiersData[A.name] = Object.assign({}, A.data);
            });
            for (var D = 0; D < p.orderedModifiers.length; D++) {
              if (p.reset === !0) {
                p.reset = !1, D = -1;
                continue;
              }
              var C = p.orderedModifiers[D], w = C.fn, S = C.options, T = S === void 0 ? {} : S, k = C.name;
              typeof w == "function" && (p = w({
                state: p,
                options: T,
                name: k,
                instance: u
              }) || p);
            }
          }
        }
      },
      // Async and optimistically optimized update – it will not be executed if
      // not necessary (debounced to run at most once-per-tick)
      update: SN(function() {
        return new Promise(function(h) {
          u.forceUpdate(), h(p);
        });
      }),
      destroy: function() {
        d(), f = !0;
      }
    };
    if (!Ww(L, r))
      return u;
    u.setOptions(a).then(function(h) {
      !f && a.onFirstUpdate && a.onFirstUpdate(h);
    });
    function c() {
      p.orderedModifiers.forEach(function(h) {
        var i = h.name, b = h.options, x = b === void 0 ? {} : b, D = h.effect;
        if (typeof D == "function") {
          var C = D({
            state: p,
            name: i,
            instance: u,
            options: x
          }), w = function() {
          };
          l.push(C || w);
        }
      });
    }
    function d() {
      l.forEach(function(h) {
        return h();
      }), l = [];
    }
    return u;
  };
}
const DN = EN({
  defaultModifiers: [fN, pN, $I, QI, vN, sN, gN, YI]
}), RN = ["enabled", "placement", "strategy", "modifiers"];
function LN(s, o) {
  if (s == null)
    return {};
  var E = {}, z = Object.keys(s), P, K;
  for (K = 0; K < z.length; K++)
    P = z[K], !(o.indexOf(P) >= 0) && (E[P] = s[P]);
  return E;
}
const kN = {
  name: "applyStyles",
  enabled: !1,
  phase: "afterWrite",
  fn: () => {
  }
}, IN = {
  name: "ariaDescribedBy",
  enabled: !0,
  phase: "afterWrite",
  effect: ({
    state: s
  }) => () => {
    const {
      reference: o,
      popper: E
    } = s.elements;
    if ("removeAttribute" in o) {
      const z = (o.getAttribute("aria-describedby") || "").split(",").filter((P) => P.trim() !== E.id);
      z.length ? o.setAttribute("aria-describedby", z.join(",")) : o.removeAttribute("aria-describedby");
    }
  },
  fn: ({
    state: s
  }) => {
    var o;
    const {
      popper: E,
      reference: z
    } = s.elements, P = (o = E.getAttribute("role")) == null ? void 0 : o.toLowerCase();
    if (E.id && P === "tooltip" && "setAttribute" in z) {
      const K = z.getAttribute("aria-describedby");
      if (K && K.split(",").indexOf(E.id) !== -1)
        return;
      z.setAttribute("aria-describedby", K ? `${K},${E.id}` : E.id);
    }
  }
}, NN = [];
function ON(s, o, E = {}) {
  let {
    enabled: z = !0,
    placement: P = "bottom",
    strategy: K = "absolute",
    modifiers: M = NN
  } = E, L = LN(E, RN);
  const r = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(M), a = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(), p = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(() => {
    var h;
    (h = a.current) == null || h.update();
  }, []), l = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(() => {
    var h;
    (h = a.current) == null || h.forceUpdate();
  }, []), [f, u] = MI((0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({
    placement: P,
    update: p,
    forceUpdate: l,
    attributes: {},
    styles: {
      popper: {},
      arrow: {}
    }
  })), c = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => ({
    name: "updateStateModifier",
    enabled: !0,
    phase: "write",
    requires: ["computeStyles"],
    fn: ({
      state: h
    }) => {
      const i = {}, b = {};
      Object.keys(h.elements).forEach((x) => {
        i[x] = h.styles[x], b[x] = h.attributes[x];
      }), u({
        state: h,
        styles: i,
        attributes: b,
        update: p,
        forceUpdate: l,
        placement: h.placement
      });
    }
  }), [p, l, u]), d = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => (V0(r.current, M) || (r.current = M), r.current), [M]);
  return (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
    !a.current || !z || a.current.setOptions({
      placement: P,
      strategy: K,
      modifiers: [...d, c, kN]
    });
  }, [K, P, c, z, d]), (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
    if (!(!z || s == null || o == null))
      return a.current = DN(s, o, Object.assign({}, L, {
        placement: P,
        strategy: K,
        modifiers: [...d, IN, c]
      })), () => {
        a.current != null && (a.current.destroy(), a.current = void 0, u((h) => Object.assign({}, h, {
          attributes: {},
          styles: {
            popper: {}
          }
        })));
      };
  }, [z, s, o]), f;
}
const Yw = () => {
};
function PN(s) {
  return s.button === 0;
}
function FN(s) {
  return !!(s.metaKey || s.altKey || s.ctrlKey || s.shiftKey);
}
const Hx = (s) => s && ("current" in s ? s.current : s), Xw = {
  click: "mousedown",
  mouseup: "mousedown",
  pointerup: "pointerdown"
};
function zN(s, o = Yw, {
  disabled: E,
  clickTrigger: z = "click"
} = {}) {
  const P = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(!1), K = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(!1), M = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((a) => {
    const p = Hx(s);
    t1(!!p, "ClickOutside captured a close event but does not have a ref to compare it to. useClickOutside(), should be passed a ref that resolves to a DOM node"), P.current = !p || FN(a) || !PN(a) || !!Fg(p, a.target) || K.current, K.current = !1;
  }, [s]), L = Oi((a) => {
    const p = Hx(s);
    p && Fg(p, a.target) && (K.current = !0);
  }), r = Oi((a) => {
    P.current || o(a);
  });
  (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
    var a, p;
    if (E || s == null)
      return;
    const l = Jg(Hx(s)), f = l.defaultView || window;
    let u = (a = f.event) != null ? a : (p = f.parent) == null ? void 0 : p.event, c = null;
    Xw[z] && (c = Kc(l, Xw[z], L, !0));
    const d = Kc(l, z, M, !0), h = Kc(l, z, (b) => {
      if (b === u) {
        u = void 0;
        return;
      }
      r(b);
    });
    let i = [];
    return "ontouchstart" in l.documentElement && (i = [].slice.call(l.body.children).map((b) => Kc(b, "mousemove", Yw))), () => {
      c == null || c(), d(), h(), i.forEach((b) => b());
    };
  }, [s, E, z, M, L, r]);
}
function _N(s) {
  const o = {};
  return Array.isArray(s) ? (s == null || s.forEach((E) => {
    o[E.name] = E;
  }), o) : s || o;
}
function HN(s = {}) {
  return Array.isArray(s) ? s : Object.keys(s).map((o) => (s[o].name = o, s[o]));
}
function BN({
  enabled: s,
  enableEvents: o,
  placement: E,
  flip: z,
  offset: P,
  fixed: K,
  containerPadding: M,
  arrowElement: L,
  popperConfig: r = {}
}) {
  var a, p, l, f, u;
  const c = _N(r.modifiers);
  return Object.assign({}, r, {
    placement: E,
    enabled: s,
    strategy: K ? "fixed" : r.strategy,
    modifiers: HN(Object.assign({}, c, {
      eventListeners: {
        enabled: o,
        options: (a = c.eventListeners) == null ? void 0 : a.options
      },
      preventOverflow: Object.assign({}, c.preventOverflow, {
        options: M ? Object.assign({
          padding: M
        }, (p = c.preventOverflow) == null ? void 0 : p.options) : (l = c.preventOverflow) == null ? void 0 : l.options
      }),
      offset: {
        options: Object.assign({
          offset: P
        }, (f = c.offset) == null ? void 0 : f.options)
      },
      arrow: Object.assign({}, c.arrow, {
        enabled: !!L,
        options: Object.assign({}, (u = c.arrow) == null ? void 0 : u.options, {
          element: L
        })
      }),
      flip: Object.assign({
        enabled: !!z
      }, c.flip)
    }))
  });
}
const VN = ["children", "usePopper"];
function GN(s, o) {
  if (s == null)
    return {};
  var E = {}, z = Object.keys(s), P, K;
  for (K = 0; K < z.length; K++)
    P = z[K], !(o.indexOf(P) >= 0) && (E[P] = s[P]);
  return E;
}
const UN = () => {
};
function nM(s = {}) {
  const o = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(l1), [E, z] = Fk(), P = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(!1), {
    flip: K,
    offset: M,
    rootCloseEvent: L,
    fixed: r = !1,
    placement: a,
    popperConfig: p = {},
    enableEventListeners: l = !0,
    usePopper: f = !!o
  } = s, u = (o == null ? void 0 : o.show) == null ? !!s.show : o.show;
  u && !P.current && (P.current = !0);
  const c = (w) => {
    o == null || o.toggle(!1, w);
  }, {
    placement: d,
    setMenu: h,
    menuElement: i,
    toggleElement: b
  } = o || {}, x = ON(b, i, BN({
    placement: a || d || "bottom-start",
    enabled: f,
    enableEvents: l ?? u,
    offset: M,
    flip: K,
    fixed: r,
    arrowElement: E,
    popperConfig: p
  })), D = Object.assign({
    ref: h || UN,
    "aria-labelledby": b == null ? void 0 : b.id
  }, x.attributes.popper, {
    style: x.styles.popper
  }), C = {
    show: u,
    placement: d,
    hasShown: P.current,
    toggle: o == null ? void 0 : o.toggle,
    popper: f ? x : null,
    arrowProps: f ? Object.assign({
      ref: z
    }, x.attributes.arrow, {
      style: x.styles.arrow
    }) : {}
  };
  return zN(i, c, {
    clickTrigger: L,
    disabled: !u
  }), [D, C];
}
function aM(s) {
  let {
    children: o,
    usePopper: E = !0
  } = s, z = GN(s, VN);
  const [P, K] = nM(Object.assign({}, z, {
    usePopper: E
  }));
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
    children: o(P, K)
  });
}
aM.displayName = "DropdownMenu";
const iM = (s) => {
  var o;
  return ((o = s.getAttribute("role")) == null ? void 0 : o.toLowerCase()) === "menu";
}, jw = () => {
};
function oM() {
  const s = WS(), {
    show: o = !1,
    toggle: E = jw,
    setToggle: z,
    menuElement: P
  } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(l1) || {}, K = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((L) => {
    E(!o, L);
  }, [o, E]), M = {
    id: s,
    ref: z || jw,
    onClick: K,
    "aria-expanded": !!o
  };
  return P && iM(P) && (M["aria-haspopup"] = !0), [M, {
    show: o,
    toggle: E
  }];
}
function lM({
  children: s
}) {
  const [o, E] = oM();
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
    children: s(o, E)
  });
}
lM.displayName = "DropdownToggle";
const WN = ["eventKey", "disabled", "onClick", "active", "as"];
function YN(s, o) {
  if (s == null)
    return {};
  var E = {}, z = Object.keys(s), P, K;
  for (K = 0; K < z.length; K++)
    P = z[K], !(o.indexOf(P) >= 0) && (E[P] = s[P]);
  return E;
}
function sM({
  key: s,
  href: o,
  active: E,
  disabled: z,
  onClick: P
}) {
  const K = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(Uu), M = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(n1), {
    activeKey: L
  } = M || {}, r = av(s, o), a = E == null && s != null ? av(L) === r : E;
  return [{
    onClick: Oi((l) => {
      z || (P == null || P(l), K && !l.isPropagationStopped() && K(r, l));
    }),
    "aria-disabled": z || void 0,
    "aria-selected": a,
    [tp("dropdown-item")]: ""
  }, {
    isActive: a
  }];
}
const uM = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef((s, o) => {
  let {
    eventKey: E,
    disabled: z,
    onClick: P,
    active: K,
    as: M = O3
  } = s, L = YN(s, WN);
  const [r] = sM({
    key: E,
    href: L.href,
    disabled: z,
    onClick: P,
    active: K
  });
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(M, Object.assign({}, L, {
    ref: o
  }, r));
});
uM.displayName = "DropdownItem";
function Zw() {
  const s = S5(), o = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null), E = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((z) => {
    o.current = z, s();
  }, [s]);
  return [o, E];
}
function im({
  defaultShow: s,
  show: o,
  onSelect: E,
  onToggle: z,
  itemSelector: P = `* [${tp("dropdown-item")}]`,
  focusFirstItemOnShow: K,
  placement: M = "bottom-start",
  children: L
}) {
  const r = a1(), [a, p] = GS(o, s, z), [l, f] = Zw(), u = l.current, [c, d] = Zw(), h = c.current, i = k5(a), b = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null), x = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(!1), D = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(Uu), C = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((R, g, I = g == null ? void 0 : g.type) => {
    p(R, {
      originalEvent: g,
      source: I
    });
  }, [p]), w = Oi((R, g) => {
    E == null || E(R, g), C(!1, g, "select"), g.isPropagationStopped() || D == null || D(R, g);
  }), S = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => ({
    toggle: C,
    placement: M,
    show: a,
    menuElement: u,
    toggleElement: h,
    setMenu: f,
    setToggle: d
  }), [C, M, a, u, h, f, d]);
  u && i && !a && (x.current = u.contains(u.ownerDocument.activeElement));
  const T = Oi(() => {
    h && h.focus && h.focus();
  }), k = Oi(() => {
    const R = b.current;
    let g = K;
    if (g == null && (g = l.current && iM(l.current) ? "keyboard" : !1), g === !1 || g === "keyboard" && !/^key.+$/.test(R))
      return;
    const I = Nf(l.current, P)[0];
    I && I.focus && I.focus();
  });
  (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
    a ? k() : x.current && (x.current = !1, T());
  }, [a, x, T, k]), (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
    b.current = null;
  });
  const A = (R, g) => {
    if (!l.current)
      return null;
    const I = Nf(l.current, P);
    let O = I.indexOf(R) + g;
    return O = Math.max(0, Math.min(O, I.length)), I[O];
  };
  return zk((0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(() => r.document, [r]), "keydown", (R) => {
    var g, I;
    const {
      key: O
    } = R, $ = R.target, Y = (g = l.current) == null ? void 0 : g.contains($), ne = (I = c.current) == null ? void 0 : I.contains($);
    if (/input|textarea/i.test($.tagName) && (O === " " || O !== "Escape" && Y || O === "Escape" && $.type === "search") || !Y && !ne || O === "Tab" && (!l.current || !a))
      return;
    b.current = R.type;
    const B = {
      originalEvent: R,
      source: R.type
    };
    switch (O) {
      case "ArrowUp": {
        const X = A($, -1);
        X && X.focus && X.focus(), R.preventDefault();
        return;
      }
      case "ArrowDown":
        if (R.preventDefault(), !a)
          p(!0, B);
        else {
          const X = A($, 1);
          X && X.focus && X.focus();
        }
        return;
      case "Tab":
        KS($.ownerDocument, "keyup", (X) => {
          var U;
          (X.key === "Tab" && !X.target || !((U = l.current) != null && U.contains(X.target))) && p(!1, B);
        }, {
          once: !0
        });
        break;
      case "Escape":
        O === "Escape" && (R.preventDefault(), R.stopPropagation()), p(!1, B);
        break;
    }
  }), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Uu.Provider, {
    value: w,
    children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(l1.Provider, {
      value: S,
      children: L
    })
  });
}
im.displayName = "Dropdown";
im.Menu = aM;
im.Toggle = lM;
im.Item = uM;
const Y3 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createContext({});
Y3.displayName = "DropdownContext";
const fM = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  className: s,
  bsPrefix: o,
  as: E = "hr",
  role: z = "separator",
  ...P
}, K) => (o = kn(o, "dropdown-divider"), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(E, {
  ref: K,
  className: bn(s, o),
  role: z,
  ...P
})));
fM.displayName = "DropdownDivider";
const cM = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  className: s,
  bsPrefix: o,
  as: E = "div",
  role: z = "heading",
  ...P
}, K) => (o = kn(o, "dropdown-header"), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(E, {
  ref: K,
  className: bn(s, o),
  role: z,
  ...P
})));
cM.displayName = "DropdownHeader";
const dM = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  bsPrefix: s,
  className: o,
  eventKey: E,
  disabled: z = !1,
  onClick: P,
  active: K,
  as: M = rm,
  ...L
}, r) => {
  const a = kn(s, "dropdown-item"), [p, l] = sM({
    key: E,
    href: L.href,
    disabled: z,
    onClick: P,
    active: K
  });
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(M, {
    ...L,
    ...p,
    ref: r,
    className: bn(o, a, l.isActive && "active", z && "disabled")
  });
});
dM.displayName = "DropdownItem";
const vM = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  className: s,
  bsPrefix: o,
  as: E = "span",
  ...z
}, P) => (o = kn(o, "dropdown-item-text"), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(E, {
  ref: P,
  className: bn(s, o),
  ...z
})));
vM.displayName = "DropdownItemText";
const X3 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createContext(null);
X3.displayName = "InputGroupContext";
function hM(s, o) {
  if (false)
    {}
  const E = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((z) => {
    z == null || !z.isReactComponent || ( true ? Mw(!1, `${o} injected a ref to a provided \`as\` component that resolved to a component instance instead of a DOM element. Use \`React.forwardRef\` to provide the injected ref to the class component as a prop in order to pass it directly to a DOM element`) : 0);
  }, [o]);
  return ed(E, s);
}
function pM(s, o, E) {
  const z = E ? "top-end" : "top-start", P = E ? "top-start" : "top-end", K = E ? "bottom-end" : "bottom-start", M = E ? "bottom-start" : "bottom-end", L = E ? "right-start" : "left-start", r = E ? "right-end" : "left-end", a = E ? "left-start" : "right-start", p = E ? "left-end" : "right-end";
  let l = s ? M : K;
  return o === "up" ? l = s ? P : z : o === "end" ? l = s ? p : a : o === "start" ? l = s ? r : L : o === "down-centered" ? l = "bottom" : o === "up-centered" && (l = "top"), l;
}
const mM = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  bsPrefix: s,
  className: o,
  align: E,
  rootCloseEvent: z,
  flip: P = !0,
  show: K,
  renderOnMount: M,
  // Need to define the default "as" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595
  as: L = "div",
  popperConfig: r,
  variant: a,
  ...p
}, l) => {
  let f = !1;
  const u = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(td), c = kn(s, "dropdown-menu"), {
    align: d,
    drop: h,
    isRTL: i
  } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(Y3);
  E = E || d;
  const b = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(X3), x = [];
  if (E)
    if (typeof E == "object") {
      const R = Object.keys(E);
      if ( true && t1(R.length === 1, "There should only be 1 breakpoint when passing an object to `align`"), R.length) {
        const g = R[0], I = E[g];
        f = I === "start", x.push(`${c}-${g}-${I}`);
      }
    } else
      E === "end" && (f = !0);
  const D = pM(f, h, i), [C, {
    hasShown: w,
    popper: S,
    show: T,
    toggle: k
  }] = nM({
    flip: P,
    rootCloseEvent: z,
    show: K,
    usePopper: !u && x.length === 0,
    offset: [0, 2],
    popperConfig: r,
    placement: D
  });
  if (C.ref = ed(hM(l, "DropdownMenu"), C.ref), Pg(() => {
    T && (S == null || S.update());
  }, [T]), !w && !M && !b)
    return null;
  typeof L != "string" && (C.show = T, C.close = () => k == null ? void 0 : k(!1), C.align = E);
  let A = p.style;
  return S != null && S.placement && (A = {
    ...p.style,
    ...C.style
  }, p["x-placement"] = S.placement), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(L, {
    ...p,
    ...C,
    style: A,
    ...(x.length || u) && {
      "data-bs-popper": "static"
    },
    className: bn(o, c, T && "show", f && `${c}-end`, a && `${c}-${a}`, ...x)
  });
});
mM.displayName = "DropdownMenu";
const Kl = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  as: s,
  bsPrefix: o,
  variant: E = "primary",
  size: z,
  active: P = !1,
  disabled: K = !1,
  className: M,
  ...L
}, r) => {
  const a = kn(o, "btn"), [p, {
    tagName: l
  }] = N3({
    tagName: s,
    disabled: K,
    ...L
  });
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(l, {
    ...p,
    ...L,
    ref: r,
    disabled: K,
    className: bn(M, a, P && "active", E && `${a}-${E}`, z && `${a}-${z}`, L.href && K && "disabled")
  });
});
Kl.displayName = "Button";
const yM = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  bsPrefix: s,
  split: o,
  className: E,
  childBsPrefix: z,
  // Need to define the default "as" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595
  as: P = Kl,
  ...K
}, M) => {
  const L = kn(s, "dropdown-toggle"), r = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(l1);
  z !== void 0 && (K.bsPrefix = z);
  const [a] = oM();
  return a.ref = ed(a.ref, hM(M, "DropdownToggle")), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(P, {
    className: bn(E, L, o && `${L}-split`, (r == null ? void 0 : r.show) && "show"),
    ...a,
    ...K
  });
});
yM.displayName = "DropdownToggle";
const gM = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef((s, o) => {
  const {
    bsPrefix: E,
    drop: z = "down",
    show: P,
    className: K,
    align: M = "start",
    onSelect: L,
    onToggle: r,
    focusFirstItemOnShow: a,
    // Need to define the default "as" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595
    as: p = "div",
    navbar: l,
    autoClose: f = !0,
    ...u
  } = r1(s, {
    show: "onToggle"
  }), c = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(X3), d = kn(E, "dropdown"), h = NR(), i = (S) => f === !1 ? S === "click" : f === "inside" ? S !== "rootClose" : f === "outside" ? S !== "select" : !0, b = Oi((S, T) => {
    var k, A;
    !((k = T.originalEvent) == null || (A = k.target) == null) && A.classList.contains("dropdown-toggle") && T.source === "mousedown" || (T.originalEvent.currentTarget === document && (T.source !== "keydown" || T.originalEvent.key === "Escape") && (T.source = "rootClose"), i(T.source) && (r == null || r(S, T)));
  }), D = pM(M === "end", z, h), C = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => ({
    align: M,
    drop: z,
    isRTL: h
  }), [M, z, h]), w = {
    down: d,
    "down-centered": `${d}-center`,
    up: "dropup",
    "up-centered": "dropup-center dropup",
    end: "dropend",
    start: "dropstart"
  };
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Y3.Provider, {
    value: C,
    children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(im, {
      placement: D,
      show: P,
      onSelect: L,
      onToggle: b,
      focusFirstItemOnShow: a,
      itemSelector: `.${d}-item:not(.disabled):not(:disabled)`,
      children: c ? u.children : /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(p, {
        ...u,
        ref: o,
        className: bn(K, P && "show", w[z])
      })
    })
  });
});
gM.displayName = "Dropdown";
const tv = Object.assign(gM, {
  Toggle: yM,
  Menu: mM,
  Item: dM,
  ItemText: vM,
  Divider: fM,
  Header: cM
}), bM = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  id: s,
  title: o,
  children: E,
  bsPrefix: z,
  className: P,
  rootCloseEvent: K,
  menuRole: M,
  disabled: L,
  active: r,
  renderMenuOnMount: a,
  menuVariant: p,
  ...l
}, f) => {
  const u = kn(void 0, "nav-item");
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(tv, {
    ref: f,
    ...l,
    className: bn(P, u),
    children: [/* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(tv.Toggle, {
      id: s,
      eventKey: null,
      active: r,
      disabled: L,
      childBsPrefix: z,
      as: F3,
      children: o
    }), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(tv.Menu, {
      role: M,
      renderOnMount: a,
      rootCloseEvent: K,
      variant: p,
      children: E
    })]
  });
});
bM.displayName = "NavDropdown";
const $w = Object.assign(bM, {
  Item: tv.Item,
  ItemText: tv.ItemText,
  Divider: tv.Divider,
  Header: tv.Header
});
function Bx({ label: s, value: o }) {
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Wh.Text, { children: [
    s,
    ": ",
    /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", { className: "text-light", children: o || "None" })
  ] });
}
function Jw({
  label: s,
  version: o
}) {
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Wh.Text, { children: [
    s,
    ":",
    " ",
    o ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("code", { className: "text-success", children: `v${o}` }) : /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", { className: "text-light", children: "None" })
  ] });
}
function XN(s) {
  const { data: { username: o, site: E } = { username: "", site: "" } } = Pf({
    queryKey: ["profile"],
    queryFn: async () => s.httpPathHandler("accounts/profile/").then((z) => z.json()).then((z) => ({ username: z.data.username, site: z.data.site }))
  });
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Wh, { bg: "dark", variant: "dark", collapseOnSelect: !0, expand: "sm", children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_f, { fluid: !0, children: [
    /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Wh.Brand, { children: "Onyx" }),
    /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Wh.Toggle, { "aria-controls": "responsive-navbar-nav" }),
    /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Wh.Collapse, { id: "responsive-navbar-nav", children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Ql, { direction: "horizontal", gap: 3, children: [
      /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
        $w,
        {
          title: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Bx, { label: "Project", value: s.projectName }),
          id: "collapsible-nav-dropdown",
          style: { color: "white" },
          children: s.projectList.map((z) => /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
            $w.Item,
            {
              onClick: () => s.handleProjectChange(z),
              children: z
            },
            z
          ))
        }
      ),
      /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Bx, { label: "User", value: o }),
      /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Bx, { label: "Site", value: E }),
      /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Jw, { label: "GUI", version: s.guiVersion }),
      /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Jw, { label: "Extension", version: s.extVersion })
    ] }) }),
    /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Ql, { direction: "horizontal", gap: 3, children: [
      /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
        z0.Container,
        {
          activeKey: s.tabKey,
          onSelect: (z) => s.setTabKey(z || "data"),
          children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(k0, { variant: "underline", children: [
            /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(k0.Item, { children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(k0.Link, { eventKey: "data", children: "Data" }) }),
            /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(k0.Item, { children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(k0.Link, { eventKey: "stats", children: "Statistics" }) })
          ] })
        }
      ),
      /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
        Ll.Check,
        {
          type: "switch",
          id: "theme-switch",
          label: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", { className: "text-light", children: "Switch Theme" }),
          checked: s.darkMode,
          onChange: s.handleThemeChange
        }
      )
    ] })
  ] }) });
}
const xM = o1("h4");
xM.displayName = "DivStyledAsH4";
const TM = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  className: s,
  bsPrefix: o,
  as: E = xM,
  ...z
}, P) => (o = kn(o, "alert-heading"), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(E, {
  ref: P,
  className: bn(s, o),
  ...z
})));
TM.displayName = "AlertHeading";
const CM = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  className: s,
  bsPrefix: o,
  as: E = rm,
  ...z
}, P) => (o = kn(o, "alert-link"), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(E, {
  ref: P,
  className: bn(s, o),
  ...z
})));
CM.displayName = "AlertLink";
const AM = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef((s, o) => {
  const {
    bsPrefix: E,
    show: z = !0,
    closeLabel: P = "Close alert",
    closeVariant: K,
    className: M,
    children: L,
    variant: r = "primary",
    onClose: a,
    dismissible: p,
    transition: l = jh,
    ...f
  } = r1(s, {
    show: "onClose"
  }), u = kn(E, "alert"), c = Oi((i) => {
    a && a(!1, i);
  }), d = l === !0 ? jh : l, h = /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
    role: "alert",
    ...d ? void 0 : f,
    ref: o,
    className: bn(M, u, r && `${u}-${r}`, p && `${u}-dismissible`),
    children: [p && /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(i1, {
      onClick: c,
      "aria-label": P,
      variant: K
    }), L]
  });
  return d ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(d, {
    unmountOnExit: !0,
    ...f,
    ref: void 0,
    in: z,
    children: h
  }) : z ? h : null;
});
AM.displayName = "Alert";
const Ag = Object.assign(AM, {
  Link: CM,
  Heading: TM
}), $0 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  bsPrefix: s,
  className: o,
  // Need to define the default "as" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595
  as: E = "div",
  ...z
}, P) => {
  const K = kn(s, "row"), M = b3(), L = x3(), r = `${K}-cols`, a = [];
  return M.forEach((p) => {
    const l = z[p];
    delete z[p];
    let f;
    l != null && typeof l == "object" ? {
      cols: f
    } = l : f = l;
    const u = p !== L ? `-${p}` : "";
    f != null && a.push(`${r}${u}-${f}`);
  }), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(E, {
    ref: P,
    ...z,
    className: bn(o, K, ...a)
  });
});
$0.displayName = "Row";
const j3 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  className: s,
  bsPrefix: o,
  as: E = "div",
  ...z
}, P) => (o = kn(o, "card-body"), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(E, {
  ref: P,
  className: bn(s, o),
  ...z
})));
j3.displayName = "CardBody";
const wM = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  className: s,
  bsPrefix: o,
  as: E = "div",
  ...z
}, P) => (o = kn(o, "card-footer"), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(E, {
  ref: P,
  className: bn(s, o),
  ...z
})));
wM.displayName = "CardFooter";
const SM = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  bsPrefix: s,
  className: o,
  // Need to define the default "as" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595
  as: E = "div",
  ...z
}, P) => {
  const K = kn(s, "card-header"), M = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => ({
    cardHeaderBsPrefix: K
  }), [K]);
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(P3.Provider, {
    value: M,
    children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(E, {
      ref: P,
      ...z,
      className: bn(o, K)
    })
  });
});
SM.displayName = "CardHeader";
const MM = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(
  // Need to define the default "as" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595
  ({
    bsPrefix: s,
    className: o,
    variant: E,
    as: z = "img",
    ...P
  }, K) => {
    const M = kn(s, "card-img");
    return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(z, {
      ref: K,
      className: bn(E ? `${M}-${E}` : M, o),
      ...P
    });
  }
);
MM.displayName = "CardImg";
const EM = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  className: s,
  bsPrefix: o,
  as: E = "div",
  ...z
}, P) => (o = kn(o, "card-img-overlay"), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(E, {
  ref: P,
  className: bn(s, o),
  ...z
})));
EM.displayName = "CardImgOverlay";
const DM = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  className: s,
  bsPrefix: o,
  as: E = "a",
  ...z
}, P) => (o = kn(o, "card-link"), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(E, {
  ref: P,
  className: bn(s, o),
  ...z
})));
DM.displayName = "CardLink";
const jN = o1("h6"), RM = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  className: s,
  bsPrefix: o,
  as: E = jN,
  ...z
}, P) => (o = kn(o, "card-subtitle"), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(E, {
  ref: P,
  className: bn(s, o),
  ...z
})));
RM.displayName = "CardSubtitle";
const LM = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  className: s,
  bsPrefix: o,
  as: E = "p",
  ...z
}, P) => (o = kn(o, "card-text"), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(E, {
  ref: P,
  className: bn(s, o),
  ...z
})));
LM.displayName = "CardText";
const ZN = o1("h5"), kM = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  className: s,
  bsPrefix: o,
  as: E = ZN,
  ...z
}, P) => (o = kn(o, "card-title"), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(E, {
  ref: P,
  className: bn(s, o),
  ...z
})));
kM.displayName = "CardTitle";
const IM = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  bsPrefix: s,
  className: o,
  bg: E,
  text: z,
  border: P,
  body: K = !1,
  children: M,
  // Need to define the default "as" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595
  as: L = "div",
  ...r
}, a) => {
  const p = kn(s, "card");
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(L, {
    ref: a,
    ...r,
    className: bn(o, p, E && `bg-${E}`, z && `text-${z}`, P && `border-${P}`),
    children: K ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(j3, {
      children: M
    }) : M
  });
});
IM.displayName = "Card";
const Jl = Object.assign(IM, {
  Img: MM,
  Title: kM,
  Subtitle: RM,
  Body: j3,
  Link: DM,
  Text: LM,
  Header: SM,
  Footer: wM,
  ImgOverlay: EM
}), Z3 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  active: s = !1,
  disabled: o = !1,
  className: E,
  style: z,
  activeLabel: P = "(current)",
  children: K,
  linkStyle: M,
  linkClassName: L,
  as: r = rm,
  ...a
}, p) => {
  const l = s || o ? "span" : r;
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("li", {
    ref: p,
    style: z,
    className: bn(E, "page-item", {
      active: s,
      disabled: o
    }),
    children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(l, {
      className: bn("page-link", L),
      style: M,
      ...a,
      children: [K, s && P && /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", {
        className: "visually-hidden",
        children: P
      })]
    })
  });
});
Z3.displayName = "PageItem";
const $N = Z3;
function om(s, o, E = s) {
  const z = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
    children: P,
    ...K
  }, M) => /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Z3, {
    ...K,
    ref: M,
    children: [/* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", {
      "aria-hidden": "true",
      children: P || o
    }), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", {
      className: "visually-hidden",
      children: E
    })]
  }));
  return z.displayName = s, z;
}
const JN = om("First", "«"), QN = om("Prev", "‹", "Previous"), KN = om("Ellipsis", "…", "More"), qN = om("Next", "›"), eO = om("Last", "»"), NM = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  bsPrefix: s,
  className: o,
  size: E,
  ...z
}, P) => {
  const K = kn(s, "pagination");
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("ul", {
    ref: P,
    ...z,
    className: bn(o, K, E && `${K}-${E}`)
  });
});
NM.displayName = "Pagination";
const mg = Object.assign(NM, {
  First: JN,
  Prev: QN,
  Ellipsis: KN,
  Item: $N,
  Next: qN,
  Last: eO
});
var tO = { fieldSeparator: ",", decimalSeparator: ".", quoteStrings: !0, quoteCharacter: '"', showTitle: !1, title: "My Generated Report", filename: "generated", showColumnHeaders: !0, useTextFile: !1, useBom: !0, columnHeaders: [], useKeysAsHeaders: !1, boolDisplay: { true: "TRUE", false: "FALSE" }, replaceUndefinedWith: "" }, rO = `\r
`, nO = "\uFEFF", u1 = (s) => Object.assign({}, tO, s);
class aO extends Error {
  constructor(o) {
    super(o), this.name = "CsvGenerationError";
  }
}
class iO extends Error {
  constructor(o) {
    super(o), this.name = "EmptyHeadersError";
  }
}
class oO extends Error {
  constructor(o) {
    super(o), this.name = "CsvDownloadEnvironmentError";
  }
}
class lO extends Error {
  constructor(o) {
    super(o), this.name = "UnsupportedDataFormatError";
  }
}
var rp = (s) => s, Nl = (s) => s, W0 = rp, f1 = rp, Kh = rp, Qw = rp, Kw = rp, sO = function(s, o) {
  return o == '"' && s.indexOf('"') > -1 ? s.replace(/"/g, '""') : s;
}, uO = (s) => Qw(typeof s == "object" ? s.key : s), fO = (s) => Kw(typeof s == "object" ? s.displayLabel : s), cO = (s, ...o) => o.reduce((E, z) => z(E), s), dO = (s) => (o) => s.useBom ? f1(Nl(o) + nO) : o, vO = (s) => (o) => s.showTitle ? $3(f1(Nl(o) + s.title))(Kh("")) : o, $3 = (s) => (o) => f1(Nl(s) + Nl(o) + rO), OM = (s) => (o, E) => hO(s)(Kh(Nl(o) + Nl(E))), hO = (s) => (o) => rp(Nl(o) + s.fieldSeparator), pO = (s, o) => (E) => {
  if (!s.showColumnHeaders)
    return E;
  if (o.length < 1)
    throw new iO("Option to show headers but none supplied. Make sure there are keys in your collection or that you've supplied headers through the config options.");
  let z = Kh("");
  for (let P = 0; P < o.length; P++) {
    const K = fO(o[P]);
    z = OM(s)(z, PM(s, Nl(K)));
  }
  return z = Kh(Nl(z).slice(0, -1)), $3(E)(z);
}, mO = (s, o, E) => (z) => {
  let P = z;
  for (var K = 0; K < E.length; K++) {
    let M = Kh("");
    for (let L = 0; L < o.length; L++) {
      const r = uO(o[L]), a = E[K][Nl(r)];
      M = OM(s)(M, PM(s, a));
    }
    M = Kh(Nl(M).slice(0, -1)), P = $3(P)(M);
  }
  return P;
}, yO = Nl, gO = (s) => +s === s && (!isFinite(s) || !!(s % 1)), bO = (s, o) => {
  if (gO(o)) {
    if (s.decimalSeparator === "locale")
      return W0(o.toLocaleString());
    if (s.decimalSeparator)
      return W0(o.toString().replace(".", s.decimalSeparator));
  }
  return W0(o.toString());
}, wg = (s, o) => {
  let E = o;
  return (s.quoteStrings || s.fieldSeparator && o.indexOf(s.fieldSeparator) > -1 || s.quoteCharacter && o.indexOf(s.quoteCharacter) > -1 || o.indexOf(`
`) > -1 || o.indexOf("\r") > -1) && (E = s.quoteCharacter + sO(o, s.quoteCharacter) + s.quoteCharacter), W0(E);
}, xO = (s, o) => {
  const E = o ? "true" : "false";
  return W0(s.boolDisplay[E]);
}, TO = (s, o) => typeof o > "u" && s.replaceUndefinedWith !== void 0 ? wg(s, s.replaceUndefinedWith + "") : o === null ? wg(s, "null") : wg(s, ""), PM = (s, o) => {
  if (typeof o == "number")
    return bO(s, o);
  if (typeof o == "string")
    return wg(s, o);
  if (typeof o == "boolean" && s.boolDisplay)
    return xO(s, o);
  if (o === null || typeof o > "u")
    return TO(s, o);
  throw new lO(`
    typeof ${typeof o} isn't supported. Only number, string, boolean, null and undefined are supported.
    Please convert the data in your object to one of those before generating the CSV.
    `);
}, CO = (s) => (o) => {
  const E = u1(s), z = E.useKeysAsHeaders ? Object.keys(o[0]) : E.columnHeaders;
  let P = cO(f1(""), dO(E), vO(E), pO(E, z), mO(E, z, o));
  if (Nl(P).length < 1)
    throw new aO("Output is empty. Is your data formatted correctly?");
  return P;
}, AO = (s) => (o) => {
  const E = u1(s), z = Nl(o), P = E.useTextFile ? "plain" : "csv";
  return new Blob([z], { type: `text/${P};charset=utf8;` });
}, wO = (s) => (o) => {
  if (!window)
    throw new oO("Downloading only supported in a browser environment.");
  const E = AO(s)(o), z = u1(s), P = z.useTextFile ? "txt" : "csv", K = `${z.filename}.${P}`, M = document.createElement("a");
  M.download = K, M.href = URL.createObjectURL(E), M.setAttribute("visibility", "hidden"), document.body.appendChild(M), M.click(), document.body.removeChild(M);
};
function ov(s) {
  "@babel/helpers - typeof";
  return ov = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(o) {
    return typeof o;
  } : function(o) {
    return o && typeof Symbol == "function" && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
  }, ov(s);
}
function SO(s, o) {
  if (ov(s) != "object" || !s)
    return s;
  var E = s[Symbol.toPrimitive];
  if (E !== void 0) {
    var z = E.call(s, o || "default");
    if (ov(z) != "object")
      return z;
    throw new TypeError("@@toPrimitive must return a primitive value.");
  }
  return (o === "string" ? String : Number)(s);
}
function FM(s) {
  var o = SO(s, "string");
  return ov(o) == "symbol" ? o : o + "";
}
function H0(s, o, E) {
  return o = FM(o), o in s ? Object.defineProperty(s, o, {
    value: E,
    enumerable: !0,
    configurable: !0,
    writable: !0
  }) : s[o] = E, s;
}
function qw(s, o) {
  var E = Object.keys(s);
  if (Object.getOwnPropertySymbols) {
    var z = Object.getOwnPropertySymbols(s);
    o && (z = z.filter(function(P) {
      return Object.getOwnPropertyDescriptor(s, P).enumerable;
    })), E.push.apply(E, z);
  }
  return E;
}
function On(s) {
  for (var o = 1; o < arguments.length; o++) {
    var E = arguments[o] != null ? arguments[o] : {};
    o % 2 ? qw(Object(E), !0).forEach(function(z) {
      H0(s, z, E[z]);
    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(s, Object.getOwnPropertyDescriptors(E)) : qw(Object(E)).forEach(function(z) {
      Object.defineProperty(s, z, Object.getOwnPropertyDescriptor(E, z));
    });
  }
  return s;
}
function MO(s) {
  if (Array.isArray(s))
    return s;
}
function EO(s, o) {
  var E = s == null ? null : typeof Symbol < "u" && s[Symbol.iterator] || s["@@iterator"];
  if (E != null) {
    var z, P, K, M, L = [], r = !0, a = !1;
    try {
      if (K = (E = E.call(s)).next, o === 0) {
        if (Object(E) !== E)
          return;
        r = !1;
      } else
        for (; !(r = (z = K.call(E)).done) && (L.push(z.value), L.length !== o); r = !0)
          ;
    } catch (p) {
      a = !0, P = p;
    } finally {
      try {
        if (!r && E.return != null && (M = E.return(), Object(M) !== M))
          return;
      } finally {
        if (a)
          throw P;
      }
    }
    return L;
  }
}
function c3(s, o) {
  (o == null || o > s.length) && (o = s.length);
  for (var E = 0, z = new Array(o); E < o; E++)
    z[E] = s[E];
  return z;
}
function zM(s, o) {
  if (s) {
    if (typeof s == "string")
      return c3(s, o);
    var E = Object.prototype.toString.call(s).slice(8, -1);
    if (E === "Object" && s.constructor && (E = s.constructor.name), E === "Map" || E === "Set")
      return Array.from(s);
    if (E === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(E))
      return c3(s, o);
  }
}
function DO() {
  throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
}
function zf(s, o) {
  return MO(s) || EO(s, o) || zM(s, o) || DO();
}
function Wu(s, o) {
  if (s == null)
    return {};
  var E = w3(s, o), z, P;
  if (Object.getOwnPropertySymbols) {
    var K = Object.getOwnPropertySymbols(s);
    for (P = 0; P < K.length; P++)
      z = K[P], !(o.indexOf(z) >= 0) && Object.prototype.propertyIsEnumerable.call(s, z) && (E[z] = s[z]);
  }
  return E;
}
var RO = ["defaultInputValue", "defaultMenuIsOpen", "defaultValue", "inputValue", "menuIsOpen", "onChange", "onInputChange", "onMenuClose", "onMenuOpen", "value"];
function _M(s) {
  var o = s.defaultInputValue, E = o === void 0 ? "" : o, z = s.defaultMenuIsOpen, P = z === void 0 ? !1 : z, K = s.defaultValue, M = K === void 0 ? null : K, L = s.inputValue, r = s.menuIsOpen, a = s.onChange, p = s.onInputChange, l = s.onMenuClose, f = s.onMenuOpen, u = s.value, c = Wu(s, RO), d = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(L !== void 0 ? L : E), h = zf(d, 2), i = h[0], b = h[1], x = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(r !== void 0 ? r : P), D = zf(x, 2), C = D[0], w = D[1], S = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(u !== void 0 ? u : M), T = zf(S, 2), k = T[0], A = T[1], R = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(function(q, B) {
    typeof a == "function" && a(q, B), A(q);
  }, [a]), g = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(function(q, B) {
    var X;
    typeof p == "function" && (X = p(q, B)), b(X !== void 0 ? X : q);
  }, [p]), I = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(function() {
    typeof f == "function" && f(), w(!0);
  }, [f]), O = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(function() {
    typeof l == "function" && l(), w(!1);
  }, [l]), $ = L !== void 0 ? L : i, Y = r !== void 0 ? r : C, ne = u !== void 0 ? u : k;
  return On(On({}, c), {}, {
    inputValue: $,
    menuIsOpen: Y,
    onChange: R,
    onInputChange: g,
    onMenuClose: O,
    onMenuOpen: I,
    value: ne
  });
}
function LO(s, o) {
  if (!(s instanceof o))
    throw new TypeError("Cannot call a class as a function");
}
function eS(s, o) {
  for (var E = 0; E < o.length; E++) {
    var z = o[E];
    z.enumerable = z.enumerable || !1, z.configurable = !0, "value" in z && (z.writable = !0), Object.defineProperty(s, FM(z.key), z);
  }
}
function kO(s, o, E) {
  return o && eS(s.prototype, o), E && eS(s, E), Object.defineProperty(s, "prototype", {
    writable: !1
  }), s;
}
function IO(s, o) {
  if (typeof o != "function" && o !== null)
    throw new TypeError("Super expression must either be null or a function");
  s.prototype = Object.create(o && o.prototype, {
    constructor: {
      value: s,
      writable: !0,
      configurable: !0
    }
  }), Object.defineProperty(s, "prototype", {
    writable: !1
  }), o && Lg(s, o);
}
function _g(s) {
  return _g = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(E) {
    return E.__proto__ || Object.getPrototypeOf(E);
  }, _g(s);
}
function HM() {
  try {
    var s = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
    }));
  } catch {
  }
  return (HM = function() {
    return !!s;
  })();
}
function NO(s) {
  if (s === void 0)
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  return s;
}
function OO(s, o) {
  if (o && (ov(o) === "object" || typeof o == "function"))
    return o;
  if (o !== void 0)
    throw new TypeError("Derived constructors may only return object or undefined");
  return NO(s);
}
function PO(s) {
  var o = HM();
  return function() {
    var z = _g(s), P;
    if (o) {
      var K = _g(this).constructor;
      P = Reflect.construct(z, arguments, K);
    } else
      P = z.apply(this, arguments);
    return OO(this, P);
  };
}
function FO(s) {
  if (Array.isArray(s))
    return c3(s);
}
function zO(s) {
  if (typeof Symbol < "u" && s[Symbol.iterator] != null || s["@@iterator"] != null)
    return Array.from(s);
}
function _O() {
  throw new TypeError(`Invalid attempt to spread non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
}
function Yh(s) {
  return FO(s) || zO(s) || zM(s) || _O();
}
function HO(s) {
  if (s.sheet)
    return s.sheet;
  for (var o = 0; o < document.styleSheets.length; o++)
    if (document.styleSheets[o].ownerNode === s)
      return document.styleSheets[o];
}
function BO(s) {
  var o = document.createElement("style");
  return o.setAttribute("data-emotion", s.key), s.nonce !== void 0 && o.setAttribute("nonce", s.nonce), o.appendChild(document.createTextNode("")), o.setAttribute("data-s", ""), o;
}
var VO = /* @__PURE__ */ function() {
  function s(E) {
    var z = this;
    this._insertTag = function(P) {
      var K;
      z.tags.length === 0 ? z.insertionPoint ? K = z.insertionPoint.nextSibling : z.prepend ? K = z.container.firstChild : K = z.before : K = z.tags[z.tags.length - 1].nextSibling, z.container.insertBefore(P, K), z.tags.push(P);
    }, this.isSpeedy = E.speedy === void 0 ? "development" === "production" : E.speedy, this.tags = [], this.ctr = 0, this.nonce = E.nonce, this.key = E.key, this.container = E.container, this.prepend = E.prepend, this.insertionPoint = E.insertionPoint, this.before = null;
  }
  var o = s.prototype;
  return o.hydrate = function(z) {
    z.forEach(this._insertTag);
  }, o.insert = function(z) {
    this.ctr % (this.isSpeedy ? 65e3 : 1) === 0 && this._insertTag(BO(this));
    var P = this.tags[this.tags.length - 1];
    if (true) {
      var K = z.charCodeAt(0) === 64 && z.charCodeAt(1) === 105;
      K && this._alreadyInsertedOrderInsensitiveRule && console.error(`You're attempting to insert the following rule:
` + z + "\n\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules."), this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !K;
    }
    if (this.isSpeedy) {
      var M = HO(P);
      try {
        M.insertRule(z, M.cssRules.length);
      } catch (L) {
         true && !/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear|-ms-expand|-ms-reveal){/.test(z) && console.error('There was a problem inserting the following rule: "' + z + '"', L);
      }
    } else
      P.appendChild(document.createTextNode(z));
    this.ctr++;
  }, o.flush = function() {
    this.tags.forEach(function(z) {
      return z.parentNode && z.parentNode.removeChild(z);
    }), this.tags = [], this.ctr = 0,  true && (this._alreadyInsertedOrderInsensitiveRule = !1);
  }, s;
}(), Jo = "-ms-", Hg = "-moz-", Ea = "-webkit-", J3 = "comm", Q3 = "rule", K3 = "decl", GO = "@import", BM = "@keyframes", UO = "@layer", WO = Math.abs, c1 = String.fromCharCode, YO = Object.assign;
function XO(s, o) {
  return Po(s, 0) ^ 45 ? (((o << 2 ^ Po(s, 0)) << 2 ^ Po(s, 1)) << 2 ^ Po(s, 2)) << 2 ^ Po(s, 3) : 0;
}
function VM(s) {
  return s.trim();
}
function jO(s, o) {
  return (s = o.exec(s)) ? s[0] : s;
}
function Da(s, o, E) {
  return s.replace(o, E);
}
function d3(s, o) {
  return s.indexOf(o);
}
function Po(s, o) {
  return s.charCodeAt(o) | 0;
}
function J0(s, o, E) {
  return s.slice(o, E);
}
function _u(s) {
  return s.length;
}
function q3(s) {
  return s.length;
}
function yg(s, o) {
  return o.push(s), s;
}
function ZO(s, o) {
  return s.map(o).join("");
}
var d1 = 1, qh = 1, GM = 0, Ol = 0, Xi = 0, np = "";
function v1(s, o, E, z, P, K, M) {
  return { value: s, root: o, parent: E, type: z, props: P, children: K, line: d1, column: qh, length: M, return: "" };
}
function O0(s, o) {
  return YO(v1("", null, null, "", null, null, 0), s, { length: -s.length }, o);
}
function $O() {
  return Xi;
}
function JO() {
  return Xi = Ol > 0 ? Po(np, --Ol) : 0, qh--, Xi === 10 && (qh = 1, d1--), Xi;
}
function ql() {
  return Xi = Ol < GM ? Po(np, Ol++) : 0, qh++, Xi === 10 && (qh = 1, d1++), Xi;
}
function Gu() {
  return Po(np, Ol);
}
function Sg() {
  return Ol;
}
function lm(s, o) {
  return J0(np, s, o);
}
function Q0(s) {
  switch (s) {
    case 0:
    case 9:
    case 10:
    case 13:
    case 32:
      return 5;
    case 33:
    case 43:
    case 44:
    case 47:
    case 62:
    case 64:
    case 126:
    case 59:
    case 123:
    case 125:
      return 4;
    case 58:
      return 3;
    case 34:
    case 39:
    case 40:
    case 91:
      return 2;
    case 41:
    case 93:
      return 1;
  }
  return 0;
}
function UM(s) {
  return d1 = qh = 1, GM = _u(np = s), Ol = 0, [];
}
function WM(s) {
  return np = "", s;
}
function Mg(s) {
  return VM(lm(Ol - 1, v3(s === 91 ? s + 2 : s === 40 ? s + 1 : s)));
}
function QO(s) {
  for (; (Xi = Gu()) && Xi < 33; )
    ql();
  return Q0(s) > 2 || Q0(Xi) > 3 ? "" : " ";
}
function KO(s, o) {
  for (; --o && ql() && !(Xi < 48 || Xi > 102 || Xi > 57 && Xi < 65 || Xi > 70 && Xi < 97); )
    ;
  return lm(s, Sg() + (o < 6 && Gu() == 32 && ql() == 32));
}
function v3(s) {
  for (; ql(); )
    switch (Xi) {
      case s:
        return Ol;
      case 34:
      case 39:
        s !== 34 && s !== 39 && v3(Xi);
        break;
      case 40:
        s === 41 && v3(s);
        break;
      case 92:
        ql();
        break;
    }
  return Ol;
}
function qO(s, o) {
  for (; ql() && s + Xi !== 57; )
    if (s + Xi === 84 && Gu() === 47)
      break;
  return "/*" + lm(o, Ol - 1) + "*" + c1(s === 47 ? s : ql());
}
function eP(s) {
  for (; !Q0(Gu()); )
    ql();
  return lm(s, Ol);
}
function tP(s) {
  return WM(Eg("", null, null, null, [""], s = UM(s), 0, [0], s));
}
function Eg(s, o, E, z, P, K, M, L, r) {
  for (var a = 0, p = 0, l = M, f = 0, u = 0, c = 0, d = 1, h = 1, i = 1, b = 0, x = "", D = P, C = K, w = z, S = x; h; )
    switch (c = b, b = ql()) {
      case 40:
        if (c != 108 && Po(S, l - 1) == 58) {
          d3(S += Da(Mg(b), "&", "&\f"), "&\f") != -1 && (i = -1);
          break;
        }
      case 34:
      case 39:
      case 91:
        S += Mg(b);
        break;
      case 9:
      case 10:
      case 13:
      case 32:
        S += QO(c);
        break;
      case 92:
        S += KO(Sg() - 1, 7);
        continue;
      case 47:
        switch (Gu()) {
          case 42:
          case 47:
            yg(rP(qO(ql(), Sg()), o, E), r);
            break;
          default:
            S += "/";
        }
        break;
      case 123 * d:
        L[a++] = _u(S) * i;
      case 125 * d:
      case 59:
      case 0:
        switch (b) {
          case 0:
          case 125:
            h = 0;
          case 59 + p:
            i == -1 && (S = Da(S, /\f/g, "")), u > 0 && _u(S) - l && yg(u > 32 ? rS(S + ";", z, E, l - 1) : rS(Da(S, " ", "") + ";", z, E, l - 2), r);
            break;
          case 59:
            S += ";";
          default:
            if (yg(w = tS(S, o, E, a, p, P, L, x, D = [], C = [], l), K), b === 123)
              if (p === 0)
                Eg(S, o, w, w, D, K, l, L, C);
              else
                switch (f === 99 && Po(S, 3) === 110 ? 100 : f) {
                  case 100:
                  case 108:
                  case 109:
                  case 115:
                    Eg(s, w, w, z && yg(tS(s, w, w, 0, 0, P, L, x, P, D = [], l), C), P, C, l, L, z ? D : C);
                    break;
                  default:
                    Eg(S, w, w, w, [""], C, 0, L, C);
                }
        }
        a = p = u = 0, d = i = 1, x = S = "", l = M;
        break;
      case 58:
        l = 1 + _u(S), u = c;
      default:
        if (d < 1) {
          if (b == 123)
            --d;
          else if (b == 125 && d++ == 0 && JO() == 125)
            continue;
        }
        switch (S += c1(b), b * d) {
          case 38:
            i = p > 0 ? 1 : (S += "\f", -1);
            break;
          case 44:
            L[a++] = (_u(S) - 1) * i, i = 1;
            break;
          case 64:
            Gu() === 45 && (S += Mg(ql())), f = Gu(), p = l = _u(x = S += eP(Sg())), b++;
            break;
          case 45:
            c === 45 && _u(S) == 2 && (d = 0);
        }
    }
  return K;
}
function tS(s, o, E, z, P, K, M, L, r, a, p) {
  for (var l = P - 1, f = P === 0 ? K : [""], u = q3(f), c = 0, d = 0, h = 0; c < z; ++c)
    for (var i = 0, b = J0(s, l + 1, l = WO(d = M[c])), x = s; i < u; ++i)
      (x = VM(d > 0 ? f[i] + " " + b : Da(b, /&\f/g, f[i]))) && (r[h++] = x);
  return v1(s, o, E, P === 0 ? Q3 : L, r, a, p);
}
function rP(s, o, E) {
  return v1(s, o, E, J3, c1($O()), J0(s, 2, -2), 0);
}
function rS(s, o, E, z) {
  return v1(s, o, E, K3, J0(s, 0, z), J0(s, z + 1, -1), z);
}
function Xh(s, o) {
  for (var E = "", z = q3(s), P = 0; P < z; P++)
    E += o(s[P], P, s, o) || "";
  return E;
}
function nP(s, o, E, z) {
  switch (s.type) {
    case UO:
      if (s.children.length)
        break;
    case GO:
    case K3:
      return s.return = s.return || s.value;
    case J3:
      return "";
    case BM:
      return s.return = s.value + "{" + Xh(s.children, z) + "}";
    case Q3:
      s.value = s.props.join(",");
  }
  return _u(E = Xh(s.children, z)) ? s.return = s.value + "{" + E + "}" : "";
}
function aP(s) {
  var o = q3(s);
  return function(E, z, P, K) {
    for (var M = "", L = 0; L < o; L++)
      M += s[L](E, z, P, K) || "";
    return M;
  };
}
function iP(s) {
  return function(o) {
    o.root || (o = o.return) && s(o);
  };
}
function oP(s) {
  var o = /* @__PURE__ */ Object.create(null);
  return function(E) {
    return o[E] === void 0 && (o[E] = s(E)), o[E];
  };
}
var lP = function(o, E, z) {
  for (var P = 0, K = 0; P = K, K = Gu(), P === 38 && K === 12 && (E[z] = 1), !Q0(K); )
    ql();
  return lm(o, Ol);
}, sP = function(o, E) {
  var z = -1, P = 44;
  do
    switch (Q0(P)) {
      case 0:
        P === 38 && Gu() === 12 && (E[z] = 1), o[z] += lP(Ol - 1, E, z);
        break;
      case 2:
        o[z] += Mg(P);
        break;
      case 4:
        if (P === 44) {
          o[++z] = Gu() === 58 ? "&\f" : "", E[z] = o[z].length;
          break;
        }
      default:
        o[z] += c1(P);
    }
  while (P = ql());
  return o;
}, uP = function(o, E) {
  return WM(sP(UM(o), E));
}, nS = /* @__PURE__ */ new WeakMap(), fP = function(o) {
  if (!(o.type !== "rule" || !o.parent || // positive .length indicates that this rule contains pseudo
  // negative .length indicates that this rule has been already prefixed
  o.length < 1)) {
    for (var E = o.value, z = o.parent, P = o.column === z.column && o.line === z.line; z.type !== "rule"; )
      if (z = z.parent, !z)
        return;
    if (!(o.props.length === 1 && E.charCodeAt(0) !== 58 && !nS.get(z)) && !P) {
      nS.set(o, !0);
      for (var K = [], M = uP(E, K), L = z.props, r = 0, a = 0; r < M.length; r++)
        for (var p = 0; p < L.length; p++, a++)
          o.props[a] = K[r] ? M[r].replace(/&\f/g, L[p]) : L[p] + " " + M[r];
    }
  }
}, cP = function(o) {
  if (o.type === "decl") {
    var E = o.value;
    // charcode for l
    E.charCodeAt(0) === 108 && // charcode for b
    E.charCodeAt(2) === 98 && (o.return = "", o.value = "");
  }
}, dP = "emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason", vP = function(o) {
  return o.type === "comm" && o.children.indexOf(dP) > -1;
}, hP = function(o) {
  return function(E, z, P) {
    if (!(E.type !== "rule" || o.compat)) {
      var K = E.value.match(/(:first|:nth|:nth-last)-child/g);
      if (K) {
        for (var M = !!E.parent, L = M ? E.parent.children : (
          // global rule at the root level
          P
        ), r = L.length - 1; r >= 0; r--) {
          var a = L[r];
          if (a.line < E.line)
            break;
          if (a.column < E.column) {
            if (vP(a))
              return;
            break;
          }
        }
        K.forEach(function(p) {
          console.error('The pseudo class "' + p + '" is potentially unsafe when doing server-side rendering. Try changing it to "' + p.split("-child")[0] + '-of-type".');
        });
      }
    }
  };
}, YM = function(o) {
  return o.type.charCodeAt(1) === 105 && o.type.charCodeAt(0) === 64;
}, pP = function(o, E) {
  for (var z = o - 1; z >= 0; z--)
    if (!YM(E[z]))
      return !0;
  return !1;
}, aS = function(o) {
  o.type = "", o.value = "", o.return = "", o.children = "", o.props = "";
}, mP = function(o, E, z) {
  YM(o) && (o.parent ? (console.error("`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles."), aS(o)) : pP(E, z) && (console.error("`@import` rules can't be after other rules. Please put your `@import` rules before your other rules."), aS(o)));
};
function XM(s, o) {
  switch (XO(s, o)) {
    case 5103:
      return Ea + "print-" + s + s;
    case 5737:
    case 4201:
    case 3177:
    case 3433:
    case 1641:
    case 4457:
    case 2921:
    case 5572:
    case 6356:
    case 5844:
    case 3191:
    case 6645:
    case 3005:
    case 6391:
    case 5879:
    case 5623:
    case 6135:
    case 4599:
    case 4855:
    case 4215:
    case 6389:
    case 5109:
    case 5365:
    case 5621:
    case 3829:
      return Ea + s + s;
    case 5349:
    case 4246:
    case 4810:
    case 6968:
    case 2756:
      return Ea + s + Hg + s + Jo + s + s;
    case 6828:
    case 4268:
      return Ea + s + Jo + s + s;
    case 6165:
      return Ea + s + Jo + "flex-" + s + s;
    case 5187:
      return Ea + s + Da(s, /(\w+).+(:[^]+)/, Ea + "box-$1$2" + Jo + "flex-$1$2") + s;
    case 5443:
      return Ea + s + Jo + "flex-item-" + Da(s, /flex-|-self/, "") + s;
    case 4675:
      return Ea + s + Jo + "flex-line-pack" + Da(s, /align-content|flex-|-self/, "") + s;
    case 5548:
      return Ea + s + Jo + Da(s, "shrink", "negative") + s;
    case 5292:
      return Ea + s + Jo + Da(s, "basis", "preferred-size") + s;
    case 6060:
      return Ea + "box-" + Da(s, "-grow", "") + Ea + s + Jo + Da(s, "grow", "positive") + s;
    case 4554:
      return Ea + Da(s, /([^-])(transform)/g, "$1" + Ea + "$2") + s;
    case 6187:
      return Da(Da(Da(s, /(zoom-|grab)/, Ea + "$1"), /(image-set)/, Ea + "$1"), s, "") + s;
    case 5495:
    case 3959:
      return Da(s, /(image-set\([^]*)/, Ea + "$1$`$1");
    case 4968:
      return Da(Da(s, /(.+:)(flex-)?(.*)/, Ea + "box-pack:$3" + Jo + "flex-pack:$3"), /s.+-b[^;]+/, "justify") + Ea + s + s;
    case 4095:
    case 3583:
    case 4068:
    case 2532:
      return Da(s, /(.+)-inline(.+)/, Ea + "$1$2") + s;
    case 8116:
    case 7059:
    case 5753:
    case 5535:
    case 5445:
    case 5701:
    case 4933:
    case 4677:
    case 5533:
    case 5789:
    case 5021:
    case 4765:
      if (_u(s) - 1 - o > 6)
        switch (Po(s, o + 1)) {
          case 109:
            if (Po(s, o + 4) !== 45)
              break;
          case 102:
            return Da(s, /(.+:)(.+)-([^]+)/, "$1" + Ea + "$2-$3$1" + Hg + (Po(s, o + 3) == 108 ? "$3" : "$2-$3")) + s;
          case 115:
            return ~d3(s, "stretch") ? XM(Da(s, "stretch", "fill-available"), o) + s : s;
        }
      break;
    case 4949:
      if (Po(s, o + 1) !== 115)
        break;
    case 6444:
      switch (Po(s, _u(s) - 3 - (~d3(s, "!important") && 10))) {
        case 107:
          return Da(s, ":", ":" + Ea) + s;
        case 101:
          return Da(s, /(.+:)([^;!]+)(;|!.+)?/, "$1" + Ea + (Po(s, 14) === 45 ? "inline-" : "") + "box$3$1" + Ea + "$2$3$1" + Jo + "$2box$3") + s;
      }
      break;
    case 5936:
      switch (Po(s, o + 11)) {
        case 114:
          return Ea + s + Jo + Da(s, /[svh]\w+-[tblr]{2}/, "tb") + s;
        case 108:
          return Ea + s + Jo + Da(s, /[svh]\w+-[tblr]{2}/, "tb-rl") + s;
        case 45:
          return Ea + s + Jo + Da(s, /[svh]\w+-[tblr]{2}/, "lr") + s;
      }
      return Ea + s + Jo + s + s;
  }
  return s;
}
var yP = function(o, E, z, P) {
  if (o.length > -1 && !o.return)
    switch (o.type) {
      case K3:
        o.return = XM(o.value, o.length);
        break;
      case BM:
        return Xh([O0(o, {
          value: Da(o.value, "@", "@" + Ea)
        })], P);
      case Q3:
        if (o.length)
          return ZO(o.props, function(K) {
            switch (jO(K, /(::plac\w+|:read-\w+)/)) {
              case ":read-only":
              case ":read-write":
                return Xh([O0(o, {
                  props: [Da(K, /:(read-\w+)/, ":" + Hg + "$1")]
                })], P);
              case "::placeholder":
                return Xh([O0(o, {
                  props: [Da(K, /:(plac\w+)/, ":" + Ea + "input-$1")]
                }), O0(o, {
                  props: [Da(K, /:(plac\w+)/, ":" + Hg + "$1")]
                }), O0(o, {
                  props: [Da(K, /:(plac\w+)/, Jo + "input-$1")]
                })], P);
            }
            return "";
          });
    }
}, gP = [yP], bP = function(o) {
  var E = o.key;
  if ( true && !E)
    throw new Error(`You have to configure \`key\` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.
If multiple caches share the same key they might "fight" for each other's style elements.`);
  if (E === "css") {
    var z = document.querySelectorAll("style[data-emotion]:not([data-s])");
    Array.prototype.forEach.call(z, function(d) {
      var h = d.getAttribute("data-emotion");
      h.indexOf(" ") !== -1 && (document.head.appendChild(d), d.setAttribute("data-s", ""));
    });
  }
  var P = o.stylisPlugins || gP;
  if ( true && /[^a-z-]/.test(E))
    throw new Error('Emotion key must only contain lower case alphabetical characters and - but "' + E + '" was passed');
  var K = {}, M, L = [];
  M = o.container || document.head, Array.prototype.forEach.call(
    // this means we will ignore elements which don't have a space in them which
    // means that the style elements we're looking at are only Emotion 11 server-rendered style elements
    document.querySelectorAll('style[data-emotion^="' + E + ' "]'),
    function(d) {
      for (var h = d.getAttribute("data-emotion").split(" "), i = 1; i < h.length; i++)
        K[h[i]] = !0;
      L.push(d);
    }
  );
  var r, a = [fP, cP];
   true && a.push(hP({
    get compat() {
      return c.compat;
    }
  }), mP);
  {
    var p, l = [nP,  true ? function(d) {
      d.root || (d.return ? p.insert(d.return) : d.value && d.type !== J3 && p.insert(d.value + "{}"));
    } : 0], f = aP(a.concat(P, l)), u = function(h) {
      return Xh(tP(h), f);
    };
    r = function(h, i, b, x) {
      p = b,  true && i.map !== void 0 && (p = {
        insert: function(C) {
          b.insert(C + i.map);
        }
      }), u(h ? h + "{" + i.styles + "}" : i.styles), x && (c.inserted[i.name] = !0);
    };
  }
  var c = {
    key: E,
    sheet: new VO({
      key: E,
      container: M,
      nonce: o.nonce,
      speedy: o.speedy,
      prepend: o.prepend,
      insertionPoint: o.insertionPoint
    }),
    nonce: o.nonce,
    inserted: K,
    registered: {},
    insert: r
  };
  return c.sheet.hydrate(L), c;
}, jM = T3(), xP = {
  $$typeof: !0,
  render: !0,
  defaultProps: !0,
  displayName: !0,
  propTypes: !0
}, TP = {
  $$typeof: !0,
  compare: !0,
  defaultProps: !0,
  displayName: !0,
  propTypes: !0,
  type: !0
}, ZM = {};
ZM[jM.ForwardRef] = xP;
ZM[jM.Memo] = TP;
var CP = !0;
function $M(s, o, E) {
  var z = "";
  return E.split(" ").forEach(function(P) {
    s[P] !== void 0 ? o.push(s[P] + ";") : z += P + " ";
  }), z;
}
var eT = function(o, E, z) {
  var P = o.key + "-" + E.name;
  // we only need to add the styles to the registered cache if the
  // class name could be used further down
  // the tree but if it's a string tag, we know it won't
  // so we don't have to add it to registered cache.
  // this improves memory usage since we can avoid storing the whole style string
  (z === !1 || // we need to always store it if we're in compat mode and
  // in node since emotion-server relies on whether a style is in
  // the registered cache to know whether a style is global or not
  // also, note that this check will be dead code eliminated in the browser
  CP === !1) && o.registered[P] === void 0 && (o.registered[P] = E.styles);
}, tT = function(o, E, z) {
  eT(o, E, z);
  var P = o.key + "-" + E.name;
  if (o.inserted[E.name] === void 0) {
    var K = E;
    do
      o.insert(E === K ? "." + P : "", K, o.sheet, !0), K = K.next;
    while (K !== void 0);
  }
};
function AP(s) {
  for (var o = 0, E, z = 0, P = s.length; P >= 4; ++z, P -= 4)
    E = s.charCodeAt(z) & 255 | (s.charCodeAt(++z) & 255) << 8 | (s.charCodeAt(++z) & 255) << 16 | (s.charCodeAt(++z) & 255) << 24, E = /* Math.imul(k, m): */
    (E & 65535) * 1540483477 + ((E >>> 16) * 59797 << 16), E ^= /* k >>> r: */
    E >>> 24, o = /* Math.imul(k, m): */
    (E & 65535) * 1540483477 + ((E >>> 16) * 59797 << 16) ^ /* Math.imul(h, m): */
    (o & 65535) * 1540483477 + ((o >>> 16) * 59797 << 16);
  switch (P) {
    case 3:
      o ^= (s.charCodeAt(z + 2) & 255) << 16;
    case 2:
      o ^= (s.charCodeAt(z + 1) & 255) << 8;
    case 1:
      o ^= s.charCodeAt(z) & 255, o = /* Math.imul(h, m): */
      (o & 65535) * 1540483477 + ((o >>> 16) * 59797 << 16);
  }
  return o ^= o >>> 13, o = /* Math.imul(h, m): */
  (o & 65535) * 1540483477 + ((o >>> 16) * 59797 << 16), ((o ^ o >>> 15) >>> 0).toString(36);
}
var wP = {
  animationIterationCount: 1,
  aspectRatio: 1,
  borderImageOutset: 1,
  borderImageSlice: 1,
  borderImageWidth: 1,
  boxFlex: 1,
  boxFlexGroup: 1,
  boxOrdinalGroup: 1,
  columnCount: 1,
  columns: 1,
  flex: 1,
  flexGrow: 1,
  flexPositive: 1,
  flexShrink: 1,
  flexNegative: 1,
  flexOrder: 1,
  gridRow: 1,
  gridRowEnd: 1,
  gridRowSpan: 1,
  gridRowStart: 1,
  gridColumn: 1,
  gridColumnEnd: 1,
  gridColumnSpan: 1,
  gridColumnStart: 1,
  msGridRow: 1,
  msGridRowSpan: 1,
  msGridColumn: 1,
  msGridColumnSpan: 1,
  fontWeight: 1,
  lineHeight: 1,
  opacity: 1,
  order: 1,
  orphans: 1,
  tabSize: 1,
  widows: 1,
  zIndex: 1,
  zoom: 1,
  WebkitLineClamp: 1,
  // SVG-related properties
  fillOpacity: 1,
  floodOpacity: 1,
  stopOpacity: 1,
  strokeDasharray: 1,
  strokeDashoffset: 1,
  strokeMiterlimit: 1,
  strokeOpacity: 1,
  strokeWidth: 1
}, iS = `You have illegal escape sequence in your template literal, most likely inside content's property value.
Because you write your CSS inside a JavaScript string you actually have to do double escaping, so for example "content: '\\00d7';" should become "content: '\\\\00d7';".
You can read more about this here:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences`, SP = "You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).", MP = /[A-Z]|^ms/g, JM = /_EMO_([^_]+?)_([^]*?)_EMO_/g, rT = function(o) {
  return o.charCodeAt(1) === 45;
}, oS = function(o) {
  return o != null && typeof o != "boolean";
}, Vx = /* @__PURE__ */ oP(function(s) {
  return rT(s) ? s : s.replace(MP, "-$&").toLowerCase();
}), Bg = function(o, E) {
  switch (o) {
    case "animation":
    case "animationName":
      if (typeof E == "string")
        return E.replace(JM, function(z, P, K) {
          return nu = {
            name: P,
            styles: K,
            next: nu
          }, P;
        });
  }
  return wP[o] !== 1 && !rT(o) && typeof E == "number" && E !== 0 ? E + "px" : E;
};
if (true) {
  var EP = /(var|attr|counters?|url|element|(((repeating-)?(linear|radial))|conic)-gradient)\(|(no-)?(open|close)-quote/, DP = ["normal", "none", "initial", "inherit", "unset"], RP = Bg, LP = /^-ms-/, kP = /-(.)/g, lS = {};
  Bg = function(o, E) {
    if (o === "content" && (typeof E != "string" || DP.indexOf(E) === -1 && !EP.test(E) && (E.charAt(0) !== E.charAt(E.length - 1) || E.charAt(0) !== '"' && E.charAt(0) !== "'")))
      throw new Error("You seem to be using a value for 'content' without quotes, try replacing it with `content: '\"" + E + "\"'`");
    var z = RP(o, E);
    return z !== "" && !rT(o) && o.indexOf("-") !== -1 && lS[o] === void 0 && (lS[o] = !0, console.error("Using kebab-case for css properties in objects is not supported. Did you mean " + o.replace(LP, "ms-").replace(kP, function(P, K) {
      return K.toUpperCase();
    }) + "?")), z;
  };
}
var QM = "Component selectors can only be used in conjunction with @emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware compiler transform.";
function K0(s, o, E) {
  if (E == null)
    return "";
  if (E.__emotion_styles !== void 0) {
    if ( true && E.toString() === "NO_COMPONENT_SELECTOR")
      throw new Error(QM);
    return E;
  }
  switch (typeof E) {
    case "boolean":
      return "";
    case "object": {
      if (E.anim === 1)
        return nu = {
          name: E.name,
          styles: E.styles,
          next: nu
        }, E.name;
      if (E.styles !== void 0) {
        var z = E.next;
        if (z !== void 0)
          for (; z !== void 0; )
            nu = {
              name: z.name,
              styles: z.styles,
              next: nu
            }, z = z.next;
        var P = E.styles + ";";
        return  true && E.map !== void 0 && (P += E.map), P;
      }
      return IP(s, o, E);
    }
    case "function": {
      if (s !== void 0) {
        var K = nu, M = E(s);
        return nu = K, K0(s, o, M);
      } else
         true && console.error("Functions that are interpolated in css calls will be stringified.\nIf you want to have a css call based on props, create a function that returns a css call like this\nlet dynamicStyle = (props) => css`color: ${props.color}`\nIt can be called directly with props or interpolated in a styled call like this\nlet SomeComponent = styled('div')`${dynamicStyle}`");
      break;
    }
    case "string":
      if (true) {
        var L = [], r = E.replace(JM, function(p, l, f) {
          var u = "animation" + L.length;
          return L.push("const " + u + " = keyframes`" + f.replace(/^@keyframes animation-\w+/, "") + "`"), "${" + u + "}";
        });
        L.length && console.error("`keyframes` output got interpolated into plain string, please wrap it with `css`.\n\nInstead of doing this:\n\n" + [].concat(L, ["`" + r + "`"]).join(`
`) + `

You should wrap it with \`css\` like this:

` + ("css`" + r + "`"));
      }
      break;
  }
  if (o == null)
    return E;
  var a = o[E];
  return a !== void 0 ? a : E;
}
function IP(s, o, E) {
  var z = "";
  if (Array.isArray(E))
    for (var P = 0; P < E.length; P++)
      z += K0(s, o, E[P]) + ";";
  else
    for (var K in E) {
      var M = E[K];
      if (typeof M != "object")
        o != null && o[M] !== void 0 ? z += K + "{" + o[M] + "}" : oS(M) && (z += Vx(K) + ":" + Bg(K, M) + ";");
      else {
        if (K === "NO_COMPONENT_SELECTOR" && "development" !== "production")
          throw new Error(QM);
        if (Array.isArray(M) && typeof M[0] == "string" && (o == null || o[M[0]] === void 0))
          for (var L = 0; L < M.length; L++)
            oS(M[L]) && (z += Vx(K) + ":" + Bg(K, M[L]) + ";");
        else {
          var r = K0(s, o, M);
          switch (K) {
            case "animation":
            case "animationName": {
              z += Vx(K) + ":" + r + ";";
              break;
            }
            default:
               true && K === "undefined" && console.error(SP), z += K + "{" + r + "}";
          }
        }
      }
    }
  return z;
}
var sS = /label:\s*([^\s;\n{]+)\s*(;|$)/g, KM;
 true && (KM = /\/\*#\ssourceMappingURL=data:application\/json;\S+\s+\*\//g);
var nu, q0 = function(o, E, z) {
  if (o.length === 1 && typeof o[0] == "object" && o[0] !== null && o[0].styles !== void 0)
    return o[0];
  var P = !0, K = "";
  nu = void 0;
  var M = o[0];
  M == null || M.raw === void 0 ? (P = !1, K += K0(z, E, M)) : ( true && M[0] === void 0 && console.error(iS), K += M[0]);
  for (var L = 1; L < o.length; L++)
    K += K0(z, E, o[L]), P && ( true && M[L] === void 0 && console.error(iS), K += M[L]);
  var r;
   true && (K = K.replace(KM, function(f) {
    return r = f, "";
  })), sS.lastIndex = 0;
  for (var a = "", p; (p = sS.exec(K)) !== null; )
    a += "-" + // $FlowFixMe we know it's not null
    p[1];
  var l = AP(K) + a;
  return  true ? {
    name: l,
    styles: K,
    map: r,
    next: nu,
    toString: function() {
      return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).";
    }
  } : 0;
}, NP = function(o) {
  return o();
}, qM = react__WEBPACK_IMPORTED_MODULE_1__.useInsertionEffect ? react__WEBPACK_IMPORTED_MODULE_1__.useInsertionEffect : !1, e6 = qM || NP, uS = qM || react__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect, nT = {}.hasOwnProperty, aT = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createContext(
  // we're doing this to avoid preconstruct's dead code elimination in this one case
  // because this module is primarily intended for the browser and node
  // but it's also required in react native and similar environments sometimes
  // and we could have a special build just for that
  // but this is much easier and the native packages
  // might use a different theme context in the future anyway
  typeof HTMLElement < "u" ? /* @__PURE__ */ bP({
    key: "css"
  }) : null
);
 true && (aT.displayName = "EmotionCacheContext");
aT.Provider;
var iT = function(o) {
  return /* @__PURE__ */ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)(function(E, z) {
    var P = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(aT);
    return o(E, P, z);
  });
}, h1 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createContext({});
 true && (h1.displayName = "EmotionThemeContext");
var fS = function(o) {
  var E = o.split(".");
  return E[E.length - 1];
}, OP = function(o) {
  var E = /^\s+at\s+([A-Za-z0-9$.]+)\s/.exec(o);
  if (E || (E = /^([A-Za-z0-9$.]+)@/.exec(o), E))
    return fS(E[1]);
}, PP = /* @__PURE__ */ new Set(["renderWithHooks", "processChild", "finishClassComponent", "renderToString"]), FP = function(o) {
  return o.replace(/\$/g, "-");
}, zP = function(o) {
  if (o)
    for (var E = o.split(`
`), z = 0; z < E.length; z++) {
      var P = OP(E[z]);
      if (P) {
        if (PP.has(P))
          break;
        if (/^[A-Z]/.test(P))
          return FP(P);
      }
    }
}, h3 = "__EMOTION_TYPE_PLEASE_DO_NOT_USE__", p3 = "__EMOTION_LABEL_PLEASE_DO_NOT_USE__", _P = function(o, E) {
  if ( true && typeof E.css == "string" && // check if there is a css declaration
  E.css.indexOf(":") !== -1)
    throw new Error("Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`" + E.css + "`");
  var z = {};
  for (var P in E)
    nT.call(E, P) && (z[P] = E[P]);
  if (z[h3] = o,  true && E.css && (typeof E.css != "object" || typeof E.css.name != "string" || E.css.name.indexOf("-") === -1)) {
    var K = zP(new Error().stack);
    K && (z[p3] = K);
  }
  return z;
}, HP = function(o) {
  var E = o.cache, z = o.serialized, P = o.isStringTag;
  return eT(E, z, P), e6(function() {
    return tT(E, z, P);
  }), null;
}, t6 = /* @__PURE__ */ iT(function(s, o, E) {
  var z = s.css;
  typeof z == "string" && o.registered[z] !== void 0 && (z = o.registered[z]);
  var P = s[h3], K = [z], M = "";
  typeof s.className == "string" ? M = $M(o.registered, K, s.className) : s.className != null && (M = s.className + " ");
  var L = q0(K, void 0, react__WEBPACK_IMPORTED_MODULE_1__.useContext(h1));
  if ( true && L.name.indexOf("-") === -1) {
    var r = s[p3];
    r && (L = q0([L, "label:" + r + ";"]));
  }
  M += o.key + "-" + L.name;
  var a = {};
  for (var p in s)
    nT.call(s, p) && p !== "css" && p !== h3 && ( false || p !== p3) && (a[p] = s[p]);
  return a.ref = E, a.className = M, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(HP, {
    cache: o,
    serialized: L,
    isStringTag: typeof P == "string"
  }), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(P, a));
});
 true && (t6.displayName = "EmotionCssPropInternal");
var BP = t6, VP = {
  name: "@emotion/react",
  version: "11.11.4",
  main: "dist/emotion-react.cjs.js",
  module: "dist/emotion-react.esm.js",
  browser: {
    "./dist/emotion-react.esm.js": "./dist/emotion-react.browser.esm.js"
  },
  exports: {
    ".": {
      module: {
        worker: "./dist/emotion-react.worker.esm.js",
        browser: "./dist/emotion-react.browser.esm.js",
        default: "./dist/emotion-react.esm.js"
      },
      import: "./dist/emotion-react.cjs.mjs",
      default: "./dist/emotion-react.cjs.js"
    },
    "./jsx-runtime": {
      module: {
        worker: "./jsx-runtime/dist/emotion-react-jsx-runtime.worker.esm.js",
        browser: "./jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js",
        default: "./jsx-runtime/dist/emotion-react-jsx-runtime.esm.js"
      },
      import: "./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.mjs",
      default: "./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.js"
    },
    "./_isolated-hnrs": {
      module: {
        worker: "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.worker.esm.js",
        browser: "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js",
        default: "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.esm.js"
      },
      import: "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.mjs",
      default: "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.js"
    },
    "./jsx-dev-runtime": {
      module: {
        worker: "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.worker.esm.js",
        browser: "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js",
        default: "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.esm.js"
      },
      import: "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.mjs",
      default: "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.js"
    },
    "./package.json": "./package.json",
    "./types/css-prop": "./types/css-prop.d.ts",
    "./macro": {
      types: {
        import: "./macro.d.mts",
        default: "./macro.d.ts"
      },
      default: "./macro.js"
    }
  },
  types: "types/index.d.ts",
  files: [
    "src",
    "dist",
    "jsx-runtime",
    "jsx-dev-runtime",
    "_isolated-hnrs",
    "types/*.d.ts",
    "macro.*"
  ],
  sideEffects: !1,
  author: "Emotion Contributors",
  license: "MIT",
  scripts: {
    "test:typescript": "dtslint types"
  },
  dependencies: {
    "@babel/runtime": "^7.18.3",
    "@emotion/babel-plugin": "^11.11.0",
    "@emotion/cache": "^11.11.0",
    "@emotion/serialize": "^1.1.3",
    "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1",
    "@emotion/utils": "^1.2.1",
    "@emotion/weak-memoize": "^0.3.1",
    "hoist-non-react-statics": "^3.3.1"
  },
  peerDependencies: {
    react: ">=16.8.0"
  },
  peerDependenciesMeta: {
    "@types/react": {
      optional: !0
    }
  },
  devDependencies: {
    "@definitelytyped/dtslint": "0.0.112",
    "@emotion/css": "11.11.2",
    "@emotion/css-prettifier": "1.1.3",
    "@emotion/server": "11.11.0",
    "@emotion/styled": "11.11.0",
    "html-tag-names": "^1.1.2",
    react: "16.14.0",
    "svg-tag-names": "^1.1.1",
    typescript: "^4.5.5"
  },
  repository: "https://github.com/emotion-js/emotion/tree/main/packages/react",
  publishConfig: {
    access: "public"
  },
  "umd:main": "dist/emotion-react.umd.min.js",
  preconstruct: {
    entrypoints: [
      "./index.js",
      "./jsx-runtime.js",
      "./jsx-dev-runtime.js",
      "./_isolated-hnrs.js"
    ],
    umdName: "emotionReact",
    exports: {
      envConditions: [
        "browser",
        "worker"
      ],
      extra: {
        "./types/css-prop": "./types/css-prop.d.ts",
        "./macro": {
          types: {
            import: "./macro.d.mts",
            default: "./macro.d.ts"
          },
          default: "./macro.js"
        }
      }
    }
  }
}, _n = function(o, E) {
  var z = arguments;
  if (E == null || !nT.call(E, "css"))
    return react__WEBPACK_IMPORTED_MODULE_1__.createElement.apply(void 0, z);
  var P = z.length, K = new Array(P);
  K[0] = BP, K[1] = _P(o, E);
  for (var M = 2; M < P; M++)
    K[M] = z[M];
  return react__WEBPACK_IMPORTED_MODULE_1__.createElement.apply(null, K);
}, cS = !1, GP = /* @__PURE__ */ iT(function(s, o) {
   true && !cS && // check for className as well since the user is
  // probably using the custom createElement which
  // means it will be turned into a className prop
  // $FlowFixMe I don't really want to add it to the type since it shouldn't be used
  (s.className || s.css) && (console.error("It looks like you're using the css prop on Global, did you mean to use the styles prop instead?"), cS = !0);
  var E = s.styles, z = q0([E], void 0, react__WEBPACK_IMPORTED_MODULE_1__.useContext(h1)), P = react__WEBPACK_IMPORTED_MODULE_1__.useRef();
  return uS(function() {
    var K = o.key + "-global", M = new o.sheet.constructor({
      key: K,
      nonce: o.sheet.nonce,
      container: o.sheet.container,
      speedy: o.sheet.isSpeedy
    }), L = !1, r = document.querySelector('style[data-emotion="' + K + " " + z.name + '"]');
    return o.sheet.tags.length && (M.before = o.sheet.tags[0]), r !== null && (L = !0, r.setAttribute("data-emotion", K), M.hydrate([r])), P.current = [M, L], function() {
      M.flush();
    };
  }, [o]), uS(function() {
    var K = P.current, M = K[0], L = K[1];
    if (L) {
      K[1] = !1;
      return;
    }
    if (z.next !== void 0 && tT(o, z.next, !0), M.tags.length) {
      var r = M.tags[M.tags.length - 1].nextElementSibling;
      M.before = r, M.flush();
    }
    o.insert("", z, M, !1);
  }, [o, z.name]), null;
});
 true && (GP.displayName = "EmotionGlobal");
function oT() {
  for (var s = arguments.length, o = new Array(s), E = 0; E < s; E++)
    o[E] = arguments[E];
  return q0(o);
}
var UP = function() {
  var o = oT.apply(void 0, arguments), E = "animation-" + o.name;
  return {
    name: E,
    styles: "@keyframes " + E + "{" + o.styles + "}",
    anim: 1,
    toString: function() {
      return "_EMO_" + this.name + "_" + this.styles + "_EMO_";
    }
  };
}, WP = function s(o) {
  for (var E = o.length, z = 0, P = ""; z < E; z++) {
    var K = o[z];
    if (K != null) {
      var M = void 0;
      switch (typeof K) {
        case "boolean":
          break;
        case "object": {
          if (Array.isArray(K))
            M = s(K);
          else {
             true && K.styles !== void 0 && K.name !== void 0 && console.error("You have passed styles created with `css` from `@emotion/react` package to the `cx`.\n`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from <ClassNames/> component."), M = "";
            for (var L in K)
              K[L] && L && (M && (M += " "), M += L);
          }
          break;
        }
        default:
          M = K;
      }
      M && (P && (P += " "), P += M);
    }
  }
  return P;
};
function YP(s, o, E) {
  var z = [], P = $M(s, z, E);
  return z.length < 2 ? E : P + o(z);
}
var XP = function(o) {
  var E = o.cache, z = o.serializedArr;
  return e6(function() {
    for (var P = 0; P < z.length; P++)
      tT(E, z[P], !1);
  }), null;
}, jP = /* @__PURE__ */ iT(function(s, o) {
  var E = !1, z = [], P = function() {
    if (E && "development" !== "production")
      throw new Error("css can only be used during render");
    for (var a = arguments.length, p = new Array(a), l = 0; l < a; l++)
      p[l] = arguments[l];
    var f = q0(p, o.registered);
    return z.push(f), eT(o, f, !1), o.key + "-" + f.name;
  }, K = function() {
    if (E && "development" !== "production")
      throw new Error("cx can only be used during render");
    for (var a = arguments.length, p = new Array(a), l = 0; l < a; l++)
      p[l] = arguments[l];
    return YP(o.registered, P, WP(p));
  }, M = {
    css: P,
    cx: K,
    theme: react__WEBPACK_IMPORTED_MODULE_1__.useContext(h1)
  }, L = s.children(M);
  return E = !0, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(XP, {
    cache: o,
    serializedArr: z
  }), L);
});
 true && (jP.displayName = "EmotionClassNames");
if (true) {
  var dS = !0, ZP = typeof jest < "u" || typeof vi < "u";
  if (dS && !ZP) {
    var vS = (
      // $FlowIgnore
      typeof globalThis < "u" ? globalThis : dS ? window : __webpack_require__.g
    ), hS = "__EMOTION_REACT_" + VP.version.split(".")[0] + "__";
    vS[hS] && console.warn("You are loading @emotion/react when it is already loaded. Running multiple instances may cause problems. This can happen if multiple versions are used, or if multiple builds of the same version are used."), vS[hS] = !0;
  }
}
function $P(s, o) {
  return o || (o = s.slice(0)), Object.freeze(Object.defineProperties(s, {
    raw: {
      value: Object.freeze(o)
    }
  }));
}
const JP = Math.min, QP = Math.max, Vg = Math.round, gg = Math.floor, Gg = (s) => ({
  x: s,
  y: s
});
function KP(s) {
  const {
    x: o,
    y: E,
    width: z,
    height: P
  } = s;
  return {
    width: z,
    height: P,
    top: E,
    left: o,
    right: o + z,
    bottom: E + P,
    x: o,
    y: E
  };
}
function r6(s) {
  return a6(s) ? (s.nodeName || "").toLowerCase() : "#document";
}
function Vf(s) {
  var o;
  return (s == null || (o = s.ownerDocument) == null ? void 0 : o.defaultView) || window;
}
function n6(s) {
  var o;
  return (o = (a6(s) ? s.ownerDocument : s.document) || window.document) == null ? void 0 : o.documentElement;
}
function a6(s) {
  return s instanceof Node || s instanceof Vf(s).Node;
}
function qP(s) {
  return s instanceof Element || s instanceof Vf(s).Element;
}
function lT(s) {
  return s instanceof HTMLElement || s instanceof Vf(s).HTMLElement;
}
function pS(s) {
  return typeof ShadowRoot > "u" ? !1 : s instanceof ShadowRoot || s instanceof Vf(s).ShadowRoot;
}
function i6(s) {
  const {
    overflow: o,
    overflowX: E,
    overflowY: z,
    display: P
  } = sT(s);
  return /auto|scroll|overlay|hidden|clip/.test(o + z + E) && !["inline", "contents"].includes(P);
}
function eF() {
  return typeof CSS > "u" || !CSS.supports ? !1 : CSS.supports("-webkit-backdrop-filter", "none");
}
function tF(s) {
  return ["html", "body", "#document"].includes(r6(s));
}
function sT(s) {
  return Vf(s).getComputedStyle(s);
}
function rF(s) {
  if (r6(s) === "html")
    return s;
  const o = (
    // Step into the shadow DOM of the parent of a slotted node.
    s.assignedSlot || // DOM Element detected.
    s.parentNode || // ShadowRoot detected.
    pS(s) && s.host || // Fallback.
    n6(s)
  );
  return pS(o) ? o.host : o;
}
function o6(s) {
  const o = rF(s);
  return tF(o) ? s.ownerDocument ? s.ownerDocument.body : s.body : lT(o) && i6(o) ? o : o6(o);
}
function Ug(s, o, E) {
  var z;
  o === void 0 && (o = []), E === void 0 && (E = !0);
  const P = o6(s), K = P === ((z = s.ownerDocument) == null ? void 0 : z.body), M = Vf(P);
  return K ? o.concat(M, M.visualViewport || [], i6(P) ? P : [], M.frameElement && E ? Ug(M.frameElement) : []) : o.concat(P, Ug(P, [], E));
}
function nF(s) {
  const o = sT(s);
  let E = parseFloat(o.width) || 0, z = parseFloat(o.height) || 0;
  const P = lT(s), K = P ? s.offsetWidth : E, M = P ? s.offsetHeight : z, L = Vg(E) !== K || Vg(z) !== M;
  return L && (E = K, z = M), {
    width: E,
    height: z,
    $: L
  };
}
function uT(s) {
  return qP(s) ? s : s.contextElement;
}
function mS(s) {
  const o = uT(s);
  if (!lT(o))
    return Gg(1);
  const E = o.getBoundingClientRect(), {
    width: z,
    height: P,
    $: K
  } = nF(o);
  let M = (K ? Vg(E.width) : E.width) / z, L = (K ? Vg(E.height) : E.height) / P;
  return (!M || !Number.isFinite(M)) && (M = 1), (!L || !Number.isFinite(L)) && (L = 1), {
    x: M,
    y: L
  };
}
const aF = /* @__PURE__ */ Gg(0);
function iF(s) {
  const o = Vf(s);
  return !eF() || !o.visualViewport ? aF : {
    x: o.visualViewport.offsetLeft,
    y: o.visualViewport.offsetTop
  };
}
function oF(s, o, E) {
  return !1;
}
function yS(s, o, E, z) {
  o === void 0 && (o = !1);
  const P = s.getBoundingClientRect(), K = uT(s);
  let M = Gg(1);
  o && (M = mS(s));
  const L = oF() ? iF(K) : Gg(0);
  let r = (P.left + L.x) / M.x, a = (P.top + L.y) / M.y, p = P.width / M.x, l = P.height / M.y;
  if (K) {
    const f = Vf(K), u = z;
    let c = f, d = c.frameElement;
    for (; d && z && u !== c; ) {
      const h = mS(d), i = d.getBoundingClientRect(), b = sT(d), x = i.left + (d.clientLeft + parseFloat(b.paddingLeft)) * h.x, D = i.top + (d.clientTop + parseFloat(b.paddingTop)) * h.y;
      r *= h.x, a *= h.y, p *= h.x, l *= h.y, r += x, a += D, c = Vf(d), d = c.frameElement;
    }
  }
  return KP({
    width: p,
    height: l,
    x: r,
    y: a
  });
}
function lF(s, o) {
  let E = null, z;
  const P = n6(s);
  function K() {
    var L;
    clearTimeout(z), (L = E) == null || L.disconnect(), E = null;
  }
  function M(L, r) {
    L === void 0 && (L = !1), r === void 0 && (r = 1), K();
    const {
      left: a,
      top: p,
      width: l,
      height: f
    } = s.getBoundingClientRect();
    if (L || o(), !l || !f)
      return;
    const u = gg(p), c = gg(P.clientWidth - (a + l)), d = gg(P.clientHeight - (p + f)), h = gg(a), b = {
      rootMargin: -u + "px " + -c + "px " + -d + "px " + -h + "px",
      threshold: QP(0, JP(1, r)) || 1
    };
    let x = !0;
    function D(C) {
      const w = C[0].intersectionRatio;
      if (w !== r) {
        if (!x)
          return M();
        w ? M(!1, w) : z = setTimeout(() => {
          M(!1, 1e-7);
        }, 1e3);
      }
      x = !1;
    }
    try {
      E = new IntersectionObserver(D, {
        ...b,
        // Handle <iframe>s
        root: P.ownerDocument
      });
    } catch {
      E = new IntersectionObserver(D, b);
    }
    E.observe(s);
  }
  return M(!0), K;
}
function sF(s, o, E, z) {
  z === void 0 && (z = {});
  const {
    ancestorScroll: P = !0,
    ancestorResize: K = !0,
    elementResize: M = typeof ResizeObserver == "function",
    layoutShift: L = typeof IntersectionObserver == "function",
    animationFrame: r = !1
  } = z, a = uT(s), p = P || K ? [...a ? Ug(a) : [], ...Ug(o)] : [];
  p.forEach((i) => {
    P && i.addEventListener("scroll", E, {
      passive: !0
    }), K && i.addEventListener("resize", E);
  });
  const l = a && L ? lF(a, E) : null;
  let f = -1, u = null;
  M && (u = new ResizeObserver((i) => {
    let [b] = i;
    b && b.target === a && u && (u.unobserve(o), cancelAnimationFrame(f), f = requestAnimationFrame(() => {
      var x;
      (x = u) == null || x.observe(o);
    })), E();
  }), a && !r && u.observe(a), u.observe(o));
  let c, d = r ? yS(s) : null;
  r && h();
  function h() {
    const i = yS(s);
    d && (i.x !== d.x || i.y !== d.y || i.width !== d.width || i.height !== d.height) && E(), d = i, c = requestAnimationFrame(h);
  }
  return E(), () => {
    var i;
    p.forEach((b) => {
      P && b.removeEventListener("scroll", E), K && b.removeEventListener("resize", E);
    }), l == null || l(), (i = u) == null || i.disconnect(), u = null, r && cancelAnimationFrame(c);
  };
}
var m3 = react__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect, uF = ["className", "clearValue", "cx", "getStyles", "getClassNames", "getValue", "hasValue", "isMulti", "isRtl", "options", "selectOption", "selectProps", "setValue", "theme"], Wg = function() {
};
function fF(s, o) {
  return o ? o[0] === "-" ? s + o : s + "__" + o : s;
}
function cF(s, o) {
  for (var E = arguments.length, z = new Array(E > 2 ? E - 2 : 0), P = 2; P < E; P++)
    z[P - 2] = arguments[P];
  var K = [].concat(z);
  if (o && s)
    for (var M in o)
      o.hasOwnProperty(M) && o[M] && K.push("".concat(fF(s, M)));
  return K.filter(function(L) {
    return L;
  }).map(function(L) {
    return String(L).trim();
  }).join(" ");
}
var Yg = function(o) {
  return xF(o) ? o.filter(Boolean) : ov(o) === "object" && o !== null ? [o] : [];
}, l6 = function(o) {
  o.className, o.clearValue, o.cx, o.getStyles, o.getClassNames, o.getValue, o.hasValue, o.isMulti, o.isRtl, o.options, o.selectOption, o.selectProps, o.setValue, o.theme;
  var E = Wu(o, uF);
  return On({}, E);
}, Ci = function(o, E, z) {
  var P = o.cx, K = o.getStyles, M = o.getClassNames, L = o.className;
  return {
    css: K(E, o),
    className: P(z ?? {}, M(E, o), L)
  };
};
function p1(s) {
  return [document.documentElement, document.body, window].indexOf(s) > -1;
}
function dF(s) {
  return p1(s) ? window.innerHeight : s.clientHeight;
}
function s6(s) {
  return p1(s) ? window.pageYOffset : s.scrollTop;
}
function Xg(s, o) {
  if (p1(s)) {
    window.scrollTo(0, o);
    return;
  }
  s.scrollTop = o;
}
function vF(s) {
  var o = getComputedStyle(s), E = o.position === "absolute", z = /(auto|scroll)/;
  if (o.position === "fixed")
    return document.documentElement;
  for (var P = s; P = P.parentElement; )
    if (o = getComputedStyle(P), !(E && o.position === "static") && z.test(o.overflow + o.overflowY + o.overflowX))
      return P;
  return document.documentElement;
}
function hF(s, o, E, z) {
  return E * ((s = s / z - 1) * s * s + 1) + o;
}
function bg(s, o) {
  var E = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 200, z = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : Wg, P = s6(s), K = o - P, M = 10, L = 0;
  function r() {
    L += M;
    var a = hF(L, P, K, E);
    Xg(s, a), L < E ? window.requestAnimationFrame(r) : z(s);
  }
  r();
}
function gS(s, o) {
  var E = s.getBoundingClientRect(), z = o.getBoundingClientRect(), P = o.offsetHeight / 3;
  z.bottom + P > E.bottom ? Xg(s, Math.min(o.offsetTop + o.clientHeight - s.offsetHeight + P, s.scrollHeight)) : z.top - P < E.top && Xg(s, Math.max(o.offsetTop - P, 0));
}
function pF(s) {
  var o = s.getBoundingClientRect();
  return {
    bottom: o.bottom,
    height: o.height,
    left: o.left,
    right: o.right,
    top: o.top,
    width: o.width
  };
}
function bS() {
  try {
    return document.createEvent("TouchEvent"), !0;
  } catch {
    return !1;
  }
}
function mF() {
  try {
    return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
  } catch {
    return !1;
  }
}
var u6 = !1, yF = {
  get passive() {
    return u6 = !0;
  }
}, xg = typeof window < "u" ? window : {};
xg.addEventListener && xg.removeEventListener && (xg.addEventListener("p", Wg, yF), xg.removeEventListener("p", Wg, !1));
var gF = u6;
function bF(s) {
  return s != null;
}
function xF(s) {
  return Array.isArray(s);
}
function B0(s, o, E) {
  return s ? o : E;
}
var TF = function(o) {
  for (var E = arguments.length, z = new Array(E > 1 ? E - 1 : 0), P = 1; P < E; P++)
    z[P - 1] = arguments[P];
  var K = Object.entries(o).filter(function(M) {
    var L = zf(M, 1), r = L[0];
    return !z.includes(r);
  });
  return K.reduce(function(M, L) {
    var r = zf(L, 2), a = r[0], p = r[1];
    return M[a] = p, M;
  }, {});
}, CF = ["children", "innerProps"], AF = ["children", "innerProps"];
function wF(s) {
  var o = s.maxHeight, E = s.menuEl, z = s.minHeight, P = s.placement, K = s.shouldScroll, M = s.isFixedPosition, L = s.controlHeight, r = vF(E), a = {
    placement: "bottom",
    maxHeight: o
  };
  if (!E || !E.offsetParent)
    return a;
  var p = r.getBoundingClientRect(), l = p.height, f = E.getBoundingClientRect(), u = f.bottom, c = f.height, d = f.top, h = E.offsetParent.getBoundingClientRect(), i = h.top, b = M ? window.innerHeight : dF(r), x = s6(r), D = parseInt(getComputedStyle(E).marginBottom, 10), C = parseInt(getComputedStyle(E).marginTop, 10), w = i - C, S = b - d, T = w + x, k = l - x - d, A = u - b + x + D, R = x + d - C, g = 160;
  switch (P) {
    case "auto":
    case "bottom":
      if (S >= c)
        return {
          placement: "bottom",
          maxHeight: o
        };
      if (k >= c && !M)
        return K && bg(r, A, g), {
          placement: "bottom",
          maxHeight: o
        };
      if (!M && k >= z || M && S >= z) {
        K && bg(r, A, g);
        var I = M ? S - D : k - D;
        return {
          placement: "bottom",
          maxHeight: I
        };
      }
      if (P === "auto" || M) {
        var O = o, $ = M ? w : T;
        return $ >= z && (O = Math.min($ - D - L, o)), {
          placement: "top",
          maxHeight: O
        };
      }
      if (P === "bottom")
        return K && Xg(r, A), {
          placement: "bottom",
          maxHeight: o
        };
      break;
    case "top":
      if (w >= c)
        return {
          placement: "top",
          maxHeight: o
        };
      if (T >= c && !M)
        return K && bg(r, R, g), {
          placement: "top",
          maxHeight: o
        };
      if (!M && T >= z || M && w >= z) {
        var Y = o;
        return (!M && T >= z || M && w >= z) && (Y = M ? w - C : T - C), K && bg(r, R, g), {
          placement: "top",
          maxHeight: Y
        };
      }
      return {
        placement: "bottom",
        maxHeight: o
      };
    default:
      throw new Error('Invalid placement provided "'.concat(P, '".'));
  }
  return a;
}
function SF(s) {
  var o = {
    bottom: "top",
    top: "bottom"
  };
  return s ? o[s] : "bottom";
}
var f6 = function(o) {
  return o === "auto" ? "bottom" : o;
}, MF = function(o, E) {
  var z, P = o.placement, K = o.theme, M = K.borderRadius, L = K.spacing, r = K.colors;
  return On((z = {
    label: "menu"
  }, H0(z, SF(P), "100%"), H0(z, "position", "absolute"), H0(z, "width", "100%"), H0(z, "zIndex", 1), z), E ? {} : {
    backgroundColor: r.neutral0,
    borderRadius: M,
    boxShadow: "0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)",
    marginBottom: L.menuGutter,
    marginTop: L.menuGutter
  });
}, c6 = /* @__PURE__ */ (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)(null), EF = function(o) {
  var E = o.children, z = o.minMenuHeight, P = o.maxMenuHeight, K = o.menuPlacement, M = o.menuPosition, L = o.menuShouldScrollIntoView, r = o.theme, a = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(c6) || {}, p = a.setPortalPlacement, l = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null), f = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(P), u = zf(f, 2), c = u[0], d = u[1], h = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null), i = zf(h, 2), b = i[0], x = i[1], D = r.spacing.controlHeight;
  return m3(function() {
    var C = l.current;
    if (C) {
      var w = M === "fixed", S = L && !w, T = wF({
        maxHeight: P,
        menuEl: C,
        minHeight: z,
        placement: K,
        shouldScroll: S,
        isFixedPosition: w,
        controlHeight: D
      });
      d(T.maxHeight), x(T.placement), p == null || p(T.placement);
    }
  }, [P, K, M, L, z, p, D]), E({
    ref: l,
    placerProps: On(On({}, o), {}, {
      placement: b || f6(K),
      maxHeight: c
    })
  });
}, DF = function(o) {
  var E = o.children, z = o.innerRef, P = o.innerProps;
  return _n("div", Vn({}, Ci(o, "menu", {
    menu: !0
  }), {
    ref: z
  }, P), E);
}, RF = DF, LF = function(o, E) {
  var z = o.maxHeight, P = o.theme.spacing.baseUnit;
  return On({
    maxHeight: z,
    overflowY: "auto",
    position: "relative",
    // required for offset[Height, Top] > keyboard scroll
    WebkitOverflowScrolling: "touch"
  }, E ? {} : {
    paddingBottom: P,
    paddingTop: P
  });
}, kF = function(o) {
  var E = o.children, z = o.innerProps, P = o.innerRef, K = o.isMulti;
  return _n("div", Vn({}, Ci(o, "menuList", {
    "menu-list": !0,
    "menu-list--is-multi": K
  }), {
    ref: P
  }, z), E);
}, d6 = function(o, E) {
  var z = o.theme, P = z.spacing.baseUnit, K = z.colors;
  return On({
    textAlign: "center"
  }, E ? {} : {
    color: K.neutral40,
    padding: "".concat(P * 2, "px ").concat(P * 3, "px")
  });
}, IF = d6, NF = d6, OF = function(o) {
  var E = o.children, z = E === void 0 ? "No options" : E, P = o.innerProps, K = Wu(o, CF);
  return _n("div", Vn({}, Ci(On(On({}, K), {}, {
    children: z,
    innerProps: P
  }), "noOptionsMessage", {
    "menu-notice": !0,
    "menu-notice--no-options": !0
  }), P), z);
}, PF = function(o) {
  var E = o.children, z = E === void 0 ? "Loading..." : E, P = o.innerProps, K = Wu(o, AF);
  return _n("div", Vn({}, Ci(On(On({}, K), {}, {
    children: z,
    innerProps: P
  }), "loadingMessage", {
    "menu-notice": !0,
    "menu-notice--loading": !0
  }), P), z);
}, FF = function(o) {
  var E = o.rect, z = o.offset, P = o.position;
  return {
    left: E.left,
    position: P,
    top: z,
    width: E.width,
    zIndex: 1
  };
}, zF = function(o) {
  var E = o.appendTo, z = o.children, P = o.controlElement, K = o.innerProps, M = o.menuPlacement, L = o.menuPosition, r = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null), a = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null), p = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(f6(M)), l = zf(p, 2), f = l[0], u = l[1], c = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(function() {
    return {
      setPortalPlacement: u
    };
  }, []), d = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null), h = zf(d, 2), i = h[0], b = h[1], x = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(function() {
    if (P) {
      var S = pF(P), T = L === "fixed" ? 0 : window.pageYOffset, k = S[f] + T;
      (k !== (i == null ? void 0 : i.offset) || S.left !== (i == null ? void 0 : i.rect.left) || S.width !== (i == null ? void 0 : i.rect.width)) && b({
        offset: k,
        rect: S
      });
    }
  }, [P, L, f, i == null ? void 0 : i.offset, i == null ? void 0 : i.rect.left, i == null ? void 0 : i.rect.width]);
  m3(function() {
    x();
  }, [x]);
  var D = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(function() {
    typeof a.current == "function" && (a.current(), a.current = null), P && r.current && (a.current = sF(P, r.current, x, {
      elementResize: "ResizeObserver" in window
    }));
  }, [P, x]);
  m3(function() {
    D();
  }, [D]);
  var C = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(function(S) {
    r.current = S, D();
  }, [D]);
  if (!E && L !== "fixed" || !i)
    return null;
  var w = _n("div", Vn({
    ref: C
  }, Ci(On(On({}, o), {}, {
    offset: i.offset,
    position: L,
    rect: i.rect
  }), "menuPortal", {
    "menu-portal": !0
  }), K), z);
  return _n(c6.Provider, {
    value: c
  }, E ? /* @__PURE__ */ JS.createPortal(w, E) : w);
}, _F = function(o) {
  var E = o.isDisabled, z = o.isRtl;
  return {
    label: "container",
    direction: z ? "rtl" : void 0,
    pointerEvents: E ? "none" : void 0,
    // cancel mouse events when disabled
    position: "relative"
  };
}, HF = function(o) {
  var E = o.children, z = o.innerProps, P = o.isDisabled, K = o.isRtl;
  return _n("div", Vn({}, Ci(o, "container", {
    "--is-disabled": P,
    "--is-rtl": K
  }), z), E);
}, BF = function(o, E) {
  var z = o.theme.spacing, P = o.isMulti, K = o.hasValue, M = o.selectProps.controlShouldRenderValue;
  return On({
    alignItems: "center",
    display: P && K && M ? "flex" : "grid",
    flex: 1,
    flexWrap: "wrap",
    WebkitOverflowScrolling: "touch",
    position: "relative",
    overflow: "hidden"
  }, E ? {} : {
    padding: "".concat(z.baseUnit / 2, "px ").concat(z.baseUnit * 2, "px")
  });
}, VF = function(o) {
  var E = o.children, z = o.innerProps, P = o.isMulti, K = o.hasValue;
  return _n("div", Vn({}, Ci(o, "valueContainer", {
    "value-container": !0,
    "value-container--is-multi": P,
    "value-container--has-value": K
  }), z), E);
}, GF = function() {
  return {
    alignItems: "center",
    alignSelf: "stretch",
    display: "flex",
    flexShrink: 0
  };
}, UF = function(o) {
  var E = o.children, z = o.innerProps;
  return _n("div", Vn({}, Ci(o, "indicatorsContainer", {
    indicators: !0
  }), z), E);
}, xS, WF = ["size"], YF = ["innerProps", "isRtl", "size"];
function XF() {
  return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).";
}
var jF =  false ? 0 : {
  name: "tj5bde-Svg",
  styles: "display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0;label:Svg;",
  map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,  */",
  toString: XF
}, v6 = function(o) {
  var E = o.size, z = Wu(o, WF);
  return _n("svg", Vn({
    height: E,
    width: E,
    viewBox: "0 0 20 20",
    "aria-hidden": "true",
    focusable: "false",
    css: jF
  }, z));
}, fT = function(o) {
  return _n(v6, Vn({
    size: 20
  }, o), _n("path", {
    d: "M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z"
  }));
}, h6 = function(o) {
  return _n(v6, Vn({
    size: 20
  }, o), _n("path", {
    d: "M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z"
  }));
}, p6 = function(o, E) {
  var z = o.isFocused, P = o.theme, K = P.spacing.baseUnit, M = P.colors;
  return On({
    label: "indicatorContainer",
    display: "flex",
    transition: "color 150ms"
  }, E ? {} : {
    color: z ? M.neutral60 : M.neutral20,
    padding: K * 2,
    ":hover": {
      color: z ? M.neutral80 : M.neutral40
    }
  });
}, ZF = p6, $F = function(o) {
  var E = o.children, z = o.innerProps;
  return _n("div", Vn({}, Ci(o, "dropdownIndicator", {
    indicator: !0,
    "dropdown-indicator": !0
  }), z), E || _n(h6, null));
}, JF = p6, QF = function(o) {
  var E = o.children, z = o.innerProps;
  return _n("div", Vn({}, Ci(o, "clearIndicator", {
    indicator: !0,
    "clear-indicator": !0
  }), z), E || _n(fT, null));
}, KF = function(o, E) {
  var z = o.isDisabled, P = o.theme, K = P.spacing.baseUnit, M = P.colors;
  return On({
    label: "indicatorSeparator",
    alignSelf: "stretch",
    width: 1
  }, E ? {} : {
    backgroundColor: z ? M.neutral10 : M.neutral20,
    marginBottom: K * 2,
    marginTop: K * 2
  });
}, qF = function(o) {
  var E = o.innerProps;
  return _n("span", Vn({}, E, Ci(o, "indicatorSeparator", {
    "indicator-separator": !0
  })));
}, ez = UP(xS || (xS = $P([`
  0%, 80%, 100% { opacity: 0; }
  40% { opacity: 1; }
`]))), tz = function(o, E) {
  var z = o.isFocused, P = o.size, K = o.theme, M = K.colors, L = K.spacing.baseUnit;
  return On({
    label: "loadingIndicator",
    display: "flex",
    transition: "color 150ms",
    alignSelf: "center",
    fontSize: P,
    lineHeight: 1,
    marginRight: P,
    textAlign: "center",
    verticalAlign: "middle"
  }, E ? {} : {
    color: z ? M.neutral60 : M.neutral20,
    padding: L * 2
  });
}, Gx = function(o) {
  var E = o.delay, z = o.offset;
  return _n("span", {
    css: /* @__PURE__ */ oT({
      animation: "".concat(ez, " 1s ease-in-out ").concat(E, "ms infinite;"),
      backgroundColor: "currentColor",
      borderRadius: "1em",
      display: "inline-block",
      marginLeft: z ? "1em" : void 0,
      height: "1em",
      verticalAlign: "top",
      width: "1em"
    },  false ? 0 : ";label:LoadingDot;",  false ? 0 : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,  */")
  });
}, rz = function(o) {
  var E = o.innerProps, z = o.isRtl, P = o.size, K = P === void 0 ? 4 : P, M = Wu(o, YF);
  return _n("div", Vn({}, Ci(On(On({}, M), {}, {
    innerProps: E,
    isRtl: z,
    size: K
  }), "loadingIndicator", {
    indicator: !0,
    "loading-indicator": !0
  }), E), _n(Gx, {
    delay: 0,
    offset: z
  }), _n(Gx, {
    delay: 160,
    offset: !0
  }), _n(Gx, {
    delay: 320,
    offset: !z
  }));
}, nz = function(o, E) {
  var z = o.isDisabled, P = o.isFocused, K = o.theme, M = K.colors, L = K.borderRadius, r = K.spacing;
  return On({
    label: "control",
    alignItems: "center",
    cursor: "default",
    display: "flex",
    flexWrap: "wrap",
    justifyContent: "space-between",
    minHeight: r.controlHeight,
    outline: "0 !important",
    position: "relative",
    transition: "all 100ms"
  }, E ? {} : {
    backgroundColor: z ? M.neutral5 : M.neutral0,
    borderColor: z ? M.neutral10 : P ? M.primary : M.neutral20,
    borderRadius: L,
    borderStyle: "solid",
    borderWidth: 1,
    boxShadow: P ? "0 0 0 1px ".concat(M.primary) : void 0,
    "&:hover": {
      borderColor: P ? M.primary : M.neutral30
    }
  });
}, az = function(o) {
  var E = o.children, z = o.isDisabled, P = o.isFocused, K = o.innerRef, M = o.innerProps, L = o.menuIsOpen;
  return _n("div", Vn({
    ref: K
  }, Ci(o, "control", {
    control: !0,
    "control--is-disabled": z,
    "control--is-focused": P,
    "control--menu-is-open": L
  }), M, {
    "aria-disabled": z || void 0
  }), E);
}, iz = az, oz = ["data"], lz = function(o, E) {
  var z = o.theme.spacing;
  return E ? {} : {
    paddingBottom: z.baseUnit * 2,
    paddingTop: z.baseUnit * 2
  };
}, sz = function(o) {
  var E = o.children, z = o.cx, P = o.getStyles, K = o.getClassNames, M = o.Heading, L = o.headingProps, r = o.innerProps, a = o.label, p = o.theme, l = o.selectProps;
  return _n("div", Vn({}, Ci(o, "group", {
    group: !0
  }), r), _n(M, Vn({}, L, {
    selectProps: l,
    theme: p,
    getStyles: P,
    getClassNames: K,
    cx: z
  }), a), _n("div", null, E));
}, uz = function(o, E) {
  var z = o.theme, P = z.colors, K = z.spacing;
  return On({
    label: "group",
    cursor: "default",
    display: "block"
  }, E ? {} : {
    color: P.neutral40,
    fontSize: "75%",
    fontWeight: 500,
    marginBottom: "0.25em",
    paddingLeft: K.baseUnit * 3,
    paddingRight: K.baseUnit * 3,
    textTransform: "uppercase"
  });
}, fz = function(o) {
  var E = l6(o);
  E.data;
  var z = Wu(E, oz);
  return _n("div", Vn({}, Ci(o, "groupHeading", {
    "group-heading": !0
  }), z));
}, cz = sz, dz = ["innerRef", "isDisabled", "isHidden", "inputClassName"], vz = function(o, E) {
  var z = o.isDisabled, P = o.value, K = o.theme, M = K.spacing, L = K.colors;
  return On(On({
    visibility: z ? "hidden" : "visible",
    // force css to recompute when value change due to @emotion bug.
    // We can remove it whenever the bug is fixed.
    transform: P ? "translateZ(0)" : ""
  }, hz), E ? {} : {
    margin: M.baseUnit / 2,
    paddingBottom: M.baseUnit / 2,
    paddingTop: M.baseUnit / 2,
    color: L.neutral80
  });
}, m6 = {
  gridArea: "1 / 2",
  font: "inherit",
  minWidth: "2px",
  border: 0,
  margin: 0,
  outline: 0,
  padding: 0
}, hz = {
  flex: "1 1 auto",
  display: "inline-grid",
  gridArea: "1 / 1 / 2 / 3",
  gridTemplateColumns: "0 min-content",
  "&:after": On({
    content: 'attr(data-value) " "',
    visibility: "hidden",
    whiteSpace: "pre"
  }, m6)
}, pz = function(o) {
  return On({
    label: "input",
    color: "inherit",
    background: 0,
    opacity: o ? 0 : 1,
    width: "100%"
  }, m6);
}, mz = function(o) {
  var E = o.cx, z = o.value, P = l6(o), K = P.innerRef, M = P.isDisabled, L = P.isHidden, r = P.inputClassName, a = Wu(P, dz);
  return _n("div", Vn({}, Ci(o, "input", {
    "input-container": !0
  }), {
    "data-value": z || ""
  }), _n("input", Vn({
    className: E({
      input: !0
    }, r),
    ref: K,
    style: pz(L),
    disabled: M
  }, a)));
}, yz = mz, gz = function(o, E) {
  var z = o.theme, P = z.spacing, K = z.borderRadius, M = z.colors;
  return On({
    label: "multiValue",
    display: "flex",
    minWidth: 0
  }, E ? {} : {
    backgroundColor: M.neutral10,
    borderRadius: K / 2,
    margin: P.baseUnit / 2
  });
}, bz = function(o, E) {
  var z = o.theme, P = z.borderRadius, K = z.colors, M = o.cropWithEllipsis;
  return On({
    overflow: "hidden",
    textOverflow: M || M === void 0 ? "ellipsis" : void 0,
    whiteSpace: "nowrap"
  }, E ? {} : {
    borderRadius: P / 2,
    color: K.neutral80,
    fontSize: "85%",
    padding: 3,
    paddingLeft: 6
  });
}, xz = function(o, E) {
  var z = o.theme, P = z.spacing, K = z.borderRadius, M = z.colors, L = o.isFocused;
  return On({
    alignItems: "center",
    display: "flex"
  }, E ? {} : {
    borderRadius: K / 2,
    backgroundColor: L ? M.dangerLight : void 0,
    paddingLeft: P.baseUnit,
    paddingRight: P.baseUnit,
    ":hover": {
      backgroundColor: M.dangerLight,
      color: M.danger
    }
  });
}, y6 = function(o) {
  var E = o.children, z = o.innerProps;
  return _n("div", z, E);
}, Tz = y6, Cz = y6;
function Az(s) {
  var o = s.children, E = s.innerProps;
  return _n("div", Vn({
    role: "button"
  }, E), o || _n(fT, {
    size: 14
  }));
}
var wz = function(o) {
  var E = o.children, z = o.components, P = o.data, K = o.innerProps, M = o.isDisabled, L = o.removeProps, r = o.selectProps, a = z.Container, p = z.Label, l = z.Remove;
  return _n(a, {
    data: P,
    innerProps: On(On({}, Ci(o, "multiValue", {
      "multi-value": !0,
      "multi-value--is-disabled": M
    })), K),
    selectProps: r
  }, _n(p, {
    data: P,
    innerProps: On({}, Ci(o, "multiValueLabel", {
      "multi-value__label": !0
    })),
    selectProps: r
  }, E), _n(l, {
    data: P,
    innerProps: On(On({}, Ci(o, "multiValueRemove", {
      "multi-value__remove": !0
    })), {}, {
      "aria-label": "Remove ".concat(E || "option")
    }, L),
    selectProps: r
  }));
}, Sz = wz, Mz = function(o, E) {
  var z = o.isDisabled, P = o.isFocused, K = o.isSelected, M = o.theme, L = M.spacing, r = M.colors;
  return On({
    label: "option",
    cursor: "default",
    display: "block",
    fontSize: "inherit",
    width: "100%",
    userSelect: "none",
    WebkitTapHighlightColor: "rgba(0, 0, 0, 0)"
  }, E ? {} : {
    backgroundColor: K ? r.primary : P ? r.primary25 : "transparent",
    color: z ? r.neutral20 : K ? r.neutral0 : "inherit",
    padding: "".concat(L.baseUnit * 2, "px ").concat(L.baseUnit * 3, "px"),
    // provide some affordance on touch devices
    ":active": {
      backgroundColor: z ? void 0 : K ? r.primary : r.primary50
    }
  });
}, Ez = function(o) {
  var E = o.children, z = o.isDisabled, P = o.isFocused, K = o.isSelected, M = o.innerRef, L = o.innerProps;
  return _n("div", Vn({}, Ci(o, "option", {
    option: !0,
    "option--is-disabled": z,
    "option--is-focused": P,
    "option--is-selected": K
  }), {
    ref: M,
    "aria-disabled": z
  }, L), E);
}, Dz = Ez, Rz = function(o, E) {
  var z = o.theme, P = z.spacing, K = z.colors;
  return On({
    label: "placeholder",
    gridArea: "1 / 1 / 2 / 3"
  }, E ? {} : {
    color: K.neutral50,
    marginLeft: P.baseUnit / 2,
    marginRight: P.baseUnit / 2
  });
}, Lz = function(o) {
  var E = o.children, z = o.innerProps;
  return _n("div", Vn({}, Ci(o, "placeholder", {
    placeholder: !0
  }), z), E);
}, kz = Lz, Iz = function(o, E) {
  var z = o.isDisabled, P = o.theme, K = P.spacing, M = P.colors;
  return On({
    label: "singleValue",
    gridArea: "1 / 1 / 2 / 3",
    maxWidth: "100%",
    overflow: "hidden",
    textOverflow: "ellipsis",
    whiteSpace: "nowrap"
  }, E ? {} : {
    color: z ? M.neutral40 : M.neutral80,
    marginLeft: K.baseUnit / 2,
    marginRight: K.baseUnit / 2
  });
}, Nz = function(o) {
  var E = o.children, z = o.isDisabled, P = o.innerProps;
  return _n("div", Vn({}, Ci(o, "singleValue", {
    "single-value": !0,
    "single-value--is-disabled": z
  }), P), E);
}, Oz = Nz, g6 = {
  ClearIndicator: QF,
  Control: iz,
  DropdownIndicator: $F,
  DownChevron: h6,
  CrossIcon: fT,
  Group: cz,
  GroupHeading: fz,
  IndicatorsContainer: UF,
  IndicatorSeparator: qF,
  Input: yz,
  LoadingIndicator: rz,
  Menu: RF,
  MenuList: kF,
  MenuPortal: zF,
  LoadingMessage: PF,
  NoOptionsMessage: OF,
  MultiValue: Sz,
  MultiValueContainer: Tz,
  MultiValueLabel: Cz,
  MultiValueRemove: Az,
  Option: Dz,
  Placeholder: kz,
  SelectContainer: HF,
  SingleValue: Oz,
  ValueContainer: VF
}, Pz = function(o) {
  return On(On({}, g6), o.components);
}, TS = Number.isNaN || function(o) {
  return typeof o == "number" && o !== o;
};
function Fz(s, o) {
  return !!(s === o || TS(s) && TS(o));
}
function zz(s, o) {
  if (s.length !== o.length)
    return !1;
  for (var E = 0; E < s.length; E++)
    if (!Fz(s[E], o[E]))
      return !1;
  return !0;
}
function _z(s, o) {
  o === void 0 && (o = zz);
  var E = null;
  function z() {
    for (var P = [], K = 0; K < arguments.length; K++)
      P[K] = arguments[K];
    if (E && E.lastThis === this && o(P, E.lastArgs))
      return E.lastResult;
    var M = s.apply(this, P);
    return E = {
      lastResult: M,
      lastArgs: P,
      lastThis: this
    }, M;
  }
  return z.clear = function() {
    E = null;
  }, z;
}
function Hz() {
  return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).";
}
var Bz =  false ? 0 : {
  name: "1f43avz-a11yText-A11yText",
  styles: "label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap;label:A11yText;",
  map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkExMXlUZXh0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNSSIsImZpbGUiOiJBMTF5VGV4dC50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGpzeCBqc3ggKi9cbmltcG9ydCB7IGpzeCB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuLy8gQXNzaXN0aXZlIHRleHQgdG8gZGVzY3JpYmUgdmlzdWFsIGVsZW1lbnRzLiBIaWRkZW4gZm9yIHNpZ2h0ZWQgdXNlcnMuXG5jb25zdCBBMTF5VGV4dCA9IChwcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydzcGFuJ10pID0+IChcbiAgPHNwYW5cbiAgICBjc3M9e3tcbiAgICAgIGxhYmVsOiAnYTExeVRleHQnLFxuICAgICAgekluZGV4OiA5OTk5LFxuICAgICAgYm9yZGVyOiAwLFxuICAgICAgY2xpcDogJ3JlY3QoMXB4LCAxcHgsIDFweCwgMXB4KScsXG4gICAgICBoZWlnaHQ6IDEsXG4gICAgICB3aWR0aDogMSxcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgcGFkZGluZzogMCxcbiAgICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgIH19XG4gICAgey4uLnByb3BzfVxuICAvPlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgQTExeVRleHQ7XG4iXX0= */",
  toString: Hz
}, Vz = function(o) {
  return _n("span", Vn({
    css: Bz
  }, o));
}, CS = Vz, Gz = {
  guidance: function(o) {
    var E = o.isSearchable, z = o.isMulti, P = o.tabSelectsValue, K = o.context, M = o.isInitialFocus;
    switch (K) {
      case "menu":
        return "Use Up and Down to choose options, press Enter to select the currently focused option, press Escape to exit the menu".concat(P ? ", press Tab to select the option and exit the menu" : "", ".");
      case "input":
        return M ? "".concat(o["aria-label"] || "Select", " is focused ").concat(E ? ",type to refine list" : "", ", press Down to open the menu, ").concat(z ? " press left to focus selected values" : "") : "";
      case "value":
        return "Use left and right to toggle between focused values, press Backspace to remove the currently focused value";
      default:
        return "";
    }
  },
  onChange: function(o) {
    var E = o.action, z = o.label, P = z === void 0 ? "" : z, K = o.labels, M = o.isDisabled;
    switch (E) {
      case "deselect-option":
      case "pop-value":
      case "remove-value":
        return "option ".concat(P, ", deselected.");
      case "clear":
        return "All selected options have been cleared.";
      case "initial-input-focus":
        return "option".concat(K.length > 1 ? "s" : "", " ").concat(K.join(","), ", selected.");
      case "select-option":
        return M ? "option ".concat(P, " is disabled. Select another option.") : "option ".concat(P, ", selected.");
      default:
        return "";
    }
  },
  onFocus: function(o) {
    var E = o.context, z = o.focused, P = o.options, K = o.label, M = K === void 0 ? "" : K, L = o.selectValue, r = o.isDisabled, a = o.isSelected, p = o.isAppleDevice, l = function(d, h) {
      return d && d.length ? "".concat(d.indexOf(h) + 1, " of ").concat(d.length) : "";
    };
    if (E === "value" && L)
      return "value ".concat(M, " focused, ").concat(l(L, z), ".");
    if (E === "menu" && p) {
      var f = r ? " disabled" : "", u = "".concat(a ? " selected" : "").concat(f);
      return "".concat(M).concat(u, ", ").concat(l(P, z), ".");
    }
    return "";
  },
  onFilter: function(o) {
    var E = o.inputValue, z = o.resultsMessage;
    return "".concat(z).concat(E ? " for search term " + E : "", ".");
  }
}, Uz = function(o) {
  var E = o.ariaSelection, z = o.focusedOption, P = o.focusedValue, K = o.focusableOptions, M = o.isFocused, L = o.selectValue, r = o.selectProps, a = o.id, p = o.isAppleDevice, l = r.ariaLiveMessages, f = r.getOptionLabel, u = r.inputValue, c = r.isMulti, d = r.isOptionDisabled, h = r.isSearchable, i = r.menuIsOpen, b = r.options, x = r.screenReaderStatus, D = r.tabSelectsValue, C = r.isLoading, w = r["aria-label"], S = r["aria-live"], T = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(function() {
    return On(On({}, Gz), l || {});
  }, [l]), k = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(function() {
    var $ = "";
    if (E && T.onChange) {
      var Y = E.option, ne = E.options, q = E.removedValue, B = E.removedValues, X = E.value, U = function(oe) {
        return Array.isArray(oe) ? null : oe;
      }, te = q || Y || U(X), se = te ? f(te) : "", me = ne || B || void 0, J = me ? me.map(f) : [], W = On({
        // multiSelected items are usually items that have already been selected
        // or set by the user as a default value so we assume they are not disabled
        isDisabled: te && d(te, L),
        label: se,
        labels: J
      }, E);
      $ = T.onChange(W);
    }
    return $;
  }, [E, T, d, L, f]), A = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(function() {
    var $ = "", Y = z || P, ne = !!(z && L && L.includes(z));
    if (Y && T.onFocus) {
      var q = {
        focused: Y,
        label: f(Y),
        isDisabled: d(Y, L),
        isSelected: ne,
        options: K,
        context: Y === z ? "menu" : "value",
        selectValue: L,
        isAppleDevice: p
      };
      $ = T.onFocus(q);
    }
    return $;
  }, [z, P, f, d, T, K, L, p]), R = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(function() {
    var $ = "";
    if (i && b.length && !C && T.onFilter) {
      var Y = x({
        count: K.length
      });
      $ = T.onFilter({
        inputValue: u,
        resultsMessage: Y
      });
    }
    return $;
  }, [K, u, i, T, b, x, C]), g = (E == null ? void 0 : E.action) === "initial-input-focus", I = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(function() {
    var $ = "";
    if (T.guidance) {
      var Y = P ? "value" : i ? "menu" : "input";
      $ = T.guidance({
        "aria-label": w,
        context: Y,
        isDisabled: z && d(z, L),
        isMulti: c,
        isSearchable: h,
        tabSelectsValue: D,
        isInitialFocus: g
      });
    }
    return $;
  }, [w, z, P, c, d, h, i, T, L, D, g]), O = _n(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, _n("span", {
    id: "aria-selection"
  }, k), _n("span", {
    id: "aria-focused"
  }, A), _n("span", {
    id: "aria-results"
  }, R), _n("span", {
    id: "aria-guidance"
  }, I));
  return _n(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, _n(CS, {
    id: a
  }, g && O), _n(CS, {
    "aria-live": S,
    "aria-atomic": "false",
    "aria-relevant": "additions text",
    role: "log"
  }, M && !g && O));
}, Wz = Uz, y3 = [{
  base: "A",
  letters: "AⒶＡÀÁÂẦẤẪẨÃĀĂẰẮẴẲȦǠÄǞẢÅǺǍȀȂẠẬẶḀĄȺⱯ"
}, {
  base: "AA",
  letters: "Ꜳ"
}, {
  base: "AE",
  letters: "ÆǼǢ"
}, {
  base: "AO",
  letters: "Ꜵ"
}, {
  base: "AU",
  letters: "Ꜷ"
}, {
  base: "AV",
  letters: "ꜸꜺ"
}, {
  base: "AY",
  letters: "Ꜽ"
}, {
  base: "B",
  letters: "BⒷＢḂḄḆɃƂƁ"
}, {
  base: "C",
  letters: "CⒸＣĆĈĊČÇḈƇȻꜾ"
}, {
  base: "D",
  letters: "DⒹＤḊĎḌḐḒḎĐƋƊƉꝹ"
}, {
  base: "DZ",
  letters: "ǱǄ"
}, {
  base: "Dz",
  letters: "ǲǅ"
}, {
  base: "E",
  letters: "EⒺＥÈÉÊỀẾỄỂẼĒḔḖĔĖËẺĚȄȆẸỆȨḜĘḘḚƐƎ"
}, {
  base: "F",
  letters: "FⒻＦḞƑꝻ"
}, {
  base: "G",
  letters: "GⒼＧǴĜḠĞĠǦĢǤƓꞠꝽꝾ"
}, {
  base: "H",
  letters: "HⒽＨĤḢḦȞḤḨḪĦⱧⱵꞍ"
}, {
  base: "I",
  letters: "IⒾＩÌÍÎĨĪĬİÏḮỈǏȈȊỊĮḬƗ"
}, {
  base: "J",
  letters: "JⒿＪĴɈ"
}, {
  base: "K",
  letters: "KⓀＫḰǨḲĶḴƘⱩꝀꝂꝄꞢ"
}, {
  base: "L",
  letters: "LⓁＬĿĹĽḶḸĻḼḺŁȽⱢⱠꝈꝆꞀ"
}, {
  base: "LJ",
  letters: "Ǉ"
}, {
  base: "Lj",
  letters: "ǈ"
}, {
  base: "M",
  letters: "MⓂＭḾṀṂⱮƜ"
}, {
  base: "N",
  letters: "NⓃＮǸŃÑṄŇṆŅṊṈȠƝꞐꞤ"
}, {
  base: "NJ",
  letters: "Ǌ"
}, {
  base: "Nj",
  letters: "ǋ"
}, {
  base: "O",
  letters: "OⓄＯÒÓÔỒỐỖỔÕṌȬṎŌṐṒŎȮȰÖȪỎŐǑȌȎƠỜỚỠỞỢỌỘǪǬØǾƆƟꝊꝌ"
}, {
  base: "OI",
  letters: "Ƣ"
}, {
  base: "OO",
  letters: "Ꝏ"
}, {
  base: "OU",
  letters: "Ȣ"
}, {
  base: "P",
  letters: "PⓅＰṔṖƤⱣꝐꝒꝔ"
}, {
  base: "Q",
  letters: "QⓆＱꝖꝘɊ"
}, {
  base: "R",
  letters: "RⓇＲŔṘŘȐȒṚṜŖṞɌⱤꝚꞦꞂ"
}, {
  base: "S",
  letters: "SⓈＳẞŚṤŜṠŠṦṢṨȘŞⱾꞨꞄ"
}, {
  base: "T",
  letters: "TⓉＴṪŤṬȚŢṰṮŦƬƮȾꞆ"
}, {
  base: "TZ",
  letters: "Ꜩ"
}, {
  base: "U",
  letters: "UⓊＵÙÚÛŨṸŪṺŬÜǛǗǕǙỦŮŰǓȔȖƯỪỨỮỬỰỤṲŲṶṴɄ"
}, {
  base: "V",
  letters: "VⓋＶṼṾƲꝞɅ"
}, {
  base: "VY",
  letters: "Ꝡ"
}, {
  base: "W",
  letters: "WⓌＷẀẂŴẆẄẈⱲ"
}, {
  base: "X",
  letters: "XⓍＸẊẌ"
}, {
  base: "Y",
  letters: "YⓎＹỲÝŶỸȲẎŸỶỴƳɎỾ"
}, {
  base: "Z",
  letters: "ZⓏＺŹẐŻŽẒẔƵȤⱿⱫꝢ"
}, {
  base: "a",
  letters: "aⓐａẚàáâầấẫẩãāăằắẵẳȧǡäǟảåǻǎȁȃạậặḁąⱥɐ"
}, {
  base: "aa",
  letters: "ꜳ"
}, {
  base: "ae",
  letters: "æǽǣ"
}, {
  base: "ao",
  letters: "ꜵ"
}, {
  base: "au",
  letters: "ꜷ"
}, {
  base: "av",
  letters: "ꜹꜻ"
}, {
  base: "ay",
  letters: "ꜽ"
}, {
  base: "b",
  letters: "bⓑｂḃḅḇƀƃɓ"
}, {
  base: "c",
  letters: "cⓒｃćĉċčçḉƈȼꜿↄ"
}, {
  base: "d",
  letters: "dⓓｄḋďḍḑḓḏđƌɖɗꝺ"
}, {
  base: "dz",
  letters: "ǳǆ"
}, {
  base: "e",
  letters: "eⓔｅèéêềếễểẽēḕḗĕėëẻěȅȇẹệȩḝęḙḛɇɛǝ"
}, {
  base: "f",
  letters: "fⓕｆḟƒꝼ"
}, {
  base: "g",
  letters: "gⓖｇǵĝḡğġǧģǥɠꞡᵹꝿ"
}, {
  base: "h",
  letters: "hⓗｈĥḣḧȟḥḩḫẖħⱨⱶɥ"
}, {
  base: "hv",
  letters: "ƕ"
}, {
  base: "i",
  letters: "iⓘｉìíîĩīĭïḯỉǐȉȋịįḭɨı"
}, {
  base: "j",
  letters: "jⓙｊĵǰɉ"
}, {
  base: "k",
  letters: "kⓚｋḱǩḳķḵƙⱪꝁꝃꝅꞣ"
}, {
  base: "l",
  letters: "lⓛｌŀĺľḷḹļḽḻſłƚɫⱡꝉꞁꝇ"
}, {
  base: "lj",
  letters: "ǉ"
}, {
  base: "m",
  letters: "mⓜｍḿṁṃɱɯ"
}, {
  base: "n",
  letters: "nⓝｎǹńñṅňṇņṋṉƞɲŉꞑꞥ"
}, {
  base: "nj",
  letters: "ǌ"
}, {
  base: "o",
  letters: "oⓞｏòóôồốỗổõṍȭṏōṑṓŏȯȱöȫỏőǒȍȏơờớỡởợọộǫǭøǿɔꝋꝍɵ"
}, {
  base: "oi",
  letters: "ƣ"
}, {
  base: "ou",
  letters: "ȣ"
}, {
  base: "oo",
  letters: "ꝏ"
}, {
  base: "p",
  letters: "pⓟｐṕṗƥᵽꝑꝓꝕ"
}, {
  base: "q",
  letters: "qⓠｑɋꝗꝙ"
}, {
  base: "r",
  letters: "rⓡｒŕṙřȑȓṛṝŗṟɍɽꝛꞧꞃ"
}, {
  base: "s",
  letters: "sⓢｓßśṥŝṡšṧṣṩșşȿꞩꞅẛ"
}, {
  base: "t",
  letters: "tⓣｔṫẗťṭțţṱṯŧƭʈⱦꞇ"
}, {
  base: "tz",
  letters: "ꜩ"
}, {
  base: "u",
  letters: "uⓤｕùúûũṹūṻŭüǜǘǖǚủůűǔȕȗưừứữửựụṳųṷṵʉ"
}, {
  base: "v",
  letters: "vⓥｖṽṿʋꝟʌ"
}, {
  base: "vy",
  letters: "ꝡ"
}, {
  base: "w",
  letters: "wⓦｗẁẃŵẇẅẘẉⱳ"
}, {
  base: "x",
  letters: "xⓧｘẋẍ"
}, {
  base: "y",
  letters: "yⓨｙỳýŷỹȳẏÿỷẙỵƴɏỿ"
}, {
  base: "z",
  letters: "zⓩｚźẑżžẓẕƶȥɀⱬꝣ"
}], Yz = new RegExp("[" + y3.map(function(s) {
  return s.letters;
}).join("") + "]", "g"), b6 = {};
for (var Ux = 0; Ux < y3.length; Ux++)
  for (var Wx = y3[Ux], Yx = 0; Yx < Wx.letters.length; Yx++)
    b6[Wx.letters[Yx]] = Wx.base;
var x6 = function(o) {
  return o.replace(Yz, function(E) {
    return b6[E];
  });
}, Xz = _z(x6), AS = function(o) {
  return o.replace(/^\s+|\s+$/g, "");
}, jz = function(o) {
  return "".concat(o.label, " ").concat(o.value);
}, Zz = function(o) {
  return function(E, z) {
    if (E.data.__isNew__)
      return !0;
    var P = On({
      ignoreCase: !0,
      ignoreAccents: !0,
      stringify: jz,
      trim: !0,
      matchFrom: "any"
    }, o), K = P.ignoreCase, M = P.ignoreAccents, L = P.stringify, r = P.trim, a = P.matchFrom, p = r ? AS(z) : z, l = r ? AS(L(E)) : L(E);
    return K && (p = p.toLowerCase(), l = l.toLowerCase()), M && (p = Xz(p), l = x6(l)), a === "start" ? l.substr(0, p.length) === p : l.indexOf(p) > -1;
  };
}, $z = ["innerRef"];
function Jz(s) {
  var o = s.innerRef, E = Wu(s, $z), z = TF(E, "onExited", "in", "enter", "exit", "appear");
  return _n("input", Vn({
    ref: o
  }, z, {
    css: /* @__PURE__ */ oT({
      label: "dummyInput",
      // get rid of any default styles
      background: 0,
      border: 0,
      // important! this hides the flashing cursor
      caretColor: "transparent",
      fontSize: "inherit",
      gridArea: "1 / 1 / 2 / 3",
      outline: 0,
      padding: 0,
      // important! without `width` browsers won't allow focus
      width: 1,
      // remove cursor on desktop
      color: "transparent",
      // remove cursor on mobile whilst maintaining "scroll into view" behaviour
      left: -100,
      opacity: 0,
      position: "relative",
      transform: "scale(.01)"
    },  false ? 0 : ";label:DummyInput;",  false ? 0 : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkR1bW15SW5wdXQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlCTSIsImZpbGUiOiJEdW1teUlucHV0LnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgcmVtb3ZlUHJvcHMgfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIER1bW15SW5wdXQoe1xuICBpbm5lclJlZixcbiAgLi4ucHJvcHNcbn06IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snaW5wdXQnXSAmIHtcbiAgcmVhZG9ubHkgaW5uZXJSZWY6IFJlZjxIVE1MSW5wdXRFbGVtZW50Pjtcbn0pIHtcbiAgLy8gUmVtb3ZlIGFuaW1hdGlvbiBwcm9wcyBub3QgbWVhbnQgZm9yIEhUTUwgZWxlbWVudHNcbiAgY29uc3QgZmlsdGVyZWRQcm9wcyA9IHJlbW92ZVByb3BzKFxuICAgIHByb3BzLFxuICAgICdvbkV4aXRlZCcsXG4gICAgJ2luJyxcbiAgICAnZW50ZXInLFxuICAgICdleGl0JyxcbiAgICAnYXBwZWFyJ1xuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGlucHV0XG4gICAgICByZWY9e2lubmVyUmVmfVxuICAgICAgey4uLmZpbHRlcmVkUHJvcHN9XG4gICAgICBjc3M9e3tcbiAgICAgICAgbGFiZWw6ICdkdW1teUlucHV0JyxcbiAgICAgICAgLy8gZ2V0IHJpZCBvZiBhbnkgZGVmYXVsdCBzdHlsZXNcbiAgICAgICAgYmFja2dyb3VuZDogMCxcbiAgICAgICAgYm9yZGVyOiAwLFxuICAgICAgICAvLyBpbXBvcnRhbnQhIHRoaXMgaGlkZXMgdGhlIGZsYXNoaW5nIGN1cnNvclxuICAgICAgICBjYXJldENvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICBmb250U2l6ZTogJ2luaGVyaXQnLFxuICAgICAgICBncmlkQXJlYTogJzEgLyAxIC8gMiAvIDMnLFxuICAgICAgICBvdXRsaW5lOiAwLFxuICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAvLyBpbXBvcnRhbnQhIHdpdGhvdXQgYHdpZHRoYCBicm93c2VycyB3b24ndCBhbGxvdyBmb2N1c1xuICAgICAgICB3aWR0aDogMSxcblxuICAgICAgICAvLyByZW1vdmUgY3Vyc29yIG9uIGRlc2t0b3BcbiAgICAgICAgY29sb3I6ICd0cmFuc3BhcmVudCcsXG5cbiAgICAgICAgLy8gcmVtb3ZlIGN1cnNvciBvbiBtb2JpbGUgd2hpbHN0IG1haW50YWluaW5nIFwic2Nyb2xsIGludG8gdmlld1wiIGJlaGF2aW91clxuICAgICAgICBsZWZ0OiAtMTAwLFxuICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGUoLjAxKScsXG4gICAgICB9fVxuICAgIC8+XG4gICk7XG59XG4iXX0= */")
  }));
}
var Qz = function(o) {
  o.cancelable && o.preventDefault(), o.stopPropagation();
};
function Kz(s) {
  var o = s.isEnabled, E = s.onBottomArrive, z = s.onBottomLeave, P = s.onTopArrive, K = s.onTopLeave, M = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(!1), L = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(!1), r = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(0), a = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null), p = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(function(h, i) {
    if (a.current !== null) {
      var b = a.current, x = b.scrollTop, D = b.scrollHeight, C = b.clientHeight, w = a.current, S = i > 0, T = D - C - x, k = !1;
      T > i && M.current && (z && z(h), M.current = !1), S && L.current && (K && K(h), L.current = !1), S && i > T ? (E && !M.current && E(h), w.scrollTop = D, k = !0, M.current = !0) : !S && -i > x && (P && !L.current && P(h), w.scrollTop = 0, k = !0, L.current = !0), k && Qz(h);
    }
  }, [E, z, P, K]), l = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(function(h) {
    p(h, h.deltaY);
  }, [p]), f = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(function(h) {
    r.current = h.changedTouches[0].clientY;
  }, []), u = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(function(h) {
    var i = r.current - h.changedTouches[0].clientY;
    p(h, i);
  }, [p]), c = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(function(h) {
    if (h) {
      var i = gF ? {
        passive: !1
      } : !1;
      h.addEventListener("wheel", l, i), h.addEventListener("touchstart", f, i), h.addEventListener("touchmove", u, i);
    }
  }, [u, f, l]), d = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(function(h) {
    h && (h.removeEventListener("wheel", l, !1), h.removeEventListener("touchstart", f, !1), h.removeEventListener("touchmove", u, !1));
  }, [u, f, l]);
  return (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function() {
    if (o) {
      var h = a.current;
      return c(h), function() {
        d(h);
      };
    }
  }, [o, c, d]), function(h) {
    a.current = h;
  };
}
var wS = ["boxSizing", "height", "overflow", "paddingRight", "position"], SS = {
  boxSizing: "border-box",
  // account for possible declaration `width: 100%;` on body
  overflow: "hidden",
  position: "relative",
  height: "100%"
};
function MS(s) {
  s.preventDefault();
}
function ES(s) {
  s.stopPropagation();
}
function DS() {
  var s = this.scrollTop, o = this.scrollHeight, E = s + this.offsetHeight;
  s === 0 ? this.scrollTop = 1 : E === o && (this.scrollTop = s - 1);
}
function RS() {
  return "ontouchstart" in window || navigator.maxTouchPoints;
}
var LS = !!(typeof window < "u" && window.document && window.document.createElement), P0 = 0, Vh = {
  capture: !1,
  passive: !1
};
function qz(s) {
  var o = s.isEnabled, E = s.accountForScrollbars, z = E === void 0 ? !0 : E, P = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)({}), K = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null), M = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(function(r) {
    if (LS) {
      var a = document.body, p = a && a.style;
      if (z && wS.forEach(function(c) {
        var d = p && p[c];
        P.current[c] = d;
      }), z && P0 < 1) {
        var l = parseInt(P.current.paddingRight, 10) || 0, f = document.body ? document.body.clientWidth : 0, u = window.innerWidth - f + l || 0;
        Object.keys(SS).forEach(function(c) {
          var d = SS[c];
          p && (p[c] = d);
        }), p && (p.paddingRight = "".concat(u, "px"));
      }
      a && RS() && (a.addEventListener("touchmove", MS, Vh), r && (r.addEventListener("touchstart", DS, Vh), r.addEventListener("touchmove", ES, Vh))), P0 += 1;
    }
  }, [z]), L = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(function(r) {
    if (LS) {
      var a = document.body, p = a && a.style;
      P0 = Math.max(P0 - 1, 0), z && P0 < 1 && wS.forEach(function(l) {
        var f = P.current[l];
        p && (p[l] = f);
      }), a && RS() && (a.removeEventListener("touchmove", MS, Vh), r && (r.removeEventListener("touchstart", DS, Vh), r.removeEventListener("touchmove", ES, Vh)));
    }
  }, [z]);
  return (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function() {
    if (o) {
      var r = K.current;
      return M(r), function() {
        L(r);
      };
    }
  }, [o, M, L]), function(r) {
    K.current = r;
  };
}
function e_() {
  return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).";
}
var t_ = function(o) {
  var E = o.target;
  return E.ownerDocument.activeElement && E.ownerDocument.activeElement.blur();
}, r_ =  false ? 0 : {
  name: "bp8cua-ScrollManager",
  styles: "position:fixed;left:0;bottom:0;right:0;top:0;label:ScrollManager;",
  map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNjcm9sbE1hbmFnZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9EVSIsImZpbGUiOiJTY3JvbGxNYW5hZ2VyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsganN4IH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgRnJhZ21lbnQsIFJlYWN0RWxlbWVudCwgUmVmQ2FsbGJhY2ssIE1vdXNlRXZlbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlU2Nyb2xsQ2FwdHVyZSBmcm9tICcuL3VzZVNjcm9sbENhcHR1cmUnO1xuaW1wb3J0IHVzZVNjcm9sbExvY2sgZnJvbSAnLi91c2VTY3JvbGxMb2NrJztcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgcmVhZG9ubHkgY2hpbGRyZW46IChyZWY6IFJlZkNhbGxiYWNrPEhUTUxFbGVtZW50PikgPT4gUmVhY3RFbGVtZW50O1xuICByZWFkb25seSBsb2NrRW5hYmxlZDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgY2FwdHVyZUVuYWJsZWQ6IGJvb2xlYW47XG4gIHJlYWRvbmx5IG9uQm90dG9tQXJyaXZlPzogKGV2ZW50OiBXaGVlbEV2ZW50IHwgVG91Y2hFdmVudCkgPT4gdm9pZDtcbiAgcmVhZG9ubHkgb25Cb3R0b21MZWF2ZT86IChldmVudDogV2hlZWxFdmVudCB8IFRvdWNoRXZlbnQpID0+IHZvaWQ7XG4gIHJlYWRvbmx5IG9uVG9wQXJyaXZlPzogKGV2ZW50OiBXaGVlbEV2ZW50IHwgVG91Y2hFdmVudCkgPT4gdm9pZDtcbiAgcmVhZG9ubHkgb25Ub3BMZWF2ZT86IChldmVudDogV2hlZWxFdmVudCB8IFRvdWNoRXZlbnQpID0+IHZvaWQ7XG59XG5cbmNvbnN0IGJsdXJTZWxlY3RJbnB1dCA9IChldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgY29uc3QgZWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRGl2RWxlbWVudDtcbiAgcmV0dXJuIChcbiAgICBlbGVtZW50Lm93bmVyRG9jdW1lbnQuYWN0aXZlRWxlbWVudCAmJlxuICAgIChlbGVtZW50Lm93bmVyRG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuYmx1cigpXG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBTY3JvbGxNYW5hZ2VyKHtcbiAgY2hpbGRyZW4sXG4gIGxvY2tFbmFibGVkLFxuICBjYXB0dXJlRW5hYmxlZCA9IHRydWUsXG4gIG9uQm90dG9tQXJyaXZlLFxuICBvbkJvdHRvbUxlYXZlLFxuICBvblRvcEFycml2ZSxcbiAgb25Ub3BMZWF2ZSxcbn06IFByb3BzKSB7XG4gIGNvbnN0IHNldFNjcm9sbENhcHR1cmVUYXJnZXQgPSB1c2VTY3JvbGxDYXB0dXJlKHtcbiAgICBpc0VuYWJsZWQ6IGNhcHR1cmVFbmFibGVkLFxuICAgIG9uQm90dG9tQXJyaXZlLFxuICAgIG9uQm90dG9tTGVhdmUsXG4gICAgb25Ub3BBcnJpdmUsXG4gICAgb25Ub3BMZWF2ZSxcbiAgfSk7XG4gIGNvbnN0IHNldFNjcm9sbExvY2tUYXJnZXQgPSB1c2VTY3JvbGxMb2NrKHsgaXNFbmFibGVkOiBsb2NrRW5hYmxlZCB9KTtcblxuICBjb25zdCB0YXJnZXRSZWY6IFJlZkNhbGxiYWNrPEhUTUxFbGVtZW50PiA9IChlbGVtZW50KSA9PiB7XG4gICAgc2V0U2Nyb2xsQ2FwdHVyZVRhcmdldChlbGVtZW50KTtcbiAgICBzZXRTY3JvbGxMb2NrVGFyZ2V0KGVsZW1lbnQpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPEZyYWdtZW50PlxuICAgICAge2xvY2tFbmFibGVkICYmIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgIG9uQ2xpY2s9e2JsdXJTZWxlY3RJbnB1dH1cbiAgICAgICAgICBjc3M9e3sgcG9zaXRpb246ICdmaXhlZCcsIGxlZnQ6IDAsIGJvdHRvbTogMCwgcmlnaHQ6IDAsIHRvcDogMCB9fVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICAgIHtjaGlsZHJlbih0YXJnZXRSZWYpfVxuICAgIDwvRnJhZ21lbnQ+XG4gICk7XG59XG4iXX0= */",
  toString: e_
};
function n_(s) {
  var o = s.children, E = s.lockEnabled, z = s.captureEnabled, P = z === void 0 ? !0 : z, K = s.onBottomArrive, M = s.onBottomLeave, L = s.onTopArrive, r = s.onTopLeave, a = Kz({
    isEnabled: P,
    onBottomArrive: K,
    onBottomLeave: M,
    onTopArrive: L,
    onTopLeave: r
  }), p = qz({
    isEnabled: E
  }), l = function(u) {
    a(u), p(u);
  };
  return _n(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, E && _n("div", {
    onClick: t_,
    css: r_
  }), o(l));
}
function a_() {
  return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).";
}
var i_ =  false ? 0 : {
  name: "5kkxb2-requiredInput-RequiredInput",
  styles: "label:requiredInput;opacity:0;pointer-events:none;position:absolute;bottom:0;left:0;right:0;width:100%;label:RequiredInput;",
  map: "",
  toString: a_
}, o_ = function(o) {
  var E = o.name, z = o.onFocus;
  return _n("input", {
    required: !0,
    name: E,
    tabIndex: -1,
    "aria-hidden": "true",
    onFocus: z,
    css: i_,
    value: "",
    onChange: function() {
    }
  });
}, l_ = o_;
function cT(s) {
  var o;
  return typeof window < "u" && window.navigator != null ? s.test(((o = window.navigator.userAgentData) === null || o === void 0 ? void 0 : o.platform) || window.navigator.platform) : !1;
}
function s_() {
  return cT(/^iPhone/i);
}
function T6() {
  return cT(/^Mac/i);
}
function u_() {
  return cT(/^iPad/i) || // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.
  T6() && navigator.maxTouchPoints > 1;
}
function f_() {
  return s_() || u_();
}
function c_() {
  return T6() || f_();
}
var d_ = function(o) {
  return o.label;
}, C6 = function(o) {
  return o.label;
}, A6 = function(o) {
  return o.value;
}, v_ = function(o) {
  return !!o.isDisabled;
}, h_ = {
  clearIndicator: JF,
  container: _F,
  control: nz,
  dropdownIndicator: ZF,
  group: lz,
  groupHeading: uz,
  indicatorsContainer: GF,
  indicatorSeparator: KF,
  input: vz,
  loadingIndicator: tz,
  loadingMessage: NF,
  menu: MF,
  menuList: LF,
  menuPortal: FF,
  multiValue: gz,
  multiValueLabel: bz,
  multiValueRemove: xz,
  noOptionsMessage: IF,
  option: Mz,
  placeholder: Rz,
  singleValue: Iz,
  valueContainer: BF
}, p_ = {
  primary: "#2684FF",
  primary75: "#4C9AFF",
  primary50: "#B2D4FF",
  primary25: "#DEEBFF",
  danger: "#DE350B",
  dangerLight: "#FFBDAD",
  neutral0: "hsl(0, 0%, 100%)",
  neutral5: "hsl(0, 0%, 95%)",
  neutral10: "hsl(0, 0%, 90%)",
  neutral20: "hsl(0, 0%, 80%)",
  neutral30: "hsl(0, 0%, 70%)",
  neutral40: "hsl(0, 0%, 60%)",
  neutral50: "hsl(0, 0%, 50%)",
  neutral60: "hsl(0, 0%, 40%)",
  neutral70: "hsl(0, 0%, 30%)",
  neutral80: "hsl(0, 0%, 20%)",
  neutral90: "hsl(0, 0%, 10%)"
}, m_ = 4, w6 = 4, y_ = 38, g_ = w6 * 2, b_ = {
  baseUnit: w6,
  controlHeight: y_,
  menuGutter: g_
}, Xx = {
  borderRadius: m_,
  colors: p_,
  spacing: b_
}, x_ = {
  "aria-live": "polite",
  backspaceRemovesValue: !0,
  blurInputOnSelect: bS(),
  captureMenuScroll: !bS(),
  classNames: {},
  closeMenuOnSelect: !0,
  closeMenuOnScroll: !1,
  components: {},
  controlShouldRenderValue: !0,
  escapeClearsValue: !1,
  filterOption: Zz(),
  formatGroupLabel: d_,
  getOptionLabel: C6,
  getOptionValue: A6,
  isDisabled: !1,
  isLoading: !1,
  isMulti: !1,
  isRtl: !1,
  isSearchable: !0,
  isOptionDisabled: v_,
  loadingMessage: function() {
    return "Loading...";
  },
  maxMenuHeight: 300,
  minMenuHeight: 140,
  menuIsOpen: !1,
  menuPlacement: "bottom",
  menuPosition: "absolute",
  menuShouldBlockScroll: !1,
  menuShouldScrollIntoView: !mF(),
  noOptionsMessage: function() {
    return "No options";
  },
  openMenuOnFocus: !1,
  openMenuOnClick: !0,
  options: [],
  pageSize: 5,
  placeholder: "Select...",
  screenReaderStatus: function(o) {
    var E = o.count;
    return "".concat(E, " result").concat(E !== 1 ? "s" : "", " available");
  },
  styles: {},
  tabIndex: 0,
  tabSelectsValue: !0,
  unstyled: !1
};
function kS(s, o, E, z) {
  var P = E6(s, o, E), K = D6(s, o, E), M = M6(s, o), L = jg(s, o);
  return {
    type: "option",
    data: o,
    isDisabled: P,
    isSelected: K,
    label: M,
    value: L,
    index: z
  };
}
function Dg(s, o) {
  return s.options.map(function(E, z) {
    if ("options" in E) {
      var P = E.options.map(function(M, L) {
        return kS(s, M, o, L);
      }).filter(function(M) {
        return NS(s, M);
      });
      return P.length > 0 ? {
        type: "group",
        data: E,
        options: P,
        index: z
      } : void 0;
    }
    var K = kS(s, E, o, z);
    return NS(s, K) ? K : void 0;
  }).filter(bF);
}
function S6(s) {
  return s.reduce(function(o, E) {
    return E.type === "group" ? o.push.apply(o, Yh(E.options.map(function(z) {
      return z.data;
    }))) : o.push(E.data), o;
  }, []);
}
function IS(s, o) {
  return s.reduce(function(E, z) {
    return z.type === "group" ? E.push.apply(E, Yh(z.options.map(function(P) {
      return {
        data: P.data,
        id: "".concat(o, "-").concat(z.index, "-").concat(P.index)
      };
    }))) : E.push({
      data: z.data,
      id: "".concat(o, "-").concat(z.index)
    }), E;
  }, []);
}
function T_(s, o) {
  return S6(Dg(s, o));
}
function NS(s, o) {
  var E = s.inputValue, z = E === void 0 ? "" : E, P = o.data, K = o.isSelected, M = o.label, L = o.value;
  return (!L6(s) || !K) && R6(s, {
    label: M,
    value: L,
    data: P
  }, z);
}
function C_(s, o) {
  var E = s.focusedValue, z = s.selectValue, P = z.indexOf(E);
  if (P > -1) {
    var K = o.indexOf(E);
    if (K > -1)
      return E;
    if (P < o.length)
      return o[P];
  }
  return null;
}
function A_(s, o) {
  var E = s.focusedOption;
  return E && o.indexOf(E) > -1 ? E : o[0];
}
var jx = function(o, E) {
  var z, P = (z = o.find(function(K) {
    return K.data === E;
  })) === null || z === void 0 ? void 0 : z.id;
  return P || null;
}, M6 = function(o, E) {
  return o.getOptionLabel(E);
}, jg = function(o, E) {
  return o.getOptionValue(E);
};
function E6(s, o, E) {
  return typeof s.isOptionDisabled == "function" ? s.isOptionDisabled(o, E) : !1;
}
function D6(s, o, E) {
  if (E.indexOf(o) > -1)
    return !0;
  if (typeof s.isOptionSelected == "function")
    return s.isOptionSelected(o, E);
  var z = jg(s, o);
  return E.some(function(P) {
    return jg(s, P) === z;
  });
}
function R6(s, o, E) {
  return s.filterOption ? s.filterOption(o, E) : !0;
}
var L6 = function(o) {
  var E = o.hideSelectedOptions, z = o.isMulti;
  return E === void 0 ? z : E;
}, w_ = 1, dT = /* @__PURE__ */ function(s) {
  IO(E, s);
  var o = PO(E);
  function E(z) {
    var P;
    if (LO(this, E), P = o.call(this, z), P.state = {
      ariaSelection: null,
      focusedOption: null,
      focusedOptionId: null,
      focusableOptionsWithIds: [],
      focusedValue: null,
      inputIsHidden: !1,
      isFocused: !1,
      selectValue: [],
      clearFocusValueOnUpdate: !1,
      prevWasFocused: !1,
      inputIsHiddenAfterUpdate: void 0,
      prevProps: void 0,
      instancePrefix: ""
    }, P.blockOptionHover = !1, P.isComposing = !1, P.commonProps = void 0, P.initialTouchX = 0, P.initialTouchY = 0, P.openAfterFocus = !1, P.scrollToFocusedOptionOnUpdate = !1, P.userIsDragging = void 0, P.isAppleDevice = c_(), P.controlRef = null, P.getControlRef = function(r) {
      P.controlRef = r;
    }, P.focusedOptionRef = null, P.getFocusedOptionRef = function(r) {
      P.focusedOptionRef = r;
    }, P.menuListRef = null, P.getMenuListRef = function(r) {
      P.menuListRef = r;
    }, P.inputRef = null, P.getInputRef = function(r) {
      P.inputRef = r;
    }, P.focus = P.focusInput, P.blur = P.blurInput, P.onChange = function(r, a) {
      var p = P.props, l = p.onChange, f = p.name;
      a.name = f, P.ariaOnChange(r, a), l(r, a);
    }, P.setValue = function(r, a, p) {
      var l = P.props, f = l.closeMenuOnSelect, u = l.isMulti, c = l.inputValue;
      P.onInputChange("", {
        action: "set-value",
        prevInputValue: c
      }), f && (P.setState({
        inputIsHiddenAfterUpdate: !u
      }), P.onMenuClose()), P.setState({
        clearFocusValueOnUpdate: !0
      }), P.onChange(r, {
        action: a,
        option: p
      });
    }, P.selectOption = function(r) {
      var a = P.props, p = a.blurInputOnSelect, l = a.isMulti, f = a.name, u = P.state.selectValue, c = l && P.isOptionSelected(r, u), d = P.isOptionDisabled(r, u);
      if (c) {
        var h = P.getOptionValue(r);
        P.setValue(u.filter(function(i) {
          return P.getOptionValue(i) !== h;
        }), "deselect-option", r);
      } else if (!d)
        l ? P.setValue([].concat(Yh(u), [r]), "select-option", r) : P.setValue(r, "select-option");
      else {
        P.ariaOnChange(r, {
          action: "select-option",
          option: r,
          name: f
        });
        return;
      }
      p && P.blurInput();
    }, P.removeValue = function(r) {
      var a = P.props.isMulti, p = P.state.selectValue, l = P.getOptionValue(r), f = p.filter(function(c) {
        return P.getOptionValue(c) !== l;
      }), u = B0(a, f, f[0] || null);
      P.onChange(u, {
        action: "remove-value",
        removedValue: r
      }), P.focusInput();
    }, P.clearValue = function() {
      var r = P.state.selectValue;
      P.onChange(B0(P.props.isMulti, [], null), {
        action: "clear",
        removedValues: r
      });
    }, P.popValue = function() {
      var r = P.props.isMulti, a = P.state.selectValue, p = a[a.length - 1], l = a.slice(0, a.length - 1), f = B0(r, l, l[0] || null);
      P.onChange(f, {
        action: "pop-value",
        removedValue: p
      });
    }, P.getFocusedOptionId = function(r) {
      return jx(P.state.focusableOptionsWithIds, r);
    }, P.getFocusableOptionsWithIds = function() {
      return IS(Dg(P.props, P.state.selectValue), P.getElementId("option"));
    }, P.getValue = function() {
      return P.state.selectValue;
    }, P.cx = function() {
      for (var r = arguments.length, a = new Array(r), p = 0; p < r; p++)
        a[p] = arguments[p];
      return cF.apply(void 0, [P.props.classNamePrefix].concat(a));
    }, P.getOptionLabel = function(r) {
      return M6(P.props, r);
    }, P.getOptionValue = function(r) {
      return jg(P.props, r);
    }, P.getStyles = function(r, a) {
      var p = P.props.unstyled, l = h_[r](a, p);
      l.boxSizing = "border-box";
      var f = P.props.styles[r];
      return f ? f(l, a) : l;
    }, P.getClassNames = function(r, a) {
      var p, l;
      return (p = (l = P.props.classNames)[r]) === null || p === void 0 ? void 0 : p.call(l, a);
    }, P.getElementId = function(r) {
      return "".concat(P.state.instancePrefix, "-").concat(r);
    }, P.getComponents = function() {
      return Pz(P.props);
    }, P.buildCategorizedOptions = function() {
      return Dg(P.props, P.state.selectValue);
    }, P.getCategorizedOptions = function() {
      return P.props.menuIsOpen ? P.buildCategorizedOptions() : [];
    }, P.buildFocusableOptions = function() {
      return S6(P.buildCategorizedOptions());
    }, P.getFocusableOptions = function() {
      return P.props.menuIsOpen ? P.buildFocusableOptions() : [];
    }, P.ariaOnChange = function(r, a) {
      P.setState({
        ariaSelection: On({
          value: r
        }, a)
      });
    }, P.onMenuMouseDown = function(r) {
      r.button === 0 && (r.stopPropagation(), r.preventDefault(), P.focusInput());
    }, P.onMenuMouseMove = function(r) {
      P.blockOptionHover = !1;
    }, P.onControlMouseDown = function(r) {
      if (!r.defaultPrevented) {
        var a = P.props.openMenuOnClick;
        P.state.isFocused ? P.props.menuIsOpen ? r.target.tagName !== "INPUT" && r.target.tagName !== "TEXTAREA" && P.onMenuClose() : a && P.openMenu("first") : (a && (P.openAfterFocus = !0), P.focusInput()), r.target.tagName !== "INPUT" && r.target.tagName !== "TEXTAREA" && r.preventDefault();
      }
    }, P.onDropdownIndicatorMouseDown = function(r) {
      if (!(r && r.type === "mousedown" && r.button !== 0) && !P.props.isDisabled) {
        var a = P.props, p = a.isMulti, l = a.menuIsOpen;
        P.focusInput(), l ? (P.setState({
          inputIsHiddenAfterUpdate: !p
        }), P.onMenuClose()) : P.openMenu("first"), r.preventDefault();
      }
    }, P.onClearIndicatorMouseDown = function(r) {
      r && r.type === "mousedown" && r.button !== 0 || (P.clearValue(), r.preventDefault(), P.openAfterFocus = !1, r.type === "touchend" ? P.focusInput() : setTimeout(function() {
        return P.focusInput();
      }));
    }, P.onScroll = function(r) {
      typeof P.props.closeMenuOnScroll == "boolean" ? r.target instanceof HTMLElement && p1(r.target) && P.props.onMenuClose() : typeof P.props.closeMenuOnScroll == "function" && P.props.closeMenuOnScroll(r) && P.props.onMenuClose();
    }, P.onCompositionStart = function() {
      P.isComposing = !0;
    }, P.onCompositionEnd = function() {
      P.isComposing = !1;
    }, P.onTouchStart = function(r) {
      var a = r.touches, p = a && a.item(0);
      p && (P.initialTouchX = p.clientX, P.initialTouchY = p.clientY, P.userIsDragging = !1);
    }, P.onTouchMove = function(r) {
      var a = r.touches, p = a && a.item(0);
      if (p) {
        var l = Math.abs(p.clientX - P.initialTouchX), f = Math.abs(p.clientY - P.initialTouchY), u = 5;
        P.userIsDragging = l > u || f > u;
      }
    }, P.onTouchEnd = function(r) {
      P.userIsDragging || (P.controlRef && !P.controlRef.contains(r.target) && P.menuListRef && !P.menuListRef.contains(r.target) && P.blurInput(), P.initialTouchX = 0, P.initialTouchY = 0);
    }, P.onControlTouchEnd = function(r) {
      P.userIsDragging || P.onControlMouseDown(r);
    }, P.onClearIndicatorTouchEnd = function(r) {
      P.userIsDragging || P.onClearIndicatorMouseDown(r);
    }, P.onDropdownIndicatorTouchEnd = function(r) {
      P.userIsDragging || P.onDropdownIndicatorMouseDown(r);
    }, P.handleInputChange = function(r) {
      var a = P.props.inputValue, p = r.currentTarget.value;
      P.setState({
        inputIsHiddenAfterUpdate: !1
      }), P.onInputChange(p, {
        action: "input-change",
        prevInputValue: a
      }), P.props.menuIsOpen || P.onMenuOpen();
    }, P.onInputFocus = function(r) {
      P.props.onFocus && P.props.onFocus(r), P.setState({
        inputIsHiddenAfterUpdate: !1,
        isFocused: !0
      }), (P.openAfterFocus || P.props.openMenuOnFocus) && P.openMenu("first"), P.openAfterFocus = !1;
    }, P.onInputBlur = function(r) {
      var a = P.props.inputValue;
      if (P.menuListRef && P.menuListRef.contains(document.activeElement)) {
        P.inputRef.focus();
        return;
      }
      P.props.onBlur && P.props.onBlur(r), P.onInputChange("", {
        action: "input-blur",
        prevInputValue: a
      }), P.onMenuClose(), P.setState({
        focusedValue: null,
        isFocused: !1
      });
    }, P.onOptionHover = function(r) {
      if (!(P.blockOptionHover || P.state.focusedOption === r)) {
        var a = P.getFocusableOptions(), p = a.indexOf(r);
        P.setState({
          focusedOption: r,
          focusedOptionId: p > -1 ? P.getFocusedOptionId(r) : null
        });
      }
    }, P.shouldHideSelectedOptions = function() {
      return L6(P.props);
    }, P.onValueInputFocus = function(r) {
      r.preventDefault(), r.stopPropagation(), P.focus();
    }, P.onKeyDown = function(r) {
      var a = P.props, p = a.isMulti, l = a.backspaceRemovesValue, f = a.escapeClearsValue, u = a.inputValue, c = a.isClearable, d = a.isDisabled, h = a.menuIsOpen, i = a.onKeyDown, b = a.tabSelectsValue, x = a.openMenuOnFocus, D = P.state, C = D.focusedOption, w = D.focusedValue, S = D.selectValue;
      if (!d && !(typeof i == "function" && (i(r), r.defaultPrevented))) {
        switch (P.blockOptionHover = !0, r.key) {
          case "ArrowLeft":
            if (!p || u)
              return;
            P.focusValue("previous");
            break;
          case "ArrowRight":
            if (!p || u)
              return;
            P.focusValue("next");
            break;
          case "Delete":
          case "Backspace":
            if (u)
              return;
            if (w)
              P.removeValue(w);
            else {
              if (!l)
                return;
              p ? P.popValue() : c && P.clearValue();
            }
            break;
          case "Tab":
            if (P.isComposing || r.shiftKey || !h || !b || !C || // don't capture the event if the menu opens on focus and the focused
            // option is already selected; it breaks the flow of navigation
            x && P.isOptionSelected(C, S))
              return;
            P.selectOption(C);
            break;
          case "Enter":
            if (r.keyCode === 229)
              break;
            if (h) {
              if (!C || P.isComposing)
                return;
              P.selectOption(C);
              break;
            }
            return;
          case "Escape":
            h ? (P.setState({
              inputIsHiddenAfterUpdate: !1
            }), P.onInputChange("", {
              action: "menu-close",
              prevInputValue: u
            }), P.onMenuClose()) : c && f && P.clearValue();
            break;
          case " ":
            if (u)
              return;
            if (!h) {
              P.openMenu("first");
              break;
            }
            if (!C)
              return;
            P.selectOption(C);
            break;
          case "ArrowUp":
            h ? P.focusOption("up") : P.openMenu("last");
            break;
          case "ArrowDown":
            h ? P.focusOption("down") : P.openMenu("first");
            break;
          case "PageUp":
            if (!h)
              return;
            P.focusOption("pageup");
            break;
          case "PageDown":
            if (!h)
              return;
            P.focusOption("pagedown");
            break;
          case "Home":
            if (!h)
              return;
            P.focusOption("first");
            break;
          case "End":
            if (!h)
              return;
            P.focusOption("last");
            break;
          default:
            return;
        }
        r.preventDefault();
      }
    }, P.state.instancePrefix = "react-select-" + (P.props.instanceId || ++w_), P.state.selectValue = Yg(z.value), z.menuIsOpen && P.state.selectValue.length) {
      var K = P.getFocusableOptionsWithIds(), M = P.buildFocusableOptions(), L = M.indexOf(P.state.selectValue[0]);
      P.state.focusableOptionsWithIds = K, P.state.focusedOption = M[L], P.state.focusedOptionId = jx(K, M[L]);
    }
    return P;
  }
  return kO(E, [{
    key: "componentDidMount",
    value: function() {
      this.startListeningComposition(), this.startListeningToTouch(), this.props.closeMenuOnScroll && document && document.addEventListener && document.addEventListener("scroll", this.onScroll, !0), this.props.autoFocus && this.focusInput(), this.props.menuIsOpen && this.state.focusedOption && this.menuListRef && this.focusedOptionRef && gS(this.menuListRef, this.focusedOptionRef);
    }
  }, {
    key: "componentDidUpdate",
    value: function(P) {
      var K = this.props, M = K.isDisabled, L = K.menuIsOpen, r = this.state.isFocused;
      // ensure focus is restored correctly when the control becomes enabled
      (r && !M && P.isDisabled || // ensure focus is on the Input when the menu opens
      r && L && !P.menuIsOpen) && this.focusInput(), r && M && !P.isDisabled ? this.setState({
        isFocused: !1
      }, this.onMenuClose) : !r && !M && P.isDisabled && this.inputRef === document.activeElement && this.setState({
        isFocused: !0
      }), this.menuListRef && this.focusedOptionRef && this.scrollToFocusedOptionOnUpdate && (gS(this.menuListRef, this.focusedOptionRef), this.scrollToFocusedOptionOnUpdate = !1);
    }
  }, {
    key: "componentWillUnmount",
    value: function() {
      this.stopListeningComposition(), this.stopListeningToTouch(), document.removeEventListener("scroll", this.onScroll, !0);
    }
    // ==============================
    // Consumer Handlers
    // ==============================
  }, {
    key: "onMenuOpen",
    value: function() {
      this.props.onMenuOpen();
    }
  }, {
    key: "onMenuClose",
    value: function() {
      this.onInputChange("", {
        action: "menu-close",
        prevInputValue: this.props.inputValue
      }), this.props.onMenuClose();
    }
  }, {
    key: "onInputChange",
    value: function(P, K) {
      this.props.onInputChange(P, K);
    }
    // ==============================
    // Methods
    // ==============================
  }, {
    key: "focusInput",
    value: function() {
      this.inputRef && this.inputRef.focus();
    }
  }, {
    key: "blurInput",
    value: function() {
      this.inputRef && this.inputRef.blur();
    }
    // aliased for consumers
  }, {
    key: "openMenu",
    value: function(P) {
      var K = this, M = this.state, L = M.selectValue, r = M.isFocused, a = this.buildFocusableOptions(), p = P === "first" ? 0 : a.length - 1;
      if (!this.props.isMulti) {
        var l = a.indexOf(L[0]);
        l > -1 && (p = l);
      }
      this.scrollToFocusedOptionOnUpdate = !(r && this.menuListRef), this.setState({
        inputIsHiddenAfterUpdate: !1,
        focusedValue: null,
        focusedOption: a[p],
        focusedOptionId: this.getFocusedOptionId(a[p])
      }, function() {
        return K.onMenuOpen();
      });
    }
  }, {
    key: "focusValue",
    value: function(P) {
      var K = this.state, M = K.selectValue, L = K.focusedValue;
      if (this.props.isMulti) {
        this.setState({
          focusedOption: null
        });
        var r = M.indexOf(L);
        L || (r = -1);
        var a = M.length - 1, p = -1;
        if (M.length) {
          switch (P) {
            case "previous":
              r === 0 ? p = 0 : r === -1 ? p = a : p = r - 1;
              break;
            case "next":
              r > -1 && r < a && (p = r + 1);
              break;
          }
          this.setState({
            inputIsHidden: p !== -1,
            focusedValue: M[p]
          });
        }
      }
    }
  }, {
    key: "focusOption",
    value: function() {
      var P = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "first", K = this.props.pageSize, M = this.state.focusedOption, L = this.getFocusableOptions();
      if (L.length) {
        var r = 0, a = L.indexOf(M);
        M || (a = -1), P === "up" ? r = a > 0 ? a - 1 : L.length - 1 : P === "down" ? r = (a + 1) % L.length : P === "pageup" ? (r = a - K, r < 0 && (r = 0)) : P === "pagedown" ? (r = a + K, r > L.length - 1 && (r = L.length - 1)) : P === "last" && (r = L.length - 1), this.scrollToFocusedOptionOnUpdate = !0, this.setState({
          focusedOption: L[r],
          focusedValue: null,
          focusedOptionId: this.getFocusedOptionId(L[r])
        });
      }
    }
  }, {
    key: "getTheme",
    value: (
      // ==============================
      // Getters
      // ==============================
      function() {
        return this.props.theme ? typeof this.props.theme == "function" ? this.props.theme(Xx) : On(On({}, Xx), this.props.theme) : Xx;
      }
    )
  }, {
    key: "getCommonProps",
    value: function() {
      var P = this.clearValue, K = this.cx, M = this.getStyles, L = this.getClassNames, r = this.getValue, a = this.selectOption, p = this.setValue, l = this.props, f = l.isMulti, u = l.isRtl, c = l.options, d = this.hasValue();
      return {
        clearValue: P,
        cx: K,
        getStyles: M,
        getClassNames: L,
        getValue: r,
        hasValue: d,
        isMulti: f,
        isRtl: u,
        options: c,
        selectOption: a,
        selectProps: l,
        setValue: p,
        theme: this.getTheme()
      };
    }
  }, {
    key: "hasValue",
    value: function() {
      var P = this.state.selectValue;
      return P.length > 0;
    }
  }, {
    key: "hasOptions",
    value: function() {
      return !!this.getFocusableOptions().length;
    }
  }, {
    key: "isClearable",
    value: function() {
      var P = this.props, K = P.isClearable, M = P.isMulti;
      return K === void 0 ? M : K;
    }
  }, {
    key: "isOptionDisabled",
    value: function(P, K) {
      return E6(this.props, P, K);
    }
  }, {
    key: "isOptionSelected",
    value: function(P, K) {
      return D6(this.props, P, K);
    }
  }, {
    key: "filterOption",
    value: function(P, K) {
      return R6(this.props, P, K);
    }
  }, {
    key: "formatOptionLabel",
    value: function(P, K) {
      if (typeof this.props.formatOptionLabel == "function") {
        var M = this.props.inputValue, L = this.state.selectValue;
        return this.props.formatOptionLabel(P, {
          context: K,
          inputValue: M,
          selectValue: L
        });
      } else
        return this.getOptionLabel(P);
    }
  }, {
    key: "formatGroupLabel",
    value: function(P) {
      return this.props.formatGroupLabel(P);
    }
    // ==============================
    // Mouse Handlers
    // ==============================
  }, {
    key: "startListeningComposition",
    value: (
      // ==============================
      // Composition Handlers
      // ==============================
      function() {
        document && document.addEventListener && (document.addEventListener("compositionstart", this.onCompositionStart, !1), document.addEventListener("compositionend", this.onCompositionEnd, !1));
      }
    )
  }, {
    key: "stopListeningComposition",
    value: function() {
      document && document.removeEventListener && (document.removeEventListener("compositionstart", this.onCompositionStart), document.removeEventListener("compositionend", this.onCompositionEnd));
    }
  }, {
    key: "startListeningToTouch",
    value: (
      // ==============================
      // Touch Handlers
      // ==============================
      function() {
        document && document.addEventListener && (document.addEventListener("touchstart", this.onTouchStart, !1), document.addEventListener("touchmove", this.onTouchMove, !1), document.addEventListener("touchend", this.onTouchEnd, !1));
      }
    )
  }, {
    key: "stopListeningToTouch",
    value: function() {
      document && document.removeEventListener && (document.removeEventListener("touchstart", this.onTouchStart), document.removeEventListener("touchmove", this.onTouchMove), document.removeEventListener("touchend", this.onTouchEnd));
    }
  }, {
    key: "renderInput",
    value: (
      // ==============================
      // Renderers
      // ==============================
      function() {
        var P = this.props, K = P.isDisabled, M = P.isSearchable, L = P.inputId, r = P.inputValue, a = P.tabIndex, p = P.form, l = P.menuIsOpen, f = P.required, u = this.getComponents(), c = u.Input, d = this.state, h = d.inputIsHidden, i = d.ariaSelection, b = this.commonProps, x = L || this.getElementId("input"), D = On(On(On({
          "aria-autocomplete": "list",
          "aria-expanded": l,
          "aria-haspopup": !0,
          "aria-errormessage": this.props["aria-errormessage"],
          "aria-invalid": this.props["aria-invalid"],
          "aria-label": this.props["aria-label"],
          "aria-labelledby": this.props["aria-labelledby"],
          "aria-required": f,
          role: "combobox",
          "aria-activedescendant": this.isAppleDevice ? void 0 : this.state.focusedOptionId || ""
        }, l && {
          "aria-controls": this.getElementId("listbox")
        }), !M && {
          "aria-readonly": !0
        }), this.hasValue() ? (i == null ? void 0 : i.action) === "initial-input-focus" && {
          "aria-describedby": this.getElementId("live-region")
        } : {
          "aria-describedby": this.getElementId("placeholder")
        });
        return M ? /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(c, Vn({}, b, {
          autoCapitalize: "none",
          autoComplete: "off",
          autoCorrect: "off",
          id: x,
          innerRef: this.getInputRef,
          isDisabled: K,
          isHidden: h,
          onBlur: this.onInputBlur,
          onChange: this.handleInputChange,
          onFocus: this.onInputFocus,
          spellCheck: "false",
          tabIndex: a,
          form: p,
          type: "text",
          value: r
        }, D)) : /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(Jz, Vn({
          id: x,
          innerRef: this.getInputRef,
          onBlur: this.onInputBlur,
          onChange: Wg,
          onFocus: this.onInputFocus,
          disabled: K,
          tabIndex: a,
          inputMode: "none",
          form: p,
          value: ""
        }, D));
      }
    )
  }, {
    key: "renderPlaceholderOrValue",
    value: function() {
      var P = this, K = this.getComponents(), M = K.MultiValue, L = K.MultiValueContainer, r = K.MultiValueLabel, a = K.MultiValueRemove, p = K.SingleValue, l = K.Placeholder, f = this.commonProps, u = this.props, c = u.controlShouldRenderValue, d = u.isDisabled, h = u.isMulti, i = u.inputValue, b = u.placeholder, x = this.state, D = x.selectValue, C = x.focusedValue, w = x.isFocused;
      if (!this.hasValue() || !c)
        return i ? null : /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(l, Vn({}, f, {
          key: "placeholder",
          isDisabled: d,
          isFocused: w,
          innerProps: {
            id: this.getElementId("placeholder")
          }
        }), b);
      if (h)
        return D.map(function(T, k) {
          var A = T === C, R = "".concat(P.getOptionLabel(T), "-").concat(P.getOptionValue(T));
          return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(M, Vn({}, f, {
            components: {
              Container: L,
              Label: r,
              Remove: a
            },
            isFocused: A,
            isDisabled: d,
            key: R,
            index: k,
            removeProps: {
              onClick: function() {
                return P.removeValue(T);
              },
              onTouchEnd: function() {
                return P.removeValue(T);
              },
              onMouseDown: function(I) {
                I.preventDefault();
              }
            },
            data: T
          }), P.formatOptionLabel(T, "value"));
        });
      if (i)
        return null;
      var S = D[0];
      return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(p, Vn({}, f, {
        data: S,
        isDisabled: d
      }), this.formatOptionLabel(S, "value"));
    }
  }, {
    key: "renderClearIndicator",
    value: function() {
      var P = this.getComponents(), K = P.ClearIndicator, M = this.commonProps, L = this.props, r = L.isDisabled, a = L.isLoading, p = this.state.isFocused;
      if (!this.isClearable() || !K || r || !this.hasValue() || a)
        return null;
      var l = {
        onMouseDown: this.onClearIndicatorMouseDown,
        onTouchEnd: this.onClearIndicatorTouchEnd,
        "aria-hidden": "true"
      };
      return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(K, Vn({}, M, {
        innerProps: l,
        isFocused: p
      }));
    }
  }, {
    key: "renderLoadingIndicator",
    value: function() {
      var P = this.getComponents(), K = P.LoadingIndicator, M = this.commonProps, L = this.props, r = L.isDisabled, a = L.isLoading, p = this.state.isFocused;
      if (!K || !a)
        return null;
      var l = {
        "aria-hidden": "true"
      };
      return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(K, Vn({}, M, {
        innerProps: l,
        isDisabled: r,
        isFocused: p
      }));
    }
  }, {
    key: "renderIndicatorSeparator",
    value: function() {
      var P = this.getComponents(), K = P.DropdownIndicator, M = P.IndicatorSeparator;
      if (!K || !M)
        return null;
      var L = this.commonProps, r = this.props.isDisabled, a = this.state.isFocused;
      return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(M, Vn({}, L, {
        isDisabled: r,
        isFocused: a
      }));
    }
  }, {
    key: "renderDropdownIndicator",
    value: function() {
      var P = this.getComponents(), K = P.DropdownIndicator;
      if (!K)
        return null;
      var M = this.commonProps, L = this.props.isDisabled, r = this.state.isFocused, a = {
        onMouseDown: this.onDropdownIndicatorMouseDown,
        onTouchEnd: this.onDropdownIndicatorTouchEnd,
        "aria-hidden": "true"
      };
      return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(K, Vn({}, M, {
        innerProps: a,
        isDisabled: L,
        isFocused: r
      }));
    }
  }, {
    key: "renderMenu",
    value: function() {
      var P = this, K = this.getComponents(), M = K.Group, L = K.GroupHeading, r = K.Menu, a = K.MenuList, p = K.MenuPortal, l = K.LoadingMessage, f = K.NoOptionsMessage, u = K.Option, c = this.commonProps, d = this.state.focusedOption, h = this.props, i = h.captureMenuScroll, b = h.inputValue, x = h.isLoading, D = h.loadingMessage, C = h.minMenuHeight, w = h.maxMenuHeight, S = h.menuIsOpen, T = h.menuPlacement, k = h.menuPosition, A = h.menuPortalTarget, R = h.menuShouldBlockScroll, g = h.menuShouldScrollIntoView, I = h.noOptionsMessage, O = h.onMenuScrollToTop, $ = h.onMenuScrollToBottom;
      if (!S)
        return null;
      var Y = function(se, me) {
        var J = se.type, W = se.data, ae = se.isDisabled, oe = se.isSelected, ve = se.label, fe = se.value, ye = d === W, Ce = ae ? void 0 : function() {
          return P.onOptionHover(W);
        }, Re = ae ? void 0 : function() {
          return P.selectOption(W);
        }, Be = "".concat(P.getElementId("option"), "-").concat(me), xe = {
          id: Be,
          onClick: Re,
          onMouseMove: Ce,
          onMouseOver: Ce,
          tabIndex: -1,
          role: "option",
          "aria-selected": P.isAppleDevice ? void 0 : oe
          // is not supported on Apple devices
        };
        return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(u, Vn({}, c, {
          innerProps: xe,
          data: W,
          isDisabled: ae,
          isSelected: oe,
          key: Be,
          label: ve,
          type: J,
          value: fe,
          isFocused: ye,
          innerRef: ye ? P.getFocusedOptionRef : void 0
        }), P.formatOptionLabel(se.data, "menu"));
      }, ne;
      if (this.hasOptions())
        ne = this.getCategorizedOptions().map(function(te) {
          if (te.type === "group") {
            var se = te.data, me = te.options, J = te.index, W = "".concat(P.getElementId("group"), "-").concat(J), ae = "".concat(W, "-heading");
            return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(M, Vn({}, c, {
              key: W,
              data: se,
              options: me,
              Heading: L,
              headingProps: {
                id: ae,
                data: te.data
              },
              label: P.formatGroupLabel(te.data)
            }), te.options.map(function(oe) {
              return Y(oe, "".concat(J, "-").concat(oe.index));
            }));
          } else if (te.type === "option")
            return Y(te, "".concat(te.index));
        });
      else if (x) {
        var q = D({
          inputValue: b
        });
        if (q === null)
          return null;
        ne = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(l, c, q);
      } else {
        var B = I({
          inputValue: b
        });
        if (B === null)
          return null;
        ne = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(f, c, B);
      }
      var X = {
        minMenuHeight: C,
        maxMenuHeight: w,
        menuPlacement: T,
        menuPosition: k,
        menuShouldScrollIntoView: g
      }, U = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(EF, Vn({}, c, X), function(te) {
        var se = te.ref, me = te.placerProps, J = me.placement, W = me.maxHeight;
        return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(r, Vn({}, c, X, {
          innerRef: se,
          innerProps: {
            onMouseDown: P.onMenuMouseDown,
            onMouseMove: P.onMenuMouseMove
          },
          isLoading: x,
          placement: J
        }), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(n_, {
          captureEnabled: i,
          onTopArrive: O,
          onBottomArrive: $,
          lockEnabled: R
        }, function(ae) {
          return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(a, Vn({}, c, {
            innerRef: function(ve) {
              P.getMenuListRef(ve), ae(ve);
            },
            innerProps: {
              role: "listbox",
              "aria-multiselectable": c.isMulti,
              id: P.getElementId("listbox")
            },
            isLoading: x,
            maxHeight: W,
            focusedOption: d
          }), ne);
        }));
      });
      return A || k === "fixed" ? /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(p, Vn({}, c, {
        appendTo: A,
        controlElement: this.controlRef,
        menuPlacement: T,
        menuPosition: k
      }), U) : U;
    }
  }, {
    key: "renderFormField",
    value: function() {
      var P = this, K = this.props, M = K.delimiter, L = K.isDisabled, r = K.isMulti, a = K.name, p = K.required, l = this.state.selectValue;
      if (p && !this.hasValue() && !L)
        return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(l_, {
          name: a,
          onFocus: this.onValueInputFocus
        });
      if (!(!a || L))
        if (r)
          if (M) {
            var f = l.map(function(d) {
              return P.getOptionValue(d);
            }).join(M);
            return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement("input", {
              name: a,
              type: "hidden",
              value: f
            });
          } else {
            var u = l.length > 0 ? l.map(function(d, h) {
              return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement("input", {
                key: "i-".concat(h),
                name: a,
                type: "hidden",
                value: P.getOptionValue(d)
              });
            }) : /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement("input", {
              name: a,
              type: "hidden",
              value: ""
            });
            return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement("div", null, u);
          }
        else {
          var c = l[0] ? this.getOptionValue(l[0]) : "";
          return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement("input", {
            name: a,
            type: "hidden",
            value: c
          });
        }
    }
  }, {
    key: "renderLiveRegion",
    value: function() {
      var P = this.commonProps, K = this.state, M = K.ariaSelection, L = K.focusedOption, r = K.focusedValue, a = K.isFocused, p = K.selectValue, l = this.getFocusableOptions();
      return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(Wz, Vn({}, P, {
        id: this.getElementId("live-region"),
        ariaSelection: M,
        focusedOption: L,
        focusedValue: r,
        isFocused: a,
        selectValue: p,
        focusableOptions: l,
        isAppleDevice: this.isAppleDevice
      }));
    }
  }, {
    key: "render",
    value: function() {
      var P = this.getComponents(), K = P.Control, M = P.IndicatorsContainer, L = P.SelectContainer, r = P.ValueContainer, a = this.props, p = a.className, l = a.id, f = a.isDisabled, u = a.menuIsOpen, c = this.state.isFocused, d = this.commonProps = this.getCommonProps();
      return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(L, Vn({}, d, {
        className: p,
        innerProps: {
          id: l,
          onKeyDown: this.onKeyDown
        },
        isDisabled: f,
        isFocused: c
      }), this.renderLiveRegion(), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(K, Vn({}, d, {
        innerRef: this.getControlRef,
        innerProps: {
          onMouseDown: this.onControlMouseDown,
          onTouchEnd: this.onControlTouchEnd
        },
        isDisabled: f,
        isFocused: c,
        menuIsOpen: u
      }), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(r, Vn({}, d, {
        isDisabled: f
      }), this.renderPlaceholderOrValue(), this.renderInput()), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(M, Vn({}, d, {
        isDisabled: f
      }), this.renderClearIndicator(), this.renderLoadingIndicator(), this.renderIndicatorSeparator(), this.renderDropdownIndicator())), this.renderMenu(), this.renderFormField());
    }
  }], [{
    key: "getDerivedStateFromProps",
    value: function(P, K) {
      var M = K.prevProps, L = K.clearFocusValueOnUpdate, r = K.inputIsHiddenAfterUpdate, a = K.ariaSelection, p = K.isFocused, l = K.prevWasFocused, f = K.instancePrefix, u = P.options, c = P.value, d = P.menuIsOpen, h = P.inputValue, i = P.isMulti, b = Yg(c), x = {};
      if (M && (c !== M.value || u !== M.options || d !== M.menuIsOpen || h !== M.inputValue)) {
        var D = d ? T_(P, b) : [], C = d ? IS(Dg(P, b), "".concat(f, "-option")) : [], w = L ? C_(K, b) : null, S = A_(K, D), T = jx(C, S);
        x = {
          selectValue: b,
          focusedOption: S,
          focusedOptionId: T,
          focusableOptionsWithIds: C,
          focusedValue: w,
          clearFocusValueOnUpdate: !1
        };
      }
      var k = r != null && P !== M ? {
        inputIsHidden: r,
        inputIsHiddenAfterUpdate: void 0
      } : {}, A = a, R = p && l;
      return p && !R && (A = {
        value: B0(i, b, b[0] || null),
        options: b,
        action: "initial-input-focus"
      }, R = !l), (a == null ? void 0 : a.action) === "initial-input-focus" && (A = null), On(On(On({}, x), k), {}, {
        prevProps: P,
        ariaSelection: A,
        prevWasFocused: R
      });
    }
  }]), E;
}(react__WEBPACK_IMPORTED_MODULE_1__.Component);
dT.defaultProps = x_;
var S_ = /* @__PURE__ */ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)(function(s, o) {
  var E = _M(s);
  return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(dT, Vn({
    ref: o
  }, E));
}), k6 = S_;
const vT = {
  control: (s) => ({
    ...s,
    borderColor: "var(--onyx-dropdown-control-border-color)",
    backgroundColor: "var(--onyx-dropdown-control-background-color)"
  }),
  menuPortal: (s) => ({ ...s, zIndex: 9999 }),
  menu: (s) => ({
    ...s,
    width: "100%",
    backgroundColor: "var(--onyx-dropdown-menu-background-color)"
  }),
  option: (s, o) => ({
    ...s,
    color: "var(--onyx-dropdown-label-color)",
    backgroundColor: o.isFocused ? "var(--onyx-dropdown-option-hover-background-color)" : "var(--onyx-dropdown-option-background-color)"
  }),
  singleValue: (s) => ({
    ...s,
    color: "var(--onyx-dropdown-label-color)"
  }),
  input: (s) => ({ ...s, color: "var(--onyx-dropdown-label-color)" }),
  multiValue: (s) => ({
    ...s,
    backgroundColor: "var(--onyx-dropdown-multivalue-label-background-color)"
  }),
  multiValueLabel: (s) => ({
    ...s,
    color: "var(--onyx-dropdown-label-color)"
  }),
  multiValueRemove: (s) => ({
    ...s,
    ":hover": {
      backgroundColor: "var(--bs-red)",
      color: "var(--bs-white)"
    }
  }),
  placeholder: (s) => ({
    ...s,
    color: "var(--bs-secondary-color)"
  })
}, I6 = (s) => /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("code", { children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(g6.Option, { ...s }) }), N6 = (s, o) => s + (o != null && o.get(s) ? ` | ${o == null ? void 0 : o.get(s)}` : "");
function Hu(s) {
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
    k6,
    {
      isClearable: s.isClearable,
      isDisabled: s.isDisabled,
      components: { Option: I6 },
      menuPortalTarget: document.body,
      styles: vT,
      options: s.options.map((o) => ({
        value: o,
        label: N6(o, s.titles)
      })),
      value: s.value ? {
        value: s.value,
        label: s.value
      } : null,
      onChange: (o) => o ? s.onChange({
        target: {
          value: o.value
        }
      }) : s.onChange({
        target: {
          value: ""
        }
      }),
      placeholder: s.placeholder || "Select value..."
    }
  );
}
function O6(s) {
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
    k6,
    {
      isMulti: !0,
      closeMenuOnSelect: !1,
      components: { Option: I6 },
      menuPortalTarget: document.body,
      styles: vT,
      options: s.options.map((o) => ({
        value: o,
        label: N6(o, s.titles)
      })),
      value: s.value.map((o) => ({
        value: o,
        label: o
      })),
      delimiter: ",",
      onChange: (o) => s.onChange({
        target: {
          value: o.map((E) => E.value).join(",")
        }
      }),
      placeholder: s.placeholder || "Select values..."
    }
  );
}
const P6 = (s) => Pf({
  queryKey: ["choices", s.project, s.field],
  queryFn: async () => s.httpPathHandler(`projects/${s.project}/choices/${s.field}/`).then((o) => o.json()).then((o) => new Map(
    Object.entries(o.data).map(([z, P]) => [
      z,
      P.description
    ])
  ))
});
function M_(s) {
  const { data: o } = P6(s);
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Hu, { ...s, titles: o });
}
function E_(s) {
  const { data: o } = P6(s);
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(O6, { ...s, titles: o });
}
var D_ = ["allowCreateWhileLoading", "createOptionPosition", "formatCreateLabel", "isValidNewOption", "getNewOptionData", "onCreateOption", "options", "onChange"], OS = function() {
  var o = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "", E = arguments.length > 1 ? arguments[1] : void 0, z = arguments.length > 2 ? arguments[2] : void 0, P = String(o).toLowerCase(), K = String(z.getOptionValue(E)).toLowerCase(), M = String(z.getOptionLabel(E)).toLowerCase();
  return K === P || M === P;
}, Zx = {
  formatCreateLabel: function(o) {
    return 'Create "'.concat(o, '"');
  },
  isValidNewOption: function(o, E, z, P) {
    return !(!o || E.some(function(K) {
      return OS(o, K, P);
    }) || z.some(function(K) {
      return OS(o, K, P);
    }));
  },
  getNewOptionData: function(o, E) {
    return {
      label: E,
      value: o,
      __isNew__: !0
    };
  }
};
function R_(s) {
  var o = s.allowCreateWhileLoading, E = o === void 0 ? !1 : o, z = s.createOptionPosition, P = z === void 0 ? "last" : z, K = s.formatCreateLabel, M = K === void 0 ? Zx.formatCreateLabel : K, L = s.isValidNewOption, r = L === void 0 ? Zx.isValidNewOption : L, a = s.getNewOptionData, p = a === void 0 ? Zx.getNewOptionData : a, l = s.onCreateOption, f = s.options, u = f === void 0 ? [] : f, c = s.onChange, d = Wu(s, D_), h = d.getOptionValue, i = h === void 0 ? A6 : h, b = d.getOptionLabel, x = b === void 0 ? C6 : b, D = d.inputValue, C = d.isLoading, w = d.isMulti, S = d.value, T = d.name, k = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(function() {
    return r(D, Yg(S), u, {
      getOptionValue: i,
      getOptionLabel: x
    }) ? p(D, M(D)) : void 0;
  }, [M, p, x, i, D, r, u, S]), A = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(function() {
    return (E || !C) && k ? P === "first" ? [k].concat(Yh(u)) : [].concat(Yh(u), [k]) : u;
  }, [E, P, C, k, u]), R = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(function(g, I) {
    if (I.action !== "select-option")
      return c(g, I);
    var O = Array.isArray(g) ? g : [g];
    if (O[O.length - 1] === k) {
      if (l)
        l(D);
      else {
        var $ = p(D, D), Y = {
          action: "create-option",
          name: T,
          option: $
        };
        c(B0(w, [].concat(Yh(Yg(S)), [$]), $), Y);
      }
      return;
    }
    c(g, I);
  }, [p, D, w, T, k, l, c, S]);
  return On(On({}, d), {}, {
    options: A,
    onChange: R
  });
}
var L_ = /* @__PURE__ */ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)(function(s, o) {
  var E = _M(s), z = R_(E);
  return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(dT, Vn({
    ref: o
  }, z));
}), k_ = L_;
function I_({
  value: s,
  placeholder: o,
  onChange: E
}) {
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
    Ll.Control,
    {
      value: s,
      placeholder: o || "Enter value...",
      onChange: E
    }
  );
}
function PS({
  value: s,
  placeholder: o,
  limit: E,
  onChange: z
}) {
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
    k_,
    {
      isMulti: !0,
      menuPortalTarget: document.body,
      styles: vT,
      value: s.map((P) => ({
        value: P,
        label: P
      })),
      delimiter: ",",
      onChange: (P) => z({
        target: {
          value: P.map((K) => K.value).join(",")
        }
      }),
      isOptionDisabled: () => !(E === void 0 || s.length < E),
      noOptionsMessage: () => "Create a new value...",
      placeholder: o || "Enter values..."
    }
  );
}
function N_(s) {
  var z, P, K, M, L;
  let o;
  const E = (r) => r ? r.split(",") : [];
  return s.filter.lookup === "isnull" ? o = /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
    Hu,
    {
      options: ["true", "false"],
      value: s.filter.value,
      onChange: s.handleValueChange
    }
  ) : ((z = s.projectFields.get(s.filter.field)) == null ? void 0 : z.type) === "choice" ? s.filter.lookup.endsWith("in") ? o = /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
    E_,
    {
      project: s.project,
      field: s.filter.field,
      httpPathHandler: s.httpPathHandler,
      options: ((P = s.projectFields.get(s.filter.field)) == null ? void 0 : P.values) || [],
      value: E(s.filter.value),
      onChange: s.handleValueChange
    }
  ) : o = /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
    M_,
    {
      project: s.project,
      field: s.filter.field,
      httpPathHandler: s.httpPathHandler,
      isClearable: !0,
      options: ((K = s.projectFields.get(s.filter.field)) == null ? void 0 : K.values) || [],
      value: s.filter.value,
      onChange: s.handleValueChange
    }
  ) : s.filter.lookup.endsWith("in") ? o = /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
    PS,
    {
      value: E(s.filter.value),
      onChange: s.handleValueChange
    }
  ) : s.filter.lookup.endsWith("range") ? o = /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
    PS,
    {
      value: E(s.filter.value),
      limit: 2,
      onChange: s.handleValueChange
    }
  ) : ((M = s.projectFields.get(s.filter.field)) == null ? void 0 : M.type) === "bool" ? o = /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
    Hu,
    {
      isClearable: !0,
      options: ["true", "false"],
      value: s.filter.value,
      onChange: s.handleValueChange
    }
  ) : o = /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(I_, { value: s.filter.value, onChange: s.handleValueChange }), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Ql, { direction: "horizontal", gap: 1, children: [
    /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_f, { fluid: !0, className: "g-0", children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)($0, { className: "g-1", children: [
      /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(au, { sm: 4, children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
        Hu,
        {
          options: s.fieldList,
          titles: s.fieldDescriptions,
          value: s.filter.field,
          placeholder: "Select field...",
          onChange: s.handleFieldChange
        }
      ) }),
      /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(au, { sm: 4, children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
        Hu,
        {
          options: s.typeLookups.get(
            ((L = s.projectFields.get(s.filter.field)) == null ? void 0 : L.type) || ""
          ) || [],
          titles: s.lookupDescriptions,
          value: s.filter.lookup,
          placeholder: "Select lookup...",
          onChange: s.handleLookupChange
        }
      ) }),
      /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(au, { sm: 4, children: o })
    ] }) }),
    /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Kl, { variant: "dark", onClick: s.handleFilterAdd, children: "+" }),
    /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Kl, { variant: "dark", onClick: s.handleFilterRemove, children: "-" })
  ] });
}
const O_ = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  bsPrefix: s,
  className: o,
  striped: E,
  bordered: z,
  borderless: P,
  hover: K,
  size: M,
  variant: L,
  responsive: r,
  ...a
}, p) => {
  const l = kn(s, "table"), f = bn(o, l, L && `${l}-${L}`, M && `${l}-${M}`, E && `${l}-${typeof E == "string" ? `striped-${E}` : "striped"}`, z && `${l}-bordered`, P && `${l}-borderless`, K && `${l}-hover`), u = /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("table", {
    ...a,
    className: f,
    ref: p
  });
  if (r) {
    let c = `${l}-responsive`;
    return typeof r == "string" && (c = `${c}-${r}`), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
      className: c,
      children: u
    });
  }
  return u;
}), P_ = (0,react__WEBPACK_IMPORTED_MODULE_1__.memo)(function({
  data: o,
  titles: E,
  s3PathHandler: z
}) {
  const P = () => o.length > 0 ? Object.keys(o[0]) : [], K = o.map(
    (M) => Object.values(M).map((L) => (L == null ? void 0 : L.toString().trim()) || "")
  );
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(O_, { striped: !0, bordered: !0, hover: !0, responsive: !0, size: "sm", children: [
    /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("thead", { children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("tr", { children: P().map((M) => /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("th", { title: E == null ? void 0 : E.get(M), children: M }, M)) }) }),
    /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("tbody", { children: K.map((M, L) => /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("tr", { children: M.map(
      (r, a) => z && r.startsWith("s3://") && r.endsWith(".html") ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("td", { children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Kl, { variant: "link", onClick: () => z(r), children: r }) }, a) : /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("td", { children: r }, a)
    ) }, L)) })
  ] });
}), F6 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({
  bsPrefix: s,
  variant: o,
  animation: E = "border",
  size: z,
  // Need to define the default "as" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595
  as: P = "div",
  className: K,
  ...M
}, L) => {
  s = kn(s, "spinner");
  const r = `${s}-${E}`;
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(P, {
    ref: L,
    ...M,
    className: bn(K, r, z && `${r}-${z}`, o && `text-${o}`)
  });
});
F6.displayName = "Spinner";
function F_() {
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Ag, { variant: "light", children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Ql, { direction: "horizontal", gap: 2, children: [
    /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(F6, {}),
    /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", { children: "Loading..." })
  ] }) });
}
function z_(s) {
  const [o, E] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(new Array()), [z, P] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(new Array()), [K, M] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(new Array()), [L, r] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(new Array()), [a, p] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(""), l = Array.from(s.projectFields.entries()).filter(([, S]) => S.actions.includes("filter")).map(([S]) => S), f = Array.from(s.projectFields.entries()).filter(([, S]) => S.actions.includes("list")).map(([S]) => S);
  (0,react__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect)(() => {
    E([]), P([]), M([]), r([]), p("");
  }, [s.project]);
  const u = (S, T) => {
    var R;
    const k = [...o], A = s.projectFields.get(S.target.value);
    k[T].field = S.target.value, k[T].lookup = ((R = s.typeLookups.get((A == null ? void 0 : A.type) || "")) == null ? void 0 : R[0]) || "", k[T].lookup === "isnull" ? k[T].value = "true" : k[T].value = "", E(k);
  }, c = (S, T) => {
    const k = [...o];
    k[T].lookup = S.target.value, k[T].lookup === "isnull" ? k[T].value = "true" : k[T].value = "", E(k);
  }, d = (S, T) => {
    const k = [...o];
    k[T].value = S.target.value, E(k);
  }, h = (S) => {
    E([
      ...o.slice(0, S),
      { field: "", lookup: "", value: "" },
      ...o.slice(S)
    ]);
  }, i = (S) => {
    const T = [...o];
    T.splice(S, 1), E(T);
  }, b = () => {
    E([]);
  }, x = (S) => {
    P(S.target.value ? S.target.value.split(",") : []), M([]), r([]);
  }, D = (S) => {
    P([]), M(S.target.value ? S.target.value.split(",") : []);
  }, C = (S) => {
    P([]), r(S.target.value ? S.target.value.split(",") : []);
  }, w = () => {
    const S = new URLSearchParams(
      o.filter((T) => T.field).map((T) => T.lookup ? [T.field + "__" + T.lookup, T.value] : [T.field, T.value]).concat(
        K.filter((T) => T).map((T) => ["include", T])
      ).concat(
        L.filter((T) => T).map((T) => ["exclude", T])
      ).concat(
        z.filter((T) => T).map((T) => ["summarise", T])
      ).concat(
        [a].filter((T) => T).map((T) => ["search", T])
      )
    );
    s.handleSearch(S.toString()), s.handlePageNumber(1);
  };
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: [
    /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Ql, { direction: "horizontal", gap: 2, children: [
      /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
        Ll.Control,
        {
          value: a,
          placeholder: "Search records...",
          onChange: (S) => p(S.target.value),
          onKeyUp: (S) => {
            S.key === "Enter" && w();
          }
        }
      ),
      /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
        Kl,
        {
          variant: "primary",
          disabled: !s.project,
          onClick: w,
          children: "Search"
        }
      )
    ] }),
    /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)($0, { className: "g-2", children: [
      /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(au, { xl: 6, children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Jl, { children: [
        /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Jl.Header, { children: [
          /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", { children: "Filter" }),
          /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Ql, { direction: "horizontal", gap: 1, className: "float-end", children: [
            /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
              Kl,
              {
                size: "sm",
                variant: "dark",
                onClick: () => h(o.length),
                children: "Add Filter"
              }
            ),
            /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Kl, { size: "sm", variant: "dark", onClick: b, children: "Clear Filters" })
          ] })
        ] }),
        /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_f, { fluid: !0, className: "panel p-2", children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Ql, { gap: 1, children: o.map((S, T) => /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
          N_,
          {
            project: s.project,
            httpPathHandler: s.httpPathHandler,
            filter: S,
            fieldList: l,
            projectFields: s.projectFields,
            typeLookups: s.typeLookups,
            fieldDescriptions: s.fieldDescriptions,
            lookupDescriptions: s.lookupDescriptions,
            handleFieldChange: (k) => u(k, T),
            handleLookupChange: (k) => c(k, T),
            handleValueChange: (k) => d(k, T),
            handleFilterAdd: () => h(T + 1),
            handleFilterRemove: () => i(T)
          }
        ) }, T)) }) })
      ] }) }),
      [
        {
          title: "Summarise",
          options: l,
          value: z,
          onChange: x
        },
        {
          title: "Include",
          options: f,
          value: K,
          onChange: D
        },
        {
          title: "Exclude",
          options: f,
          value: L,
          onChange: C
        }
      ].map(({ title: S, options: T, value: k, onChange: A }) => /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(au, { md: 4, xl: 2, children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Jl, { children: [
        /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Jl.Header, { children: S }),
        /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_f, { fluid: !0, className: "panel p-2", children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
          O6,
          {
            options: T,
            titles: s.fieldDescriptions,
            value: k,
            placeholder: "Select fields...",
            onChange: A
          }
        ) })
      ] }) }, S))
    ] })
  ] });
}
function __(s) {
  var P;
  const o = `${s.project}${s.pageNumber > 1 ? "_" + s.pageNumber.toString() : ""}`, E = u1({
    filename: o,
    useKeysAsHeaders: !0
  }), z = () => {
    const K = CO(E)(s.resultData.data || []);
    s.fileWriter ? s.fileWriter(o + ".csv", yO(K)) : wO(E)(K);
  };
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Jl, { children: [
    /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Jl.Header, { children: [
      /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", { children: "Results" }),
      /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
        Kl,
        {
          className: "float-end",
          size: "sm",
          variant: "success",
          onClick: z,
          children: "Export Page to CSV"
        }
      )
    ] }),
    /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_f, { fluid: !0, className: "table-panel p-2", children: s.resultPending ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(F_, {}) : s.resultError ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Ag, { variant: "danger", children: [
      "Error: ",
      s.resultError.message
    ] }) : s.resultData.messages ? Object.entries(s.resultData.messages).map(
      ([K, M]) => Array.isArray(M) ? M.map((L) => /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Ag, { variant: "danger", children: [
        K,
        ": ",
        L
      ] }, K)) : /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Ag, { variant: "danger", children: [
        K,
        ": ",
        M
      ] }, K)
    ) : /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
      P_,
      {
        data: s.resultData.data || [],
        titles: s.fieldDescriptions,
        s3PathHandler: s.s3PathHandler
      }
    ) }),
    /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Jl.Footer, { children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(mg, { size: "sm", children: [
      /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
        mg.Prev,
        {
          disabled: !s.resultData.previous,
          onClick: () => {
            var K;
            s.handleSearch(
              ((K = s.resultData.previous) == null ? void 0 : K.split("?", 2)[1]) || ""
            ), s.handlePageNumber(s.pageNumber - 1);
          }
        }
      ),
      /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(mg.Item, { children: s.resultPending ? "Loading..." : `Showing ${((P = s.resultData.data) == null ? void 0 : P.length) || 0} results (Page ${s.pageNumber})` }),
      /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
        mg.Next,
        {
          disabled: !s.resultData.next,
          onClick: () => {
            var K, M;
            s.handleSearch(
              ((M = (K = s.resultData) == null ? void 0 : K.next) == null ? void 0 : M.split("?", 2)[1]) || ""
            ), s.handlePageNumber(s.pageNumber + 1);
          }
        }
      )
    ] }) })
  ] });
}
function H_(s) {
  const [o, E] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(""), [z, P] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(1);
  (0,react__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect)(() => {
    E(""), P(1);
  }, [s.project]);
  const {
    isFetching: K,
    error: M,
    data: L = {},
    refetch: r
  } = Pf({
    queryKey: ["results", s.project, o],
    queryFn: async () => s.httpPathHandler(`projects/${s.project}/?${o}`).then((p) => p.json()),
    enabled: !!s.project
  });
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_f, { fluid: !0, className: "g-2", children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Ql, { gap: 2, children: [
    /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
      z_,
      {
        ...s,
        handleSearch: (p) => {
          o === p && !K && r(), E(p);
        },
        handlePageNumber: P
      }
    ),
    /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
      __,
      {
        ...s,
        handleSearch: E,
        handlePageNumber: P,
        resultPending: K,
        resultError: M instanceof Error ? M : null,
        resultData: L,
        pageNumber: z
      }
    )
  ] }) });
}
var z6 = { exports: {} };
(function(s, o) {
  (function(z, P) {
    s.exports = P();
  })(self, function() {
    return (
      /******/
      function() {
        var E = {
          /***/
          9288: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = {
                "X,X div": 'direction:ltr;font-family:"Open Sans",verdana,arial,sans-serif;margin:0;padding:0;',
                "X input,X button": 'font-family:"Open Sans",verdana,arial,sans-serif;',
                "X input:focus,X button:focus": "outline:none;",
                "X a": "text-decoration:none;",
                "X a:hover": "text-decoration:none;",
                "X .crisp": "shape-rendering:crispEdges;",
                "X .user-select-none": "-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;",
                "X svg": "overflow:hidden;",
                "X svg a": "fill:#447adb;",
                "X svg a:hover": "fill:#3c6dc5;",
                "X .main-svg": "position:absolute;top:0;left:0;pointer-events:none;",
                "X .main-svg .draglayer": "pointer-events:all;",
                "X .cursor-default": "cursor:default;",
                "X .cursor-pointer": "cursor:pointer;",
                "X .cursor-crosshair": "cursor:crosshair;",
                "X .cursor-move": "cursor:move;",
                "X .cursor-col-resize": "cursor:col-resize;",
                "X .cursor-row-resize": "cursor:row-resize;",
                "X .cursor-ns-resize": "cursor:ns-resize;",
                "X .cursor-ew-resize": "cursor:ew-resize;",
                "X .cursor-sw-resize": "cursor:sw-resize;",
                "X .cursor-s-resize": "cursor:s-resize;",
                "X .cursor-se-resize": "cursor:se-resize;",
                "X .cursor-w-resize": "cursor:w-resize;",
                "X .cursor-e-resize": "cursor:e-resize;",
                "X .cursor-nw-resize": "cursor:nw-resize;",
                "X .cursor-n-resize": "cursor:n-resize;",
                "X .cursor-ne-resize": "cursor:ne-resize;",
                "X .cursor-grab": "cursor:-webkit-grab;cursor:grab;",
                "X .modebar": "position:absolute;top:2px;right:2px;",
                "X .ease-bg": "-webkit-transition:background-color .3s ease 0s;-moz-transition:background-color .3s ease 0s;-ms-transition:background-color .3s ease 0s;-o-transition:background-color .3s ease 0s;transition:background-color .3s ease 0s;",
                "X .modebar--hover>:not(.watermark)": "opacity:0;-webkit-transition:opacity .3s ease 0s;-moz-transition:opacity .3s ease 0s;-ms-transition:opacity .3s ease 0s;-o-transition:opacity .3s ease 0s;transition:opacity .3s ease 0s;",
                "X:hover .modebar--hover .modebar-group": "opacity:1;",
                "X .modebar-group": "float:left;display:inline-block;box-sizing:border-box;padding-left:8px;position:relative;vertical-align:middle;white-space:nowrap;",
                "X .modebar-btn": "position:relative;font-size:16px;padding:3px 4px;height:22px;cursor:pointer;line-height:normal;box-sizing:border-box;",
                "X .modebar-btn svg": "position:relative;top:2px;",
                "X .modebar.vertical": "display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-end;max-height:100%;",
                "X .modebar.vertical svg": "top:-1px;",
                "X .modebar.vertical .modebar-group": "display:block;float:none;padding-left:0px;padding-bottom:8px;",
                "X .modebar.vertical .modebar-group .modebar-btn": "display:block;text-align:center;",
                "X [data-title]:before,X [data-title]:after": "position:absolute;-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);display:none;opacity:0;z-index:1001;pointer-events:none;top:110%;right:50%;",
                "X [data-title]:hover:before,X [data-title]:hover:after": "display:block;opacity:1;",
                "X [data-title]:before": 'content:"";position:absolute;background:rgba(0,0,0,0);border:6px solid rgba(0,0,0,0);z-index:1002;margin-top:-12px;border-bottom-color:#69738a;margin-right:-6px;',
                "X [data-title]:after": "content:attr(data-title);background:#69738a;color:#fff;padding:8px 10px;font-size:12px;line-height:12px;white-space:nowrap;margin-right:-18px;border-radius:2px;",
                "X .vertical [data-title]:before,X .vertical [data-title]:after": "top:0%;right:200%;",
                "X .vertical [data-title]:before": "border:6px solid rgba(0,0,0,0);border-left-color:#69738a;margin-top:8px;margin-right:-30px;",
                Y: 'font-family:"Open Sans",verdana,arial,sans-serif;position:fixed;top:50px;right:20px;z-index:10000;font-size:10pt;max-width:180px;',
                "Y p": "margin:0;",
                "Y .notifier-note": "min-width:180px;max-width:250px;border:1px solid #fff;z-index:3000;margin:0;background-color:#8c97af;background-color:rgba(140,151,175,.9);color:#fff;padding:10px;overflow-wrap:break-word;word-wrap:break-word;-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto;",
                "Y .notifier-close": "color:#fff;opacity:.8;float:right;padding:0 5px;background:none;border:none;font-size:20px;font-weight:bold;line-height:20px;",
                "Y .notifier-close:hover": "color:#444;text-decoration:none;cursor:pointer;"
              };
              for (var l in p) {
                var f = l.replace(/^,/, " ,").replace(/X/g, ".js-plotly-plot .plotly").replace(/Y/g, ".plotly-notifier");
                a.addStyleRule(f, p[l]);
              }
            }
          ),
          /***/
          6712: (
            /***/
            function(M, L, r) {
              M.exports = r(1843);
            }
          ),
          /***/
          7240: (
            /***/
            function(M, L, r) {
              M.exports = r(1132);
            }
          ),
          /***/
          6144: (
            /***/
            function(M, L, r) {
              M.exports = r(7776);
            }
          ),
          /***/
          2016: (
            /***/
            function(M, L, r) {
              M.exports = r(4884);
            }
          ),
          /***/
          5556: (
            /***/
            function(M, L, r) {
              M.exports = r(6744);
            }
          ),
          /***/
          6489: (
            /***/
            function(M, L, r) {
              M.exports = r(2028);
            }
          ),
          /***/
          3472: (
            /***/
            function(M, L, r) {
              var a = r(2016);
              a.register([
                // traces
                r(7240),
                r(260),
                // transforms
                r(6712),
                r(5556),
                r(6489),
                r(7312),
                // components
                r(6144)
              ]), M.exports = a;
            }
          ),
          /***/
          260: (
            /***/
            function(M, L, r) {
              M.exports = r(5792);
            }
          ),
          /***/
          7312: (
            /***/
            function(M, L, r) {
              M.exports = r(6272);
            }
          ),
          /***/
          2196: (
            /***/
            function(M) {
              M.exports = [
                // no arrow
                {
                  path: "",
                  backoff: 0
                },
                // wide with flat back
                {
                  path: "M-2.4,-3V3L0.6,0Z",
                  backoff: 0.6
                },
                // narrower with flat back
                {
                  path: "M-3.7,-2.5V2.5L1.3,0Z",
                  backoff: 1.3
                },
                // barbed
                {
                  path: "M-4.45,-3L-1.65,-0.2V0.2L-4.45,3L1.55,0Z",
                  backoff: 1.55
                },
                // wide line-drawn
                {
                  path: "M-2.2,-2.2L-0.2,-0.2V0.2L-2.2,2.2L-1.4,3L1.6,0L-1.4,-3Z",
                  backoff: 1.6
                },
                // narrower line-drawn
                {
                  path: "M-4.4,-2.1L-0.6,-0.2V0.2L-4.4,2.1L-4,3L2,0L-4,-3Z",
                  backoff: 2
                },
                // circle
                {
                  path: "M2,0A2,2 0 1,1 0,-2A2,2 0 0,1 2,0Z",
                  backoff: 0,
                  noRotate: !0
                },
                // square
                {
                  path: "M2,2V-2H-2V2Z",
                  backoff: 0,
                  noRotate: !0
                }
              ];
            }
          ),
          /***/
          3916: (
            /***/
            function(M, L, r) {
              var a = r(2196), p = r(5376), l = r(3816), f = r(1780).templatedArray;
              r(6208), M.exports = f("annotation", {
                visible: {
                  valType: "boolean",
                  dflt: !0,
                  editType: "calc+arraydraw"
                },
                text: {
                  valType: "string",
                  editType: "calc+arraydraw"
                },
                textangle: {
                  valType: "angle",
                  dflt: 0,
                  editType: "calc+arraydraw"
                },
                font: p({
                  editType: "calc+arraydraw",
                  colorEditType: "arraydraw"
                }),
                width: {
                  valType: "number",
                  min: 1,
                  dflt: null,
                  editType: "calc+arraydraw"
                },
                height: {
                  valType: "number",
                  min: 1,
                  dflt: null,
                  editType: "calc+arraydraw"
                },
                opacity: {
                  valType: "number",
                  min: 0,
                  max: 1,
                  dflt: 1,
                  editType: "arraydraw"
                },
                align: {
                  valType: "enumerated",
                  values: ["left", "center", "right"],
                  dflt: "center",
                  editType: "arraydraw"
                },
                valign: {
                  valType: "enumerated",
                  values: ["top", "middle", "bottom"],
                  dflt: "middle",
                  editType: "arraydraw"
                },
                bgcolor: {
                  valType: "color",
                  dflt: "rgba(0,0,0,0)",
                  editType: "arraydraw"
                },
                bordercolor: {
                  valType: "color",
                  dflt: "rgba(0,0,0,0)",
                  editType: "arraydraw"
                },
                borderpad: {
                  valType: "number",
                  min: 0,
                  dflt: 1,
                  editType: "calc+arraydraw"
                },
                borderwidth: {
                  valType: "number",
                  min: 0,
                  dflt: 1,
                  editType: "calc+arraydraw"
                },
                // arrow
                showarrow: {
                  valType: "boolean",
                  dflt: !0,
                  editType: "calc+arraydraw"
                },
                arrowcolor: {
                  valType: "color",
                  editType: "arraydraw"
                },
                arrowhead: {
                  valType: "integer",
                  min: 0,
                  max: a.length,
                  dflt: 1,
                  editType: "arraydraw"
                },
                startarrowhead: {
                  valType: "integer",
                  min: 0,
                  max: a.length,
                  dflt: 1,
                  editType: "arraydraw"
                },
                arrowside: {
                  valType: "flaglist",
                  flags: ["end", "start"],
                  extras: ["none"],
                  dflt: "end",
                  editType: "arraydraw"
                },
                arrowsize: {
                  valType: "number",
                  min: 0.3,
                  dflt: 1,
                  editType: "calc+arraydraw"
                },
                startarrowsize: {
                  valType: "number",
                  min: 0.3,
                  dflt: 1,
                  editType: "calc+arraydraw"
                },
                arrowwidth: {
                  valType: "number",
                  min: 0.1,
                  editType: "calc+arraydraw"
                },
                standoff: {
                  valType: "number",
                  min: 0,
                  dflt: 0,
                  editType: "calc+arraydraw"
                },
                startstandoff: {
                  valType: "number",
                  min: 0,
                  dflt: 0,
                  editType: "calc+arraydraw"
                },
                ax: {
                  valType: "any",
                  editType: "calc+arraydraw"
                },
                ay: {
                  valType: "any",
                  editType: "calc+arraydraw"
                },
                axref: {
                  valType: "enumerated",
                  dflt: "pixel",
                  values: ["pixel", l.idRegex.x.toString()],
                  editType: "calc"
                },
                ayref: {
                  valType: "enumerated",
                  dflt: "pixel",
                  values: ["pixel", l.idRegex.y.toString()],
                  editType: "calc"
                },
                // positioning
                xref: {
                  valType: "enumerated",
                  values: ["paper", l.idRegex.x.toString()],
                  editType: "calc"
                },
                x: {
                  valType: "any",
                  editType: "calc+arraydraw"
                },
                xanchor: {
                  valType: "enumerated",
                  values: ["auto", "left", "center", "right"],
                  dflt: "auto",
                  editType: "calc+arraydraw"
                },
                xshift: {
                  valType: "number",
                  dflt: 0,
                  editType: "calc+arraydraw"
                },
                yref: {
                  valType: "enumerated",
                  values: ["paper", l.idRegex.y.toString()],
                  editType: "calc"
                },
                y: {
                  valType: "any",
                  editType: "calc+arraydraw"
                },
                yanchor: {
                  valType: "enumerated",
                  values: ["auto", "top", "middle", "bottom"],
                  dflt: "auto",
                  editType: "calc+arraydraw"
                },
                yshift: {
                  valType: "number",
                  dflt: 0,
                  editType: "calc+arraydraw"
                },
                clicktoshow: {
                  valType: "enumerated",
                  values: [!1, "onoff", "onout"],
                  dflt: !1,
                  editType: "arraydraw"
                },
                xclick: {
                  valType: "any",
                  editType: "arraydraw"
                },
                yclick: {
                  valType: "any",
                  editType: "arraydraw"
                },
                hovertext: {
                  valType: "string",
                  editType: "arraydraw"
                },
                hoverlabel: {
                  bgcolor: {
                    valType: "color",
                    editType: "arraydraw"
                  },
                  bordercolor: {
                    valType: "color",
                    editType: "arraydraw"
                  },
                  font: p({
                    editType: "arraydraw"
                  }),
                  editType: "arraydraw"
                },
                captureevents: {
                  valType: "boolean",
                  editType: "arraydraw"
                },
                editType: "calc",
                _deprecated: {
                  ref: {
                    valType: "string",
                    editType: "calc"
                  }
                }
              });
            }
          ),
          /***/
          272: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(4460), l = r(6196).draw;
              M.exports = function(d) {
                var h = d._fullLayout, i = a.filterVisible(h.annotations);
                if (i.length && d._fullData.length)
                  return a.syncOrAsync([l, f], d);
              };
              function f(c) {
                var d = c._fullLayout;
                a.filterVisible(d.annotations).forEach(function(h) {
                  var i = p.getFromId(c, h.xref), b = p.getFromId(c, h.yref), x = p.getRefType(h.xref), D = p.getRefType(h.yref);
                  h._extremes = {}, x === "range" && u(h, i), D === "range" && u(h, b);
                });
              }
              function u(c, d) {
                var h = d._id, i = h.charAt(0), b = c[i], x = c["a" + i], D = c[i + "ref"], C = c["a" + i + "ref"], w = c["_" + i + "padplus"], S = c["_" + i + "padminus"], T = {
                  x: 1,
                  y: -1
                }[i] * c[i + "shift"], k = 3 * c.arrowsize * c.arrowwidth || 0, A = k + T, R = k - T, g = 3 * c.startarrowsize * c.arrowwidth || 0, I = g + T, O = g - T, $;
                if (C === D) {
                  var Y = p.findExtremes(d, [d.r2c(b)], {
                    ppadplus: A,
                    ppadminus: R
                  }), ne = p.findExtremes(d, [d.r2c(x)], {
                    ppadplus: Math.max(w, I),
                    ppadminus: Math.max(S, O)
                  });
                  $ = {
                    min: [Y.min[0], ne.min[0]],
                    max: [Y.max[0], ne.max[0]]
                  };
                } else
                  I = x ? I + x : I, O = x ? O - x : O, $ = p.findExtremes(d, [d.r2c(b)], {
                    ppadplus: Math.max(w, A, I),
                    ppadminus: Math.max(S, R, O)
                  });
                c._extremes[h] = $;
              }
            }
          ),
          /***/
          2300: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(4040), l = r(1780).arrayEditor;
              M.exports = {
                hasClickToShow: f,
                onClick: u
              };
              function f(h, i) {
                var b = c(h, i);
                return b.on.length > 0 || b.explicitOff.length > 0;
              }
              function u(h, i) {
                var b = c(h, i), x = b.on, D = b.off.concat(b.explicitOff), C = {}, w = h._fullLayout.annotations, S, T;
                if (x.length || D.length) {
                  for (S = 0; S < x.length; S++)
                    T = l(h.layout, "annotations", w[x[S]]), T.modifyItem("visible", !0), a.extendFlat(C, T.getUpdateObj());
                  for (S = 0; S < D.length; S++)
                    T = l(h.layout, "annotations", w[D[S]]), T.modifyItem("visible", !1), a.extendFlat(C, T.getUpdateObj());
                  return p.call("update", h, {}, C);
                }
              }
              function c(h, i) {
                var b = h._fullLayout.annotations, x = [], D = [], C = [], w = (i || []).length, S, T, k, A, R, g, I, O;
                for (S = 0; S < b.length; S++)
                  if (k = b[S], A = k.clicktoshow, A) {
                    for (T = 0; T < w; T++)
                      if (R = i[T], g = R.xaxis, I = R.yaxis, g._id === k.xref && I._id === k.yref && g.d2r(R.x) === d(k._xclick, g) && I.d2r(R.y) === d(k._yclick, I)) {
                        k.visible ? A === "onout" ? O = D : O = C : O = x, O.push(S);
                        break;
                      }
                    T === w && k.visible && A === "onout" && D.push(S);
                  }
                return {
                  on: x,
                  off: D,
                  explicitOff: C
                };
              }
              function d(h, i) {
                return i.type === "log" ? i.l2r(h) : i.d2r(h);
              }
            }
          ),
          /***/
          7192: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(6308);
              M.exports = function(f, u, c, d) {
                d("opacity");
                var h = d("bgcolor"), i = d("bordercolor"), b = p.opacity(i);
                d("borderpad");
                var x = d("borderwidth"), D = d("showarrow");
                d("text", D ? " " : c._dfltTitle.annotation), d("textangle"), a.coerceFont(d, "font", c.font), d("width"), d("align");
                var C = d("height");
                if (C && d("valign"), D) {
                  var w = d("arrowside"), S, T;
                  w.indexOf("end") !== -1 && (S = d("arrowhead"), T = d("arrowsize")), w.indexOf("start") !== -1 && (d("startarrowhead", S), d("startarrowsize", T)), d("arrowcolor", b ? u.bordercolor : p.defaultLine), d("arrowwidth", (b && x || 1) * 2), d("standoff"), d("startstandoff");
                }
                var k = d("hovertext"), A = c.hoverlabel || {};
                if (k) {
                  var R = d("hoverlabel.bgcolor", A.bgcolor || (p.opacity(h) ? p.rgb(h) : p.defaultLine)), g = d("hoverlabel.bordercolor", A.bordercolor || p.contrast(R)), I = a.extendFlat({}, A.font);
                  I.color || (I.color = g), a.coerceFont(d, "hoverlabel.font", I);
                }
                d("captureevents", !!k);
              };
            }
          ),
          /***/
          9208: (
            /***/
            function(M, L, r) {
              var a = r(8248), p = r(6896);
              M.exports = function(f, u, c, d) {
                u = u || {};
                var h = c === "log" && u.type === "linear", i = c === "linear" && u.type === "log";
                if (!(h || i))
                  return;
                var b = f._fullLayout.annotations, x = u._id.charAt(0), D, C;
                function w(T) {
                  var k = D[T], A = null;
                  h ? A = p(k, u.range) : A = Math.pow(10, k), a(A) || (A = null), d(C + T, A);
                }
                for (var S = 0; S < b.length; S++)
                  D = b[S], C = "annotations[" + S + "].", D[x + "ref"] === u._id && w(x), D["a" + x + "ref"] === u._id && w("a" + x);
              };
            }
          ),
          /***/
          5216: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(4460), l = r(1272), f = r(7192), u = r(3916);
              M.exports = function(h, i) {
                l(h, i, {
                  name: "annotations",
                  handleItemDefaults: c
                });
              };
              function c(d, h, i) {
                function b(q, B) {
                  return a.coerce(d, h, u, q, B);
                }
                var x = b("visible"), D = b("clicktoshow");
                if (x || D) {
                  f(d, h, i, b);
                  for (var C = h.showarrow, w = ["x", "y"], S = [-10, -30], T = {
                    _fullLayout: i
                  }, k = 0; k < 2; k++) {
                    var A = w[k], R = p.coerceRef(d, h, T, A, "", "paper");
                    if (R !== "paper") {
                      var g = p.getFromId(T, R);
                      g._annIndices.push(h._index);
                    }
                    if (p.coercePosition(h, T, b, R, A, 0.5), C) {
                      var I = "a" + A, O = p.coerceRef(d, h, T, I, "pixel", ["pixel", "paper"]);
                      O !== "pixel" && O !== R && (O = h[I] = "pixel");
                      var $ = O === "pixel" ? S[k] : 0.4;
                      p.coercePosition(h, T, b, O, I, $);
                    }
                    b(A + "anchor"), b(A + "shift");
                  }
                  if (a.noneOrAll(d, h, ["x", "y"]), C && a.noneOrAll(d, h, ["ax", "ay"]), D) {
                    var Y = b("xclick"), ne = b("yclick");
                    h._xclick = Y === void 0 ? h.x : p.cleanPosition(Y, T, h.xref), h._yclick = ne === void 0 ? h.y : p.cleanPosition(ne, T, h.yref);
                  }
                }
              }
            }
          ),
          /***/
          6196: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(4040), l = r(7316), f = r(3400), u = f.strTranslate, c = r(4460), d = r(6308), h = r(3616), i = r(3024), b = r(2736), x = r(3972), D = r(6476), C = r(1780).arrayEditor, w = r(3652);
              M.exports = {
                draw: S,
                drawOne: T,
                drawRaw: A
              };
              function S(R) {
                var g = R._fullLayout;
                g._infolayer.selectAll(".annotation").remove();
                for (var I = 0; I < g.annotations.length; I++)
                  g.annotations[I].visible && T(R, I);
                return l.previousPromises(R);
              }
              function T(R, g) {
                var I = R._fullLayout, O = I.annotations[g] || {}, $ = c.getFromId(R, O.xref), Y = c.getFromId(R, O.yref);
                $ && $.setScale(), Y && Y.setScale(), A(R, O, g, !1, $, Y);
              }
              function k(R, g, I, O, $) {
                var Y = $[I], ne = $[I + "ref"], q = I.indexOf("y") !== -1, B = c.getRefType(ne) === "domain", X = q ? O.h : O.w;
                return R ? B ? Y + (q ? -g : g) / R._length : R.p2r(R.r2p(Y) + g) : Y + (q ? -g : g) / X;
              }
              function A(R, g, I, O, $, Y) {
                var ne = R._fullLayout, q = R._fullLayout._size, B = R._context.edits, X, U;
                O ? (X = "annotation-" + O, U = O + ".annotations") : (X = "annotation", U = "annotations");
                var te = C(R.layout, U, g), se = te.modifyBase, me = te.modifyItem, J = te.getUpdateObj;
                ne._infolayer.selectAll("." + X + '[data-index="' + I + '"]').remove();
                var W = "clip" + ne._uid + "_ann" + I;
                if (!g._input || g.visible === !1) {
                  a.selectAll("#" + W).remove();
                  return;
                }
                var ae = {
                  x: {},
                  y: {}
                }, oe = +g.textangle || 0, ve = ne._infolayer.append("g").classed(X, !0).attr("data-index", String(I)).style("opacity", g.opacity), fe = ve.append("g").classed("annotation-text-g", !0), ye = B[g.showarrow ? "annotationTail" : "annotationPosition"], Ce = g.captureevents || B.annotationText || ye;
                function Re(be) {
                  var we = {
                    index: I,
                    annotation: g._input,
                    fullAnnotation: g,
                    event: be
                  };
                  return O && (we.subplotId = O), we;
                }
                var Be = fe.append("g").style("pointer-events", Ce ? "all" : null).call(x, "pointer").on("click", function() {
                  R._dragging = !1, R.emit("plotly_clickannotation", Re(a.event));
                });
                g.hovertext && Be.on("mouseover", function() {
                  var be = g.hoverlabel, we = be.font, Ie = this.getBoundingClientRect(), Ge = R.getBoundingClientRect();
                  i.loneHover({
                    x0: Ie.left - Ge.left,
                    x1: Ie.right - Ge.left,
                    y: (Ie.top + Ie.bottom) / 2 - Ge.top,
                    text: g.hovertext,
                    color: be.bgcolor,
                    borderColor: be.bordercolor,
                    fontFamily: we.family,
                    fontSize: we.size,
                    fontColor: we.color,
                    fontWeight: we.weight,
                    fontStyle: we.style,
                    fontVariant: we.variant,
                    fontShadow: we.fontShadow,
                    fontLineposition: we.fontLineposition,
                    fontTextcase: we.fontTextcase
                  }, {
                    container: ne._hoverlayer.node(),
                    outerContainer: ne._paper.node(),
                    gd: R
                  });
                }).on("mouseout", function() {
                  i.loneUnhover(ne._hoverlayer.node());
                });
                var xe = g.borderwidth, Me = g.borderpad, De = xe + Me, Z = Be.append("rect").attr("class", "bg").style("stroke-width", xe + "px").call(d.stroke, g.bordercolor).call(d.fill, g.bgcolor), ee = g.width || g.height, ie = ne._topclips.selectAll("#" + W).data(ee ? [0] : []);
                ie.enter().append("clipPath").classed("annclip", !0).attr("id", W).append("rect"), ie.exit().remove();
                var G = g.font, H = ne._meta ? f.templateString(g.text, ne._meta) : g.text, ce = Be.append("text").classed("annotation-text", !0).text(H);
                function j(be) {
                  return be.call(h.font, G).attr({
                    "text-anchor": {
                      left: "start",
                      right: "end"
                    }[g.align] || "middle"
                  }), b.convertToTspans(be, R, he), be;
                }
                function he() {
                  var be = ce.selectAll("a");
                  if (be.size() === 1 && be.text() === ce.text()) {
                    var we = Be.insert("a", ":first-child").attr({
                      "xlink:xlink:href": be.attr("xlink:href"),
                      "xlink:xlink:show": be.attr("xlink:show")
                    }).style({
                      cursor: "pointer"
                    });
                    we.node().appendChild(Z.node());
                  }
                  var Ie = Be.select(".annotation-text-math-group"), Ge = !Ie.empty(), Ve = h.bBox((Ge ? Ie : ce).node()), Je = Ve.width, et = Ve.height, at = g.width || Je, Le = g.height || et, ze = Math.round(at + 2 * De), Oe = Math.round(Le + 2 * De);
                  function Xe(br, or) {
                    return or === "auto" && (br < 0.3333333333333333 ? or = "left" : br > 0.6666666666666666 ? or = "right" : or = "center"), {
                      center: 0,
                      middle: 0,
                      left: 0.5,
                      bottom: -0.5,
                      right: -0.5,
                      top: 0.5
                    }[or];
                  }
                  for (var it = !1, ut = ["x", "y"], wt = 0; wt < ut.length; wt++) {
                    var kt = ut[wt], Ot = g[kt + "ref"] || kt, Lt = g["a" + kt + "ref"], Mt = {
                      x: $,
                      y: Y
                    }[kt], Ut = (oe + (kt === "x" ? 0 : -90)) * Math.PI / 180, Ct = ze * Math.cos(Ut), jt = Oe * Math.sin(Ut), nr = Math.abs(Ct) + Math.abs(jt), Jt = g[kt + "anchor"], Wt = g[kt + "shift"] * (kt === "x" ? 1 : -1), qe = ae[kt], Ue, We, je, lt, Se, Pe = c.getRefType(Ot);
                    if (Mt && Pe !== "domain") {
                      var Ye = Mt.r2fraction(g[kt]);
                      (Ye < 0 || Ye > 1) && (Lt === Ot ? (Ye = Mt.r2fraction(g["a" + kt]), (Ye < 0 || Ye > 1) && (it = !0)) : it = !0), Ue = Mt._offset + Mt.r2p(g[kt]), lt = 0.5;
                    } else {
                      var Ze = Pe === "domain";
                      kt === "x" ? (je = g[kt], Ue = Ze ? Mt._offset + Mt._length * je : Ue = q.l + q.w * je) : (je = 1 - g[kt], Ue = Ze ? Mt._offset + Mt._length * je : Ue = q.t + q.h * je), lt = g.showarrow ? 0.5 : je;
                    }
                    if (g.showarrow) {
                      qe.head = Ue;
                      var rt = g["a" + kt];
                      if (Se = Ct * Xe(0.5, g.xanchor) - jt * Xe(0.5, g.yanchor), Lt === Ot) {
                        var tt = c.getRefType(Lt);
                        tt === "domain" ? (kt === "y" && (rt = 1 - rt), qe.tail = Mt._offset + Mt._length * rt) : tt === "paper" ? kt === "y" ? (rt = 1 - rt, qe.tail = q.t + q.h * rt) : qe.tail = q.l + q.w * rt : qe.tail = Mt._offset + Mt.r2p(rt), We = Se;
                      } else
                        qe.tail = Ue + rt, We = Se + rt;
                      qe.text = qe.tail + Se;
                      var Ft = ne[kt === "x" ? "width" : "height"];
                      if (Ot === "paper" && (qe.head = f.constrain(qe.head, 1, Ft - 1)), Lt === "pixel") {
                        var Dt = -Math.max(qe.tail - 3, qe.text), dt = Math.min(qe.tail + 3, qe.text) - Ft;
                        Dt > 0 ? (qe.tail += Dt, qe.text += Dt) : dt > 0 && (qe.tail -= dt, qe.text -= dt);
                      }
                      qe.tail += Wt, qe.head += Wt;
                    } else
                      Se = nr * Xe(lt, Jt), We = Se, qe.text = Ue + Se;
                    qe.text += Wt, Se += Wt, We += Wt, g["_" + kt + "padplus"] = nr / 2 + We, g["_" + kt + "padminus"] = nr / 2 - We, g["_" + kt + "size"] = nr, g["_" + kt + "shift"] = Se;
                  }
                  if (it) {
                    Be.remove();
                    return;
                  }
                  var st = 0, Nt = 0;
                  if (g.align !== "left" && (st = (at - Je) * (g.align === "center" ? 0.5 : 1)), g.valign !== "top" && (Nt = (Le - et) * (g.valign === "middle" ? 0.5 : 1)), Ge)
                    Ie.select("svg").attr({
                      x: De + st - 1,
                      y: De + Nt
                    }).call(h.setClipUrl, ee ? W : null, R);
                  else {
                    var ar = De + Nt - Ve.top, ur = De + st - Ve.left;
                    ce.call(b.positionText, ur, ar).call(h.setClipUrl, ee ? W : null, R);
                  }
                  ie.select("rect").call(h.setRect, De, De, at, Le), Z.call(h.setRect, xe / 2, xe / 2, ze - xe, Oe - xe), Be.call(h.setTranslate, Math.round(ae.x.text - ze / 2), Math.round(ae.y.text - Oe / 2)), fe.attr({
                    transform: "rotate(" + oe + "," + ae.x.text + "," + ae.y.text + ")"
                  });
                  var Or = function(br, or) {
                    ve.selectAll(".annotation-arrow-g").remove();
                    var Rr = ae.x.head, lr = ae.y.head, Tr = ae.x.tail + br, Gr = ae.y.tail + or, Dr = ae.x.text + br, gr = ae.y.text + or, Er = f.rotationXYMatrix(oe, Dr, gr), Cr = f.apply2DTransform(Er), zr = f.apply2DTransform2(Er), en = +Z.attr("width"), on = +Z.attr("height"), Ir = Dr - 0.5 * en, Ae = Ir + en, ue = gr - 0.5 * on, ft = ue + on, nt = [[Ir, ue, Ir, ft], [Ir, ft, Ae, ft], [Ae, ft, Ae, ue], [Ae, ue, Ir, ue]].map(zr);
                    if (!nt.reduce(function(Gt, $t) {
                      return Gt ^ !!f.segmentsIntersect(Rr, lr, Rr + 1e6, lr + 1e6, $t[0], $t[1], $t[2], $t[3]);
                    }, !1)) {
                      nt.forEach(function(Gt) {
                        var $t = f.segmentsIntersect(Tr, Gr, Rr, lr, Gt[0], Gt[1], Gt[2], Gt[3]);
                        $t && (Tr = $t.x, Gr = $t.y);
                      });
                      var mt = g.arrowwidth, Tt = g.arrowcolor, bt = g.arrowside, vt = ve.append("g").style({
                        opacity: d.opacity(Tt)
                      }).classed("annotation-arrow-g", !0), ht = vt.append("path").attr("d", "M" + Tr + "," + Gr + "L" + Rr + "," + lr).style("stroke-width", mt + "px").call(d.stroke, d.rgb(Tt));
                      if (w(ht, bt, g), B.annotationPosition && ht.node().parentNode && !O) {
                        var St = Rr, It = lr;
                        if (g.standoff) {
                          var Ht = Math.sqrt(Math.pow(Rr - Tr, 2) + Math.pow(lr - Gr, 2));
                          St += g.standoff * (Tr - Rr) / Ht, It += g.standoff * (Gr - lr) / Ht;
                        }
                        var Et = vt.append("path").classed("annotation-arrow", !0).classed("anndrag", !0).classed("cursor-move", !0).attr({
                          d: "M3,3H-3V-3H3ZM0,0L" + (Tr - St) + "," + (Gr - It),
                          transform: u(St, It)
                        }).style("stroke-width", mt + 6 + "px").call(d.stroke, "rgba(0,0,0,0)").call(d.fill, "rgba(0,0,0,0)"), Zt, Yt;
                        D.init({
                          element: Et.node(),
                          gd: R,
                          prepFn: function() {
                            var Gt = h.getTranslate(Be);
                            Zt = Gt.x, Yt = Gt.y, $ && $.autorange && se($._name + ".autorange", !0), Y && Y.autorange && se(Y._name + ".autorange", !0);
                          },
                          moveFn: function(Gt, $t) {
                            var ir = Cr(Zt, Yt), wr = ir[0] + Gt, sr = ir[1] + $t;
                            Be.call(h.setTranslate, wr, sr), me("x", k($, Gt, "x", q, g)), me("y", k(Y, $t, "y", q, g)), g.axref === g.xref && me("ax", k($, Gt, "ax", q, g)), g.ayref === g.yref && me("ay", k(Y, $t, "ay", q, g)), vt.attr("transform", u(Gt, $t)), fe.attr({
                              transform: "rotate(" + oe + "," + wr + "," + sr + ")"
                            });
                          },
                          doneFn: function() {
                            p.call("_guiRelayout", R, J());
                            var Gt = document.querySelector(".js-notes-box-panel");
                            Gt && Gt.redraw(Gt.selectedObj);
                          }
                        });
                      }
                    }
                  };
                  if (g.showarrow && Or(0, 0), ye) {
                    var Fr;
                    D.init({
                      element: Be.node(),
                      gd: R,
                      prepFn: function() {
                        Fr = fe.attr("transform");
                      },
                      moveFn: function(br, or) {
                        var Rr = "pointer";
                        if (g.showarrow)
                          g.axref === g.xref ? me("ax", k($, br, "ax", q, g)) : me("ax", g.ax + br), g.ayref === g.yref ? me("ay", k(Y, or, "ay", q.w, g)) : me("ay", g.ay + or), Or(br, or);
                        else {
                          if (O)
                            return;
                          var lr, Tr;
                          if ($)
                            lr = k($, br, "x", q, g);
                          else {
                            var Gr = g._xsize / q.w, Dr = g.x + (g._xshift - g.xshift) / q.w - Gr / 2;
                            lr = D.align(Dr + br / q.w, Gr, 0, 1, g.xanchor);
                          }
                          if (Y)
                            Tr = k(Y, or, "y", q, g);
                          else {
                            var gr = g._ysize / q.h, Er = g.y - (g._yshift + g.yshift) / q.h - gr / 2;
                            Tr = D.align(Er - or / q.h, gr, 0, 1, g.yanchor);
                          }
                          me("x", lr), me("y", Tr), (!$ || !Y) && (Rr = D.getCursor($ ? 0.5 : lr, Y ? 0.5 : Tr, g.xanchor, g.yanchor));
                        }
                        fe.attr({
                          transform: u(br, or) + Fr
                        }), x(Be, Rr);
                      },
                      clickFn: function(br, or) {
                        g.captureevents && R.emit("plotly_clickannotation", Re(or));
                      },
                      doneFn: function() {
                        x(Be), p.call("_guiRelayout", R, J());
                        var br = document.querySelector(".js-notes-box-panel");
                        br && br.redraw(br.selectedObj);
                      }
                    });
                  }
                }
                B.annotationText ? ce.call(b.makeEditable, {
                  delegate: Be,
                  gd: R
                }).call(j).on("edit", function(be) {
                  g.text = be, this.call(j), me("text", be), $ && $.autorange && se($._name + ".autorange", !0), Y && Y.autorange && se(Y._name + ".autorange", !0), p.call("_guiRelayout", R, J());
                }) : ce.call(j);
              }
            }
          ),
          /***/
          3652: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(6308), l = r(2196), f = r(3400), u = f.strScale, c = f.strRotate, d = f.strTranslate;
              M.exports = function(i, b, x) {
                var D = i.node(), C = l[x.arrowhead || 0], w = l[x.startarrowhead || 0], S = (x.arrowwidth || 1) * (x.arrowsize || 1), T = (x.arrowwidth || 1) * (x.startarrowsize || 1), k = b.indexOf("start") >= 0, A = b.indexOf("end") >= 0, R = C.backoff * S + x.standoff, g = w.backoff * T + x.startstandoff, I, O, $, Y;
                if (D.nodeName === "line") {
                  I = {
                    x: +i.attr("x1"),
                    y: +i.attr("y1")
                  }, O = {
                    x: +i.attr("x2"),
                    y: +i.attr("y2")
                  };
                  var ne = I.x - O.x, q = I.y - O.y;
                  if ($ = Math.atan2(q, ne), Y = $ + Math.PI, R && g && R + g > Math.sqrt(ne * ne + q * q)) {
                    fe();
                    return;
                  }
                  if (R) {
                    if (R * R > ne * ne + q * q) {
                      fe();
                      return;
                    }
                    var B = R * Math.cos($), X = R * Math.sin($);
                    O.x += B, O.y += X, i.attr({
                      x2: O.x,
                      y2: O.y
                    });
                  }
                  if (g) {
                    if (g * g > ne * ne + q * q) {
                      fe();
                      return;
                    }
                    var U = g * Math.cos($), te = g * Math.sin($);
                    I.x -= U, I.y -= te, i.attr({
                      x1: I.x,
                      y1: I.y
                    });
                  }
                } else if (D.nodeName === "path") {
                  var se = D.getTotalLength(), me = "";
                  if (se < R + g) {
                    fe();
                    return;
                  }
                  var J = D.getPointAtLength(0), W = D.getPointAtLength(0.1);
                  $ = Math.atan2(J.y - W.y, J.x - W.x), I = D.getPointAtLength(Math.min(g, se)), me = "0px," + g + "px,";
                  var ae = D.getPointAtLength(se), oe = D.getPointAtLength(se - 0.1);
                  Y = Math.atan2(ae.y - oe.y, ae.x - oe.x), O = D.getPointAtLength(Math.max(0, se - R));
                  var ve = me ? g + R : R;
                  me += se - ve + "px," + se + "px", i.style("stroke-dasharray", me);
                }
                function fe() {
                  i.style("stroke-dasharray", "0px,100px");
                }
                function ye(Ce, Re, Be, xe) {
                  Ce.path && (Ce.noRotate && (Be = 0), a.select(D.parentNode).append("path").attr({
                    class: i.attr("class"),
                    d: Ce.path,
                    transform: d(Re.x, Re.y) + c(Be * 180 / Math.PI) + u(xe)
                  }).style({
                    fill: p.rgb(x.arrowcolor),
                    "stroke-width": 0
                  }));
                }
                k && ye(w, I, $, T), A && ye(C, O, Y, S);
              };
            }
          ),
          /***/
          9180: (
            /***/
            function(M, L, r) {
              var a = r(6196), p = r(2300);
              M.exports = {
                moduleType: "component",
                name: "annotations",
                layoutAttributes: r(3916),
                supplyLayoutDefaults: r(5216),
                includeBasePlot: r(6632)("annotations"),
                calcAutorange: r(272),
                draw: a.draw,
                drawOne: a.drawOne,
                drawRaw: a.drawRaw,
                hasClickToShow: p.hasClickToShow,
                onClick: p.onClick,
                convertCoords: r(9208)
              };
            }
          ),
          /***/
          5899: (
            /***/
            function(M, L, r) {
              var a = r(3916), p = r(7824).overrideAll, l = r(1780).templatedArray;
              M.exports = p(l("annotation", {
                visible: a.visible,
                x: {
                  valType: "any"
                },
                y: {
                  valType: "any"
                },
                z: {
                  valType: "any"
                },
                ax: {
                  valType: "number"
                },
                ay: {
                  valType: "number"
                },
                xanchor: a.xanchor,
                xshift: a.xshift,
                yanchor: a.yanchor,
                yshift: a.yshift,
                text: a.text,
                textangle: a.textangle,
                font: a.font,
                width: a.width,
                height: a.height,
                opacity: a.opacity,
                align: a.align,
                valign: a.valign,
                bgcolor: a.bgcolor,
                bordercolor: a.bordercolor,
                borderpad: a.borderpad,
                borderwidth: a.borderwidth,
                showarrow: a.showarrow,
                arrowcolor: a.arrowcolor,
                arrowhead: a.arrowhead,
                startarrowhead: a.startarrowhead,
                arrowside: a.arrowside,
                arrowsize: a.arrowsize,
                startarrowsize: a.startarrowsize,
                arrowwidth: a.arrowwidth,
                standoff: a.standoff,
                startstandoff: a.startstandoff,
                hovertext: a.hovertext,
                hoverlabel: a.hoverlabel,
                captureevents: a.captureevents
                // maybes later?
                // clicktoshow: annAttrs.clicktoshow,
                // xclick: annAttrs.xclick,
                // yclick: annAttrs.yclick,
                // not needed!
                // axref: 'pixel'
                // ayref: 'pixel'
                // xref: 'x'
                // yref: 'y
                // zref: 'z'
              }), "calc", "from-root");
            }
          ),
          /***/
          76: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(4460);
              M.exports = function(u) {
                for (var c = u.fullSceneLayout, d = c.annotations, h = 0; h < d.length; h++)
                  l(d[h], u);
                u.fullLayout._infolayer.selectAll(".annotation-" + u.id).remove();
              };
              function l(f, u) {
                var c = u.fullSceneLayout, d = c.domain, h = u.fullLayout._size, i = {
                  // this gets fill in on render
                  pdata: null,
                  // to get setConvert to not execute cleanly
                  type: "linear",
                  // don't try to update them on `editable: true`
                  autorange: !1,
                  // set infinite range so that annotation draw routine
                  // does not try to remove 'outside-range' annotations,
                  // this case is handled in the render loop
                  range: [-1 / 0, 1 / 0]
                };
                f._xa = {}, a.extendFlat(f._xa, i), p.setConvert(f._xa), f._xa._offset = h.l + d.x[0] * h.w, f._xa.l2p = function() {
                  return 0.5 * (1 + f._pdata[0] / f._pdata[3]) * h.w * (d.x[1] - d.x[0]);
                }, f._ya = {}, a.extendFlat(f._ya, i), p.setConvert(f._ya), f._ya._offset = h.t + (1 - d.y[1]) * h.h, f._ya.l2p = function() {
                  return 0.5 * (1 - f._pdata[1] / f._pdata[3]) * h.h * (d.y[1] - d.y[0]);
                };
              }
            }
          ),
          /***/
          2808: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(4460), l = r(1272), f = r(7192), u = r(5899);
              M.exports = function(h, i, b) {
                l(h, i, {
                  name: "annotations",
                  handleItemDefaults: c,
                  fullLayout: b.fullLayout
                });
              };
              function c(d, h, i, b) {
                function x(w, S) {
                  return a.coerce(d, h, u, w, S);
                }
                function D(w) {
                  var S = w + "axis", T = {
                    _fullLayout: {}
                  };
                  return T._fullLayout[S] = i[S], p.coercePosition(h, T, x, w, w, 0.5);
                }
                var C = x("visible");
                C && (f(d, h, b.fullLayout, x), D("x"), D("y"), D("z"), a.noneOrAll(d, h, ["x", "y", "z"]), h.xref = "x", h.yref = "y", h.zref = "z", x("xanchor"), x("yanchor"), x("xshift"), x("yshift"), h.showarrow && (h.axref = "pixel", h.ayref = "pixel", x("ax", -10), x("ay", -30), a.noneOrAll(d, h, ["ax", "ay"])));
              }
            }
          ),
          /***/
          1836: (
            /***/
            function(M, L, r) {
              var a = r(6196).drawRaw, p = r(4424), l = ["x", "y", "z"];
              M.exports = function(u) {
                for (var c = u.fullSceneLayout, d = u.dataScale, h = c.annotations, i = 0; i < h.length; i++) {
                  for (var b = h[i], x = !1, D = 0; D < 3; D++) {
                    var C = l[D], w = b[C], S = c[C + "axis"], T = S.r2fraction(w);
                    if (T < 0 || T > 1) {
                      x = !0;
                      break;
                    }
                  }
                  x ? u.fullLayout._infolayer.select(".annotation-" + u.id + '[data-index="' + i + '"]').remove() : (b._pdata = p(u.glplot.cameraParams, [c.xaxis.r2l(b.x) * d[0], c.yaxis.r2l(b.y) * d[1], c.zaxis.r2l(b.z) * d[2]]), a(u.graphDiv, b, i, u.id, b._xa, b._ya));
                }
              };
            }
          ),
          /***/
          6864: (
            /***/
            function(M, L, r) {
              var a = r(4040), p = r(3400);
              M.exports = {
                moduleType: "component",
                name: "annotations3d",
                schema: {
                  subplots: {
                    scene: {
                      annotations: r(5899)
                    }
                  }
                },
                layoutAttributes: r(5899),
                handleDefaults: r(2808),
                includeBasePlot: l,
                convert: r(76),
                draw: r(1836)
              };
              function l(f, u) {
                var c = a.subplotsRegistry.gl3d;
                if (c)
                  for (var d = c.attrRegex, h = Object.keys(f), i = 0; i < h.length; i++) {
                    var b = h[i];
                    d.test(b) && (f[b].annotations || []).length && (p.pushUnique(u._basePlotModules, c), p.pushUnique(u._subplots.gl3d, b));
                  }
              }
            }
          ),
          /***/
          4976: (
            /***/
            function(M, L, r) {
              M.exports = r(8700), r(5168), r(7020), r(7411), r(5668), r(2787), r(2084), r(6368), r(4747), r(5616), r(632), r(3040), r(1104), r(9075), r(4592), r(5348);
            }
          ),
          /***/
          7776: (
            /***/
            function(M, L, r) {
              var a = r(4976), p = r(3400), l = r(9032), f = l.EPOCHJD, u = l.ONEDAY, c = {
                valType: "enumerated",
                values: p.sortObjectKeys(a.calendars),
                editType: "calc",
                dflt: "gregorian"
              }, d = function($, Y, ne, q) {
                var B = {};
                return B[ne] = c, p.coerce($, Y, B, ne, q);
              }, h = function($, Y, ne, q) {
                for (var B = 0; B < ne.length; B++)
                  d($, Y, ne[B] + "calendar", q.calendar);
              }, i = {
                chinese: "2000-01-01",
                coptic: "2000-01-01",
                discworld: "2000-01-01",
                ethiopian: "2000-01-01",
                hebrew: "5000-01-01",
                islamic: "1000-01-01",
                julian: "2000-01-01",
                mayan: "5000-01-01",
                nanakshahi: "1000-01-01",
                nepali: "2000-01-01",
                persian: "1000-01-01",
                jalali: "1000-01-01",
                taiwan: "1000-01-01",
                thai: "2000-01-01",
                ummalqura: "1400-01-01"
              }, b = {
                chinese: "2000-01-02",
                coptic: "2000-01-03",
                discworld: "2000-01-03",
                ethiopian: "2000-01-05",
                hebrew: "5000-01-01",
                islamic: "1000-01-02",
                julian: "2000-01-03",
                mayan: "5000-01-01",
                nanakshahi: "1000-01-05",
                nepali: "2000-01-05",
                persian: "1000-01-01",
                jalali: "1000-01-01",
                taiwan: "1000-01-04",
                thai: "2000-01-04",
                ummalqura: "1400-01-06"
              }, x = {
                chinese: ["2000-01-01", "2001-01-01"],
                coptic: ["1700-01-01", "1701-01-01"],
                discworld: ["1800-01-01", "1801-01-01"],
                ethiopian: ["2000-01-01", "2001-01-01"],
                hebrew: ["5700-01-01", "5701-01-01"],
                islamic: ["1400-01-01", "1401-01-01"],
                julian: ["2000-01-01", "2001-01-01"],
                mayan: ["5200-01-01", "5201-01-01"],
                nanakshahi: ["0500-01-01", "0501-01-01"],
                nepali: ["2000-01-01", "2001-01-01"],
                persian: ["1400-01-01", "1401-01-01"],
                jalali: ["1400-01-01", "1401-01-01"],
                taiwan: ["0100-01-01", "0101-01-01"],
                thai: ["2500-01-01", "2501-01-01"],
                ummalqura: ["1400-01-01", "1401-01-01"]
              }, D = "##", C = {
                d: {
                  0: "dd",
                  "-": "d"
                },
                // 2-digit or unpadded day of month
                e: {
                  0: "d",
                  "-": "d"
                },
                // alternate, always unpadded day of month
                a: {
                  0: "D",
                  "-": "D"
                },
                // short weekday name
                A: {
                  0: "DD",
                  "-": "DD"
                },
                // full weekday name
                j: {
                  0: "oo",
                  "-": "o"
                },
                // 3-digit or unpadded day of the year
                W: {
                  0: "ww",
                  "-": "w"
                },
                // 2-digit or unpadded week of the year (Monday first)
                m: {
                  0: "mm",
                  "-": "m"
                },
                // 2-digit or unpadded month number
                b: {
                  0: "M",
                  "-": "M"
                },
                // short month name
                B: {
                  0: "MM",
                  "-": "MM"
                },
                // full month name
                y: {
                  0: "yy",
                  "-": "yy"
                },
                // 2-digit year (map unpadded to zero-padded)
                Y: {
                  0: "yyyy",
                  "-": "yyyy"
                },
                // 4-digit year (map unpadded to zero-padded)
                U: D,
                // Sunday-first week of the year
                w: D,
                // day of the week [0(sunday),6]
                // combined format, we replace the date part with the world-calendar version
                // and the %X stays there for d3 to handle with time parts
                c: {
                  0: "D M d %X yyyy",
                  "-": "D M d %X yyyy"
                },
                x: {
                  0: "mm/dd/yyyy",
                  "-": "mm/dd/yyyy"
                }
              };
              function w($, Y, ne) {
                for (var q = Math.floor((Y + 0.05) / u) + f, B = T(ne).fromJD(q), X = 0, U, te, se, me, J; (X = $.indexOf("%", X)) !== -1; )
                  U = $.charAt(X + 1), U === "0" || U === "-" || U === "_" ? (se = 3, te = $.charAt(X + 2), U === "_" && (U = "-")) : (te = U, U = "0", se = 2), me = C[te], me ? (me === D ? J = D : J = B.formatDate(me[U]), $ = $.substr(0, X) + J + $.substr(X + se), X += J.length) : X += se;
                return $;
              }
              var S = {};
              function T($) {
                var Y = S[$];
                return Y || (Y = S[$] = a.instance($), Y);
              }
              function k($) {
                return p.extendFlat({}, c, {
                  description: $
                });
              }
              function A($) {
                return "Sets the calendar system to use with `" + $ + "` date data.";
              }
              var R = {
                xcalendar: k(A("x"))
              }, g = p.extendFlat({}, R, {
                ycalendar: k(A("y"))
              }), I = p.extendFlat({}, g, {
                zcalendar: k(A("z"))
              }), O = k(["Sets the calendar system to use for `range` and `tick0`", "if this is a date axis. This does not set the calendar for", "interpreting data on this axis, that's specified in the trace", "or via the global `layout.calendar`"].join(" "));
              M.exports = {
                moduleType: "component",
                name: "calendars",
                schema: {
                  traces: {
                    scatter: g,
                    bar: g,
                    box: g,
                    heatmap: g,
                    contour: g,
                    histogram: g,
                    histogram2d: g,
                    histogram2dcontour: g,
                    scatter3d: I,
                    surface: I,
                    mesh3d: I,
                    scattergl: g,
                    ohlc: R,
                    candlestick: R
                  },
                  layout: {
                    calendar: k(["Sets the default calendar system to use for interpreting and", "displaying dates throughout the plot."].join(" "))
                  },
                  subplots: {
                    xaxis: {
                      calendar: O
                    },
                    yaxis: {
                      calendar: O
                    },
                    scene: {
                      xaxis: {
                        calendar: O
                      },
                      // TODO: it's actually redundant to include yaxis and zaxis here
                      // because in the scene attributes these are the same object so merging
                      // into one merges into them all. However, I left them in for parity with
                      // cartesian, where yaxis is unused until we Plotschema.get() when we
                      // use its presence or absence to determine whether to delete attributes
                      // from yaxis if they only apply to x (rangeselector/rangeslider)
                      yaxis: {
                        calendar: O
                      },
                      zaxis: {
                        calendar: O
                      }
                    },
                    polar: {
                      radialaxis: {
                        calendar: O
                      }
                    }
                  },
                  transforms: {
                    filter: {
                      valuecalendar: k(["WARNING: All transforms are deprecated and may be removed from the API in next major version.", "Sets the calendar system to use for `value`, if it is a date."].join(" ")),
                      targetcalendar: k(["WARNING: All transforms are deprecated and may be removed from the API in next major version.", "Sets the calendar system to use for `target`, if it is an", "array of dates. If `target` is a string (eg *x*) we use the", "corresponding trace attribute (eg `xcalendar`) if it exists,", "even if `targetcalendar` is provided."].join(" "))
                    }
                  }
                },
                layoutAttributes: c,
                handleDefaults: d,
                handleTraceDefaults: h,
                CANONICAL_SUNDAY: b,
                CANONICAL_TICK: i,
                DFLTRANGE: x,
                getCal: T,
                worldCalFmt: w
              };
            }
          ),
          /***/
          2548: (
            /***/
            function(M, L) {
              L.defaults = [
                "#1f77b4",
                // muted blue
                "#ff7f0e",
                // safety orange
                "#2ca02c",
                // cooked asparagus green
                "#d62728",
                // brick red
                "#9467bd",
                // muted purple
                "#8c564b",
                // chestnut brown
                "#e377c2",
                // raspberry yogurt pink
                "#7f7f7f",
                // middle gray
                "#bcbd22",
                // curry yellow-green
                "#17becf"
                // blue-teal
              ], L.defaultLine = "#444", L.lightLine = "#eee", L.background = "#fff", L.borderLine = "#BEC8D9", L.lightFraction = 90.9090909090909;
            }
          ),
          /***/
          6308: (
            /***/
            function(M, L, r) {
              var a = r(9760), p = r(8248), l = r(8116).isTypedArray, f = M.exports = {}, u = r(2548);
              f.defaults = u.defaults;
              var c = f.defaultLine = u.defaultLine;
              f.lightLine = u.lightLine;
              var d = f.background = u.background;
              f.tinyRGB = function(i) {
                var b = i.toRgb();
                return "rgb(" + Math.round(b.r) + ", " + Math.round(b.g) + ", " + Math.round(b.b) + ")";
              }, f.rgb = function(i) {
                return f.tinyRGB(a(i));
              }, f.opacity = function(i) {
                return i ? a(i).getAlpha() : 0;
              }, f.addOpacity = function(i, b) {
                var x = a(i).toRgb();
                return "rgba(" + Math.round(x.r) + ", " + Math.round(x.g) + ", " + Math.round(x.b) + ", " + b + ")";
              }, f.combine = function(i, b) {
                var x = a(i).toRgb();
                if (x.a === 1)
                  return a(i).toRgbString();
                var D = a(b || d).toRgb(), C = D.a === 1 ? D : {
                  r: 255 * (1 - D.a) + D.r * D.a,
                  g: 255 * (1 - D.a) + D.g * D.a,
                  b: 255 * (1 - D.a) + D.b * D.a
                }, w = {
                  r: C.r * (1 - x.a) + x.r * x.a,
                  g: C.g * (1 - x.a) + x.g * x.a,
                  b: C.b * (1 - x.a) + x.b * x.a
                };
                return a(w).toRgbString();
              }, f.interpolate = function(i, b, x) {
                var D = a(i).toRgb(), C = a(b).toRgb(), w = {
                  r: x * D.r + (1 - x) * C.r,
                  g: x * D.g + (1 - x) * C.g,
                  b: x * D.b + (1 - x) * C.b
                };
                return a(w).toRgbString();
              }, f.contrast = function(i, b, x) {
                var D = a(i);
                D.getAlpha() !== 1 && (D = a(f.combine(i, d)));
                var C = D.isDark() ? b ? D.lighten(b) : d : x ? D.darken(x) : c;
                return C.toString();
              }, f.stroke = function(i, b) {
                var x = a(b);
                i.style({
                  stroke: f.tinyRGB(x),
                  "stroke-opacity": x.getAlpha()
                });
              }, f.fill = function(i, b) {
                var x = a(b);
                i.style({
                  fill: f.tinyRGB(x),
                  "fill-opacity": x.getAlpha()
                });
              }, f.clean = function(i) {
                if (!(!i || typeof i != "object")) {
                  var b = Object.keys(i), x, D, C, w;
                  for (x = 0; x < b.length; x++)
                    if (C = b[x], w = i[C], C.substr(C.length - 5) === "color")
                      if (Array.isArray(w))
                        for (D = 0; D < w.length; D++)
                          w[D] = h(w[D]);
                      else
                        i[C] = h(w);
                    else if (C.substr(C.length - 10) === "colorscale" && Array.isArray(w))
                      for (D = 0; D < w.length; D++)
                        Array.isArray(w[D]) && (w[D][1] = h(w[D][1]));
                    else if (Array.isArray(w)) {
                      var S = w[0];
                      if (!Array.isArray(S) && S && typeof S == "object")
                        for (D = 0; D < w.length; D++)
                          f.clean(w[D]);
                    } else
                      w && typeof w == "object" && !l(w) && f.clean(w);
                }
              };
              function h(i) {
                if (p(i) || typeof i != "string")
                  return i;
                var b = i.trim();
                if (b.substr(0, 3) !== "rgb")
                  return i;
                var x = b.match(/^rgba?\s*\(([^()]*)\)$/);
                if (!x)
                  return i;
                var D = x[1].trim().split(/\s*[\s,]\s*/), C = b.charAt(3) === "a" && D.length === 4;
                if (!C && D.length !== 3)
                  return i;
                for (var w = 0; w < D.length; w++) {
                  if (!D[w].length || (D[w] = Number(D[w]), !(D[w] >= 0)))
                    return i;
                  if (w === 3)
                    D[w] > 1 && (D[w] = 1);
                  else if (D[w] >= 1)
                    return i;
                }
                var S = Math.round(D[0] * 255) + ", " + Math.round(D[1] * 255) + ", " + Math.round(D[2] * 255);
                return C ? "rgba(" + S + ", " + D[3] + ")" : "rgb(" + S + ")";
              }
            }
          ),
          /***/
          616: (
            /***/
            function(M, L, r) {
              var a = r(4724), p = r(5376), l = r(2880).extendFlat, f = r(7824).overrideAll;
              M.exports = f({
                orientation: {
                  valType: "enumerated",
                  values: ["h", "v"],
                  dflt: "v"
                },
                thicknessmode: {
                  valType: "enumerated",
                  values: ["fraction", "pixels"],
                  dflt: "pixels"
                },
                thickness: {
                  valType: "number",
                  min: 0,
                  dflt: 30
                },
                lenmode: {
                  valType: "enumerated",
                  values: ["fraction", "pixels"],
                  dflt: "fraction"
                },
                len: {
                  valType: "number",
                  min: 0,
                  dflt: 1
                },
                x: {
                  valType: "number"
                },
                xref: {
                  valType: "enumerated",
                  dflt: "paper",
                  values: ["container", "paper"],
                  editType: "layoutstyle"
                },
                xanchor: {
                  valType: "enumerated",
                  values: ["left", "center", "right"]
                },
                xpad: {
                  valType: "number",
                  min: 0,
                  dflt: 10
                },
                y: {
                  valType: "number"
                },
                yref: {
                  valType: "enumerated",
                  dflt: "paper",
                  values: ["container", "paper"],
                  editType: "layoutstyle"
                },
                yanchor: {
                  valType: "enumerated",
                  values: ["top", "middle", "bottom"]
                },
                ypad: {
                  valType: "number",
                  min: 0,
                  dflt: 10
                },
                // a possible line around the bar itself
                outlinecolor: a.linecolor,
                outlinewidth: a.linewidth,
                // Should outlinewidth have {dflt: 0} ?
                // another possible line outside the padding and tick labels
                bordercolor: a.linecolor,
                borderwidth: {
                  valType: "number",
                  min: 0,
                  dflt: 0
                },
                bgcolor: {
                  valType: "color",
                  dflt: "rgba(0,0,0,0)"
                },
                // tick and title properties named and function exactly as in axes
                tickmode: a.minor.tickmode,
                nticks: a.nticks,
                tick0: a.tick0,
                dtick: a.dtick,
                tickvals: a.tickvals,
                ticktext: a.ticktext,
                ticks: l({}, a.ticks, {
                  dflt: ""
                }),
                ticklabeloverflow: l({}, a.ticklabeloverflow, {}),
                // ticklabelposition: not used directly, as values depend on orientation
                // left/right options are for x axes, and top/bottom options are for y axes
                ticklabelposition: {
                  valType: "enumerated",
                  values: ["outside", "inside", "outside top", "inside top", "outside left", "inside left", "outside right", "inside right", "outside bottom", "inside bottom"],
                  dflt: "outside"
                },
                ticklen: a.ticklen,
                tickwidth: a.tickwidth,
                tickcolor: a.tickcolor,
                ticklabelstep: a.ticklabelstep,
                showticklabels: a.showticklabels,
                labelalias: a.labelalias,
                tickfont: p({}),
                tickangle: a.tickangle,
                tickformat: a.tickformat,
                tickformatstops: a.tickformatstops,
                tickprefix: a.tickprefix,
                showtickprefix: a.showtickprefix,
                ticksuffix: a.ticksuffix,
                showticksuffix: a.showticksuffix,
                separatethousands: a.separatethousands,
                exponentformat: a.exponentformat,
                minexponent: a.minexponent,
                showexponent: a.showexponent,
                title: {
                  text: {
                    valType: "string"
                  },
                  font: p({}),
                  side: {
                    valType: "enumerated",
                    values: ["right", "top", "bottom"]
                  }
                },
                _deprecated: {
                  title: {
                    valType: "string"
                  },
                  titlefont: p({}),
                  titleside: {
                    valType: "enumerated",
                    values: ["right", "top", "bottom"],
                    dflt: "top"
                  }
                }
              }, "colorbars", "from-root");
            }
          ),
          /***/
          3964: (
            /***/
            function(M) {
              M.exports = {
                cn: {
                  colorbar: "colorbar",
                  cbbg: "cbbg",
                  cbfill: "cbfill",
                  cbfills: "cbfills",
                  cbline: "cbline",
                  cblines: "cblines",
                  cbaxis: "cbaxis",
                  cbtitleunshift: "cbtitleunshift",
                  cbtitle: "cbtitle",
                  cboutline: "cboutline",
                  crisp: "crisp",
                  jsPlaceholder: "js-placeholder"
                }
              };
            }
          ),
          /***/
          4013: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(1780), l = r(6332), f = r(5404), u = r(5936), c = r(2568), d = r(616);
              M.exports = function(i, b, x) {
                var D = p.newContainer(b, "colorbar"), C = i.colorbar || {};
                function w(ae, oe) {
                  return a.coerce(C, D, d, ae, oe);
                }
                var S = x.margin || {
                  t: 0,
                  b: 0,
                  l: 0,
                  r: 0
                }, T = x.width - S.l - S.r, k = x.height - S.t - S.b, A = w("orientation"), R = A === "v", g = w("thicknessmode");
                w("thickness", g === "fraction" ? 30 / (R ? T : k) : 30);
                var I = w("lenmode");
                w("len", I === "fraction" ? 1 : R ? k : T);
                var O = w("yref"), $ = w("xref"), Y = O === "paper", ne = $ === "paper", q, B, X, U = "left";
                R ? (X = "middle", U = ne ? "left" : "right", q = ne ? 1.02 : 1, B = 0.5) : (X = Y ? "bottom" : "top", U = "center", q = 0.5, B = Y ? 1.02 : 1), a.coerce(C, D, {
                  x: {
                    valType: "number",
                    min: ne ? -2 : 0,
                    max: ne ? 3 : 1,
                    dflt: q
                  }
                }, "x"), a.coerce(C, D, {
                  y: {
                    valType: "number",
                    min: Y ? -2 : 0,
                    max: Y ? 3 : 1,
                    dflt: B
                  }
                }, "y"), w("xanchor", U), w("xpad"), w("yanchor", X), w("ypad"), a.noneOrAll(C, D, ["x", "y"]), w("outlinecolor"), w("outlinewidth"), w("bordercolor"), w("borderwidth"), w("bgcolor");
                var te = a.coerce(C, D, {
                  ticklabelposition: {
                    valType: "enumerated",
                    dflt: "outside",
                    values: R ? ["outside", "inside", "outside top", "inside top", "outside bottom", "inside bottom"] : ["outside", "inside", "outside left", "inside left", "outside right", "inside right"]
                  }
                }, "ticklabelposition");
                w("ticklabeloverflow", te.indexOf("inside") !== -1 ? "hide past domain" : "hide past div"), l(C, D, w, "linear");
                var se = x.font, me = {
                  noAutotickangles: !0,
                  outerTicks: !1,
                  font: se
                };
                te.indexOf("inside") !== -1 && (me.bgColor = "black"), c(C, D, w, "linear", me), u(C, D, w, "linear", me), f(C, D, w, "linear", me), w("title.text", x._dfltTitle.colorbar);
                var J = D.showticklabels ? D.tickfont : se, W = a.extendFlat({}, se, {
                  family: J.family,
                  size: a.bigFont(J.size)
                });
                a.coerceFont(w, "title.font", W), w("title.side", R ? "top" : "right");
              };
            }
          ),
          /***/
          7848: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(9760), l = r(7316), f = r(4040), u = r(4460), c = r(6476), d = r(3400), h = d.strTranslate, i = r(2880).extendFlat, b = r(3972), x = r(3616), D = r(6308), C = r(1668), w = r(2736), S = r(4288).flipScale, T = r(5955), k = r(7668), A = r(4724), R = r(4284), g = R.LINE_SPACING, I = R.FROM_TL, O = R.FROM_BR, $ = r(3964).cn;
              function Y(te) {
                var se = te._fullLayout, me = se._infolayer.selectAll("g." + $.colorbar).data(ne(te), function(J) {
                  return J._id;
                });
                me.enter().append("g").attr("class", function(J) {
                  return J._id;
                }).classed($.colorbar, !0), me.each(function(J) {
                  var W = a.select(this);
                  d.ensureSingle(W, "rect", $.cbbg), d.ensureSingle(W, "g", $.cbfills), d.ensureSingle(W, "g", $.cblines), d.ensureSingle(W, "g", $.cbaxis, function(oe) {
                    oe.classed($.crisp, !0);
                  }), d.ensureSingle(W, "g", $.cbtitleunshift, function(oe) {
                    oe.append("g").classed($.cbtitle, !0);
                  }), d.ensureSingle(W, "rect", $.cboutline);
                  var ae = q(W, J, te);
                  ae && ae.then && (te._promises || []).push(ae), te._context.edits.colorbarPosition && B(W, J, te);
                }), me.exit().each(function(J) {
                  l.autoMargin(te, J._id);
                }).remove(), me.order();
              }
              function ne(te) {
                var se = te._fullLayout, me = te.calcdata, J = [], W, ae, oe, ve;
                function fe(G) {
                  return i(G, {
                    // fillcolor can be a d3 scale, domain is z values, range is colors
                    // or leave it out for no fill,
                    // or set to a string constant for single-color fill
                    _fillcolor: null,
                    // line.color has the same options as fillcolor
                    _line: {
                      color: null,
                      width: null,
                      dash: null
                    },
                    // levels of lines to draw.
                    // note that this DOES NOT determine the extent of the bar
                    // that's given by the domain of fillcolor
                    // (or line.color if no fillcolor domain)
                    _levels: {
                      start: null,
                      end: null,
                      size: null
                    },
                    // separate fill levels (for example, heatmap coloring of a
                    // contour map) if this is omitted, fillcolors will be
                    // evaluated halfway between levels
                    _filllevels: null,
                    // for continuous colorscales: fill with a gradient instead of explicit levels
                    // value should be the colorscale [[0, c0], [v1, c1], ..., [1, cEnd]]
                    _fillgradient: null,
                    // when using a gradient, we need the data range specified separately
                    _zrange: null
                  });
                }
                function ye() {
                  typeof ve.calc == "function" ? ve.calc(te, oe, W) : (W._fillgradient = ae.reversescale ? S(ae.colorscale) : ae.colorscale, W._zrange = [ae[ve.min], ae[ve.max]]);
                }
                for (var Ce = 0; Ce < me.length; Ce++) {
                  var Re = me[Ce];
                  if (oe = Re[0].trace, !!oe._module) {
                    var Be = oe._module.colorbar;
                    if (oe.visible === !0 && Be)
                      for (var xe = Array.isArray(Be), Me = xe ? Be : [Be], De = 0; De < Me.length; De++) {
                        ve = Me[De];
                        var Z = ve.container;
                        ae = Z ? oe[Z] : oe, ae && ae.showscale && (W = fe(ae.colorbar), W._id = "cb" + oe.uid + (xe && Z ? "-" + Z : ""), W._traceIndex = oe.index, W._propPrefix = (Z ? Z + "." : "") + "colorbar.", W._meta = oe._meta, ye(), J.push(W));
                      }
                  }
                }
                for (var ee in se._colorAxes)
                  if (ae = se[ee], ae.showscale) {
                    var ie = se._colorAxes[ee];
                    W = fe(ae.colorbar), W._id = "cb" + ee, W._propPrefix = ee + ".colorbar.", W._meta = se._meta, ve = {
                      min: "cmin",
                      max: "cmax"
                    }, ie[0] !== "heatmap" && (oe = ie[1], ve.calc = oe._module.colorbar.calc), ye(), J.push(W);
                  }
                return J;
              }
              function q(te, se, me) {
                var J = se.orientation === "v", W = se.len, ae = se.lenmode, oe = se.thickness, ve = se.thicknessmode, fe = se.outlinewidth, ye = se.borderwidth, Ce = se.bgcolor, Re = se.xanchor, Be = se.yanchor, xe = se.xpad, Me = se.ypad, De = se.x, Z = J ? se.y : 1 - se.y, ee = se.yref === "paper", ie = se.xref === "paper", G = me._fullLayout, H = G._size, ce = se._fillcolor, j = se._line, he = se.title, be = he.side, we = se._zrange || a.extent((typeof ce == "function" ? ce : j.color).domain()), Ie = typeof j.color == "function" ? j.color : function() {
                  return j.color;
                }, Ge = typeof ce == "function" ? ce : function() {
                  return ce;
                }, Ve = se._levels, Je = X(me, se, we), et = Je.fill, at = Je.line, Le = Math.round(oe * (ve === "fraction" ? J ? H.w : H.h : 1)), ze = Le / (J ? H.w : H.h), Oe = Math.round(W * (ae === "fraction" ? J ? H.h : H.w : 1)), Xe = Oe / (J ? H.h : H.w), it = ie ? H.w : me._fullLayout.width, ut = ee ? H.h : me._fullLayout.height, wt = Math.round(J ? De * it + xe : Z * ut + Me), kt = {
                  center: 0.5,
                  right: 1
                }[Re] || 0, Ot = {
                  top: 1,
                  middle: 0.5
                }[Be] || 0, Lt = J ? De - kt * ze : Z - Ot * ze, Mt = J ? Z - Ot * Xe : De - kt * Xe, Ut = Math.round(J ? ut * (1 - Mt) : it * Mt);
                se._lenFrac = Xe, se._thickFrac = ze, se._uFrac = Lt, se._vFrac = Mt;
                var Ct = se._axis = U(me, se, we);
                Ct.position = ze + (J ? De + xe / H.w : Z + Me / H.h);
                var jt = ["top", "bottom"].indexOf(be) !== -1;
                if (J && jt && (Ct.title.side = be, Ct.titlex = De + xe / H.w, Ct.titley = Mt + (he.side === "top" ? Xe - Me / H.h : Me / H.h)), !J && !jt && (Ct.title.side = be, Ct.titley = Z + Me / H.h, Ct.titlex = Mt + xe / H.w), j.color && se.tickmode === "auto") {
                  Ct.tickmode = "linear", Ct.tick0 = Ve.start;
                  var nr = Ve.size, Jt = d.constrain(Oe / 50, 4, 15) + 1, Wt = (we[1] - we[0]) / ((se.nticks || Jt) * nr);
                  if (Wt > 1) {
                    var qe = Math.pow(10, Math.floor(Math.log(Wt) / Math.LN10));
                    nr *= qe * d.roundUp(Wt / qe, [2, 5, 10]), (Math.abs(Ve.start) / Ve.size + 1e-6) % 1 < 2e-6 && (Ct.tick0 = 0);
                  }
                  Ct.dtick = nr;
                }
                Ct.domain = J ? [Mt + Me / H.h, Mt + Xe - Me / H.h] : [Mt + xe / H.w, Mt + Xe - xe / H.w], Ct.setScale(), te.attr("transform", h(Math.round(H.l), Math.round(H.t)));
                var Ue = te.select("." + $.cbtitleunshift).attr("transform", h(-Math.round(H.l), -Math.round(H.t))), We = Ct.ticklabelposition, je = Ct.title.font.size, lt = te.select("." + $.cbaxis), Se, Pe = 0, Ye = 0;
                function Ze(dt, st) {
                  var Nt = {
                    propContainer: Ct,
                    propName: se._propPrefix + "title",
                    traceIndex: se._traceIndex,
                    _meta: se._meta,
                    placeholder: G._dfltTitle.colorbar,
                    containerGroup: te.select("." + $.cbtitle)
                  }, ar = dt.charAt(0) === "h" ? dt.substr(1) : "h" + dt;
                  te.selectAll("." + ar + ",." + ar + "-math-group").remove(), C.draw(me, dt, i(Nt, st || {}));
                }
                function rt() {
                  if (J && jt || !J && !jt) {
                    var dt, st;
                    be === "top" && (dt = xe + H.l + it * De, st = Me + H.t + ut * (1 - Mt - Xe) + 3 + je * 0.75), be === "bottom" && (dt = xe + H.l + it * De, st = Me + H.t + ut * (1 - Mt) - 3 - je * 0.25), be === "right" && (st = Me + H.t + ut * Z + 3 + je * 0.75, dt = xe + H.l + it * Mt), Ze(Ct._id + "title", {
                      attributes: {
                        x: dt,
                        y: st,
                        "text-anchor": J ? "start" : "middle"
                      }
                    });
                  }
                }
                function tt() {
                  if (J && !jt || !J && jt) {
                    var dt = Ct.position || 0, st = Ct._offset + Ct._length / 2, Nt, ar;
                    if (be === "right")
                      ar = st, Nt = H.l + it * dt + 10 + je * (Ct.showticklabels ? 1 : 0.5);
                    else if (Nt = st, be === "bottom" && (ar = H.t + ut * dt + 10 + (We.indexOf("inside") === -1 ? Ct.tickfont.size : 0) + (Ct.ticks !== "intside" && se.ticklen || 0)), be === "top") {
                      var ur = he.text.split("<br>").length;
                      ar = H.t + ut * dt + 10 - Le - g * je * ur;
                    }
                    Ze((J ? (
                      // the 'h' + is a hack to get around the fact that
                      // convertToTspans rotates any 'y...' class by 90 degrees.
                      // TODO: find a better way to control this.
                      "h"
                    ) : "v") + Ct._id + "title", {
                      avoid: {
                        selection: a.select(me).selectAll("g." + Ct._id + "tick"),
                        side: be,
                        offsetTop: J ? 0 : H.t,
                        offsetLeft: J ? H.l : 0,
                        maxShift: J ? G.width : G.height
                      },
                      attributes: {
                        x: Nt,
                        y: ar,
                        "text-anchor": "middle"
                      },
                      transform: {
                        rotate: J ? -90 : 0,
                        offset: 0
                      }
                    });
                  }
                }
                function Ft() {
                  if (!J && !jt || J && jt) {
                    var dt = te.select("." + $.cbtitle), st = dt.select("text"), Nt = [-fe / 2, fe / 2], ar = dt.select(".h" + Ct._id + "title-math-group").node(), ur = 15.6;
                    st.node() && (ur = parseInt(st.node().style.fontSize, 10) * g);
                    var Or;
                    if (ar ? (Or = x.bBox(ar), Ye = Or.width, Pe = Or.height, Pe > ur && (Nt[1] -= (Pe - ur) / 2)) : st.node() && !st.classed($.jsPlaceholder) && (Or = x.bBox(st.node()), Ye = Or.width, Pe = Or.height), J) {
                      if (Pe) {
                        if (Pe += 5, be === "top")
                          Ct.domain[1] -= Pe / H.h, Nt[1] *= -1;
                        else {
                          Ct.domain[0] += Pe / H.h;
                          var Fr = w.lineCount(st);
                          Nt[1] += (1 - Fr) * ur;
                        }
                        dt.attr("transform", h(Nt[0], Nt[1])), Ct.setScale();
                      }
                    } else
                      Ye && (be === "right" && (Ct.domain[0] += (Ye + je / 2) / H.w), dt.attr("transform", h(Nt[0], Nt[1])), Ct.setScale());
                  }
                  te.selectAll("." + $.cbfills + ",." + $.cblines).attr("transform", J ? h(0, Math.round(H.h * (1 - Ct.domain[1]))) : h(Math.round(H.w * Ct.domain[0]), 0)), lt.attr("transform", J ? h(0, Math.round(-H.t)) : h(Math.round(-H.l), 0));
                  var br = te.select("." + $.cbfills).selectAll("rect." + $.cbfill).attr("style", "").data(et);
                  br.enter().append("rect").classed($.cbfill, !0).attr("style", ""), br.exit().remove();
                  var or = we.map(Ct.c2p).map(Math.round).sort(function(Dr, gr) {
                    return Dr - gr;
                  });
                  br.each(function(Dr, gr) {
                    var Er = [gr === 0 ? we[0] : (et[gr] + et[gr - 1]) / 2, gr === et.length - 1 ? we[1] : (et[gr] + et[gr + 1]) / 2].map(Ct.c2p).map(Math.round);
                    J && (Er[1] = d.constrain(Er[1] + (Er[1] > Er[0]) ? 1 : -1, or[0], or[1]));
                    var Cr = a.select(this).attr(J ? "x" : "y", wt).attr(J ? "y" : "x", a.min(Er)).attr(J ? "width" : "height", Math.max(Le, 2)).attr(J ? "height" : "width", Math.max(a.max(Er) - a.min(Er), 2));
                    if (se._fillgradient)
                      x.gradient(Cr, me, se._id, J ? "vertical" : "horizontalreversed", se._fillgradient, "fill");
                    else {
                      var zr = Ge(Dr).replace("e-", "");
                      Cr.attr("fill", p(zr).toHexString());
                    }
                  });
                  var Rr = te.select("." + $.cblines).selectAll("path." + $.cbline).data(j.color && j.width ? at : []);
                  Rr.enter().append("path").classed($.cbline, !0), Rr.exit().remove(), Rr.each(function(Dr) {
                    var gr = wt, Er = Math.round(Ct.c2p(Dr)) + j.width / 2 % 1;
                    a.select(this).attr("d", "M" + (J ? gr + "," + Er : Er + "," + gr) + (J ? "h" : "v") + Le).call(x.lineGroupStyle, j.width, Ie(Dr), j.dash);
                  }), lt.selectAll("g." + Ct._id + "tick,path").remove();
                  var lr = wt + Le + (fe || 0) / 2 - (se.ticks === "outside" ? 1 : 0), Tr = u.calcTicks(Ct), Gr = u.getTickSigns(Ct)[2];
                  return u.drawTicks(me, Ct, {
                    vals: Ct.ticks === "inside" ? u.clipEnds(Ct, Tr) : Tr,
                    layer: lt,
                    path: u.makeTickPath(Ct, lr, Gr),
                    transFn: u.makeTransTickFn(Ct)
                  }), u.drawLabels(me, Ct, {
                    vals: Tr,
                    layer: lt,
                    transFn: u.makeTransTickLabelFn(Ct),
                    labelFns: u.makeLabelFns(Ct, lr)
                  });
                }
                function Dt() {
                  var dt, st = Le + fe / 2;
                  We.indexOf("inside") === -1 && (dt = x.bBox(lt.node()), st += J ? dt.width : dt.height), Se = Ue.select("text");
                  var Nt = 0, ar = J && be === "top", ur = !J && be === "right", Or = 0;
                  if (Se.node() && !Se.classed($.jsPlaceholder)) {
                    var Fr, br = Ue.select(".h" + Ct._id + "title-math-group").node();
                    br && (J && jt || !J && !jt) ? (dt = x.bBox(br), Nt = dt.width, Fr = dt.height) : (dt = x.bBox(Ue.node()), Nt = dt.right - H.l - (J ? wt : Ut), Fr = dt.bottom - H.t - (J ? Ut : wt), !J && be === "top" && (st += dt.height, Or = dt.height)), ur && (Se.attr("transform", h(Nt / 2 + je / 2, 0)), Nt *= 2), st = Math.max(st, J ? Nt : Fr);
                  }
                  var or = (J ? xe : Me) * 2 + st + ye + fe / 2, Rr = 0;
                  !J && he.text && Be === "bottom" && Z <= 0 && (Rr = or / 2, or += Rr, Or += Rr), G._hColorbarMoveTitle = Rr, G._hColorbarMoveCBTitle = Or;
                  var lr = ye + fe, Tr = (J ? wt : Ut) - lr / 2 - (J ? xe : 0), Gr = (J ? Ut : wt) - (J ? Oe : Me + Or - Rr);
                  te.select("." + $.cbbg).attr("x", Tr).attr("y", Gr).attr(J ? "width" : "height", Math.max(or - Rr, 2)).attr(J ? "height" : "width", Math.max(Oe + lr, 2)).call(D.fill, Ce).call(D.stroke, se.bordercolor).style("stroke-width", ye);
                  var Dr = ur ? Math.max(Nt - 10, 0) : 0;
                  te.selectAll("." + $.cboutline).attr("x", (J ? wt : Ut + xe) + Dr).attr("y", (J ? Ut + Me - Oe : wt) + (ar ? Pe : 0)).attr(J ? "width" : "height", Math.max(Le, 2)).attr(J ? "height" : "width", Math.max(Oe - (J ? 2 * Me + Pe : 2 * xe + Dr), 2)).call(D.stroke, se.outlinecolor).style({
                    fill: "none",
                    "stroke-width": fe
                  });
                  var gr = J ? kt * or : 0, Er = J ? 0 : (1 - Ot) * or - Or;
                  if (gr = ie ? H.l - gr : -gr, Er = ee ? H.t - Er : -Er, te.attr("transform", h(gr, Er)), !J && (ye || p(Ce).getAlpha() && !p.equals(G.paper_bgcolor, Ce))) {
                    var Cr = lt.selectAll("text"), zr = Cr[0].length, en = te.select("." + $.cbbg).node(), on = x.bBox(en), Ir = x.getTranslate(te), Ae = 2;
                    Cr.each(function(It, Ht) {
                      var Et = 0, Zt = zr - 1;
                      if (Ht === Et || Ht === Zt) {
                        var Yt = x.bBox(this), Gt = x.getTranslate(this), $t;
                        if (Ht === Zt) {
                          var ir = Yt.right + Gt.x, wr = on.right + Ir.x + Ut - ye - Ae + De;
                          $t = wr - ir, $t > 0 && ($t = 0);
                        } else if (Ht === Et) {
                          var sr = Yt.left + Gt.x, Xr = on.left + Ir.x + Ut + ye + Ae;
                          $t = Xr - sr, $t < 0 && ($t = 0);
                        }
                        $t && (zr < 3 ? this.setAttribute("transform", "translate(" + $t + ",0) " + this.getAttribute("transform")) : this.setAttribute("visibility", "hidden"));
                      }
                    });
                  }
                  var ue = {}, ft = I[Re], nt = O[Re], mt = I[Be], Tt = O[Be], bt = or - Le;
                  J ? (ae === "pixels" ? (ue.y = Z, ue.t = Oe * mt, ue.b = Oe * Tt) : (ue.t = ue.b = 0, ue.yt = Z + W * mt, ue.yb = Z - W * Tt), ve === "pixels" ? (ue.x = De, ue.l = or * ft, ue.r = or * nt) : (ue.l = bt * ft, ue.r = bt * nt, ue.xl = De - oe * ft, ue.xr = De + oe * nt)) : (ae === "pixels" ? (ue.x = De, ue.l = Oe * ft, ue.r = Oe * nt) : (ue.l = ue.r = 0, ue.xl = De + W * ft, ue.xr = De - W * nt), ve === "pixels" ? (ue.y = 1 - Z, ue.t = or * mt, ue.b = or * Tt) : (ue.t = bt * mt, ue.b = bt * Tt, ue.yt = Z - oe * mt, ue.yb = Z + oe * Tt));
                  var vt = se.y < 0.5 ? "b" : "t", ht = se.x < 0.5 ? "l" : "r";
                  me._fullLayout._reservedMargin[se._id] = {};
                  var St = {
                    r: G.width - Tr - gr,
                    l: Tr + ue.r,
                    b: G.height - Gr - Er,
                    t: Gr + ue.b
                  };
                  ie && ee ? l.autoMargin(me, se._id, ue) : ie ? me._fullLayout._reservedMargin[se._id][vt] = St[vt] : ee || J ? me._fullLayout._reservedMargin[se._id][ht] = St[ht] : me._fullLayout._reservedMargin[se._id][vt] = St[vt];
                }
                return d.syncOrAsync([l.previousPromises, rt, Ft, tt, l.previousPromises, Dt], me);
              }
              function B(te, se, me) {
                var J = se.orientation === "v", W = me._fullLayout, ae = W._size, oe, ve, fe;
                c.init({
                  element: te.node(),
                  gd: me,
                  prepFn: function() {
                    oe = te.attr("transform"), b(te);
                  },
                  moveFn: function(ye, Ce) {
                    te.attr("transform", oe + h(ye, Ce)), ve = c.align((J ? se._uFrac : se._vFrac) + ye / ae.w, J ? se._thickFrac : se._lenFrac, 0, 1, se.xanchor), fe = c.align((J ? se._vFrac : 1 - se._uFrac) - Ce / ae.h, J ? se._lenFrac : se._thickFrac, 0, 1, se.yanchor);
                    var Re = c.getCursor(ve, fe, se.xanchor, se.yanchor);
                    b(te, Re);
                  },
                  doneFn: function() {
                    if (b(te), ve !== void 0 && fe !== void 0) {
                      var ye = {};
                      ye[se._propPrefix + "x"] = ve, ye[se._propPrefix + "y"] = fe, se._traceIndex !== void 0 ? f.call("_guiRestyle", me, ye, se._traceIndex) : f.call("_guiRelayout", me, ye);
                    }
                  }
                });
              }
              function X(te, se, me) {
                var J = se._levels, W = [], ae = [], oe, ve, fe = J.end + J.size / 100, ye = J.size, Ce = 1.001 * me[0] - 1e-3 * me[1], Re = 1.001 * me[1] - 1e-3 * me[0];
                for (ve = 0; ve < 1e5 && (oe = J.start + ve * ye, !(ye > 0 ? oe >= fe : oe <= fe)); ve++)
                  oe > Ce && oe < Re && W.push(oe);
                if (se._fillgradient)
                  ae = [0];
                else if (typeof se._fillcolor == "function") {
                  var Be = se._filllevels;
                  if (Be)
                    for (fe = Be.end + Be.size / 100, ye = Be.size, ve = 0; ve < 1e5 && (oe = Be.start + ve * ye, !(ye > 0 ? oe >= fe : oe <= fe)); ve++)
                      oe > me[0] && oe < me[1] && ae.push(oe);
                  else
                    ae = W.map(function(xe) {
                      return xe - J.size / 2;
                    }), ae.push(ae[ae.length - 1] + J.size);
                } else
                  se._fillcolor && typeof se._fillcolor == "string" && (ae = [0]);
                return J.size < 0 && (W.reverse(), ae.reverse()), {
                  line: W,
                  fill: ae
                };
              }
              function U(te, se, me) {
                var J = te._fullLayout, W = se.orientation === "v", ae = {
                  type: "linear",
                  range: me,
                  tickmode: se.tickmode,
                  nticks: se.nticks,
                  tick0: se.tick0,
                  dtick: se.dtick,
                  tickvals: se.tickvals,
                  ticktext: se.ticktext,
                  ticks: se.ticks,
                  ticklen: se.ticklen,
                  tickwidth: se.tickwidth,
                  tickcolor: se.tickcolor,
                  showticklabels: se.showticklabels,
                  labelalias: se.labelalias,
                  ticklabelposition: se.ticklabelposition,
                  ticklabeloverflow: se.ticklabeloverflow,
                  ticklabelstep: se.ticklabelstep,
                  tickfont: se.tickfont,
                  tickangle: se.tickangle,
                  tickformat: se.tickformat,
                  exponentformat: se.exponentformat,
                  minexponent: se.minexponent,
                  separatethousands: se.separatethousands,
                  showexponent: se.showexponent,
                  showtickprefix: se.showtickprefix,
                  tickprefix: se.tickprefix,
                  showticksuffix: se.showticksuffix,
                  ticksuffix: se.ticksuffix,
                  title: se.title,
                  showline: !0,
                  anchor: "free",
                  side: W ? "right" : "bottom",
                  position: 1
                }, oe = W ? "y" : "x", ve = {
                  type: "linear",
                  _id: oe + se._id
                }, fe = {
                  letter: oe,
                  font: J.font,
                  noAutotickangles: oe === "y",
                  noHover: !0,
                  noTickson: !0,
                  noTicklabelmode: !0,
                  noInsideRange: !0,
                  calendar: J.calendar
                  // not really necessary (yet?)
                };
                function ye(Ce, Re) {
                  return d.coerce(ae, ve, A, Ce, Re);
                }
                return T(ae, ve, ye, fe, J), k(ae, ve, ye, fe), ve;
              }
              M.exports = {
                draw: Y
              };
            }
          ),
          /***/
          553: (
            /***/
            function(M, L, r) {
              var a = r(3400);
              M.exports = function(l) {
                return a.isPlainObject(l.colorbar);
              };
            }
          ),
          /***/
          5080: (
            /***/
            function(M, L, r) {
              M.exports = {
                moduleType: "component",
                name: "colorbar",
                attributes: r(616),
                supplyDefaults: r(4013),
                draw: r(7848).draw,
                hasColorbar: r(553)
              };
            }
          ),
          /***/
          9084: (
            /***/
            function(M, L, r) {
              var a = r(616), p = r(3756).counter, l = r(2996), f = r(8304).scales;
              l(f), M.exports = function(c, d) {
                c = c || "", d = d || {};
                var h = d.cLetter || "c";
                "onlyIfNumerical" in d && d.onlyIfNumerical;
                var i = "noScale" in d ? d.noScale : c === "marker.line", b = "showScaleDflt" in d ? d.showScaleDflt : h === "z", x = typeof d.colorscaleDflt == "string" ? f[d.colorscaleDflt] : null, D = d.editTypeOverride || "", C;
                "colorAttr" in d ? (C = d.colorAttr, d.colorAttr) : C = {
                  z: "z",
                  c: "color"
                }[h];
                var w = h + "auto", S = h + "min", T = h + "max", k = h + "mid", A = {};
                A[S] = A[T] = void 0;
                var R = {};
                R[w] = !1;
                var g = {};
                return C === "color" && (g.color = {
                  valType: "color",
                  arrayOk: !0,
                  editType: D || "style"
                }, d.anim && (g.color.anim = !0)), g[w] = {
                  valType: "boolean",
                  dflt: !0,
                  editType: "calc",
                  impliedEdits: A
                }, g[S] = {
                  valType: "number",
                  dflt: null,
                  editType: D || "plot",
                  impliedEdits: R
                }, g[T] = {
                  valType: "number",
                  dflt: null,
                  editType: D || "plot",
                  impliedEdits: R
                }, g[k] = {
                  valType: "number",
                  dflt: null,
                  editType: "calc",
                  impliedEdits: A
                }, g.colorscale = {
                  valType: "colorscale",
                  editType: "calc",
                  dflt: x,
                  impliedEdits: {
                    autocolorscale: !1
                  }
                }, g.autocolorscale = {
                  valType: "boolean",
                  // gets overrode in 'heatmap' & 'surface' for backwards comp.
                  dflt: d.autoColorDflt !== !1,
                  editType: "calc",
                  impliedEdits: {
                    colorscale: void 0
                  }
                }, g.reversescale = {
                  valType: "boolean",
                  dflt: !1,
                  editType: "plot"
                }, i || (g.showscale = {
                  valType: "boolean",
                  dflt: b,
                  editType: "calc"
                }, g.colorbar = a), d.noColorAxis || (g.coloraxis = {
                  valType: "subplotid",
                  regex: p("coloraxis"),
                  dflt: null,
                  editType: "calc"
                }), g;
              };
            }
          ),
          /***/
          7128: (
            /***/
            function(M, L, r) {
              var a = r(8248), p = r(3400), l = r(4288).extractOpts;
              M.exports = function(u, c, d) {
                var h = u._fullLayout, i = d.vals, b = d.containerStr, x = b ? p.nestedProperty(c, b).get() : c, D = l(x), C = D.auto !== !1, w = D.min, S = D.max, T = D.mid, k = function() {
                  return p.aggNums(Math.min, null, i);
                }, A = function() {
                  return p.aggNums(Math.max, null, i);
                };
                if (w === void 0 ? w = k() : C && (x._colorAx && a(w) ? w = Math.min(w, k()) : w = k()), S === void 0 ? S = A() : C && (x._colorAx && a(S) ? S = Math.max(S, A()) : S = A()), C && T !== void 0 && (S - T > T - w ? w = T - (S - T) : S - T < T - w && (S = T + (T - w))), w === S && (w -= 0.5, S += 0.5), D._sync("min", w), D._sync("max", S), D.autocolorscale) {
                  var R;
                  w * S < 0 ? R = h.colorscale.diverging : w >= 0 ? R = h.colorscale.sequential : R = h.colorscale.sequentialminus, D._sync("colorscale", R);
                }
              };
            }
          ),
          /***/
          5504: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(4288).hasColorscale, l = r(4288).extractOpts;
              M.exports = function(u, c) {
                function d(w, S) {
                  var T = w["_" + S];
                  T !== void 0 && (w[S] = T);
                }
                function h(w, S) {
                  var T = S.container ? a.nestedProperty(w, S.container).get() : w;
                  if (T)
                    if (T.coloraxis)
                      T._colorAx = c[T.coloraxis];
                    else {
                      var k = l(T), A = k.auto;
                      (A || k.min === void 0) && d(T, S.min), (A || k.max === void 0) && d(T, S.max), k.autocolorscale && d(T, "colorscale");
                    }
                }
                for (var i = 0; i < u.length; i++) {
                  var b = u[i], x = b._module.colorbar;
                  if (x)
                    if (Array.isArray(x))
                      for (var D = 0; D < x.length; D++)
                        h(b, x[D]);
                    else
                      h(b, x);
                  p(b, "marker.line") && h(b, {
                    container: "marker.line",
                    min: "cmin",
                    max: "cmax"
                  });
                }
                for (var C in c._colorAxes)
                  h(c[C], {
                    min: "cmin",
                    max: "cmax"
                  });
              };
            }
          ),
          /***/
          7260: (
            /***/
            function(M, L, r) {
              var a = r(8248), p = r(3400), l = r(553), f = r(4013), u = r(8304).isValid, c = r(4040).traceIs;
              function d(h, i) {
                var b = i.slice(0, i.length - 1);
                return i ? p.nestedProperty(h, b).get() || {} : h;
              }
              M.exports = function h(i, b, x, D, C) {
                var w = C.prefix, S = C.cLetter, T = "_module" in b, k = d(i, w), A = d(b, w), R = d(b._template || {}, w) || {}, g = function() {
                  return delete i.coloraxis, delete b.coloraxis, h(i, b, x, D, C);
                };
                if (T) {
                  var I = x._colorAxes || {}, O = D(w + "coloraxis");
                  if (O) {
                    var $ = c(b, "contour") && p.nestedProperty(b, "contours.coloring").get() || "heatmap", Y = I[O];
                    Y ? (Y[2].push(g), Y[0] !== $ && (Y[0] = !1, p.warn(["Ignoring coloraxis:", O, "setting", "as it is linked to incompatible colorscales."].join(" ")))) : I[O] = [$, b, [g]];
                    return;
                  }
                }
                var ne = k[S + "min"], q = k[S + "max"], B = a(ne) && a(q) && ne < q, X = D(w + S + "auto", !B);
                X ? D(w + S + "mid") : (D(w + S + "min"), D(w + S + "max"));
                var U = k.colorscale, te = R.colorscale, se;
                if (U !== void 0 && (se = !u(U)), te !== void 0 && (se = !u(te)), D(w + "autocolorscale", se), D(w + "colorscale"), D(w + "reversescale"), w !== "marker.line.") {
                  var me;
                  w && T && (me = l(k));
                  var J = D(w + "showscale", me);
                  J && (w && R && (A._template = R), f(k, A, x));
                }
              };
            }
          ),
          /***/
          4288: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(9760), l = r(8248), f = r(3400), u = r(6308), c = r(8304).isValid;
              function d(T, k, A) {
                var R = k ? f.nestedProperty(T, k).get() || {} : T, g = R[A || "color"];
                g && g._inputArray && (g = g._inputArray);
                var I = !1;
                if (f.isArrayOrTypedArray(g)) {
                  for (var O = 0; O < g.length; O++)
                    if (l(g[O])) {
                      I = !0;
                      break;
                    }
                }
                return f.isPlainObject(R) && (I || R.showscale === !0 || l(R.cmin) && l(R.cmax) || c(R.colorscale) || f.isPlainObject(R.colorbar));
              }
              var h = ["showscale", "autocolorscale", "colorscale", "reversescale", "colorbar"], i = ["min", "max", "mid", "auto"];
              function b(T) {
                var k = T._colorAx, A = k || T, R = {}, g, I, O;
                for (I = 0; I < h.length; I++)
                  O = h[I], R[O] = A[O];
                if (k)
                  for (g = "c", I = 0; I < i.length; I++)
                    O = i[I], R[O] = A["c" + O];
                else {
                  var $;
                  for (I = 0; I < i.length; I++) {
                    if (O = i[I], $ = "c" + O, $ in A) {
                      R[O] = A[$];
                      continue;
                    }
                    $ = "z" + O, $ in A && (R[O] = A[$]);
                  }
                  g = $.charAt(0);
                }
                return R._sync = function(Y, ne) {
                  var q = i.indexOf(Y) !== -1 ? g + Y : Y;
                  A[q] = A["_" + q] = ne;
                }, R;
              }
              function x(T) {
                for (var k = b(T), A = k.min, R = k.max, g = k.reversescale ? D(k.colorscale) : k.colorscale, I = g.length, O = new Array(I), $ = new Array(I), Y = 0; Y < I; Y++) {
                  var ne = g[Y];
                  O[Y] = A + ne[0] * (R - A), $[Y] = ne[1];
                }
                return {
                  domain: O,
                  range: $
                };
              }
              function D(T) {
                for (var k = T.length, A = new Array(k), R = k - 1, g = 0; R >= 0; R--, g++) {
                  var I = T[R];
                  A[g] = [1 - I[0], I[1]];
                }
                return A;
              }
              function C(T, k) {
                k = k || {};
                for (var A = T.domain, R = T.range, g = R.length, I = new Array(g), O = 0; O < g; O++) {
                  var $ = p(R[O]).toRgb();
                  I[O] = [$.r, $.g, $.b, $.a];
                }
                var Y = a.scale.linear().domain(A).range(I).clamp(!0), ne = k.noNumericCheck, q = k.returnArray, B;
                return ne && q ? B = Y : ne ? B = function(X) {
                  return S(Y(X));
                } : q ? B = function(X) {
                  return l(X) ? Y(X) : p(X).isValid() ? X : u.defaultLine;
                } : B = function(X) {
                  return l(X) ? S(Y(X)) : p(X).isValid() ? X : u.defaultLine;
                }, B.domain = Y.domain, B.range = function() {
                  return R;
                }, B;
              }
              function w(T, k) {
                return C(x(T), k);
              }
              function S(T) {
                var k = {
                  r: T[0],
                  g: T[1],
                  b: T[2],
                  a: T[3]
                };
                return p(k).toRgbString();
              }
              M.exports = {
                hasColorscale: d,
                extractOpts: b,
                extractScale: x,
                flipScale: D,
                makeColorScaleFunc: C,
                makeColorScaleFuncFromTrace: w
              };
            }
          ),
          /***/
          8932: (
            /***/
            function(M, L, r) {
              var a = r(8304), p = r(4288);
              M.exports = {
                moduleType: "component",
                name: "colorscale",
                attributes: r(9084),
                layoutAttributes: r(2332),
                supplyLayoutDefaults: r(1608),
                handleDefaults: r(7260),
                crossTraceDefaults: r(5504),
                calc: r(7128),
                // ./scales.js is required in lib/coerce.js ;
                // it needs to be a separate module to avoid a circular dependency
                scales: a.scales,
                defaultScale: a.defaultScale,
                getScale: a.get,
                isValidScale: a.isValid,
                hasColorscale: p.hasColorscale,
                extractOpts: p.extractOpts,
                extractScale: p.extractScale,
                flipScale: p.flipScale,
                makeColorScaleFunc: p.makeColorScaleFunc,
                makeColorScaleFuncFromTrace: p.makeColorScaleFuncFromTrace
              };
            }
          ),
          /***/
          2332: (
            /***/
            function(M, L, r) {
              var a = r(2880).extendFlat, p = r(9084), l = r(8304).scales;
              M.exports = {
                editType: "calc",
                colorscale: {
                  editType: "calc",
                  sequential: {
                    valType: "colorscale",
                    dflt: l.Reds,
                    editType: "calc"
                  },
                  sequentialminus: {
                    valType: "colorscale",
                    dflt: l.Blues,
                    editType: "calc"
                  },
                  diverging: {
                    valType: "colorscale",
                    dflt: l.RdBu,
                    editType: "calc"
                  }
                },
                coloraxis: a({
                  // not really a 'subplot' attribute container,
                  // but this is the flag we use to denote attributes that
                  // support yaxis, yaxis2, yaxis3, ... counters
                  _isSubplotObj: !0,
                  editType: "calc"
                }, p("", {
                  colorAttr: "corresponding trace color array(s)",
                  noColorAxis: !0,
                  showScaleDflt: !0
                }))
              };
            }
          ),
          /***/
          1608: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(1780), l = r(2332), f = r(7260);
              M.exports = function(c, d) {
                function h(T, k) {
                  return a.coerce(c, d, l, T, k);
                }
                h("colorscale.sequential"), h("colorscale.sequentialminus"), h("colorscale.diverging");
                var i = d._colorAxes, b, x;
                function D(T, k) {
                  return a.coerce(b, x, l.coloraxis, T, k);
                }
                for (var C in i) {
                  var w = i[C];
                  if (w[0])
                    b = c[C] || {}, x = p.newContainer(d, C, "coloraxis"), x._name = C, f(b, x, d, D, {
                      prefix: "",
                      cLetter: "c"
                    });
                  else {
                    for (var S = 0; S < w[2].length; S++)
                      w[2][S]();
                    delete d._colorAxes[C];
                  }
                }
              };
            }
          ),
          /***/
          8304: (
            /***/
            function(M, L, r) {
              var a = r(9760), p = {
                Greys: [[0, "rgb(0,0,0)"], [1, "rgb(255,255,255)"]],
                YlGnBu: [[0, "rgb(8,29,88)"], [0.125, "rgb(37,52,148)"], [0.25, "rgb(34,94,168)"], [0.375, "rgb(29,145,192)"], [0.5, "rgb(65,182,196)"], [0.625, "rgb(127,205,187)"], [0.75, "rgb(199,233,180)"], [0.875, "rgb(237,248,217)"], [1, "rgb(255,255,217)"]],
                Greens: [[0, "rgb(0,68,27)"], [0.125, "rgb(0,109,44)"], [0.25, "rgb(35,139,69)"], [0.375, "rgb(65,171,93)"], [0.5, "rgb(116,196,118)"], [0.625, "rgb(161,217,155)"], [0.75, "rgb(199,233,192)"], [0.875, "rgb(229,245,224)"], [1, "rgb(247,252,245)"]],
                YlOrRd: [[0, "rgb(128,0,38)"], [0.125, "rgb(189,0,38)"], [0.25, "rgb(227,26,28)"], [0.375, "rgb(252,78,42)"], [0.5, "rgb(253,141,60)"], [0.625, "rgb(254,178,76)"], [0.75, "rgb(254,217,118)"], [0.875, "rgb(255,237,160)"], [1, "rgb(255,255,204)"]],
                Bluered: [[0, "rgb(0,0,255)"], [1, "rgb(255,0,0)"]],
                // modified RdBu based on
                // http://www.kennethmoreland.com/color-maps/
                RdBu: [[0, "rgb(5,10,172)"], [0.35, "rgb(106,137,247)"], [0.5, "rgb(190,190,190)"], [0.6, "rgb(220,170,132)"], [0.7, "rgb(230,145,90)"], [1, "rgb(178,10,28)"]],
                // Scale for non-negative numeric values
                Reds: [[0, "rgb(220,220,220)"], [0.2, "rgb(245,195,157)"], [0.4, "rgb(245,160,105)"], [1, "rgb(178,10,28)"]],
                // Scale for non-positive numeric values
                Blues: [[0, "rgb(5,10,172)"], [0.35, "rgb(40,60,190)"], [0.5, "rgb(70,100,245)"], [0.6, "rgb(90,120,245)"], [0.7, "rgb(106,137,247)"], [1, "rgb(220,220,220)"]],
                Picnic: [[0, "rgb(0,0,255)"], [0.1, "rgb(51,153,255)"], [0.2, "rgb(102,204,255)"], [0.3, "rgb(153,204,255)"], [0.4, "rgb(204,204,255)"], [0.5, "rgb(255,255,255)"], [0.6, "rgb(255,204,255)"], [0.7, "rgb(255,153,255)"], [0.8, "rgb(255,102,204)"], [0.9, "rgb(255,102,102)"], [1, "rgb(255,0,0)"]],
                Rainbow: [[0, "rgb(150,0,90)"], [0.125, "rgb(0,0,200)"], [0.25, "rgb(0,25,255)"], [0.375, "rgb(0,152,255)"], [0.5, "rgb(44,255,150)"], [0.625, "rgb(151,255,0)"], [0.75, "rgb(255,234,0)"], [0.875, "rgb(255,111,0)"], [1, "rgb(255,0,0)"]],
                Portland: [[0, "rgb(12,51,131)"], [0.25, "rgb(10,136,186)"], [0.5, "rgb(242,211,56)"], [0.75, "rgb(242,143,56)"], [1, "rgb(217,30,30)"]],
                Jet: [[0, "rgb(0,0,131)"], [0.125, "rgb(0,60,170)"], [0.375, "rgb(5,255,255)"], [0.625, "rgb(255,255,0)"], [0.875, "rgb(250,0,0)"], [1, "rgb(128,0,0)"]],
                Hot: [[0, "rgb(0,0,0)"], [0.3, "rgb(230,0,0)"], [0.6, "rgb(255,210,0)"], [1, "rgb(255,255,255)"]],
                Blackbody: [[0, "rgb(0,0,0)"], [0.2, "rgb(230,0,0)"], [0.4, "rgb(230,210,0)"], [0.7, "rgb(255,255,255)"], [1, "rgb(160,200,255)"]],
                Earth: [[0, "rgb(0,0,130)"], [0.1, "rgb(0,180,180)"], [0.2, "rgb(40,210,40)"], [0.4, "rgb(230,230,50)"], [0.6, "rgb(120,70,20)"], [1, "rgb(255,255,255)"]],
                Electric: [[0, "rgb(0,0,0)"], [0.15, "rgb(30,0,100)"], [0.4, "rgb(120,0,100)"], [0.6, "rgb(160,90,0)"], [0.8, "rgb(230,200,0)"], [1, "rgb(255,250,220)"]],
                Viridis: [[0, "#440154"], [0.06274509803921569, "#48186a"], [0.12549019607843137, "#472d7b"], [0.18823529411764706, "#424086"], [0.25098039215686274, "#3b528b"], [0.3137254901960784, "#33638d"], [0.3764705882352941, "#2c728e"], [0.4392156862745098, "#26828e"], [0.5019607843137255, "#21918c"], [0.5647058823529412, "#1fa088"], [0.6274509803921569, "#28ae80"], [0.6901960784313725, "#3fbc73"], [0.7529411764705882, "#5ec962"], [0.8156862745098039, "#84d44b"], [0.8784313725490196, "#addc30"], [0.9411764705882353, "#d8e219"], [1, "#fde725"]],
                Cividis: [[0, "rgb(0,32,76)"], [0.058824, "rgb(0,42,102)"], [0.117647, "rgb(0,52,110)"], [0.176471, "rgb(39,63,108)"], [0.235294, "rgb(60,74,107)"], [0.294118, "rgb(76,85,107)"], [0.352941, "rgb(91,95,109)"], [0.411765, "rgb(104,106,112)"], [0.470588, "rgb(117,117,117)"], [0.529412, "rgb(131,129,120)"], [0.588235, "rgb(146,140,120)"], [0.647059, "rgb(161,152,118)"], [0.705882, "rgb(176,165,114)"], [0.764706, "rgb(192,177,109)"], [0.823529, "rgb(209,191,102)"], [0.882353, "rgb(225,204,92)"], [0.941176, "rgb(243,219,79)"], [1, "rgb(255,233,69)"]]
              }, l = p.RdBu;
              function f(d, h) {
                if (h || (h = l), !d)
                  return h;
                function i() {
                  try {
                    d = p[d] || JSON.parse(d);
                  } catch {
                    d = h;
                  }
                }
                return typeof d == "string" && (i(), typeof d == "string" && i()), u(d) ? d : h;
              }
              function u(d) {
                var h = 0;
                if (!Array.isArray(d) || d.length < 2 || !d[0] || !d[d.length - 1] || +d[0][0] != 0 || +d[d.length - 1][0] != 1)
                  return !1;
                for (var i = 0; i < d.length; i++) {
                  var b = d[i];
                  if (b.length !== 2 || +b[0] < h || !a(b[1]).isValid())
                    return !1;
                  h = +b[0];
                }
                return !0;
              }
              function c(d) {
                return p[d] !== void 0 ? !0 : u(d);
              }
              M.exports = {
                scales: p,
                defaultScale: l,
                get: f,
                isValid: c
              };
            }
          ),
          /***/
          8316: (
            /***/
            function(M) {
              M.exports = function(r, a, p, l, f) {
                var u = (r - p) / (l - p), c = u + a / (l - p), d = (u + c) / 2;
                return f === "left" || f === "bottom" ? u : f === "center" || f === "middle" ? d : f === "right" || f === "top" ? c : u < 0.6666666666666666 - d ? u : c > 1.3333333333333333 - d ? c : d;
              };
            }
          ),
          /***/
          7416: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = [["sw-resize", "s-resize", "se-resize"], ["w-resize", "move", "e-resize"], ["nw-resize", "n-resize", "ne-resize"]];
              M.exports = function(f, u, c, d) {
                return c === "left" ? f = 0 : c === "center" ? f = 1 : c === "right" ? f = 2 : f = a.constrain(Math.floor(f * 3), 0, 2), d === "bottom" ? u = 0 : d === "middle" ? u = 1 : d === "top" ? u = 2 : u = a.constrain(Math.floor(u * 3), 0, 2), p[u][f];
              };
            }
          ),
          /***/
          2760: (
            /***/
            function(M, L) {
              L.selectMode = function(r) {
                return r === "lasso" || r === "select";
              }, L.drawMode = function(r) {
                return r === "drawclosedpath" || r === "drawopenpath" || r === "drawline" || r === "drawrect" || r === "drawcircle";
              }, L.openMode = function(r) {
                return r === "drawline" || r === "drawopenpath";
              }, L.rectMode = function(r) {
                return r === "select" || r === "drawline" || r === "drawrect" || r === "drawcircle";
              }, L.freeMode = function(r) {
                return r === "lasso" || r === "drawclosedpath" || r === "drawopenpath";
              }, L.selectingOrDrawing = function(r) {
                return L.freeMode(r) || L.rectMode(r);
              };
            }
          ),
          /***/
          6476: (
            /***/
            function(M, L, r) {
              var a = r(9128), p = r(2264), l = r(9184), f = r(3400).removeElement, u = r(3816), c = M.exports = {};
              c.align = r(8316), c.getCursor = r(7416);
              var d = r(2616);
              c.unhover = d.wrapped, c.unhoverRaw = d.raw, c.init = function(x) {
                var D = x.gd, C = 1, w = D._context.doubleClickDelay, S = x.element, T, k, A, R, g, I, O, $;
                D._mouseDownTime || (D._mouseDownTime = 0), S.style.pointerEvents = "all", S.onmousedown = q, l ? (S._ontouchstart && S.removeEventListener("touchstart", S._ontouchstart), S._ontouchstart = q, S.addEventListener("touchstart", q, {
                  passive: !1
                })) : S.ontouchstart = q;
                function Y(U, te, se) {
                  return Math.abs(U) < se && (U = 0), Math.abs(te) < se && (te = 0), [U, te];
                }
                var ne = x.clampFn || Y;
                function q(U) {
                  D._dragged = !1, D._dragging = !0;
                  var te = i(U);
                  T = te[0], k = te[1], O = U.target, I = U, $ = U.buttons === 2 || U.ctrlKey, typeof U.clientX > "u" && typeof U.clientY > "u" && (U.clientX = T, U.clientY = k), A = (/* @__PURE__ */ new Date()).getTime(), A - D._mouseDownTime < w ? C += 1 : (C = 1, D._mouseDownTime = A), x.prepFn && x.prepFn(U, T, k), p && !$ ? (g = h(), g.style.cursor = window.getComputedStyle(S).cursor) : p || (g = document, R = window.getComputedStyle(document.documentElement).cursor, document.documentElement.style.cursor = window.getComputedStyle(S).cursor), document.addEventListener("mouseup", X), document.addEventListener("touchend", X), x.dragmode !== !1 && (U.preventDefault(), document.addEventListener("mousemove", B), document.addEventListener("touchmove", B, {
                    passive: !1
                  }));
                }
                function B(U) {
                  U.preventDefault();
                  var te = i(U), se = x.minDrag || u.MINDRAG, me = ne(te[0] - T, te[1] - k, se), J = me[0], W = me[1];
                  (J || W) && (D._dragged = !0, c.unhover(D, U)), D._dragged && x.moveFn && !$ && (D._dragdata = {
                    element: S,
                    dx: J,
                    dy: W
                  }, x.moveFn(J, W));
                }
                function X(U) {
                  if (delete D._dragdata, x.dragmode !== !1 && (U.preventDefault(), document.removeEventListener("mousemove", B), document.removeEventListener("touchmove", B)), document.removeEventListener("mouseup", X), document.removeEventListener("touchend", X), p ? f(g) : R && (g.documentElement.style.cursor = R, R = null), !D._dragging) {
                    D._dragged = !1;
                    return;
                  }
                  if (D._dragging = !1, (/* @__PURE__ */ new Date()).getTime() - D._mouseDownTime > w && (C = Math.max(C - 1, 1)), D._dragged)
                    x.doneFn && x.doneFn();
                  else if (x.clickFn && x.clickFn(C, I), !$) {
                    var te;
                    try {
                      te = new MouseEvent("click", U);
                    } catch {
                      var se = i(U);
                      te = document.createEvent("MouseEvents"), te.initMouseEvent("click", U.bubbles, U.cancelable, U.view, U.detail, U.screenX, U.screenY, se[0], se[1], U.ctrlKey, U.altKey, U.shiftKey, U.metaKey, U.button, U.relatedTarget);
                    }
                    O.dispatchEvent(te);
                  }
                  D._dragging = !1, D._dragged = !1;
                }
              };
              function h() {
                var b = document.createElement("div");
                b.className = "dragcover";
                var x = b.style;
                return x.position = "fixed", x.left = 0, x.right = 0, x.top = 0, x.bottom = 0, x.zIndex = 999999999, x.background = "none", document.body.appendChild(b), b;
              }
              c.coverSlip = h;
              function i(b) {
                return a(b.changedTouches ? b.changedTouches[0] : b, document.body);
              }
            }
          ),
          /***/
          2616: (
            /***/
            function(M, L, r) {
              var a = r(5924), p = r(1200), l = r(2200).getGraphDiv, f = r(2456), u = M.exports = {};
              u.wrapped = function(c, d, h) {
                c = l(c), c._fullLayout && p.clear(c._fullLayout._uid + f.HOVERID), u.raw(c, d, h);
              }, u.raw = function(d, h) {
                var i = d._fullLayout, b = d._hoverdata;
                h || (h = {}), !(h.target && !d._dragged && a.triggerHandler(d, "plotly_beforehover", h) === !1) && (i._hoverlayer.selectAll("g").remove(), i._hoverlayer.selectAll("line").remove(), i._hoverlayer.selectAll("circle").remove(), d._hoverdata = void 0, h.target && b && d.emit("plotly_unhover", {
                  event: h,
                  points: b
                }));
              };
            }
          ),
          /***/
          8192: (
            /***/
            function(M, L) {
              L.u = {
                valType: "string",
                // string type usually doesn't take values... this one should really be
                // a special type or at least a special coercion function, from the GUI
                // you only get these values but elsewhere the user can supply a list of
                // dash lengths in px, and it will be honored
                values: ["solid", "dot", "dash", "longdash", "dashdot", "longdashdot"],
                dflt: "solid",
                editType: "style"
              }, L.c = {
                shape: {
                  valType: "enumerated",
                  values: ["", "/", "\\", "x", "-", "|", "+", "."],
                  dflt: "",
                  arrayOk: !0,
                  editType: "style"
                },
                fillmode: {
                  valType: "enumerated",
                  values: ["replace", "overlay"],
                  dflt: "replace",
                  editType: "style"
                },
                bgcolor: {
                  valType: "color",
                  arrayOk: !0,
                  editType: "style"
                },
                fgcolor: {
                  valType: "color",
                  arrayOk: !0,
                  editType: "style"
                },
                fgopacity: {
                  valType: "number",
                  editType: "style",
                  min: 0,
                  max: 1
                },
                size: {
                  valType: "number",
                  min: 0,
                  dflt: 8,
                  arrayOk: !0,
                  editType: "style"
                },
                solidity: {
                  valType: "number",
                  min: 0,
                  max: 1,
                  dflt: 0.3,
                  arrayOk: !0,
                  editType: "style"
                },
                editType: "style"
              };
            }
          ),
          /***/
          3616: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(3400), l = p.numberFormat, f = r(8248), u = r(9760), c = r(4040), d = r(6308), h = r(8932), i = p.strTranslate, b = r(2736), x = r(9616), D = r(4284), C = D.LINE_SPACING, w = r(3448).DESELECTDIM, S = r(3028), T = r(7152), k = r(624).appendArrayPointValue, A = M.exports = {};
              A.font = function(Le, ze) {
                var Oe = ze.variant, Xe = ze.style, it = ze.weight, ut = ze.color, wt = ze.size, kt = ze.family, Ot = ze.shadow, Lt = ze.lineposition, Mt = ze.textcase;
                kt && Le.style("font-family", kt), wt + 1 && Le.style("font-size", wt + "px"), ut && Le.call(d.fill, ut), it && Le.style("font-weight", it), Xe && Le.style("font-style", Xe), Oe && Le.style("font-variant", Oe), Mt && Le.style("text-transform", R(I(Mt))), Ot && Le.style("text-shadow", Ot === "auto" ? b.makeTextShadow(d.contrast(ut)) : R(Ot)), Lt && Le.style("text-decoration-line", R(O(Lt)));
              };
              function R(Le) {
                return Le === "none" ? void 0 : Le;
              }
              var g = {
                normal: "none",
                lower: "lowercase",
                upper: "uppercase",
                "word caps": "capitalize"
              };
              function I(Le) {
                return g[Le];
              }
              function O(Le) {
                return Le.replace("under", "underline").replace("over", "overline").replace("through", "line-through").split("+").join(" ");
              }
              A.setPosition = function(Le, ze, Oe) {
                Le.attr("x", ze).attr("y", Oe);
              }, A.setSize = function(Le, ze, Oe) {
                Le.attr("width", ze).attr("height", Oe);
              }, A.setRect = function(Le, ze, Oe, Xe, it) {
                Le.call(A.setPosition, ze, Oe).call(A.setSize, Xe, it);
              }, A.translatePoint = function(Le, ze, Oe, Xe) {
                var it = Oe.c2p(Le.x), ut = Xe.c2p(Le.y);
                if (f(it) && f(ut) && ze.node())
                  ze.node().nodeName === "text" ? ze.attr("x", it).attr("y", ut) : ze.attr("transform", i(it, ut));
                else
                  return !1;
                return !0;
              }, A.translatePoints = function(Le, ze, Oe) {
                Le.each(function(Xe) {
                  var it = a.select(this);
                  A.translatePoint(Xe, it, ze, Oe);
                });
              }, A.hideOutsideRangePoint = function(Le, ze, Oe, Xe, it, ut) {
                ze.attr("display", Oe.isPtWithinRange(Le, it) && Xe.isPtWithinRange(Le, ut) ? null : "none");
              }, A.hideOutsideRangePoints = function(Le, ze) {
                if (ze._hasClipOnAxisFalse) {
                  var Oe = ze.xaxis, Xe = ze.yaxis;
                  Le.each(function(it) {
                    var ut = it[0].trace, wt = ut.xcalendar, kt = ut.ycalendar, Ot = c.traceIs(ut, "bar-like") ? ".bartext" : ".point,.textpoint";
                    Le.selectAll(Ot).each(function(Lt) {
                      A.hideOutsideRangePoint(Lt, a.select(this), Oe, Xe, wt, kt);
                    });
                  });
                }
              }, A.crispRound = function(Le, ze, Oe) {
                return !ze || !f(ze) ? Oe || 0 : Le._context.staticPlot ? ze : ze < 1 ? 1 : Math.round(ze);
              }, A.singleLineStyle = function(Le, ze, Oe, Xe, it) {
                ze.style("fill", "none");
                var ut = (((Le || [])[0] || {}).trace || {}).line || {}, wt = Oe || ut.width || 0, kt = it || ut.dash || "";
                d.stroke(ze, Xe || ut.color), A.dashLine(ze, kt, wt);
              }, A.lineGroupStyle = function(Le, ze, Oe, Xe) {
                Le.style("fill", "none").each(function(it) {
                  var ut = (((it || [])[0] || {}).trace || {}).line || {}, wt = ze || ut.width || 0, kt = Xe || ut.dash || "";
                  a.select(this).call(d.stroke, Oe || ut.color).call(A.dashLine, kt, wt);
                });
              }, A.dashLine = function(Le, ze, Oe) {
                Oe = +Oe || 0, ze = A.dashStyle(ze, Oe), Le.style({
                  "stroke-dasharray": ze,
                  "stroke-width": Oe + "px"
                });
              }, A.dashStyle = function(Le, ze) {
                ze = +ze || 1;
                var Oe = Math.max(ze, 3);
                return Le === "solid" ? Le = "" : Le === "dot" ? Le = Oe + "px," + Oe + "px" : Le === "dash" ? Le = 3 * Oe + "px," + 3 * Oe + "px" : Le === "longdash" ? Le = 5 * Oe + "px," + 5 * Oe + "px" : Le === "dashdot" ? Le = 3 * Oe + "px," + Oe + "px," + Oe + "px," + Oe + "px" : Le === "longdashdot" && (Le = 5 * Oe + "px," + 2 * Oe + "px," + Oe + "px," + 2 * Oe + "px"), Le;
              };
              function $(Le, ze, Oe, Xe) {
                var it = ze.fillpattern, ut = ze.fillgradient, wt = it && A.getPatternAttr(it.shape, 0, "");
                if (wt) {
                  var kt = A.getPatternAttr(it.bgcolor, 0, null), Ot = A.getPatternAttr(it.fgcolor, 0, null), Lt = it.fgopacity, Mt = A.getPatternAttr(it.size, 0, 8), Ut = A.getPatternAttr(it.solidity, 0, 0.3), Ct = ze.uid;
                  A.pattern(Le, "point", Oe, Ct, wt, Mt, Ut, void 0, it.fillmode, kt, Ot, Lt);
                } else if (ut && ut.type !== "none") {
                  var jt = ut.type, nr = "scatterfill-" + ze.uid;
                  if (Xe && (nr = "legendfill-" + ze.uid), !Xe && (ut.start !== void 0 || ut.stop !== void 0)) {
                    var Jt, Wt;
                    jt === "horizontal" ? (Jt = {
                      x: ut.start,
                      y: 0
                    }, Wt = {
                      x: ut.stop,
                      y: 0
                    }) : jt === "vertical" && (Jt = {
                      x: 0,
                      y: ut.start
                    }, Wt = {
                      x: 0,
                      y: ut.stop
                    }), Jt.x = ze._xA.c2p(Jt.x === void 0 ? ze._extremes.x.min[0].val : Jt.x, !0), Jt.y = ze._yA.c2p(Jt.y === void 0 ? ze._extremes.y.min[0].val : Jt.y, !0), Wt.x = ze._xA.c2p(Wt.x === void 0 ? ze._extremes.x.max[0].val : Wt.x, !0), Wt.y = ze._yA.c2p(Wt.y === void 0 ? ze._extremes.y.max[0].val : Wt.y, !0), Le.call(te, Oe, nr, "linear", ut.colorscale, "fill", Jt, Wt, !0, !1);
                  } else
                    jt === "horizontal" && (jt = jt + "reversed"), Le.call(A.gradient, Oe, nr, jt, ut.colorscale, "fill");
                } else
                  ze.fillcolor && Le.call(d.fill, ze.fillcolor);
              }
              A.singleFillStyle = function(Le, ze) {
                var Oe = a.select(Le.node()), Xe = Oe.data(), it = ((Xe[0] || [])[0] || {}).trace || {};
                $(Le, it, ze, !1);
              }, A.fillGroupStyle = function(Le, ze, Oe) {
                Le.style("stroke-width", 0).each(function(Xe) {
                  var it = a.select(this);
                  Xe[0].trace && $(it, Xe[0].trace, ze, Oe);
                });
              };
              var Y = r(1984);
              A.symbolNames = [], A.symbolFuncs = [], A.symbolBackOffs = [], A.symbolNeedLines = {}, A.symbolNoDot = {}, A.symbolNoFill = {}, A.symbolList = [], Object.keys(Y).forEach(function(Le) {
                var ze = Y[Le], Oe = ze.n;
                A.symbolList.push(Oe, String(Oe), Le, Oe + 100, String(Oe + 100), Le + "-open"), A.symbolNames[Oe] = Le, A.symbolFuncs[Oe] = ze.f, A.symbolBackOffs[Oe] = ze.backoff || 0, ze.needLine && (A.symbolNeedLines[Oe] = !0), ze.noDot ? A.symbolNoDot[Oe] = !0 : A.symbolList.push(Oe + 200, String(Oe + 200), Le + "-dot", Oe + 300, String(Oe + 300), Le + "-open-dot"), ze.noFill && (A.symbolNoFill[Oe] = !0);
              });
              var ne = A.symbolNames.length, q = "M0,0.5L0.5,0L0,-0.5L-0.5,0Z";
              A.symbolNumber = function(Le) {
                if (f(Le))
                  Le = +Le;
                else if (typeof Le == "string") {
                  var ze = 0;
                  Le.indexOf("-open") > 0 && (ze = 100, Le = Le.replace("-open", "")), Le.indexOf("-dot") > 0 && (ze += 200, Le = Le.replace("-dot", "")), Le = A.symbolNames.indexOf(Le), Le >= 0 && (Le += ze);
                }
                return Le % 100 >= ne || Le >= 400 ? 0 : Math.floor(Math.max(Le, 0));
              };
              function B(Le, ze, Oe, Xe) {
                var it = Le % 100;
                return A.symbolFuncs[it](ze, Oe, Xe) + (Le >= 200 ? q : "");
              }
              var X = l("~f"), U = {
                radial: {
                  type: "radial"
                },
                radialreversed: {
                  type: "radial",
                  reversed: !0
                },
                horizontal: {
                  type: "linear",
                  start: {
                    x: 1,
                    y: 0
                  },
                  stop: {
                    x: 0,
                    y: 0
                  }
                },
                horizontalreversed: {
                  type: "linear",
                  start: {
                    x: 1,
                    y: 0
                  },
                  stop: {
                    x: 0,
                    y: 0
                  },
                  reversed: !0
                },
                vertical: {
                  type: "linear",
                  start: {
                    x: 0,
                    y: 1
                  },
                  stop: {
                    x: 0,
                    y: 0
                  }
                },
                verticalreversed: {
                  type: "linear",
                  start: {
                    x: 0,
                    y: 1
                  },
                  stop: {
                    x: 0,
                    y: 0
                  },
                  reversed: !0
                }
              };
              A.gradient = function(Le, ze, Oe, Xe, it, ut) {
                var wt = U[Xe];
                return te(Le, ze, Oe, wt.type, it, ut, wt.start, wt.stop, !1, wt.reversed);
              };
              function te(Le, ze, Oe, Xe, it, ut, wt, kt, Ot, Lt) {
                var Mt = it.length, Ut;
                Xe === "linear" ? Ut = {
                  node: "linearGradient",
                  attrs: {
                    x1: wt.x,
                    y1: wt.y,
                    x2: kt.x,
                    y2: kt.y,
                    gradientUnits: Ot ? "userSpaceOnUse" : "objectBoundingBox"
                  },
                  reversed: Lt
                } : Xe === "radial" && (Ut = {
                  node: "radialGradient",
                  reversed: Lt
                });
                for (var Ct = new Array(Mt), jt = 0; jt < Mt; jt++)
                  Ut.reversed ? Ct[Mt - 1 - jt] = [X((1 - it[jt][0]) * 100), it[jt][1]] : Ct[jt] = [X(it[jt][0] * 100), it[jt][1]];
                var nr = ze._fullLayout, Jt = "g" + nr._uid + "-" + Oe, Wt = nr._defs.select(".gradients").selectAll("#" + Jt).data([Xe + Ct.join(";")], p.identity);
                Wt.exit().remove(), Wt.enter().append(Ut.node).each(function() {
                  var qe = a.select(this);
                  Ut.attrs && qe.attr(Ut.attrs), qe.attr("id", Jt);
                  var Ue = qe.selectAll("stop").data(Ct);
                  Ue.exit().remove(), Ue.enter().append("stop"), Ue.each(function(We) {
                    var je = u(We[1]);
                    a.select(this).attr({
                      offset: We[0] + "%",
                      "stop-color": d.tinyRGB(je),
                      "stop-opacity": je.getAlpha()
                    });
                  });
                }), Le.style(ut, ee(Jt, ze)).style(ut + "-opacity", null), Le.classed("gradient_filled", !0);
              }
              A.pattern = function(Le, ze, Oe, Xe, it, ut, wt, kt, Ot, Lt, Mt, Ut) {
                var Ct = ze === "legend";
                kt && (Ot === "overlay" ? (Lt = kt, Mt = d.contrast(Lt)) : (Lt = void 0, Mt = kt));
                var jt = Oe._fullLayout, nr = "p" + jt._uid + "-" + Xe, Jt, Wt, qe = function(Dt, dt, st, Nt, ar) {
                  return Nt + (ar - Nt) * (Dt - dt) / (st - dt);
                }, Ue, We, je, lt, Se = {}, Pe = u(Mt), Ye = d.tinyRGB(Pe), Ze = Pe.getAlpha(), rt = Ut * Ze;
                switch (it) {
                  case "/":
                    Jt = ut * Math.sqrt(2), Wt = ut * Math.sqrt(2), Ue = "M-" + Jt / 4 + "," + Wt / 4 + "l" + Jt / 2 + ",-" + Wt / 2 + "M0," + Wt + "L" + Jt + ",0M" + Jt / 4 * 3 + "," + Wt / 4 * 5 + "l" + Jt / 2 + ",-" + Wt / 2, We = wt * ut, lt = "path", Se = {
                      d: Ue,
                      opacity: rt,
                      stroke: Ye,
                      "stroke-width": We + "px"
                    };
                    break;
                  case "\\":
                    Jt = ut * Math.sqrt(2), Wt = ut * Math.sqrt(2), Ue = "M" + Jt / 4 * 3 + ",-" + Wt / 4 + "l" + Jt / 2 + "," + Wt / 2 + "M0,0L" + Jt + "," + Wt + "M-" + Jt / 4 + "," + Wt / 4 * 3 + "l" + Jt / 2 + "," + Wt / 2, We = wt * ut, lt = "path", Se = {
                      d: Ue,
                      opacity: rt,
                      stroke: Ye,
                      "stroke-width": We + "px"
                    };
                    break;
                  case "x":
                    Jt = ut * Math.sqrt(2), Wt = ut * Math.sqrt(2), Ue = "M-" + Jt / 4 + "," + Wt / 4 + "l" + Jt / 2 + ",-" + Wt / 2 + "M0," + Wt + "L" + Jt + ",0M" + Jt / 4 * 3 + "," + Wt / 4 * 5 + "l" + Jt / 2 + ",-" + Wt / 2 + "M" + Jt / 4 * 3 + ",-" + Wt / 4 + "l" + Jt / 2 + "," + Wt / 2 + "M0,0L" + Jt + "," + Wt + "M-" + Jt / 4 + "," + Wt / 4 * 3 + "l" + Jt / 2 + "," + Wt / 2, We = ut - ut * Math.sqrt(1 - wt), lt = "path", Se = {
                      d: Ue,
                      opacity: rt,
                      stroke: Ye,
                      "stroke-width": We + "px"
                    };
                    break;
                  case "|":
                    Jt = ut, Wt = ut, lt = "path", Ue = "M" + Jt / 2 + ",0L" + Jt / 2 + "," + Wt, We = wt * ut, lt = "path", Se = {
                      d: Ue,
                      opacity: rt,
                      stroke: Ye,
                      "stroke-width": We + "px"
                    };
                    break;
                  case "-":
                    Jt = ut, Wt = ut, lt = "path", Ue = "M0," + Wt / 2 + "L" + Jt + "," + Wt / 2, We = wt * ut, lt = "path", Se = {
                      d: Ue,
                      opacity: rt,
                      stroke: Ye,
                      "stroke-width": We + "px"
                    };
                    break;
                  case "+":
                    Jt = ut, Wt = ut, lt = "path", Ue = "M" + Jt / 2 + ",0L" + Jt / 2 + "," + Wt + "M0," + Wt / 2 + "L" + Jt + "," + Wt / 2, We = ut - ut * Math.sqrt(1 - wt), lt = "path", Se = {
                      d: Ue,
                      opacity: rt,
                      stroke: Ye,
                      "stroke-width": We + "px"
                    };
                    break;
                  case ".":
                    Jt = ut, Wt = ut, wt < Math.PI / 4 ? je = Math.sqrt(wt * ut * ut / Math.PI) : je = qe(wt, Math.PI / 4, 1, ut / 2, ut / Math.sqrt(2)), lt = "circle", Se = {
                      cx: Jt / 2,
                      cy: Wt / 2,
                      r: je,
                      opacity: rt,
                      fill: Ye
                    };
                    break;
                }
                var tt = [it || "noSh", Lt || "noBg", Mt || "noFg", ut, wt].join(";"), Ft = jt._defs.select(".patterns").selectAll("#" + nr).data([tt], p.identity);
                Ft.exit().remove(), Ft.enter().append("pattern").each(function() {
                  var Dt = a.select(this);
                  if (Dt.attr({
                    id: nr,
                    width: Jt + "px",
                    height: Wt + "px",
                    patternUnits: "userSpaceOnUse",
                    // for legends scale down patterns just a bit so that default size (i.e 8) nicely fit in small icons
                    patternTransform: Ct ? "scale(0.8)" : ""
                  }), Lt) {
                    var dt = u(Lt), st = d.tinyRGB(dt), Nt = dt.getAlpha(), ar = Dt.selectAll("rect").data([0]);
                    ar.exit().remove(), ar.enter().append("rect").attr({
                      width: Jt + "px",
                      height: Wt + "px",
                      fill: st,
                      "fill-opacity": Nt
                    });
                  }
                  var ur = Dt.selectAll(lt).data([0]);
                  ur.exit().remove(), ur.enter().append(lt).attr(Se);
                }), Le.style("fill", ee(nr, Oe)).style("fill-opacity", null), Le.classed("pattern_filled", !0);
              }, A.initGradients = function(Le) {
                var ze = Le._fullLayout, Oe = p.ensureSingle(ze._defs, "g", "gradients");
                Oe.selectAll("linearGradient,radialGradient").remove(), a.select(Le).selectAll(".gradient_filled").classed("gradient_filled", !1);
              }, A.initPatterns = function(Le) {
                var ze = Le._fullLayout, Oe = p.ensureSingle(ze._defs, "g", "patterns");
                Oe.selectAll("pattern").remove(), a.select(Le).selectAll(".pattern_filled").classed("pattern_filled", !1);
              }, A.getPatternAttr = function(Le, ze, Oe) {
                return Le && p.isArrayOrTypedArray(Le) ? ze < Le.length ? Le[ze] : Oe : Le;
              }, A.pointStyle = function(Le, ze, Oe, Xe) {
                if (Le.size()) {
                  var it = A.makePointStyleFns(ze);
                  Le.each(function(ut) {
                    A.singlePointStyle(ut, a.select(this), ze, it, Oe, Xe);
                  });
                }
              }, A.singlePointStyle = function(Le, ze, Oe, Xe, it, ut) {
                var wt = Oe.marker, kt = wt.line;
                if (ut && ut.i >= 0 && Le.i === void 0 && (Le.i = ut.i), ze.style("opacity", Xe.selectedOpacityFn ? Xe.selectedOpacityFn(Le) : Le.mo === void 0 ? wt.opacity : Le.mo), Xe.ms2mrc) {
                  var Ot;
                  Le.ms === "various" || wt.size === "various" ? Ot = 3 : Ot = Xe.ms2mrc(Le.ms), Le.mrc = Ot, Xe.selectedSizeFn && (Ot = Le.mrc = Xe.selectedSizeFn(Le));
                  var Lt = A.symbolNumber(Le.mx || wt.symbol) || 0;
                  Le.om = Lt % 200 >= 100;
                  var Mt = at(Le, Oe), Ut = H(Le, Oe);
                  ze.attr("d", B(Lt, Ot, Mt, Ut));
                }
                var Ct = !1, jt, nr, Jt;
                if (Le.so)
                  Jt = kt.outlierwidth, nr = kt.outliercolor, jt = wt.outliercolor;
                else {
                  var Wt = (kt || {}).width;
                  Jt = (Le.mlw + 1 || Wt + 1 || // TODO: we need the latter for legends... can we get rid of it?
                  (Le.trace ? (Le.trace.marker.line || {}).width : 0) + 1) - 1 || 0, "mlc" in Le ? nr = Le.mlcc = Xe.lineScale(Le.mlc) : p.isArrayOrTypedArray(kt.color) ? nr = d.defaultLine : nr = kt.color, p.isArrayOrTypedArray(wt.color) && (jt = d.defaultLine, Ct = !0), "mc" in Le ? jt = Le.mcc = Xe.markerScale(Le.mc) : jt = wt.color || wt.colors || "rgba(0,0,0,0)", Xe.selectedColorFn && (jt = Xe.selectedColorFn(Le));
                }
                if (Le.om)
                  ze.call(d.stroke, jt).style({
                    "stroke-width": (Jt || 1) + "px",
                    fill: "none"
                  });
                else {
                  ze.style("stroke-width", (Le.isBlank ? 0 : Jt) + "px");
                  var qe = wt.gradient, Ue = Le.mgt;
                  Ue ? Ct = !0 : Ue = qe && qe.type, p.isArrayOrTypedArray(Ue) && (Ue = Ue[0], U[Ue] || (Ue = 0));
                  var We = wt.pattern, je = We && A.getPatternAttr(We.shape, Le.i, "");
                  if (Ue && Ue !== "none") {
                    var lt = Le.mgc;
                    lt ? Ct = !0 : lt = qe.color;
                    var Se = Oe.uid;
                    Ct && (Se += "-" + Le.i), A.gradient(ze, it, Se, Ue, [[0, lt], [1, jt]], "fill");
                  } else if (je) {
                    var Pe = !1, Ye = We.fgcolor;
                    !Ye && ut && ut.color && (Ye = ut.color, Pe = !0);
                    var Ze = A.getPatternAttr(Ye, Le.i, ut && ut.color || null), rt = A.getPatternAttr(We.bgcolor, Le.i, null), tt = We.fgopacity, Ft = A.getPatternAttr(We.size, Le.i, 8), Dt = A.getPatternAttr(We.solidity, Le.i, 0.3);
                    Pe = Pe || Le.mcc || p.isArrayOrTypedArray(We.shape) || p.isArrayOrTypedArray(We.bgcolor) || p.isArrayOrTypedArray(We.fgcolor) || p.isArrayOrTypedArray(We.size) || p.isArrayOrTypedArray(We.solidity);
                    var dt = Oe.uid;
                    Pe && (dt += "-" + Le.i), A.pattern(ze, "point", it, dt, je, Ft, Dt, Le.mcc, We.fillmode, rt, Ze, tt);
                  } else
                    p.isArrayOrTypedArray(jt) ? d.fill(ze, jt[Le.i]) : d.fill(ze, jt);
                  Jt && d.stroke(ze, nr);
                }
              }, A.makePointStyleFns = function(Le) {
                var ze = {}, Oe = Le.marker;
                return ze.markerScale = A.tryColorscale(Oe, ""), ze.lineScale = A.tryColorscale(Oe, "line"), c.traceIs(Le, "symbols") && (ze.ms2mrc = S.isBubble(Le) ? T(Le) : function() {
                  return (Oe.size || 6) / 2;
                }), Le.selectedpoints && p.extendFlat(ze, A.makeSelectedPointStyleFns(Le)), ze;
              }, A.makeSelectedPointStyleFns = function(Le) {
                var ze = {}, Oe = Le.selected || {}, Xe = Le.unselected || {}, it = Le.marker || {}, ut = Oe.marker || {}, wt = Xe.marker || {}, kt = it.opacity, Ot = ut.opacity, Lt = wt.opacity, Mt = Ot !== void 0, Ut = Lt !== void 0;
                (p.isArrayOrTypedArray(kt) || Mt || Ut) && (ze.selectedOpacityFn = function(je) {
                  var lt = je.mo === void 0 ? it.opacity : je.mo;
                  return je.selected ? Mt ? Ot : lt : Ut ? Lt : w * lt;
                });
                var Ct = it.color, jt = ut.color, nr = wt.color;
                (jt || nr) && (ze.selectedColorFn = function(je) {
                  var lt = je.mcc || Ct;
                  return je.selected ? jt || lt : nr || lt;
                });
                var Jt = it.size, Wt = ut.size, qe = wt.size, Ue = Wt !== void 0, We = qe !== void 0;
                return c.traceIs(Le, "symbols") && (Ue || We) && (ze.selectedSizeFn = function(je) {
                  var lt = je.mrc || Jt / 2;
                  return je.selected ? Ue ? Wt / 2 : lt : We ? qe / 2 : lt;
                }), ze;
              }, A.makeSelectedTextStyleFns = function(Le) {
                var ze = {}, Oe = Le.selected || {}, Xe = Le.unselected || {}, it = Le.textfont || {}, ut = Oe.textfont || {}, wt = Xe.textfont || {}, kt = it.color, Ot = ut.color, Lt = wt.color;
                return ze.selectedTextColorFn = function(Mt) {
                  var Ut = Mt.tc || kt;
                  return Mt.selected ? Ot || Ut : Lt || (Ot ? Ut : d.addOpacity(Ut, w));
                }, ze;
              }, A.selectedPointStyle = function(Le, ze) {
                if (!(!Le.size() || !ze.selectedpoints)) {
                  var Oe = A.makeSelectedPointStyleFns(ze), Xe = ze.marker || {}, it = [];
                  Oe.selectedOpacityFn && it.push(function(ut, wt) {
                    ut.style("opacity", Oe.selectedOpacityFn(wt));
                  }), Oe.selectedColorFn && it.push(function(ut, wt) {
                    d.fill(ut, Oe.selectedColorFn(wt));
                  }), Oe.selectedSizeFn && it.push(function(ut, wt) {
                    var kt = wt.mx || Xe.symbol || 0, Ot = Oe.selectedSizeFn(wt);
                    ut.attr("d", B(A.symbolNumber(kt), Ot, at(wt, ze), H(wt, ze))), wt.mrc2 = Ot;
                  }), it.length && Le.each(function(ut) {
                    for (var wt = a.select(this), kt = 0; kt < it.length; kt++)
                      it[kt](wt, ut);
                  });
                }
              }, A.tryColorscale = function(Le, ze) {
                var Oe = ze ? p.nestedProperty(Le, ze).get() : Le;
                if (Oe) {
                  var Xe = Oe.color;
                  if ((Oe.colorscale || Oe._colorAx) && p.isArrayOrTypedArray(Xe))
                    return h.makeColorScaleFuncFromTrace(Oe);
                }
                return p.identity;
              };
              var se = {
                start: 1,
                end: -1,
                middle: 0,
                bottom: 1,
                top: -1
              };
              function me(Le, ze, Oe, Xe, it) {
                var ut = a.select(Le.node().parentNode), wt = ze.indexOf("top") !== -1 ? "top" : ze.indexOf("bottom") !== -1 ? "bottom" : "middle", kt = ze.indexOf("left") !== -1 ? "end" : ze.indexOf("right") !== -1 ? "start" : "middle", Ot = Xe ? Xe / 0.8 + 1 : 0, Lt = (b.lineCount(Le) - 1) * C + 1, Mt = se[kt] * Ot, Ut = Oe * 0.75 + se[wt] * Ot + (se[wt] - 1) * Lt * Oe / 2;
                Le.attr("text-anchor", kt), it || ut.attr("transform", i(Mt, Ut));
              }
              function J(Le, ze) {
                var Oe = Le.ts || ze.textfont.size;
                return f(Oe) && Oe > 0 ? Oe : 0;
              }
              A.textPointStyle = function(Le, ze, Oe) {
                if (Le.size()) {
                  var Xe;
                  if (ze.selectedpoints) {
                    var it = A.makeSelectedTextStyleFns(ze);
                    Xe = it.selectedTextColorFn;
                  }
                  var ut = ze.texttemplate, wt = Oe._fullLayout;
                  Le.each(function(kt) {
                    var Ot = a.select(this), Lt = ut ? p.extractOption(kt, ze, "txt", "texttemplate") : p.extractOption(kt, ze, "tx", "text");
                    if (!Lt && Lt !== 0) {
                      Ot.remove();
                      return;
                    }
                    if (ut) {
                      var Mt = ze._module.formatLabels, Ut = Mt ? Mt(kt, ze, wt) : {}, Ct = {};
                      k(Ct, ze, kt.i);
                      var jt = ze._meta || {};
                      Lt = p.texttemplateString(Lt, Ut, wt._d3locale, Ct, kt, jt);
                    }
                    var nr = kt.tp || ze.textposition, Jt = J(kt, ze), Wt = Xe ? Xe(kt) : kt.tc || ze.textfont.color;
                    Ot.call(A.font, {
                      family: kt.tf || ze.textfont.family,
                      weight: kt.tw || ze.textfont.weight,
                      style: kt.ty || ze.textfont.style,
                      variant: kt.tv || ze.textfont.variant,
                      textcase: kt.tC || ze.textfont.textcase,
                      lineposition: kt.tE || ze.textfont.lineposition,
                      shadow: kt.tS || ze.textfont.shadow,
                      size: Jt,
                      color: Wt
                    }).text(Lt).call(b.convertToTspans, Oe).call(me, nr, Jt, kt.mrc);
                  });
                }
              }, A.selectedTextStyle = function(Le, ze) {
                if (!(!Le.size() || !ze.selectedpoints)) {
                  var Oe = A.makeSelectedTextStyleFns(ze);
                  Le.each(function(Xe) {
                    var it = a.select(this), ut = Oe.selectedTextColorFn(Xe), wt = Xe.tp || ze.textposition, kt = J(Xe, ze);
                    d.fill(it, ut);
                    var Ot = c.traceIs(ze, "bar-like");
                    me(it, wt, kt, Xe.mrc2 || Xe.mrc, Ot);
                  });
                }
              };
              var W = 0.5;
              A.smoothopen = function(Le, ze) {
                if (Le.length < 3)
                  return "M" + Le.join("L");
                var Oe = "M" + Le[0], Xe = [], it;
                for (it = 1; it < Le.length - 1; it++)
                  Xe.push(Ce(Le[it - 1], Le[it], Le[it + 1], ze));
                for (Oe += "Q" + Xe[0][0] + " " + Le[1], it = 2; it < Le.length - 1; it++)
                  Oe += "C" + Xe[it - 2][1] + " " + Xe[it - 1][0] + " " + Le[it];
                return Oe += "Q" + Xe[Le.length - 3][1] + " " + Le[Le.length - 1], Oe;
              }, A.smoothclosed = function(Le, ze) {
                if (Le.length < 3)
                  return "M" + Le.join("L") + "Z";
                var Oe = "M" + Le[0], Xe = Le.length - 1, it = [Ce(Le[Xe], Le[0], Le[1], ze)], ut;
                for (ut = 1; ut < Xe; ut++)
                  it.push(Ce(Le[ut - 1], Le[ut], Le[ut + 1], ze));
                for (it.push(Ce(Le[Xe - 1], Le[Xe], Le[0], ze)), ut = 1; ut <= Xe; ut++)
                  Oe += "C" + it[ut - 1][1] + " " + it[ut][0] + " " + Le[ut];
                return Oe += "C" + it[Xe][1] + " " + it[0][0] + " " + Le[0] + "Z", Oe;
              };
              var ae, oe;
              function ve(Le, ze, Oe) {
                return Oe && (Le = xe(Le)), ze ? ye(Le[1]) : fe(Le[0]);
              }
              function fe(Le) {
                var ze = a.round(Le, 2);
                return ae = ze, ze;
              }
              function ye(Le) {
                var ze = a.round(Le, 2);
                return oe = ze, ze;
              }
              function Ce(Le, ze, Oe, Xe) {
                var it = Le[0] - ze[0], ut = Le[1] - ze[1], wt = Oe[0] - ze[0], kt = Oe[1] - ze[1], Ot = Math.pow(it * it + ut * ut, W / 2), Lt = Math.pow(wt * wt + kt * kt, W / 2), Mt = (Lt * Lt * it - Ot * Ot * wt) * Xe, Ut = (Lt * Lt * ut - Ot * Ot * kt) * Xe, Ct = 3 * Lt * (Ot + Lt), jt = 3 * Ot * (Ot + Lt);
                return [[fe(ze[0] + (Ct && Mt / Ct)), ye(ze[1] + (Ct && Ut / Ct))], [fe(ze[0] - (jt && Mt / jt)), ye(ze[1] - (jt && Ut / jt))]];
              }
              var Re = {
                hv: function(Le, ze, Oe) {
                  return "H" + fe(ze[0]) + "V" + ve(ze, 1, Oe);
                },
                vh: function(Le, ze, Oe) {
                  return "V" + ye(ze[1]) + "H" + ve(ze, 0, Oe);
                },
                hvh: function(Le, ze, Oe) {
                  return "H" + fe((Le[0] + ze[0]) / 2) + "V" + ye(ze[1]) + "H" + ve(ze, 0, Oe);
                },
                vhv: function(Le, ze, Oe) {
                  return "V" + ye((Le[1] + ze[1]) / 2) + "H" + fe(ze[0]) + "V" + ve(ze, 1, Oe);
                }
              }, Be = function(Le, ze, Oe) {
                return "L" + ve(ze, 0, Oe) + "," + ve(ze, 1, Oe);
              };
              A.steps = function(Le) {
                var ze = Re[Le] || Be;
                return function(Oe) {
                  for (var Xe = "M" + fe(Oe[0][0]) + "," + ye(Oe[0][1]), it = Oe.length, ut = 1; ut < it; ut++)
                    Xe += ze(Oe[ut - 1], Oe[ut], ut === it - 1);
                  return Xe;
                };
              };
              function xe(Le, ze) {
                var Oe = Le.backoff, Xe = Le.trace, it = Le.d, ut = Le.i;
                if (Oe && Xe && Xe.marker && Xe.marker.angle % 360 === 0 && Xe.line && Xe.line.shape !== "spline") {
                  var wt = p.isArrayOrTypedArray(Oe), kt = Le, Ot = ze ? ze[0] : ae || 0, Lt = ze ? ze[1] : oe || 0, Mt = kt[0], Ut = kt[1], Ct = Mt - Ot, jt = Ut - Lt, nr = Math.atan2(jt, Ct), Jt = wt ? Oe[ut] : Oe;
                  if (Jt === "auto") {
                    var Wt = kt.i;
                    Xe.type === "scatter" && Wt--;
                    var qe = kt.marker, Ue = qe.symbol;
                    p.isArrayOrTypedArray(Ue) && (Ue = Ue[Wt]);
                    var We = qe.size;
                    p.isArrayOrTypedArray(We) && (We = We[Wt]), Jt = qe ? A.symbolBackOffs[A.symbolNumber(Ue)] * We : 0, Jt += A.getMarkerStandoff(it[Wt], Xe) || 0;
                  }
                  var je = Mt - Jt * Math.cos(nr), lt = Ut - Jt * Math.sin(nr);
                  (je <= Mt && je >= Ot || je >= Mt && je <= Ot) && (lt <= Ut && lt >= Lt || lt >= Ut && lt <= Lt) && (Le = [je, lt]);
                }
                return Le;
              }
              A.applyBackoff = xe, A.makeTester = function() {
                var Le = p.ensureSingleById(a.select("body"), "svg", "js-plotly-tester", function(Oe) {
                  Oe.attr(x.svgAttrs).style({
                    position: "absolute",
                    left: "-10000px",
                    top: "-10000px",
                    width: "9000px",
                    height: "9000px",
                    "z-index": "1"
                  });
                }), ze = p.ensureSingle(Le, "path", "js-reference-point", function(Oe) {
                  Oe.attr("d", "M0,0H1V1H0Z").style({
                    "stroke-width": 0,
                    fill: "black"
                  });
                });
                A.tester = Le, A.testref = ze;
              }, A.savedBBoxes = {};
              var Me = 0, De = 1e4;
              A.bBox = function(Le, ze, Oe) {
                Oe || (Oe = Z(Le));
                var Xe;
                if (Oe) {
                  if (Xe = A.savedBBoxes[Oe], Xe)
                    return p.extendFlat({}, Xe);
                } else if (Le.childNodes.length === 1) {
                  var it = Le.childNodes[0];
                  if (Oe = Z(it), Oe) {
                    var ut = +it.getAttribute("x") || 0, wt = +it.getAttribute("y") || 0, kt = it.getAttribute("transform");
                    if (!kt) {
                      var Ot = A.bBox(it, !1, Oe);
                      return ut && (Ot.left += ut, Ot.right += ut), wt && (Ot.top += wt, Ot.bottom += wt), Ot;
                    }
                    if (Oe += "~" + ut + "~" + wt + "~" + kt, Xe = A.savedBBoxes[Oe], Xe)
                      return p.extendFlat({}, Xe);
                  }
                }
                var Lt, Mt;
                ze ? Lt = Le : (Mt = A.tester.node(), Lt = Le.cloneNode(!0), Mt.appendChild(Lt)), a.select(Lt).attr("transform", null).call(b.positionText, 0, 0);
                var Ut = Lt.getBoundingClientRect(), Ct = A.testref.node().getBoundingClientRect();
                ze || Mt.removeChild(Lt);
                var jt = {
                  height: Ut.height,
                  width: Ut.width,
                  left: Ut.left - Ct.left,
                  top: Ut.top - Ct.top,
                  right: Ut.right - Ct.left,
                  bottom: Ut.bottom - Ct.top
                };
                return Me >= De && (A.savedBBoxes = {}, Me = 0), Oe && (A.savedBBoxes[Oe] = jt), Me++, p.extendFlat({}, jt);
              };
              function Z(Le) {
                var ze = Le.getAttribute("data-unformatted");
                if (ze !== null)
                  return ze + Le.getAttribute("data-math") + Le.getAttribute("text-anchor") + Le.getAttribute("style");
              }
              A.setClipUrl = function(Le, ze, Oe) {
                Le.attr("clip-path", ee(ze, Oe));
              };
              function ee(Le, ze) {
                if (!Le)
                  return null;
                var Oe = ze._context, Xe = Oe._exportedPlot ? "" : Oe._baseUrl || "";
                return Xe ? "url('" + Xe + "#" + Le + "')" : "url(#" + Le + ")";
              }
              A.getTranslate = function(Le) {
                var ze = /.*\btranslate\((-?\d*\.?\d*)[^-\d]*(-?\d*\.?\d*)[^\d].*/, Oe = Le.attr ? "attr" : "getAttribute", Xe = Le[Oe]("transform") || "", it = Xe.replace(ze, function(ut, wt, kt) {
                  return [wt, kt].join(" ");
                }).split(" ");
                return {
                  x: +it[0] || 0,
                  y: +it[1] || 0
                };
              }, A.setTranslate = function(Le, ze, Oe) {
                var Xe = /(\btranslate\(.*?\);?)/, it = Le.attr ? "attr" : "getAttribute", ut = Le.attr ? "attr" : "setAttribute", wt = Le[it]("transform") || "";
                return ze = ze || 0, Oe = Oe || 0, wt = wt.replace(Xe, "").trim(), wt += i(ze, Oe), wt = wt.trim(), Le[ut]("transform", wt), wt;
              }, A.getScale = function(Le) {
                var ze = /.*\bscale\((\d*\.?\d*)[^\d]*(\d*\.?\d*)[^\d].*/, Oe = Le.attr ? "attr" : "getAttribute", Xe = Le[Oe]("transform") || "", it = Xe.replace(ze, function(ut, wt, kt) {
                  return [wt, kt].join(" ");
                }).split(" ");
                return {
                  x: +it[0] || 1,
                  y: +it[1] || 1
                };
              }, A.setScale = function(Le, ze, Oe) {
                var Xe = /(\bscale\(.*?\);?)/, it = Le.attr ? "attr" : "getAttribute", ut = Le.attr ? "attr" : "setAttribute", wt = Le[it]("transform") || "";
                return ze = ze || 1, Oe = Oe || 1, wt = wt.replace(Xe, "").trim(), wt += "scale(" + ze + "," + Oe + ")", wt = wt.trim(), Le[ut]("transform", wt), wt;
              };
              var ie = /\s*sc.*/;
              A.setPointGroupScale = function(Le, ze, Oe) {
                if (ze = ze || 1, Oe = Oe || 1, !!Le) {
                  var Xe = ze === 1 && Oe === 1 ? "" : "scale(" + ze + "," + Oe + ")";
                  Le.each(function() {
                    var it = (this.getAttribute("transform") || "").replace(ie, "");
                    it += Xe, it = it.trim(), this.setAttribute("transform", it);
                  });
                }
              };
              var G = /translate\([^)]*\)\s*$/;
              A.setTextPointsScale = function(Le, ze, Oe) {
                Le && Le.each(function() {
                  var Xe, it = a.select(this), ut = it.select("text");
                  if (ut.node()) {
                    var wt = parseFloat(ut.attr("x") || 0), kt = parseFloat(ut.attr("y") || 0), Ot = (it.attr("transform") || "").match(G);
                    ze === 1 && Oe === 1 ? Xe = [] : Xe = [i(wt, kt), "scale(" + ze + "," + Oe + ")", i(-wt, -kt)], Ot && Xe.push(Ot), it.attr("transform", Xe.join(""));
                  }
                });
              };
              function H(Le, ze) {
                var Oe;
                return Le && (Oe = Le.mf), Oe === void 0 && (Oe = ze.marker && ze.marker.standoff || 0), !ze._geo && !ze._xA ? -Oe : Oe;
              }
              A.getMarkerStandoff = H;
              var ce = Math.atan2, j = Math.cos, he = Math.sin;
              function be(Le, ze) {
                var Oe = ze[0], Xe = ze[1];
                return [Oe * j(Le) - Xe * he(Le), Oe * he(Le) + Xe * j(Le)];
              }
              var we, Ie, Ge, Ve, Je, et;
              function at(Le, ze) {
                var Oe = Le.ma;
                Oe === void 0 && (Oe = ze.marker.angle, (!Oe || p.isArrayOrTypedArray(Oe)) && (Oe = 0));
                var Xe, it, ut = ze.marker.angleref;
                if (ut === "previous" || ut === "north") {
                  if (ze._geo) {
                    var wt = ze._geo.project(Le.lonlat);
                    Xe = wt[0], it = wt[1];
                  } else {
                    var kt = ze._xA, Ot = ze._yA;
                    if (kt && Ot)
                      Xe = kt.c2p(Le.x), it = Ot.c2p(Le.y);
                    else
                      return 90;
                  }
                  if (ze._geo) {
                    var Lt = Le.lonlat[0], Mt = Le.lonlat[1], Ut = ze._geo.project([
                      Lt,
                      Mt + 1e-5
                      // epsilon
                    ]), Ct = ze._geo.project([
                      Lt + 1e-5,
                      // epsilon
                      Mt
                    ]), jt = ce(Ct[1] - it, Ct[0] - Xe), nr = ce(Ut[1] - it, Ut[0] - Xe), Jt;
                    if (ut === "north")
                      Jt = Oe / 180 * Math.PI;
                    else if (ut === "previous") {
                      var Wt = Lt / 180 * Math.PI, qe = Mt / 180 * Math.PI, Ue = we / 180 * Math.PI, We = Ie / 180 * Math.PI, je = Ue - Wt, lt = j(We) * he(je), Se = he(We) * j(qe) - j(We) * he(qe) * j(je);
                      Jt = -ce(lt, Se) - Math.PI, we = Lt, Ie = Mt;
                    }
                    var Pe = be(jt, [j(Jt), 0]), Ye = be(nr, [he(Jt), 0]);
                    Oe = ce(Pe[1] + Ye[1], Pe[0] + Ye[0]) / Math.PI * 180, ut === "previous" && !(et === ze.uid && Le.i === Je + 1) && (Oe = null);
                  }
                  if (ut === "previous" && !ze._geo)
                    if (et === ze.uid && Le.i === Je + 1 && f(Xe) && f(it)) {
                      var Ze = Xe - Ge, rt = it - Ve, tt = ze.line && ze.line.shape || "", Ft = tt.slice(tt.length - 1);
                      Ft === "h" && (rt = 0), Ft === "v" && (Ze = 0), Oe += ce(rt, Ze) / Math.PI * 180 + 90;
                    } else
                      Oe = null;
                }
                return Ge = Xe, Ve = it, Je = Le.i, et = ze.uid, Oe;
              }
              A.getMarkerAngle = at;
            }
          ),
          /***/
          1984: (
            /***/
            function(M, L, r) {
              var a = r(9604), p = r(3428).round, l = "M0,0Z", f = Math.sqrt(2), u = Math.sqrt(3), c = Math.PI, d = Math.cos, h = Math.sin;
              M.exports = {
                circle: {
                  n: 0,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S, 2), R = "M" + A + ",0A" + A + "," + A + " 0 1,1 0,-" + A + "A" + A + "," + A + " 0 0,1 " + A + ",0Z";
                    return k ? w(T, k, R) : R;
                  }
                },
                square: {
                  n: 1,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S, 2);
                    return w(T, k, "M" + A + "," + A + "H-" + A + "V-" + A + "H" + A + "Z");
                  }
                },
                diamond: {
                  n: 2,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * 1.3, 2);
                    return w(T, k, "M" + A + ",0L0," + A + "L-" + A + ",0L0,-" + A + "Z");
                  }
                },
                cross: {
                  n: 3,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * 0.4, 2), R = p(S * 1.2, 2);
                    return w(T, k, "M" + R + "," + A + "H" + A + "V" + R + "H-" + A + "V" + A + "H-" + R + "V-" + A + "H-" + A + "V-" + R + "H" + A + "V-" + A + "H" + R + "Z");
                  }
                },
                x: {
                  n: 4,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * 0.8 / f, 2), R = "l" + A + "," + A, g = "l" + A + ",-" + A, I = "l-" + A + ",-" + A, O = "l-" + A + "," + A;
                    return w(T, k, "M0," + A + R + g + I + g + I + O + I + O + R + O + R + "Z");
                  }
                },
                "triangle-up": {
                  n: 5,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * 2 / u, 2), R = p(S / 2, 2), g = p(S, 2);
                    return w(T, k, "M-" + A + "," + R + "H" + A + "L0,-" + g + "Z");
                  }
                },
                "triangle-down": {
                  n: 6,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * 2 / u, 2), R = p(S / 2, 2), g = p(S, 2);
                    return w(T, k, "M-" + A + ",-" + R + "H" + A + "L0," + g + "Z");
                  }
                },
                "triangle-left": {
                  n: 7,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * 2 / u, 2), R = p(S / 2, 2), g = p(S, 2);
                    return w(T, k, "M" + R + ",-" + A + "V" + A + "L-" + g + ",0Z");
                  }
                },
                "triangle-right": {
                  n: 8,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * 2 / u, 2), R = p(S / 2, 2), g = p(S, 2);
                    return w(T, k, "M-" + R + ",-" + A + "V" + A + "L" + g + ",0Z");
                  }
                },
                "triangle-ne": {
                  n: 9,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * 0.6, 2), R = p(S * 1.2, 2);
                    return w(T, k, "M-" + R + ",-" + A + "H" + A + "V" + R + "Z");
                  }
                },
                "triangle-se": {
                  n: 10,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * 0.6, 2), R = p(S * 1.2, 2);
                    return w(T, k, "M" + A + ",-" + R + "V" + A + "H-" + R + "Z");
                  }
                },
                "triangle-sw": {
                  n: 11,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * 0.6, 2), R = p(S * 1.2, 2);
                    return w(T, k, "M" + R + "," + A + "H-" + A + "V-" + R + "Z");
                  }
                },
                "triangle-nw": {
                  n: 12,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * 0.6, 2), R = p(S * 1.2, 2);
                    return w(T, k, "M-" + A + "," + R + "V-" + A + "H" + R + "Z");
                  }
                },
                pentagon: {
                  n: 13,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * 0.951, 2), R = p(S * 0.588, 2), g = p(-S, 2), I = p(S * -0.309, 2), O = p(S * 0.809, 2);
                    return w(T, k, "M" + A + "," + I + "L" + R + "," + O + "H-" + R + "L-" + A + "," + I + "L0," + g + "Z");
                  }
                },
                hexagon: {
                  n: 14,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S, 2), R = p(S / 2, 2), g = p(S * u / 2, 2);
                    return w(T, k, "M" + g + ",-" + R + "V" + R + "L0," + A + "L-" + g + "," + R + "V-" + R + "L0,-" + A + "Z");
                  }
                },
                hexagon2: {
                  n: 15,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S, 2), R = p(S / 2, 2), g = p(S * u / 2, 2);
                    return w(T, k, "M-" + R + "," + g + "H" + R + "L" + A + ",0L" + R + ",-" + g + "H-" + R + "L-" + A + ",0Z");
                  }
                },
                octagon: {
                  n: 16,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * 0.924, 2), R = p(S * 0.383, 2);
                    return w(T, k, "M-" + R + ",-" + A + "H" + R + "L" + A + ",-" + R + "V" + R + "L" + R + "," + A + "H-" + R + "L-" + A + "," + R + "V-" + R + "Z");
                  }
                },
                star: {
                  n: 17,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = S * 1.4, R = p(A * 0.225, 2), g = p(A * 0.951, 2), I = p(A * 0.363, 2), O = p(A * 0.588, 2), $ = p(-A, 2), Y = p(A * -0.309, 2), ne = p(A * 0.118, 2), q = p(A * 0.809, 2), B = p(A * 0.382, 2);
                    return w(T, k, "M" + R + "," + Y + "H" + g + "L" + I + "," + ne + "L" + O + "," + q + "L0," + B + "L-" + O + "," + q + "L-" + I + "," + ne + "L-" + g + "," + Y + "H-" + R + "L0," + $ + "Z");
                  }
                },
                hexagram: {
                  n: 18,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * 0.66, 2), R = p(S * 0.38, 2), g = p(S * 0.76, 2);
                    return w(T, k, "M-" + g + ",0l-" + R + ",-" + A + "h" + g + "l" + R + ",-" + A + "l" + R + "," + A + "h" + g + "l-" + R + "," + A + "l" + R + "," + A + "h-" + g + "l-" + R + "," + A + "l-" + R + ",-" + A + "h-" + g + "Z");
                  }
                },
                "star-triangle-up": {
                  n: 19,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * u * 0.8, 2), R = p(S * 0.8, 2), g = p(S * 1.6, 2), I = p(S * 4, 2), O = "A " + I + "," + I + " 0 0 1 ";
                    return w(T, k, "M-" + A + "," + R + O + A + "," + R + O + "0,-" + g + O + "-" + A + "," + R + "Z");
                  }
                },
                "star-triangle-down": {
                  n: 20,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * u * 0.8, 2), R = p(S * 0.8, 2), g = p(S * 1.6, 2), I = p(S * 4, 2), O = "A " + I + "," + I + " 0 0 1 ";
                    return w(T, k, "M" + A + ",-" + R + O + "-" + A + ",-" + R + O + "0," + g + O + A + ",-" + R + "Z");
                  }
                },
                "star-square": {
                  n: 21,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * 1.1, 2), R = p(S * 2, 2), g = "A " + R + "," + R + " 0 0 1 ";
                    return w(T, k, "M-" + A + ",-" + A + g + "-" + A + "," + A + g + A + "," + A + g + A + ",-" + A + g + "-" + A + ",-" + A + "Z");
                  }
                },
                "star-diamond": {
                  n: 22,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * 1.4, 2), R = p(S * 1.9, 2), g = "A " + R + "," + R + " 0 0 1 ";
                    return w(T, k, "M-" + A + ",0" + g + "0," + A + g + A + ",0" + g + "0,-" + A + g + "-" + A + ",0Z");
                  }
                },
                "diamond-tall": {
                  n: 23,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * 0.7, 2), R = p(S * 1.4, 2);
                    return w(T, k, "M0," + R + "L" + A + ",0L0,-" + R + "L-" + A + ",0Z");
                  }
                },
                "diamond-wide": {
                  n: 24,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * 1.4, 2), R = p(S * 0.7, 2);
                    return w(T, k, "M0," + R + "L" + A + ",0L0,-" + R + "L-" + A + ",0Z");
                  }
                },
                hourglass: {
                  n: 25,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S, 2);
                    return w(T, k, "M" + A + "," + A + "H-" + A + "L" + A + ",-" + A + "H-" + A + "Z");
                  },
                  noDot: !0
                },
                bowtie: {
                  n: 26,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S, 2);
                    return w(T, k, "M" + A + "," + A + "V-" + A + "L-" + A + "," + A + "V-" + A + "Z");
                  },
                  noDot: !0
                },
                "circle-cross": {
                  n: 27,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S, 2);
                    return w(T, k, "M0," + A + "V-" + A + "M" + A + ",0H-" + A + "M" + A + ",0A" + A + "," + A + " 0 1,1 0,-" + A + "A" + A + "," + A + " 0 0,1 " + A + ",0Z");
                  },
                  needLine: !0,
                  noDot: !0
                },
                "circle-x": {
                  n: 28,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S, 2), R = p(S / f, 2);
                    return w(T, k, "M" + R + "," + R + "L-" + R + ",-" + R + "M" + R + ",-" + R + "L-" + R + "," + R + "M" + A + ",0A" + A + "," + A + " 0 1,1 0,-" + A + "A" + A + "," + A + " 0 0,1 " + A + ",0Z");
                  },
                  needLine: !0,
                  noDot: !0
                },
                "square-cross": {
                  n: 29,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S, 2);
                    return w(T, k, "M0," + A + "V-" + A + "M" + A + ",0H-" + A + "M" + A + "," + A + "H-" + A + "V-" + A + "H" + A + "Z");
                  },
                  needLine: !0,
                  noDot: !0
                },
                "square-x": {
                  n: 30,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S, 2);
                    return w(T, k, "M" + A + "," + A + "L-" + A + ",-" + A + "M" + A + ",-" + A + "L-" + A + "," + A + "M" + A + "," + A + "H-" + A + "V-" + A + "H" + A + "Z");
                  },
                  needLine: !0,
                  noDot: !0
                },
                "diamond-cross": {
                  n: 31,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * 1.3, 2);
                    return w(T, k, "M" + A + ",0L0," + A + "L-" + A + ",0L0,-" + A + "ZM0,-" + A + "V" + A + "M-" + A + ",0H" + A);
                  },
                  needLine: !0,
                  noDot: !0
                },
                "diamond-x": {
                  n: 32,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * 1.3, 2), R = p(S * 0.65, 2);
                    return w(T, k, "M" + A + ",0L0," + A + "L-" + A + ",0L0,-" + A + "ZM-" + R + ",-" + R + "L" + R + "," + R + "M-" + R + "," + R + "L" + R + ",-" + R);
                  },
                  needLine: !0,
                  noDot: !0
                },
                "cross-thin": {
                  n: 33,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * 1.4, 2);
                    return w(T, k, "M0," + A + "V-" + A + "M" + A + ",0H-" + A);
                  },
                  needLine: !0,
                  noDot: !0,
                  noFill: !0
                },
                "x-thin": {
                  n: 34,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S, 2);
                    return w(T, k, "M" + A + "," + A + "L-" + A + ",-" + A + "M" + A + ",-" + A + "L-" + A + "," + A);
                  },
                  needLine: !0,
                  noDot: !0,
                  noFill: !0
                },
                asterisk: {
                  n: 35,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * 1.2, 2), R = p(S * 0.85, 2);
                    return w(T, k, "M0," + A + "V-" + A + "M" + A + ",0H-" + A + "M" + R + "," + R + "L-" + R + ",-" + R + "M" + R + ",-" + R + "L-" + R + "," + R);
                  },
                  needLine: !0,
                  noDot: !0,
                  noFill: !0
                },
                hash: {
                  n: 36,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S / 2, 2), R = p(S, 2);
                    return w(T, k, "M" + A + "," + R + "V-" + R + "M" + (A - R) + ",-" + R + "V" + R + "M" + R + "," + A + "H-" + R + "M-" + R + "," + (A - R) + "H" + R);
                  },
                  needLine: !0,
                  noFill: !0
                },
                "y-up": {
                  n: 37,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * 1.2, 2), R = p(S * 1.6, 2), g = p(S * 0.8, 2);
                    return w(T, k, "M-" + A + "," + g + "L0,0M" + A + "," + g + "L0,0M0,-" + R + "L0,0");
                  },
                  needLine: !0,
                  noDot: !0,
                  noFill: !0
                },
                "y-down": {
                  n: 38,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * 1.2, 2), R = p(S * 1.6, 2), g = p(S * 0.8, 2);
                    return w(T, k, "M-" + A + ",-" + g + "L0,0M" + A + ",-" + g + "L0,0M0," + R + "L0,0");
                  },
                  needLine: !0,
                  noDot: !0,
                  noFill: !0
                },
                "y-left": {
                  n: 39,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * 1.2, 2), R = p(S * 1.6, 2), g = p(S * 0.8, 2);
                    return w(T, k, "M" + g + "," + A + "L0,0M" + g + ",-" + A + "L0,0M-" + R + ",0L0,0");
                  },
                  needLine: !0,
                  noDot: !0,
                  noFill: !0
                },
                "y-right": {
                  n: 40,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * 1.2, 2), R = p(S * 1.6, 2), g = p(S * 0.8, 2);
                    return w(T, k, "M-" + g + "," + A + "L0,0M-" + g + ",-" + A + "L0,0M" + R + ",0L0,0");
                  },
                  needLine: !0,
                  noDot: !0,
                  noFill: !0
                },
                "line-ew": {
                  n: 41,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * 1.4, 2);
                    return w(T, k, "M" + A + ",0H-" + A);
                  },
                  needLine: !0,
                  noDot: !0,
                  noFill: !0
                },
                "line-ns": {
                  n: 42,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * 1.4, 2);
                    return w(T, k, "M0," + A + "V-" + A);
                  },
                  needLine: !0,
                  noDot: !0,
                  noFill: !0
                },
                "line-ne": {
                  n: 43,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S, 2);
                    return w(T, k, "M" + A + ",-" + A + "L-" + A + "," + A);
                  },
                  needLine: !0,
                  noDot: !0,
                  noFill: !0
                },
                "line-nw": {
                  n: 44,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S, 2);
                    return w(T, k, "M" + A + "," + A + "L-" + A + ",-" + A);
                  },
                  needLine: !0,
                  noDot: !0,
                  noFill: !0
                },
                "arrow-up": {
                  n: 45,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S, 2), R = p(S * 2, 2);
                    return w(T, k, "M0,0L-" + A + "," + R + "H" + A + "Z");
                  },
                  backoff: 1,
                  noDot: !0
                },
                "arrow-down": {
                  n: 46,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S, 2), R = p(S * 2, 2);
                    return w(T, k, "M0,0L-" + A + ",-" + R + "H" + A + "Z");
                  },
                  noDot: !0
                },
                "arrow-left": {
                  n: 47,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * 2, 2), R = p(S, 2);
                    return w(T, k, "M0,0L" + A + ",-" + R + "V" + R + "Z");
                  },
                  noDot: !0
                },
                "arrow-right": {
                  n: 48,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * 2, 2), R = p(S, 2);
                    return w(T, k, "M0,0L-" + A + ",-" + R + "V" + R + "Z");
                  },
                  noDot: !0
                },
                "arrow-bar-up": {
                  n: 49,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S, 2), R = p(S * 2, 2);
                    return w(T, k, "M-" + A + ",0H" + A + "M0,0L-" + A + "," + R + "H" + A + "Z");
                  },
                  backoff: 1,
                  needLine: !0,
                  noDot: !0
                },
                "arrow-bar-down": {
                  n: 50,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S, 2), R = p(S * 2, 2);
                    return w(T, k, "M-" + A + ",0H" + A + "M0,0L-" + A + ",-" + R + "H" + A + "Z");
                  },
                  needLine: !0,
                  noDot: !0
                },
                "arrow-bar-left": {
                  n: 51,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * 2, 2), R = p(S, 2);
                    return w(T, k, "M0,-" + R + "V" + R + "M0,0L" + A + ",-" + R + "V" + R + "Z");
                  },
                  needLine: !0,
                  noDot: !0
                },
                "arrow-bar-right": {
                  n: 52,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = p(S * 2, 2), R = p(S, 2);
                    return w(T, k, "M0,-" + R + "V" + R + "M0,0L-" + A + ",-" + R + "V" + R + "Z");
                  },
                  needLine: !0,
                  noDot: !0
                },
                arrow: {
                  n: 53,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = c / 2.5, R = 2 * S * d(A), g = 2 * S * h(A);
                    return w(T, k, "M0,0L" + -R + "," + g + "L" + R + "," + g + "Z");
                  },
                  backoff: 0.9,
                  noDot: !0
                },
                "arrow-wide": {
                  n: 54,
                  f: function(S, T, k) {
                    if (i(T))
                      return l;
                    var A = c / 4, R = 2 * S * d(A), g = 2 * S * h(A);
                    return w(T, k, "M0,0L" + -R + "," + g + "A " + 2 * S + "," + 2 * S + " 0 0 1 " + R + "," + g + "Z");
                  },
                  backoff: 0.4,
                  noDot: !0
                }
              };
              function i(S) {
                return S === null;
              }
              var b, x, D, C;
              function w(S, T, k) {
                if ((!S || S % 360 === 0) && !T)
                  return k;
                if (D === S && C === T && b === k)
                  return x;
                D = S, C = T, b = k;
                function A(se, me) {
                  var J = d(se), W = h(se), ae = me[0], oe = me[1] + (T || 0);
                  return [ae * J - oe * W, ae * W + oe * J];
                }
                for (var R = S / 180 * c, g = 0, I = 0, O = a(k), $ = "", Y = 0; Y < O.length; Y++) {
                  var ne = O[Y], q = ne[0], B = g, X = I;
                  if (q === "M" || q === "L")
                    g = +ne[1], I = +ne[2];
                  else if (q === "m" || q === "l")
                    g += +ne[1], I += +ne[2];
                  else if (q === "H")
                    g = +ne[1];
                  else if (q === "h")
                    g += +ne[1];
                  else if (q === "V")
                    I = +ne[1];
                  else if (q === "v")
                    I += +ne[1];
                  else if (q === "A") {
                    g = +ne[1], I = +ne[2];
                    var U = A(R, [+ne[6], +ne[7]]);
                    ne[6] = U[0], ne[7] = U[1], ne[3] = +ne[3] + S;
                  }
                  (q === "H" || q === "V") && (q = "L"), (q === "h" || q === "v") && (q = "l"), (q === "m" || q === "l") && (g -= B, I -= X);
                  var te = A(R, [g, I]);
                  (q === "H" || q === "V") && (q = "L"), (q === "M" || q === "L" || q === "m" || q === "l") && (ne[1] = te[0], ne[2] = te[1]), ne[0] = q, $ += ne[0] + ne.slice(1).join(",");
                }
                return x = $, $;
              }
            }
          ),
          /***/
          7644: (
            /***/
            function(M) {
              M.exports = {
                visible: {
                  valType: "boolean",
                  editType: "calc"
                },
                type: {
                  valType: "enumerated",
                  values: ["percent", "constant", "sqrt", "data"],
                  editType: "calc"
                },
                symmetric: {
                  valType: "boolean",
                  editType: "calc"
                },
                array: {
                  valType: "data_array",
                  editType: "calc"
                },
                arrayminus: {
                  valType: "data_array",
                  editType: "calc"
                },
                value: {
                  valType: "number",
                  min: 0,
                  dflt: 10,
                  editType: "calc"
                },
                valueminus: {
                  valType: "number",
                  min: 0,
                  dflt: 10,
                  editType: "calc"
                },
                traceref: {
                  valType: "integer",
                  min: 0,
                  dflt: 0,
                  editType: "style"
                },
                tracerefminus: {
                  valType: "integer",
                  min: 0,
                  dflt: 0,
                  editType: "style"
                },
                copy_ystyle: {
                  valType: "boolean",
                  editType: "plot"
                },
                copy_zstyle: {
                  valType: "boolean",
                  editType: "style"
                },
                color: {
                  valType: "color",
                  editType: "style"
                },
                thickness: {
                  valType: "number",
                  min: 0,
                  dflt: 2,
                  editType: "style"
                },
                width: {
                  valType: "number",
                  min: 0,
                  editType: "plot"
                },
                editType: "calc",
                _deprecated: {
                  opacity: {
                    valType: "number",
                    editType: "style"
                  }
                }
              };
            }
          ),
          /***/
          4880: (
            /***/
            function(M, L, r) {
              var a = r(8248), p = r(4040), l = r(4460), f = r(3400), u = r(3792);
              M.exports = function(h) {
                for (var i = h.calcdata, b = 0; b < i.length; b++) {
                  var x = i[b], D = x[0].trace;
                  if (D.visible === !0 && p.traceIs(D, "errorBarsOK")) {
                    var C = l.getFromId(h, D.xaxis), w = l.getFromId(h, D.yaxis);
                    c(x, D, C, "x"), c(x, D, w, "y");
                  }
                }
              };
              function c(d, h, i, b) {
                var x = h["error_" + b] || {}, D = x.visible && ["linear", "log"].indexOf(i.type) !== -1, C = [];
                if (D) {
                  for (var w = u(x), S = 0; S < d.length; S++) {
                    var T = d[S], k = T.i;
                    if (k === void 0)
                      k = S;
                    else if (k === null)
                      continue;
                    var A = T[b];
                    if (a(i.c2l(A))) {
                      var R = w(A, k);
                      if (a(R[0]) && a(R[1])) {
                        var g = T[b + "s"] = A - R[0], I = T[b + "h"] = A + R[1];
                        C.push(g, I);
                      }
                    }
                  }
                  var O = i._id, $ = h._extremes[O], Y = l.findExtremes(i, C, f.extendFlat({
                    tozero: $.opts.tozero
                  }, {
                    padded: !0
                  }));
                  $.min = $.min.concat(Y.min), $.max = $.max.concat(Y.max);
                }
              }
            }
          ),
          /***/
          3792: (
            /***/
            function(M) {
              M.exports = function(a) {
                var p = a.type, l = a.symmetric;
                if (p === "data") {
                  var f = a.array || [];
                  if (l)
                    return function(i, b) {
                      var x = +f[b];
                      return [x, x];
                    };
                  var u = a.arrayminus || [];
                  return function(i, b) {
                    var x = +f[b], D = +u[b];
                    return !isNaN(x) || !isNaN(D) ? [D || 0, x || 0] : [NaN, NaN];
                  };
                } else {
                  var c = L(p, a.value), d = L(p, a.valueminus);
                  return l || a.valueminus === void 0 ? function(i) {
                    var b = c(i);
                    return [b, b];
                  } : function(i) {
                    return [d(i), c(i)];
                  };
                }
              };
              function L(r, a) {
                if (r === "percent")
                  return function(p) {
                    return Math.abs(p * a / 100);
                  };
                if (r === "constant")
                  return function() {
                    return Math.abs(a);
                  };
                if (r === "sqrt")
                  return function(p) {
                    return Math.sqrt(Math.abs(p));
                  };
              }
            }
          ),
          /***/
          5200: (
            /***/
            function(M, L, r) {
              var a = r(8248), p = r(4040), l = r(3400), f = r(1780), u = r(7644);
              M.exports = function(c, d, h, i) {
                var b = "error_" + i.axis, x = f.newContainer(d, b), D = c[b] || {};
                function C(g, I) {
                  return l.coerce(D, x, u, g, I);
                }
                var w = D.array !== void 0 || D.value !== void 0 || D.type === "sqrt", S = C("visible", w);
                if (S !== !1) {
                  var T = C("type", "array" in D ? "data" : "percent"), k = !0;
                  T !== "sqrt" && (k = C("symmetric", !((T === "data" ? "arrayminus" : "valueminus") in D))), T === "data" ? (C("array"), C("traceref"), k || (C("arrayminus"), C("tracerefminus"))) : (T === "percent" || T === "constant") && (C("value"), k || C("valueminus"));
                  var A = "copy_" + i.inherit + "style";
                  if (i.inherit) {
                    var R = d["error_" + i.inherit];
                    (R || {}).visible && C(A, !(D.color || a(D.thickness) || a(D.width)));
                  }
                  (!i.inherit || !x[A]) && (C("color", h), C("thickness"), C("width", p.traceIs(d, "gl3d") ? 0 : 4));
                }
              };
            }
          ),
          /***/
          4968: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(7824).overrideAll, l = r(7644), f = {
                error_x: a.extendFlat({}, l),
                error_y: a.extendFlat({}, l)
              };
              delete f.error_x.copy_zstyle, delete f.error_y.copy_zstyle, delete f.error_y.copy_ystyle;
              var u = {
                error_x: a.extendFlat({}, l),
                error_y: a.extendFlat({}, l),
                error_z: a.extendFlat({}, l)
              };
              delete u.error_x.copy_ystyle, delete u.error_y.copy_ystyle, delete u.error_z.copy_ystyle, delete u.error_z.copy_zstyle, M.exports = {
                moduleType: "component",
                name: "errorbars",
                schema: {
                  traces: {
                    scatter: f,
                    bar: f,
                    histogram: f,
                    scatter3d: p(u, "calc", "nested"),
                    scattergl: p(f, "calc", "nested")
                  }
                },
                supplyDefaults: r(5200),
                calc: r(4880),
                makeComputeError: r(3792),
                plot: r(8512),
                style: r(2036),
                hoverInfo: c
              };
              function c(d, h, i) {
                (h.error_y || {}).visible && (i.yerr = d.yh - d.y, h.error_y.symmetric || (i.yerrneg = d.y - d.ys)), (h.error_x || {}).visible && (i.xerr = d.xh - d.x, h.error_x.symmetric || (i.xerrneg = d.x - d.xs));
              }
            }
          ),
          /***/
          8512: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(8248), l = r(3616), f = r(3028);
              M.exports = function(d, h, i, b) {
                var x, D = i.xaxis, C = i.yaxis, w = b && b.duration > 0, S = d._context.staticPlot;
                h.each(function(T) {
                  var k = T[0].trace, A = k.error_x || {}, R = k.error_y || {}, g;
                  k.ids && (g = function(Y) {
                    return Y.id;
                  });
                  var I = f.hasMarkers(k) && k.marker.maxdisplayed > 0;
                  !R.visible && !A.visible && (T = []);
                  var O = a.select(this).selectAll("g.errorbar").data(T, g);
                  if (O.exit().remove(), !!T.length) {
                    A.visible || O.selectAll("path.xerror").remove(), R.visible || O.selectAll("path.yerror").remove(), O.style("opacity", 1);
                    var $ = O.enter().append("g").classed("errorbar", !0);
                    w && $.style("opacity", 0).transition().duration(b.duration).style("opacity", 1), l.setClipUrl(O, i.layerClipId, d), O.each(function(Y) {
                      var ne = a.select(this), q = u(Y, D, C);
                      if (!(I && !Y.vis)) {
                        var B, X = ne.select("path.yerror");
                        if (R.visible && p(q.x) && p(q.yh) && p(q.ys)) {
                          var U = R.width;
                          B = "M" + (q.x - U) + "," + q.yh + "h" + 2 * U + // hat
                          "m-" + U + ",0V" + q.ys, q.noYS || (B += "m-" + U + ",0h" + 2 * U), x = !X.size(), x ? X = ne.append("path").style("vector-effect", S ? "none" : "non-scaling-stroke").classed("yerror", !0) : w && (X = X.transition().duration(b.duration).ease(b.easing)), X.attr("d", B);
                        } else
                          X.remove();
                        var te = ne.select("path.xerror");
                        if (A.visible && p(q.y) && p(q.xh) && p(q.xs)) {
                          var se = (A.copy_ystyle ? R : A).width;
                          B = "M" + q.xh + "," + (q.y - se) + "v" + 2 * se + // hat
                          "m0,-" + se + "H" + q.xs, q.noXS || (B += "m0,-" + se + "v" + 2 * se), x = !te.size(), x ? te = ne.append("path").style("vector-effect", S ? "none" : "non-scaling-stroke").classed("xerror", !0) : w && (te = te.transition().duration(b.duration).ease(b.easing)), te.attr("d", B);
                        } else
                          te.remove();
                      }
                    });
                  }
                });
              };
              function u(c, d, h) {
                var i = {
                  x: d.c2p(c.x),
                  y: h.c2p(c.y)
                };
                return c.yh !== void 0 && (i.yh = h.c2p(c.yh), i.ys = h.c2p(c.ys), p(i.ys) || (i.noYS = !0, i.ys = h.c2p(c.ys, !0))), c.xh !== void 0 && (i.xh = d.c2p(c.xh), i.xs = d.c2p(c.xs), p(i.xs) || (i.noXS = !0, i.xs = d.c2p(c.xs, !0))), i;
              }
            }
          ),
          /***/
          2036: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(6308);
              M.exports = function(f) {
                f.each(function(u) {
                  var c = u[0].trace, d = c.error_y || {}, h = c.error_x || {}, i = a.select(this);
                  i.selectAll("path.yerror").style("stroke-width", d.thickness + "px").call(p.stroke, d.color), h.copy_ystyle && (h = d), i.selectAll("path.xerror").style("stroke-width", h.thickness + "px").call(p.stroke, h.color);
                });
              };
            }
          ),
          /***/
          5756: (
            /***/
            function(M, L, r) {
              var a = r(5376), p = r(5460).hoverlabel, l = r(2880).extendFlat;
              M.exports = {
                hoverlabel: {
                  bgcolor: l({}, p.bgcolor, {
                    arrayOk: !0
                  }),
                  bordercolor: l({}, p.bordercolor, {
                    arrayOk: !0
                  }),
                  font: a({
                    arrayOk: !0,
                    editType: "none"
                  }),
                  align: l({}, p.align, {
                    arrayOk: !0
                  }),
                  namelength: l({}, p.namelength, {
                    arrayOk: !0
                  }),
                  editType: "none"
                }
              };
            }
          ),
          /***/
          5056: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(4040);
              M.exports = function(u) {
                var c = u.calcdata, d = u._fullLayout;
                function h(C) {
                  return function(w) {
                    return a.coerceHoverinfo({
                      hoverinfo: w
                    }, {
                      _module: C._module
                    }, d);
                  };
                }
                for (var i = 0; i < c.length; i++) {
                  var b = c[i], x = b[0].trace;
                  if (!p.traceIs(x, "pie-like")) {
                    var D = p.traceIs(x, "2dMap") ? l : a.fillArray;
                    D(x.hoverinfo, b, "hi", h(x)), x.hovertemplate && D(x.hovertemplate, b, "ht"), x.hoverlabel && (D(x.hoverlabel.bgcolor, b, "hbg"), D(x.hoverlabel.bordercolor, b, "hbc"), D(x.hoverlabel.font.size, b, "hts"), D(x.hoverlabel.font.color, b, "htc"), D(x.hoverlabel.font.family, b, "htf"), D(x.hoverlabel.font.weight, b, "htw"), D(x.hoverlabel.font.style, b, "hty"), D(x.hoverlabel.font.variant, b, "htv"), D(x.hoverlabel.namelength, b, "hnl"), D(x.hoverlabel.align, b, "hta"));
                  }
                }
              };
              function l(f, u, c, d) {
                d = d || a.identity, Array.isArray(f) && (u[0][c] = d(f));
              }
            }
          ),
          /***/
          2376: (
            /***/
            function(M, L, r) {
              var a = r(4040), p = r(3292).hover;
              M.exports = function(f, u, c) {
                var d = a.getComponentMethod("annotations", "onClick")(f, f._hoverdata);
                c !== void 0 && p(f, u, c, !0);
                function h() {
                  f.emit("plotly_click", {
                    points: f._hoverdata,
                    event: u
                  });
                }
                f._hoverdata && u && u.target && (d && d.then ? d.then(h) : h(), u.stopImmediatePropagation && u.stopImmediatePropagation());
              };
            }
          ),
          /***/
          2456: (
            /***/
            function(M) {
              M.exports = {
                // hover labels for multiple horizontal bars get tilted by this angle
                YANGLE: 60,
                // size and display constants for hover text
                // pixel size of hover arrows
                HOVERARROWSIZE: 6,
                // pixels padding around text
                HOVERTEXTPAD: 3,
                // hover font
                HOVERFONTSIZE: 13,
                HOVERFONT: "Arial, sans-serif",
                // minimum time (msec) between hover calls
                HOVERMINTIME: 50,
                // ID suffix (with fullLayout._uid) for hover events in the throttle cache
                HOVERID: "-hover"
              };
            }
          ),
          /***/
          5448: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(5756), l = r(6132);
              M.exports = function(u, c, d, h) {
                function i(x, D) {
                  return a.coerce(u, c, p, x, D);
                }
                var b = a.extendFlat({}, h.hoverlabel);
                c.hovertemplate && (b.namelength = -1), l(u, c, i, b);
              };
            }
          ),
          /***/
          624: (
            /***/
            function(M, L, r) {
              var a = r(3400);
              L.getSubplot = function(d) {
                return d.subplot || d.xaxis + d.yaxis || d.geo;
              }, L.isTraceInSubplots = function(d, h) {
                if (d.type === "splom") {
                  for (var i = d.xaxes || [], b = d.yaxes || [], x = 0; x < i.length; x++)
                    for (var D = 0; D < b.length; D++)
                      if (h.indexOf(i[x] + b[D]) !== -1)
                        return !0;
                  return !1;
                }
                return h.indexOf(L.getSubplot(d)) !== -1;
              }, L.flat = function(d, h) {
                for (var i = new Array(d.length), b = 0; b < d.length; b++)
                  i[b] = h;
                return i;
              }, L.p2c = function(d, h) {
                for (var i = new Array(d.length), b = 0; b < d.length; b++)
                  i[b] = d[b].p2c(h);
                return i;
              }, L.getDistanceFunction = function(d, h, i, b) {
                return d === "closest" ? b || L.quadrature(h, i) : d.charAt(0) === "x" ? h : i;
              }, L.getClosest = function(d, h, i) {
                if (i.index !== !1)
                  i.index >= 0 && i.index < d.length ? i.distance = 0 : i.index = !1;
                else
                  for (var b = 0; b < d.length; b++) {
                    var x = h(d[b]);
                    x <= i.distance && (i.index = b, i.distance = x);
                  }
                return i;
              }, L.inbox = function(d, h, i) {
                return d * h < 0 || d === 0 ? i : 1 / 0;
              }, L.quadrature = function(d, h) {
                return function(i) {
                  var b = d(i), x = h(i);
                  return Math.sqrt(b * b + x * x);
                };
              }, L.makeEventData = function(d, h, i) {
                var b = "index" in d ? d.index : d.pointNumber, x = {
                  data: h._input,
                  fullData: h,
                  curveNumber: h.index,
                  pointNumber: b
                };
                if (h._indexToPoints) {
                  var D = h._indexToPoints[b];
                  D.length === 1 ? x.pointIndex = D[0] : x.pointIndices = D;
                } else
                  x.pointIndex = b;
                return h._module.eventData ? x = h._module.eventData(x, d, h, i, b) : ("xVal" in d ? x.x = d.xVal : "x" in d && (x.x = d.x), "yVal" in d ? x.y = d.yVal : "y" in d && (x.y = d.y), d.xa && (x.xaxis = d.xa), d.ya && (x.yaxis = d.ya), d.zLabelVal !== void 0 && (x.z = d.zLabelVal)), L.appendArrayPointValue(x, h, b), x;
              }, L.appendArrayPointValue = function(d, h, i) {
                var b = h._arrayAttrs;
                if (b)
                  for (var x = 0; x < b.length; x++) {
                    var D = b[x], C = l(D);
                    if (d[C] === void 0) {
                      var w = a.nestedProperty(h, D).get(), S = f(w, i);
                      S !== void 0 && (d[C] = S);
                    }
                  }
              }, L.appendArrayMultiPointValues = function(d, h, i) {
                var b = h._arrayAttrs;
                if (b)
                  for (var x = 0; x < b.length; x++) {
                    var D = b[x], C = l(D);
                    if (d[C] === void 0) {
                      for (var w = a.nestedProperty(h, D).get(), S = new Array(i.length), T = 0; T < i.length; T++)
                        S[T] = f(w, i[T]);
                      d[C] = S;
                    }
                  }
              };
              var p = {
                ids: "id",
                locations: "location",
                labels: "label",
                values: "value",
                "marker.colors": "color",
                parents: "parent"
              };
              function l(d) {
                return p[d] || d;
              }
              function f(d, h) {
                if (Array.isArray(h)) {
                  if (Array.isArray(d) && Array.isArray(d[h[0]]))
                    return d[h[0]][h[1]];
                } else
                  return d[h];
              }
              var u = {
                x: !0,
                y: !0
              }, c = {
                "x unified": !0,
                "y unified": !0
              };
              L.isUnifiedHover = function(d) {
                return typeof d != "string" ? !1 : !!c[d];
              }, L.isXYhover = function(d) {
                return typeof d != "string" ? !1 : !!u[d];
              };
            }
          ),
          /***/
          3292: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(8248), l = r(9760), f = r(3400), u = f.pushUnique, c = f.strTranslate, d = f.strRotate, h = r(5924), i = r(2736), b = r(2213), x = r(3616), D = r(6308), C = r(6476), w = r(4460), S = r(4040), T = r(624), k = r(2456), A = r(7864), R = r(1140), g = k.YANGLE, I = Math.PI * g / 180, O = 1 / Math.sin(I), $ = Math.cos(I), Y = Math.sin(I), ne = k.HOVERARROWSIZE, q = k.HOVERTEXTPAD, B = {
                box: !0,
                ohlc: !0,
                violin: !0,
                candlestick: !0
              }, X = {
                scatter: !0,
                scattergl: !0,
                splom: !0
              };
              function U(G, H) {
                return G.distance - H.distance;
              }
              L.hover = function(H, ce, j, he) {
                H = f.getGraphDiv(H);
                var be = ce.target;
                f.throttle(H._fullLayout._uid + k.HOVERID, k.HOVERMINTIME, function() {
                  te(H, ce, j, he, be);
                });
              }, L.loneHover = function(H, ce) {
                var j = !0;
                Array.isArray(H) || (j = !1, H = [H]);
                var he = ce.gd, be = Z(he), we = ee(he), Ie = H.map(function(Xe) {
                  var it = Xe._x0 || Xe.x0 || Xe.x || 0, ut = Xe._x1 || Xe.x1 || Xe.x || 0, wt = Xe._y0 || Xe.y0 || Xe.y || 0, kt = Xe._y1 || Xe.y1 || Xe.y || 0, Ot = Xe.eventData;
                  if (Ot) {
                    var Lt = Math.min(it, ut), Mt = Math.max(it, ut), Ut = Math.min(wt, kt), Ct = Math.max(wt, kt), jt = Xe.trace;
                    if (S.traceIs(jt, "gl3d")) {
                      var nr = he._fullLayout[jt.scene]._scene.container, Jt = nr.offsetLeft, Wt = nr.offsetTop;
                      Lt += Jt, Mt += Jt, Ut += Wt, Ct += Wt;
                    }
                    Ot.bbox = {
                      x0: Lt + we,
                      x1: Mt + we,
                      y0: Ut + be,
                      y1: Ct + be
                    }, ce.inOut_bbox && ce.inOut_bbox.push(Ot.bbox);
                  } else
                    Ot = !1;
                  return {
                    color: Xe.color || D.defaultLine,
                    x0: Xe.x0 || Xe.x || 0,
                    x1: Xe.x1 || Xe.x || 0,
                    y0: Xe.y0 || Xe.y || 0,
                    y1: Xe.y1 || Xe.y || 0,
                    xLabel: Xe.xLabel,
                    yLabel: Xe.yLabel,
                    zLabel: Xe.zLabel,
                    text: Xe.text,
                    name: Xe.name,
                    idealAlign: Xe.idealAlign,
                    // optional extra bits of styling
                    borderColor: Xe.borderColor,
                    fontFamily: Xe.fontFamily,
                    fontSize: Xe.fontSize,
                    fontColor: Xe.fontColor,
                    fontWeight: Xe.fontWeight,
                    fontStyle: Xe.fontStyle,
                    fontVariant: Xe.fontVariant,
                    nameLength: Xe.nameLength,
                    textAlign: Xe.textAlign,
                    // filler to make createHoverText happy
                    trace: Xe.trace || {
                      index: 0,
                      hoverinfo: ""
                    },
                    xa: {
                      _offset: 0
                    },
                    ya: {
                      _offset: 0
                    },
                    index: 0,
                    hovertemplate: Xe.hovertemplate || !1,
                    hovertemplateLabels: Xe.hovertemplateLabels || !1,
                    eventData: Ot
                  };
                }), Ge = !1, Ve = J(Ie, {
                  gd: he,
                  hovermode: "closest",
                  rotateLabels: Ge,
                  bgColor: ce.bgColor || D.background,
                  container: a.select(ce.container),
                  outerContainer: ce.outerContainer || ce.container
                }), Je = Ve.hoverLabels, et = 5, at = 0, Le = 0;
                Je.sort(function(Xe, it) {
                  return Xe.y0 - it.y0;
                }).each(function(Xe, it) {
                  var ut = Xe.y0 - Xe.by / 2;
                  ut - et < at ? Xe.offset = at - ut + et : Xe.offset = 0, at = ut + Xe.by + Xe.offset, it === ce.anchorIndex && (Le = Xe.offset);
                }).each(function(Xe) {
                  Xe.offset -= Le;
                });
                var ze = he._fullLayout._invScaleX, Oe = he._fullLayout._invScaleY;
                return fe(Je, Ge, ze, Oe), j ? Je : Je.node();
              };
              function te(G, H, ce, j, he) {
                ce || (ce = "xy");
                var be = Array.isArray(ce) ? ce : [ce], we, Ie = G._fullLayout, Ge = Ie.hoversubplots, Ve = Ie._plots || [], Je = Ve[ce], et = Ie._has("cartesian"), at = H.hovermode || Ie.hovermode, Le = (at || "").charAt(0) === "x", ze = (at || "").charAt(0) === "y", Oe, Xe;
                if (et && (Le || ze) && Ge === "axis") {
                  for (var it = be.length, ut = 0; ut < it; ut++)
                    if (we = be[ut], Ve[we]) {
                      Oe = w.getFromId(G, we, "x"), Xe = w.getFromId(G, we, "y");
                      var wt = (Le ? Oe : Xe)._subplotsWith;
                      if (wt && wt.length)
                        for (var kt = 0; kt < wt.length; kt++)
                          u(be, wt[kt]);
                    }
                }
                if (Je && Ge !== "single") {
                  var Ot = Je.overlays.map(function(rn) {
                    return rn.id;
                  });
                  be = be.concat(Ot);
                }
                for (var Lt = be.length, Mt = new Array(Lt), Ut = new Array(Lt), Ct = !1, jt = 0; jt < Lt; jt++)
                  if (we = be[jt], Ve[we])
                    Ct = !0, Mt[jt] = Ve[we].xaxis, Ut[jt] = Ve[we].yaxis;
                  else if (Ie[we] && Ie[we]._subplot) {
                    var nr = Ie[we]._subplot;
                    Mt[jt] = nr.xaxis, Ut[jt] = nr.yaxis;
                  } else {
                    f.warn("Unrecognized subplot: " + we);
                    return;
                  }
                if (at && !Ct && (at = "closest"), ["x", "y", "closest", "x unified", "y unified"].indexOf(at) === -1 || !G.calcdata || G.querySelector(".zoombox") || G._dragging)
                  return C.unhoverRaw(G, H);
                var Jt = Ie.hoverdistance;
                Jt === -1 && (Jt = 1 / 0);
                var Wt = Ie.spikedistance;
                Wt === -1 && (Wt = 1 / 0);
                var qe = [], Ue = [], We, je, lt, Se, Pe, Ye, Ze, rt, tt, Ft, Dt, dt, st, Nt = {
                  hLinePoint: null,
                  vLinePoint: null
                }, ar = !1;
                if (Array.isArray(H))
                  for (at = "array", lt = 0; lt < H.length; lt++)
                    Pe = G.calcdata[H[lt].curveNumber || 0], Pe && (Ye = Pe[0].trace, Pe[0].trace.hoverinfo !== "skip" && (Ue.push(Pe), Ye.orientation === "h" && (ar = !0)));
                else {
                  var ur = G.calcdata.slice();
                  for (ur.sort(function(rn, ua) {
                    var dn = rn[0].trace.zorder || 0, Dn = ua[0].trace.zorder || 0;
                    return dn - Dn;
                  }), Se = 0; Se < ur.length; Se++)
                    Pe = ur[Se], Ye = Pe[0].trace, Ye.hoverinfo !== "skip" && T.isTraceInSubplots(Ye, be) && (Ue.push(Pe), Ye.orientation === "h" && (ar = !0));
                  var Or = !he, Fr, br;
                  if (Or)
                    "xpx" in H ? Fr = H.xpx : Fr = Mt[0]._length / 2, "ypx" in H ? br = H.ypx : br = Ut[0]._length / 2;
                  else {
                    if (h.triggerHandler(G, "plotly_beforehover", H) === !1)
                      return;
                    var or = he.getBoundingClientRect();
                    Fr = H.clientX - or.left, br = H.clientY - or.top, Ie._calcInverseTransform(G);
                    var Rr = f.apply3DTransform(Ie._invTransform)(Fr, br);
                    if (Fr = Rr[0], br = Rr[1], Fr < 0 || Fr > Mt[0]._length || br < 0 || br > Ut[0]._length)
                      return C.unhoverRaw(G, H);
                  }
                  if (H.pointerX = Fr + Mt[0]._offset, H.pointerY = br + Ut[0]._offset, "xval" in H ? We = T.flat(be, H.xval) : We = T.p2c(Mt, Fr), "yval" in H ? je = T.flat(be, H.yval) : je = T.p2c(Ut, br), !p(We[0]) || !p(je[0]))
                    return f.warn("Fx.hover failed", H, G), C.unhoverRaw(G, H);
                }
                var lr = 1 / 0;
                function Tr(rn, ua) {
                  for (Se = 0; Se < Ue.length; Se++)
                    if (Pe = Ue[Se], !(!Pe || !Pe[0] || !Pe[0].trace) && (Ye = Pe[0].trace, !(Ye.visible !== !0 || Ye._length === 0) && ["carpet", "contourcarpet"].indexOf(Ye._module.name) === -1)) {
                      if (tt = at, T.isUnifiedHover(tt) && (tt = tt.charAt(0)), Ye.type === "splom" ? (rt = 0, Ze = be[rt]) : (Ze = T.getSubplot(Ye), rt = be.indexOf(Ze)), dt = {
                        // trace properties
                        cd: Pe,
                        trace: Ye,
                        xa: Mt[rt],
                        ya: Ut[rt],
                        // max distances for hover and spikes - for points that want to show but do not
                        // want to override other points, set distance/spikeDistance equal to max*Distance
                        // and it will not get filtered out but it will be guaranteed to have a greater
                        // distance than any point that calculated a real distance.
                        maxHoverDistance: Jt,
                        maxSpikeDistance: Wt,
                        // point properties - override all of these
                        index: !1,
                        // point index in trace - only used by plotly.js hoverdata consumers
                        distance: Math.min(lr, Jt),
                        // pixel distance or pseudo-distance
                        // distance/pseudo-distance for spikes. This distance should always be calculated
                        // as if in "closest" mode, and should only be set if this point should
                        // generate a spike.
                        spikeDistance: 1 / 0,
                        // in some cases the spikes have different positioning from the hover label
                        // they don't need x0/x1, just one position
                        xSpike: void 0,
                        ySpike: void 0,
                        // where and how to display the hover label
                        color: D.defaultLine,
                        // trace color
                        name: Ye.name,
                        x0: void 0,
                        x1: void 0,
                        y0: void 0,
                        y1: void 0,
                        xLabelVal: void 0,
                        yLabelVal: void 0,
                        zLabelVal: void 0,
                        text: void 0
                      }, Ie[Ze] && (dt.subplot = Ie[Ze]._subplot), Ie._splomScenes && Ie._splomScenes[Ye.uid] && (dt.scene = Ie._splomScenes[Ye.uid]), tt === "array") {
                        var dn = H[Se];
                        "pointNumber" in dn ? (dt.index = dn.pointNumber, tt = "closest") : (tt = "", "xval" in dn && (Ft = dn.xval, tt = "x"), "yval" in dn && (Dt = dn.yval, tt = tt ? "closest" : "y"));
                      } else
                        rn !== void 0 && ua !== void 0 ? (Ft = rn, Dt = ua) : (Ft = We[rt], Dt = je[rt]);
                      if (st = qe.length, Jt !== 0)
                        if (Ye._module && Ye._module.hoverPoints) {
                          var Dn = Ye._module.hoverPoints(dt, Ft, Dt, tt, {
                            finiteRange: !0,
                            hoverLayer: Ie._hoverlayer,
                            // options for splom when hovering on same axis
                            hoversubplots: Ge,
                            gd: G
                          });
                          if (Dn)
                            for (var Sn, Fn = 0; Fn < Dn.length; Fn++)
                              Sn = Dn[Fn], p(Sn.x0) && p(Sn.y0) && qe.push(ye(Sn, at));
                        } else
                          f.log("Unrecognized trace type in hover:", Ye);
                      if (at === "closest" && qe.length > st && (qe.splice(0, st), lr = qe[0].distance), et && Wt !== 0 && qe.length === 0) {
                        dt.distance = Wt, dt.index = !1;
                        var Mn = Ye._module.hoverPoints(dt, Ft, Dt, "closest", {
                          hoverLayer: Ie._hoverlayer
                        });
                        if (Mn && (Mn = Mn.filter(function(Kn) {
                          return Kn.spikeDistance <= Wt;
                        })), Mn && Mn.length) {
                          var qn, Rn = Mn.filter(function(Kn) {
                            return Kn.xa.showspikes && Kn.xa.spikesnap !== "hovered data";
                          });
                          if (Rn.length) {
                            var ea = Rn[0];
                            p(ea.x0) && p(ea.y0) && (qn = Dr(ea), (!Nt.vLinePoint || Nt.vLinePoint.spikeDistance > qn.spikeDistance) && (Nt.vLinePoint = qn));
                          }
                          var ga = Mn.filter(function(Kn) {
                            return Kn.ya.showspikes && Kn.ya.spikesnap !== "hovered data";
                          });
                          if (ga.length) {
                            var oa = ga[0];
                            p(oa.x0) && p(oa.y0) && (qn = Dr(oa), (!Nt.hLinePoint || Nt.hLinePoint.spikeDistance > qn.spikeDistance) && (Nt.hLinePoint = qn));
                          }
                        }
                      }
                    }
                }
                Tr();
                function Gr(rn, ua, dn) {
                  for (var Dn = null, Sn = 1 / 0, Fn, Mn = 0; Mn < rn.length; Mn++)
                    Oe && Oe._id !== rn[Mn].xa._id || Xe && Xe._id !== rn[Mn].ya._id || (Fn = rn[Mn].spikeDistance, dn && Mn === 0 && (Fn = -1 / 0), Fn <= Sn && Fn <= ua && (Dn = rn[Mn], Sn = Fn));
                  return Dn;
                }
                function Dr(rn) {
                  return rn ? {
                    xa: rn.xa,
                    ya: rn.ya,
                    x: rn.xSpike !== void 0 ? rn.xSpike : (rn.x0 + rn.x1) / 2,
                    y: rn.ySpike !== void 0 ? rn.ySpike : (rn.y0 + rn.y1) / 2,
                    distance: rn.distance,
                    spikeDistance: rn.spikeDistance,
                    curveNumber: rn.trace.index,
                    color: rn.color,
                    pointNumber: rn.index
                  } : null;
                }
                var gr = {
                  fullLayout: Ie,
                  container: Ie._hoverlayer,
                  event: H
                };
                G._spikepoints;
                var Er = {
                  vLinePoint: Nt.vLinePoint,
                  hLinePoint: Nt.hLinePoint
                };
                G._spikepoints = Er;
                var Cr = function() {
                  var rn = qe.filter(function(dn) {
                    return Oe && Oe._id === dn.xa._id && Xe && Xe._id === dn.ya._id;
                  }), ua = qe.filter(function(dn) {
                    return !(Oe && Oe._id === dn.xa._id && Xe && Xe._id === dn.ya._id);
                  });
                  rn.sort(U), ua.sort(U), qe = rn.concat(ua), qe = Me(qe, at);
                };
                Cr();
                var zr = at.charAt(0), en = (zr === "x" || zr === "y") && qe[0] && X[qe[0].trace.type];
                if (et && Wt !== 0 && qe.length !== 0) {
                  var on = qe.filter(function(rn) {
                    return rn.ya.showspikes;
                  }), Ir = Gr(on, Wt, en);
                  Nt.hLinePoint = Dr(Ir);
                  var Ae = qe.filter(function(rn) {
                    return rn.xa.showspikes;
                  }), ue = Gr(Ae, Wt, en);
                  Nt.vLinePoint = Dr(ue);
                }
                if (qe.length === 0) {
                  var ft = C.unhoverRaw(G, H);
                  return et && (Nt.hLinePoint !== null || Nt.vLinePoint !== null) && Be() && Ce(G, Nt, gr), ft;
                }
                if (et && Be() && Ce(G, Nt, gr), T.isXYhover(tt) && qe[0].length !== 0 && qe[0].trace.type !== "splom") {
                  var nt = qe[0];
                  B[nt.trace.type] ? qe = qe.filter(function(rn) {
                    return rn.trace.index === nt.trace.index;
                  }) : qe = [nt];
                  var mt = qe.length, Tt = De("x", nt, Ie), bt = De("y", nt, Ie);
                  Tr(Tt, bt);
                  var vt = [], ht = {}, St = 0, It = function(rn) {
                    var ua = B[rn.trace.type] ? se(rn) : rn.trace.index;
                    if (!ht[ua])
                      St++, ht[ua] = St, vt.push(rn);
                    else {
                      var dn = ht[ua] - 1, Dn = vt[dn];
                      dn > 0 && Math.abs(rn.distance) < Math.abs(Dn.distance) && (vt[dn] = rn);
                    }
                  }, Ht;
                  for (Ht = 0; Ht < mt; Ht++)
                    It(qe[Ht]);
                  for (Ht = qe.length - 1; Ht > mt - 1; Ht--)
                    It(qe[Ht]);
                  qe = vt, Cr();
                }
                var Et = G._hoverdata, Zt = [], Yt = Z(G), Gt = ee(G);
                for (lt = 0; lt < qe.length; lt++) {
                  var $t = qe[lt], ir = T.makeEventData($t, $t.trace, $t.cd);
                  if ($t.hovertemplate !== !1) {
                    var wr = !1;
                    $t.cd[$t.index] && $t.cd[$t.index].ht && (wr = $t.cd[$t.index].ht), $t.hovertemplate = wr || $t.trace.hovertemplate || !1;
                  }
                  if ($t.xa && $t.ya) {
                    var sr = $t.x0 + $t.xa._offset, Xr = $t.x1 + $t.xa._offset, Lr = $t.y0 + $t.ya._offset, Pr = $t.y1 + $t.ya._offset, $r = Math.min(sr, Xr), Jr = Math.max(sr, Xr), Qr = Math.min(Lr, Pr), vn = Math.max(Lr, Pr);
                    ir.bbox = {
                      x0: $r + Gt,
                      x1: Jr + Gt,
                      y0: Qr + Yt,
                      y1: vn + Yt
                    };
                  }
                  $t.eventData = [ir], Zt.push(ir);
                }
                G._hoverdata = Zt;
                var An = at === "y" && (Ue.length > 1 || qe.length > 1) || at === "closest" && ar && qe.length > 1, hn = D.combine(Ie.plot_bgcolor || D.background, Ie.paper_bgcolor), Pn = J(qe, {
                  gd: G,
                  hovermode: at,
                  rotateLabels: An,
                  bgColor: hn,
                  container: Ie._hoverlayer,
                  outerContainer: Ie._paper.node(),
                  commonLabelOpts: Ie.hoverlabel,
                  hoverdistance: Ie.hoverdistance
                }), sa = Pn.hoverLabels;
                if (T.isUnifiedHover(at) || (ae(sa, An, Ie, Pn.commonLabelBoundingBox), fe(sa, An, Ie._invScaleX, Ie._invScaleY)), he && he.tagName) {
                  var Ra = S.getComponentMethod("annotations", "hasClickToShow")(G, Zt);
                  b(a.select(he), Ra ? "pointer" : "");
                }
                !he || j || !Re(G, H, Et) || (Et && G.emit("plotly_unhover", {
                  event: H,
                  points: Et
                }), G.emit("plotly_hover", {
                  event: H,
                  points: G._hoverdata,
                  xaxes: Mt,
                  yaxes: Ut,
                  xvals: We,
                  yvals: je
                }));
              }
              function se(G) {
                return [G.trace.index, G.index, G.x0, G.y0, G.name, G.attr, G.xa ? G.xa._id : "", G.ya ? G.ya._id : ""].join(",");
              }
              var me = /<extra>([\s\S]*)<\/extra>/;
              function J(G, H) {
                var ce = H.gd, j = ce._fullLayout, he = H.hovermode, be = H.rotateLabels, we = H.bgColor, Ie = H.container, Ge = H.outerContainer, Ve = H.commonLabelOpts || {};
                if (G.length === 0)
                  return [[]];
                var Je = H.fontFamily || k.HOVERFONT, et = H.fontSize || k.HOVERFONTSIZE, at = H.fontWeight || j.font.weight, Le = H.fontStyle || j.font.style, ze = H.fontVariant || j.font.variant, Oe = H.fontTextcase || j.font.textcase, Xe = H.fontLineposition || j.font.lineposition, it = H.fontShadow || j.font.shadow, ut = G[0], wt = ut.xa, kt = ut.ya, Ot = he.charAt(0), Lt = Ot + "Label", Mt = ut[Lt];
                if (Mt === void 0 && wt.type === "multicategory")
                  for (var Ut = 0; Ut < G.length && (Mt = G[Ut][Lt], Mt === void 0); Ut++)
                    ;
                var Ct = ie(ce, Ge), jt = Ct.top, nr = Ct.width, Jt = Ct.height, Wt = Mt !== void 0 && ut.distance <= H.hoverdistance && (he === "x" || he === "y");
                if (Wt) {
                  var qe = !0, Ue, We;
                  for (Ue = 0; Ue < G.length; Ue++)
                    if (qe && G[Ue].zLabel === void 0 && (qe = !1), We = G[Ue].hoverinfo || G[Ue].trace.hoverinfo, We) {
                      var je = Array.isArray(We) ? We : We.split("+");
                      if (je.indexOf("all") === -1 && je.indexOf(he) === -1) {
                        Wt = !1;
                        break;
                      }
                    }
                  qe && (Wt = !1);
                }
                var lt = Ie.selectAll("g.axistext").data(Wt ? [0] : []);
                lt.enter().append("g").classed("axistext", !0), lt.exit().remove();
                var Se = {
                  minX: 0,
                  maxX: 0,
                  minY: 0,
                  maxY: 0
                };
                if (lt.each(function() {
                  var ue = a.select(this), ft = f.ensureSingle(ue, "path", "", function(Jr) {
                    Jr.style({
                      "stroke-width": "1px"
                    });
                  }), nt = f.ensureSingle(ue, "text", "", function(Jr) {
                    Jr.attr("data-notex", 1);
                  }), mt = Ve.bgcolor || D.defaultLine, Tt = Ve.bordercolor || D.contrast(mt), bt = D.contrast(mt), vt = Ve.font, ht = {
                    weight: vt.weight || at,
                    style: vt.style || Le,
                    variant: vt.variant || ze,
                    textcase: vt.textcase || Oe,
                    lineposition: vt.lineposition || Xe,
                    shadow: vt.shadow || it,
                    family: vt.family || Je,
                    size: vt.size || et,
                    color: vt.color || bt
                  };
                  ft.style({
                    fill: mt,
                    stroke: Tt
                  }), nt.text(Mt).call(x.font, ht).call(i.positionText, 0, 0).call(i.convertToTspans, ce), ue.attr("transform", "");
                  var St = ie(ce, nt.node()), It, Ht;
                  if (he === "x") {
                    var Et = wt.side === "top" ? "-" : "";
                    nt.attr("text-anchor", "middle").call(i.positionText, 0, wt.side === "top" ? jt - St.bottom - ne - q : jt - St.top + ne + q), It = wt._offset + (ut.x0 + ut.x1) / 2, Ht = kt._offset + (wt.side === "top" ? 0 : kt._length);
                    var Zt = St.width / 2 + q, Yt = It;
                    It < Zt ? Yt = Zt : It > j.width - Zt && (Yt = j.width - Zt), ft.attr("d", "M" + (It - Yt) + ",0L" + (It - Yt + ne) + "," + Et + ne + "H" + Zt + "v" + Et + (q * 2 + St.height) + "H" + -Zt + "V" + Et + ne + "H" + (It - Yt - ne) + "Z"), It = Yt, Se.minX = It - Zt, Se.maxX = It + Zt, wt.side === "top" ? (Se.minY = Ht - (q * 2 + St.height), Se.maxY = Ht - q) : (Se.minY = Ht + q, Se.maxY = Ht + (q * 2 + St.height));
                  } else {
                    var Gt, $t, ir;
                    kt.side === "right" ? (Gt = "start", $t = 1, ir = "", It = wt._offset + wt._length) : (Gt = "end", $t = -1, ir = "-", It = wt._offset), Ht = kt._offset + (ut.y0 + ut.y1) / 2, nt.attr("text-anchor", Gt), ft.attr("d", "M0,0L" + ir + ne + "," + ne + "V" + (q + St.height / 2) + "h" + ir + (q * 2 + St.width) + "V-" + (q + St.height / 2) + "H" + ir + ne + "V-" + ne + "Z"), Se.minY = Ht - (q + St.height / 2), Se.maxY = Ht + (q + St.height / 2), kt.side === "right" ? (Se.minX = It + ne, Se.maxX = It + ne + (q * 2 + St.width)) : (Se.minX = It - ne - (q * 2 + St.width), Se.maxX = It - ne);
                    var wr = St.height / 2, sr = jt - St.top - wr, Xr = "clip" + j._uid + "commonlabel" + kt._id, Lr;
                    if (It < St.width + 2 * q + ne) {
                      Lr = "M-" + (ne + q) + "-" + wr + "h-" + (St.width - q) + "V" + wr + "h" + (St.width - q) + "Z";
                      var Pr = St.width - It + q;
                      i.positionText(nt, Pr, sr), Gt === "end" && nt.selectAll("tspan").each(function() {
                        var Jr = a.select(this), Qr = x.tester.append("text").text(Jr.text()).call(x.font, ht), vn = ie(ce, Qr.node());
                        Math.round(vn.width) < Math.round(St.width) && Jr.attr("x", Pr - vn.width), Qr.remove();
                      });
                    } else
                      i.positionText(nt, $t * (q + ne), sr), Lr = null;
                    var $r = j._topclips.selectAll("#" + Xr).data(Lr ? [0] : []);
                    $r.enter().append("clipPath").attr("id", Xr).append("path"), $r.exit().remove(), $r.select("path").attr("d", Lr), x.setClipUrl(nt, Lr ? Xr : null, ce);
                  }
                  ue.attr("transform", c(It, Ht));
                }), T.isUnifiedHover(he)) {
                  Ie.selectAll("g.hovertext").remove();
                  var Pe = G.filter(function(ue) {
                    return ue.hoverinfo !== "none";
                  });
                  if (Pe.length === 0)
                    return [];
                  var Ye = j.hoverlabel, Ze = Ye.font, rt = {
                    showlegend: !0,
                    legend: {
                      title: {
                        text: Mt,
                        font: Ze
                      },
                      font: Ze,
                      bgcolor: Ye.bgcolor,
                      bordercolor: Ye.bordercolor,
                      borderwidth: 1,
                      tracegroupgap: 7,
                      traceorder: j.legend ? j.legend.traceorder : void 0,
                      orientation: "v"
                    }
                  }, tt = {
                    font: Ze
                  };
                  A(rt, tt, ce._fullData);
                  var Ft = tt.legend;
                  Ft.entries = [];
                  for (var Dt = 0; Dt < Pe.length; Dt++) {
                    var dt = Pe[Dt];
                    if (dt.hoverinfo !== "none") {
                      var st = W(dt, !0, he, j, Mt), Nt = st[0], ar = st[1];
                      dt.name = ar, ar !== "" ? dt.text = ar + " : " + Nt : dt.text = Nt;
                      var ur = dt.cd[dt.index];
                      ur && (ur.mc && (dt.mc = ur.mc), ur.mcc && (dt.mc = ur.mcc), ur.mlc && (dt.mlc = ur.mlc), ur.mlcc && (dt.mlc = ur.mlcc), ur.mlw && (dt.mlw = ur.mlw), ur.mrc && (dt.mrc = ur.mrc), ur.dir && (dt.dir = ur.dir)), dt._distinct = !0, Ft.entries.push([dt]);
                    }
                  }
                  Ft.entries.sort(function(ue, ft) {
                    return ue[0].trace.index - ft[0].trace.index;
                  }), Ft.layer = Ie, Ft._inHover = !0, Ft._groupTitleFont = Ye.grouptitlefont, R(ce, Ft);
                  var Or = Ie.select("g.legend"), Fr = ie(ce, Or.node()), br = Fr.width + 2 * q, or = Fr.height + 2 * q, Rr = Pe[0], lr = (Rr.x0 + Rr.x1) / 2, Tr = (Rr.y0 + Rr.y1) / 2, Gr = !(S.traceIs(Rr.trace, "bar-like") || S.traceIs(Rr.trace, "box-violin")), Dr, gr;
                  Ot === "y" ? Gr ? (gr = Tr - q, Dr = Tr + q) : (gr = Math.min.apply(null, Pe.map(function(ue) {
                    return Math.min(ue.y0, ue.y1);
                  })), Dr = Math.max.apply(null, Pe.map(function(ue) {
                    return Math.max(ue.y0, ue.y1);
                  }))) : gr = Dr = f.mean(Pe.map(function(ue) {
                    return (ue.y0 + ue.y1) / 2;
                  })) - or / 2;
                  var Er, Cr;
                  Ot === "x" ? Gr ? (Er = lr + q, Cr = lr - q) : (Er = Math.max.apply(null, Pe.map(function(ue) {
                    return Math.max(ue.x0, ue.x1);
                  })), Cr = Math.min.apply(null, Pe.map(function(ue) {
                    return Math.min(ue.x0, ue.x1);
                  }))) : Er = Cr = f.mean(Pe.map(function(ue) {
                    return (ue.x0 + ue.x1) / 2;
                  })) - br / 2;
                  var zr = wt._offset, en = kt._offset;
                  Dr += en, Er += zr, Cr += zr - br, gr += en - or;
                  var on, Ir;
                  return Er + br < nr && Er >= 0 ? on = Er : Cr + br < nr && Cr >= 0 ? on = Cr : zr + br < nr ? on = zr : Er - lr < lr - Cr + br ? on = nr - br : on = 0, on += q, Dr + or < Jt && Dr >= 0 ? Ir = Dr : gr + or < Jt && gr >= 0 ? Ir = gr : en + or < Jt ? Ir = en : Dr - Tr < Tr - gr + or ? Ir = Jt - or : Ir = 0, Ir += q, Or.attr("transform", c(on - 1, Ir - 1)), Or;
                }
                var Ae = Ie.selectAll("g.hovertext").data(G, function(ue) {
                  return se(ue);
                });
                return Ae.enter().append("g").classed("hovertext", !0).each(function() {
                  var ue = a.select(this);
                  ue.append("rect").call(D.fill, D.addOpacity(we, 0.8)), ue.append("text").classed("name", !0), ue.append("path").style("stroke-width", "1px"), ue.append("text").classed("nums", !0).call(x.font, {
                    weight: at,
                    style: Le,
                    variant: ze,
                    textcase: Oe,
                    lineposition: Xe,
                    shadow: it,
                    family: Je,
                    size: et
                  });
                }), Ae.exit().remove(), Ae.each(function(ue) {
                  var ft = a.select(this).attr("transform", ""), nt = ue.color;
                  Array.isArray(nt) && (nt = nt[ue.eventData[0].pointNumber]);
                  var mt = ue.bgcolor || nt, Tt = D.combine(D.opacity(mt) ? mt : D.defaultLine, we), bt = D.combine(D.opacity(nt) ? nt : D.defaultLine, we), vt = ue.borderColor || D.contrast(Tt), ht = W(ue, Wt, he, j, Mt, ft), St = ht[0], It = ht[1], Ht = ft.select("text.nums").call(x.font, {
                    family: ue.fontFamily || Je,
                    size: ue.fontSize || et,
                    color: ue.fontColor || vt,
                    weight: ue.fontWeight || at,
                    style: ue.fontStyle || Le,
                    variant: ue.fontVariant || ze,
                    textcase: ue.fontTextcase || Oe,
                    lineposition: ue.fontLineposition || Xe,
                    shadow: ue.fontShadow || it
                  }).text(St).attr("data-notex", 1).call(i.positionText, 0, 0).call(i.convertToTspans, ce), Et = ft.select("text.name"), Zt = 0, Yt = 0;
                  if (It && It !== St) {
                    Et.call(x.font, {
                      family: ue.fontFamily || Je,
                      size: ue.fontSize || et,
                      color: bt,
                      weight: ue.fontWeight || at,
                      style: ue.fontStyle || Le,
                      variant: ue.fontVariant || ze,
                      textcase: ue.fontTextcase || Oe,
                      lineposition: ue.fontLineposition || Xe,
                      shadow: ue.fontShadow || it
                    }).text(It).attr("data-notex", 1).call(i.positionText, 0, 0).call(i.convertToTspans, ce);
                    var Gt = ie(ce, Et.node());
                    Zt = Gt.width + 2 * q, Yt = Gt.height + 2 * q;
                  } else
                    Et.remove(), ft.select("rect").remove();
                  ft.select("path").style({
                    fill: Tt,
                    stroke: vt
                  });
                  var $t = ue.xa._offset + (ue.x0 + ue.x1) / 2, ir = ue.ya._offset + (ue.y0 + ue.y1) / 2, wr = Math.abs(ue.x1 - ue.x0), sr = Math.abs(ue.y1 - ue.y0), Xr = ie(ce, Ht.node()), Lr = Xr.width / j._invScaleX, Pr = Xr.height / j._invScaleY;
                  ue.ty0 = (jt - Xr.top) / j._invScaleY, ue.bx = Lr + 2 * q, ue.by = Math.max(Pr + 2 * q, Yt), ue.anchor = "start", ue.txwidth = Lr, ue.tx2width = Zt, ue.offset = 0;
                  var $r = (Lr + ne + q + Zt) * j._invScaleX, Jr, Qr;
                  if (be)
                    ue.pos = $t, Jr = ir + sr / 2 + $r <= Jt, Qr = ir - sr / 2 - $r >= 0, (ue.idealAlign === "top" || !Jr) && Qr ? (ir -= sr / 2, ue.anchor = "end") : Jr ? (ir += sr / 2, ue.anchor = "start") : ue.anchor = "middle", ue.crossPos = ir;
                  else {
                    if (ue.pos = ir, Jr = $t + wr / 2 + $r <= nr, Qr = $t - wr / 2 - $r >= 0, (ue.idealAlign === "left" || !Jr) && Qr)
                      $t -= wr / 2, ue.anchor = "end";
                    else if (Jr)
                      $t += wr / 2, ue.anchor = "start";
                    else {
                      ue.anchor = "middle";
                      var vn = $r / 2, An = $t + vn - nr, hn = $t - vn;
                      An > 0 && ($t -= An), hn < 0 && ($t += -hn);
                    }
                    ue.crossPos = $t;
                  }
                  Ht.attr("text-anchor", ue.anchor), Zt && Et.attr("text-anchor", ue.anchor), ft.attr("transform", c($t, ir) + (be ? d(g) : ""));
                }), {
                  hoverLabels: Ae,
                  commonLabelBoundingBox: Se
                };
              }
              function W(G, H, ce, j, he, be) {
                var we = "", Ie = "";
                G.nameOverride !== void 0 && (G.name = G.nameOverride), G.name && (G.trace._meta && (G.name = f.templateString(G.name, G.trace._meta)), we = xe(G.name, G.nameLength));
                var Ge = ce.charAt(0), Ve = Ge === "x" ? "y" : "x";
                G.zLabel !== void 0 ? (G.xLabel !== void 0 && (Ie += "x: " + G.xLabel + "<br>"), G.yLabel !== void 0 && (Ie += "y: " + G.yLabel + "<br>"), G.trace.type !== "choropleth" && G.trace.type !== "choroplethmapbox" && (Ie += (Ie ? "z: " : "") + G.zLabel)) : H && G[Ge + "Label"] === he ? Ie = G[Ve + "Label"] || "" : G.xLabel === void 0 ? G.yLabel !== void 0 && G.trace.type !== "scattercarpet" && (Ie = G.yLabel) : G.yLabel === void 0 ? Ie = G.xLabel : Ie = "(" + G.xLabel + ", " + G.yLabel + ")", (G.text || G.text === 0) && !Array.isArray(G.text) && (Ie += (Ie ? "<br>" : "") + G.text), G.extraText !== void 0 && (Ie += (Ie ? "<br>" : "") + G.extraText), be && Ie === "" && !G.hovertemplate && (we === "" && be.remove(), Ie = we);
                var Je = G.hovertemplate || !1;
                if (Je) {
                  var et = G.hovertemplateLabels || G;
                  G[Ge + "Label"] !== he && (et[Ge + "other"] = et[Ge + "Val"], et[Ge + "otherLabel"] = et[Ge + "Label"]), Ie = f.hovertemplateString(Je, et, j._d3locale, G.eventData[0] || {}, G.trace._meta), Ie = Ie.replace(me, function(at, Le) {
                    return we = xe(Le, G.nameLength), "";
                  });
                }
                return [Ie, we];
              }
              function ae(G, H, ce, j) {
                var he = H ? "xa" : "ya", be = H ? "ya" : "xa", we = 0, Ie = 1, Ge = G.size(), Ve = new Array(Ge), Je = 0, et = j.minX, at = j.maxX, Le = j.minY, ze = j.maxY, Oe = function(We) {
                  return We * ce._invScaleX;
                }, Xe = function(We) {
                  return We * ce._invScaleY;
                };
                G.each(function(We) {
                  var je = We[he], lt = We[be], Se = je._id.charAt(0) === "x", Pe = je.range;
                  Je === 0 && Pe && Pe[0] > Pe[1] !== Se && (Ie = -1);
                  var Ye = 0, Ze = Se ? ce.width : ce.height;
                  if (ce.hovermode === "x" || ce.hovermode === "y") {
                    var rt = oe(We, H), tt = We.anchor, Ft = tt === "end" ? -1 : 1, Dt, dt;
                    if (tt === "middle")
                      Dt = We.crossPos + (Se ? Xe(rt.y - We.by / 2) : Oe(We.bx / 2 + We.tx2width / 2)), dt = Dt + (Se ? Xe(We.by) : Oe(We.bx));
                    else if (Se)
                      Dt = We.crossPos + Xe(ne + rt.y) - Xe(We.by / 2 - ne), dt = Dt + Xe(We.by);
                    else {
                      var st = Oe(Ft * ne + rt.x), Nt = st + Oe(Ft * We.bx);
                      Dt = We.crossPos + Math.min(st, Nt), dt = We.crossPos + Math.max(st, Nt);
                    }
                    Se ? Le !== void 0 && ze !== void 0 && Math.min(dt, ze) - Math.max(Dt, Le) > 1 && (lt.side === "left" ? (Ye = lt._mainLinePosition, Ze = ce.width) : Ze = lt._mainLinePosition) : et !== void 0 && at !== void 0 && Math.min(dt, at) - Math.max(Dt, et) > 1 && (lt.side === "top" ? (Ye = lt._mainLinePosition, Ze = ce.height) : Ze = lt._mainLinePosition);
                  }
                  Ve[Je++] = [{
                    datum: We,
                    traceIndex: We.trace.index,
                    dp: 0,
                    pos: We.pos,
                    posref: We.posref,
                    size: We.by * (Se ? O : 1) / 2,
                    pmin: Ye,
                    pmax: Ze
                  }];
                }), Ve.sort(function(We, je) {
                  return We[0].posref - je[0].posref || // for equal positions, sort trace indices increasing or decreasing
                  // depending on whether the axis is reversed or not... so stacked
                  // traces will generally keep their order even if one trace adds
                  // nothing to the stack.
                  Ie * (je[0].traceIndex - We[0].traceIndex);
                });
                var it, ut, wt, kt, Ot, Lt, Mt;
                function Ut(We) {
                  var je = We[0], lt = We[We.length - 1];
                  if (ut = je.pmin - je.pos - je.dp + je.size, wt = lt.pos + lt.dp + lt.size - je.pmax, ut > 0.01) {
                    for (Ot = We.length - 1; Ot >= 0; Ot--)
                      We[Ot].dp += ut;
                    it = !1;
                  }
                  if (!(wt < 0.01)) {
                    if (ut < -0.01) {
                      for (Ot = We.length - 1; Ot >= 0; Ot--)
                        We[Ot].dp -= wt;
                      it = !1;
                    }
                    if (it) {
                      var Se = 0;
                      for (kt = 0; kt < We.length; kt++)
                        Lt = We[kt], Lt.pos + Lt.dp + Lt.size > je.pmax && Se++;
                      for (kt = We.length - 1; kt >= 0 && !(Se <= 0); kt--)
                        Lt = We[kt], Lt.pos > je.pmax - 1 && (Lt.del = !0, Se--);
                      for (kt = 0; kt < We.length && !(Se <= 0); kt++)
                        if (Lt = We[kt], Lt.pos < je.pmin + 1)
                          for (Lt.del = !0, Se--, wt = Lt.size * 2, Ot = We.length - 1; Ot >= 0; Ot--)
                            We[Ot].dp -= wt;
                      for (kt = We.length - 1; kt >= 0 && !(Se <= 0); kt--)
                        Lt = We[kt], Lt.pos + Lt.dp + Lt.size > je.pmax && (Lt.del = !0, Se--);
                    }
                  }
                }
                for (; !it && we <= Ge; ) {
                  for (we++, it = !0, kt = 0; kt < Ve.length - 1; ) {
                    var Ct = Ve[kt], jt = Ve[kt + 1], nr = Ct[Ct.length - 1], Jt = jt[0];
                    if (ut = nr.pos + nr.dp + nr.size - Jt.pos - Jt.dp + Jt.size, ut > 0.01 && nr.pmin === Jt.pmin && nr.pmax === Jt.pmax) {
                      for (Ot = jt.length - 1; Ot >= 0; Ot--)
                        jt[Ot].dp += ut;
                      for (Ct.push.apply(Ct, jt), Ve.splice(kt + 1, 1), Mt = 0, Ot = Ct.length - 1; Ot >= 0; Ot--)
                        Mt += Ct[Ot].dp;
                      for (wt = Mt / Ct.length, Ot = Ct.length - 1; Ot >= 0; Ot--)
                        Ct[Ot].dp -= wt;
                      it = !1;
                    } else
                      kt++;
                  }
                  Ve.forEach(Ut);
                }
                for (kt = Ve.length - 1; kt >= 0; kt--) {
                  var Wt = Ve[kt];
                  for (Ot = Wt.length - 1; Ot >= 0; Ot--) {
                    var qe = Wt[Ot], Ue = qe.datum;
                    Ue.offset = qe.dp, Ue.del = qe.del;
                  }
                }
              }
              function oe(G, H) {
                var ce = 0, j = G.offset;
                return H && (j *= -Y, ce = G.offset * $), {
                  x: ce,
                  y: j
                };
              }
              function ve(G) {
                var H = {
                  start: 1,
                  end: -1,
                  middle: 0
                }[G.anchor], ce = H * (ne + q), j = ce + H * (G.txwidth + q), he = G.anchor === "middle";
                return he && (ce -= G.tx2width / 2, j += G.txwidth / 2 + q), {
                  alignShift: H,
                  textShiftX: ce,
                  text2ShiftX: j
                };
              }
              function fe(G, H, ce, j) {
                var he = function(we) {
                  return we * ce;
                }, be = function(we) {
                  return we * j;
                };
                G.each(function(we) {
                  var Ie = a.select(this);
                  if (we.del)
                    return Ie.remove();
                  var Ge = Ie.select("text.nums"), Ve = we.anchor, Je = Ve === "end" ? -1 : 1, et = ve(we), at = oe(we, H), Le = at.x, ze = at.y, Oe = Ve === "middle";
                  Ie.select("path").attr("d", Oe ? (
                    // middle aligned: rect centered on data
                    "M-" + he(we.bx / 2 + we.tx2width / 2) + "," + be(ze - we.by / 2) + "h" + he(we.bx) + "v" + be(we.by) + "h-" + he(we.bx) + "Z"
                  ) : (
                    // left or right aligned: side rect with arrow to data
                    "M0,0L" + he(Je * ne + Le) + "," + be(ne + ze) + "v" + be(we.by / 2 - ne) + "h" + he(Je * we.bx) + "v-" + be(we.by) + "H" + he(Je * ne + Le) + "V" + be(ze - ne) + "Z"
                  ));
                  var Xe = Le + et.textShiftX, it = ze + we.ty0 - we.by / 2 + q, ut = we.textAlign || "auto";
                  ut !== "auto" && (ut === "left" && Ve !== "start" ? (Ge.attr("text-anchor", "start"), Xe = Oe ? -we.bx / 2 - we.tx2width / 2 + q : -we.bx - q) : ut === "right" && Ve !== "end" && (Ge.attr("text-anchor", "end"), Xe = Oe ? we.bx / 2 - we.tx2width / 2 - q : we.bx + q)), Ge.call(i.positionText, he(Xe), be(it)), we.tx2width && (Ie.select("text.name").call(i.positionText, he(et.text2ShiftX + et.alignShift * q + Le), be(ze + we.ty0 - we.by / 2 + q)), Ie.select("rect").call(x.setRect, he(et.text2ShiftX + (et.alignShift - 1) * we.tx2width / 2 + Le), be(ze - we.by / 2 - 1), he(we.tx2width), be(we.by + 2)));
                });
              }
              function ye(G, H) {
                var ce = G.index, j = G.trace || {}, he = G.cd[0], be = G.cd[ce] || {};
                function we(at) {
                  return at || p(at) && at === 0;
                }
                var Ie = Array.isArray(ce) ? function(at, Le) {
                  var ze = f.castOption(he, ce, at);
                  return we(ze) ? ze : f.extractOption({}, j, "", Le);
                } : function(at, Le) {
                  return f.extractOption(be, j, at, Le);
                };
                function Ge(at, Le, ze) {
                  var Oe = Ie(Le, ze);
                  we(Oe) && (G[at] = Oe);
                }
                if (Ge("hoverinfo", "hi", "hoverinfo"), Ge("bgcolor", "hbg", "hoverlabel.bgcolor"), Ge("borderColor", "hbc", "hoverlabel.bordercolor"), Ge("fontFamily", "htf", "hoverlabel.font.family"), Ge("fontSize", "hts", "hoverlabel.font.size"), Ge("fontColor", "htc", "hoverlabel.font.color"), Ge("fontWeight", "htw", "hoverlabel.font.weight"), Ge("fontStyle", "hty", "hoverlabel.font.style"), Ge("fontVariant", "htv", "hoverlabel.font.variant"), Ge("nameLength", "hnl", "hoverlabel.namelength"), Ge("textAlign", "hta", "hoverlabel.align"), G.posref = H === "y" || H === "closest" && j.orientation === "h" ? G.xa._offset + (G.x0 + G.x1) / 2 : G.ya._offset + (G.y0 + G.y1) / 2, G.x0 = f.constrain(G.x0, 0, G.xa._length), G.x1 = f.constrain(G.x1, 0, G.xa._length), G.y0 = f.constrain(G.y0, 0, G.ya._length), G.y1 = f.constrain(G.y1, 0, G.ya._length), G.xLabelVal !== void 0 && (G.xLabel = "xLabel" in G ? G.xLabel : w.hoverLabelText(G.xa, G.xLabelVal, j.xhoverformat), G.xVal = G.xa.c2d(G.xLabelVal)), G.yLabelVal !== void 0 && (G.yLabel = "yLabel" in G ? G.yLabel : w.hoverLabelText(G.ya, G.yLabelVal, j.yhoverformat), G.yVal = G.ya.c2d(G.yLabelVal)), G.zLabelVal !== void 0 && G.zLabel === void 0 && (G.zLabel = String(G.zLabelVal)), !isNaN(G.xerr) && !(G.xa.type === "log" && G.xerr <= 0)) {
                  var Ve = w.tickText(G.xa, G.xa.c2l(G.xerr), "hover").text;
                  G.xerrneg !== void 0 ? G.xLabel += " +" + Ve + " / -" + w.tickText(G.xa, G.xa.c2l(G.xerrneg), "hover").text : G.xLabel += " ± " + Ve, H === "x" && (G.distance += 1);
                }
                if (!isNaN(G.yerr) && !(G.ya.type === "log" && G.yerr <= 0)) {
                  var Je = w.tickText(G.ya, G.ya.c2l(G.yerr), "hover").text;
                  G.yerrneg !== void 0 ? G.yLabel += " +" + Je + " / -" + w.tickText(G.ya, G.ya.c2l(G.yerrneg), "hover").text : G.yLabel += " ± " + Je, H === "y" && (G.distance += 1);
                }
                var et = G.hoverinfo || G.trace.hoverinfo;
                return et && et !== "all" && (et = Array.isArray(et) ? et : et.split("+"), et.indexOf("x") === -1 && (G.xLabel = void 0), et.indexOf("y") === -1 && (G.yLabel = void 0), et.indexOf("z") === -1 && (G.zLabel = void 0), et.indexOf("text") === -1 && (G.text = void 0), et.indexOf("name") === -1 && (G.name = void 0)), G;
              }
              function Ce(G, H, ce) {
                var j = ce.container, he = ce.fullLayout, be = he._size, we = ce.event, Ie = !!H.hLinePoint, Ge = !!H.vLinePoint, Ve, Je;
                if (j.selectAll(".spikeline").remove(), !!(Ge || Ie)) {
                  var et = D.combine(he.plot_bgcolor, he.paper_bgcolor);
                  if (Ie) {
                    var at = H.hLinePoint, Le, ze;
                    Ve = at && at.xa, Je = at && at.ya;
                    var Oe = Je.spikesnap;
                    Oe === "cursor" ? (Le = we.pointerX, ze = we.pointerY) : (Le = Ve._offset + at.x, ze = Je._offset + at.y);
                    var Xe = l.readability(at.color, et) < 1.5 ? D.contrast(et) : at.color, it = Je.spikemode, ut = Je.spikethickness, wt = Je.spikecolor || Xe, kt = w.getPxPosition(G, Je), Ot, Lt;
                    if (it.indexOf("toaxis") !== -1 || it.indexOf("across") !== -1) {
                      if (it.indexOf("toaxis") !== -1 && (Ot = kt, Lt = Le), it.indexOf("across") !== -1) {
                        var Mt = Je._counterDomainMin, Ut = Je._counterDomainMax;
                        Je.anchor === "free" && (Mt = Math.min(Mt, Je.position), Ut = Math.max(Ut, Je.position)), Ot = be.l + Mt * be.w, Lt = be.l + Ut * be.w;
                      }
                      j.insert("line", ":first-child").attr({
                        x1: Ot,
                        x2: Lt,
                        y1: ze,
                        y2: ze,
                        "stroke-width": ut,
                        stroke: wt,
                        "stroke-dasharray": x.dashStyle(Je.spikedash, ut)
                      }).classed("spikeline", !0).classed("crisp", !0), j.insert("line", ":first-child").attr({
                        x1: Ot,
                        x2: Lt,
                        y1: ze,
                        y2: ze,
                        "stroke-width": ut + 2,
                        stroke: et
                      }).classed("spikeline", !0).classed("crisp", !0);
                    }
                    it.indexOf("marker") !== -1 && j.insert("circle", ":first-child").attr({
                      cx: kt + (Je.side !== "right" ? ut : -ut),
                      cy: ze,
                      r: ut,
                      fill: wt
                    }).classed("spikeline", !0);
                  }
                  if (Ge) {
                    var Ct = H.vLinePoint, jt, nr;
                    Ve = Ct && Ct.xa, Je = Ct && Ct.ya;
                    var Jt = Ve.spikesnap;
                    Jt === "cursor" ? (jt = we.pointerX, nr = we.pointerY) : (jt = Ve._offset + Ct.x, nr = Je._offset + Ct.y);
                    var Wt = l.readability(Ct.color, et) < 1.5 ? D.contrast(et) : Ct.color, qe = Ve.spikemode, Ue = Ve.spikethickness, We = Ve.spikecolor || Wt, je = w.getPxPosition(G, Ve), lt, Se;
                    if (qe.indexOf("toaxis") !== -1 || qe.indexOf("across") !== -1) {
                      if (qe.indexOf("toaxis") !== -1 && (lt = je, Se = nr), qe.indexOf("across") !== -1) {
                        var Pe = Ve._counterDomainMin, Ye = Ve._counterDomainMax;
                        Ve.anchor === "free" && (Pe = Math.min(Pe, Ve.position), Ye = Math.max(Ye, Ve.position)), lt = be.t + (1 - Ye) * be.h, Se = be.t + (1 - Pe) * be.h;
                      }
                      j.insert("line", ":first-child").attr({
                        x1: jt,
                        x2: jt,
                        y1: lt,
                        y2: Se,
                        "stroke-width": Ue,
                        stroke: We,
                        "stroke-dasharray": x.dashStyle(Ve.spikedash, Ue)
                      }).classed("spikeline", !0).classed("crisp", !0), j.insert("line", ":first-child").attr({
                        x1: jt,
                        x2: jt,
                        y1: lt,
                        y2: Se,
                        "stroke-width": Ue + 2,
                        stroke: et
                      }).classed("spikeline", !0).classed("crisp", !0);
                    }
                    qe.indexOf("marker") !== -1 && j.insert("circle", ":first-child").attr({
                      cx: jt,
                      cy: je - (Ve.side !== "top" ? Ue : -Ue),
                      r: Ue,
                      fill: We
                    }).classed("spikeline", !0);
                  }
                }
              }
              function Re(G, H, ce) {
                if (!ce || ce.length !== G._hoverdata.length)
                  return !0;
                for (var j = ce.length - 1; j >= 0; j--) {
                  var he = ce[j], be = G._hoverdata[j];
                  if (he.curveNumber !== be.curveNumber || String(he.pointNumber) !== String(be.pointNumber) || String(he.pointNumbers) !== String(be.pointNumbers))
                    return !0;
                }
                return !1;
              }
              function Be(G, H) {
                return !0;
              }
              function xe(G, H) {
                return i.plainText(G || "", {
                  len: H,
                  allowedTags: ["br", "sub", "sup", "b", "i", "em"]
                });
              }
              function Me(G, H) {
                for (var ce = H.charAt(0), j = [], he = [], be = [], we = 0; we < G.length; we++) {
                  var Ie = G[we];
                  S.traceIs(Ie.trace, "bar-like") || S.traceIs(Ie.trace, "box-violin") ? be.push(Ie) : Ie.trace[ce + "period"] ? he.push(Ie) : j.push(Ie);
                }
                return j.concat(he).concat(be);
              }
              function De(G, H, ce) {
                var j = H[G + "a"], he = H[G + "Val"], be = H.cd[0];
                if (j.type === "category" || j.type === "multicategory")
                  he = j._categoriesMap[he];
                else if (j.type === "date") {
                  var we = H.trace[G + "periodalignment"];
                  if (we) {
                    var Ie = H.cd[H.index], Ge = Ie[G + "Start"];
                    Ge === void 0 && (Ge = Ie[G]);
                    var Ve = Ie[G + "End"];
                    Ve === void 0 && (Ve = Ie[G]);
                    var Je = Ve - Ge;
                    we === "end" ? he += Je : we === "middle" && (he += Je / 2);
                  }
                  he = j.d2c(he);
                }
                return be && be.t && be.t.posLetter === j._id && (ce.boxmode === "group" || ce.violinmode === "group") && (he += be.t.dPos), he;
              }
              function Z(G) {
                return G.offsetTop + G.clientTop;
              }
              function ee(G) {
                return G.offsetLeft + G.clientLeft;
              }
              function ie(G, H) {
                var ce = G._fullLayout, j = H.getBoundingClientRect(), he = j.left, be = j.top, we = he + j.width, Ie = be + j.height, Ge = f.apply3DTransform(ce._invTransform)(he, be), Ve = f.apply3DTransform(ce._invTransform)(we, Ie), Je = Ge[0], et = Ge[1], at = Ve[0], Le = Ve[1];
                return {
                  x: Je,
                  y: et,
                  width: at - Je,
                  height: Le - et,
                  top: Math.min(et, Le),
                  left: Math.min(Je, at),
                  right: Math.max(Je, at),
                  bottom: Math.max(et, Le)
                };
              }
            }
          ),
          /***/
          6132: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(6308), l = r(624).isUnifiedHover;
              M.exports = function(u, c, d, h) {
                h = h || {};
                var i = c.legend;
                function b(x) {
                  h.font[x] || (h.font[x] = i ? c.legend.font[x] : c.font[x]);
                }
                c && l(c.hovermode) && (h.font || (h.font = {}), b("size"), b("family"), b("color"), b("weight"), b("style"), b("variant"), i ? (h.bgcolor || (h.bgcolor = p.combine(c.legend.bgcolor, c.paper_bgcolor)), h.bordercolor || (h.bordercolor = c.legend.bordercolor)) : h.bgcolor || (h.bgcolor = c.paper_bgcolor)), d("hoverlabel.bgcolor", h.bgcolor), d("hoverlabel.bordercolor", h.bordercolor), d("hoverlabel.namelength", h.namelength), a.coerceFont(d, "hoverlabel.font", h.font), d("hoverlabel.align", h.align);
              };
            }
          ),
          /***/
          1008: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(5460);
              M.exports = function(f, u) {
                function c(d, h) {
                  return u[d] !== void 0 ? u[d] : a.coerce(f, u, p, d, h);
                }
                return c("clickmode"), c("hoversubplots"), c("hovermode");
              };
            }
          ),
          /***/
          3024: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(3400), l = r(6476), f = r(624), u = r(5460), c = r(3292);
              M.exports = {
                moduleType: "component",
                name: "fx",
                constants: r(2456),
                schema: {
                  layout: u
                },
                attributes: r(5756),
                layoutAttributes: u,
                supplyLayoutGlobalDefaults: r(1976),
                supplyDefaults: r(5448),
                supplyLayoutDefaults: r(8336),
                calc: r(5056),
                getDistanceFunction: f.getDistanceFunction,
                getClosest: f.getClosest,
                inbox: f.inbox,
                quadrature: f.quadrature,
                appendArrayPointValue: f.appendArrayPointValue,
                castHoverOption: h,
                castHoverinfo: i,
                hover: c.hover,
                unhover: l.unhover,
                loneHover: c.loneHover,
                loneUnhover: d,
                click: r(2376)
              };
              function d(b) {
                var x = p.isD3Selection(b) ? b : a.select(b);
                x.selectAll("g.hovertext").remove(), x.selectAll(".spikeline").remove();
              }
              function h(b, x, D) {
                return p.castOption(b, x, "hoverlabel." + D);
              }
              function i(b, x, D) {
                function C(w) {
                  return p.coerceHoverinfo({
                    hoverinfo: w
                  }, {
                    _module: b._module
                  }, x);
                }
                return p.castOption(b, D, "hoverinfo", C);
              }
            }
          ),
          /***/
          5460: (
            /***/
            function(M, L, r) {
              var a = r(2456), p = r(5376), l = p({
                editType: "none"
              });
              l.family.dflt = a.HOVERFONT, l.size.dflt = a.HOVERFONTSIZE, M.exports = {
                clickmode: {
                  valType: "flaglist",
                  flags: ["event", "select"],
                  dflt: "event",
                  editType: "plot",
                  extras: ["none"]
                },
                dragmode: {
                  valType: "enumerated",
                  values: ["zoom", "pan", "select", "lasso", "drawclosedpath", "drawopenpath", "drawline", "drawrect", "drawcircle", "orbit", "turntable", !1],
                  dflt: "zoom",
                  editType: "modebar"
                },
                hovermode: {
                  valType: "enumerated",
                  values: ["x", "y", "closest", !1, "x unified", "y unified"],
                  dflt: "closest",
                  editType: "modebar"
                },
                hoversubplots: {
                  valType: "enumerated",
                  values: ["single", "overlaying", "axis"],
                  dflt: "overlaying",
                  editType: "none"
                },
                hoverdistance: {
                  valType: "integer",
                  min: -1,
                  dflt: 20,
                  editType: "none"
                },
                spikedistance: {
                  valType: "integer",
                  min: -1,
                  dflt: -1,
                  editType: "none"
                },
                hoverlabel: {
                  bgcolor: {
                    valType: "color",
                    editType: "none"
                  },
                  bordercolor: {
                    valType: "color",
                    editType: "none"
                  },
                  font: l,
                  grouptitlefont: p({
                    editType: "none"
                  }),
                  align: {
                    valType: "enumerated",
                    values: ["left", "right", "auto"],
                    dflt: "auto",
                    editType: "none"
                  },
                  namelength: {
                    valType: "integer",
                    min: -1,
                    dflt: 15,
                    editType: "none"
                  },
                  editType: "none"
                },
                selectdirection: {
                  valType: "enumerated",
                  values: ["h", "v", "d", "any"],
                  dflt: "any",
                  editType: "none"
                }
              };
            }
          ),
          /***/
          8336: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(5460), l = r(1008), f = r(6132);
              M.exports = function(c, d) {
                function h(w, S) {
                  return a.coerce(c, d, p, w, S);
                }
                var i = l(c, d);
                i && (h("hoverdistance"), h("spikedistance"));
                var b = h("dragmode");
                b === "select" && h("selectdirection");
                var x = d._has("mapbox"), D = d._has("geo"), C = d._basePlotModules.length;
                d.dragmode === "zoom" && ((x || D) && C === 1 || x && D && C === 2) && (d.dragmode = "pan"), f(c, d, h), a.coerceFont(h, "hoverlabel.grouptitlefont", d.hoverlabel.font);
              };
            }
          ),
          /***/
          1976: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(6132), l = r(5460);
              M.exports = function(u, c) {
                function d(h, i) {
                  return a.coerce(u, c, l, h, i);
                }
                p(u, c, d);
              };
            }
          ),
          /***/
          2704: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(3756).counter, l = r(6968).u, f = r(3816).idRegex, u = r(1780), c = {
                rows: {
                  valType: "integer",
                  min: 1,
                  editType: "plot"
                },
                roworder: {
                  valType: "enumerated",
                  values: ["top to bottom", "bottom to top"],
                  dflt: "top to bottom",
                  editType: "plot"
                },
                columns: {
                  valType: "integer",
                  min: 1,
                  editType: "plot"
                },
                subplots: {
                  valType: "info_array",
                  freeLength: !0,
                  dimensions: 2,
                  items: {
                    valType: "enumerated",
                    values: [p("xy").toString(), ""],
                    editType: "plot"
                  },
                  editType: "plot"
                },
                xaxes: {
                  valType: "info_array",
                  freeLength: !0,
                  items: {
                    valType: "enumerated",
                    values: [f.x.toString(), ""],
                    editType: "plot"
                  },
                  editType: "plot"
                },
                yaxes: {
                  valType: "info_array",
                  freeLength: !0,
                  items: {
                    valType: "enumerated",
                    values: [f.y.toString(), ""],
                    editType: "plot"
                  },
                  editType: "plot"
                },
                pattern: {
                  valType: "enumerated",
                  values: ["independent", "coupled"],
                  dflt: "coupled",
                  editType: "plot"
                },
                xgap: {
                  valType: "number",
                  min: 0,
                  max: 1,
                  editType: "plot"
                },
                ygap: {
                  valType: "number",
                  min: 0,
                  max: 1,
                  editType: "plot"
                },
                domain: l({
                  name: "grid",
                  editType: "plot",
                  noGridCell: !0
                }, {}),
                xside: {
                  valType: "enumerated",
                  values: ["bottom", "bottom plot", "top plot", "top"],
                  dflt: "bottom plot",
                  editType: "plot"
                },
                yside: {
                  valType: "enumerated",
                  values: ["left", "left plot", "right plot", "right"],
                  dflt: "left plot",
                  editType: "plot"
                },
                editType: "plot"
              };
              function d(D, C, w) {
                var S = C[w + "axes"], T = Object.keys((D._splomAxes || {})[w] || {});
                if (Array.isArray(S))
                  return S;
                if (T.length)
                  return T;
              }
              function h(D, C) {
                var w = D.grid || {}, S = d(C, w, "x"), T = d(C, w, "y");
                if (!D.grid && !S && !T)
                  return;
                var k = Array.isArray(w.subplots) && Array.isArray(w.subplots[0]), A = Array.isArray(S), R = Array.isArray(T), g = A && S !== w.xaxes && R && T !== w.yaxes, I, O;
                k ? (I = w.subplots.length, O = w.subplots[0].length) : (R && (I = T.length), A && (O = S.length));
                var $ = u.newContainer(C, "grid");
                function Y(W, ae) {
                  return a.coerce(w, $, c, W, ae);
                }
                var ne = Y("rows", I), q = Y("columns", O);
                if (!(ne * q > 1)) {
                  delete C.grid;
                  return;
                }
                if (!k && !A && !R) {
                  var B = Y("pattern") === "independent";
                  B && (k = !0);
                }
                $._hasSubplotGrid = k;
                var X = Y("roworder"), U = X === "top to bottom", te = k ? 0.2 : 0.1, se = k ? 0.3 : 0.1, me, J;
                g && C._splomGridDflt && (me = C._splomGridDflt.xside, J = C._splomGridDflt.yside), $._domains = {
                  x: i("x", Y, te, me, q),
                  y: i("y", Y, se, J, ne, U)
                };
              }
              function i(D, C, w, S, T, k) {
                var A = C(D + "gap", w), R = C("domain." + D);
                C(D + "side", S);
                for (var g = new Array(T), I = R[0], O = (R[1] - I) / (T - A), $ = O * (1 - A), Y = 0; Y < T; Y++) {
                  var ne = I + O * Y;
                  g[k ? T - 1 - Y : Y] = [ne, ne + $];
                }
                return g;
              }
              function b(D, C) {
                var w = C.grid;
                if (!(!w || !w._domains)) {
                  var S = D.grid || {}, T = C._subplots, k = w._hasSubplotGrid, A = w.rows, R = w.columns, g = w.pattern === "independent", I, O, $, Y, ne, q, B, X = w._axisMap = {};
                  if (k) {
                    var U = S.subplots || [];
                    q = w.subplots = new Array(A);
                    var te = 1;
                    for (I = 0; I < A; I++) {
                      var se = q[I] = new Array(R), me = U[I] || [];
                      for (O = 0; O < R; O++)
                        if (g ? (ne = te === 1 ? "xy" : "x" + te + "y" + te, te++) : ne = me[O], se[O] = "", T.cartesian.indexOf(ne) !== -1) {
                          if (B = ne.indexOf("y"), $ = ne.slice(0, B), Y = ne.slice(B), X[$] !== void 0 && X[$] !== O || X[Y] !== void 0 && X[Y] !== I)
                            continue;
                          se[O] = ne, X[$] = O, X[Y] = I;
                        }
                    }
                  } else {
                    var J = d(C, S, "x"), W = d(C, S, "y");
                    w.xaxes = x(J, T.xaxis, R, X, "x"), w.yaxes = x(W, T.yaxis, A, X, "y");
                  }
                  var ae = w._anchors = {}, oe = w.roworder === "top to bottom";
                  for (var ve in X) {
                    var fe = ve.charAt(0), ye = w[fe + "side"], Ce, Re, Be;
                    if (ye.length < 8)
                      ae[ve] = "free";
                    else if (fe === "x") {
                      if (ye.charAt(0) === "t" === oe ? (Ce = 0, Re = 1, Be = A) : (Ce = A - 1, Re = -1, Be = -1), k) {
                        var xe = X[ve];
                        for (I = Ce; I !== Be; I += Re)
                          if (ne = q[I][xe], !!ne && (B = ne.indexOf("y"), ne.slice(0, B) === ve)) {
                            ae[ve] = ne.slice(B);
                            break;
                          }
                      } else
                        for (I = Ce; I !== Be; I += Re)
                          if (Y = w.yaxes[I], T.cartesian.indexOf(ve + Y) !== -1) {
                            ae[ve] = Y;
                            break;
                          }
                    } else if (ye.charAt(0) === "l" ? (Ce = 0, Re = 1, Be = R) : (Ce = R - 1, Re = -1, Be = -1), k) {
                      var Me = X[ve];
                      for (I = Ce; I !== Be; I += Re)
                        if (ne = q[Me][I], !!ne && (B = ne.indexOf("y"), ne.slice(B) === ve)) {
                          ae[ve] = ne.slice(0, B);
                          break;
                        }
                    } else
                      for (I = Ce; I !== Be; I += Re)
                        if ($ = w.xaxes[I], T.cartesian.indexOf($ + ve) !== -1) {
                          ae[ve] = $;
                          break;
                        }
                  }
                }
              }
              function x(D, C, w, S, T) {
                var k = new Array(w), A;
                function R(g, I) {
                  C.indexOf(I) !== -1 && S[I] === void 0 ? (k[g] = I, S[I] = g) : k[g] = "";
                }
                if (Array.isArray(D))
                  for (A = 0; A < w; A++)
                    R(A, D[A]);
                else
                  for (R(0, T), A = 1; A < w; A++)
                    R(A, T + (A + 1));
                return k;
              }
              M.exports = {
                moduleType: "component",
                name: "grid",
                schema: {
                  layout: {
                    grid: c
                  }
                },
                layoutAttributes: c,
                sizeDefaults: h,
                contentDefaults: b
              };
            }
          ),
          /***/
          5760: (
            /***/
            function(M, L, r) {
              var a = r(3816), p = r(1780).templatedArray;
              r(6208), M.exports = p("image", {
                visible: {
                  valType: "boolean",
                  dflt: !0,
                  editType: "arraydraw"
                },
                source: {
                  valType: "string",
                  editType: "arraydraw"
                },
                layer: {
                  valType: "enumerated",
                  values: ["below", "above"],
                  dflt: "above",
                  editType: "arraydraw"
                },
                sizex: {
                  valType: "number",
                  dflt: 0,
                  editType: "arraydraw"
                },
                sizey: {
                  valType: "number",
                  dflt: 0,
                  editType: "arraydraw"
                },
                sizing: {
                  valType: "enumerated",
                  values: ["fill", "contain", "stretch"],
                  dflt: "contain",
                  editType: "arraydraw"
                },
                opacity: {
                  valType: "number",
                  min: 0,
                  max: 1,
                  dflt: 1,
                  editType: "arraydraw"
                },
                x: {
                  valType: "any",
                  dflt: 0,
                  editType: "arraydraw"
                },
                y: {
                  valType: "any",
                  dflt: 0,
                  editType: "arraydraw"
                },
                xanchor: {
                  valType: "enumerated",
                  values: ["left", "center", "right"],
                  dflt: "left",
                  editType: "arraydraw"
                },
                yanchor: {
                  valType: "enumerated",
                  values: ["top", "middle", "bottom"],
                  dflt: "top",
                  editType: "arraydraw"
                },
                xref: {
                  valType: "enumerated",
                  values: ["paper", a.idRegex.x.toString()],
                  dflt: "paper",
                  editType: "arraydraw"
                },
                yref: {
                  valType: "enumerated",
                  values: ["paper", a.idRegex.y.toString()],
                  dflt: "paper",
                  editType: "arraydraw"
                },
                editType: "arraydraw"
              });
            }
          ),
          /***/
          3556: (
            /***/
            function(M, L, r) {
              var a = r(8248), p = r(6896);
              M.exports = function(f, u, c, d) {
                u = u || {};
                var h = c === "log" && u.type === "linear", i = c === "linear" && u.type === "log";
                if (h || i) {
                  for (var b = f._fullLayout.images, x = u._id.charAt(0), D, C, w = 0; w < b.length; w++)
                    if (D = b[w], C = "images[" + w + "].", D[x + "ref"] === u._id) {
                      var S = D[x], T = D["size" + x], k = null, A = null;
                      if (h) {
                        k = p(S, u.range);
                        var R = T / Math.pow(10, k) / 2;
                        A = 2 * Math.log(R + Math.sqrt(1 + R * R)) / Math.LN10;
                      } else
                        k = Math.pow(10, S), A = k * (Math.pow(10, T / 2) - Math.pow(10, -T / 2));
                      a(k) ? a(A) || (A = null) : (k = null, A = null), d(C + x, k), d(C + "size" + x, A);
                    }
                }
              };
            }
          ),
          /***/
          7404: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(4460), l = r(1272), f = r(5760), u = "images";
              M.exports = function(h, i) {
                var b = {
                  name: u,
                  handleItemDefaults: c
                };
                l(h, i, b);
              };
              function c(d, h, i) {
                function b(R, g) {
                  return a.coerce(d, h, f, R, g);
                }
                var x = b("source"), D = b("visible", !!x);
                if (!D)
                  return h;
                b("layer"), b("xanchor"), b("yanchor"), b("sizex"), b("sizey"), b("sizing"), b("opacity");
                for (var C = {
                  _fullLayout: i
                }, w = ["x", "y"], S = 0; S < 2; S++) {
                  var T = w[S], k = p.coerceRef(d, h, C, T, "paper", void 0);
                  if (k !== "paper") {
                    var A = p.getFromId(C, k);
                    A._imgIndices.push(h._index);
                  }
                  p.coercePosition(h, C, b, k, T, 0);
                }
                return h;
              }
            }
          ),
          /***/
          963: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(3616), l = r(4460), f = r(9811), u = r(9616);
              M.exports = function(d) {
                var h = d._fullLayout, i = [], b = {}, x = [], D, C;
                for (C = 0; C < h.images.length; C++) {
                  var w = h.images[C];
                  if (w.visible)
                    if (w.layer === "below" && w.xref !== "paper" && w.yref !== "paper") {
                      D = f.ref2id(w.xref) + f.ref2id(w.yref);
                      var S = h._plots[D];
                      if (!S) {
                        x.push(w);
                        continue;
                      }
                      S.mainplot && (D = S.mainplot.id), b[D] || (b[D] = []), b[D].push(w);
                    } else
                      w.layer === "above" ? i.push(w) : x.push(w);
                }
                var T = {
                  x: {
                    left: {
                      sizing: "xMin",
                      offset: 0
                    },
                    center: {
                      sizing: "xMid",
                      offset: -1 / 2
                    },
                    right: {
                      sizing: "xMax",
                      offset: -1
                    }
                  },
                  y: {
                    top: {
                      sizing: "YMin",
                      offset: 0
                    },
                    middle: {
                      sizing: "YMid",
                      offset: -1 / 2
                    },
                    bottom: {
                      sizing: "YMax",
                      offset: -1
                    }
                  }
                };
                function k(Y) {
                  var ne = a.select(this);
                  if (this._imgSrc !== Y.source)
                    if (ne.attr("xmlns", u.svg), Y.source && Y.source.slice(0, 5) === "data:")
                      ne.attr("xlink:href", Y.source), this._imgSrc = Y.source;
                    else {
                      var q = new Promise((function(B) {
                        var X = new Image();
                        this.img = X, X.setAttribute("crossOrigin", "anonymous"), X.onerror = U, X.onload = function() {
                          var te = document.createElement("canvas");
                          te.width = this.width, te.height = this.height;
                          var se = te.getContext("2d", {
                            willReadFrequently: !0
                          });
                          se.drawImage(this, 0, 0);
                          var me = te.toDataURL("image/png");
                          ne.attr("xlink:href", me), B();
                        }, ne.on("error", U), X.src = Y.source, this._imgSrc = Y.source;
                        function U() {
                          ne.remove(), B();
                        }
                      }).bind(this));
                      d._promises.push(q);
                    }
                }
                function A(Y) {
                  var ne = a.select(this), q = l.getFromId(d, Y.xref), B = l.getFromId(d, Y.yref), X = l.getRefType(Y.xref) === "domain", U = l.getRefType(Y.yref) === "domain", te = h._size, se, me;
                  q !== void 0 ? se = typeof Y.xref == "string" && X ? q._length * Y.sizex : Math.abs(q.l2p(Y.sizex) - q.l2p(0)) : se = Y.sizex * te.w, B !== void 0 ? me = typeof Y.yref == "string" && U ? B._length * Y.sizey : Math.abs(B.l2p(Y.sizey) - B.l2p(0)) : me = Y.sizey * te.h;
                  var J = se * T.x[Y.xanchor].offset, W = me * T.y[Y.yanchor].offset, ae = T.x[Y.xanchor].sizing + T.y[Y.yanchor].sizing, oe, ve;
                  switch (q !== void 0 ? oe = typeof Y.xref == "string" && X ? q._length * Y.x + q._offset : q.r2p(Y.x) + q._offset : oe = Y.x * te.w + te.l, oe += J, B !== void 0 ? ve = typeof Y.yref == "string" && U ? (
                    // consistent with "paper" yref value, where positive values
                    // move up the page
                    B._length * (1 - Y.y) + B._offset
                  ) : B.r2p(Y.y) + B._offset : ve = te.h - Y.y * te.h + te.t, ve += W, Y.sizing) {
                    case "fill":
                      ae += " slice";
                      break;
                    case "stretch":
                      ae = "none";
                      break;
                  }
                  ne.attr({
                    x: oe,
                    y: ve,
                    width: se,
                    height: me,
                    preserveAspectRatio: ae,
                    opacity: Y.opacity
                  });
                  var fe = q && l.getRefType(Y.xref) !== "domain" ? q._id : "", ye = B && l.getRefType(Y.yref) !== "domain" ? B._id : "", Ce = fe + ye;
                  p.setClipUrl(ne, Ce ? "clip" + h._uid + Ce : null, d);
                }
                var R = h._imageLowerLayer.selectAll("image").data(x), g = h._imageUpperLayer.selectAll("image").data(i);
                R.enter().append("image"), g.enter().append("image"), R.exit().remove(), g.exit().remove(), R.each(function(Y) {
                  k.bind(this)(Y), A.bind(this)(Y);
                }), g.each(function(Y) {
                  k.bind(this)(Y), A.bind(this)(Y);
                });
                var I = Object.keys(h._plots);
                for (C = 0; C < I.length; C++) {
                  D = I[C];
                  var O = h._plots[D];
                  if (O.imagelayer) {
                    var $ = O.imagelayer.selectAll("image").data(b[D] || []);
                    $.enter().append("image"), $.exit().remove(), $.each(function(Y) {
                      k.bind(this)(Y), A.bind(this)(Y);
                    });
                  }
                }
              };
            }
          ),
          /***/
          7402: (
            /***/
            function(M, L, r) {
              M.exports = {
                moduleType: "component",
                name: "images",
                layoutAttributes: r(5760),
                supplyLayoutDefaults: r(7404),
                includeBasePlot: r(6632)("images"),
                draw: r(963),
                convertCoords: r(3556)
              };
            }
          ),
          /***/
          3800: (
            /***/
            function(M, L, r) {
              var a = r(5376), p = r(2548);
              M.exports = {
                // not really a 'subplot' attribute container,
                // but this is the flag we use to denote attributes that
                // support yaxis, yaxis2, yaxis3, ... counters
                _isSubplotObj: !0,
                visible: {
                  valType: "boolean",
                  dflt: !0,
                  editType: "legend"
                },
                bgcolor: {
                  valType: "color",
                  editType: "legend"
                },
                bordercolor: {
                  valType: "color",
                  dflt: p.defaultLine,
                  editType: "legend"
                },
                borderwidth: {
                  valType: "number",
                  min: 0,
                  dflt: 0,
                  editType: "legend"
                },
                font: a({
                  editType: "legend"
                }),
                grouptitlefont: a({
                  editType: "legend"
                }),
                orientation: {
                  valType: "enumerated",
                  values: ["v", "h"],
                  dflt: "v",
                  editType: "legend"
                },
                traceorder: {
                  valType: "flaglist",
                  flags: ["reversed", "grouped"],
                  extras: ["normal"],
                  editType: "legend"
                },
                tracegroupgap: {
                  valType: "number",
                  min: 0,
                  dflt: 10,
                  editType: "legend"
                },
                entrywidth: {
                  valType: "number",
                  min: 0,
                  editType: "legend"
                },
                entrywidthmode: {
                  valType: "enumerated",
                  values: ["fraction", "pixels"],
                  dflt: "pixels",
                  editType: "legend"
                },
                indentation: {
                  valType: "number",
                  min: -15,
                  dflt: 0,
                  editType: "legend"
                },
                itemsizing: {
                  valType: "enumerated",
                  values: ["trace", "constant"],
                  dflt: "trace",
                  editType: "legend"
                },
                itemwidth: {
                  valType: "number",
                  min: 30,
                  dflt: 30,
                  editType: "legend"
                },
                itemclick: {
                  valType: "enumerated",
                  values: ["toggle", "toggleothers", !1],
                  dflt: "toggle",
                  editType: "legend"
                },
                itemdoubleclick: {
                  valType: "enumerated",
                  values: ["toggle", "toggleothers", !1],
                  dflt: "toggleothers",
                  editType: "legend"
                },
                groupclick: {
                  valType: "enumerated",
                  values: ["toggleitem", "togglegroup"],
                  dflt: "togglegroup",
                  editType: "legend"
                },
                x: {
                  valType: "number",
                  editType: "legend"
                },
                xref: {
                  valType: "enumerated",
                  dflt: "paper",
                  values: ["container", "paper"],
                  editType: "layoutstyle"
                },
                xanchor: {
                  valType: "enumerated",
                  values: ["auto", "left", "center", "right"],
                  dflt: "left",
                  editType: "legend"
                },
                y: {
                  valType: "number",
                  editType: "legend"
                },
                yref: {
                  valType: "enumerated",
                  dflt: "paper",
                  values: ["container", "paper"],
                  editType: "layoutstyle"
                },
                yanchor: {
                  valType: "enumerated",
                  values: ["auto", "top", "middle", "bottom"],
                  editType: "legend"
                },
                uirevision: {
                  valType: "any",
                  editType: "none"
                },
                valign: {
                  valType: "enumerated",
                  values: ["top", "middle", "bottom"],
                  dflt: "middle",
                  editType: "legend"
                },
                title: {
                  text: {
                    valType: "string",
                    dflt: "",
                    editType: "legend"
                  },
                  font: a({
                    editType: "legend"
                  }),
                  side: {
                    valType: "enumerated",
                    values: ["top", "left", "top left", "top center", "top right"],
                    editType: "legend"
                  },
                  editType: "legend"
                },
                editType: "legend"
              };
            }
          ),
          /***/
          5196: (
            /***/
            function(M) {
              M.exports = {
                scrollBarWidth: 6,
                scrollBarMinHeight: 20,
                scrollBarColor: "#808BA4",
                scrollBarMargin: 4,
                scrollBarEnterAttrs: {
                  rx: 20,
                  ry: 3,
                  width: 0,
                  height: 0
                },
                // number of px between legend title and (left) side of legend (always in x direction and from inner border)
                titlePad: 2,
                // number of px between each legend item (x and/or y direction)
                itemGap: 5
              };
            }
          ),
          /***/
          7864: (
            /***/
            function(M, L, r) {
              var a = r(4040), p = r(3400), l = r(1780), f = r(5464), u = r(3800), c = r(4859), d = r(2451);
              function h(i, b, x, D) {
                var C = b[i] || {}, w = l.newContainer(x, i);
                function S(Be, xe) {
                  return p.coerce(C, w, u, Be, xe);
                }
                var T = p.coerceFont(S, "font", x.font);
                S("bgcolor", x.paper_bgcolor), S("bordercolor");
                var k = S("visible");
                if (k) {
                  for (var A, R = function(Be, xe) {
                    var Me = A._input, De = A;
                    return p.coerce(Me, De, f, Be, xe);
                  }, g = x.font || {}, I = p.coerceFont(S, "grouptitlefont", g, {
                    overrideDflt: {
                      size: Math.round(g.size * 1.1)
                    }
                  }), O = 0, $ = !1, Y = "normal", ne = (x.shapes || []).filter(function(Be) {
                    return Be.showlegend;
                  }), q = D.concat(ne).filter(function(Be) {
                    return i === (Be.legend || "legend");
                  }), B = 0; B < q.length; B++)
                    if (A = q[B], !!A.visible) {
                      var X = A._isShape;
                      (A.showlegend || A._dfltShowLegend && !(A._module && A._module.attributes && A._module.attributes.showlegend && A._module.attributes.showlegend.dflt === !1)) && (O++, A.showlegend && ($ = !0, (!X && a.traceIs(A, "pie-like") || A._input.showlegend === !0) && O++), p.coerceFont(R, "legendgrouptitle.font", I)), (!X && a.traceIs(A, "bar") && x.barmode === "stack" || ["tonextx", "tonexty"].indexOf(A.fill) !== -1) && (Y = d.isGrouped({
                        traceorder: Y
                      }) ? "grouped+reversed" : "reversed"), A.legendgroup !== void 0 && A.legendgroup !== "" && (Y = d.isReversed({
                        traceorder: Y
                      }) ? "reversed+grouped" : "grouped");
                    }
                  var U = p.coerce(b, x, c, "showlegend", $ && O > (i === "legend" ? 1 : 0));
                  if (U === !1 && (x[i] = void 0), !(U === !1 && !C.uirevision) && (S("uirevision", x.uirevision), U !== !1)) {
                    S("borderwidth");
                    var te = S("orientation"), se = S("yref"), me = S("xref"), J = te === "h", W = se === "paper", ae = me === "paper", oe, ve, fe, ye = "left";
                    J ? (oe = 0, a.getComponentMethod("rangeslider", "isVisible")(b.xaxis) ? W ? (ve = 1.1, fe = "bottom") : (ve = 1, fe = "top") : W ? (ve = -0.1, fe = "top") : (ve = 0, fe = "bottom")) : (ve = 1, fe = "auto", ae ? oe = 1.02 : (oe = 1, ye = "right")), p.coerce(C, w, {
                      x: {
                        valType: "number",
                        editType: "legend",
                        min: ae ? -2 : 0,
                        max: ae ? 3 : 1,
                        dflt: oe
                      }
                    }, "x"), p.coerce(C, w, {
                      y: {
                        valType: "number",
                        editType: "legend",
                        min: W ? -2 : 0,
                        max: W ? 3 : 1,
                        dflt: ve
                      }
                    }, "y"), S("traceorder", Y), d.isGrouped(x[i]) && S("tracegroupgap"), S("entrywidth"), S("entrywidthmode"), S("indentation"), S("itemsizing"), S("itemwidth"), S("itemclick"), S("itemdoubleclick"), S("groupclick"), S("xanchor", ye), S("yanchor", fe), S("valign"), p.noneOrAll(C, w, ["x", "y"]);
                    var Ce = S("title.text");
                    if (Ce) {
                      S("title.side", J ? "left" : "top");
                      var Re = p.extendFlat({}, T, {
                        size: p.bigFont(T.size)
                      });
                      p.coerceFont(S, "title.font", Re);
                    }
                  }
                }
              }
              M.exports = function(b, x, D) {
                var C, w = D.slice(), S = x.shapes;
                if (S)
                  for (C = 0; C < S.length; C++) {
                    var T = S[C];
                    if (T.showlegend) {
                      var k = {
                        _input: T._input,
                        visible: T.visible,
                        showlegend: T.showlegend,
                        legend: T.legend
                      };
                      w.push(k);
                    }
                  }
                var A = ["legend"];
                for (C = 0; C < w.length; C++)
                  p.pushUnique(A, w[C].legend);
                for (x._legends = [], C = 0; C < A.length; C++) {
                  var R = A[C];
                  h(R, b, x, w), x[R] && x[R].visible && (x[R]._id = R), x._legends.push(R);
                }
              };
            }
          ),
          /***/
          1140: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(3400), l = r(7316), f = r(4040), u = r(5924), c = r(6476), d = r(3616), h = r(6308), i = r(2736), b = r(3048), x = r(5196), D = r(4284), C = D.LINE_SPACING, w = D.FROM_TL, S = D.FROM_BR, T = r(3076), k = r(2012), A = r(2451), R = 1, g = /^legend[0-9]*$/;
              M.exports = function(ve, fe) {
                if (fe)
                  O(ve, fe);
                else {
                  var ye = ve._fullLayout, Ce = ye._legends, Re = ye._infolayer.selectAll('[class^="legend"]');
                  Re.each(function() {
                    var De = a.select(this), Z = De.attr("class"), ee = Z.split(" ")[0];
                    ee.match(g) && Ce.indexOf(ee) === -1 && De.remove();
                  });
                  for (var Be = 0; Be < Ce.length; Be++) {
                    var xe = Ce[Be], Me = ve._fullLayout[xe];
                    O(ve, Me);
                  }
                }
              };
              function I(oe, ve, fe) {
                if (!(ve.title.side !== "top center" && ve.title.side !== "top right")) {
                  var ye = ve.title.font, Ce = ye.size * C, Re = 0, Be = oe.node(), xe = d.bBox(Be).width;
                  ve.title.side === "top center" ? Re = 0.5 * (ve._width - 2 * fe - 2 * x.titlePad - xe) : ve.title.side === "top right" && (Re = ve._width - 2 * fe - 2 * x.titlePad - xe), i.positionText(oe, fe + x.titlePad + Re, fe + Ce);
                }
              }
              function O(oe, ve) {
                var fe = ve || {}, ye = oe._fullLayout, Ce = ae(fe), Re, Be, xe = fe._inHover;
                if (xe ? (Be = fe.layer, Re = "hover") : (Be = ye._infolayer, Re = Ce), !!Be) {
                  Re += ye._uid, oe._legendMouseDownTime || (oe._legendMouseDownTime = 0);
                  var Me;
                  if (xe) {
                    if (!fe.entries)
                      return;
                    Me = T(fe.entries, fe);
                  } else {
                    for (var De = (oe.calcdata || []).slice(), Z = ye.shapes, ee = 0; ee < Z.length; ee++) {
                      var ie = Z[ee];
                      if (ie.showlegend) {
                        var G = {
                          _isShape: !0,
                          _fullInput: ie,
                          index: ie._index,
                          name: ie.name || ie.label.text || "shape " + ie._index,
                          legend: ie.legend,
                          legendgroup: ie.legendgroup,
                          legendgrouptitle: ie.legendgrouptitle,
                          legendrank: ie.legendrank,
                          legendwidth: ie.legendwidth,
                          showlegend: ie.showlegend,
                          visible: ie.visible,
                          opacity: ie.opacity,
                          mode: ie.type === "line" ? "lines" : "markers",
                          line: ie.line,
                          marker: {
                            line: ie.line,
                            color: ie.fillcolor,
                            size: 12,
                            symbol: ie.type === "rect" ? "square" : ie.type === "circle" ? "circle" : (
                              // case of path
                              "hexagon2"
                            )
                          }
                        };
                        De.push([{
                          trace: G
                        }]);
                      }
                    }
                    Me = ye.showlegend && T(De, fe, ye._legends.length > 1);
                  }
                  var H = ye.hiddenlabels || [];
                  if (!xe && (!ye.showlegend || !Me.length))
                    return Be.selectAll("." + Ce).remove(), ye._topdefs.select("#" + Re).remove(), l.autoMargin(oe, Ce);
                  var ce = p.ensureSingle(Be, "g", Ce, function(et) {
                    xe || et.attr("pointer-events", "all");
                  }), j = p.ensureSingleById(ye._topdefs, "clipPath", Re, function(et) {
                    et.append("rect");
                  }), he = p.ensureSingle(ce, "rect", "bg", function(et) {
                    et.attr("shape-rendering", "crispEdges");
                  });
                  he.call(h.stroke, fe.bordercolor).call(h.fill, fe.bgcolor).style("stroke-width", fe.borderwidth + "px");
                  var be = p.ensureSingle(ce, "g", "scrollbox"), we = fe.title;
                  fe._titleWidth = 0, fe._titleHeight = 0;
                  var Ie;
                  we.text ? (Ie = p.ensureSingle(be, "text", Ce + "titletext"), Ie.attr("text-anchor", "start").call(d.font, we.font).text(we.text), X(Ie, be, oe, fe, R)) : be.selectAll("." + Ce + "titletext").remove();
                  var Ge = p.ensureSingle(ce, "rect", "scrollbar", function(et) {
                    et.attr(x.scrollBarEnterAttrs).call(h.fill, x.scrollBarColor);
                  }), Ve = be.selectAll("g.groups").data(Me);
                  Ve.enter().append("g").attr("class", "groups"), Ve.exit().remove();
                  var Je = Ve.selectAll("g.traces").data(p.identity);
                  Je.enter().append("g").attr("class", "traces"), Je.exit().remove(), Je.style("opacity", function(et) {
                    var at = et[0].trace;
                    return f.traceIs(at, "pie-like") ? H.indexOf(et[0].label) !== -1 ? 0.5 : 1 : at.visible === "legendonly" ? 0.5 : 1;
                  }).each(function() {
                    a.select(this).call(ne, oe, fe);
                  }).call(k, oe, fe).each(function() {
                    xe || a.select(this).call(B, oe, Ce);
                  }), p.syncOrAsync([l.previousPromises, function() {
                    return se(oe, Ve, Je, fe);
                  }, function() {
                    var et = ye._size, at = fe.borderwidth, Le = fe.xref === "paper", ze = fe.yref === "paper";
                    if (we.text && I(Ie, fe, at), !xe) {
                      var Oe, Xe;
                      Le ? Oe = et.l + et.w * fe.x - w[J(fe)] * fe._width : Oe = ye.width * fe.x - w[J(fe)] * fe._width, ze ? Xe = et.t + et.h * (1 - fe.y) - w[W(fe)] * fe._effHeight : Xe = ye.height * (1 - fe.y) - w[W(fe)] * fe._effHeight;
                      var it = me(oe, Ce, Oe, Xe);
                      if (it)
                        return;
                      if (ye.margin.autoexpand) {
                        var ut = Oe, wt = Xe;
                        Oe = Le ? p.constrain(Oe, 0, ye.width - fe._width) : ut, Xe = ze ? p.constrain(Xe, 0, ye.height - fe._effHeight) : wt, Oe !== ut && p.log("Constrain " + Ce + ".x to make legend fit inside graph"), Xe !== wt && p.log("Constrain " + Ce + ".y to make legend fit inside graph");
                      }
                      d.setTranslate(ce, Oe, Xe);
                    }
                    if (Ge.on(".drag", null), ce.on("wheel", null), xe || fe._height <= fe._maxHeight || oe._context.staticPlot) {
                      var kt = fe._effHeight;
                      xe && (kt = fe._height), he.attr({
                        width: fe._width - at,
                        height: kt - at,
                        x: at / 2,
                        y: at / 2
                      }), d.setTranslate(be, 0, 0), j.select("rect").attr({
                        width: fe._width - 2 * at,
                        height: kt - 2 * at,
                        x: at,
                        y: at
                      }), d.setClipUrl(be, Re, oe), d.setRect(Ge, 0, 0, 0, 0), delete fe._scrollY;
                    } else {
                      var Ot = Math.max(x.scrollBarMinHeight, fe._effHeight * fe._effHeight / fe._height), Lt = fe._effHeight - Ot - 2 * x.scrollBarMargin, Mt = fe._height - fe._effHeight, Ut = Lt / Mt, Ct = Math.min(fe._scrollY || 0, Mt);
                      he.attr({
                        width: fe._width - 2 * at + x.scrollBarWidth + x.scrollBarMargin,
                        height: fe._effHeight - at,
                        x: at / 2,
                        y: at / 2
                      }), j.select("rect").attr({
                        width: fe._width - 2 * at + x.scrollBarWidth + x.scrollBarMargin,
                        height: fe._effHeight - 2 * at,
                        x: at,
                        y: at + Ct
                      }), d.setClipUrl(be, Re, oe), je(Ct, Ot, Ut), ce.on("wheel", function() {
                        Ct = p.constrain(fe._scrollY + a.event.deltaY / Lt * Mt, 0, Mt), je(Ct, Ot, Ut), Ct !== 0 && Ct !== Mt && a.event.preventDefault();
                      });
                      var jt, nr, Jt, Wt = function(Ze, rt, tt) {
                        var Ft = (tt - rt) / Ut + Ze;
                        return p.constrain(Ft, 0, Mt);
                      }, qe = function(Ze, rt, tt) {
                        var Ft = (rt - tt) / Ut + Ze;
                        return p.constrain(Ft, 0, Mt);
                      }, Ue = a.behavior.drag().on("dragstart", function() {
                        var Ze = a.event.sourceEvent;
                        Ze.type === "touchstart" ? jt = Ze.changedTouches[0].clientY : jt = Ze.clientY, Jt = Ct;
                      }).on("drag", function() {
                        var Ze = a.event.sourceEvent;
                        Ze.buttons === 2 || Ze.ctrlKey || (Ze.type === "touchmove" ? nr = Ze.changedTouches[0].clientY : nr = Ze.clientY, Ct = Wt(Jt, jt, nr), je(Ct, Ot, Ut));
                      });
                      Ge.call(Ue);
                      var We = a.behavior.drag().on("dragstart", function() {
                        var Ze = a.event.sourceEvent;
                        Ze.type === "touchstart" && (jt = Ze.changedTouches[0].clientY, Jt = Ct);
                      }).on("drag", function() {
                        var Ze = a.event.sourceEvent;
                        Ze.type === "touchmove" && (nr = Ze.changedTouches[0].clientY, Ct = qe(Jt, jt, nr), je(Ct, Ot, Ut));
                      });
                      be.call(We);
                    }
                    function je(Ze, rt, tt) {
                      fe._scrollY = oe._fullLayout[Ce]._scrollY = Ze, d.setTranslate(be, 0, -Ze), d.setRect(Ge, fe._width, x.scrollBarMargin + Ze * tt, x.scrollBarWidth, rt), j.select("rect").attr("y", at + Ze);
                    }
                    if (oe._context.edits.legendPosition) {
                      var lt, Se, Pe, Ye;
                      ce.classed("cursor-move", !0), c.init({
                        element: ce.node(),
                        gd: oe,
                        prepFn: function(Ze) {
                          if (Ze.target !== Ge.node()) {
                            var rt = d.getTranslate(ce);
                            Pe = rt.x, Ye = rt.y;
                          }
                        },
                        moveFn: function(Ze, rt) {
                          if (Pe !== void 0 && Ye !== void 0) {
                            var tt = Pe + Ze, Ft = Ye + rt;
                            d.setTranslate(ce, tt, Ft), lt = c.align(tt, fe._width, et.l, et.l + et.w, fe.xanchor), Se = c.align(Ft + fe._height, -fe._height, et.t + et.h, et.t, fe.yanchor);
                          }
                        },
                        doneFn: function() {
                          if (lt !== void 0 && Se !== void 0) {
                            var Ze = {};
                            Ze[Ce + ".x"] = lt, Ze[Ce + ".y"] = Se, f.call("_guiRelayout", oe, Ze);
                          }
                        },
                        clickFn: function(Ze, rt) {
                          var tt = Be.selectAll("g.traces").filter(function() {
                            var Ft = this.getBoundingClientRect();
                            return rt.clientX >= Ft.left && rt.clientX <= Ft.right && rt.clientY >= Ft.top && rt.clientY <= Ft.bottom;
                          });
                          tt.size() > 0 && Y(oe, ce, tt, Ze, rt);
                        }
                      });
                    }
                  }], oe);
                }
              }
              function $(oe, ve, fe) {
                var ye = oe[0], Ce = ye.width, Re = ve.entrywidthmode, Be = ye.trace.legendwidth || ve.entrywidth;
                return Re === "fraction" ? ve._maxWidth * Be : fe + (Be || Ce);
              }
              function Y(oe, ve, fe, ye, Ce) {
                var Re = fe.data()[0][0].trace, Be = {
                  event: Ce,
                  node: fe.node(),
                  curveNumber: Re.index,
                  expandedIndex: Re._expandedIndex,
                  data: oe.data,
                  layout: oe.layout,
                  frames: oe._transitionData._frames,
                  config: oe._context,
                  fullData: oe._fullData,
                  fullLayout: oe._fullLayout
                };
                Re._group && (Be.group = Re._group), f.traceIs(Re, "pie-like") && (Be.label = fe.datum()[0].label);
                var xe = u.triggerHandler(oe, "plotly_legendclick", Be);
                if (ye === 1) {
                  if (xe === !1)
                    return;
                  ve._clickTimeout = setTimeout(function() {
                    oe._fullLayout && b(fe, oe, ye);
                  }, oe._context.doubleClickDelay);
                } else if (ye === 2) {
                  ve._clickTimeout && clearTimeout(ve._clickTimeout), oe._legendMouseDownTime = 0;
                  var Me = u.triggerHandler(oe, "plotly_legenddoubleclick", Be);
                  Me !== !1 && xe !== !1 && b(fe, oe, ye);
                }
              }
              function ne(oe, ve, fe) {
                var ye = ae(fe), Ce = oe.data()[0][0], Re = Ce.trace, Be = f.traceIs(Re, "pie-like"), xe = !fe._inHover && ve._context.edits.legendText && !Be, Me = fe._maxNameLength, De, Z;
                Ce.groupTitle ? (De = Ce.groupTitle.text, Z = Ce.groupTitle.font) : (Z = fe.font, fe.entries ? De = Ce.text : (De = Be ? Ce.label : Re.name, Re._meta && (De = p.templateString(De, Re._meta))));
                var ee = p.ensureSingle(oe, "text", ye + "text");
                ee.attr("text-anchor", "start").call(d.font, Z).text(xe ? q(De, Me) : De);
                var ie = fe.indentation + fe.itemwidth + x.itemGap * 2;
                i.positionText(ee, ie, 0), xe ? ee.call(i.makeEditable, {
                  gd: ve,
                  text: De
                }).call(X, oe, ve, fe).on("edit", function(G) {
                  this.text(q(G, Me)).call(X, oe, ve, fe);
                  var H = Ce.trace._fullInput || {}, ce = {};
                  if (f.hasTransform(H, "groupby")) {
                    var j = f.getTransformIndices(H, "groupby"), he = j[j.length - 1], be = p.keyedContainer(H, "transforms[" + he + "].styles", "target", "value.name");
                    be.set(Ce.trace._group, G), ce = be.constructUpdate();
                  } else
                    ce.name = G;
                  return H._isShape ? f.call("_guiRelayout", ve, "shapes[" + Re.index + "].name", ce.name) : f.call("_guiRestyle", ve, ce, Re.index);
                }) : X(ee, oe, ve, fe);
              }
              function q(oe, ve) {
                var fe = Math.max(4, ve);
                if (oe && oe.trim().length >= fe / 2)
                  return oe;
                oe = oe || "";
                for (var ye = fe - oe.length; ye > 0; ye--)
                  oe += " ";
                return oe;
              }
              function B(oe, ve, fe) {
                var ye = ve._context.doubleClickDelay, Ce, Re = 1, Be = p.ensureSingle(oe, "rect", fe + "toggle", function(xe) {
                  ve._context.staticPlot || xe.style("cursor", "pointer").attr("pointer-events", "all"), xe.call(h.fill, "rgba(0,0,0,0)");
                });
                ve._context.staticPlot || (Be.on("mousedown", function() {
                  Ce = (/* @__PURE__ */ new Date()).getTime(), Ce - ve._legendMouseDownTime < ye ? Re += 1 : (Re = 1, ve._legendMouseDownTime = Ce);
                }), Be.on("mouseup", function() {
                  if (!(ve._dragged || ve._editing)) {
                    var xe = ve._fullLayout[fe];
                    (/* @__PURE__ */ new Date()).getTime() - ve._legendMouseDownTime > ye && (Re = Math.max(Re - 1, 1)), Y(ve, xe, oe, Re, a.event);
                  }
                }));
              }
              function X(oe, ve, fe, ye, Ce) {
                ye._inHover && oe.attr("data-notex", !0), i.convertToTspans(oe, fe, function() {
                  U(ve, fe, ye, Ce);
                });
              }
              function U(oe, ve, fe, ye) {
                var Ce = oe.data()[0][0];
                if (!fe._inHover && Ce && !Ce.trace.showlegend) {
                  oe.remove();
                  return;
                }
                var Re = oe.select("g[class*=math-group]"), Be = Re.node(), xe = ae(fe);
                fe || (fe = ve._fullLayout[xe]);
                var Me = fe.borderwidth, De;
                ye === R ? De = fe.title.font : Ce.groupTitle ? De = Ce.groupTitle.font : De = fe.font;
                var Z = De.size * C, ee, ie;
                if (Be) {
                  var G = d.bBox(Be);
                  ee = G.height, ie = G.width, ye === R ? d.setTranslate(Re, Me, Me + ee * 0.75) : d.setTranslate(Re, 0, ee * 0.25);
                } else {
                  var H = "." + xe + (ye === R ? "title" : "") + "text", ce = oe.select(H), j = i.lineCount(ce), he = ce.node();
                  if (ee = Z * j, ie = he ? d.bBox(he).width : 0, ye === R)
                    fe.title.side === "left" && (ie += x.itemGap * 2), i.positionText(ce, Me + x.titlePad, Me + Z);
                  else {
                    var be = x.itemGap * 2 + fe.indentation + fe.itemwidth;
                    Ce.groupTitle && (be = x.itemGap, ie -= fe.indentation + fe.itemwidth), i.positionText(ce, be, -Z * ((j - 1) / 2 - 0.3));
                  }
                }
                ye === R ? (fe._titleWidth = ie, fe._titleHeight = ee) : (Ce.lineHeight = Z, Ce.height = Math.max(ee, 16) + 3, Ce.width = ie);
              }
              function te(oe) {
                var ve = 0, fe = 0, ye = oe.title.side;
                return ye && (ye.indexOf("left") !== -1 && (ve = oe._titleWidth), ye.indexOf("top") !== -1 && (fe = oe._titleHeight)), [ve, fe];
              }
              function se(oe, ve, fe, ye) {
                var Ce = oe._fullLayout, Re = ae(ye);
                ye || (ye = Ce[Re]);
                var Be = Ce._size, xe = A.isVertical(ye), Me = A.isGrouped(ye), De = ye.entrywidthmode === "fraction", Z = ye.borderwidth, ee = 2 * Z, ie = x.itemGap, G = ye.indentation + ye.itemwidth + ie * 2, H = 2 * (Z + ie), ce = W(ye), j = ye.y < 0 || ye.y === 0 && ce === "top", he = ye.y > 1 || ye.y === 1 && ce === "bottom", be = ye.tracegroupgap, we = {};
                ye._maxHeight = Math.max(j || he ? Ce.height / 2 : Be.h, 30);
                var Ie = 0;
                ye._width = 0, ye._height = 0;
                var Ge = te(ye);
                if (xe)
                  fe.each(function(Jt) {
                    var Wt = Jt[0].height;
                    d.setTranslate(this, Z + Ge[0], Z + Ge[1] + ye._height + Wt / 2 + ie), ye._height += Wt, ye._width = Math.max(ye._width, Jt[0].width);
                  }), Ie = G + ye._width, ye._width += ie + G + ee, ye._height += H, Me && (ve.each(function(Jt, Wt) {
                    d.setTranslate(this, 0, Wt * ye.tracegroupgap);
                  }), ye._height += (ye._lgroupsLength - 1) * ye.tracegroupgap);
                else {
                  var Ve = J(ye), Je = ye.x < 0 || ye.x === 0 && Ve === "right", et = ye.x > 1 || ye.x === 1 && Ve === "left", at = he || j, Le = Ce.width / 2;
                  ye._maxWidth = Math.max(Je ? at && Ve === "left" ? Be.l + Be.w : Le : et ? at && Ve === "right" ? Be.r + Be.w : Le : Be.w, 2 * G);
                  var ze = 0, Oe = 0;
                  fe.each(function(Jt) {
                    var Wt = $(Jt, ye, G);
                    ze = Math.max(ze, Wt), Oe += Wt;
                  }), Ie = null;
                  var Xe = 0;
                  if (Me) {
                    var it = 0, ut = 0, wt = 0;
                    ve.each(function() {
                      var Jt = 0, Wt = 0;
                      a.select(this).selectAll("g.traces").each(function(Ue) {
                        var We = $(Ue, ye, G), je = Ue[0].height;
                        d.setTranslate(this, Ge[0], Ge[1] + Z + ie + je / 2 + Wt), Wt += je, Jt = Math.max(Jt, We), we[Ue[0].trace.legendgroup] = Jt;
                      });
                      var qe = Jt + ie;
                      // not on the first column already
                      ut > 0 && // goes beyound limit
                      qe + Z + ut > ye._maxWidth ? (Xe = Math.max(Xe, ut), ut = 0, wt += it + be, it = Wt) : it = Math.max(it, Wt), d.setTranslate(this, ut, wt), ut += qe;
                    }), ye._width = Math.max(Xe, ut) + Z, ye._height = wt + it + H;
                  } else {
                    var kt = fe.size(), Ot = Oe + ee + (kt - 1) * ie < ye._maxWidth, Lt = 0, Mt = 0, Ut = 0, Ct = 0;
                    fe.each(function(Jt) {
                      var Wt = Jt[0].height, qe = $(Jt, ye, G), Ue = Ot ? qe : ze;
                      De || (Ue += ie), Ue + Z + Mt - ie >= ye._maxWidth && (Xe = Math.max(Xe, Ct), Mt = 0, Ut += Lt, ye._height += Lt, Lt = 0), d.setTranslate(this, Ge[0] + Z + Mt, Ge[1] + Z + Ut + Wt / 2 + ie), Ct = Mt + qe + ie, Mt += Ue, Lt = Math.max(Lt, Wt);
                    }), Ot ? (ye._width = Mt + ee, ye._height = Lt + H) : (ye._width = Math.max(Xe, Ct) + ee, ye._height += Lt + H);
                  }
                }
                ye._width = Math.ceil(Math.max(ye._width + Ge[0], ye._titleWidth + 2 * (Z + x.titlePad))), ye._height = Math.ceil(Math.max(ye._height + Ge[1], ye._titleHeight + 2 * (Z + x.itemGap))), ye._effHeight = Math.min(ye._height, ye._maxHeight);
                var jt = oe._context.edits, nr = jt.legendText || jt.legendPosition;
                fe.each(function(Jt) {
                  var Wt = a.select(this).select("." + Re + "toggle"), qe = Jt[0].height, Ue = Jt[0].trace.legendgroup, We = $(Jt, ye, G);
                  Me && Ue !== "" && (We = we[Ue]);
                  var je = nr ? G : Ie || We;
                  !xe && !De && (je += ie / 2), d.setRect(Wt, 0, -qe / 2, je, qe);
                });
              }
              function me(oe, ve, fe, ye) {
                var Ce = oe._fullLayout, Re = Ce[ve], Be = J(Re), xe = W(Re), Me = Re.xref === "paper", De = Re.yref === "paper";
                oe._fullLayout._reservedMargin[ve] = {};
                var Z = Re.y < 0.5 ? "b" : "t", ee = Re.x < 0.5 ? "l" : "r", ie = {
                  r: Ce.width - fe,
                  l: fe + Re._width,
                  b: Ce.height - ye,
                  t: ye + Re._effHeight
                };
                if (Me && De)
                  return l.autoMargin(oe, ve, {
                    x: Re.x,
                    y: Re.y,
                    l: Re._width * w[Be],
                    r: Re._width * S[Be],
                    b: Re._effHeight * S[xe],
                    t: Re._effHeight * w[xe]
                  });
                Me ? oe._fullLayout._reservedMargin[ve][Z] = ie[Z] : De || Re.orientation === "v" ? oe._fullLayout._reservedMargin[ve][ee] = ie[ee] : oe._fullLayout._reservedMargin[ve][Z] = ie[Z];
              }
              function J(oe) {
                return p.isRightAnchor(oe) ? "right" : p.isCenterAnchor(oe) ? "center" : "left";
              }
              function W(oe) {
                return p.isBottomAnchor(oe) ? "bottom" : p.isMiddleAnchor(oe) ? "middle" : "top";
              }
              function ae(oe) {
                return oe._id || "legend";
              }
            }
          ),
          /***/
          3076: (
            /***/
            function(M, L, r) {
              var a = r(4040), p = r(2451);
              M.exports = function(f, u, c) {
                var d = u._inHover, h = p.isGrouped(u), i = p.isReversed(u), b = {}, x = [], D = !1, C = {}, w = 0, S = 0, T, k;
                function A(oe, ve, fe) {
                  if (u.visible !== !1 && !(c && oe !== u._id))
                    if (ve === "" || !p.isGrouped(u)) {
                      var ye = "~~i" + w;
                      x.push(ye), b[ye] = [fe], w++;
                    } else
                      x.indexOf(ve) === -1 ? (x.push(ve), D = !0, b[ve] = [fe]) : b[ve].push(fe);
                }
                for (T = 0; T < f.length; T++) {
                  var R = f[T], g = R[0], I = g.trace, O = I.legend, $ = I.legendgroup;
                  if (!(!d && (!I.visible || !I.showlegend)))
                    if (a.traceIs(I, "pie-like"))
                      for (C[$] || (C[$] = {}), k = 0; k < R.length; k++) {
                        var Y = R[k].label;
                        C[$][Y] || (A(O, $, {
                          label: Y,
                          color: R[k].color,
                          i: R[k].i,
                          trace: I,
                          pts: R[k].pts
                        }), C[$][Y] = !0, S = Math.max(S, (Y || "").length));
                      }
                    else
                      A(O, $, g), S = Math.max(S, (I.name || "").length);
                }
                if (!x.length)
                  return [];
                var ne = !D || !h, q = [];
                for (T = 0; T < x.length; T++) {
                  var B = b[x[T]];
                  ne ? q.push(B[0]) : q.push(B);
                }
                for (ne && (q = [q]), T = 0; T < q.length; T++) {
                  var X = 1 / 0;
                  for (k = 0; k < q[T].length; k++) {
                    var U = q[T][k].trace.legendrank;
                    X > U && (X = U);
                  }
                  q[T][0]._groupMinRank = X, q[T][0]._preGroupSort = T;
                }
                var te = function(oe, ve) {
                  return oe[0]._groupMinRank - ve[0]._groupMinRank || oe[0]._preGroupSort - ve[0]._preGroupSort;
                }, se = function(oe, ve) {
                  return oe.trace.legendrank - ve.trace.legendrank || oe._preSort - ve._preSort;
                };
                for (q.forEach(function(oe, ve) {
                  oe[0]._preGroupSort = ve;
                }), q.sort(te), T = 0; T < q.length; T++) {
                  q[T].forEach(function(oe, ve) {
                    oe._preSort = ve;
                  }), q[T].sort(se);
                  var me = q[T][0].trace, J = null;
                  for (k = 0; k < q[T].length; k++) {
                    var W = q[T][k].trace.legendgrouptitle;
                    if (W && W.text) {
                      J = W, d && (W.font = u._groupTitleFont);
                      break;
                    }
                  }
                  if (i && q[T].reverse(), J) {
                    var ae = !1;
                    for (k = 0; k < q[T].length; k++)
                      if (a.traceIs(q[T][k].trace, "pie-like")) {
                        ae = !0;
                        break;
                      }
                    q[T].unshift({
                      i: -1,
                      groupTitle: J,
                      noClick: ae,
                      trace: {
                        showlegend: me.showlegend,
                        legendgroup: me.legendgroup,
                        visible: u.groupclick === "toggleitem" ? !0 : me.visible
                      }
                    });
                  }
                  for (k = 0; k < q[T].length; k++)
                    q[T][k] = [q[T][k]];
                }
                return u._lgroupsLength = q.length, u._maxNameLength = S, q;
              };
            }
          ),
          /***/
          3048: (
            /***/
            function(M, L, r) {
              var a = r(4040), p = r(3400), l = p.pushUnique, f = !0;
              M.exports = function(c, d, h) {
                var i = d._fullLayout;
                if (d._dragged || d._editing)
                  return;
                var b = i.legend.itemclick, x = i.legend.itemdoubleclick, D = i.legend.groupclick;
                h === 1 && b === "toggle" && x === "toggleothers" && f && d.data && d._context.showTips && p.notifier(p._(d, "Double-click on legend to isolate one trace"), "long"), f = !1;
                var C;
                if (h === 1 ? C = b : h === 2 && (C = x), !C)
                  return;
                var w = D === "togglegroup", S = i.hiddenlabels ? i.hiddenlabels.slice() : [], T = c.data()[0][0];
                if (T.groupTitle && T.noClick)
                  return;
                var k = d._fullData, A = (i.shapes || []).filter(function(Le) {
                  return Le.showlegend;
                }), R = k.concat(A), g = T.trace;
                g._isShape && (g = g._fullInput);
                var I = g.legendgroup, O, $, Y, ne, q, B, X = {}, U = [], te = [], se = [];
                function me(Le, ze) {
                  var Oe = U.indexOf(Le), Xe = X.visible;
                  return Xe || (Xe = X.visible = []), U.indexOf(Le) === -1 && (U.push(Le), Oe = U.length - 1), Xe[Oe] = ze, Oe;
                }
                var J = (i.shapes || []).map(function(Le) {
                  return Le._input;
                }), W = !1;
                function ae(Le, ze) {
                  J[Le].visible = ze, W = !0;
                }
                function oe(Le, ze) {
                  if (!(T.groupTitle && !w)) {
                    var Oe = Le._fullInput || Le, Xe = Oe._isShape, it = Oe.index;
                    if (it === void 0 && (it = Oe._index), a.hasTransform(Oe, "groupby")) {
                      var ut = te[it];
                      if (!ut) {
                        var wt = a.getTransformIndices(Oe, "groupby"), kt = wt[wt.length - 1];
                        ut = p.keyedContainer(Oe, "transforms[" + kt + "].styles", "target", "value.visible"), te[it] = ut;
                      }
                      var Ot = ut.get(Le._group);
                      Ot === void 0 && (Ot = !0), Ot !== !1 && ut.set(Le._group, ze), se[it] = me(it, Oe.visible !== !1);
                    } else {
                      var Lt = Oe.visible === !1 ? !1 : ze;
                      Xe ? ae(it, Lt) : me(it, Lt);
                    }
                  }
                }
                var ve = g.legend, fe = g._fullInput, ye = fe && fe._isShape;
                if (!ye && a.traceIs(g, "pie-like")) {
                  var Ce = T.label, Re = S.indexOf(Ce);
                  if (C === "toggle")
                    Re === -1 ? S.push(Ce) : S.splice(Re, 1);
                  else if (C === "toggleothers") {
                    var Be = Re !== -1, xe = [];
                    for (O = 0; O < d.calcdata.length; O++) {
                      var Me = d.calcdata[O];
                      for ($ = 0; $ < Me.length; $++) {
                        var De = Me[$], Z = De.label;
                        ve === Me[0].trace.legend && Ce !== Z && (S.indexOf(Z) === -1 && (Be = !0), l(S, Z), xe.push(Z));
                      }
                    }
                    if (!Be)
                      for (var ee = 0; ee < xe.length; ee++) {
                        var ie = S.indexOf(xe[ee]);
                        ie !== -1 && S.splice(ie, 1);
                      }
                  }
                  a.call("_guiRelayout", d, "hiddenlabels", S);
                } else {
                  var G = I && I.length, H = [], ce;
                  if (G)
                    for (O = 0; O < R.length; O++)
                      ce = R[O], ce.visible && ce.legendgroup === I && H.push(O);
                  if (C === "toggle") {
                    var j;
                    switch (g.visible) {
                      case !0:
                        j = "legendonly";
                        break;
                      case !1:
                        j = !1;
                        break;
                      case "legendonly":
                        j = !0;
                        break;
                    }
                    if (G)
                      if (w)
                        for (O = 0; O < R.length; O++) {
                          var he = R[O];
                          he.visible !== !1 && he.legendgroup === I && oe(he, j);
                        }
                      else
                        oe(g, j);
                    else
                      oe(g, j);
                  } else if (C === "toggleothers") {
                    var be, we, Ie, Ge, Ve, Je = !0;
                    for (O = 0; O < R.length; O++)
                      if (Ve = R[O], be = Ve === g, Ie = Ve.showlegend !== !0, !(be || Ie) && (we = G && Ve.legendgroup === I, !we && Ve.legend === ve && Ve.visible === !0 && !a.traceIs(Ve, "notLegendIsolatable"))) {
                        Je = !1;
                        break;
                      }
                    for (O = 0; O < R.length; O++)
                      if (Ve = R[O], !(Ve.visible === !1 || Ve.legend !== ve) && !a.traceIs(Ve, "notLegendIsolatable"))
                        switch (g.visible) {
                          case "legendonly":
                            oe(Ve, !0);
                            break;
                          case !0:
                            Ge = Je ? !0 : "legendonly", be = Ve === g, Ie = Ve.showlegend !== !0 && !Ve.legendgroup, we = be || G && Ve.legendgroup === I, oe(Ve, we || Ie ? !0 : Ge);
                            break;
                        }
                  }
                  for (O = 0; O < te.length; O++)
                    if (Y = te[O], !!Y) {
                      var et = Y.constructUpdate(), at = Object.keys(et);
                      for ($ = 0; $ < at.length; $++)
                        ne = at[$], B = X[ne] = X[ne] || [], B[se[O]] = et[ne];
                    }
                  for (q = Object.keys(X), O = 0; O < q.length; O++)
                    for (ne = q[O], $ = 0; $ < U.length; $++)
                      X[ne].hasOwnProperty($) || (X[ne][$] = void 0);
                  W ? a.call("_guiUpdate", d, X, {
                    shapes: J
                  }, U) : a.call("_guiRestyle", d, X, U);
                }
              };
            }
          ),
          /***/
          2451: (
            /***/
            function(M, L) {
              L.isGrouped = function(a) {
                return (a.traceorder || "").indexOf("grouped") !== -1;
              }, L.isVertical = function(a) {
                return a.orientation !== "h";
              }, L.isReversed = function(a) {
                return (a.traceorder || "").indexOf("reversed") !== -1;
              };
            }
          ),
          /***/
          2780: (
            /***/
            function(M, L, r) {
              M.exports = {
                moduleType: "component",
                name: "legend",
                layoutAttributes: r(3800),
                supplyLayoutDefaults: r(7864),
                draw: r(1140),
                style: r(2012)
              };
            }
          ),
          /***/
          2012: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(4040), l = r(3400), f = l.strTranslate, u = r(3616), c = r(6308), d = r(4288).extractOpts, h = r(3028), i = r(528), b = r(9656).castOption, x = r(5196), D = 12, C = 5, w = 2, S = 10, T = 5;
              M.exports = function(I, O, $) {
                var Y = O._fullLayout;
                $ || ($ = Y.legend);
                var ne = $.itemsizing === "constant", q = $.itemwidth, B = (q + x.itemGap * 2) / 2, X = f(B, 0), U = function(xe, Me, De, Z) {
                  var ee;
                  if (xe + 1)
                    ee = xe;
                  else if (Me && Me.width > 0)
                    ee = Me.width;
                  else
                    return 0;
                  return ne ? Z : Math.min(ee, De);
                };
                I.each(function(xe) {
                  var Me = a.select(this), De = l.ensureSingle(Me, "g", "layers");
                  De.style("opacity", xe[0].trace.opacity);
                  var Z = $.indentation, ee = $.valign, ie = xe[0].lineHeight, G = xe[0].height;
                  if (ee === "middle" && Z === 0 || !ie || !G)
                    De.attr("transform", null);
                  else {
                    var H = {
                      top: 1,
                      bottom: -1
                    }[ee], ce = H * (0.5 * (ie - G + 3)) || 0, j = $.indentation;
                    De.attr("transform", f(j, ce));
                  }
                  var he = De.selectAll("g.legendfill").data([xe]);
                  he.enter().append("g").classed("legendfill", !0);
                  var be = De.selectAll("g.legendlines").data([xe]);
                  be.enter().append("g").classed("legendlines", !0);
                  var we = De.selectAll("g.legendsymbols").data([xe]);
                  we.enter().append("g").classed("legendsymbols", !0), we.selectAll("g.legendpoints").data([xe]).enter().append("g").classed("legendpoints", !0);
                }).each(Be).each(me).each(W).each(J).each(oe).each(Ce).each(ye).each(te).each(se).each(ve).each(fe);
                function te(xe) {
                  var Me = A(xe), De = Me.showFill, Z = Me.showLine, ee = Me.showGradientLine, ie = Me.showGradientFill, G = Me.anyFill, H = Me.anyLine, ce = xe[0], j = ce.trace, he, be, we = d(j), Ie = we.colorscale, Ge = we.reversescale, Ve = function(Xe) {
                    if (Xe.size())
                      if (De)
                        u.fillGroupStyle(Xe, O, !0);
                      else {
                        var it = "legendfill-" + j.uid;
                        u.gradient(Xe, O, it, k(Ge), Ie, "fill");
                      }
                  }, Je = function(Xe) {
                    if (Xe.size()) {
                      var it = "legendline-" + j.uid;
                      u.lineGroupStyle(Xe), u.gradient(Xe, O, it, k(Ge), Ie, "stroke");
                    }
                  }, et = h.hasMarkers(j) || !G ? "M5,0" : (
                    // with a line leave it slightly below center, to leave room for the
                    // line thickness and because the line is usually more prominent
                    H ? "M5,-2" : "M5,-3"
                  ), at = a.select(this), Le = at.select(".legendfill").selectAll("path").data(De || ie ? [xe] : []);
                  if (Le.enter().append("path").classed("js-fill", !0), Le.exit().remove(), Le.attr("d", et + "h" + q + "v6h-" + q + "z").call(Ve), Z || ee) {
                    var ze = U(void 0, j.line, S, C);
                    be = l.minExtend(j, {
                      line: {
                        width: ze
                      }
                    }), he = [l.minExtend(ce, {
                      trace: be
                    })];
                  }
                  var Oe = at.select(".legendlines").selectAll("path").data(Z || ee ? [he] : []);
                  Oe.enter().append("path").classed("js-line", !0), Oe.exit().remove(), Oe.attr("d", et + (ee ? "l" + q + ",0.0001" : "h" + q)).call(Z ? u.lineGroupStyle : Je);
                }
                function se(xe) {
                  var Me = A(xe), De = Me.anyFill, Z = Me.anyLine, ee = Me.showLine, ie = Me.showMarker, G = xe[0], H = G.trace, ce = !ie && !Z && !De && h.hasText(H), j, he;
                  function be(Le, ze, Oe, Xe) {
                    var it = l.nestedProperty(H, Le).get(), ut = l.isArrayOrTypedArray(it) && ze ? ze(it) : it;
                    if (ne && ut && Xe !== void 0 && (ut = Xe), Oe) {
                      if (ut < Oe[0])
                        return Oe[0];
                      if (ut > Oe[1])
                        return Oe[1];
                    }
                    return ut;
                  }
                  function we(Le) {
                    return G._distinct && G.index && Le[G.index] ? Le[G.index] : Le[0];
                  }
                  if (ie || ce || ee) {
                    var Ie = {}, Ge = {};
                    if (ie) {
                      Ie.mc = be("marker.color", we), Ie.mx = be("marker.symbol", we), Ie.mo = be("marker.opacity", l.mean, [0.2, 1]), Ie.mlc = be("marker.line.color", we), Ie.mlw = be("marker.line.width", l.mean, [0, 5], w), Ge.marker = {
                        sizeref: 1,
                        sizemin: 1,
                        sizemode: "diameter"
                      };
                      var Ve = be("marker.size", l.mean, [2, 16], D);
                      Ie.ms = Ve, Ge.marker.size = Ve;
                    }
                    ee && (Ge.line = {
                      width: be("line.width", we, [0, 10], C)
                    }), ce && (Ie.tx = "Aa", Ie.tp = be("textposition", we), Ie.ts = 10, Ie.tc = be("textfont.color", we), Ie.tf = be("textfont.family", we), Ie.tw = be("textfont.weight", we), Ie.ty = be("textfont.style", we), Ie.tv = be("textfont.variant", we), Ie.tC = be("textfont.textcase", we), Ie.tE = be("textfont.lineposition", we), Ie.tS = be("textfont.shadow", we)), j = [l.minExtend(G, Ie)], he = l.minExtend(H, Ge), he.selectedpoints = null, he.texttemplate = null;
                  }
                  var Je = a.select(this).select("g.legendpoints"), et = Je.selectAll("path.scatterpts").data(ie ? j : []);
                  et.enter().insert("path", ":first-child").classed("scatterpts", !0).attr("transform", X), et.exit().remove(), et.call(u.pointStyle, he, O), ie && (j[0].mrc = 3);
                  var at = Je.selectAll("g.pointtext").data(ce ? j : []);
                  at.enter().append("g").classed("pointtext", !0).append("text").attr("transform", X), at.exit().remove(), at.selectAll("text").call(u.textPointStyle, he, O);
                }
                function me(xe) {
                  var Me = xe[0].trace, De = Me.type === "waterfall";
                  if (xe[0]._distinct && De) {
                    var Z = xe[0].trace[xe[0].dir].marker;
                    return xe[0].mc = Z.color, xe[0].mlw = Z.line.width, xe[0].mlc = Z.line.color, ae(xe, this, "waterfall");
                  }
                  var ee = [];
                  Me.visible && De && (ee = xe[0].hasTotals ? [["increasing", "M-6,-6V6H0Z"], ["totals", "M6,6H0L-6,-6H-0Z"], ["decreasing", "M6,6V-6H0Z"]] : [["increasing", "M-6,-6V6H6Z"], ["decreasing", "M6,6V-6H-6Z"]]);
                  var ie = a.select(this).select("g.legendpoints").selectAll("path.legendwaterfall").data(ee);
                  ie.enter().append("path").classed("legendwaterfall", !0).attr("transform", X).style("stroke-miterlimit", 1), ie.exit().remove(), ie.each(function(G) {
                    var H = a.select(this), ce = Me[G[0]].marker, j = U(void 0, ce.line, T, w);
                    H.attr("d", G[1]).style("stroke-width", j + "px").call(c.fill, ce.color), j && H.call(c.stroke, ce.line.color);
                  });
                }
                function J(xe) {
                  ae(xe, this);
                }
                function W(xe) {
                  ae(xe, this, "funnel");
                }
                function ae(xe, Me, De) {
                  var Z = xe[0].trace, ee = Z.marker || {}, ie = ee.line || {}, G = ee.cornerradius ? "M6,3a3,3,0,0,1-3,3H-3a3,3,0,0,1-3-3V-3a3,3,0,0,1,3-3H3a3,3,0,0,1,3,3Z" : (
                    // Square with rounded corners
                    "M6,6H-6V-6H6Z"
                  ), H = De ? Z.visible && Z.type === De : p.traceIs(Z, "bar"), ce = a.select(Me).select("g.legendpoints").selectAll("path.legend" + De).data(H ? [xe] : []);
                  ce.enter().append("path").classed("legend" + De, !0).attr("d", G).attr("transform", X), ce.exit().remove(), ce.each(function(j) {
                    var he = a.select(this), be = j[0], we = U(be.mlw, ee.line, T, w);
                    he.style("stroke-width", we + "px");
                    var Ie = be.mcc;
                    if (!$._inHover && "mc" in be) {
                      var Ge = d(ee), Ve = Ge.mid;
                      Ve === void 0 && (Ve = (Ge.max + Ge.min) / 2), Ie = u.tryColorscale(ee, "")(Ve);
                    }
                    var Je = Ie || be.mc || ee.color, et = ee.pattern, at = et && u.getPatternAttr(et.shape, 0, "");
                    if (at) {
                      var Le = u.getPatternAttr(et.bgcolor, 0, null), ze = u.getPatternAttr(et.fgcolor, 0, null), Oe = et.fgopacity, Xe = R(et.size, 8, 10), it = R(et.solidity, 0.5, 1), ut = "legend-" + Z.uid;
                      he.call(u.pattern, "legend", O, ut, at, Xe, it, Ie, et.fillmode, Le, ze, Oe);
                    } else
                      he.call(c.fill, Je);
                    we && c.stroke(he, be.mlc || ie.color);
                  });
                }
                function oe(xe) {
                  var Me = xe[0].trace, De = a.select(this).select("g.legendpoints").selectAll("path.legendbox").data(Me.visible && p.traceIs(Me, "box-violin") ? [xe] : []);
                  De.enter().append("path").classed("legendbox", !0).attr("d", "M6,6H-6V-6H6Z").attr("transform", X), De.exit().remove(), De.each(function() {
                    var Z = a.select(this);
                    if ((Me.boxpoints === "all" || Me.points === "all") && c.opacity(Me.fillcolor) === 0 && c.opacity((Me.line || {}).color) === 0) {
                      var ee = l.minExtend(Me, {
                        marker: {
                          size: ne ? D : l.constrain(Me.marker.size, 2, 16),
                          sizeref: 1,
                          sizemin: 1,
                          sizemode: "diameter"
                        }
                      });
                      De.call(u.pointStyle, ee, O);
                    } else {
                      var ie = U(void 0, Me.line, T, w);
                      Z.style("stroke-width", ie + "px").call(c.fill, Me.fillcolor), ie && c.stroke(Z, Me.line.color);
                    }
                  });
                }
                function ve(xe) {
                  var Me = xe[0].trace, De = a.select(this).select("g.legendpoints").selectAll("path.legendcandle").data(Me.visible && Me.type === "candlestick" ? [xe, xe] : []);
                  De.enter().append("path").classed("legendcandle", !0).attr("d", function(Z, ee) {
                    return ee ? "M-15,0H-8M-8,6V-6H8Z" : "M15,0H8M8,-6V6H-8Z";
                  }).attr("transform", X).style("stroke-miterlimit", 1), De.exit().remove(), De.each(function(Z, ee) {
                    var ie = a.select(this), G = Me[ee ? "increasing" : "decreasing"], H = U(void 0, G.line, T, w);
                    ie.style("stroke-width", H + "px").call(c.fill, G.fillcolor), H && c.stroke(ie, G.line.color);
                  });
                }
                function fe(xe) {
                  var Me = xe[0].trace, De = a.select(this).select("g.legendpoints").selectAll("path.legendohlc").data(Me.visible && Me.type === "ohlc" ? [xe, xe] : []);
                  De.enter().append("path").classed("legendohlc", !0).attr("d", function(Z, ee) {
                    return ee ? "M-15,0H0M-8,-6V0" : "M15,0H0M8,6V0";
                  }).attr("transform", X).style("stroke-miterlimit", 1), De.exit().remove(), De.each(function(Z, ee) {
                    var ie = a.select(this), G = Me[ee ? "increasing" : "decreasing"], H = U(void 0, G.line, T, w);
                    ie.style("fill", "none").call(u.dashLine, G.line.dash, H), H && c.stroke(ie, G.line.color);
                  });
                }
                function ye(xe) {
                  Re(xe, this, "pie");
                }
                function Ce(xe) {
                  Re(xe, this, "funnelarea");
                }
                function Re(xe, Me, De) {
                  var Z = xe[0], ee = Z.trace, ie = De ? ee.visible && ee.type === De : p.traceIs(ee, De), G = a.select(Me).select("g.legendpoints").selectAll("path.legend" + De).data(ie ? [xe] : []);
                  if (G.enter().append("path").classed("legend" + De, !0).attr("d", "M6,6H-6V-6H6Z").attr("transform", X), G.exit().remove(), G.size()) {
                    var H = ee.marker || {}, ce = U(b(H.line.width, Z.pts), H.line, T, w), j = "pieLike", he = l.minExtend(ee, {
                      marker: {
                        line: {
                          width: ce
                        }
                      }
                    }, j), be = l.minExtend(Z, {
                      trace: he
                    }, j);
                    i(G, be, he, O);
                  }
                }
                function Be(xe) {
                  var Me = xe[0].trace, De, Z = [];
                  if (Me.visible)
                    switch (Me.type) {
                      case "histogram2d":
                      case "heatmap":
                        Z = [
                          ["M-15,-2V4H15V-2Z"]
                          // similar to contour
                        ], De = !0;
                        break;
                      case "choropleth":
                      case "choroplethmapbox":
                        Z = [["M-6,-6V6H6V-6Z"]], De = !0;
                        break;
                      case "densitymapbox":
                        Z = [["M-6,0 a6,6 0 1,0 12,0 a 6,6 0 1,0 -12,0"]], De = "radial";
                        break;
                      case "cone":
                        Z = [["M-6,2 A2,2 0 0,0 -6,6 V6L6,4Z"], ["M-6,-6 A2,2 0 0,0 -6,-2 L6,-4Z"], ["M-6,-2 A2,2 0 0,0 -6,2 L6,0Z"]], De = !1;
                        break;
                      case "streamtube":
                        Z = [["M-6,2 A2,2 0 0,0 -6,6 H6 A2,2 0 0,1 6,2 Z"], ["M-6,-6 A2,2 0 0,0 -6,-2 H6 A2,2 0 0,1 6,-6 Z"], ["M-6,-2 A2,2 0 0,0 -6,2 H6 A2,2 0 0,1 6,-2 Z"]], De = !1;
                        break;
                      case "surface":
                        Z = [["M-6,-6 A2,3 0 0,0 -6,0 H6 A2,3 0 0,1 6,-6 Z"], ["M-6,1 A2,3 0 0,1 -6,6 H6 A2,3 0 0,0 6,0 Z"]], De = !0;
                        break;
                      case "mesh3d":
                        Z = [["M-6,6H0L-6,-6Z"], ["M6,6H0L6,-6Z"], ["M-6,-6H6L0,6Z"]], De = !1;
                        break;
                      case "volume":
                        Z = [["M-6,6H0L-6,-6Z"], ["M6,6H0L6,-6Z"], ["M-6,-6H6L0,6Z"]], De = !0;
                        break;
                      case "isosurface":
                        Z = [["M-6,6H0L-6,-6Z"], ["M6,6H0L6,-6Z"], ["M-6,-6 A12,24 0 0,0 6,-6 L0,6Z"]], De = !1;
                        break;
                    }
                  var ee = a.select(this).select("g.legendpoints").selectAll("path.legend3dandfriends").data(Z);
                  ee.enter().append("path").classed("legend3dandfriends", !0).attr("transform", X).style("stroke-miterlimit", 1), ee.exit().remove(), ee.each(function(ie, G) {
                    var H = a.select(this), ce = d(Me), j = ce.colorscale, he = ce.reversescale, be = function(Ve) {
                      if (Ve.size()) {
                        var Je = "legendfill-" + Me.uid;
                        u.gradient(Ve, O, Je, k(he, De === "radial"), j, "fill");
                      }
                    }, we;
                    if (j) {
                      if (!De) {
                        var Ge = j.length;
                        we = G === 0 ? j[he ? Ge - 1 : 0][1] : (
                          // minimum
                          G === 1 ? j[he ? 0 : Ge - 1][1] : (
                            // maximum
                            j[Math.floor((Ge - 1) / 2)][1]
                          )
                        );
                      }
                    } else {
                      var Ie = Me.vertexcolor || Me.facecolor || Me.color;
                      we = l.isArrayOrTypedArray(Ie) ? Ie[G] || Ie[0] : Ie;
                    }
                    H.attr("d", ie[0]), we ? H.call(c.fill, we) : H.call(be);
                  });
                }
              };
              function k(g, I) {
                var O = I ? "radial" : "horizontal";
                return O + (g ? "" : "reversed");
              }
              function A(g) {
                var I = g[0].trace, O = I.contours, $ = h.hasLines(I), Y = h.hasMarkers(I), ne = I.visible && I.fill && I.fill !== "none", q = !1, B = !1;
                if (O) {
                  var X = O.coloring;
                  X === "lines" ? q = !0 : $ = X === "none" || X === "heatmap" || O.showlines, O.type === "constraint" ? ne = O._operation !== "=" : (X === "fill" || X === "heatmap") && (B = !0);
                }
                return {
                  showMarker: Y,
                  showLine: $,
                  showFill: ne,
                  showGradientLine: q,
                  showGradientFill: B,
                  anyLine: $ || q,
                  anyFill: ne || B
                };
              }
              function R(g, I, O) {
                return g && l.isArrayOrTypedArray(g) ? I : g > O ? O : g;
              }
            }
          ),
          /***/
          6540: (
            /***/
            function(M, L, r) {
              r(6052), M.exports = {
                editType: "modebar",
                orientation: {
                  valType: "enumerated",
                  values: ["v", "h"],
                  dflt: "h",
                  editType: "modebar"
                },
                bgcolor: {
                  valType: "color",
                  editType: "modebar"
                },
                color: {
                  valType: "color",
                  editType: "modebar"
                },
                activecolor: {
                  valType: "color",
                  editType: "modebar"
                },
                uirevision: {
                  valType: "any",
                  editType: "none"
                },
                add: {
                  valType: "string",
                  arrayOk: !0,
                  dflt: "",
                  editType: "modebar"
                },
                remove: {
                  valType: "string",
                  arrayOk: !0,
                  dflt: "",
                  editType: "modebar"
                }
              };
            }
          ),
          /***/
          1868: (
            /***/
            function(M, L, r) {
              var a = r(4040), p = r(7316), l = r(9811), f = r(9224), u = r(4016).eraseActiveShape, c = r(3400), d = c._, h = M.exports = {};
              h.toImage = {
                name: "toImage",
                title: function(g) {
                  var I = g._context.toImageButtonOptions || {}, O = I.format || "png";
                  return O === "png" ? d(g, "Download plot as a png") : (
                    // legacy text
                    d(g, "Download plot")
                  );
                },
                icon: f.camera,
                click: function(g) {
                  var I = g._context.toImageButtonOptions, O = {
                    format: I.format || "png"
                  };
                  c.notifier(d(g, "Taking snapshot - this may take a few seconds"), "long"), O.format !== "svg" && c.isIE() && (c.notifier(d(g, "IE only supports svg.  Changing format to svg."), "long"), O.format = "svg"), ["filename", "width", "height", "scale"].forEach(function($) {
                    $ in I && (O[$] = I[$]);
                  }), a.call("downloadImage", g, O).then(function($) {
                    c.notifier(d(g, "Snapshot succeeded") + " - " + $, "long");
                  }).catch(function() {
                    c.notifier(d(g, "Sorry, there was a problem downloading your snapshot!"), "long");
                  });
                }
              }, h.sendDataToCloud = {
                name: "sendDataToCloud",
                title: function(g) {
                  return d(g, "Edit in Chart Studio");
                },
                icon: f.disk,
                click: function(g) {
                  p.sendDataToCloud(g);
                }
              }, h.editInChartStudio = {
                name: "editInChartStudio",
                title: function(g) {
                  return d(g, "Edit in Chart Studio");
                },
                icon: f.pencil,
                click: function(g) {
                  p.sendDataToCloud(g);
                }
              }, h.zoom2d = {
                name: "zoom2d",
                _cat: "zoom",
                title: function(g) {
                  return d(g, "Zoom");
                },
                attr: "dragmode",
                val: "zoom",
                icon: f.zoombox,
                click: i
              }, h.pan2d = {
                name: "pan2d",
                _cat: "pan",
                title: function(g) {
                  return d(g, "Pan");
                },
                attr: "dragmode",
                val: "pan",
                icon: f.pan,
                click: i
              }, h.select2d = {
                name: "select2d",
                _cat: "select",
                title: function(g) {
                  return d(g, "Box Select");
                },
                attr: "dragmode",
                val: "select",
                icon: f.selectbox,
                click: i
              }, h.lasso2d = {
                name: "lasso2d",
                _cat: "lasso",
                title: function(g) {
                  return d(g, "Lasso Select");
                },
                attr: "dragmode",
                val: "lasso",
                icon: f.lasso,
                click: i
              }, h.drawclosedpath = {
                name: "drawclosedpath",
                title: function(g) {
                  return d(g, "Draw closed freeform");
                },
                attr: "dragmode",
                val: "drawclosedpath",
                icon: f.drawclosedpath,
                click: i
              }, h.drawopenpath = {
                name: "drawopenpath",
                title: function(g) {
                  return d(g, "Draw open freeform");
                },
                attr: "dragmode",
                val: "drawopenpath",
                icon: f.drawopenpath,
                click: i
              }, h.drawline = {
                name: "drawline",
                title: function(g) {
                  return d(g, "Draw line");
                },
                attr: "dragmode",
                val: "drawline",
                icon: f.drawline,
                click: i
              }, h.drawrect = {
                name: "drawrect",
                title: function(g) {
                  return d(g, "Draw rectangle");
                },
                attr: "dragmode",
                val: "drawrect",
                icon: f.drawrect,
                click: i
              }, h.drawcircle = {
                name: "drawcircle",
                title: function(g) {
                  return d(g, "Draw circle");
                },
                attr: "dragmode",
                val: "drawcircle",
                icon: f.drawcircle,
                click: i
              }, h.eraseshape = {
                name: "eraseshape",
                title: function(g) {
                  return d(g, "Erase active shape");
                },
                icon: f.eraseshape,
                click: u
              }, h.zoomIn2d = {
                name: "zoomIn2d",
                _cat: "zoomin",
                title: function(g) {
                  return d(g, "Zoom in");
                },
                attr: "zoom",
                val: "in",
                icon: f.zoom_plus,
                click: i
              }, h.zoomOut2d = {
                name: "zoomOut2d",
                _cat: "zoomout",
                title: function(g) {
                  return d(g, "Zoom out");
                },
                attr: "zoom",
                val: "out",
                icon: f.zoom_minus,
                click: i
              }, h.autoScale2d = {
                name: "autoScale2d",
                _cat: "autoscale",
                title: function(g) {
                  return d(g, "Autoscale");
                },
                attr: "zoom",
                val: "auto",
                icon: f.autoscale,
                click: i
              }, h.resetScale2d = {
                name: "resetScale2d",
                _cat: "resetscale",
                title: function(g) {
                  return d(g, "Reset axes");
                },
                attr: "zoom",
                val: "reset",
                icon: f.home,
                click: i
              }, h.hoverClosestCartesian = {
                name: "hoverClosestCartesian",
                _cat: "hoverclosest",
                title: function(g) {
                  return d(g, "Show closest data on hover");
                },
                attr: "hovermode",
                val: "closest",
                icon: f.tooltip_basic,
                gravity: "ne",
                click: i
              }, h.hoverCompareCartesian = {
                name: "hoverCompareCartesian",
                _cat: "hoverCompare",
                title: function(g) {
                  return d(g, "Compare data on hover");
                },
                attr: "hovermode",
                val: function(g) {
                  return g._fullLayout._isHoriz ? "y" : "x";
                },
                icon: f.tooltip_compare,
                gravity: "ne",
                click: i
              };
              function i(g, I) {
                var O = I.currentTarget, $ = O.getAttribute("data-attr"), Y = O.getAttribute("data-val") || !0, ne = g._fullLayout, q = {}, B = l.list(g, null, !0), X = ne._cartesianSpikesEnabled, U, te;
                if ($ === "zoom") {
                  var se = Y === "in" ? 0.5 : 2, me = (1 + se) / 2, J = (1 - se) / 2, W;
                  for (te = 0; te < B.length; te++)
                    if (U = B[te], !U.fixedrange)
                      if (W = U._name, Y === "auto")
                        q[W + ".autorange"] = !0;
                      else if (Y === "reset")
                        U._rangeInitial0 === void 0 && U._rangeInitial1 === void 0 ? q[W + ".autorange"] = !0 : U._rangeInitial0 === void 0 ? (q[W + ".autorange"] = U._autorangeInitial, q[W + ".range"] = [null, U._rangeInitial1]) : U._rangeInitial1 === void 0 ? (q[W + ".range"] = [U._rangeInitial0, null], q[W + ".autorange"] = U._autorangeInitial) : q[W + ".range"] = [U._rangeInitial0, U._rangeInitial1], U._showSpikeInitial !== void 0 && (q[W + ".showspikes"] = U._showSpikeInitial, X === "on" && !U._showSpikeInitial && (X = "off"));
                      else {
                        var ae = [U.r2l(U.range[0]), U.r2l(U.range[1])], oe = [me * ae[0] + J * ae[1], me * ae[1] + J * ae[0]];
                        q[W + ".range[0]"] = U.l2r(oe[0]), q[W + ".range[1]"] = U.l2r(oe[1]);
                      }
                } else
                  $ === "hovermode" && (Y === "x" || Y === "y") && (Y = ne._isHoriz ? "y" : "x", O.setAttribute("data-val", Y)), q[$] = Y;
                ne._cartesianSpikesEnabled = X, a.call("_guiRelayout", g, q);
              }
              h.zoom3d = {
                name: "zoom3d",
                _cat: "zoom",
                title: function(g) {
                  return d(g, "Zoom");
                },
                attr: "scene.dragmode",
                val: "zoom",
                icon: f.zoombox,
                click: b
              }, h.pan3d = {
                name: "pan3d",
                _cat: "pan",
                title: function(g) {
                  return d(g, "Pan");
                },
                attr: "scene.dragmode",
                val: "pan",
                icon: f.pan,
                click: b
              }, h.orbitRotation = {
                name: "orbitRotation",
                title: function(g) {
                  return d(g, "Orbital rotation");
                },
                attr: "scene.dragmode",
                val: "orbit",
                icon: f["3d_rotate"],
                click: b
              }, h.tableRotation = {
                name: "tableRotation",
                title: function(g) {
                  return d(g, "Turntable rotation");
                },
                attr: "scene.dragmode",
                val: "turntable",
                icon: f["z-axis"],
                click: b
              };
              function b(g, I) {
                for (var O = I.currentTarget, $ = O.getAttribute("data-attr"), Y = O.getAttribute("data-val") || !0, ne = g._fullLayout._subplots.gl3d || [], q = {}, B = $.split("."), X = 0; X < ne.length; X++)
                  q[ne[X] + "." + B[1]] = Y;
                var U = Y === "pan" ? Y : "zoom";
                q.dragmode = U, a.call("_guiRelayout", g, q);
              }
              h.resetCameraDefault3d = {
                name: "resetCameraDefault3d",
                _cat: "resetCameraDefault",
                title: function(g) {
                  return d(g, "Reset camera to default");
                },
                attr: "resetDefault",
                icon: f.home,
                click: x
              }, h.resetCameraLastSave3d = {
                name: "resetCameraLastSave3d",
                _cat: "resetCameraLastSave",
                title: function(g) {
                  return d(g, "Reset camera to last save");
                },
                attr: "resetLastSave",
                icon: f.movie,
                click: x
              };
              function x(g, I) {
                for (var O = I.currentTarget, $ = O.getAttribute("data-attr"), Y = $ === "resetLastSave", ne = $ === "resetDefault", q = g._fullLayout, B = q._subplots.gl3d || [], X = {}, U = 0; U < B.length; U++) {
                  var te = B[U], se = te + ".camera", me = te + ".aspectratio", J = te + ".aspectmode", W = q[te]._scene, ae;
                  Y ? (X[se + ".up"] = W.viewInitial.up, X[se + ".eye"] = W.viewInitial.eye, X[se + ".center"] = W.viewInitial.center, ae = !0) : ne && (X[se + ".up"] = null, X[se + ".eye"] = null, X[se + ".center"] = null, ae = !0), ae && (X[me + ".x"] = W.viewInitial.aspectratio.x, X[me + ".y"] = W.viewInitial.aspectratio.y, X[me + ".z"] = W.viewInitial.aspectratio.z, X[J] = W.viewInitial.aspectmode);
                }
                a.call("_guiRelayout", g, X);
              }
              h.hoverClosest3d = {
                name: "hoverClosest3d",
                _cat: "hoverclosest",
                title: function(g) {
                  return d(g, "Toggle show closest data on hover");
                },
                attr: "hovermode",
                val: null,
                toggle: !0,
                icon: f.tooltip_basic,
                gravity: "ne",
                click: C
              };
              function D(g, I) {
                var O = I.currentTarget, $ = O._previousVal, Y = g._fullLayout, ne = Y._subplots.gl3d || [], q = ["xaxis", "yaxis", "zaxis"], B = {}, X = {};
                if ($)
                  X = $, O._previousVal = null;
                else {
                  for (var U = 0; U < ne.length; U++) {
                    var te = ne[U], se = Y[te], me = te + ".hovermode";
                    B[me] = se.hovermode, X[me] = !1;
                    for (var J = 0; J < 3; J++) {
                      var W = q[J], ae = te + "." + W + ".showspikes";
                      X[ae] = !1, B[ae] = se[W].showspikes;
                    }
                  }
                  O._previousVal = B;
                }
                return X;
              }
              function C(g, I) {
                var O = D(g, I);
                a.call("_guiRelayout", g, O);
              }
              h.zoomInGeo = {
                name: "zoomInGeo",
                _cat: "zoomin",
                title: function(g) {
                  return d(g, "Zoom in");
                },
                attr: "zoom",
                val: "in",
                icon: f.zoom_plus,
                click: w
              }, h.zoomOutGeo = {
                name: "zoomOutGeo",
                _cat: "zoomout",
                title: function(g) {
                  return d(g, "Zoom out");
                },
                attr: "zoom",
                val: "out",
                icon: f.zoom_minus,
                click: w
              }, h.resetGeo = {
                name: "resetGeo",
                _cat: "reset",
                title: function(g) {
                  return d(g, "Reset");
                },
                attr: "reset",
                val: null,
                icon: f.autoscale,
                click: w
              }, h.hoverClosestGeo = {
                name: "hoverClosestGeo",
                _cat: "hoverclosest",
                title: function(g) {
                  return d(g, "Toggle show closest data on hover");
                },
                attr: "hovermode",
                val: null,
                toggle: !0,
                icon: f.tooltip_basic,
                gravity: "ne",
                click: T
              };
              function w(g, I) {
                for (var O = I.currentTarget, $ = O.getAttribute("data-attr"), Y = O.getAttribute("data-val") || !0, ne = g._fullLayout, q = ne._subplots.geo || [], B = 0; B < q.length; B++) {
                  var X = q[B], U = ne[X];
                  if ($ === "zoom") {
                    var te = U.projection.scale, se = Y === "in" ? 2 * te : 0.5 * te;
                    a.call("_guiRelayout", g, X + ".projection.scale", se);
                  }
                }
                $ === "reset" && R(g, "geo");
              }
              h.hoverClosestGl2d = {
                name: "hoverClosestGl2d",
                _cat: "hoverclosest",
                title: function(g) {
                  return d(g, "Toggle show closest data on hover");
                },
                attr: "hovermode",
                val: null,
                toggle: !0,
                icon: f.tooltip_basic,
                gravity: "ne",
                click: T
              }, h.hoverClosestPie = {
                name: "hoverClosestPie",
                _cat: "hoverclosest",
                title: function(g) {
                  return d(g, "Toggle show closest data on hover");
                },
                attr: "hovermode",
                val: "closest",
                icon: f.tooltip_basic,
                gravity: "ne",
                click: T
              };
              function S(g) {
                var I = g._fullLayout;
                return I.hovermode ? !1 : I._has("cartesian") ? I._isHoriz ? "y" : "x" : "closest";
              }
              function T(g) {
                var I = S(g);
                a.call("_guiRelayout", g, "hovermode", I);
              }
              h.resetViewSankey = {
                name: "resetSankeyGroup",
                title: function(g) {
                  return d(g, "Reset view");
                },
                icon: f.home,
                click: function(g) {
                  for (var I = {
                    "node.groups": [],
                    "node.x": [],
                    "node.y": []
                  }, O = 0; O < g._fullData.length; O++) {
                    var $ = g._fullData[O]._viewInitial;
                    I["node.groups"].push($.node.groups.slice()), I["node.x"].push($.node.x.slice()), I["node.y"].push($.node.y.slice());
                  }
                  a.call("restyle", g, I);
                }
              }, h.toggleHover = {
                name: "toggleHover",
                title: function(g) {
                  return d(g, "Toggle show closest data on hover");
                },
                attr: "hovermode",
                val: null,
                toggle: !0,
                icon: f.tooltip_basic,
                gravity: "ne",
                click: function(g, I) {
                  var O = D(g, I);
                  O.hovermode = S(g), a.call("_guiRelayout", g, O);
                }
              }, h.resetViews = {
                name: "resetViews",
                title: function(g) {
                  return d(g, "Reset views");
                },
                icon: f.home,
                click: function(g, I) {
                  var O = I.currentTarget;
                  O.setAttribute("data-attr", "zoom"), O.setAttribute("data-val", "reset"), i(g, I), O.setAttribute("data-attr", "resetLastSave"), x(g, I), R(g, "geo"), R(g, "mapbox");
                }
              }, h.toggleSpikelines = {
                name: "toggleSpikelines",
                title: function(g) {
                  return d(g, "Toggle Spike Lines");
                },
                icon: f.spikeline,
                attr: "_cartesianSpikesEnabled",
                val: "on",
                click: function(g) {
                  var I = g._fullLayout, O = I._cartesianSpikesEnabled;
                  I._cartesianSpikesEnabled = O === "on" ? "off" : "on", a.call("_guiRelayout", g, k(g));
                }
              };
              function k(g) {
                for (var I = g._fullLayout, O = I._cartesianSpikesEnabled === "on", $ = l.list(g, null, !0), Y = {}, ne = 0; ne < $.length; ne++) {
                  var q = $[ne];
                  Y[q._name + ".showspikes"] = O ? !0 : q._showSpikeInitial;
                }
                return Y;
              }
              h.resetViewMapbox = {
                name: "resetViewMapbox",
                _cat: "resetView",
                title: function(g) {
                  return d(g, "Reset view");
                },
                attr: "reset",
                icon: f.home,
                click: function(g) {
                  R(g, "mapbox");
                }
              }, h.zoomInMapbox = {
                name: "zoomInMapbox",
                _cat: "zoomin",
                title: function(g) {
                  return d(g, "Zoom in");
                },
                attr: "zoom",
                val: "in",
                icon: f.zoom_plus,
                click: A
              }, h.zoomOutMapbox = {
                name: "zoomOutMapbox",
                _cat: "zoomout",
                title: function(g) {
                  return d(g, "Zoom out");
                },
                attr: "zoom",
                val: "out",
                icon: f.zoom_minus,
                click: A
              };
              function A(g, I) {
                for (var O = I.currentTarget, $ = O.getAttribute("data-val"), Y = g._fullLayout, ne = Y._subplots.mapbox || [], q = 1.05, B = {}, X = 0; X < ne.length; X++) {
                  var U = ne[X], te = Y[U].zoom, se = $ === "in" ? q * te : te / q;
                  B[U + ".zoom"] = se;
                }
                a.call("_guiRelayout", g, B);
              }
              function R(g, I) {
                for (var O = g._fullLayout, $ = O._subplots[I] || [], Y = {}, ne = 0; ne < $.length; ne++)
                  for (var q = $[ne], B = O[q]._subplot, X = B.viewInitial, U = Object.keys(X), te = 0; te < U.length; te++) {
                    var se = U[te];
                    Y[q + "." + se] = X[se];
                  }
                a.call("_guiRelayout", g, Y);
              }
            }
          ),
          /***/
          6052: (
            /***/
            function(M, L, r) {
              var a = r(1868), p = Object.keys(a), l = ["drawline", "drawopenpath", "drawclosedpath", "drawcircle", "drawrect", "eraseshape"], f = ["v1hovermode", "hoverclosest", "hovercompare", "togglehover", "togglespikelines"].concat(l), u = [], c = function(d) {
                if (f.indexOf(d._cat || d.name) === -1) {
                  var h = d.name, i = (d._cat || d.name).toLowerCase();
                  u.indexOf(h) === -1 && u.push(h), u.indexOf(i) === -1 && u.push(i);
                }
              };
              p.forEach(function(d) {
                c(a[d]);
              }), u.sort(), M.exports = {
                DRAW_MODES: l,
                backButtons: f,
                foreButtons: u
              };
            }
          ),
          /***/
          824: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(6308), l = r(1780), f = r(6540);
              M.exports = function(c, d) {
                var h = c.modebar || {}, i = l.newContainer(d, "modebar");
                function b(D, C) {
                  return a.coerce(h, i, f, D, C);
                }
                b("orientation"), b("bgcolor", p.addOpacity(d.paper_bgcolor, 0.5));
                var x = p.contrast(p.rgb(d.modebar.bgcolor));
                b("color", p.addOpacity(x, 0.3)), b("activecolor", p.addOpacity(x, 0.7)), b("uirevision", d.uirevision), b("add"), b("remove");
              };
            }
          ),
          /***/
          3080: (
            /***/
            function(M, L, r) {
              M.exports = {
                moduleType: "component",
                name: "modebar",
                layoutAttributes: r(6540),
                supplyLayoutDefaults: r(824),
                manage: r(8816)
              };
            }
          ),
          /***/
          8816: (
            /***/
            function(M, L, r) {
              var a = r(9811), p = r(3028), l = r(4040), f = r(624).isUnifiedHover, u = r(6400), c = r(1868), d = r(6052).DRAW_MODES, h = r(3400).extendDeep;
              M.exports = function(T) {
                var k = T._fullLayout, A = T._context, R = k._modeBar;
                if (!A.displayModeBar && !A.watermark) {
                  R && (R.destroy(), delete k._modeBar);
                  return;
                }
                if (!Array.isArray(A.modeBarButtonsToRemove))
                  throw new Error(["*modeBarButtonsToRemove* configuration options", "must be an array."].join(" "));
                if (!Array.isArray(A.modeBarButtonsToAdd))
                  throw new Error(["*modeBarButtonsToAdd* configuration options", "must be an array."].join(" "));
                var g = A.modeBarButtons, I;
                Array.isArray(g) && g.length ? I = w(g) : !A.displayModeBar && A.watermark ? I = [] : I = i(T), R ? R.update(T, I) : k._modeBar = u(T, I);
              };
              function i(S) {
                var T = S._fullLayout, k = S._fullData, A = S._context;
                function R(G, H) {
                  if (typeof H == "string") {
                    if (H.toLowerCase() === G.toLowerCase())
                      return !0;
                  } else {
                    var ce = H.name, j = H._cat || H.name;
                    if (ce === G || j === G.toLowerCase())
                      return !0;
                  }
                  return !1;
                }
                var g = T.modebar.add;
                typeof g == "string" && (g = [g]);
                var I = T.modebar.remove;
                typeof I == "string" && (I = [I]);
                var O = A.modeBarButtonsToAdd.concat(g.filter(function(G) {
                  for (var H = 0; H < A.modeBarButtonsToRemove.length; H++)
                    if (R(G, A.modeBarButtonsToRemove[H]))
                      return !1;
                  return !0;
                })), $ = A.modeBarButtonsToRemove.concat(I.filter(function(G) {
                  for (var H = 0; H < A.modeBarButtonsToAdd.length; H++)
                    if (R(G, A.modeBarButtonsToAdd[H]))
                      return !1;
                  return !0;
                })), Y = T._has("cartesian"), ne = T._has("gl3d"), q = T._has("geo"), B = T._has("pie"), X = T._has("funnelarea"), U = T._has("gl2d"), te = T._has("ternary"), se = T._has("mapbox"), me = T._has("polar"), J = T._has("smith"), W = T._has("sankey"), ae = b(T), oe = f(T.hovermode), ve = [];
                function fe(G) {
                  if (G.length) {
                    for (var H = [], ce = 0; ce < G.length; ce++) {
                      for (var j = G[ce], he = c[j], be = he.name.toLowerCase(), we = (he._cat || he.name).toLowerCase(), Ie = !1, Ge = 0; Ge < $.length; Ge++) {
                        var Ve = $[Ge].toLowerCase();
                        if (Ve === be || Ve === we) {
                          Ie = !0;
                          break;
                        }
                      }
                      Ie || H.push(c[j]);
                    }
                    ve.push(H);
                  }
                }
                var ye = ["toImage"];
                A.showEditInChartStudio ? ye.push("editInChartStudio") : A.showSendToCloud && ye.push("sendDataToCloud"), fe(ye);
                var Ce = [], Re = [], Be = [], xe = [];
                (Y || U || B || X || te) + q + ne + se + me + J > 1 ? (Re = ["toggleHover"], Be = ["resetViews"]) : q ? (Ce = ["zoomInGeo", "zoomOutGeo"], Re = ["hoverClosestGeo"], Be = ["resetGeo"]) : ne ? (Re = ["hoverClosest3d"], Be = ["resetCameraDefault3d", "resetCameraLastSave3d"]) : se ? (Ce = ["zoomInMapbox", "zoomOutMapbox"], Re = ["toggleHover"], Be = ["resetViewMapbox"]) : U ? Re = ["hoverClosestGl2d"] : B ? Re = ["hoverClosestPie"] : W ? (Re = ["hoverClosestCartesian", "hoverCompareCartesian"], Be = ["resetViewSankey"]) : Re = ["toggleHover"], Y && (Re = ["toggleSpikelines", "hoverClosestCartesian", "hoverCompareCartesian"]), (D(k) || oe) && (Re = []), (Y || U) && !ae && (Ce = ["zoomIn2d", "zoomOut2d", "autoScale2d"], Be[0] !== "resetViews" && (Be = ["resetScale2d"])), ne ? xe = ["zoom3d", "pan3d", "orbitRotation", "tableRotation"] : (Y || U) && !ae || te ? xe = ["zoom2d", "pan2d"] : se || q ? xe = ["pan2d"] : me && (xe = ["zoom2d"]), x(k) && xe.push("select2d", "lasso2d");
                var Me = [], De = function(G) {
                  Me.indexOf(G) === -1 && Re.indexOf(G) !== -1 && Me.push(G);
                };
                if (Array.isArray(O)) {
                  for (var Z = [], ee = 0; ee < O.length; ee++) {
                    var ie = O[ee];
                    typeof ie == "string" ? (ie = ie.toLowerCase(), d.indexOf(ie) !== -1 ? (T._has("mapbox") || // draw shapes in paper coordinate (could be improved in future to support data coordinate, when there is no pitch)
                    T._has("cartesian")) && xe.push(ie) : ie === "togglespikelines" ? De("toggleSpikelines") : ie === "togglehover" ? De("toggleHover") : ie === "hovercompare" ? De("hoverCompareCartesian") : ie === "hoverclosest" ? (De("hoverClosestCartesian"), De("hoverClosestGeo"), De("hoverClosest3d"), De("hoverClosestGl2d"), De("hoverClosestPie")) : ie === "v1hovermode" && (De("toggleHover"), De("hoverClosestCartesian"), De("hoverCompareCartesian"), De("hoverClosestGeo"), De("hoverClosest3d"), De("hoverClosestGl2d"), De("hoverClosestPie"))) : Z.push(ie);
                  }
                  O = Z;
                }
                return fe(xe), fe(Ce.concat(Be)), fe(Me), C(ve, O);
              }
              function b(S) {
                for (var T = a.list({
                  _fullLayout: S
                }, null, !0), k = 0; k < T.length; k++)
                  if (!T[k].fixedrange)
                    return !1;
                return !0;
              }
              function x(S) {
                for (var T = !1, k = 0; k < S.length && !T; k++) {
                  var A = S[k];
                  !A._module || !A._module.selectPoints || (l.traceIs(A, "scatter-like") ? (p.hasMarkers(A) || p.hasText(A)) && (T = !0) : l.traceIs(A, "box-violin") ? (A.boxpoints === "all" || A.points === "all") && (T = !0) : T = !0);
                }
                return T;
              }
              function D(S) {
                for (var T = 0; T < S.length; T++)
                  if (!l.traceIs(S[T], "noHover"))
                    return !1;
                return !0;
              }
              function C(S, T) {
                if (T.length)
                  if (Array.isArray(T[0]))
                    for (var k = 0; k < T.length; k++)
                      S.push(T[k]);
                  else
                    S.push(T);
                return S;
              }
              function w(S) {
                for (var T = h([], S), k = 0; k < T.length; k++)
                  for (var A = T[k], R = 0; R < A.length; R++) {
                    var g = A[R];
                    if (typeof g == "string")
                      if (c[g] !== void 0)
                        T[k][R] = c[g];
                      else
                        throw new Error(["*modeBarButtons* configuration options", "invalid button name"].join(" "));
                  }
                return T;
              }
            }
          ),
          /***/
          6400: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(8248), l = r(3400), f = r(9224), u = r(5788).version, c = new DOMParser();
              function d(x) {
                this.container = x.container, this.element = document.createElement("div"), this.update(x.graphInfo, x.buttons), this.container.appendChild(this.element);
              }
              var h = d.prototype;
              h.update = function(x, D) {
                this.graphInfo = x;
                var C = this.graphInfo._context, w = this.graphInfo._fullLayout, S = "modebar-" + w._uid;
                this.element.setAttribute("id", S), this._uid = S, this.element.className = "modebar", C.displayModeBar === "hover" && (this.element.className += " modebar--hover ease-bg"), w.modebar.orientation === "v" && (this.element.className += " vertical", D = D.reverse());
                var T = w.modebar, k = C.displayModeBar === "hover" ? ".js-plotly-plot .plotly:hover " : "";
                l.deleteRelatedStyleRule(S), l.addRelatedStyleRule(S, k + "#" + S + " .modebar-group", "background-color: " + T.bgcolor), l.addRelatedStyleRule(S, "#" + S + " .modebar-btn .icon path", "fill: " + T.color), l.addRelatedStyleRule(S, "#" + S + " .modebar-btn:hover .icon path", "fill: " + T.activecolor), l.addRelatedStyleRule(S, "#" + S + " .modebar-btn.active .icon path", "fill: " + T.activecolor);
                var A = !this.hasButtons(D), R = this.hasLogo !== C.displaylogo, g = this.locale !== C.locale;
                if (this.locale = C.locale, (A || R || g) && (this.removeAllButtons(), this.updateButtons(D), C.watermark || C.displaylogo)) {
                  var I = this.getLogo();
                  C.watermark && (I.className = I.className + " watermark"), w.modebar.orientation === "v" ? this.element.insertBefore(I, this.element.childNodes[0]) : this.element.appendChild(I), this.hasLogo = !0;
                }
                this.updateActiveButton();
              }, h.updateButtons = function(x) {
                var D = this;
                this.buttons = x, this.buttonElements = [], this.buttonsNames = [], this.buttons.forEach(function(C) {
                  var w = D.createGroup();
                  C.forEach(function(S) {
                    var T = S.name;
                    if (!T)
                      throw new Error("must provide button 'name' in button config");
                    if (D.buttonsNames.indexOf(T) !== -1)
                      throw new Error("button name '" + T + "' is taken");
                    D.buttonsNames.push(T);
                    var k = D.createButton(S);
                    D.buttonElements.push(k), w.appendChild(k);
                  }), D.element.appendChild(w);
                });
              }, h.createGroup = function() {
                var x = document.createElement("div");
                return x.className = "modebar-group", x;
              }, h.createButton = function(x) {
                var D = this, C = document.createElement("a");
                C.setAttribute("rel", "tooltip"), C.className = "modebar-btn";
                var w = x.title;
                w === void 0 ? w = x.name : typeof w == "function" && (w = w(this.graphInfo)), (w || w === 0) && C.setAttribute("data-title", w), x.attr !== void 0 && C.setAttribute("data-attr", x.attr);
                var S = x.val;
                S !== void 0 && (typeof S == "function" && (S = S(this.graphInfo)), C.setAttribute("data-val", S));
                var T = x.click;
                if (typeof T != "function")
                  throw new Error("must provide button 'click' function in button config");
                C.addEventListener("click", function(A) {
                  x.click(D.graphInfo, A), D.updateActiveButton(A.currentTarget);
                }), C.setAttribute("data-toggle", x.toggle || !1), x.toggle && a.select(C).classed("active", !0);
                var k = x.icon;
                return typeof k == "function" ? C.appendChild(k()) : C.appendChild(this.createIcon(k || f.question)), C.setAttribute("data-gravity", x.gravity || "n"), C;
              }, h.createIcon = function(x) {
                var D = p(x.height) ? Number(x.height) : x.ascent - x.descent, C = "http://www.w3.org/2000/svg", w;
                if (x.path) {
                  w = document.createElementNS(C, "svg"), w.setAttribute("viewBox", [0, 0, x.width, D].join(" ")), w.setAttribute("class", "icon");
                  var S = document.createElementNS(C, "path");
                  S.setAttribute("d", x.path), x.transform ? S.setAttribute("transform", x.transform) : x.ascent !== void 0 && S.setAttribute("transform", "matrix(1 0 0 -1 0 " + x.ascent + ")"), w.appendChild(S);
                }
                if (x.svg) {
                  var T = c.parseFromString(x.svg, "application/xml");
                  w = T.childNodes[0];
                }
                return w.setAttribute("height", "1em"), w.setAttribute("width", "1em"), w;
              }, h.updateActiveButton = function(x) {
                var D = this.graphInfo._fullLayout, C = x !== void 0 ? x.getAttribute("data-attr") : null;
                this.buttonElements.forEach(function(w) {
                  var S = w.getAttribute("data-val") || !0, T = w.getAttribute("data-attr"), k = w.getAttribute("data-toggle") === "true", A = a.select(w);
                  if (k)
                    T === C && A.classed("active", !A.classed("active"));
                  else {
                    var R = T === null ? T : l.nestedProperty(D, T).get();
                    A.classed("active", R === S);
                  }
                });
              }, h.hasButtons = function(x) {
                var D = this.buttons;
                if (!D || x.length !== D.length)
                  return !1;
                for (var C = 0; C < x.length; ++C) {
                  if (x[C].length !== D[C].length)
                    return !1;
                  for (var w = 0; w < x[C].length; w++)
                    if (x[C][w].name !== D[C][w].name)
                      return !1;
                }
                return !0;
              };
              function i(x) {
                return x + " (v" + u + ")";
              }
              h.getLogo = function() {
                var x = this.createGroup(), D = document.createElement("a");
                return D.href = "https://plotly.com/", D.target = "_blank", D.setAttribute("data-title", i(l._(this.graphInfo, "Produced with Plotly.js"))), D.className = "modebar-btn plotlyjsicon modebar-btn--logo", D.appendChild(this.createIcon(f.newplotlylogo)), x.appendChild(D), x;
              }, h.removeAllButtons = function() {
                for (; this.element.firstChild; )
                  this.element.removeChild(this.element.firstChild);
                this.hasLogo = !1;
              }, h.destroy = function() {
                l.removeElement(this.container.querySelector(".modebar")), l.deleteRelatedStyleRule(this._uid);
              };
              function b(x, D) {
                var C = x._fullLayout, w = new d({
                  graphInfo: x,
                  container: C._modebardiv.node(),
                  buttons: D
                });
                return C._privateplot && a.select(w.element).append("span").classed("badge-private float--left", !0).text("PRIVATE"), w;
              }
              M.exports = b;
            }
          ),
          /***/
          6680: (
            /***/
            function(M, L, r) {
              var a = r(5376), p = r(2548), l = r(1780).templatedArray, f = l("button", {
                visible: {
                  valType: "boolean",
                  dflt: !0,
                  editType: "plot"
                },
                step: {
                  valType: "enumerated",
                  values: ["month", "year", "day", "hour", "minute", "second", "all"],
                  dflt: "month",
                  editType: "plot"
                },
                stepmode: {
                  valType: "enumerated",
                  values: ["backward", "todate"],
                  dflt: "backward",
                  editType: "plot"
                },
                count: {
                  valType: "number",
                  min: 0,
                  dflt: 1,
                  editType: "plot"
                },
                label: {
                  valType: "string",
                  editType: "plot"
                },
                editType: "plot"
              });
              M.exports = {
                visible: {
                  valType: "boolean",
                  editType: "plot"
                },
                buttons: f,
                x: {
                  valType: "number",
                  min: -2,
                  max: 3,
                  editType: "plot"
                },
                xanchor: {
                  valType: "enumerated",
                  values: ["auto", "left", "center", "right"],
                  dflt: "left",
                  editType: "plot"
                },
                y: {
                  valType: "number",
                  min: -2,
                  max: 3,
                  editType: "plot"
                },
                yanchor: {
                  valType: "enumerated",
                  values: ["auto", "top", "middle", "bottom"],
                  dflt: "bottom",
                  editType: "plot"
                },
                font: a({
                  editType: "plot"
                }),
                bgcolor: {
                  valType: "color",
                  dflt: p.lightLine,
                  editType: "plot"
                },
                activecolor: {
                  valType: "color",
                  editType: "plot"
                },
                bordercolor: {
                  valType: "color",
                  dflt: p.defaultLine,
                  editType: "plot"
                },
                borderwidth: {
                  valType: "number",
                  min: 0,
                  dflt: 0,
                  editType: "plot"
                },
                editType: "plot"
              };
            }
          ),
          /***/
          5984: (
            /***/
            function(M) {
              M.exports = {
                // 'y' position pad above counter axis domain
                yPad: 0.02,
                // minimum button width (regardless of text size)
                minButtonWidth: 30,
                // buttons rect radii
                rx: 3,
                ry: 3,
                // light fraction used to compute the 'activecolor' default
                lightAmount: 25,
                darkAmount: 10
              };
            }
          ),
          /***/
          2148: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(6308), l = r(1780), f = r(1272), u = r(6680), c = r(5984);
              M.exports = function(b, x, D, C, w) {
                var S = b.rangeselector || {}, T = l.newContainer(x, "rangeselector");
                function k(O, $) {
                  return a.coerce(S, T, u, O, $);
                }
                var A = f(S, T, {
                  name: "buttons",
                  handleItemDefaults: d,
                  calendar: w
                }), R = k("visible", A.length > 0);
                if (R) {
                  var g = h(x, D, C);
                  k("x", g[0]), k("y", g[1]), a.noneOrAll(b, x, ["x", "y"]), k("xanchor"), k("yanchor"), a.coerceFont(k, "font", D.font);
                  var I = k("bgcolor");
                  k("activecolor", p.contrast(I, c.lightAmount, c.darkAmount)), k("bordercolor"), k("borderwidth");
                }
              };
              function d(i, b, x, D) {
                var C = D.calendar;
                function w(k, A) {
                  return a.coerce(i, b, u.buttons, k, A);
                }
                var S = w("visible");
                if (S) {
                  var T = w("step");
                  T !== "all" && (C && C !== "gregorian" && (T === "month" || T === "year") ? b.stepmode = "backward" : w("stepmode"), w("count")), w("label");
                }
              }
              function h(i, b, x) {
                for (var D = x.filter(function(T) {
                  return b[T].anchor === i._id;
                }), C = 0, w = 0; w < D.length; w++) {
                  var S = b[D[w]].domain;
                  S && (C = Math.max(S[1], C));
                }
                return [i.domain[0], C + c.yPad];
              }
            }
          ),
          /***/
          216: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(4040), l = r(7316), f = r(6308), u = r(3616), c = r(3400), d = c.strTranslate, h = r(2736), i = r(9811), b = r(4284), x = b.LINE_SPACING, D = b.FROM_TL, C = b.FROM_BR, w = r(5984), S = r(8040);
              M.exports = function(ne) {
                var q = ne._fullLayout, B = q._infolayer.selectAll(".rangeselector").data(T(ne), k);
                B.enter().append("g").classed("rangeselector", !0), B.exit().remove(), B.style({
                  cursor: "pointer",
                  "pointer-events": "all"
                }), B.each(function(X) {
                  var U = a.select(this), te = X, se = te.rangeselector, me = U.selectAll("g.button").data(c.filterVisible(se.buttons));
                  me.enter().append("g").classed("button", !0), me.exit().remove(), me.each(function(J) {
                    var W = a.select(this), ae = S(te, J);
                    J._isActive = A(te, J, ae), W.call(R, se, J), W.call(I, se, J, ne), W.on("click", function() {
                      ne._dragged || p.call("_guiRelayout", ne, ae);
                    }), W.on("mouseover", function() {
                      J._isHovered = !0, W.call(R, se, J);
                    }), W.on("mouseout", function() {
                      J._isHovered = !1, W.call(R, se, J);
                    });
                  }), $(ne, me, se, te._name, U);
                });
              };
              function T(Y) {
                for (var ne = i.list(Y, "x", !0), q = [], B = 0; B < ne.length; B++) {
                  var X = ne[B];
                  X.rangeselector && X.rangeselector.visible && q.push(X);
                }
                return q;
              }
              function k(Y) {
                return Y._id;
              }
              function A(Y, ne, q) {
                if (ne.step === "all")
                  return Y.autorange === !0;
                var B = Object.keys(q);
                return Y.range[0] === q[B[0]] && Y.range[1] === q[B[1]];
              }
              function R(Y, ne, q) {
                var B = c.ensureSingle(Y, "rect", "selector-rect", function(X) {
                  X.attr("shape-rendering", "crispEdges");
                });
                B.attr({
                  rx: w.rx,
                  ry: w.ry
                }), B.call(f.stroke, ne.bordercolor).call(f.fill, g(ne, q)).style("stroke-width", ne.borderwidth + "px");
              }
              function g(Y, ne) {
                return ne._isActive || ne._isHovered ? Y.activecolor : Y.bgcolor;
              }
              function I(Y, ne, q, B) {
                function X(te) {
                  h.convertToTspans(te, B);
                }
                var U = c.ensureSingle(Y, "text", "selector-text", function(te) {
                  te.attr("text-anchor", "middle");
                });
                U.call(u.font, ne.font).text(O(q, B._fullLayout._meta)).call(X);
              }
              function O(Y, ne) {
                return Y.label ? ne ? c.templateString(Y.label, ne) : Y.label : Y.step === "all" ? "all" : Y.count + Y.step.charAt(0);
              }
              function $(Y, ne, q, B, X) {
                var U = 0, te = 0, se = q.borderwidth;
                ne.each(function() {
                  var ve = a.select(this), fe = ve.select(".selector-text"), ye = q.font.size * x, Ce = Math.max(ye * h.lineCount(fe), 16) + 3;
                  te = Math.max(te, Ce);
                }), ne.each(function() {
                  var ve = a.select(this), fe = ve.select(".selector-rect"), ye = ve.select(".selector-text"), Ce = ye.node() && u.bBox(ye.node()).width, Re = q.font.size * x, Be = h.lineCount(ye), xe = Math.max(Ce + 10, w.minButtonWidth);
                  ve.attr("transform", d(se + U, se)), fe.attr({
                    x: 0,
                    y: 0,
                    width: xe,
                    height: te
                  }), h.positionText(ye, xe / 2, te / 2 - (Be - 1) * Re / 2 + 3), U += xe + 5;
                });
                var me = Y._fullLayout._size, J = me.l + me.w * q.x, W = me.t + me.h * (1 - q.y), ae = "left";
                c.isRightAnchor(q) && (J -= U, ae = "right"), c.isCenterAnchor(q) && (J -= U / 2, ae = "center");
                var oe = "top";
                c.isBottomAnchor(q) && (W -= te, oe = "bottom"), c.isMiddleAnchor(q) && (W -= te / 2, oe = "middle"), U = Math.ceil(U), te = Math.ceil(te), J = Math.round(J), W = Math.round(W), l.autoMargin(Y, B + "-range-selector", {
                  x: q.x,
                  y: q.y,
                  l: U * D[ae],
                  r: U * C[ae],
                  b: te * C[oe],
                  t: te * D[oe]
                }), X.attr("transform", d(J, W));
              }
            }
          ),
          /***/
          8040: (
            /***/
            function(M, L, r) {
              var a = r(3220), p = r(3400).titleCase;
              M.exports = function(u, c) {
                var d = u._name, h = {};
                if (c.step === "all")
                  h[d + ".autorange"] = !0;
                else {
                  var i = l(u, c);
                  h[d + ".range[0]"] = i[0], h[d + ".range[1]"] = i[1];
                }
                return h;
              };
              function l(f, u) {
                var c = f.range, d = new Date(f.r2l(c[1])), h = u.step, i = a["utc" + p(h)], b = u.count, x;
                switch (u.stepmode) {
                  case "backward":
                    x = f.l2r(+i.offset(d, -b));
                    break;
                  case "todate":
                    var D = i.offset(d, -b);
                    x = f.l2r(+i.ceil(D));
                    break;
                }
                var C = c[1];
                return [x, C];
              }
            }
          ),
          /***/
          1152: (
            /***/
            function(M, L, r) {
              M.exports = {
                moduleType: "component",
                name: "rangeselector",
                schema: {
                  subplots: {
                    xaxis: {
                      rangeselector: r(6680)
                    }
                  }
                },
                layoutAttributes: r(6680),
                handleDefaults: r(2148),
                draw: r(216)
              };
            }
          ),
          /***/
          8820: (
            /***/
            function(M, L, r) {
              var a = r(2548);
              M.exports = {
                bgcolor: {
                  valType: "color",
                  dflt: a.background,
                  editType: "plot"
                },
                bordercolor: {
                  valType: "color",
                  dflt: a.defaultLine,
                  editType: "plot"
                },
                borderwidth: {
                  valType: "integer",
                  dflt: 0,
                  min: 0,
                  editType: "plot"
                },
                autorange: {
                  valType: "boolean",
                  dflt: !0,
                  editType: "calc",
                  impliedEdits: {
                    "range[0]": void 0,
                    "range[1]": void 0
                  }
                },
                range: {
                  valType: "info_array",
                  items: [{
                    valType: "any",
                    editType: "calc",
                    impliedEdits: {
                      "^autorange": !1
                    }
                  }, {
                    valType: "any",
                    editType: "calc",
                    impliedEdits: {
                      "^autorange": !1
                    }
                  }],
                  editType: "calc",
                  impliedEdits: {
                    autorange: !1
                  }
                },
                thickness: {
                  valType: "number",
                  dflt: 0.15,
                  min: 0,
                  max: 1,
                  editType: "plot"
                },
                visible: {
                  valType: "boolean",
                  dflt: !0,
                  editType: "calc"
                },
                editType: "calc"
              };
            }
          ),
          /***/
          6652: (
            /***/
            function(M, L, r) {
              var a = r(9811).list, p = r(9280).getAutoRange, l = r(4636);
              M.exports = function(u) {
                for (var c = a(u, "x", !0), d = 0; d < c.length; d++) {
                  var h = c[d], i = h[l.name];
                  i && i.visible && i.autorange && (i._input.autorange = !0, i._input.range = i.range = p(u, h));
                }
              };
            }
          ),
          /***/
          4636: (
            /***/
            function(M) {
              M.exports = {
                // attribute container name
                name: "rangeslider",
                // class names
                containerClassName: "rangeslider-container",
                bgClassName: "rangeslider-bg",
                rangePlotClassName: "rangeslider-rangeplot",
                maskMinClassName: "rangeslider-mask-min",
                maskMaxClassName: "rangeslider-mask-max",
                slideBoxClassName: "rangeslider-slidebox",
                grabberMinClassName: "rangeslider-grabber-min",
                grabAreaMinClassName: "rangeslider-grabarea-min",
                handleMinClassName: "rangeslider-handle-min",
                grabberMaxClassName: "rangeslider-grabber-max",
                grabAreaMaxClassName: "rangeslider-grabarea-max",
                handleMaxClassName: "rangeslider-handle-max",
                maskMinOppAxisClassName: "rangeslider-mask-min-opp-axis",
                maskMaxOppAxisClassName: "rangeslider-mask-max-opp-axis",
                // style constants
                maskColor: "rgba(0,0,0,0.4)",
                maskOppAxisColor: "rgba(0,0,0,0.2)",
                slideBoxFill: "transparent",
                slideBoxCursor: "ew-resize",
                grabAreaFill: "transparent",
                grabAreaCursor: "col-resize",
                grabAreaWidth: 10,
                handleWidth: 4,
                handleRadius: 1,
                handleStrokeWidth: 1,
                extraPad: 15
              };
            }
          ),
          /***/
          1659: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(1780), l = r(9811), f = r(8820), u = r(936);
              M.exports = function(d, h, i) {
                var b = d[i], x = h[i];
                if (!(b.rangeslider || h._requestRangeslider[x._id]))
                  return;
                a.isPlainObject(b.rangeslider) || (b.rangeslider = {});
                var D = b.rangeslider, C = p.newContainer(x, "rangeslider");
                function w(B, X) {
                  return a.coerce(D, C, f, B, X);
                }
                var S, T;
                function k(B, X) {
                  return a.coerce(S, T, u, B, X);
                }
                var A = w("visible");
                if (A) {
                  w("bgcolor", h.plot_bgcolor), w("bordercolor"), w("borderwidth"), w("thickness"), w("autorange", !x.isValidRange(D.range)), w("range");
                  var R = h._subplots;
                  if (R)
                    for (var g = R.cartesian.filter(function(B) {
                      return B.substr(0, B.indexOf("y")) === l.name2id(i);
                    }).map(function(B) {
                      return B.substr(B.indexOf("y"), B.length);
                    }), I = a.simpleMap(g, l.id2name), O = 0; O < I.length; O++) {
                      var $ = I[O];
                      S = D[$] || {}, T = p.newContainer(C, $, "yaxis");
                      var Y = h[$], ne;
                      S.range && Y.isValidRange(S.range) && (ne = "fixed");
                      var q = k("rangemode", ne);
                      q !== "match" && k("range", Y.range.slice());
                    }
                  C._input = D;
                }
              };
            }
          ),
          /***/
          60: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(4040), l = r(7316), f = r(3400), u = f.strTranslate, c = r(3616), d = r(6308), h = r(1668), i = r(7952), b = r(9811), x = r(6476), D = r(3972), C = r(4636);
              M.exports = function(ne) {
                for (var q = ne._fullLayout, B = q._rangeSliderData, X = 0; X < B.length; X++) {
                  var U = B[X][C.name];
                  U._clipId = U._id + "-" + q._uid;
                }
                function te(me) {
                  return me._name;
                }
                var se = q._infolayer.selectAll("g." + C.containerClassName).data(B, te);
                se.exit().each(function(me) {
                  var J = me[C.name];
                  q._topdefs.select("#" + J._clipId).remove();
                }).remove(), B.length !== 0 && (se.enter().append("g").classed(C.containerClassName, !0).attr("pointer-events", "all"), se.each(function(me) {
                  var J = a.select(this), W = me[C.name], ae = q[b.id2name(me.anchor)], oe = W[b.id2name(me.anchor)];
                  if (W.range) {
                    var ve = f.simpleMap(W.range, me.r2l), fe = f.simpleMap(me.range, me.r2l), ye;
                    fe[0] < fe[1] ? ye = [Math.min(ve[0], fe[0]), Math.max(ve[1], fe[1])] : ye = [Math.max(ve[0], fe[0]), Math.min(ve[1], fe[1])], W.range = W._input.range = f.simpleMap(ye, me.l2r);
                  }
                  me.cleanRange("rangeslider.range");
                  var Ce = q._size, Re = me.domain;
                  W._width = Ce.w * (Re[1] - Re[0]);
                  var Be = Math.round(Ce.l + Ce.w * Re[0]), xe = Math.round(Ce.t + Ce.h * (1 - me._counterDomainMin) + (me.side === "bottom" ? me._depth : 0) + W._offsetShift + C.extraPad);
                  J.attr("transform", u(Be, xe)), W._rl = f.simpleMap(W.range, me.r2l);
                  var Me = W._rl[0], De = W._rl[1], Z = De - Me;
                  if (W.p2d = function(Ie) {
                    return Ie / W._width * Z + Me;
                  }, W.d2p = function(Ie) {
                    return (Ie - Me) / Z * W._width;
                  }, me.rangebreaks) {
                    var ee = me.locateBreaks(Me, De);
                    if (ee.length) {
                      var ie, G, H = 0;
                      for (ie = 0; ie < ee.length; ie++)
                        G = ee[ie], H += G.max - G.min;
                      var ce = W._width / (De - Me - H), j = [-ce * Me];
                      for (ie = 0; ie < ee.length; ie++)
                        G = ee[ie], j.push(j[j.length - 1] - ce * (G.max - G.min));
                      for (W.d2p = function(Ie) {
                        for (var Ge = j[0], Ve = 0; Ve < ee.length; Ve++) {
                          var Je = ee[Ve];
                          if (Ie >= Je.max)
                            Ge = j[Ve + 1];
                          else if (Ie < Je.min)
                            break;
                        }
                        return Ge + ce * Ie;
                      }, ie = 0; ie < ee.length; ie++)
                        G = ee[ie], G.pmin = W.d2p(G.min), G.pmax = W.d2p(G.max);
                      W.p2d = function(Ie) {
                        for (var Ge = j[0], Ve = 0; Ve < ee.length; Ve++) {
                          var Je = ee[Ve];
                          if (Ie >= Je.pmax)
                            Ge = j[Ve + 1];
                          else if (Ie < Je.pmin)
                            break;
                        }
                        return (Ie - Ge) / ce;
                      };
                    }
                  }
                  if (oe.rangemode !== "match") {
                    var he = ae.r2l(oe.range[0]), be = ae.r2l(oe.range[1]), we = be - he;
                    W.d2pOppAxis = function(Ie) {
                      return (Ie - he) / we * W._height;
                    };
                  }
                  J.call(A, ne, me, W).call(R, ne, me, W).call(g, ne, me, W).call(O, ne, me, W, oe).call($, ne, me, W).call(Y, ne, me, W), S(J, ne, me, W), k(J, ne, me, W, ae, oe), me.side === "bottom" && h.draw(ne, me._id + "title", {
                    propContainer: me,
                    propName: me._name + ".title",
                    placeholder: q._dfltTitle.x,
                    attributes: {
                      x: me._offset + me._length / 2,
                      y: xe + W._height + W._offsetShift + 10 + 1.5 * me.title.font.size,
                      "text-anchor": "middle"
                    }
                  });
                }));
              };
              function w(ne) {
                return typeof ne.clientX == "number" ? ne.clientX : ne.touches && ne.touches.length > 0 ? ne.touches[0].clientX : 0;
              }
              function S(ne, q, B, X) {
                if (q._context.staticPlot)
                  return;
                var U = ne.select("rect." + C.slideBoxClassName).node(), te = ne.select("rect." + C.grabAreaMinClassName).node(), se = ne.select("rect." + C.grabAreaMaxClassName).node();
                function me() {
                  var J = a.event, W = J.target, ae = w(J), oe = ae - ne.node().getBoundingClientRect().left, ve = X.d2p(B._rl[0]), fe = X.d2p(B._rl[1]), ye = x.coverSlip();
                  this.addEventListener("touchmove", Ce), this.addEventListener("touchend", Re), ye.addEventListener("mousemove", Ce), ye.addEventListener("mouseup", Re);
                  function Ce(Be) {
                    var xe = w(Be), Me = +xe - ae, De, Z, ee;
                    switch (W) {
                      case U:
                        if (ee = "ew-resize", ve + Me > B._length || fe + Me < 0)
                          return;
                        De = ve + Me, Z = fe + Me;
                        break;
                      case te:
                        if (ee = "col-resize", ve + Me > B._length)
                          return;
                        De = ve + Me, Z = fe;
                        break;
                      case se:
                        if (ee = "col-resize", fe + Me < 0)
                          return;
                        De = ve, Z = fe + Me;
                        break;
                      default:
                        ee = "ew-resize", De = oe, Z = oe + Me;
                        break;
                    }
                    if (Z < De) {
                      var ie = Z;
                      Z = De, De = ie;
                    }
                    X._pixelMin = De, X._pixelMax = Z, D(a.select(ye), ee), T(ne, q, B, X);
                  }
                  function Re() {
                    ye.removeEventListener("mousemove", Ce), ye.removeEventListener("mouseup", Re), this.removeEventListener("touchmove", Ce), this.removeEventListener("touchend", Re), f.removeElement(ye);
                  }
                }
                ne.on("mousedown", me), ne.on("touchstart", me);
              }
              function T(ne, q, B, X) {
                function U(me) {
                  return B.l2r(f.constrain(me, X._rl[0], X._rl[1]));
                }
                var te = U(X.p2d(X._pixelMin)), se = U(X.p2d(X._pixelMax));
                window.requestAnimationFrame(function() {
                  p.call("_guiRelayout", q, B._name + ".range", [te, se]);
                });
              }
              function k(ne, q, B, X, U, te) {
                var se = C.handleWidth / 2;
                function me(Be) {
                  return f.constrain(Be, 0, X._width);
                }
                function J(Be) {
                  return f.constrain(Be, 0, X._height);
                }
                function W(Be) {
                  return f.constrain(Be, -se, X._width + se);
                }
                var ae = me(X.d2p(B._rl[0])), oe = me(X.d2p(B._rl[1]));
                if (ne.select("rect." + C.slideBoxClassName).attr("x", ae).attr("width", oe - ae), ne.select("rect." + C.maskMinClassName).attr("width", ae), ne.select("rect." + C.maskMaxClassName).attr("x", oe).attr("width", X._width - oe), te.rangemode !== "match") {
                  var ve = X._height - J(X.d2pOppAxis(U._rl[1])), fe = X._height - J(X.d2pOppAxis(U._rl[0]));
                  ne.select("rect." + C.maskMinOppAxisClassName).attr("x", ae).attr("height", ve).attr("width", oe - ae), ne.select("rect." + C.maskMaxOppAxisClassName).attr("x", ae).attr("y", fe).attr("height", X._height - fe).attr("width", oe - ae), ne.select("rect." + C.slideBoxClassName).attr("y", ve).attr("height", fe - ve);
                }
                var ye = 0.5, Ce = Math.round(W(ae - se)) - ye, Re = Math.round(W(oe - se)) + ye;
                ne.select("g." + C.grabberMinClassName).attr("transform", u(Ce, ye)), ne.select("g." + C.grabberMaxClassName).attr("transform", u(Re, ye));
              }
              function A(ne, q, B, X) {
                var U = f.ensureSingle(ne, "rect", C.bgClassName, function(J) {
                  J.attr({
                    x: 0,
                    y: 0,
                    "shape-rendering": "crispEdges"
                  });
                }), te = X.borderwidth % 2 === 0 ? X.borderwidth : X.borderwidth - 1, se = -X._offsetShift, me = c.crispRound(q, X.borderwidth);
                U.attr({
                  width: X._width + te,
                  height: X._height + te,
                  transform: u(se, se),
                  "stroke-width": me
                }).call(d.stroke, X.bordercolor).call(d.fill, X.bgcolor);
              }
              function R(ne, q, B, X) {
                var U = q._fullLayout, te = f.ensureSingleById(U._topdefs, "clipPath", X._clipId, function(se) {
                  se.append("rect").attr({
                    x: 0,
                    y: 0
                  });
                });
                te.select("rect").attr({
                  width: X._width,
                  height: X._height
                });
              }
              function g(ne, q, B, X) {
                var U = q.calcdata, te = ne.selectAll("g." + C.rangePlotClassName).data(B._subplotsWith, f.identity);
                te.enter().append("g").attr("class", function(me) {
                  return C.rangePlotClassName + " " + me;
                }).call(c.setClipUrl, X._clipId, q), te.order(), te.exit().remove();
                var se;
                te.each(function(me, J) {
                  var W = a.select(this), ae = J === 0, oe = b.getFromId(q, me, "y"), ve = oe._name, fe = X[ve], ye = {
                    data: [],
                    layout: {
                      xaxis: {
                        type: B.type,
                        domain: [0, 1],
                        range: X.range.slice(),
                        calendar: B.calendar
                      },
                      width: X._width,
                      height: X._height,
                      margin: {
                        t: 0,
                        b: 0,
                        l: 0,
                        r: 0
                      }
                    },
                    _context: q._context
                  };
                  B.rangebreaks && (ye.layout.xaxis.rangebreaks = B.rangebreaks), ye.layout[ve] = {
                    type: oe.type,
                    domain: [0, 1],
                    range: fe.rangemode !== "match" ? fe.range.slice() : oe.range.slice(),
                    calendar: oe.calendar
                  }, oe.rangebreaks && (ye.layout[ve].rangebreaks = oe.rangebreaks), l.supplyDefaults(ye);
                  var Ce = ye._fullLayout.xaxis, Re = ye._fullLayout[ve];
                  Ce.clearCalc(), Ce.setScale(), Re.clearCalc(), Re.setScale();
                  var Be = {
                    id: me,
                    plotgroup: W,
                    xaxis: Ce,
                    yaxis: Re,
                    isRangePlot: !0
                  };
                  ae ? se = Be : (Be.mainplot = "xy", Be.mainplotinfo = se), i.rangePlot(q, Be, I(U, me));
                });
              }
              function I(ne, q) {
                for (var B = [], X = 0; X < ne.length; X++) {
                  var U = ne[X], te = U[0].trace;
                  te.xaxis + te.yaxis === q && B.push(U);
                }
                return B;
              }
              function O(ne, q, B, X, U) {
                var te = f.ensureSingle(ne, "rect", C.maskMinClassName, function(W) {
                  W.attr({
                    x: 0,
                    y: 0,
                    "shape-rendering": "crispEdges"
                  });
                });
                te.attr("height", X._height).call(d.fill, C.maskColor);
                var se = f.ensureSingle(ne, "rect", C.maskMaxClassName, function(W) {
                  W.attr({
                    y: 0,
                    "shape-rendering": "crispEdges"
                  });
                });
                if (se.attr("height", X._height).call(d.fill, C.maskColor), U.rangemode !== "match") {
                  var me = f.ensureSingle(ne, "rect", C.maskMinOppAxisClassName, function(W) {
                    W.attr({
                      y: 0,
                      "shape-rendering": "crispEdges"
                    });
                  });
                  me.attr("width", X._width).call(d.fill, C.maskOppAxisColor);
                  var J = f.ensureSingle(ne, "rect", C.maskMaxOppAxisClassName, function(W) {
                    W.attr({
                      y: 0,
                      "shape-rendering": "crispEdges"
                    });
                  });
                  J.attr("width", X._width).style("border-top", C.maskOppBorder).call(d.fill, C.maskOppAxisColor);
                }
              }
              function $(ne, q, B, X) {
                if (!q._context.staticPlot) {
                  var U = f.ensureSingle(ne, "rect", C.slideBoxClassName, function(te) {
                    te.attr({
                      y: 0,
                      cursor: C.slideBoxCursor,
                      "shape-rendering": "crispEdges"
                    });
                  });
                  U.attr({
                    height: X._height,
                    fill: C.slideBoxFill
                  });
                }
              }
              function Y(ne, q, B, X) {
                var U = f.ensureSingle(ne, "g", C.grabberMinClassName), te = f.ensureSingle(ne, "g", C.grabberMaxClassName), se = {
                  x: 0,
                  width: C.handleWidth,
                  rx: C.handleRadius,
                  fill: d.background,
                  stroke: d.defaultLine,
                  "stroke-width": C.handleStrokeWidth,
                  "shape-rendering": "crispEdges"
                }, me = {
                  y: Math.round(X._height / 4),
                  height: Math.round(X._height / 2)
                }, J = f.ensureSingle(U, "rect", C.handleMinClassName, function(fe) {
                  fe.attr(se);
                });
                J.attr(me);
                var W = f.ensureSingle(te, "rect", C.handleMaxClassName, function(fe) {
                  fe.attr(se);
                });
                W.attr(me);
                var ae = {
                  width: C.grabAreaWidth,
                  x: 0,
                  y: 0,
                  fill: C.grabAreaFill,
                  cursor: q._context.staticPlot ? void 0 : C.grabAreaCursor
                }, oe = f.ensureSingle(U, "rect", C.grabAreaMinClassName, function(fe) {
                  fe.attr(ae);
                });
                oe.attr("height", X._height);
                var ve = f.ensureSingle(te, "rect", C.grabAreaMaxClassName, function(fe) {
                  fe.attr(ae);
                });
                ve.attr("height", X._height);
              }
            }
          ),
          /***/
          7944: (
            /***/
            function(M, L, r) {
              var a = r(9811), p = r(2736), l = r(4636), f = r(4284).LINE_SPACING, u = l.name;
              function c(d) {
                var h = d && d[u];
                return h && h.visible;
              }
              L.isVisible = c, L.makeData = function(d) {
                var h = a.list({
                  _fullLayout: d
                }, "x", !0), i = d.margin, b = [];
                if (!d._has("gl2d"))
                  for (var x = 0; x < h.length; x++) {
                    var D = h[x];
                    if (c(D)) {
                      b.push(D);
                      var C = D[u];
                      C._id = u + D._id, C._height = (d.height - i.b - i.t) * C.thickness, C._offsetShift = Math.floor(C.borderwidth / 2);
                    }
                  }
                d._rangeSliderData = b;
              }, L.autoMarginOpts = function(d, h) {
                var i = d._fullLayout, b = h[u], x = h._id.charAt(0), D = 0, C = 0;
                if (h.side === "bottom" && (D = h._depth, h.title.text !== i._dfltTitle[x])) {
                  C = 1.5 * h.title.font.size + 10 + b._offsetShift;
                  var w = (h.title.text.match(p.BR_TAG_ALL) || []).length;
                  C += w * h.title.font.size * f;
                }
                return {
                  x: 0,
                  y: h._counterDomainMin,
                  l: 0,
                  r: 0,
                  t: 0,
                  b: b._height + D + Math.max(i.margin.b, C),
                  pad: l.extraPad + b._offsetShift * 2
                };
              };
            }
          ),
          /***/
          9692: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(8820), l = r(936), f = r(7944);
              M.exports = {
                moduleType: "component",
                name: "rangeslider",
                schema: {
                  subplots: {
                    xaxis: {
                      rangeslider: a.extendFlat({}, p, {
                        yaxis: l
                      })
                    }
                  }
                },
                layoutAttributes: r(8820),
                handleDefaults: r(1659),
                calcAutorange: r(6652),
                draw: r(60),
                isVisible: f.isVisible,
                makeData: f.makeData,
                autoMarginOpts: f.autoMarginOpts
              };
            }
          ),
          /***/
          936: (
            /***/
            function(M) {
              M.exports = {
                // not really a 'subplot' attribute container,
                // but this is the flag we use to denote attributes that
                // support yaxis, yaxis2, yaxis3, ... counters
                _isSubplotObj: !0,
                rangemode: {
                  valType: "enumerated",
                  values: ["auto", "fixed", "match"],
                  dflt: "match",
                  editType: "calc"
                },
                range: {
                  valType: "info_array",
                  items: [{
                    valType: "any",
                    editType: "plot"
                  }, {
                    valType: "any",
                    editType: "plot"
                  }],
                  editType: "plot"
                },
                editType: "calc"
              };
            }
          ),
          /***/
          3956: (
            /***/
            function(M, L, r) {
              var a = r(3916), p = r(2904).line, l = r(8192).u, f = r(2880).extendFlat, u = r(7824).overrideAll, c = r(1780).templatedArray;
              r(6208), M.exports = u(c("selection", {
                type: {
                  valType: "enumerated",
                  values: ["rect", "path"]
                },
                xref: f({}, a.xref, {}),
                yref: f({}, a.yref, {}),
                x0: {
                  valType: "any"
                },
                x1: {
                  valType: "any"
                },
                y0: {
                  valType: "any"
                },
                y1: {
                  valType: "any"
                },
                path: {
                  valType: "string",
                  editType: "arraydraw"
                },
                opacity: {
                  valType: "number",
                  min: 0,
                  max: 1,
                  dflt: 0.7,
                  editType: "arraydraw"
                },
                line: {
                  color: p.color,
                  width: f({}, p.width, {
                    min: 1,
                    dflt: 1
                  }),
                  dash: f({}, l, {
                    dflt: "dot"
                  })
                }
              }), "arraydraw", "from-root");
            }
          ),
          /***/
          3280: (
            /***/
            function(M) {
              M.exports = {
                // max pixels off straight before a lasso select line counts as bent
                BENDPX: 1.5,
                // smallest dimension allowed for a select box
                MINSELECT: 12,
                // throttling limit (ms) for selectPoints calls
                SELECTDELAY: 100,
                // cache ID suffix for throttle
                SELECTID: "-select"
              };
            }
          ),
          /***/
          4224: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(4460), l = r(1272), f = r(3956), u = r(5152);
              M.exports = function(h, i) {
                l(h, i, {
                  name: "selections",
                  handleItemDefaults: c
                });
                for (var b = i.selections, x = 0; x < b.length; x++) {
                  var D = b[x];
                  D && D.path === void 0 && (D.x0 === void 0 || D.x1 === void 0 || D.y0 === void 0 || D.y1 === void 0) && (i.selections[x] = null);
                }
              };
              function c(d, h, i) {
                function b(U, te) {
                  return a.coerce(d, h, f, U, te);
                }
                var x = b("path"), D = x ? "path" : "rect", C = b("type", D), w = C !== "path";
                w && delete h.path, b("opacity"), b("line.color"), b("line.width"), b("line.dash");
                for (var S = ["x", "y"], T = 0; T < 2; T++) {
                  var k = S[T], A = {
                    _fullLayout: i
                  }, R, g, I, O = p.coerceRef(d, h, A, k);
                  if (R = p.getFromId(A, O), R._selectionIndices.push(h._index), I = u.rangeToShapePosition(R), g = u.shapePositionToRange(R), w) {
                    var $ = k + "0", Y = k + "1", ne = d[$], q = d[Y];
                    d[$] = g(d[$], !0), d[Y] = g(d[Y], !0), p.coercePosition(h, A, b, O, $), p.coercePosition(h, A, b, O, Y);
                    var B = h[$], X = h[Y];
                    B !== void 0 && X !== void 0 && (h[$] = I(B), h[Y] = I(X), d[$] = ne, d[Y] = q);
                  }
                }
                w && a.noneOrAll(d, h, ["x0", "x1", "y0", "y1"]);
              }
            }
          ),
          /***/
          3640: (
            /***/
            function(M, L, r) {
              var a = r(9856).readPaths, p = r(5496), l = r(1936).clearOutlineControllers, f = r(6308), u = r(3616), c = r(1780).arrayEditor, d = r(5152), h = d.getPathString;
              M.exports = {
                draw: i,
                drawOne: x,
                activateLastSelection: w
              };
              function i(T) {
                var k = T._fullLayout;
                l(T), k._selectionLayer.selectAll("path").remove();
                for (var A in k._plots) {
                  var R = k._plots[A].selectionLayer;
                  R && R.selectAll("path").remove();
                }
                for (var g = 0; g < k.selections.length; g++)
                  x(T, g);
              }
              function b(T) {
                return T._context.editSelection;
              }
              function x(T, k) {
                T._fullLayout._paperdiv.selectAll('.selectionlayer [data-index="' + k + '"]').remove();
                var A = d.makeSelectionsOptionsAndPlotinfo(T, k), R = A.options, g = A.plotinfo;
                if (!R._input)
                  return;
                I(T._fullLayout._selectionLayer);
                function I(O) {
                  var $ = h(T, R), Y = {
                    "data-index": k,
                    "fill-rule": "evenodd",
                    d: $
                  }, ne = R.opacity, q = "rgba(0,0,0,0)", B = R.line.color || f.contrast(T._fullLayout.plot_bgcolor), X = R.line.width, U = R.line.dash;
                  X || (X = 5, U = "solid");
                  var te = b(T) && T._fullLayout._activeSelectionIndex === k;
                  te && (q = T._fullLayout.activeselection.fillcolor, ne = T._fullLayout.activeselection.opacity);
                  for (var se = [], me = 1; me >= 0; me--) {
                    var J = O.append("path").attr(Y).style("opacity", me ? 0.1 : ne).call(f.stroke, B).call(f.fill, q).call(u.dashLine, me ? "solid" : U, me ? 4 + X : X);
                    if (D(J, T, R), te) {
                      var W = c(T.layout, "selections", R);
                      J.style({
                        cursor: "move"
                      });
                      var ae = {
                        element: J.node(),
                        plotinfo: g,
                        gd: T,
                        editHelpers: W,
                        isActiveSelection: !0
                        // i.e. to enable controllers
                      }, oe = a($, T);
                      p(oe, J, ae);
                    } else
                      J.style("pointer-events", me ? "all" : "none");
                    se[me] = J;
                  }
                  var ve = se[0], fe = se[1];
                  fe.node().addEventListener("click", function() {
                    return C(T, ve);
                  });
                }
              }
              function D(T, k, A) {
                var R = A.xref + A.yref;
                u.setClipUrl(T, "clip" + k._fullLayout._uid + R, k);
              }
              function C(T, k) {
                if (b(T)) {
                  var A = k.node(), R = +A.getAttribute("data-index");
                  if (R >= 0) {
                    if (R === T._fullLayout._activeSelectionIndex) {
                      S(T);
                      return;
                    }
                    T._fullLayout._activeSelectionIndex = R, T._fullLayout._deactivateSelection = S, i(T);
                  }
                }
              }
              function w(T) {
                if (b(T)) {
                  var k = T._fullLayout.selections.length - 1;
                  T._fullLayout._activeSelectionIndex = k, T._fullLayout._deactivateSelection = S, i(T);
                }
              }
              function S(T) {
                if (b(T)) {
                  var k = T._fullLayout._activeSelectionIndex;
                  k >= 0 && (l(T), delete T._fullLayout._activeSelectionIndex, i(T));
                }
              }
            }
          ),
          /***/
          4200: (
            /***/
            function(M, L, r) {
              var a = r(8192).u, p = r(2880).extendFlat;
              M.exports = {
                newselection: {
                  mode: {
                    valType: "enumerated",
                    values: ["immediate", "gradual"],
                    dflt: "immediate",
                    editType: "none"
                  },
                  line: {
                    color: {
                      valType: "color",
                      editType: "none"
                    },
                    width: {
                      valType: "number",
                      min: 1,
                      dflt: 1,
                      editType: "none"
                    },
                    dash: p({}, a, {
                      dflt: "dot",
                      editType: "none"
                    }),
                    editType: "none"
                  },
                  // no drawdirection here noting that layout.selectdirection is used instead.
                  editType: "none"
                },
                activeselection: {
                  fillcolor: {
                    valType: "color",
                    dflt: "rgba(0,0,0,0)",
                    editType: "none"
                  },
                  opacity: {
                    valType: "number",
                    min: 0,
                    max: 1,
                    dflt: 0.5,
                    editType: "none"
                  },
                  editType: "none"
                }
              };
            }
          ),
          /***/
          1004: (
            /***/
            function(M) {
              M.exports = function(r, a, p) {
                p("newselection.mode");
                var l = p("newselection.line.width");
                l && (p("newselection.line.color"), p("newselection.line.dash")), p("activeselection.fillcolor"), p("activeselection.opacity");
              };
            }
          ),
          /***/
          5968: (
            /***/
            function(M, L, r) {
              var a = r(2760), p = a.selectMode, l = r(1936), f = l.clearOutline, u = r(9856), c = u.readPaths, d = u.writePaths, h = u.fixDatesForPaths;
              M.exports = function(b, x) {
                if (b.length) {
                  var D = b[0][0];
                  if (D) {
                    var C = D.getAttribute("d"), w = x.gd, S = w._fullLayout.newselection, T = x.plotinfo, k = T.xaxis, A = T.yaxis, R = x.isActiveSelection, g = x.dragmode, I = (w.layout || {}).selections || [];
                    if (!p(g) && R !== void 0) {
                      var O = w._fullLayout._activeSelectionIndex;
                      if (O < I.length)
                        switch (w._fullLayout.selections[O].type) {
                          case "rect":
                            g = "select";
                            break;
                          case "path":
                            g = "lasso";
                            break;
                        }
                    }
                    var $ = c(C, w, T, R), Y = {
                      xref: k._id,
                      yref: A._id,
                      opacity: S.opacity,
                      line: {
                        color: S.line.color,
                        width: S.line.width,
                        dash: S.line.dash
                      }
                    }, ne;
                    $.length === 1 && (ne = $[0]), ne && ne.length === 5 && // ensure we only have 4 corners for a rect
                    g === "select" ? (Y.type = "rect", Y.x0 = ne[0][1], Y.y0 = ne[0][2], Y.x1 = ne[2][1], Y.y1 = ne[2][2]) : (Y.type = "path", k && A && h($, k, A), Y.path = d($), ne = null), f(w);
                    for (var q = x.editHelpers, B = (q || {}).modifyItem, X = [], U = 0; U < I.length; U++) {
                      var te = w._fullLayout.selections[U];
                      if (!te) {
                        X[U] = te;
                        continue;
                      }
                      if (X[U] = te._input, R !== void 0 && U === w._fullLayout._activeSelectionIndex) {
                        var se = Y;
                        switch (te.type) {
                          case "rect":
                            B("x0", se.x0), B("x1", se.x1), B("y0", se.y0), B("y1", se.y1);
                            break;
                          case "path":
                            B("path", se.path);
                            break;
                        }
                      }
                    }
                    return R === void 0 ? (X.push(Y), X) : q ? q.getUpdateObj() : {};
                  }
                }
              };
            }
          ),
          /***/
          5840: (
            /***/
            function(M, L, r) {
              var a = r(3400).strTranslate;
              function p(c, d) {
                switch (c.type) {
                  case "log":
                    return c.p2d(d);
                  case "date":
                    return c.p2r(d, 0, c.calendar);
                  default:
                    return c.p2r(d);
                }
              }
              function l(c, d) {
                switch (c.type) {
                  case "log":
                    return c.d2p(d);
                  case "date":
                    return c.r2p(d, 0, c.calendar);
                  default:
                    return c.r2p(d);
                }
              }
              function f(c) {
                var d = c._id.charAt(0) === "y" ? 1 : 0;
                return function(h) {
                  return p(c, h[d]);
                };
              }
              function u(c) {
                return a(c.xaxis._offset, c.yaxis._offset);
              }
              M.exports = {
                p2r: p,
                r2p: l,
                axValue: f,
                getTransform: u
              };
            }
          ),
          /***/
          2676: (
            /***/
            function(M, L, r) {
              var a = r(3640), p = r(3156);
              M.exports = {
                moduleType: "component",
                name: "selections",
                layoutAttributes: r(3956),
                supplyLayoutDefaults: r(4224),
                supplyDrawNewSelectionDefaults: r(1004),
                includeBasePlot: r(6632)("selections"),
                draw: a.draw,
                drawOne: a.drawOne,
                reselect: p.reselect,
                prepSelect: p.prepSelect,
                clearOutline: p.clearOutline,
                clearSelectionsCache: p.clearSelectionsCache,
                selectOnClick: p.selectOnClick
              };
            }
          ),
          /***/
          3156: (
            /***/
            function(M, L, r) {
              var a = r(4756), p = r(1456), l = r(4040), f = r(3616).dashStyle, u = r(6308), c = r(3024), d = r(624).makeEventData, h = r(2760), i = h.freeMode, b = h.rectMode, x = h.drawMode, D = h.openMode, C = h.selectMode, w = r(5152), S = r(3068), T = r(5496), k = r(1936).clearOutline, A = r(9856), R = A.handleEllipse, g = A.readPaths, I = r(3940).newShapes, O = r(5968), $ = r(3640).activateLastSelection, Y = r(3400), ne = Y.sorterAsc, q = r(2065), B = r(1200), X = r(9811).getFromId, U = r(3696), te = r(9172).redrawReglTraces, se = r(3280), me = se.MINSELECT, J = q.filter, W = q.tester, ae = r(5840), oe = ae.p2r, ve = ae.axValue, fe = ae.getTransform;
              function ye(qe) {
                return qe.subplot !== void 0;
              }
              function Ce(qe, Ue, We, je, lt) {
                var Se = !ye(je), Pe = i(lt), Ye = b(lt), Ze = D(lt), rt = x(lt), tt = C(lt), Ft = lt === "drawline", Dt = lt === "drawcircle", dt = Ft || Dt, st = je.gd, Nt = st._fullLayout, ar = tt && Nt.newselection.mode === "immediate" && Se, ur = Nt._zoomlayer, Or = je.element.getBoundingClientRect(), Fr = je.plotinfo, br = fe(Fr), or = Ue - Or.left, Rr = We - Or.top;
                Nt._calcInverseTransform(st);
                var lr = Y.apply3DTransform(Nt._invTransform)(or, Rr);
                or = lr[0], Rr = lr[1];
                var Tr = Nt._invScaleX, Gr = Nt._invScaleY, Dr = or, gr = Rr, Er = "M" + or + "," + Rr, Cr = je.xaxes[0], zr = je.yaxes[0], en = Cr._length, on = zr._length, Ir = qe.altKey && !(x(lt) && Ze), Ae, ue, ft, nt, mt, Tt, bt;
                Z(qe, st, je), Pe && (Ae = J([[or, Rr]], se.BENDPX));
                var vt = ur.selectAll("path.select-outline-" + Fr.id).data([1]), ht = rt ? Nt.newshape : Nt.newselection;
                rt && (je.hasText = ht.label.text || ht.label.texttemplate);
                var St = rt && !Ze ? ht.fillcolor : "rgba(0,0,0,0)", It = ht.line.color || (Se ? u.contrast(st._fullLayout.plot_bgcolor) : "#7f7f7f");
                vt.enter().append("path").attr("class", "select-outline select-outline-" + Fr.id).style({
                  opacity: rt ? ht.opacity / 2 : 1,
                  "stroke-dasharray": f(ht.line.dash, ht.line.width),
                  "stroke-width": ht.line.width + "px",
                  "shape-rendering": "crispEdges"
                }).call(u.stroke, It).call(u.fill, St).attr("fill-rule", "evenodd").classed("cursor-move", !!rt).attr("transform", br).attr("d", Er + "Z");
                var Ht = ur.append("path").attr("class", "zoombox-corners").style({
                  fill: u.background,
                  stroke: u.defaultLine,
                  "stroke-width": 1
                }).attr("transform", br).attr("d", "M0,0Z");
                if (rt && je.hasText) {
                  var Et = ur.select(".label-temp");
                  Et.empty() && (Et = ur.append("g").classed("label-temp", !0).classed("select-outline", !0).style({
                    opacity: 0.8
                  }));
                }
                var Zt = Nt._uid + se.SELECTID, Yt = [], Gt = ce(st, je.xaxes, je.yaxes, je.subplot);
                ar && !qe.shiftKey && (je._clearSubplotSelections = function() {
                  if (Se) {
                    var ir = Cr._id, wr = zr._id;
                    ut(st, ir, wr, Gt);
                    for (var sr = (st.layout || {}).selections || [], Xr = [], Lr = !1, Pr = 0; Pr < sr.length; Pr++) {
                      var $r = Nt.selections[Pr];
                      $r.xref !== ir || $r.yref !== wr ? Xr.push(sr[Pr]) : Lr = !0;
                    }
                    Lr && (st._fullLayout._noEmitSelectedAtStart = !0, l.call("_guiRelayout", st, {
                      selections: Xr
                    }));
                  }
                });
                var $t = jt(je);
                je.moveFn = function(ir, wr) {
                  je._clearSubplotSelections && (je._clearSubplotSelections(), je._clearSubplotSelections = void 0), Dr = Math.max(0, Math.min(en, Tr * ir + or)), gr = Math.max(0, Math.min(on, Gr * wr + Rr));
                  var sr = Math.abs(Dr - or), Xr = Math.abs(gr - Rr);
                  if (Ye) {
                    var Lr, Pr, $r;
                    if (tt) {
                      var Jr = Nt.selectdirection;
                      switch (Jr === "any" ? Xr < Math.min(sr * 0.6, me) ? Lr = "h" : sr < Math.min(Xr * 0.6, me) ? Lr = "v" : Lr = "d" : Lr = Jr, Lr) {
                        case "h":
                          Pr = Dt ? on / 2 : 0, $r = on;
                          break;
                        case "v":
                          Pr = Dt ? en / 2 : 0, $r = en;
                          break;
                      }
                    }
                    if (rt)
                      switch (Nt.newshape.drawdirection) {
                        case "vertical":
                          Lr = "h", Pr = Dt ? on / 2 : 0, $r = on;
                          break;
                        case "horizontal":
                          Lr = "v", Pr = Dt ? en / 2 : 0, $r = en;
                          break;
                        case "ortho":
                          sr < Xr ? (Lr = "h", Pr = Rr, $r = gr) : (Lr = "v", Pr = or, $r = Dr);
                          break;
                        default:
                          Lr = "d";
                      }
                    Lr === "h" ? (nt = dt ? R(Dt, [Dr, Pr], [Dr, $r]) : (
                      // using x1 instead of x0 allows adjusting the line while drawing
                      [[or, Pr], [or, $r], [Dr, $r], [Dr, Pr]]
                    ), nt.xmin = dt ? Dr : Math.min(or, Dr), nt.xmax = dt ? Dr : Math.max(or, Dr), nt.ymin = Math.min(Pr, $r), nt.ymax = Math.max(Pr, $r), Ht.attr("d", "M" + nt.xmin + "," + (Rr - me) + "h-4v" + 2 * me + "h4ZM" + (nt.xmax - 1) + "," + (Rr - me) + "h4v" + 2 * me + "h-4Z")) : Lr === "v" ? (nt = dt ? R(Dt, [Pr, gr], [$r, gr]) : (
                      // using y1 instead of y0 allows adjusting the line while drawing
                      [[Pr, Rr], [Pr, gr], [$r, gr], [$r, Rr]]
                    ), nt.xmin = Math.min(Pr, $r), nt.xmax = Math.max(Pr, $r), nt.ymin = dt ? gr : Math.min(Rr, gr), nt.ymax = dt ? gr : Math.max(Rr, gr), Ht.attr("d", "M" + (or - me) + "," + nt.ymin + "v-4h" + 2 * me + "v4ZM" + (or - me) + "," + (nt.ymax - 1) + "v4h" + 2 * me + "v-4Z")) : Lr === "d" && (nt = dt ? R(Dt, [or, Rr], [Dr, gr]) : [[or, Rr], [or, gr], [Dr, gr], [Dr, Rr]], nt.xmin = Math.min(or, Dr), nt.xmax = Math.max(or, Dr), nt.ymin = Math.min(Rr, gr), nt.ymax = Math.max(Rr, gr), Ht.attr("d", "M0,0Z"));
                  } else
                    Pe && (Ae.addPt([Dr, gr]), nt = Ae.filtered);
                  if (je.selectionDefs && je.selectionDefs.length ? (ft = et(je.mergedPolygons, nt, Ir), nt.subtract = Ir, ue = De(je.selectionDefs.concat([nt]))) : (ft = [nt], ue = W(nt)), T(Le(ft, Ze), vt, je), tt) {
                    var Qr = Oe(st, !1), vn = Qr.eventData ? Qr.eventData.points.slice() : [];
                    Qr = Oe(st, !1, ue, Gt, je), ue = Qr.selectionTesters, bt = Qr.eventData;
                    var An;
                    Ae ? An = Ae.filtered : An = Mt(ft), B.throttle(Zt, se.SELECTDELAY, function() {
                      Yt = ze(ue, Gt);
                      for (var hn = Yt.slice(), Pn = 0; Pn < vn.length; Pn++) {
                        for (var sa = vn[Pn], Ra = !1, rn = 0; rn < hn.length; rn++)
                          if (hn[rn].curveNumber === sa.curveNumber && hn[rn].pointNumber === sa.pointNumber) {
                            Ra = !0;
                            break;
                          }
                        Ra || hn.push(sa);
                      }
                      hn.length && (bt || (bt = {}), bt.points = hn), $t(bt, An), nr(st, bt);
                    });
                  }
                }, je.clickFn = function(ir, wr) {
                  if (Ht.remove(), st._fullLayout._activeShapeIndex >= 0) {
                    st._fullLayout._deactivateShape(st);
                    return;
                  }
                  if (!rt) {
                    var sr = Nt.clickmode;
                    B.done(Zt).then(function() {
                      if (B.clear(Zt), ir === 2) {
                        for (vt.remove(), mt = 0; mt < Gt.length; mt++)
                          Tt = Gt[mt], Tt._module.selectPoints(Tt, !1);
                        if (Ve(st, Gt), G(je), Wt(st), Gt.length) {
                          var Xr = Gt[0].xaxis, Lr = Gt[0].yaxis;
                          if (Xr && Lr) {
                            for (var Pr = [], $r = st._fullLayout.selections, Jr = 0; Jr < $r.length; Jr++) {
                              var Qr = $r[Jr];
                              Qr && (Qr.xref !== Xr._id || Qr.yref !== Lr._id) && Pr.push(Qr);
                            }
                            Pr.length < $r.length && (st._fullLayout._noEmitSelectedAtStart = !0, l.call("_guiRelayout", st, {
                              selections: Pr
                            }));
                          }
                        }
                      } else
                        sr.indexOf("select") > -1 && Re(wr, st, je.xaxes, je.yaxes, je.subplot, je, vt), sr === "event" && Jt(st, void 0);
                      c.click(st, wr, Fr.id);
                    }).catch(Y.error);
                  }
                }, je.doneFn = function() {
                  Ht.remove(), B.done(Zt).then(function() {
                    B.clear(Zt), !ar && nt && je.selectionDefs && (nt.subtract = Ir, je.selectionDefs.push(nt), je.mergedPolygons.length = 0, [].push.apply(je.mergedPolygons, ft)), (ar || rt) && G(je, ar), je.doneFnCompleted && je.doneFnCompleted(Yt), tt && Jt(st, bt);
                  }).catch(Y.error);
                };
              }
              function Re(qe, Ue, We, je, lt, Se, Pe) {
                var Ye = Ue._hoverdata, Ze = Ue._fullLayout, rt = Ze.clickmode, tt = rt.indexOf("event") > -1, Ft = [], Dt, dt, st, Nt, ar, ur, Or, Fr, br, or;
                if (he(Ye)) {
                  Z(qe, Ue, Se), Dt = ce(Ue, We, je, lt);
                  var Rr = be(Ye, Dt), lr = Rr.pointNumbers.length > 0;
                  if (lr ? Ie(Dt, Rr) : Ge(Dt) && (Or = we(Rr))) {
                    for (Pe && Pe.remove(), or = 0; or < Dt.length; or++)
                      dt = Dt[or], dt._module.selectPoints(dt, !1);
                    Ve(Ue, Dt), G(Se), tt && Wt(Ue);
                  } else {
                    Fr = qe.shiftKey && (Or !== void 0 ? Or : we(Rr)), st = Be(Rr.pointNumber, Rr.searchInfo, Fr);
                    var Tr = Se.selectionDefs.concat([st]);
                    for (Nt = De(Tr), or = 0; or < Dt.length; or++)
                      if (ar = Dt[or]._module.selectPoints(Dt[or], Nt), ur = at(ar, Dt[or]), Ft.length)
                        for (var Gr = 0; Gr < ur.length; Gr++)
                          Ft.push(ur[Gr]);
                      else
                        Ft = ur;
                    if (br = {
                      points: Ft
                    }, Ve(Ue, Dt, br), st && Se && Se.selectionDefs.push(st), Pe) {
                      var Dr = Se.mergedPolygons, gr = D(Se.dragmode);
                      T(Le(Dr, gr), Pe, Se);
                    }
                    tt && Jt(Ue, br);
                  }
                }
              }
              function Be(qe, Ue, We) {
                return {
                  pointNumber: qe,
                  searchInfo: Ue,
                  subtract: !!We
                };
              }
              function xe(qe) {
                return "pointNumber" in qe && "searchInfo" in qe;
              }
              function Me(qe) {
                return {
                  xmin: 0,
                  xmax: 0,
                  ymin: 0,
                  ymax: 0,
                  pts: [],
                  contains: function(Ue, We, je, lt) {
                    var Se = qe.searchInfo.cd[0].trace._expandedIndex, Pe = lt.cd[0].trace._expandedIndex;
                    return Pe === Se && je === qe.pointNumber;
                  },
                  isRect: !1,
                  degenerate: !1,
                  subtract: !!qe.subtract
                };
              }
              function De(qe) {
                if (!qe.length)
                  return;
                for (var Ue = [], We = xe(qe[0]) ? 0 : qe[0][0][0], je = We, lt = xe(qe[0]) ? 0 : qe[0][0][1], Se = lt, Pe = 0; Pe < qe.length; Pe++)
                  if (xe(qe[Pe]))
                    Ue.push(Me(qe[Pe]));
                  else {
                    var Ye = W(qe[Pe]);
                    Ye.subtract = !!qe[Pe].subtract, Ue.push(Ye), We = Math.min(We, Ye.xmin), je = Math.max(je, Ye.xmax), lt = Math.min(lt, Ye.ymin), Se = Math.max(Se, Ye.ymax);
                  }
                function Ze(rt, tt, Ft, Dt) {
                  for (var dt = !1, st = 0; st < Ue.length; st++)
                    Ue[st].contains(rt, tt, Ft, Dt) && (dt = !Ue[st].subtract);
                  return dt;
                }
                return {
                  xmin: We,
                  xmax: je,
                  ymin: lt,
                  ymax: Se,
                  pts: [],
                  contains: Ze,
                  isRect: !1,
                  degenerate: !1
                };
              }
              function Z(qe, Ue, We) {
                var je = Ue._fullLayout, lt = We.plotinfo, Se = We.dragmode, Pe = je._lastSelectedSubplot && je._lastSelectedSubplot === lt.id, Ye = (qe.shiftKey || qe.altKey) && !(x(Se) && D(Se));
                Pe && Ye && lt.selection && lt.selection.selectionDefs && !We.selectionDefs ? (We.selectionDefs = lt.selection.selectionDefs, We.mergedPolygons = lt.selection.mergedPolygons) : (!Ye || !lt.selection) && G(We), Pe || (k(Ue), je._lastSelectedSubplot = lt.id);
              }
              function ee(qe) {
                return qe._fullLayout._activeShapeIndex >= 0;
              }
              function ie(qe) {
                return qe._fullLayout._activeSelectionIndex >= 0;
              }
              function G(qe, Ue) {
                var We = qe.dragmode, je = qe.plotinfo, lt = qe.gd;
                ee(lt) && lt._fullLayout._deactivateShape(lt), ie(lt) && lt._fullLayout._deactivateSelection(lt);
                var Se = lt._fullLayout, Pe = Se._zoomlayer, Ye = x(We), Ze = C(We);
                if (Ye || Ze) {
                  var rt = Pe.selectAll(".select-outline-" + je.id);
                  if (rt && lt._fullLayout._outlining) {
                    var tt;
                    Ye && (tt = I(rt, qe)), tt && l.call("_guiRelayout", lt, {
                      shapes: tt
                    });
                    var Ft;
                    Ze && !ye(qe) && (Ft = O(rt, qe)), Ft && (lt._fullLayout._noEmitSelectedAtStart = !0, l.call("_guiRelayout", lt, {
                      selections: Ft
                    }).then(function() {
                      Ue && $(lt);
                    })), lt._fullLayout._outlining = !1;
                  }
                }
                je.selection = {}, je.selection.selectionDefs = qe.selectionDefs = [], je.selection.mergedPolygons = qe.mergedPolygons = [];
              }
              function H(qe) {
                return qe._id;
              }
              function ce(qe, Ue, We, je) {
                if (!qe.calcdata)
                  return [];
                var lt = [], Se = Ue.map(H), Pe = We.map(H), Ye, Ze, rt;
                for (rt = 0; rt < qe.calcdata.length; rt++)
                  if (Ye = qe.calcdata[rt], Ze = Ye[0].trace, !(Ze.visible !== !0 || !Ze._module || !Ze._module.selectPoints))
                    if (ye({
                      subplot: je
                    }) && (Ze.subplot === je || Ze.geo === je))
                      lt.push(j(Ze._module, Ye, Ue[0], We[0]));
                    else if (Ze.type === "splom") {
                      if (Ze._xaxes[Se[0]] && Ze._yaxes[Pe[0]]) {
                        var tt = j(Ze._module, Ye, Ue[0], We[0]);
                        tt.scene = qe._fullLayout._splomScenes[Ze.uid], lt.push(tt);
                      }
                    } else if (Ze.type === "sankey") {
                      var Ft = j(Ze._module, Ye, Ue[0], We[0]);
                      lt.push(Ft);
                    } else {
                      if (Se.indexOf(Ze.xaxis) === -1 && (!Ze._xA || !Ze._xA.overlaying) || Pe.indexOf(Ze.yaxis) === -1 && (!Ze._yA || !Ze._yA.overlaying))
                        continue;
                      lt.push(j(Ze._module, Ye, X(qe, Ze.xaxis), X(qe, Ze.yaxis)));
                    }
                return lt;
              }
              function j(qe, Ue, We, je) {
                return {
                  _module: qe,
                  cd: Ue,
                  xaxis: We,
                  yaxis: je
                };
              }
              function he(qe) {
                return qe && Array.isArray(qe) && qe[0].hoverOnBox !== !0;
              }
              function be(qe, Ue) {
                var We = qe[0], je = -1, lt = [], Se, Pe;
                for (Pe = 0; Pe < Ue.length; Pe++)
                  if (Se = Ue[Pe], We.fullData._expandedIndex === Se.cd[0].trace._expandedIndex) {
                    if (We.hoverOnBox === !0)
                      break;
                    We.pointNumber !== void 0 ? je = We.pointNumber : We.binNumber !== void 0 && (je = We.binNumber, lt = We.pointNumbers);
                    break;
                  }
                return {
                  pointNumber: je,
                  pointNumbers: lt,
                  searchInfo: Se
                };
              }
              function we(qe) {
                var Ue = qe.searchInfo.cd[0].trace, We = qe.pointNumber, je = qe.pointNumbers, lt = je.length > 0, Se = lt ? je[0] : We;
                return Ue.selectedpoints ? Ue.selectedpoints.indexOf(Se) > -1 : !1;
              }
              function Ie(qe, Ue) {
                var We = [], je, lt, Se, Pe;
                for (Pe = 0; Pe < qe.length; Pe++)
                  je = qe[Pe], je.cd[0].trace.selectedpoints && je.cd[0].trace.selectedpoints.length > 0 && We.push(je);
                if (We.length === 1 && (Se = We[0] === Ue.searchInfo, Se && (lt = Ue.searchInfo.cd[0].trace, lt.selectedpoints.length === Ue.pointNumbers.length))) {
                  for (Pe = 0; Pe < Ue.pointNumbers.length; Pe++)
                    if (lt.selectedpoints.indexOf(Ue.pointNumbers[Pe]) < 0)
                      return !1;
                  return !0;
                }
                return !1;
              }
              function Ge(qe) {
                var Ue = 0, We, je, lt;
                for (lt = 0; lt < qe.length; lt++)
                  if (We = qe[lt], je = We.cd[0].trace, je.selectedpoints && (je.selectedpoints.length > 1 || (Ue += je.selectedpoints.length, Ue > 1)))
                    return !1;
                return Ue === 1;
              }
              function Ve(qe, Ue, We) {
                var je;
                for (je = 0; je < Ue.length; je++) {
                  var lt = Ue[je].cd[0].trace._fullInput, Se = qe._fullLayout._tracePreGUI[lt.uid] || {};
                  Se.selectedpoints === void 0 && (Se.selectedpoints = lt._input.selectedpoints || null);
                }
                var Pe;
                if (We) {
                  var Ye = We.points || [];
                  for (je = 0; je < Ue.length; je++)
                    Pe = Ue[je].cd[0].trace, Pe._input.selectedpoints = Pe._fullInput.selectedpoints = [], Pe._fullInput !== Pe && (Pe.selectedpoints = []);
                  for (var Ze = 0; Ze < Ye.length; Ze++) {
                    var rt = Ye[Ze], tt = rt.data, Ft = rt.fullData, Dt = rt.pointIndex, dt = rt.pointIndices;
                    dt ? ([].push.apply(tt.selectedpoints, dt), Pe._fullInput !== Pe && [].push.apply(Ft.selectedpoints, dt)) : (tt.selectedpoints.push(Dt), Pe._fullInput !== Pe && Ft.selectedpoints.push(Dt));
                  }
                } else
                  for (je = 0; je < Ue.length; je++)
                    Pe = Ue[je].cd[0].trace, delete Pe.selectedpoints, delete Pe._input.selectedpoints, Pe._fullInput !== Pe && delete Pe._fullInput.selectedpoints;
                Je(qe, Ue);
              }
              function Je(qe, Ue) {
                for (var We = !1, je = 0; je < Ue.length; je++) {
                  var lt = Ue[je], Se = lt.cd;
                  l.traceIs(Se[0].trace, "regl") && (We = !0);
                  var Pe = lt._module, Ye = Pe.styleOnSelect || Pe.style;
                  Ye && (Ye(qe, Se, Se[0].node3), Se[0].nodeRangePlot3 && Ye(qe, Se, Se[0].nodeRangePlot3));
                }
                We && (U(qe), te(qe));
              }
              function et(qe, Ue, We) {
                for (var je = We ? a.difference : a.union, lt = je({
                  regions: qe
                }, {
                  regions: [Ue]
                }), Se = lt.regions.reverse(), Pe = 0; Pe < Se.length; Pe++) {
                  var Ye = Se[Pe];
                  Ye.subtract = Ot(Ye, Se.slice(0, Pe));
                }
                return Se;
              }
              function at(qe, Ue) {
                if (Array.isArray(qe))
                  for (var We = Ue.cd, je = Ue.cd[0].trace, lt = 0; lt < qe.length; lt++)
                    qe[lt] = d(qe[lt], je, We);
                return qe;
              }
              function Le(qe, Ue) {
                for (var We = [], je = 0; je < qe.length; je++) {
                  We[je] = [];
                  for (var lt = 0; lt < qe[je].length; lt++) {
                    We[je][lt] = [], We[je][lt][0] = lt ? "L" : "M";
                    for (var Se = 0; Se < qe[je][lt].length; Se++)
                      We[je][lt].push(qe[je][lt][Se]);
                  }
                  Ue || We[je].push([
                    "Z",
                    We[je][0][1],
                    // initial x
                    We[je][0][2]
                    // initial y
                  ]);
                }
                return We;
              }
              function ze(qe, Ue) {
                for (var We = [], je, lt, Se = 0; Se < Ue.length; Se++) {
                  var Pe = Ue[Se];
                  lt = Pe._module.selectPoints(Pe, qe), je = at(lt, Pe), We = We.concat(je);
                }
                return We;
              }
              function Oe(qe, Ue, We, je, lt) {
                var Se = !!je, Pe, Ye, Ze;
                lt && (Pe = lt.plotinfo, Ye = lt.xaxes[0]._id, Ze = lt.yaxes[0]._id);
                var rt = [], tt = [], Ft = kt(qe), Dt = qe._fullLayout;
                if (Pe) {
                  var dt = Dt._zoomlayer, st = Dt.dragmode, Nt = x(st), ar = C(st);
                  if (Nt || ar) {
                    var ur = X(qe, Ye, "x"), Or = X(qe, Ze, "y");
                    if (ur && Or) {
                      var Fr = dt.selectAll(".select-outline-" + Pe.id);
                      if (Fr && qe._fullLayout._outlining && Fr.length) {
                        for (var br = Fr[0][0], or = br.getAttribute("d"), Rr = g(or, qe, Pe), lr = [], Tr = 0; Tr < Rr.length; Tr++) {
                          for (var Gr = Rr[Tr], Dr = [], gr = 0; gr < Gr.length; gr++)
                            Dr.push([Lt(ur, Gr[gr][1]), Lt(Or, Gr[gr][2])]);
                          Dr.xref = Ye, Dr.yref = Ze, Dr.subtract = Ot(Dr, lr), lr.push(Dr);
                        }
                        Ft = Ft.concat(lr);
                      }
                    }
                  }
                }
                var Er = Ye && Ze ? [Ye + Ze] : Dt._subplots.cartesian;
                Xe(qe);
                for (var Cr = {}, zr = 0; zr < Er.length; zr++) {
                  var en = Er[zr], on = en.indexOf("y"), Ir = en.slice(0, on), Ae = en.slice(on), ue = Ye && Ze ? We : void 0;
                  if (ue = wt(Ft, Ir, Ae, ue), ue) {
                    var ft = je;
                    if (!Se) {
                      var nt = X(qe, Ir, "x"), mt = X(qe, Ae, "y");
                      ft = ce(qe, [nt], [mt], en);
                      for (var Tt = 0; Tt < ft.length; Tt++) {
                        var bt = ft[Tt], vt = bt.cd[0], ht = vt.trace;
                        if (bt._module.name === "scattergl" && !vt.t.xpx) {
                          var St = ht.x, It = ht.y, Ht = ht._length;
                          vt.t.xpx = [], vt.t.ypx = [];
                          for (var Et = 0; Et < Ht; Et++)
                            vt.t.xpx[Et] = nt.c2p(St[Et]), vt.t.ypx[Et] = mt.c2p(It[Et]);
                        }
                        bt._module.name === "splom" && (Cr[ht.uid] || (Cr[ht.uid] = !0));
                      }
                    }
                    var Zt = ze(ue, ft);
                    rt = rt.concat(Zt), tt = tt.concat(ft);
                  }
                }
                var Yt = {
                  points: rt
                };
                Ve(qe, tt, Yt);
                var Gt = Dt.clickmode, $t = Gt.indexOf("event") > -1 && Ue;
                if (!Pe && // get called from plot_api & plots
                Ue) {
                  var ir = kt(qe, !0);
                  if (ir.length) {
                    var wr = ir[0].xref, sr = ir[0].yref;
                    if (wr && sr) {
                      var Xr = Mt(ir), Lr = Ct([X(qe, wr, "x"), X(qe, sr, "y")]);
                      Lr(Yt, Xr);
                    }
                  }
                  qe._fullLayout._noEmitSelectedAtStart ? qe._fullLayout._noEmitSelectedAtStart = !1 : $t && Jt(qe, Yt), Dt._reselect = !1;
                }
                if (!Pe && // get called from plot_api & plots
                Dt._deselect) {
                  var Pr = Dt._deselect;
                  Ye = Pr.xref, Ze = Pr.yref, it(Ye, Ze, tt) || ut(qe, Ye, Ze, je), $t && (Yt.points.length ? Jt(qe, Yt) : Wt(qe)), Dt._deselect = !1;
                }
                return {
                  eventData: Yt,
                  selectionTesters: We
                };
              }
              function Xe(qe) {
                var Ue = qe.calcdata;
                if (Ue)
                  for (var We = 0; We < Ue.length; We++) {
                    var je = Ue[We][0], lt = je.trace, Se = qe._fullLayout._splomScenes;
                    if (Se) {
                      var Pe = Se[lt.uid];
                      Pe && (Pe.selectBatch = []);
                    }
                  }
              }
              function it(qe, Ue, We) {
                for (var je = 0; je < We.length; je++) {
                  var lt = We[je];
                  if (lt.xaxis && lt.xaxis._id === qe && lt.yaxis && lt.yaxis._id === Ue)
                    return !0;
                }
                return !1;
              }
              function ut(qe, Ue, We, je) {
                je = ce(qe, [X(qe, Ue, "x")], [X(qe, We, "y")], Ue + We);
                for (var lt = 0; lt < je.length; lt++) {
                  var Se = je[lt];
                  Se._module.selectPoints(Se, !1);
                }
                Ve(qe, je);
              }
              function wt(qe, Ue, We, je) {
                for (var lt, Se = 0; Se < qe.length; Se++) {
                  var Pe = qe[Se];
                  if (!(Ue !== Pe.xref || We !== Pe.yref))
                    if (lt) {
                      var Ye = !!Pe.subtract;
                      lt = et(lt, Pe, Ye), je = De(lt);
                    } else
                      lt = [Pe], je = W(Pe);
                }
                return je;
              }
              function kt(qe, Ue) {
                for (var We = [], je = qe._fullLayout, lt = je.selections, Se = lt.length, Pe = 0; Pe < Se; Pe++)
                  if (!(Ue && Pe !== je._activeSelectionIndex)) {
                    var Ye = lt[Pe];
                    if (Ye) {
                      var Ze = Ye.xref, rt = Ye.yref, tt = X(qe, Ze, "x"), Ft = X(qe, rt, "y"), Dt, dt, st, Nt, ar;
                      if (Ye.type === "rect") {
                        ar = [];
                        var ur = Lt(tt, Ye.x0), Or = Lt(tt, Ye.x1), Fr = Lt(Ft, Ye.y0), br = Lt(Ft, Ye.y1);
                        ar = [[ur, Fr], [ur, br], [Or, br], [Or, Fr]], Dt = Math.min(ur, Or), dt = Math.max(ur, Or), st = Math.min(Fr, br), Nt = Math.max(Fr, br), ar.xmin = Dt, ar.xmax = dt, ar.ymin = st, ar.ymax = Nt, ar.xref = Ze, ar.yref = rt, ar.subtract = !1, ar.isRect = !0, We.push(ar);
                      } else if (Ye.type === "path")
                        for (var or = Ye.path.split("Z"), Rr = [], lr = 0; lr < or.length; lr++) {
                          var Tr = or[lr];
                          if (Tr) {
                            Tr += "Z";
                            var Gr = w.extractPathCoords(Tr, S.paramIsX, "raw"), Dr = w.extractPathCoords(Tr, S.paramIsY, "raw");
                            Dt = 1 / 0, dt = -1 / 0, st = 1 / 0, Nt = -1 / 0, ar = [];
                            for (var gr = 0; gr < Gr.length; gr++) {
                              var Er = Lt(tt, Gr[gr]), Cr = Lt(Ft, Dr[gr]);
                              ar.push([Er, Cr]), Dt = Math.min(Er, Dt), dt = Math.max(Er, dt), st = Math.min(Cr, st), Nt = Math.max(Cr, Nt);
                            }
                            ar.xmin = Dt, ar.xmax = dt, ar.ymin = st, ar.ymax = Nt, ar.xref = Ze, ar.yref = rt, ar.subtract = Ot(ar, Rr), Rr.push(ar), We.push(ar);
                          }
                        }
                    }
                  }
                return We;
              }
              function Ot(qe, Ue) {
                for (var We = !1, je = 0; je < Ue.length; je++)
                  for (var lt = Ue[je], Se = 0; Se < qe.length; Se++)
                    if (p(qe[Se], lt)) {
                      We = !We;
                      break;
                    }
                return We;
              }
              function Lt(qe, Ue) {
                return qe.type === "date" && (Ue = Ue.replace("_", " ")), qe.type === "log" ? qe.c2p(Ue) : qe.r2p(Ue, null, qe.calendar);
              }
              function Mt(qe) {
                for (var Ue = qe.length, We = [], je = 0; je < Ue; je++) {
                  var lt = qe[je];
                  We = We.concat(lt), We = We.concat([lt[0]]);
                }
                return Ut(We);
              }
              function Ut(qe) {
                return qe.isRect = qe.length === 5 && qe[0][0] === qe[4][0] && qe[0][1] === qe[4][1] && qe[0][0] === qe[1][0] && qe[2][0] === qe[3][0] && qe[0][1] === qe[3][1] && qe[1][1] === qe[2][1] || qe[0][1] === qe[1][1] && qe[2][1] === qe[3][1] && qe[0][0] === qe[3][0] && qe[1][0] === qe[2][0], qe.isRect && (qe.xmin = Math.min(qe[0][0], qe[2][0]), qe.xmax = Math.max(qe[0][0], qe[2][0]), qe.ymin = Math.min(qe[0][1], qe[2][1]), qe.ymax = Math.max(qe[0][1], qe[2][1])), qe;
              }
              function Ct(qe) {
                return function(Ue, We) {
                  for (var je, lt, Se = 0; Se < qe.length; Se++) {
                    var Pe = qe[Se], Ye = Pe._id, Ze = Ye.charAt(0);
                    if (We.isRect) {
                      je || (je = {});
                      var rt = We[Ze + "min"], tt = We[Ze + "max"];
                      rt !== void 0 && tt !== void 0 && (je[Ye] = [oe(Pe, rt), oe(Pe, tt)].sort(ne));
                    } else
                      lt || (lt = {}), lt[Ye] = We.map(ve(Pe));
                  }
                  je && (Ue.range = je), lt && (Ue.lassoPoints = lt);
                };
              }
              function jt(qe) {
                var Ue = qe.plotinfo;
                return Ue.fillRangeItems || // allow subplots (i.e. geo, mapbox, sankey) to override fillRangeItems routine
                Ct(qe.xaxes.concat(qe.yaxes));
              }
              function nr(qe, Ue) {
                qe.emit("plotly_selecting", Ue);
              }
              function Jt(qe, Ue) {
                Ue && (Ue.selections = (qe.layout || {}).selections || []), qe.emit("plotly_selected", Ue);
              }
              function Wt(qe) {
                qe.emit("plotly_deselect", null);
              }
              M.exports = {
                reselect: Oe,
                prepSelect: Ce,
                clearOutline: k,
                clearSelectionsCache: G,
                selectOnClick: Re
              };
            }
          ),
          /***/
          6056: (
            /***/
            function(M, L, r) {
              var a = r(3916), p = r(5376), l = r(2904).line, f = r(8192).u, u = r(2880).extendFlat, c = r(1780).templatedArray;
              r(6208);
              var d = r(5464), h = r(1776).ye, i = r(7728);
              M.exports = c("shape", {
                visible: u({}, d.visible, {
                  editType: "calc+arraydraw"
                }),
                showlegend: {
                  valType: "boolean",
                  dflt: !1,
                  editType: "calc+arraydraw"
                },
                legend: u({}, d.legend, {
                  editType: "calc+arraydraw"
                }),
                legendgroup: u({}, d.legendgroup, {
                  editType: "calc+arraydraw"
                }),
                legendgrouptitle: {
                  text: u({}, d.legendgrouptitle.text, {
                    editType: "calc+arraydraw"
                  }),
                  font: p({
                    editType: "calc+arraydraw"
                  }),
                  editType: "calc+arraydraw"
                },
                legendrank: u({}, d.legendrank, {
                  editType: "calc+arraydraw"
                }),
                legendwidth: u({}, d.legendwidth, {
                  editType: "calc+arraydraw"
                }),
                type: {
                  valType: "enumerated",
                  values: ["circle", "rect", "path", "line"],
                  editType: "calc+arraydraw"
                },
                layer: {
                  valType: "enumerated",
                  values: ["below", "above", "between"],
                  dflt: "above",
                  editType: "arraydraw"
                },
                xref: u({}, a.xref, {}),
                xsizemode: {
                  valType: "enumerated",
                  values: ["scaled", "pixel"],
                  dflt: "scaled",
                  editType: "calc+arraydraw"
                },
                xanchor: {
                  valType: "any",
                  editType: "calc+arraydraw"
                },
                x0: {
                  valType: "any",
                  editType: "calc+arraydraw"
                },
                x1: {
                  valType: "any",
                  editType: "calc+arraydraw"
                },
                yref: u({}, a.yref, {}),
                ysizemode: {
                  valType: "enumerated",
                  values: ["scaled", "pixel"],
                  dflt: "scaled",
                  editType: "calc+arraydraw"
                },
                yanchor: {
                  valType: "any",
                  editType: "calc+arraydraw"
                },
                y0: {
                  valType: "any",
                  editType: "calc+arraydraw"
                },
                y1: {
                  valType: "any",
                  editType: "calc+arraydraw"
                },
                path: {
                  valType: "string",
                  editType: "calc+arraydraw"
                },
                opacity: {
                  valType: "number",
                  min: 0,
                  max: 1,
                  dflt: 1,
                  editType: "arraydraw"
                },
                line: {
                  color: u({}, l.color, {
                    editType: "arraydraw"
                  }),
                  width: u({}, l.width, {
                    editType: "calc+arraydraw"
                  }),
                  dash: u({}, f, {
                    editType: "arraydraw"
                  }),
                  editType: "calc+arraydraw"
                },
                fillcolor: {
                  valType: "color",
                  dflt: "rgba(0,0,0,0)",
                  editType: "arraydraw"
                },
                fillrule: {
                  valType: "enumerated",
                  values: ["evenodd", "nonzero"],
                  dflt: "evenodd",
                  editType: "arraydraw"
                },
                editable: {
                  valType: "boolean",
                  dflt: !1,
                  editType: "calc+arraydraw"
                },
                label: {
                  text: {
                    valType: "string",
                    dflt: "",
                    editType: "arraydraw"
                  },
                  texttemplate: h({}, {
                    keys: Object.keys(i)
                  }),
                  font: p({
                    editType: "calc+arraydraw",
                    colorEditType: "arraydraw"
                  }),
                  textposition: {
                    valType: "enumerated",
                    values: ["top left", "top center", "top right", "middle left", "middle center", "middle right", "bottom left", "bottom center", "bottom right", "start", "middle", "end"],
                    editType: "arraydraw"
                  },
                  textangle: {
                    valType: "angle",
                    dflt: "auto",
                    editType: "calc+arraydraw"
                  },
                  xanchor: {
                    valType: "enumerated",
                    values: ["auto", "left", "center", "right"],
                    dflt: "auto",
                    editType: "calc+arraydraw"
                  },
                  yanchor: {
                    valType: "enumerated",
                    values: ["top", "middle", "bottom"],
                    editType: "calc+arraydraw"
                  },
                  padding: {
                    valType: "number",
                    dflt: 3,
                    min: 0,
                    editType: "arraydraw"
                  },
                  editType: "arraydraw"
                },
                editType: "arraydraw"
              });
            }
          ),
          /***/
          6084: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(4460), l = r(3068), f = r(5152);
              M.exports = function(b) {
                var x = b._fullLayout, D = a.filterVisible(x.shapes);
                if (!(!D.length || !b._fullData.length))
                  for (var C = 0; C < D.length; C++) {
                    var w = D[C];
                    w._extremes = {};
                    var S, T, k = p.getRefType(w.xref), A = p.getRefType(w.yref);
                    if (w.xref !== "paper" && k !== "domain") {
                      var R = w.xsizemode === "pixel" ? w.xanchor : w.x0, g = w.xsizemode === "pixel" ? w.xanchor : w.x1;
                      S = p.getFromId(b, w.xref), T = h(S, R, g, w.path, l.paramIsX), T && (w._extremes[S._id] = p.findExtremes(S, T, u(w)));
                    }
                    if (w.yref !== "paper" && A !== "domain") {
                      var I = w.ysizemode === "pixel" ? w.yanchor : w.y0, O = w.ysizemode === "pixel" ? w.yanchor : w.y1;
                      S = p.getFromId(b, w.yref), T = h(S, I, O, w.path, l.paramIsY), T && (w._extremes[S._id] = p.findExtremes(S, T, c(w)));
                    }
                  }
              };
              function u(i) {
                return d(i.line.width, i.xsizemode, i.x0, i.x1, i.path, !1);
              }
              function c(i) {
                return d(i.line.width, i.ysizemode, i.y0, i.y1, i.path, !0);
              }
              function d(i, b, x, D, C, w) {
                var S = i / 2, T = w;
                if (b === "pixel") {
                  var k = C ? f.extractPathCoords(C, w ? l.paramIsY : l.paramIsX) : [x, D], A = a.aggNums(Math.max, null, k), R = a.aggNums(Math.min, null, k), g = R < 0 ? Math.abs(R) + S : S, I = A > 0 ? A + S : S;
                  return {
                    ppad: S,
                    ppadplus: T ? g : I,
                    ppadminus: T ? I : g
                  };
                } else
                  return {
                    ppad: S
                  };
              }
              function h(i, b, x, D, C) {
                var w = i.type === "category" || i.type === "multicategory" ? i.r2c : i.d2c;
                if (b !== void 0)
                  return [w(b), w(x)];
                if (D) {
                  var S = 1 / 0, T = -1 / 0, k = D.match(l.segmentRE), A, R, g, I, O;
                  for (i.type === "date" && (w = f.decodeDate(w)), A = 0; A < k.length; A++)
                    R = k[A], g = C[R.charAt(0)].drawn, g !== void 0 && (I = k[A].substr(1).match(l.paramRE), !(!I || I.length < g) && (O = w(I[g]), O < S && (S = O), O > T && (T = O)));
                  if (T >= S)
                    return [S, T];
                }
              }
            }
          ),
          /***/
          3068: (
            /***/
            function(M) {
              M.exports = {
                segmentRE: /[MLHVQCTSZ][^MLHVQCTSZ]*/g,
                paramRE: /[^\s,]+/g,
                // which numbers in each path segment are x (or y) values
                // drawn is which param is a drawn point, as opposed to a
                // control point (which doesn't count toward autorange.
                // TODO: this means curved paths could extend beyond the
                // autorange bounds. This is a bit tricky to get right
                // unless we revert to bounding boxes, but perhaps there's
                // a calculation we could do...)
                paramIsX: {
                  M: {
                    0: !0,
                    drawn: 0
                  },
                  L: {
                    0: !0,
                    drawn: 0
                  },
                  H: {
                    0: !0,
                    drawn: 0
                  },
                  V: {},
                  Q: {
                    0: !0,
                    2: !0,
                    drawn: 2
                  },
                  C: {
                    0: !0,
                    2: !0,
                    4: !0,
                    drawn: 4
                  },
                  T: {
                    0: !0,
                    drawn: 0
                  },
                  S: {
                    0: !0,
                    2: !0,
                    drawn: 2
                  },
                  // A: {0: true, 5: true},
                  Z: {}
                },
                paramIsY: {
                  M: {
                    1: !0,
                    drawn: 1
                  },
                  L: {
                    1: !0,
                    drawn: 1
                  },
                  H: {},
                  V: {
                    0: !0,
                    drawn: 0
                  },
                  Q: {
                    1: !0,
                    3: !0,
                    drawn: 3
                  },
                  C: {
                    1: !0,
                    3: !0,
                    5: !0,
                    drawn: 5
                  },
                  T: {
                    1: !0,
                    drawn: 1
                  },
                  S: {
                    1: !0,
                    3: !0,
                    drawn: 5
                  },
                  // A: {1: true, 6: true},
                  Z: {}
                },
                numParams: {
                  M: 2,
                  L: 2,
                  H: 1,
                  V: 1,
                  Q: 4,
                  C: 6,
                  T: 2,
                  S: 4,
                  // A: 7,
                  Z: 0
                }
              };
            }
          ),
          /***/
          3712: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(4460), l = r(1272), f = r(6056), u = r(5152);
              M.exports = function(i, b) {
                l(i, b, {
                  name: "shapes",
                  handleItemDefaults: d
                });
              };
              function c(h, i) {
                return h ? "bottom" : i.indexOf("top") !== -1 ? "top" : i.indexOf("bottom") !== -1 ? "bottom" : "middle";
              }
              function d(h, i, b) {
                function x(xe, Me) {
                  return a.coerce(h, i, f, xe, Me);
                }
                i._isShape = !0;
                var D = x("visible");
                if (D) {
                  var C = x("showlegend");
                  C && (x("legend"), x("legendwidth"), x("legendgroup"), x("legendgrouptitle.text"), a.coerceFont(x, "legendgrouptitle.font"), x("legendrank"));
                  var w = x("path"), S = w ? "path" : "rect", T = x("type", S), k = T !== "path";
                  k && delete i.path, x("editable"), x("layer"), x("opacity"), x("fillcolor"), x("fillrule");
                  var A = x("line.width");
                  A && (x("line.color"), x("line.dash"));
                  for (var R = x("xsizemode"), g = x("ysizemode"), I = ["x", "y"], O = 0; O < 2; O++) {
                    var $ = I[O], Y = $ + "anchor", ne = $ === "x" ? R : g, q = {
                      _fullLayout: b
                    }, B, X, U, te = p.coerceRef(h, i, q, $, void 0, "paper"), se = p.getRefType(te);
                    if (se === "range" ? (B = p.getFromId(q, te), B._shapeIndices.push(i._index), U = u.rangeToShapePosition(B), X = u.shapePositionToRange(B)) : X = U = a.identity, k) {
                      var me = 0.25, J = 0.75, W = $ + "0", ae = $ + "1", oe = h[W], ve = h[ae];
                      h[W] = X(h[W], !0), h[ae] = X(h[ae], !0), ne === "pixel" ? (x(W, 0), x(ae, 10)) : (p.coercePosition(i, q, x, te, W, me), p.coercePosition(i, q, x, te, ae, J)), i[W] = U(i[W]), i[ae] = U(i[ae]), h[W] = oe, h[ae] = ve;
                    }
                    if (ne === "pixel") {
                      var fe = h[Y];
                      h[Y] = X(h[Y], !0), p.coercePosition(i, q, x, te, Y, 0.25), i[Y] = U(i[Y]), h[Y] = fe;
                    }
                  }
                  k && a.noneOrAll(h, i, ["x0", "x1", "y0", "y1"]);
                  var ye = T === "line", Ce, Re;
                  if (k && (Ce = x("label.texttemplate")), Ce || (Re = x("label.text")), Re || Ce) {
                    x("label.textangle");
                    var Be = x("label.textposition", ye ? "middle" : "middle center");
                    x("label.xanchor"), x("label.yanchor", c(ye, Be)), x("label.padding"), a.coerceFont(x, "label.font", b.font);
                  }
                }
              }
            }
          ),
          /***/
          728: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(4460), l = r(2736), f = r(3616), u = r(9856).readPaths, c = r(5152), d = c.getPathString, h = r(7728), i = r(4284).FROM_TL;
              M.exports = function(C, w, S, T) {
                if (T.selectAll(".shape-label").remove(), !!(S.label.text || S.label.texttemplate)) {
                  var k;
                  if (S.label.texttemplate) {
                    var A = {};
                    if (S.type !== "path") {
                      var R = p.getFromId(C, S.xref), g = p.getFromId(C, S.yref);
                      for (var I in h) {
                        var O = h[I](S, R, g);
                        O !== void 0 && (A[I] = O);
                      }
                    }
                    k = a.texttemplateStringForShapes(S.label.texttemplate, {}, C._fullLayout._d3locale, A);
                  } else
                    k = S.label.text;
                  var $ = {
                    "data-index": w
                  }, Y = S.label.font, ne = {
                    "data-notex": 1
                  }, q = T.append("g").attr($).classed("shape-label", !0), B = q.append("text").attr(ne).classed("shape-label-text", !0).text(k), X, U, te, se;
                  if (S.path) {
                    var me = d(C, S), J = u(me, C);
                    X = 1 / 0, te = 1 / 0, U = -1 / 0, se = -1 / 0;
                    for (var W = 0; W < J.length; W++)
                      for (var ae = 0; ae < J[W].length; ae++)
                        for (var oe = J[W][ae], ve = 1; ve < oe.length; ve += 2) {
                          var fe = oe[ve], ye = oe[ve + 1];
                          X = Math.min(X, fe), U = Math.max(U, fe), te = Math.min(te, ye), se = Math.max(se, ye);
                        }
                  } else {
                    var Ce = p.getFromId(C, S.xref), Re = p.getRefType(S.xref), Be = p.getFromId(C, S.yref), xe = p.getRefType(S.yref), Me = c.getDataToPixel(C, Ce, !1, Re), De = c.getDataToPixel(C, Be, !0, xe);
                    X = Me(S.x0), U = Me(S.x1), te = De(S.y0), se = De(S.y1);
                  }
                  var Z = S.label.textangle;
                  Z === "auto" && (S.type === "line" ? Z = b(X, te, U, se) : Z = 0), B.call(function(j) {
                    return j.call(f.font, Y).attr({}), l.convertToTspans(j, C), j;
                  });
                  var ee = f.bBox(B.node()), ie = x(X, te, U, se, S, Z, ee), G = ie.textx, H = ie.texty, ce = ie.xanchor;
                  B.attr({
                    "text-anchor": {
                      left: "start",
                      center: "middle",
                      right: "end"
                    }[ce],
                    y: H,
                    x: G,
                    transform: "rotate(" + Z + "," + G + "," + H + ")"
                  }).call(l.positionText, G, H);
                }
              };
              function b(D, C, w, S) {
                var T, k;
                return k = Math.abs(w - D), w >= D ? T = C - S : T = S - C, -180 / Math.PI * Math.atan2(T, k);
              }
              function x(D, C, w, S, T, k, A) {
                var R = T.label.textposition, g = T.label.textangle, I = T.label.padding, O = T.type, $ = Math.PI / 180 * k, Y = Math.sin($), ne = Math.cos($), q = T.label.xanchor, B = T.label.yanchor, X, U, te, se;
                if (O === "line") {
                  R === "start" ? (X = D, U = C) : R === "end" ? (X = w, U = S) : (X = (D + w) / 2, U = (C + S) / 2), q === "auto" && (R === "start" ? g === "auto" ? w > D ? q = "left" : w < D ? q = "right" : q = "center" : w > D ? q = "right" : w < D ? q = "left" : q = "center" : R === "end" ? g === "auto" ? w > D ? q = "right" : w < D ? q = "left" : q = "center" : w > D ? q = "left" : w < D ? q = "right" : q = "center" : q = "center");
                  var me = {
                    left: 1,
                    center: 0,
                    right: -1
                  }, J = {
                    bottom: -1,
                    middle: 0,
                    top: 1
                  };
                  if (g === "auto") {
                    var W = J[B];
                    te = -I * Y * W, se = I * ne * W;
                  } else {
                    var ae = me[q], oe = J[B];
                    te = I * ae, se = I * oe;
                  }
                  X = X + te, U = U + se;
                } else
                  te = I + 3, R.indexOf("right") !== -1 ? (X = Math.max(D, w) - te, q === "auto" && (q = "right")) : R.indexOf("left") !== -1 ? (X = Math.min(D, w) + te, q === "auto" && (q = "left")) : (X = (D + w) / 2, q === "auto" && (q = "center")), R.indexOf("top") !== -1 ? U = Math.min(C, S) : R.indexOf("bottom") !== -1 ? U = Math.max(C, S) : U = (C + S) / 2, se = I, B === "bottom" ? U = U - se : B === "top" && (U = U + se);
                var ve = i[B], fe = T.label.font.size, ye = A.height, Ce = (ye * ve - fe) * Y, Re = -(ye * ve - fe) * ne;
                return {
                  textx: X + Ce,
                  texty: U + Re,
                  xanchor: q
                };
              }
            }
          ),
          /***/
          5496: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = a.strTranslate, l = r(6476), f = r(2760), u = f.drawMode, c = f.selectMode, d = r(4040), h = r(6308), i = r(7e3), b = i.i000, x = i.i090, D = i.i180, C = i.i270, w = r(1936), S = w.clearOutlineControllers, T = r(9856), k = T.pointsOnRectangle, A = T.pointsOnEllipse, R = T.writePaths, g = r(3940).newShapes, I = r(3940).createShapeObj, O = r(5968), $ = r(728);
              M.exports = function B(X, U, te, se) {
                se || (se = 0);
                var me = te.gd;
                function J() {
                  B(X, U, te, se++), (A(X[0]) || te.hasText) && W({
                    redrawing: !0
                  });
                }
                function W(et) {
                  var at = {};
                  te.isActiveShape !== void 0 && (te.isActiveShape = !1, at = g(U, te)), te.isActiveSelection !== void 0 && (te.isActiveSelection = !1, at = O(U, te), me._fullLayout._reselect = !0), Object.keys(at).length && d.call((et || {}).redrawing ? "relayout" : "_guiRelayout", me, at);
                }
                var ae = me._fullLayout, oe = ae._zoomlayer, ve = te.dragmode, fe = u(ve), ye = c(ve);
                (fe || ye) && (me._fullLayout._outlining = !0), S(me), U.attr("d", R(X));
                var Ce, Re, Be, xe, Me;
                if (!se && (te.isActiveShape || te.isActiveSelection)) {
                  Me = Y([], X);
                  var De = oe.append("g").attr("class", "outline-controllers");
                  he(De), Je();
                }
                if (fe && te.hasText) {
                  var Z = oe.select(".label-temp"), ee = I(U, te, te.dragmode);
                  $(me, "label-temp", ee, Z);
                }
                function ie(et) {
                  Be = +et.srcElement.getAttribute("data-i"), xe = +et.srcElement.getAttribute("data-j"), Ce[Be][xe].moveFn = G;
                }
                function G(et, at) {
                  if (X.length) {
                    var Le = Me[Be][xe][1], ze = Me[Be][xe][2], Oe = X[Be], Xe = Oe.length;
                    if (k(Oe)) {
                      var it = et, ut = at;
                      if (te.isActiveSelection) {
                        var wt = ne(Oe, xe);
                        wt[1] === Oe[xe][1] ? ut = 0 : it = 0;
                      }
                      for (var kt = 0; kt < Xe; kt++)
                        if (kt !== xe) {
                          var Ot = Oe[kt];
                          Ot[1] === Oe[xe][1] && (Ot[1] = Le + it), Ot[2] === Oe[xe][2] && (Ot[2] = ze + ut);
                        }
                      if (Oe[xe][1] = Le + it, Oe[xe][2] = ze + ut, !k(Oe))
                        for (var Lt = 0; Lt < Xe; Lt++)
                          for (var Mt = 0; Mt < Oe[Lt].length; Mt++)
                            Oe[Lt][Mt] = Me[Be][Lt][Mt];
                    } else
                      Oe[xe][1] = Le + et, Oe[xe][2] = ze + at;
                    J();
                  }
                }
                function H() {
                  W();
                }
                function ce() {
                  if (X.length && X[Be] && X[Be].length) {
                    for (var et = [], at = 0; at < X[Be].length; at++)
                      at !== xe && et.push(X[Be][at]);
                    et.length > 1 && !(et.length === 2 && et[1][0] === "Z") && (xe === 0 && (et[0][0] = "M"), X[Be] = et, J(), W());
                  }
                }
                function j(et, at) {
                  if (et === 2) {
                    Be = +at.srcElement.getAttribute("data-i"), xe = +at.srcElement.getAttribute("data-j");
                    var Le = X[Be];
                    !k(Le) && !A(Le) && ce();
                  }
                }
                function he(et) {
                  Ce = [];
                  for (var at = 0; at < X.length; at++) {
                    var Le = X[at], ze = k(Le), Oe = !ze && A(Le);
                    Ce[at] = [];
                    for (var Xe = Le.length, it = 0; it < Xe; it++)
                      if (Le[it][0] !== "Z" && !(Oe && it !== b && it !== x && it !== D && it !== C)) {
                        var ut = ze && te.isActiveSelection, wt;
                        ut && (wt = ne(Le, it));
                        var kt = Le[it][1], Ot = Le[it][2], Lt = et.append(ut ? "rect" : "circle").attr("data-i", at).attr("data-j", it).style({
                          fill: h.background,
                          stroke: h.defaultLine,
                          "stroke-width": 1,
                          "shape-rendering": "crispEdges"
                        });
                        if (ut) {
                          var Mt = wt[1] - kt, Ut = wt[2] - Ot, Ct = Ut ? 5 : Math.max(Math.min(25, Math.abs(Mt) - 5), 5), jt = Mt ? 5 : Math.max(Math.min(25, Math.abs(Ut) - 5), 5);
                          Lt.classed(Ut ? "cursor-ew-resize" : "cursor-ns-resize", !0).attr("width", Ct).attr("height", jt).attr("x", kt - Ct / 2).attr("y", Ot - jt / 2).attr("transform", p(Mt / 2, Ut / 2));
                        } else
                          Lt.classed("cursor-grab", !0).attr("r", 5).attr("cx", kt).attr("cy", Ot);
                        Ce[at][it] = {
                          element: Lt.node(),
                          gd: me,
                          prepFn: ie,
                          doneFn: H,
                          clickFn: j
                        }, l.init(Ce[at][it]);
                      }
                  }
                }
                function be(et, at) {
                  if (X.length)
                    for (var Le = 0; Le < X.length; Le++)
                      for (var ze = 0; ze < X[Le].length; ze++)
                        for (var Oe = 0; Oe + 2 < X[Le][ze].length; Oe += 2)
                          X[Le][ze][Oe + 1] = Me[Le][ze][Oe + 1] + et, X[Le][ze][Oe + 2] = Me[Le][ze][Oe + 2] + at;
                }
                function we(et, at) {
                  be(et, at), J();
                }
                function Ie(et) {
                  Be = +et.srcElement.getAttribute("data-i"), Be || (Be = 0), Re[Be].moveFn = we;
                }
                function Ge() {
                  W();
                }
                function Ve(et) {
                  et === 2 && q(me);
                }
                function Je() {
                  if (Re = [], !!X.length) {
                    var et = 0;
                    Re[et] = {
                      element: U[0][0],
                      gd: me,
                      prepFn: Ie,
                      doneFn: Ge,
                      clickFn: Ve
                    }, l.init(Re[et]);
                  }
                }
              };
              function Y(B, X) {
                for (var U = 0; U < X.length; U++) {
                  var te = X[U];
                  B[U] = [];
                  for (var se = 0; se < te.length; se++) {
                    B[U][se] = [];
                    for (var me = 0; me < te[se].length; me++)
                      B[U][se][me] = te[se][me];
                  }
                }
                return B;
              }
              function ne(B, X) {
                var U = B[X][1], te = B[X][2], se = B.length, me, J, W;
                return me = (X + 1) % se, J = B[me][1], W = B[me][2], J === U && W === te && (me = (X + 2) % se, J = B[me][1], W = B[me][2]), [me, J, W];
              }
              function q(B) {
                if (c(B._fullLayout.dragmode)) {
                  S(B);
                  var X = B._fullLayout._activeSelectionIndex, U = (B.layout || {}).selections || [];
                  if (X < U.length) {
                    for (var te = [], se = 0; se < U.length; se++)
                      se !== X && te.push(U[se]);
                    delete B._fullLayout._activeSelectionIndex;
                    var me = B._fullLayout.selections[X];
                    B._fullLayout._deselect = {
                      xref: me.xref,
                      yref: me.yref
                    }, d.call("_guiRelayout", B, {
                      selections: te
                    });
                  }
                }
              }
            }
          ),
          /***/
          4016: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(4040), l = r(3400), f = r(4460), u = r(9856).readPaths, c = r(5496), d = r(728), h = r(1936).clearOutlineControllers, i = r(6308), b = r(3616), x = r(1780).arrayEditor, D = r(6476), C = r(3972), w = r(3068), S = r(5152), T = S.getPathString;
              M.exports = {
                draw: k,
                drawOne: g,
                eraseActiveShape: q,
                drawLabel: d
              };
              function k(B) {
                var X = B._fullLayout;
                X._shapeUpperLayer.selectAll("path").remove(), X._shapeLowerLayer.selectAll("path").remove(), X._shapeUpperLayer.selectAll("text").remove(), X._shapeLowerLayer.selectAll("text").remove();
                for (var U in X._plots) {
                  var te = X._plots[U].shapelayer;
                  te && (te.selectAll("path").remove(), te.selectAll("text").remove());
                }
                for (var se = 0; se < X.shapes.length; se++)
                  X.shapes[se].visible === !0 && g(B, se);
              }
              function A(B) {
                return !!B._fullLayout._outlining;
              }
              function R(B) {
                return !B._context.edits.shapePosition;
              }
              function g(B, X) {
                B._fullLayout._paperdiv.selectAll('.shapelayer [data-index="' + X + '"]').remove();
                var U = S.makeShapesOptionsAndPlotinfo(B, X), te = U.options, se = U.plotinfo;
                if (!te._input || te.visible !== !0)
                  return;
                if (te.layer === "above")
                  J(B._fullLayout._shapeUpperLayer);
                else if (te.xref === "paper" || te.yref === "paper")
                  J(B._fullLayout._shapeLowerLayer);
                else if (te.layer === "between")
                  J(se.shapelayerBetween);
                else if (se._hadPlotinfo) {
                  var me = se.mainplotinfo || se;
                  J(me.shapelayer);
                } else
                  J(B._fullLayout._shapeLowerLayer);
                function J(W) {
                  var ae = T(B, te), oe = {
                    "data-index": X,
                    "fill-rule": te.fillrule,
                    d: ae
                  }, ve = te.opacity, fe = te.fillcolor, ye = te.line.width ? te.line.color : "rgba(0,0,0,0)", Ce = te.line.width, Re = te.line.dash;
                  !Ce && te.editable === !0 && (Ce = 5, Re = "solid");
                  var Be = ae[ae.length - 1] !== "Z", xe = R(B) && te.editable && B._fullLayout._activeShapeIndex === X;
                  xe && (fe = Be ? "rgba(0,0,0,0)" : B._fullLayout.activeshape.fillcolor, ve = B._fullLayout.activeshape.opacity);
                  var Me = W.append("g").classed("shape-group", !0).attr({
                    "data-index": X
                  }), De = Me.append("path").attr(oe).style("opacity", ve).call(i.stroke, ye).call(i.fill, fe).call(b.dashLine, Re, Ce);
                  I(Me, B, te), d(B, X, te, Me);
                  var Z;
                  if ((xe || B._context.edits.shapePosition) && (Z = x(B.layout, "shapes", te)), xe) {
                    De.style({
                      cursor: "move"
                    });
                    var ee = {
                      element: De.node(),
                      plotinfo: se,
                      gd: B,
                      editHelpers: Z,
                      hasText: te.label.text || te.label.texttemplate,
                      isActiveShape: !0
                      // i.e. to enable controllers
                    }, ie = u(ae, B);
                    c(ie, De, ee);
                  } else
                    B._context.edits.shapePosition ? O(B, De, te, X, W, Z) : te.editable === !0 && De.style("pointer-events", Be || i.opacity(fe) * ve <= 0.5 ? "stroke" : "all");
                  De.node().addEventListener("click", function() {
                    return Y(B, De);
                  });
                }
              }
              function I(B, X, U) {
                var te = (U.xref + U.yref).replace(/paper/g, "").replace(/[xyz][1-9]* *domain/g, "");
                b.setClipUrl(B, te ? "clip" + X._fullLayout._uid + te : null, X);
              }
              function O(B, X, U, te, se, me) {
                var J = 10, W = 10, ae = U.xsizemode === "pixel", oe = U.ysizemode === "pixel", ve = U.type === "line", fe = U.type === "path", ye = me.modifyItem, Ce, Re, Be, xe, Me, De, Z, ee, ie, G, H, ce, j, he, be, we = a.select(X.node().parentNode), Ie = f.getFromId(B, U.xref), Ge = f.getRefType(U.xref), Ve = f.getFromId(B, U.yref), Je = f.getRefType(U.yref), et = S.getDataToPixel(B, Ie, !1, Ge), at = S.getDataToPixel(B, Ve, !0, Je), Le = S.getPixelToData(B, Ie, !1, Ge), ze = S.getPixelToData(B, Ve, !0, Je), Oe = ut(), Xe = {
                  element: Oe.node(),
                  gd: B,
                  prepFn: Ot,
                  doneFn: Lt,
                  clickFn: Mt
                }, it;
                D.init(Xe), Oe.node().onmousemove = kt;
                function ut() {
                  return ve ? wt() : X;
                }
                function wt() {
                  var Wt = 10, qe = Math.max(U.line.width, Wt), Ue = se.append("g").attr("data-index", te).attr("drag-helper", !0);
                  Ue.append("path").attr("d", X.attr("d")).style({
                    cursor: "move",
                    "stroke-width": qe,
                    "stroke-opacity": "0"
                    // ensure not visible
                  });
                  var We = {
                    "fill-opacity": "0"
                    // ensure not visible
                  }, je = Math.max(qe / 2, Wt);
                  return Ue.append("circle").attr({
                    "data-line-point": "start-point",
                    cx: ae ? et(U.xanchor) + U.x0 : et(U.x0),
                    cy: oe ? at(U.yanchor) - U.y0 : at(U.y0),
                    r: je
                  }).style(We).classed("cursor-grab", !0), Ue.append("circle").attr({
                    "data-line-point": "end-point",
                    cx: ae ? et(U.xanchor) + U.x1 : et(U.x1),
                    cy: oe ? at(U.yanchor) - U.y1 : at(U.y1),
                    r: je
                  }).style(We).classed("cursor-grab", !0), Ue;
                }
                function kt(Wt) {
                  if (A(B)) {
                    it = null;
                    return;
                  }
                  if (ve)
                    Wt.target.tagName === "path" ? it = "move" : it = Wt.target.attributes["data-line-point"].value === "start-point" ? "resize-over-start-point" : "resize-over-end-point";
                  else {
                    var qe = Xe.element.getBoundingClientRect(), Ue = qe.right - qe.left, We = qe.bottom - qe.top, je = Wt.clientX - qe.left, lt = Wt.clientY - qe.top, Se = !fe && Ue > J && We > W && !Wt.shiftKey ? D.getCursor(je / Ue, 1 - lt / We) : "move";
                    C(X, Se), it = Se.split("-")[0];
                  }
                }
                function Ot(Wt) {
                  A(B) || (ae && (Me = et(U.xanchor)), oe && (De = at(U.yanchor)), U.type === "path" ? be = U.path : (Ce = ae ? U.x0 : et(U.x0), Re = oe ? U.y0 : at(U.y0), Be = ae ? U.x1 : et(U.x1), xe = oe ? U.y1 : at(U.y1)), Ce < Be ? (ie = Ce, j = "x0", G = Be, he = "x1") : (ie = Be, j = "x1", G = Ce, he = "x0"), !oe && Re < xe || oe && Re > xe ? (Z = Re, H = "y0", ee = xe, ce = "y1") : (Z = xe, H = "y1", ee = Re, ce = "y0"), kt(Wt), jt(se, U), Jt(X, U, B), Xe.moveFn = it === "move" ? Ut : Ct, Xe.altKey = Wt.altKey);
                }
                function Lt() {
                  A(B) || (C(X), nr(se), I(X, B, U), p.call("_guiRelayout", B, me.getUpdateObj()));
                }
                function Mt() {
                  A(B) || nr(se);
                }
                function Ut(Wt, qe) {
                  if (U.type === "path") {
                    var Ue = function(lt) {
                      return lt;
                    }, We = Ue, je = Ue;
                    ae ? ye("xanchor", U.xanchor = Le(Me + Wt)) : (We = function(Se) {
                      return Le(et(Se) + Wt);
                    }, Ie && Ie.type === "date" && (We = S.encodeDate(We))), oe ? ye("yanchor", U.yanchor = ze(De + qe)) : (je = function(Se) {
                      return ze(at(Se) + qe);
                    }, Ve && Ve.type === "date" && (je = S.encodeDate(je))), ye("path", U.path = $(be, We, je));
                  } else
                    ae ? ye("xanchor", U.xanchor = Le(Me + Wt)) : (ye("x0", U.x0 = Le(Ce + Wt)), ye("x1", U.x1 = Le(Be + Wt))), oe ? ye("yanchor", U.yanchor = ze(De + qe)) : (ye("y0", U.y0 = ze(Re + qe)), ye("y1", U.y1 = ze(xe + qe)));
                  X.attr("d", T(B, U)), jt(se, U), d(B, te, U, we);
                }
                function Ct(Wt, qe) {
                  if (fe) {
                    var Ue = function(ur) {
                      return ur;
                    }, We = Ue, je = Ue;
                    ae ? ye("xanchor", U.xanchor = Le(Me + Wt)) : (We = function(Or) {
                      return Le(et(Or) + Wt);
                    }, Ie && Ie.type === "date" && (We = S.encodeDate(We))), oe ? ye("yanchor", U.yanchor = ze(De + qe)) : (je = function(Or) {
                      return ze(at(Or) + qe);
                    }, Ve && Ve.type === "date" && (je = S.encodeDate(je))), ye("path", U.path = $(be, We, je));
                  } else if (ve) {
                    if (it === "resize-over-start-point") {
                      var lt = Ce + Wt, Se = oe ? Re - qe : Re + qe;
                      ye("x0", U.x0 = ae ? lt : Le(lt)), ye("y0", U.y0 = oe ? Se : ze(Se));
                    } else if (it === "resize-over-end-point") {
                      var Pe = Be + Wt, Ye = oe ? xe - qe : xe + qe;
                      ye("x1", U.x1 = ae ? Pe : Le(Pe)), ye("y1", U.y1 = oe ? Ye : ze(Ye));
                    }
                  } else {
                    var Ze = function(ur) {
                      return it.indexOf(ur) !== -1;
                    }, rt = Ze("n"), tt = Ze("s"), Ft = Ze("w"), Dt = Ze("e"), dt = rt ? Z + qe : Z, st = tt ? ee + qe : ee, Nt = Ft ? ie + Wt : ie, ar = Dt ? G + Wt : G;
                    oe && (rt && (dt = Z - qe), tt && (st = ee - qe)), (!oe && st - dt > W || oe && dt - st > W) && (ye(H, U[H] = oe ? dt : ze(dt)), ye(ce, U[ce] = oe ? st : ze(st))), ar - Nt > J && (ye(j, U[j] = ae ? Nt : Le(Nt)), ye(he, U[he] = ae ? ar : Le(ar)));
                  }
                  X.attr("d", T(B, U)), jt(se, U), d(B, te, U, we);
                }
                function jt(Wt, qe) {
                  (ae || oe) && Ue();
                  function Ue() {
                    var We = qe.type !== "path", je = Wt.selectAll(".visual-cue").data([0]), lt = 1;
                    je.enter().append("path").attr({
                      fill: "#fff",
                      "fill-rule": "evenodd",
                      stroke: "#000",
                      "stroke-width": lt
                    }).classed("visual-cue", !0);
                    var Se = et(ae ? qe.xanchor : l.midRange(We ? [qe.x0, qe.x1] : S.extractPathCoords(qe.path, w.paramIsX))), Pe = at(oe ? qe.yanchor : l.midRange(We ? [qe.y0, qe.y1] : S.extractPathCoords(qe.path, w.paramIsY)));
                    if (Se = S.roundPositionForSharpStrokeRendering(Se, lt), Pe = S.roundPositionForSharpStrokeRendering(Pe, lt), ae && oe) {
                      var Ye = "M" + (Se - 1 - lt) + "," + (Pe - 1 - lt) + "h-8v2h8 v8h2v-8 h8v-2h-8 v-8h-2 Z";
                      je.attr("d", Ye);
                    } else if (ae) {
                      var Ze = "M" + (Se - 1 - lt) + "," + (Pe - 9 - lt) + "v18 h2 v-18 Z";
                      je.attr("d", Ze);
                    } else {
                      var rt = "M" + (Se - 9 - lt) + "," + (Pe - 1 - lt) + "h18 v2 h-18 Z";
                      je.attr("d", rt);
                    }
                  }
                }
                function nr(Wt) {
                  Wt.selectAll(".visual-cue").remove();
                }
                function Jt(Wt, qe, Ue) {
                  var We = qe.xref, je = qe.yref, lt = f.getFromId(Ue, We), Se = f.getFromId(Ue, je), Pe = "";
                  We !== "paper" && !lt.autorange && (Pe += We), je !== "paper" && !Se.autorange && (Pe += je), b.setClipUrl(Wt, Pe ? "clip" + Ue._fullLayout._uid + Pe : null, Ue);
                }
              }
              function $(B, X, U) {
                return B.replace(w.segmentRE, function(te) {
                  var se = 0, me = te.charAt(0), J = w.paramIsX[me], W = w.paramIsY[me], ae = w.numParams[me], oe = te.substr(1).replace(w.paramRE, function(ve) {
                    return se >= ae || (J[se] ? ve = X(ve) : W[se] && (ve = U(ve)), se++), ve;
                  });
                  return me + oe;
                });
              }
              function Y(B, X) {
                if (R(B)) {
                  var U = X.node(), te = +U.getAttribute("data-index");
                  if (te >= 0) {
                    if (te === B._fullLayout._activeShapeIndex) {
                      ne(B);
                      return;
                    }
                    B._fullLayout._activeShapeIndex = te, B._fullLayout._deactivateShape = ne, k(B);
                  }
                }
              }
              function ne(B) {
                if (R(B)) {
                  var X = B._fullLayout._activeShapeIndex;
                  X >= 0 && (h(B), delete B._fullLayout._activeShapeIndex, k(B));
                }
              }
              function q(B) {
                if (R(B)) {
                  h(B);
                  var X = B._fullLayout._activeShapeIndex, U = (B.layout || {}).shapes || [];
                  if (X < U.length) {
                    for (var te = [], se = 0; se < U.length; se++)
                      se !== X && te.push(U[se]);
                    return delete B._fullLayout._activeShapeIndex, p.call("_guiRelayout", B, {
                      shapes: te
                    });
                  }
                }
              }
            }
          ),
          /***/
          2872: (
            /***/
            function(M, L, r) {
              var a = r(7824).overrideAll, p = r(5464), l = r(5376), f = r(8192).u, u = r(2880).extendFlat, c = r(1776).ye, d = r(7728);
              M.exports = a({
                newshape: {
                  visible: u({}, p.visible, {}),
                  showlegend: {
                    valType: "boolean",
                    dflt: !1
                  },
                  legend: u({}, p.legend, {}),
                  legendgroup: u({}, p.legendgroup, {}),
                  legendgrouptitle: {
                    text: u({}, p.legendgrouptitle.text, {}),
                    font: l({})
                  },
                  legendrank: u({}, p.legendrank, {}),
                  legendwidth: u({}, p.legendwidth, {}),
                  line: {
                    color: {
                      valType: "color"
                    },
                    width: {
                      valType: "number",
                      min: 0,
                      dflt: 4
                    },
                    dash: u({}, f, {
                      dflt: "solid"
                    })
                  },
                  fillcolor: {
                    valType: "color",
                    dflt: "rgba(0,0,0,0)"
                  },
                  fillrule: {
                    valType: "enumerated",
                    values: ["evenodd", "nonzero"],
                    dflt: "evenodd"
                  },
                  opacity: {
                    valType: "number",
                    min: 0,
                    max: 1,
                    dflt: 1
                  },
                  layer: {
                    valType: "enumerated",
                    values: ["below", "above", "between"],
                    dflt: "above"
                  },
                  drawdirection: {
                    valType: "enumerated",
                    values: ["ortho", "horizontal", "vertical", "diagonal"],
                    dflt: "diagonal"
                  },
                  name: u({}, p.name, {}),
                  label: {
                    text: {
                      valType: "string",
                      dflt: ""
                    },
                    texttemplate: c({
                      newshape: !0
                    }, {
                      keys: Object.keys(d)
                    }),
                    font: l({}),
                    textposition: {
                      valType: "enumerated",
                      values: ["top left", "top center", "top right", "middle left", "middle center", "middle right", "bottom left", "bottom center", "bottom right", "start", "middle", "end"]
                    },
                    textangle: {
                      valType: "angle",
                      dflt: "auto"
                    },
                    xanchor: {
                      valType: "enumerated",
                      values: ["auto", "left", "center", "right"],
                      dflt: "auto"
                    },
                    yanchor: {
                      valType: "enumerated",
                      values: ["top", "middle", "bottom"]
                    },
                    padding: {
                      valType: "number",
                      dflt: 3,
                      min: 0
                    }
                  }
                },
                activeshape: {
                  fillcolor: {
                    valType: "color",
                    dflt: "rgb(255,0,255)"
                  },
                  opacity: {
                    valType: "number",
                    min: 0,
                    max: 1,
                    dflt: 0.5
                  }
                }
              }, "none", "from-root");
            }
          ),
          /***/
          7e3: (
            /***/
            function(M) {
              var L = 32;
              M.exports = {
                CIRCLE_SIDES: L,
                i000: 0,
                i090: L / 4,
                i180: L / 2,
                i270: L / 4 * 3,
                cos45: Math.cos(Math.PI / 4),
                sin45: Math.sin(Math.PI / 4),
                SQRT2: Math.sqrt(2)
              };
            }
          ),
          /***/
          5144: (
            /***/
            function(M, L, r) {
              var a = r(6308), p = r(3400);
              function l(f, u) {
                return f ? "bottom" : u.indexOf("top") !== -1 ? "top" : u.indexOf("bottom") !== -1 ? "bottom" : "middle";
              }
              M.exports = function(u, c, d) {
                d("newshape.visible"), d("newshape.name"), d("newshape.showlegend"), d("newshape.legend"), d("newshape.legendwidth"), d("newshape.legendgroup"), d("newshape.legendgrouptitle.text"), p.coerceFont(d, "newshape.legendgrouptitle.font"), d("newshape.legendrank"), d("newshape.drawdirection"), d("newshape.layer"), d("newshape.fillcolor"), d("newshape.fillrule"), d("newshape.opacity");
                var h = d("newshape.line.width");
                if (h) {
                  var i = (u || {}).plot_bgcolor || "#FFF";
                  d("newshape.line.color", a.contrast(i)), d("newshape.line.dash");
                }
                var b = u.dragmode === "drawline", x = d("newshape.label.text"), D = d("newshape.label.texttemplate");
                if (x || D) {
                  d("newshape.label.textangle");
                  var C = d("newshape.label.textposition", b ? "middle" : "middle center");
                  d("newshape.label.xanchor"), d("newshape.label.yanchor", l(b, C)), d("newshape.label.padding"), p.coerceFont(d, "newshape.label.font", c.font);
                }
                d("activeshape.fillcolor"), d("activeshape.opacity");
              };
            }
          ),
          /***/
          9856: (
            /***/
            function(M, L, r) {
              var a = r(9604), p = r(7e3), l = p.CIRCLE_SIDES, f = p.SQRT2, u = r(5840), c = u.p2r, d = u.r2p, h = [0, 3, 4, 5, 6, 1, 2], i = [0, 3, 4, 1, 2];
              L.writePaths = function(D) {
                var C = D.length;
                if (!C)
                  return "M0,0Z";
                for (var w = "", S = 0; S < C; S++)
                  for (var T = D[S].length, k = 0; k < T; k++) {
                    var A = D[S][k][0];
                    if (A === "Z")
                      w += "Z";
                    else
                      for (var R = D[S][k].length, g = 0; g < R; g++) {
                        var I = g;
                        A === "Q" || A === "S" ? I = i[g] : A === "C" && (I = h[g]), w += D[S][k][I], g > 0 && g < R - 1 && (w += ",");
                      }
                  }
                return w;
              }, L.readPaths = function(D, C, w, S) {
                var T = a(D), k = [], A = -1, R = function() {
                  A++, k[A] = [];
                }, g, I = 0, O = 0, $, Y, ne = function() {
                  $ = I, Y = O;
                };
                ne();
                for (var q = 0; q < T.length; q++) {
                  var B = [], X, U, te, se, me = T[q][0], J = me;
                  switch (me) {
                    case "M":
                      R(), I = +T[q][1], O = +T[q][2], B.push([J, I, O]), ne();
                      break;
                    case "Q":
                    case "S":
                      X = +T[q][1], te = +T[q][2], I = +T[q][3], O = +T[q][4], B.push([J, I, O, X, te]);
                      break;
                    case "C":
                      X = +T[q][1], te = +T[q][2], U = +T[q][3], se = +T[q][4], I = +T[q][5], O = +T[q][6], B.push([J, I, O, X, te, U, se]);
                      break;
                    case "T":
                    case "L":
                      I = +T[q][1], O = +T[q][2], B.push([J, I, O]);
                      break;
                    case "H":
                      J = "L", I = +T[q][1], B.push([J, I, O]);
                      break;
                    case "V":
                      J = "L", O = +T[q][1], B.push([J, I, O]);
                      break;
                    case "A":
                      J = "L";
                      var W = +T[q][1], ae = +T[q][2];
                      +T[q][4] || (W = -W, ae = -ae);
                      var oe = I - W, ve = O;
                      for (g = 1; g <= l / 2; g++) {
                        var fe = 2 * Math.PI * g / l;
                        B.push([J, oe + W * Math.cos(fe), ve + ae * Math.sin(fe)]);
                      }
                      break;
                    case "Z":
                      (I !== $ || O !== Y) && (I = $, O = Y, B.push([J, I, O]));
                      break;
                  }
                  for (var ye = (w || {}).domain, Ce = C._fullLayout._size, Re = w && w.xsizemode === "pixel", Be = w && w.ysizemode === "pixel", xe = S === !1, Me = 0; Me < B.length; Me++) {
                    for (g = 0; g + 2 < 7; g += 2) {
                      var De = B[Me][g + 1], Z = B[Me][g + 2];
                      De === void 0 || Z === void 0 || (I = De, O = Z, w && (w.xaxis && w.xaxis.p2r ? (xe && (De -= w.xaxis._offset), Re ? De = d(w.xaxis, w.xanchor) + De : De = c(w.xaxis, De)) : (xe && (De -= Ce.l), ye ? De = ye.x[0] + De / Ce.w : De = De / Ce.w), w.yaxis && w.yaxis.p2r ? (xe && (Z -= w.yaxis._offset), Be ? Z = d(w.yaxis, w.yanchor) - Z : Z = c(w.yaxis, Z)) : (xe && (Z -= Ce.t), ye ? Z = ye.y[1] - Z / Ce.h : Z = 1 - Z / Ce.h)), B[Me][g + 1] = De, B[Me][g + 2] = Z);
                    }
                    k[A].push(B[Me].slice());
                  }
                }
                return k;
              };
              function b(D, C) {
                return Math.abs(D - C) <= 1e-6;
              }
              function x(D, C) {
                var w = C[1] - D[1], S = C[2] - D[2];
                return Math.sqrt(w * w + S * S);
              }
              L.pointsOnRectangle = function(D) {
                var C = D.length;
                if (C !== 5)
                  return !1;
                for (var w = 1; w < 3; w++) {
                  var S = D[0][w] - D[1][w], T = D[3][w] - D[2][w];
                  if (!b(S, T))
                    return !1;
                  var k = D[0][w] - D[3][w], A = D[1][w] - D[2][w];
                  if (!b(k, A))
                    return !1;
                }
                return !b(D[0][1], D[1][1]) && !b(D[0][1], D[3][1]) ? !1 : !!(x(D[0], D[1]) * x(D[0], D[3]));
              }, L.pointsOnEllipse = function(D) {
                var C = D.length;
                if (C !== l + 1)
                  return !1;
                C = l;
                for (var w = 0; w < C; w++) {
                  var S = (C * 2 - w) % C, T = (C / 2 + S) % C, k = (C / 2 + w) % C;
                  if (!b(x(D[w], D[k]), x(D[S], D[T])))
                    return !1;
                }
                return !0;
              }, L.handleEllipse = function(D, C, w) {
                if (!D)
                  return [C, w];
                var S = L.ellipseOver({
                  x0: C[0],
                  y0: C[1],
                  x1: w[0],
                  y1: w[1]
                }), T = (S.x1 + S.x0) / 2, k = (S.y1 + S.y0) / 2, A = (S.x1 - S.x0) / 2, R = (S.y1 - S.y0) / 2;
                A || (A = R = R / f), R || (R = A = A / f);
                for (var g = [], I = 0; I < l; I++) {
                  var O = I * 2 * Math.PI / l;
                  g.push([T + A * Math.cos(O), k + R * Math.sin(O)]);
                }
                return g;
              }, L.ellipseOver = function(D) {
                var C = D.x0, w = D.y0, S = D.x1, T = D.y1, k = S - C, A = T - w;
                C -= k, w -= A;
                var R = (C + S) / 2, g = (w + T) / 2, I = f;
                return k *= I, A *= I, {
                  x0: R - k,
                  y0: g - A,
                  x1: R + k,
                  y1: g + A
                };
              }, L.fixDatesForPaths = function(D, C, w) {
                var S = C.type === "date", T = w.type === "date";
                if (!S && !T)
                  return D;
                for (var k = 0; k < D.length; k++)
                  for (var A = 0; A < D[k].length; A++)
                    for (var R = 0; R + 2 < D[k][A].length; R += 2)
                      S && (D[k][A][R + 1] = D[k][A][R + 1].replace(" ", "_")), T && (D[k][A][R + 2] = D[k][A][R + 2].replace(" ", "_"));
                return D;
              };
            }
          ),
          /***/
          3940: (
            /***/
            function(M, L, r) {
              var a = r(2760), p = a.drawMode, l = a.openMode, f = r(7e3), u = f.i000, c = f.i090, d = f.i180, h = f.i270, i = f.cos45, b = f.sin45, x = r(5840), D = x.p2r, C = x.r2p, w = r(1936), S = w.clearOutline, T = r(9856), k = T.readPaths, A = T.writePaths, R = T.ellipseOver, g = T.fixDatesForPaths;
              function I($, Y) {
                if ($.length) {
                  var ne = $[0][0];
                  if (ne) {
                    var q = Y.gd, B = Y.isActiveShape, X = Y.dragmode, U = (q.layout || {}).shapes || [];
                    if (!p(X) && B !== void 0) {
                      var te = q._fullLayout._activeShapeIndex;
                      if (te < U.length)
                        switch (q._fullLayout.shapes[te].type) {
                          case "rect":
                            X = "drawrect";
                            break;
                          case "circle":
                            X = "drawcircle";
                            break;
                          case "line":
                            X = "drawline";
                            break;
                          case "path":
                            var se = U[te].path || "";
                            se[se.length - 1] === "Z" ? X = "drawclosedpath" : X = "drawopenpath";
                            break;
                        }
                    }
                    var me = O($, Y, X);
                    S(q);
                    for (var J = Y.editHelpers, W = (J || {}).modifyItem, ae = [], oe = 0; oe < U.length; oe++) {
                      var ve = q._fullLayout.shapes[oe];
                      if (ae[oe] = ve._input, B !== void 0 && oe === q._fullLayout._activeShapeIndex) {
                        var fe = me;
                        switch (ve.type) {
                          case "line":
                          case "rect":
                          case "circle":
                            W("x0", fe.x0), W("x1", fe.x1), W("y0", fe.y0), W("y1", fe.y1);
                            break;
                          case "path":
                            W("path", fe.path);
                            break;
                        }
                      }
                    }
                    return B === void 0 ? (ae.push(me), ae) : J ? J.getUpdateObj() : {};
                  }
                }
              }
              function O($, Y, ne) {
                var q = $[0][0], B = Y.gd, X = q.getAttribute("d"), U = B._fullLayout.newshape, te = Y.plotinfo, se = Y.isActiveShape, me = te.xaxis, J = te.yaxis, W = !!te.domain || !te.xaxis, ae = !!te.domain || !te.yaxis, oe = l(ne), ve = k(X, B, te, se), fe = {
                  editable: !0,
                  visible: U.visible,
                  name: U.name,
                  showlegend: U.showlegend,
                  legend: U.legend,
                  legendwidth: U.legendwidth,
                  legendgroup: U.legendgroup,
                  legendgrouptitle: {
                    text: U.legendgrouptitle.text,
                    font: U.legendgrouptitle.font
                  },
                  legendrank: U.legendrank,
                  label: U.label,
                  xref: W ? "paper" : me._id,
                  yref: ae ? "paper" : J._id,
                  layer: U.layer,
                  opacity: U.opacity,
                  line: {
                    color: U.line.color,
                    width: U.line.width,
                    dash: U.line.dash
                  }
                };
                oe || (fe.fillcolor = U.fillcolor, fe.fillrule = U.fillrule);
                var ye;
                if (ve.length === 1 && (ye = ve[0]), ye && ye.length === 5 && // ensure we only have 4 corners for a rect
                ne === "drawrect")
                  fe.type = "rect", fe.x0 = ye[0][1], fe.y0 = ye[0][2], fe.x1 = ye[2][1], fe.y1 = ye[2][2];
                else if (ye && ne === "drawline")
                  fe.type = "line", fe.x0 = ye[0][1], fe.y0 = ye[0][2], fe.x1 = ye[1][1], fe.y1 = ye[1][2];
                else if (ye && ne === "drawcircle") {
                  fe.type = "circle";
                  var Ce = ye[u][1], Re = ye[c][1], Be = ye[d][1], xe = ye[h][1], Me = ye[u][2], De = ye[c][2], Z = ye[d][2], ee = ye[h][2], ie = te.xaxis && (te.xaxis.type === "date" || te.xaxis.type === "log"), G = te.yaxis && (te.yaxis.type === "date" || te.yaxis.type === "log");
                  ie && (Ce = C(te.xaxis, Ce), Re = C(te.xaxis, Re), Be = C(te.xaxis, Be), xe = C(te.xaxis, xe)), G && (Me = C(te.yaxis, Me), De = C(te.yaxis, De), Z = C(te.yaxis, Z), ee = C(te.yaxis, ee));
                  var H = (Re + xe) / 2, ce = (Me + Z) / 2, j = (xe - Re + Be - Ce) / 2, he = (ee - De + Z - Me) / 2, be = R({
                    x0: H,
                    y0: ce,
                    x1: H + j * i,
                    y1: ce + he * b
                  });
                  ie && (be.x0 = D(te.xaxis, be.x0), be.x1 = D(te.xaxis, be.x1)), G && (be.y0 = D(te.yaxis, be.y0), be.y1 = D(te.yaxis, be.y1)), fe.x0 = be.x0, fe.y0 = be.y0, fe.x1 = be.x1, fe.y1 = be.y1;
                } else
                  fe.type = "path", me && J && g(ve, me, J), fe.path = A(ve), ye = null;
                return fe;
              }
              M.exports = {
                newShapes: I,
                createShapeObj: O
              };
            }
          ),
          /***/
          1936: (
            /***/
            function(M) {
              function L(a) {
                var p = a._fullLayout._zoomlayer;
                p && p.selectAll(".outline-controllers").remove();
              }
              function r(a) {
                var p = a._fullLayout._zoomlayer;
                p && p.selectAll(".select-outline").remove(), a._fullLayout._outlining = !1;
              }
              M.exports = {
                clearOutlineControllers: L,
                clearOutline: r
              };
            }
          ),
          /***/
          5152: (
            /***/
            function(M, L, r) {
              var a = r(3068), p = r(3400), l = r(4460);
              L.rangeToShapePosition = function(u) {
                return u.type === "log" ? u.r2d : function(c) {
                  return c;
                };
              }, L.shapePositionToRange = function(u) {
                return u.type === "log" ? u.d2r : function(c) {
                  return c;
                };
              }, L.decodeDate = function(u) {
                return function(c) {
                  return c.replace && (c = c.replace("_", " ")), u(c);
                };
              }, L.encodeDate = function(u) {
                return function(c) {
                  return u(c).replace(" ", "_");
                };
              }, L.extractPathCoords = function(u, c, d) {
                var h = [], i = u.match(a.segmentRE);
                return i.forEach(function(b) {
                  var x = c[b.charAt(0)].drawn;
                  if (x !== void 0) {
                    var D = b.substr(1).match(a.paramRE);
                    if (!(!D || D.length < x)) {
                      var C = D[x], w = d ? C : p.cleanNumber(C);
                      h.push(w);
                    }
                  }
                }), h;
              }, L.getDataToPixel = function(u, c, d, h) {
                var i = u._fullLayout._size, b;
                if (c)
                  if (h === "domain")
                    b = function(D) {
                      return c._length * (d ? 1 - D : D) + c._offset;
                    };
                  else {
                    var x = L.shapePositionToRange(c);
                    b = function(D) {
                      return c._offset + c.r2p(x(D, !0));
                    }, c.type === "date" && (b = L.decodeDate(b));
                  }
                else
                  d ? b = function(D) {
                    return i.t + i.h * (1 - D);
                  } : b = function(D) {
                    return i.l + i.w * D;
                  };
                return b;
              }, L.getPixelToData = function(u, c, d, h) {
                var i = u._fullLayout._size, b;
                if (c)
                  if (h === "domain")
                    b = function(D) {
                      var C = (D - c._offset) / c._length;
                      return d ? 1 - C : C;
                    };
                  else {
                    var x = L.rangeToShapePosition(c);
                    b = function(D) {
                      return x(c.p2r(D - c._offset));
                    };
                  }
                else
                  d ? b = function(D) {
                    return 1 - (D - i.t) / i.h;
                  } : b = function(D) {
                    return (D - i.l) / i.w;
                  };
                return b;
              }, L.roundPositionForSharpStrokeRendering = function(u, c) {
                var d = Math.round(c % 2) === 1, h = Math.round(u);
                return d ? h + 0.5 : h;
              }, L.makeShapesOptionsAndPlotinfo = function(u, c) {
                var d = u._fullLayout.shapes[c] || {}, h = u._fullLayout._plots[d.xref + d.yref], i = !!h;
                return i ? h._hadPlotinfo = !0 : (h = {}, d.xref && d.xref !== "paper" && (h.xaxis = u._fullLayout[d.xref + "axis"]), d.yref && d.yref !== "paper" && (h.yaxis = u._fullLayout[d.yref + "axis"])), h.xsizemode = d.xsizemode, h.ysizemode = d.ysizemode, h.xanchor = d.xanchor, h.yanchor = d.yanchor, {
                  options: d,
                  plotinfo: h
                };
              }, L.makeSelectionsOptionsAndPlotinfo = function(u, c) {
                var d = u._fullLayout.selections[c] || {}, h = u._fullLayout._plots[d.xref + d.yref], i = !!h;
                return i ? h._hadPlotinfo = !0 : (h = {}, d.xref && (h.xaxis = u._fullLayout[d.xref + "axis"]), d.yref && (h.yaxis = u._fullLayout[d.yref + "axis"])), {
                  options: d,
                  plotinfo: h
                };
              }, L.getPathString = function(u, c) {
                var d = c.type, h = l.getRefType(c.xref), i = l.getRefType(c.yref), b = l.getFromId(u, c.xref), x = l.getFromId(u, c.yref), D = u._fullLayout._size, C, w, S, T, k, A, R, g;
                if (b ? h === "domain" ? w = function(te) {
                  return b._offset + b._length * te;
                } : (C = L.shapePositionToRange(b), w = function(te) {
                  return b._offset + b.r2p(C(te, !0));
                }) : w = function(te) {
                  return D.l + D.w * te;
                }, x ? i === "domain" ? T = function(te) {
                  return x._offset + x._length * (1 - te);
                } : (S = L.shapePositionToRange(x), T = function(te) {
                  return x._offset + x.r2p(S(te, !0));
                }) : T = function(te) {
                  return D.t + D.h * (1 - te);
                }, d === "path")
                  return b && b.type === "date" && (w = L.decodeDate(w)), x && x.type === "date" && (T = L.decodeDate(T)), f(c, w, T);
                if (c.xsizemode === "pixel") {
                  var I = w(c.xanchor);
                  k = I + c.x0, A = I + c.x1;
                } else
                  k = w(c.x0), A = w(c.x1);
                if (c.ysizemode === "pixel") {
                  var O = T(c.yanchor);
                  R = O - c.y0, g = O - c.y1;
                } else
                  R = T(c.y0), g = T(c.y1);
                if (d === "line")
                  return "M" + k + "," + R + "L" + A + "," + g;
                if (d === "rect")
                  return "M" + k + "," + R + "H" + A + "V" + g + "H" + k + "Z";
                var $ = (k + A) / 2, Y = (R + g) / 2, ne = Math.abs($ - k), q = Math.abs(Y - R), B = "A" + ne + "," + q, X = $ + ne + "," + Y, U = $ + "," + (Y - q);
                return "M" + X + B + " 0 1,1 " + U + B + " 0 0,1 " + X + "Z";
              };
              function f(u, c, d) {
                var h = u.path, i = u.xsizemode, b = u.ysizemode, x = u.xanchor, D = u.yanchor;
                return h.replace(a.segmentRE, function(C) {
                  var w = 0, S = C.charAt(0), T = a.paramIsX[S], k = a.paramIsY[S], A = a.numParams[S], R = C.substr(1).replace(a.paramRE, function(g) {
                    return T[w] ? i === "pixel" ? g = c(x) + Number(g) : g = c(g) : k[w] && (b === "pixel" ? g = d(D) - Number(g) : g = d(g)), w++, w > A && (g = "X"), g;
                  });
                  return w > A && (R = R.replace(/[\s,]*X.*/, ""), p.log("Ignoring extra params in segment " + C)), S + R;
                });
              }
            }
          ),
          /***/
          1592: (
            /***/
            function(M, L, r) {
              var a = r(4016);
              M.exports = {
                moduleType: "component",
                name: "shapes",
                layoutAttributes: r(6056),
                supplyLayoutDefaults: r(3712),
                supplyDrawNewShapeDefaults: r(5144),
                includeBasePlot: r(6632)("shapes"),
                calcAutorange: r(6084),
                draw: a.draw,
                drawOne: a.drawOne
              };
            }
          ),
          /***/
          7728: (
            /***/
            function(M) {
              function L(C, w) {
                return w ? w.d2l(C) : C;
              }
              function r(C, w) {
                return w ? w.l2d(C) : C;
              }
              function a(C) {
                return C.x0;
              }
              function p(C) {
                return C.x1;
              }
              function l(C) {
                return C.y0;
              }
              function f(C) {
                return C.y1;
              }
              function u(C, w) {
                return L(C.x1, w) - L(C.x0, w);
              }
              function c(C, w, S) {
                return L(C.y1, S) - L(C.y0, S);
              }
              function d(C, w) {
                return Math.abs(u(C, w));
              }
              function h(C, w, S) {
                return Math.abs(c(C, w, S));
              }
              function i(C, w, S) {
                return C.type !== "line" ? void 0 : Math.sqrt(Math.pow(u(C, w), 2) + Math.pow(c(C, w, S), 2));
              }
              function b(C, w) {
                return r((L(C.x1, w) + L(C.x0, w)) / 2, w);
              }
              function x(C, w, S) {
                return r((L(C.y1, S) + L(C.y0, S)) / 2, S);
              }
              function D(C, w, S) {
                return C.type !== "line" ? void 0 : c(C, w, S) / u(C, w);
              }
              M.exports = {
                x0: a,
                x1: p,
                y0: l,
                y1: f,
                slope: D,
                dx: u,
                dy: c,
                width: d,
                height: h,
                length: i,
                xcenter: b,
                ycenter: x
              };
            }
          ),
          /***/
          9861: (
            /***/
            function(M, L, r) {
              var a = r(5376), p = r(6741), l = r(2880).extendDeepAll, f = r(7824).overrideAll, u = r(5656), c = r(1780).templatedArray, d = r(876), h = c("step", {
                visible: {
                  valType: "boolean",
                  dflt: !0
                },
                method: {
                  valType: "enumerated",
                  values: ["restyle", "relayout", "animate", "update", "skip"],
                  dflt: "restyle"
                },
                args: {
                  valType: "info_array",
                  freeLength: !0,
                  items: [{
                    valType: "any"
                  }, {
                    valType: "any"
                  }, {
                    valType: "any"
                  }]
                },
                label: {
                  valType: "string"
                },
                value: {
                  valType: "string"
                },
                execute: {
                  valType: "boolean",
                  dflt: !0
                }
              });
              M.exports = f(c("slider", {
                visible: {
                  valType: "boolean",
                  dflt: !0
                },
                active: {
                  valType: "number",
                  min: 0,
                  dflt: 0
                },
                steps: h,
                lenmode: {
                  valType: "enumerated",
                  values: ["fraction", "pixels"],
                  dflt: "fraction"
                },
                len: {
                  valType: "number",
                  min: 0,
                  dflt: 1
                },
                x: {
                  valType: "number",
                  min: -2,
                  max: 3,
                  dflt: 0
                },
                pad: l(p({
                  editType: "arraydraw"
                }), {}, {
                  t: {
                    dflt: 20
                  }
                }),
                xanchor: {
                  valType: "enumerated",
                  values: ["auto", "left", "center", "right"],
                  dflt: "left"
                },
                y: {
                  valType: "number",
                  min: -2,
                  max: 3,
                  dflt: 0
                },
                yanchor: {
                  valType: "enumerated",
                  values: ["auto", "top", "middle", "bottom"],
                  dflt: "top"
                },
                transition: {
                  duration: {
                    valType: "number",
                    min: 0,
                    dflt: 150
                  },
                  easing: {
                    valType: "enumerated",
                    values: u.transition.easing.values,
                    dflt: "cubic-in-out"
                  }
                },
                currentvalue: {
                  visible: {
                    valType: "boolean",
                    dflt: !0
                  },
                  xanchor: {
                    valType: "enumerated",
                    values: ["left", "center", "right"],
                    dflt: "left"
                  },
                  offset: {
                    valType: "number",
                    dflt: 10
                  },
                  prefix: {
                    valType: "string"
                  },
                  suffix: {
                    valType: "string"
                  },
                  font: a({})
                },
                font: a({}),
                activebgcolor: {
                  valType: "color",
                  dflt: d.gripBgActiveColor
                },
                bgcolor: {
                  valType: "color",
                  dflt: d.railBgColor
                },
                bordercolor: {
                  valType: "color",
                  dflt: d.railBorderColor
                },
                borderwidth: {
                  valType: "number",
                  min: 0,
                  dflt: d.railBorderWidth
                },
                ticklen: {
                  valType: "number",
                  min: 0,
                  dflt: d.tickLength
                },
                tickcolor: {
                  valType: "color",
                  dflt: d.tickColor
                },
                tickwidth: {
                  valType: "number",
                  min: 0,
                  dflt: 1
                },
                minorticklen: {
                  valType: "number",
                  min: 0,
                  dflt: d.minorTickLength
                }
              }), "arraydraw", "from-root");
            }
          ),
          /***/
          876: (
            /***/
            function(M) {
              M.exports = {
                // layout attribute name
                name: "sliders",
                // class names
                containerClassName: "slider-container",
                groupClassName: "slider-group",
                inputAreaClass: "slider-input-area",
                railRectClass: "slider-rail-rect",
                railTouchRectClass: "slider-rail-touch-rect",
                gripRectClass: "slider-grip-rect",
                tickRectClass: "slider-tick-rect",
                inputProxyClass: "slider-input-proxy",
                labelsClass: "slider-labels",
                labelGroupClass: "slider-label-group",
                labelClass: "slider-label",
                currentValueClass: "slider-current-value",
                railHeight: 5,
                // DOM attribute name in button group keeping track
                // of active update menu
                menuIndexAttrName: "slider-active-index",
                // id root pass to Plots.autoMargin
                autoMarginIdRoot: "slider-",
                // min item width / height
                minWidth: 30,
                minHeight: 30,
                // padding around item text
                textPadX: 40,
                // arrow offset off right edge
                arrowOffsetX: 4,
                railRadius: 2,
                railWidth: 5,
                railBorder: 4,
                railBorderWidth: 1,
                railBorderColor: "#bec8d9",
                railBgColor: "#f8fafc",
                // The distance of the rail from the edge of the touchable area
                // Slightly less than the step inset because of the curved edges
                // of the rail
                railInset: 8,
                // The distance from the extremal tick marks to the edge of the
                // touchable area. This is basically the same as the grip radius,
                // but for other styles it wouldn't really need to be.
                stepInset: 10,
                gripRadius: 10,
                gripWidth: 20,
                gripHeight: 20,
                gripBorder: 20,
                gripBorderWidth: 1,
                gripBorderColor: "#bec8d9",
                gripBgColor: "#f6f8fa",
                gripBgActiveColor: "#dbdde0",
                labelPadding: 8,
                labelOffset: 0,
                tickWidth: 1,
                tickColor: "#333",
                tickOffset: 25,
                tickLength: 7,
                minorTickOffset: 25,
                minorTickColor: "#333",
                minorTickLength: 4,
                // Extra space below the current value label:
                currentValuePadding: 8,
                currentValueInset: 0
              };
            }
          ),
          /***/
          8132: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(1272), l = r(9861), f = r(876), u = f.name, c = l.steps;
              M.exports = function(b, x) {
                p(b, x, {
                  name: u,
                  handleItemDefaults: d
                });
              };
              function d(i, b, x) {
                function D(g, I) {
                  return a.coerce(i, b, l, g, I);
                }
                for (var C = p(i, b, {
                  name: "steps",
                  handleItemDefaults: h
                }), w = 0, S = 0; S < C.length; S++)
                  C[S].visible && w++;
                var T;
                if (w < 2 ? T = b.visible = !1 : T = D("visible"), !!T) {
                  b._stepCount = w;
                  var k = b._visibleSteps = a.filterVisible(C), A = D("active");
                  (C[A] || {}).visible || (b.active = k[0]._index), D("x"), D("y"), a.noneOrAll(i, b, ["x", "y"]), D("xanchor"), D("yanchor"), D("len"), D("lenmode"), D("pad.t"), D("pad.r"), D("pad.b"), D("pad.l"), a.coerceFont(D, "font", x.font);
                  var R = D("currentvalue.visible");
                  R && (D("currentvalue.xanchor"), D("currentvalue.prefix"), D("currentvalue.suffix"), D("currentvalue.offset"), a.coerceFont(D, "currentvalue.font", b.font)), D("transition.duration"), D("transition.easing"), D("bgcolor"), D("activebgcolor"), D("bordercolor"), D("borderwidth"), D("ticklen"), D("tickwidth"), D("tickcolor"), D("minorticklen");
                }
              }
              function h(i, b) {
                function x(w, S) {
                  return a.coerce(i, b, c, w, S);
                }
                var D;
                if (i.method !== "skip" && !Array.isArray(i.args) ? D = b.visible = !1 : D = x("visible"), D) {
                  x("method"), x("args");
                  var C = x("label", "step-" + b._index);
                  x("value", C), x("execute");
                }
              }
            }
          ),
          /***/
          9664: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(7316), l = r(6308), f = r(3616), u = r(3400), c = u.strTranslate, d = r(2736), h = r(1780).arrayEditor, i = r(876), b = r(4284), x = b.LINE_SPACING, D = b.FROM_TL, C = b.FROM_BR;
              M.exports = function(W) {
                var ae = W._context.staticPlot, oe = W._fullLayout, ve = S(oe, W), fe = oe._infolayer.selectAll("g." + i.containerClassName).data(ve.length > 0 ? [0] : []);
                fe.enter().append("g").classed(i.containerClassName, !0).style("cursor", ae ? null : "ew-resize");
                function ye(xe) {
                  xe._commandObserver && (xe._commandObserver.remove(), delete xe._commandObserver), p.autoMargin(W, w(xe));
                }
                if (fe.exit().each(function() {
                  a.select(this).selectAll("g." + i.groupClassName).each(ye);
                }).remove(), ve.length !== 0) {
                  var Ce = fe.selectAll("g." + i.groupClassName).data(ve, T);
                  Ce.enter().append("g").classed(i.groupClassName, !0), Ce.exit().each(ye).remove();
                  for (var Re = 0; Re < ve.length; Re++) {
                    var Be = ve[Re];
                    k(W, Be);
                  }
                  Ce.each(function(xe) {
                    var Me = a.select(this);
                    B(xe), p.manageCommandObserver(W, xe, xe._visibleSteps, function(De) {
                      var Z = Me.data()[0];
                      Z.active !== De.index && (Z._dragging || Y(W, Me, Z, De.index, !1, !0));
                    }), A(W, a.select(this), xe);
                  });
                }
              };
              function w(J) {
                return i.autoMarginIdRoot + J._index;
              }
              function S(J, W) {
                for (var ae = J[i.name], oe = [], ve = 0; ve < ae.length; ve++) {
                  var fe = ae[ve];
                  fe.visible && (fe._gd = W, oe.push(fe));
                }
                return oe;
              }
              function T(J) {
                return J._index;
              }
              function k(J, W) {
                var ae = f.tester.selectAll("g." + i.labelGroupClass).data(W._visibleSteps);
                ae.enter().append("g").classed(i.labelGroupClass, !0);
                var oe = 0, ve = 0;
                ae.each(function(ee) {
                  var ie = a.select(this), G = I(ie, {
                    step: ee
                  }, W), H = G.node();
                  if (H) {
                    var ce = f.bBox(H);
                    ve = Math.max(ve, ce.height), oe = Math.max(oe, ce.width);
                  }
                }), ae.remove();
                var fe = W._dims = {};
                fe.inputAreaWidth = Math.max(i.railWidth, i.gripHeight);
                var ye = J._fullLayout._size;
                fe.lx = ye.l + ye.w * W.x, fe.ly = ye.t + ye.h * (1 - W.y), W.lenmode === "fraction" ? fe.outerLength = Math.round(ye.w * W.len) : fe.outerLength = W.len, fe.inputAreaStart = 0, fe.inputAreaLength = Math.round(fe.outerLength - W.pad.l - W.pad.r);
                var Ce = fe.inputAreaLength - 2 * i.stepInset, Re = Ce / (W._stepCount - 1), Be = oe + i.labelPadding;
                if (fe.labelStride = Math.max(1, Math.ceil(Be / Re)), fe.labelHeight = ve, fe.currentValueMaxWidth = 0, fe.currentValueHeight = 0, fe.currentValueTotalHeight = 0, fe.currentValueMaxLines = 1, W.currentvalue.visible) {
                  var xe = f.tester.append("g");
                  ae.each(function(ee) {
                    var ie = R(xe, W, ee.label), G = ie.node() && f.bBox(ie.node()) || {
                      width: 0,
                      height: 0
                    }, H = d.lineCount(ie);
                    fe.currentValueMaxWidth = Math.max(fe.currentValueMaxWidth, Math.ceil(G.width)), fe.currentValueHeight = Math.max(fe.currentValueHeight, Math.ceil(G.height)), fe.currentValueMaxLines = Math.max(fe.currentValueMaxLines, H);
                  }), fe.currentValueTotalHeight = fe.currentValueHeight + W.currentvalue.offset, xe.remove();
                }
                fe.height = fe.currentValueTotalHeight + i.tickOffset + W.ticklen + i.labelOffset + fe.labelHeight + W.pad.t + W.pad.b;
                var Me = "left";
                u.isRightAnchor(W) && (fe.lx -= fe.outerLength, Me = "right"), u.isCenterAnchor(W) && (fe.lx -= fe.outerLength / 2, Me = "center");
                var De = "top";
                u.isBottomAnchor(W) && (fe.ly -= fe.height, De = "bottom"), u.isMiddleAnchor(W) && (fe.ly -= fe.height / 2, De = "middle"), fe.outerLength = Math.ceil(fe.outerLength), fe.height = Math.ceil(fe.height), fe.lx = Math.round(fe.lx), fe.ly = Math.round(fe.ly);
                var Z = {
                  y: W.y,
                  b: fe.height * C[De],
                  t: fe.height * D[De]
                };
                W.lenmode === "fraction" ? (Z.l = 0, Z.xl = W.x - W.len * D[Me], Z.r = 0, Z.xr = W.x + W.len * C[Me]) : (Z.x = W.x, Z.l = fe.outerLength * D[Me], Z.r = fe.outerLength * C[Me]), p.autoMargin(J, w(W), Z);
              }
              function A(J, W, ae) {
                (ae.steps[ae.active] || {}).visible || (ae.active = ae._visibleSteps[0]._index), W.call(R, ae).call(me, ae).call(O, ae).call(q, ae).call(se, J, ae).call(g, J, ae);
                var oe = ae._dims;
                f.setTranslate(W, oe.lx + ae.pad.l, oe.ly + ae.pad.t), W.call(X, ae, !1), W.call(R, ae);
              }
              function R(J, W, ae) {
                if (W.currentvalue.visible) {
                  var oe = W._dims, ve, fe;
                  switch (W.currentvalue.xanchor) {
                    case "right":
                      ve = oe.inputAreaLength - i.currentValueInset - oe.currentValueMaxWidth, fe = "left";
                      break;
                    case "center":
                      ve = oe.inputAreaLength * 0.5, fe = "middle";
                      break;
                    default:
                      ve = i.currentValueInset, fe = "left";
                  }
                  var ye = u.ensureSingle(J, "text", i.labelClass, function(De) {
                    De.attr({
                      "text-anchor": fe,
                      "data-notex": 1
                    });
                  }), Ce = W.currentvalue.prefix ? W.currentvalue.prefix : "";
                  if (typeof ae == "string")
                    Ce += ae;
                  else {
                    var Re = W.steps[W.active].label, Be = W._gd._fullLayout._meta;
                    Be && (Re = u.templateString(Re, Be)), Ce += Re;
                  }
                  W.currentvalue.suffix && (Ce += W.currentvalue.suffix), ye.call(f.font, W.currentvalue.font).text(Ce).call(d.convertToTspans, W._gd);
                  var xe = d.lineCount(ye), Me = (oe.currentValueMaxLines + 1 - xe) * W.currentvalue.font.size * x;
                  return d.positionText(ye, ve, Me), ye;
                }
              }
              function g(J, W, ae) {
                var oe = u.ensureSingle(J, "rect", i.gripRectClass, function(ve) {
                  ve.call(ne, W, J, ae).style("pointer-events", "all");
                });
                oe.attr({
                  width: i.gripWidth,
                  height: i.gripHeight,
                  rx: i.gripRadius,
                  ry: i.gripRadius
                }).call(l.stroke, ae.bordercolor).call(l.fill, ae.bgcolor).style("stroke-width", ae.borderwidth + "px");
              }
              function I(J, W, ae) {
                var oe = u.ensureSingle(J, "text", i.labelClass, function(ye) {
                  ye.attr({
                    "text-anchor": "middle",
                    "data-notex": 1
                  });
                }), ve = W.step.label, fe = ae._gd._fullLayout._meta;
                return fe && (ve = u.templateString(ve, fe)), oe.call(f.font, ae.font).text(ve).call(d.convertToTspans, ae._gd), oe;
              }
              function O(J, W) {
                var ae = u.ensureSingle(J, "g", i.labelsClass), oe = W._dims, ve = ae.selectAll("g." + i.labelGroupClass).data(oe.labelSteps);
                ve.enter().append("g").classed(i.labelGroupClass, !0), ve.exit().remove(), ve.each(function(fe) {
                  var ye = a.select(this);
                  ye.call(I, fe, W), f.setTranslate(ye, U(W, fe.fraction), i.tickOffset + W.ticklen + // position is the baseline of the top line of text only, even
                  // if the label spans multiple lines
                  W.font.size * x + i.labelOffset + oe.currentValueTotalHeight);
                });
              }
              function $(J, W, ae, oe, ve) {
                var fe = Math.round(oe * (ae._stepCount - 1)), ye = ae._visibleSteps[fe]._index;
                ye !== ae.active && Y(J, W, ae, ye, !0, ve);
              }
              function Y(J, W, ae, oe, ve, fe) {
                var ye = ae.active;
                ae.active = oe, h(J.layout, i.name, ae).applyUpdate("active", oe);
                var Ce = ae.steps[ae.active];
                W.call(X, ae, fe), W.call(R, ae), J.emit("plotly_sliderchange", {
                  slider: ae,
                  step: ae.steps[ae.active],
                  interaction: ve,
                  previousActive: ye
                }), Ce && Ce.method && ve && (W._nextMethod ? (W._nextMethod.step = Ce, W._nextMethod.doCallback = ve, W._nextMethod.doTransition = fe) : (W._nextMethod = {
                  step: Ce,
                  doCallback: ve,
                  doTransition: fe
                }, W._nextMethodRaf = window.requestAnimationFrame(function() {
                  var Re = W._nextMethod.step;
                  Re.method && (Re.execute && p.executeAPICommand(J, Re.method, Re.args), W._nextMethod = null, W._nextMethodRaf = null);
                })));
              }
              function ne(J, W, ae) {
                if (W._context.staticPlot)
                  return;
                var oe = ae.node(), ve = a.select(W);
                function fe() {
                  return ae.data()[0];
                }
                function ye() {
                  var Ce = fe();
                  W.emit("plotly_sliderstart", {
                    slider: Ce
                  });
                  var Re = ae.select("." + i.gripRectClass);
                  a.event.stopPropagation(), a.event.preventDefault(), Re.call(l.fill, Ce.activebgcolor);
                  var Be = te(Ce, a.mouse(oe)[0]);
                  $(W, ae, Ce, Be, !0), Ce._dragging = !0;
                  function xe() {
                    var De = fe(), Z = te(De, a.mouse(oe)[0]);
                    $(W, ae, De, Z, !1);
                  }
                  ve.on("mousemove", xe), ve.on("touchmove", xe);
                  function Me() {
                    var De = fe();
                    De._dragging = !1, Re.call(l.fill, De.bgcolor), ve.on("mouseup", null), ve.on("mousemove", null), ve.on("touchend", null), ve.on("touchmove", null), W.emit("plotly_sliderend", {
                      slider: De,
                      step: De.steps[De.active]
                    });
                  }
                  ve.on("mouseup", Me), ve.on("touchend", Me);
                }
                J.on("mousedown", ye), J.on("touchstart", ye);
              }
              function q(J, W) {
                var ae = J.selectAll("rect." + i.tickRectClass).data(W._visibleSteps), oe = W._dims;
                ae.enter().append("rect").classed(i.tickRectClass, !0), ae.exit().remove(), ae.attr({
                  width: W.tickwidth + "px",
                  "shape-rendering": "crispEdges"
                }), ae.each(function(ve, fe) {
                  var ye = fe % oe.labelStride === 0, Ce = a.select(this);
                  Ce.attr({
                    height: ye ? W.ticklen : W.minorticklen
                  }).call(l.fill, W.tickcolor), f.setTranslate(Ce, U(W, fe / (W._stepCount - 1)) - 0.5 * W.tickwidth, (ye ? i.tickOffset : i.minorTickOffset) + oe.currentValueTotalHeight);
                });
              }
              function B(J) {
                var W = J._dims;
                W.labelSteps = [];
                for (var ae = J._stepCount, oe = 0; oe < ae; oe += W.labelStride)
                  W.labelSteps.push({
                    fraction: oe / (ae - 1),
                    step: J._visibleSteps[oe]
                  });
              }
              function X(J, W, ae) {
                for (var oe = J.select("rect." + i.gripRectClass), ve = 0, fe = 0; fe < W._stepCount; fe++)
                  if (W._visibleSteps[fe]._index === W.active) {
                    ve = fe;
                    break;
                  }
                var ye = U(W, ve / (W._stepCount - 1));
                if (!W._invokingCommand) {
                  var Ce = oe;
                  ae && W.transition.duration > 0 && (Ce = Ce.transition().duration(W.transition.duration).ease(W.transition.easing)), Ce.attr("transform", c(ye - i.gripWidth * 0.5, W._dims.currentValueTotalHeight));
                }
              }
              function U(J, W) {
                var ae = J._dims;
                return ae.inputAreaStart + i.stepInset + (ae.inputAreaLength - 2 * i.stepInset) * Math.min(1, Math.max(0, W));
              }
              function te(J, W) {
                var ae = J._dims;
                return Math.min(1, Math.max(0, (W - i.stepInset - ae.inputAreaStart) / (ae.inputAreaLength - 2 * i.stepInset - 2 * ae.inputAreaStart)));
              }
              function se(J, W, ae) {
                var oe = ae._dims, ve = u.ensureSingle(J, "rect", i.railTouchRectClass, function(fe) {
                  fe.call(ne, W, J, ae).style("pointer-events", "all");
                });
                ve.attr({
                  width: oe.inputAreaLength,
                  height: Math.max(oe.inputAreaWidth, i.tickOffset + ae.ticklen + oe.labelHeight)
                }).call(l.fill, ae.bgcolor).attr("opacity", 0), f.setTranslate(ve, 0, oe.currentValueTotalHeight);
              }
              function me(J, W) {
                var ae = W._dims, oe = ae.inputAreaLength - i.railInset * 2, ve = u.ensureSingle(J, "rect", i.railRectClass);
                ve.attr({
                  width: oe,
                  height: i.railWidth,
                  rx: i.railRadius,
                  ry: i.railRadius,
                  "shape-rendering": "crispEdges"
                }).call(l.stroke, W.bordercolor).call(l.fill, W.bgcolor).style("stroke-width", W.borderwidth + "px"), f.setTranslate(ve, i.railInset, (ae.inputAreaWidth - i.railWidth) * 0.5 + ae.currentValueTotalHeight);
              }
            }
          ),
          /***/
          7544: (
            /***/
            function(M, L, r) {
              var a = r(876);
              M.exports = {
                moduleType: "component",
                name: a.name,
                layoutAttributes: r(9861),
                supplyLayoutDefaults: r(8132),
                draw: r(9664)
              };
            }
          ),
          /***/
          1668: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(8248), l = r(7316), f = r(4040), u = r(3400), c = u.strTranslate, d = r(3616), h = r(6308), i = r(2736), b = r(3448), x = r(4284).OPPOSITE_SIDE, D = / [XY][0-9]* /;
              function C(w, S, T) {
                var k = T.propContainer, A = T.propName, R = T.placeholder, g = T.traceIndex, I = T.avoid || {}, O = T.attributes, $ = T.transform, Y = T.containerGroup, ne = w._fullLayout, q = 1, B = !1, X = k.title, U = (X && X.text ? X.text : "").trim(), te = X && X.font ? X.font : {}, se = te.family, me = te.size, J = te.color, W = te.weight, ae = te.style, oe = te.variant, ve = te.textcase, fe = te.lineposition, ye = te.shadow, Ce;
                A === "title.text" ? Ce = "titleText" : A.indexOf("axis") !== -1 ? Ce = "axisTitleText" : A.indexOf("colorbar" !== -1) && (Ce = "colorbarTitleText");
                var Re = w._context.edits[Ce];
                U === "" ? q = 0 : U.replace(D, " % ") === R.replace(D, " % ") && (q = 0.2, B = !0, Re || (U = "")), T._meta ? U = u.templateString(U, T._meta) : ne._meta && (U = u.templateString(U, ne._meta));
                var Be = U || Re, xe;
                Y || (Y = u.ensureSingle(ne._infolayer, "g", "g-" + S), xe = ne._hColorbarMoveTitle);
                var Me = Y.selectAll("text").data(Be ? [0] : []);
                if (Me.enter().append("text"), Me.text(U).attr("class", S), Me.exit().remove(), !Be)
                  return Y;
                function De(G) {
                  u.syncOrAsync([Z, ee], G);
                }
                function Z(G) {
                  var H;
                  return !$ && xe && ($ = {}), $ ? (H = "", $.rotate && (H += "rotate(" + [$.rotate, O.x, O.y] + ")"), ($.offset || xe) && (H += c(0, ($.offset || 0) - (xe || 0)))) : H = null, G.attr("transform", H), G.style("opacity", q * h.opacity(J)).call(d.font, {
                    color: h.rgb(J),
                    size: a.round(me, 2),
                    family: se,
                    weight: W,
                    style: ae,
                    variant: oe,
                    textcase: ve,
                    shadow: ye,
                    lineposition: fe
                  }).attr(O).call(i.convertToTspans, w), l.previousPromises(w);
                }
                function ee(G) {
                  var H = a.select(G.node().parentNode);
                  if (I && I.selection && I.side && U) {
                    H.attr("transform", null);
                    var ce = x[I.side], j = I.side === "left" || I.side === "top" ? -1 : 1, he = p(I.pad) ? I.pad : 2, be = d.bBox(H.node()), we = {
                      t: 0,
                      b: 0,
                      l: 0,
                      r: 0
                    }, Ie = w._fullLayout._reservedMargin;
                    for (var Ge in Ie)
                      for (var Ve in Ie[Ge]) {
                        var Je = Ie[Ge][Ve];
                        we[Ve] = Math.max(we[Ve], Je);
                      }
                    var et = {
                      left: we.l,
                      top: we.t,
                      right: ne.width - we.r,
                      bottom: ne.height - we.b
                    }, at = I.maxShift || j * (et[I.side] - be[I.side]), Le = 0;
                    if (at < 0)
                      Le = at;
                    else {
                      var ze = I.offsetLeft || 0, Oe = I.offsetTop || 0;
                      be.left -= ze, be.right -= ze, be.top -= Oe, be.bottom -= Oe, I.selection.each(function() {
                        var it = d.bBox(this);
                        u.bBoxIntersect(be, it, he) && (Le = Math.max(Le, j * (it[I.side] - be[ce]) + he));
                      }), Le = Math.min(at, Le), k._titleScoot = Math.abs(Le);
                    }
                    if (Le > 0 || at < 0) {
                      var Xe = {
                        left: [-Le, 0],
                        right: [Le, 0],
                        top: [0, -Le],
                        bottom: [0, Le]
                      }[I.side];
                      H.attr("transform", c(Xe[0], Xe[1]));
                    }
                  }
                }
                Me.call(De);
                function ie() {
                  q = 0, B = !0, Me.text(R).on("mouseover.opacity", function() {
                    a.select(this).transition().duration(b.SHOW_PLACEHOLDER).style("opacity", 1);
                  }).on("mouseout.opacity", function() {
                    a.select(this).transition().duration(b.HIDE_PLACEHOLDER).style("opacity", 0);
                  });
                }
                return Re && (U ? Me.on(".opacity", null) : ie(), Me.call(i.makeEditable, {
                  gd: w
                }).on("edit", function(G) {
                  g !== void 0 ? f.call("_guiRestyle", w, A, G, g) : f.call("_guiRelayout", w, A, G);
                }).on("cancel", function() {
                  this.text(this.attr("data-unformatted")).call(De);
                }).on("input", function(G) {
                  this.text(G || " ").call(i.positionText, O.x, O.y);
                })), Me.classed("js-placeholder", B), Y;
              }
              M.exports = {
                draw: C
              };
            }
          ),
          /***/
          8444: (
            /***/
            function(M, L, r) {
              var a = r(5376), p = r(2548), l = r(2880).extendFlat, f = r(7824).overrideAll, u = r(6741), c = r(1780).templatedArray, d = c("button", {
                visible: {
                  valType: "boolean"
                },
                method: {
                  valType: "enumerated",
                  values: ["restyle", "relayout", "animate", "update", "skip"],
                  dflt: "restyle"
                },
                args: {
                  valType: "info_array",
                  freeLength: !0,
                  items: [{
                    valType: "any"
                  }, {
                    valType: "any"
                  }, {
                    valType: "any"
                  }]
                },
                args2: {
                  valType: "info_array",
                  freeLength: !0,
                  items: [{
                    valType: "any"
                  }, {
                    valType: "any"
                  }, {
                    valType: "any"
                  }]
                },
                label: {
                  valType: "string",
                  dflt: ""
                },
                execute: {
                  valType: "boolean",
                  dflt: !0
                }
              });
              M.exports = f(c("updatemenu", {
                _arrayAttrRegexps: [/^updatemenus\[(0|[1-9][0-9]+)\]\.buttons/],
                visible: {
                  valType: "boolean"
                },
                type: {
                  valType: "enumerated",
                  values: ["dropdown", "buttons"],
                  dflt: "dropdown"
                },
                direction: {
                  valType: "enumerated",
                  values: ["left", "right", "up", "down"],
                  dflt: "down"
                },
                active: {
                  valType: "integer",
                  min: -1,
                  dflt: 0
                },
                showactive: {
                  valType: "boolean",
                  dflt: !0
                },
                buttons: d,
                x: {
                  valType: "number",
                  min: -2,
                  max: 3,
                  dflt: -0.05
                },
                xanchor: {
                  valType: "enumerated",
                  values: ["auto", "left", "center", "right"],
                  dflt: "right"
                },
                y: {
                  valType: "number",
                  min: -2,
                  max: 3,
                  dflt: 1
                },
                yanchor: {
                  valType: "enumerated",
                  values: ["auto", "top", "middle", "bottom"],
                  dflt: "top"
                },
                pad: l(u({
                  editType: "arraydraw"
                }), {}),
                font: a({}),
                bgcolor: {
                  valType: "color"
                },
                bordercolor: {
                  valType: "color",
                  dflt: p.borderLine
                },
                borderwidth: {
                  valType: "number",
                  min: 0,
                  dflt: 1,
                  editType: "arraydraw"
                }
              }), "arraydraw", "from-root");
            }
          ),
          /***/
          1331: (
            /***/
            function(M) {
              M.exports = {
                // layout attribute name
                name: "updatemenus",
                // class names
                containerClassName: "updatemenu-container",
                headerGroupClassName: "updatemenu-header-group",
                headerClassName: "updatemenu-header",
                headerArrowClassName: "updatemenu-header-arrow",
                dropdownButtonGroupClassName: "updatemenu-dropdown-button-group",
                dropdownButtonClassName: "updatemenu-dropdown-button",
                buttonClassName: "updatemenu-button",
                itemRectClassName: "updatemenu-item-rect",
                itemTextClassName: "updatemenu-item-text",
                // DOM attribute name in button group keeping track
                // of active update menu
                menuIndexAttrName: "updatemenu-active-index",
                // id root pass to Plots.autoMargin
                autoMarginIdRoot: "updatemenu-",
                // options when 'active: -1'
                blankHeaderOpts: {
                  label: "  "
                },
                // min item width / height
                minWidth: 30,
                minHeight: 30,
                // padding around item text
                textPadX: 24,
                arrowPadX: 16,
                // item rect radii
                rx: 2,
                ry: 2,
                // item  text x offset off left edge
                textOffsetX: 12,
                // item  text y offset (w.r.t. middle)
                textOffsetY: 3,
                // arrow offset off right edge
                arrowOffsetX: 4,
                // gap between header and buttons
                gapButtonHeader: 5,
                // gap between between buttons
                gapButton: 2,
                // color given to active buttons
                activeColor: "#F4FAFF",
                // color given to hovered buttons
                hoverColor: "#F4FAFF",
                // symbol for menu open arrow
                arrowSymbol: {
                  left: "◄",
                  right: "►",
                  up: "▲",
                  down: "▼"
                }
              };
            }
          ),
          /***/
          1384: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(1272), l = r(8444), f = r(1331), u = f.name, c = l.buttons;
              M.exports = function(b, x) {
                var D = {
                  name: u,
                  handleItemDefaults: d
                };
                p(b, x, D);
              };
              function d(i, b, x) {
                function D(S, T) {
                  return a.coerce(i, b, l, S, T);
                }
                var C = p(i, b, {
                  name: "buttons",
                  handleItemDefaults: h
                }), w = D("visible", C.length > 0);
                w && (D("active"), D("direction"), D("type"), D("showactive"), D("x"), D("y"), a.noneOrAll(i, b, ["x", "y"]), D("xanchor"), D("yanchor"), D("pad.t"), D("pad.r"), D("pad.b"), D("pad.l"), a.coerceFont(D, "font", x.font), D("bgcolor", x.paper_bgcolor), D("bordercolor"), D("borderwidth"));
              }
              function h(i, b) {
                function x(C, w) {
                  return a.coerce(i, b, c, C, w);
                }
                var D = x("visible", i.method === "skip" || Array.isArray(i.args));
                D && (x("method"), x("args"), x("args2"), x("label"), x("execute"));
              }
            }
          ),
          /***/
          4420: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(7316), l = r(6308), f = r(3616), u = r(3400), c = r(2736), d = r(1780).arrayEditor, h = r(4284).LINE_SPACING, i = r(1331), b = r(7400);
              M.exports = function(te) {
                var se = te._fullLayout, me = u.filterVisible(se[i.name]);
                function J(Re) {
                  p.autoMargin(te, q(Re));
                }
                var W = se._menulayer.selectAll("g." + i.containerClassName).data(me.length > 0 ? [0] : []);
                if (W.enter().append("g").classed(i.containerClassName, !0).style("cursor", "pointer"), W.exit().each(function() {
                  a.select(this).selectAll("g." + i.headerGroupClassName).each(J);
                }).remove(), me.length !== 0) {
                  var ae = W.selectAll("g." + i.headerGroupClassName).data(me, x);
                  ae.enter().append("g").classed(i.headerGroupClassName, !0);
                  for (var oe = u.ensureSingle(W, "g", i.dropdownButtonGroupClassName, function(Re) {
                    Re.style("pointer-events", "all");
                  }), ve = 0; ve < me.length; ve++) {
                    var fe = me[ve];
                    ne(te, fe);
                  }
                  var ye = "updatemenus" + se._uid, Ce = new b(te, oe, ye);
                  ae.enter().size() && (oe.node().parentNode.appendChild(oe.node()), oe.call(X)), ae.exit().each(function(Re) {
                    oe.call(X), J(Re);
                  }).remove(), ae.each(function(Re) {
                    var Be = a.select(this), xe = Re.type === "dropdown" ? oe : null;
                    p.manageCommandObserver(te, Re, Re.buttons, function(Me) {
                      w(te, Re, Re.buttons[Me.index], Be, xe, Ce, Me.index, !0);
                    }), Re.type === "dropdown" ? (S(te, Be, oe, Ce, Re), C(oe, Re) && T(te, Be, oe, Ce, Re)) : T(te, Be, null, null, Re);
                  });
                }
              };
              function x(U) {
                return U._index;
              }
              function D(U) {
                return +U.attr(i.menuIndexAttrName) == -1;
              }
              function C(U, te) {
                return +U.attr(i.menuIndexAttrName) === te._index;
              }
              function w(U, te, se, me, J, W, ae, oe) {
                te.active = ae, d(U.layout, i.name, te).applyUpdate("active", ae), te.type === "buttons" ? T(U, me, null, null, te) : te.type === "dropdown" && (J.attr(i.menuIndexAttrName, "-1"), S(U, me, J, W, te), oe || T(U, me, J, W, te));
              }
              function S(U, te, se, me, J) {
                var W = u.ensureSingle(te, "g", i.headerClassName, function(Re) {
                  Re.style("pointer-events", "all");
                }), ae = J._dims, oe = J.active, ve = J.buttons[oe] || i.blankHeaderOpts, fe = {
                  y: J.pad.t,
                  yPad: 0,
                  x: J.pad.l,
                  xPad: 0,
                  index: 0
                }, ye = {
                  width: ae.headerWidth,
                  height: ae.headerHeight
                };
                W.call(R, J, ve, U).call(B, J, fe, ye);
                var Ce = u.ensureSingle(te, "text", i.headerArrowClassName, function(Re) {
                  Re.attr("text-anchor", "end").call(f.font, J.font).text(i.arrowSymbol[J.direction]);
                });
                Ce.attr({
                  x: ae.headerWidth - i.arrowOffsetX + J.pad.l,
                  y: ae.headerHeight / 2 + i.textOffsetY + J.pad.t
                }), W.on("click", function() {
                  se.call(X, String(C(se, J) ? -1 : J._index)), T(U, te, se, me, J);
                }), W.on("mouseover", function() {
                  W.call($);
                }), W.on("mouseout", function() {
                  W.call(Y, J);
                }), f.setTranslate(te, ae.lx, ae.ly);
              }
              function T(U, te, se, me, J) {
                se || (se = te, se.attr("pointer-events", "all"));
                var W = !D(se) || J.type === "buttons" ? J.buttons : [], ae = J.type === "dropdown" ? i.dropdownButtonClassName : i.buttonClassName, oe = se.selectAll("g." + ae).data(u.filterVisible(W)), ve = oe.enter().append("g").classed(ae, !0), fe = oe.exit();
                J.type === "dropdown" ? (ve.attr("opacity", "0").transition().attr("opacity", "1"), fe.transition().attr("opacity", "0").remove()) : fe.remove();
                var ye = 0, Ce = 0, Re = J._dims, Be = ["up", "down"].indexOf(J.direction) !== -1;
                J.type === "dropdown" && (Be ? Ce = Re.headerHeight + i.gapButtonHeader : ye = Re.headerWidth + i.gapButtonHeader), J.type === "dropdown" && J.direction === "up" && (Ce = -i.gapButtonHeader + i.gapButton - Re.openHeight), J.type === "dropdown" && J.direction === "left" && (ye = -i.gapButtonHeader + i.gapButton - Re.openWidth);
                var xe = {
                  x: Re.lx + ye + J.pad.l,
                  y: Re.ly + Ce + J.pad.t,
                  yPad: i.gapButton,
                  xPad: i.gapButton,
                  index: 0
                }, Me = {
                  l: xe.x + J.borderwidth,
                  t: xe.y + J.borderwidth
                };
                oe.each(function(De, Z) {
                  var ee = a.select(this);
                  ee.call(R, J, De, U).call(B, J, xe), ee.on("click", function() {
                    a.event.defaultPrevented || (De.execute && (De.args2 && J.active === Z ? (w(U, J, De, te, se, me, -1), p.executeAPICommand(U, De.method, De.args2)) : (w(U, J, De, te, se, me, Z), p.executeAPICommand(U, De.method, De.args))), U.emit("plotly_buttonclicked", {
                      menu: J,
                      button: De,
                      active: J.active
                    }));
                  }), ee.on("mouseover", function() {
                    ee.call($);
                  }), ee.on("mouseout", function() {
                    ee.call(Y, J), oe.call(O, J);
                  });
                }), oe.call(O, J), Be ? (Me.w = Math.max(Re.openWidth, Re.headerWidth), Me.h = xe.y - Me.t) : (Me.w = xe.x - Me.l, Me.h = Math.max(Re.openHeight, Re.headerHeight)), Me.direction = J.direction, me && (oe.size() ? k(U, te, se, me, J, Me) : A(me));
              }
              function k(U, te, se, me, J, W) {
                var ae = J.direction, oe = ae === "up" || ae === "down", ve = J._dims, fe = J.active, ye, Ce, Re;
                if (oe)
                  for (Ce = 0, Re = 0; Re < fe; Re++)
                    Ce += ve.heights[Re] + i.gapButton;
                else
                  for (ye = 0, Re = 0; Re < fe; Re++)
                    ye += ve.widths[Re] + i.gapButton;
                me.enable(W, ye, Ce), me.hbar && me.hbar.attr("opacity", "0").transition().attr("opacity", "1"), me.vbar && me.vbar.attr("opacity", "0").transition().attr("opacity", "1");
              }
              function A(U) {
                var te = !!U.hbar, se = !!U.vbar;
                te && U.hbar.transition().attr("opacity", "0").each("end", function() {
                  te = !1, se || U.disable();
                }), se && U.vbar.transition().attr("opacity", "0").each("end", function() {
                  se = !1, te || U.disable();
                });
              }
              function R(U, te, se, me) {
                U.call(g, te).call(I, te, se, me);
              }
              function g(U, te) {
                var se = u.ensureSingle(U, "rect", i.itemRectClassName, function(me) {
                  me.attr({
                    rx: i.rx,
                    ry: i.ry,
                    "shape-rendering": "crispEdges"
                  });
                });
                se.call(l.stroke, te.bordercolor).call(l.fill, te.bgcolor).style("stroke-width", te.borderwidth + "px");
              }
              function I(U, te, se, me) {
                var J = u.ensureSingle(U, "text", i.itemTextClassName, function(oe) {
                  oe.attr({
                    "text-anchor": "start",
                    "data-notex": 1
                  });
                }), W = se.label, ae = me._fullLayout._meta;
                ae && (W = u.templateString(W, ae)), J.call(f.font, te.font).text(W).call(c.convertToTspans, me);
              }
              function O(U, te) {
                var se = te.active;
                U.each(function(me, J) {
                  var W = a.select(this);
                  J === se && te.showactive && W.select("rect." + i.itemRectClassName).call(l.fill, i.activeColor);
                });
              }
              function $(U) {
                U.select("rect." + i.itemRectClassName).call(l.fill, i.hoverColor);
              }
              function Y(U, te) {
                U.select("rect." + i.itemRectClassName).call(l.fill, te.bgcolor);
              }
              function ne(U, te) {
                var se = te._dims = {
                  width1: 0,
                  height1: 0,
                  heights: [],
                  widths: [],
                  totalWidth: 0,
                  totalHeight: 0,
                  openWidth: 0,
                  openHeight: 0,
                  lx: 0,
                  ly: 0
                }, me = f.tester.selectAll("g." + i.dropdownButtonClassName).data(u.filterVisible(te.buttons));
                me.enter().append("g").classed(i.dropdownButtonClassName, !0);
                var J = ["up", "down"].indexOf(te.direction) !== -1;
                me.each(function(ye, Ce) {
                  var Re = a.select(this);
                  Re.call(R, te, ye, U);
                  var Be = Re.select("." + i.itemTextClassName), xe = Be.node() && f.bBox(Be.node()).width, Me = Math.max(xe + i.textPadX, i.minWidth), De = te.font.size * h, Z = c.lineCount(Be), ee = Math.max(De * Z, i.minHeight) + i.textOffsetY;
                  ee = Math.ceil(ee), Me = Math.ceil(Me), se.widths[Ce] = Me, se.heights[Ce] = ee, se.height1 = Math.max(se.height1, ee), se.width1 = Math.max(se.width1, Me), J ? (se.totalWidth = Math.max(se.totalWidth, Me), se.openWidth = se.totalWidth, se.totalHeight += ee + i.gapButton, se.openHeight += ee + i.gapButton) : (se.totalWidth += Me + i.gapButton, se.openWidth += Me + i.gapButton, se.totalHeight = Math.max(se.totalHeight, ee), se.openHeight = se.totalHeight);
                }), J ? se.totalHeight -= i.gapButton : se.totalWidth -= i.gapButton, se.headerWidth = se.width1 + i.arrowPadX, se.headerHeight = se.height1, te.type === "dropdown" && (J ? (se.width1 += i.arrowPadX, se.totalHeight = se.height1) : se.totalWidth = se.width1, se.totalWidth += i.arrowPadX), me.remove();
                var W = se.totalWidth + te.pad.l + te.pad.r, ae = se.totalHeight + te.pad.t + te.pad.b, oe = U._fullLayout._size;
                se.lx = oe.l + oe.w * te.x, se.ly = oe.t + oe.h * (1 - te.y);
                var ve = "left";
                u.isRightAnchor(te) && (se.lx -= W, ve = "right"), u.isCenterAnchor(te) && (se.lx -= W / 2, ve = "center");
                var fe = "top";
                u.isBottomAnchor(te) && (se.ly -= ae, fe = "bottom"), u.isMiddleAnchor(te) && (se.ly -= ae / 2, fe = "middle"), se.totalWidth = Math.ceil(se.totalWidth), se.totalHeight = Math.ceil(se.totalHeight), se.lx = Math.round(se.lx), se.ly = Math.round(se.ly), p.autoMargin(U, q(te), {
                  x: te.x,
                  y: te.y,
                  l: W * ({
                    right: 1,
                    center: 0.5
                  }[ve] || 0),
                  r: W * ({
                    left: 1,
                    center: 0.5
                  }[ve] || 0),
                  b: ae * ({
                    top: 1,
                    middle: 0.5
                  }[fe] || 0),
                  t: ae * ({
                    bottom: 1,
                    middle: 0.5
                  }[fe] || 0)
                });
              }
              function q(U) {
                return i.autoMarginIdRoot + U._index;
              }
              function B(U, te, se, me) {
                me = me || {};
                var J = U.select("." + i.itemRectClassName), W = U.select("." + i.itemTextClassName), ae = te.borderwidth, oe = se.index, ve = te._dims;
                f.setTranslate(U, ae + se.x, ae + se.y);
                var fe = ["up", "down"].indexOf(te.direction) !== -1, ye = me.height || (fe ? ve.heights[oe] : ve.height1);
                J.attr({
                  x: 0,
                  y: 0,
                  width: me.width || (fe ? ve.width1 : ve.widths[oe]),
                  height: ye
                });
                var Ce = te.font.size * h, Re = c.lineCount(W), Be = (Re - 1) * Ce / 2;
                c.positionText(W, i.textOffsetX, ye / 2 - Be + i.textOffsetY), fe ? se.y += ve.heights[oe] + se.yPad : se.x += ve.widths[oe] + se.xPad, se.index++;
              }
              function X(U, te) {
                U.attr(i.menuIndexAttrName, te || "-1").selectAll("g." + i.dropdownButtonClassName).remove();
              }
            }
          ),
          /***/
          6908: (
            /***/
            function(M, L, r) {
              var a = r(1331);
              M.exports = {
                moduleType: "component",
                name: a.name,
                layoutAttributes: r(8444),
                supplyLayoutDefaults: r(1384),
                draw: r(4420)
              };
            }
          ),
          /***/
          7400: (
            /***/
            function(M, L, r) {
              M.exports = u;
              var a = r(3428), p = r(6308), l = r(3616), f = r(3400);
              function u(c, d, h) {
                this.gd = c, this.container = d, this.id = h, this.position = null, this.translateX = null, this.translateY = null, this.hbar = null, this.vbar = null, this.bg = this.container.selectAll("rect.scrollbox-bg").data([0]), this.bg.exit().on(".drag", null).on("wheel", null).remove(), this.bg.enter().append("rect").classed("scrollbox-bg", !0).style("pointer-events", "all").attr({
                  opacity: 0,
                  x: 0,
                  y: 0,
                  width: 0,
                  height: 0
                });
              }
              u.barWidth = 2, u.barLength = 20, u.barRadius = 2, u.barPad = 1, u.barColor = "#808BA4", u.prototype.enable = function(d, h, i) {
                var b = this.gd._fullLayout, x = b.width, D = b.height;
                this.position = d;
                var C = this.position.l, w = this.position.w, S = this.position.t, T = this.position.h, k = this.position.direction, A = k === "down", R = k === "left", g = k === "right", I = k === "up", O = w, $ = T, Y, ne, q, B;
                !A && !R && !g && !I && (this.position.direction = "down", A = !0);
                var X = A || I;
                X ? (Y = C, ne = Y + O, A ? (q = S, B = Math.min(q + $, D), $ = B - q) : (B = S + $, q = Math.max(B - $, 0), $ = B - q)) : (q = S, B = q + $, R ? (ne = C + O, Y = Math.max(ne - O, 0), O = ne - Y) : (Y = C, ne = Math.min(Y + O, x), O = ne - Y)), this._box = {
                  l: Y,
                  t: q,
                  w: O,
                  h: $
                };
                var U = w > O, te = u.barLength + 2 * u.barPad, se = u.barWidth + 2 * u.barPad, me = C, J = S + T;
                J + se > D && (J = D - se);
                var W = this.container.selectAll("rect.scrollbar-horizontal").data(U ? [0] : []);
                W.exit().on(".drag", null).remove(), W.enter().append("rect").classed("scrollbar-horizontal", !0).call(p.fill, u.barColor), U ? (this.hbar = W.attr({
                  rx: u.barRadius,
                  ry: u.barRadius,
                  x: me,
                  y: J,
                  width: te,
                  height: se
                }), this._hbarXMin = me + te / 2, this._hbarTranslateMax = O - te) : (delete this.hbar, delete this._hbarXMin, delete this._hbarTranslateMax);
                var ae = T > $, oe = u.barWidth + 2 * u.barPad, ve = u.barLength + 2 * u.barPad, fe = C + w, ye = S;
                fe + oe > x && (fe = x - oe);
                var Ce = this.container.selectAll("rect.scrollbar-vertical").data(ae ? [0] : []);
                Ce.exit().on(".drag", null).remove(), Ce.enter().append("rect").classed("scrollbar-vertical", !0).call(p.fill, u.barColor), ae ? (this.vbar = Ce.attr({
                  rx: u.barRadius,
                  ry: u.barRadius,
                  x: fe,
                  y: ye,
                  width: oe,
                  height: ve
                }), this._vbarYMin = ye + ve / 2, this._vbarTranslateMax = $ - ve) : (delete this.vbar, delete this._vbarYMin, delete this._vbarTranslateMax);
                var Re = this.id, Be = Y - 0.5, xe = ae ? ne + oe + 0.5 : ne + 0.5, Me = q - 0.5, De = U ? B + se + 0.5 : B + 0.5, Z = b._topdefs.selectAll("#" + Re).data(U || ae ? [0] : []);
                if (Z.exit().remove(), Z.enter().append("clipPath").attr("id", Re).append("rect"), U || ae ? (this._clipRect = Z.select("rect").attr({
                  x: Math.floor(Be),
                  y: Math.floor(Me),
                  width: Math.ceil(xe) - Math.floor(Be),
                  height: Math.ceil(De) - Math.floor(Me)
                }), this.container.call(l.setClipUrl, Re, this.gd), this.bg.attr({
                  x: C,
                  y: S,
                  width: w,
                  height: T
                })) : (this.bg.attr({
                  width: 0,
                  height: 0
                }), this.container.on("wheel", null).on(".drag", null).call(l.setClipUrl, null), delete this._clipRect), U || ae) {
                  var ee = a.behavior.drag().on("dragstart", function() {
                    a.event.sourceEvent.preventDefault();
                  }).on("drag", this._onBoxDrag.bind(this));
                  this.container.on("wheel", null).on("wheel", this._onBoxWheel.bind(this)).on(".drag", null).call(ee);
                  var ie = a.behavior.drag().on("dragstart", function() {
                    a.event.sourceEvent.preventDefault(), a.event.sourceEvent.stopPropagation();
                  }).on("drag", this._onBarDrag.bind(this));
                  U && this.hbar.on(".drag", null).call(ie), ae && this.vbar.on(".drag", null).call(ie);
                }
                this.setTranslate(h, i);
              }, u.prototype.disable = function() {
                (this.hbar || this.vbar) && (this.bg.attr({
                  width: 0,
                  height: 0
                }), this.container.on("wheel", null).on(".drag", null).call(l.setClipUrl, null), delete this._clipRect), this.hbar && (this.hbar.on(".drag", null), this.hbar.remove(), delete this.hbar, delete this._hbarXMin, delete this._hbarTranslateMax), this.vbar && (this.vbar.on(".drag", null), this.vbar.remove(), delete this.vbar, delete this._vbarYMin, delete this._vbarTranslateMax);
              }, u.prototype._onBoxDrag = function() {
                var d = this.translateX, h = this.translateY;
                this.hbar && (d -= a.event.dx), this.vbar && (h -= a.event.dy), this.setTranslate(d, h);
              }, u.prototype._onBoxWheel = function() {
                var d = this.translateX, h = this.translateY;
                this.hbar && (d += a.event.deltaY), this.vbar && (h += a.event.deltaY), this.setTranslate(d, h);
              }, u.prototype._onBarDrag = function() {
                var d = this.translateX, h = this.translateY;
                if (this.hbar) {
                  var i = d + this._hbarXMin, b = i + this._hbarTranslateMax, x = f.constrain(a.event.x, i, b), D = (x - i) / (b - i), C = this.position.w - this._box.w;
                  d = D * C;
                }
                if (this.vbar) {
                  var w = h + this._vbarYMin, S = w + this._vbarTranslateMax, T = f.constrain(a.event.y, w, S), k = (T - w) / (S - w), A = this.position.h - this._box.h;
                  h = k * A;
                }
                this.setTranslate(d, h);
              }, u.prototype.setTranslate = function(d, h) {
                var i = this.position.w - this._box.w, b = this.position.h - this._box.h;
                if (d = f.constrain(d || 0, 0, i), h = f.constrain(h || 0, 0, b), this.translateX = d, this.translateY = h, this.container.call(l.setTranslate, this._box.l - this.position.l - d, this._box.t - this.position.t - h), this._clipRect && this._clipRect.attr({
                  x: Math.floor(this.position.l + d - 0.5),
                  y: Math.floor(this.position.t + h - 0.5)
                }), this.hbar) {
                  var x = d / i;
                  this.hbar.call(l.setTranslate, d + x * this._hbarTranslateMax, h);
                }
                if (this.vbar) {
                  var D = h / b;
                  this.vbar.call(l.setTranslate, d, h + D * this._vbarTranslateMax);
                }
              };
            }
          ),
          /***/
          4284: (
            /***/
            function(M) {
              M.exports = {
                // from bottom left: this is the origin of our paper-reference
                // positioning system
                FROM_BL: {
                  left: 0,
                  center: 0.5,
                  right: 1,
                  bottom: 0,
                  middle: 0.5,
                  top: 1
                },
                // from top left: this is the screen pixel positioning origin
                FROM_TL: {
                  left: 0,
                  center: 0.5,
                  right: 1,
                  bottom: 1,
                  middle: 0.5,
                  top: 0
                },
                // from bottom right: sometimes you just need the opposite of ^^
                FROM_BR: {
                  left: 1,
                  center: 0.5,
                  right: 0,
                  bottom: 0,
                  middle: 0.5,
                  top: 1
                },
                // multiple of fontSize to get the vertical offset between lines
                LINE_SPACING: 1.3,
                // multiple of fontSize to shift from the baseline
                // to the cap (captical letter) line
                // (to use when we don't calculate this shift from Drawing.bBox)
                // This is an approximation since in reality cap height can differ
                // from font to font. However, according to Wikipedia
                //   an "average" font might have a cap height of 70% of the em
                // https://en.wikipedia.org/wiki/Em_(typography)#History
                CAP_SHIFT: 0.7,
                // half the cap height (distance between baseline and cap line)
                // of an "average" font (for more info see above).
                MID_SHIFT: 0.35,
                OPPOSITE_SIDE: {
                  left: "right",
                  right: "left",
                  top: "bottom",
                  bottom: "top"
                }
              };
            }
          ),
          /***/
          6208: (
            /***/
            function(M) {
              M.exports = {
                axisRefDescription: function(L, r, a) {
                  return ["If set to a", L, "axis id (e.g. *" + L + "* or", "*" + L + "2*), the `" + L + "` position refers to a", L, "coordinate. If set to *paper*, the `" + L + "`", "position refers to the distance from the", r, "of the plotting", "area in normalized coordinates where *0* (*1*) corresponds to the", r, "(" + a + "). If set to a", L, "axis ID followed by", "*domain* (separated by a space), the position behaves like for", "*paper*, but refers to the distance in fractions of the domain", "length from the", r, "of the domain of that axis: e.g.,", "*" + L + "2 domain* refers to the domain of the second", L, " axis and a", L, "position of 0.5 refers to the", "point between the", r, "and the", a, "of the domain of the", "second", L, "axis."].join(" ");
                }
              };
            }
          ),
          /***/
          6880: (
            /***/
            function(M) {
              M.exports = {
                FORMAT_LINK: "https://github.com/d3/d3-format/tree/v1.4.5#d3-format",
                DATE_FORMAT_LINK: "https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format"
              };
            }
          ),
          /***/
          9104: (
            /***/
            function(M) {
              M.exports = {
                COMPARISON_OPS: ["=", "!=", "<", ">=", ">", "<="],
                COMPARISON_OPS2: ["=", "<", ">=", ">", "<="],
                INTERVAL_OPS: ["[]", "()", "[)", "(]", "][", ")(", "](", ")["],
                SET_OPS: ["{}", "}{"],
                CONSTRAINT_REDUCTION: {
                  // for contour constraints, open/closed endpoints are equivalent
                  "=": "=",
                  "<": "<",
                  "<=": "<",
                  ">": ">",
                  ">=": ">",
                  "[]": "[]",
                  "()": "[]",
                  "[)": "[]",
                  "(]": "[]",
                  "][": "][",
                  ")(": "][",
                  "](": "][",
                  ")[": "]["
                }
              };
            }
          ),
          /***/
          3448: (
            /***/
            function(M) {
              M.exports = {
                /**
                 * Timing information for interactive elements
                 */
                SHOW_PLACEHOLDER: 100,
                HIDE_PLACEHOLDER: 1e3,
                // opacity dimming fraction for points that are not in selection
                DESELECTDIM: 0.2
              };
            }
          ),
          /***/
          9032: (
            /***/
            function(M) {
              M.exports = {
                /**
                 * Standardize all missing data in calcdata to use undefined
                 * never null or NaN.
                 * That way we can use !==undefined, or !== BADNUM,
                 * to test for real data
                 */
                BADNUM: void 0,
                /*
                 * Limit certain operations to well below floating point max value
                 * to avoid glitches: Make sure that even when you multiply it by the
                 * number of pixels on a giant screen it still works
                 */
                FP_SAFE: Number.MAX_VALUE * 1e-4,
                /*
                 * conversion of date units to milliseconds
                 * year and month constants are marked "AVG"
                 * to remind us that not all years and months
                 * have the same length
                 */
                ONEMAXYEAR: 316224e5,
                // 366 * ONEDAY
                ONEAVGYEAR: 315576e5,
                // 365.25 days
                ONEMINYEAR: 31536e6,
                // 365 * ONEDAY
                ONEMAXQUARTER: 79488e5,
                // 92 * ONEDAY
                ONEAVGQUARTER: 78894e5,
                // 1/4 of ONEAVGYEAR
                ONEMINQUARTER: 76896e5,
                // 89 * ONEDAY
                ONEMAXMONTH: 26784e5,
                // 31 * ONEDAY
                ONEAVGMONTH: 26298e5,
                // 1/12 of ONEAVGYEAR
                ONEMINMONTH: 24192e5,
                // 28 * ONEDAY
                ONEWEEK: 6048e5,
                // 7 * ONEDAY
                ONEDAY: 864e5,
                // 24 * ONEHOUR
                ONEHOUR: 36e5,
                ONEMIN: 6e4,
                ONESEC: 1e3,
                /*
                 * For fast conversion btwn world calendars and epoch ms, the Julian Day Number
                 * of the unix epoch. From calendars.instance().newDate(1970, 1, 1).toJD()
                 */
                EPOCHJD: 24405875e-1,
                /*
                 * Are two values nearly equal? Compare to 1PPM
                 */
                ALMOST_EQUAL: 0.999999,
                /*
                 * If we're asked to clip a non-positive log value, how far off-screen
                 * do we put it?
                 */
                LOG_CLIP: 10,
                /*
                 * not a number, but for displaying numbers: the "minus sign" symbol is
                 * wider than the regular ascii dash "-"
                 */
                MINUS_SIGN: "−"
              };
            }
          ),
          /***/
          9616: (
            /***/
            function(M, L) {
              L.xmlns = "http://www.w3.org/2000/xmlns/", L.svg = "http://www.w3.org/2000/svg", L.xlink = "http://www.w3.org/1999/xlink", L.svgAttrs = {
                xmlns: L.svg,
                "xmlns:xlink": L.xlink
              };
            }
          ),
          /***/
          4884: (
            /***/
            function(M, L, r) {
              L.version = r(5788).version, r(8324), r(9288);
              for (var a = r(4040), p = L.register = a.register, l = r(2448), f = Object.keys(l), u = 0; u < f.length; u++) {
                var c = f[u];
                c.charAt(0) !== "_" && (L[c] = l[c]), p({
                  moduleType: "apiMethod",
                  name: c,
                  fn: l[c]
                });
              }
              p(r(5875)), p([
                r(9180),
                r(6864),
                r(2676),
                r(1592),
                r(7402),
                r(6908),
                r(7544),
                r(9692),
                r(1152),
                r(2704),
                r(4968),
                r(8932),
                r(5080),
                r(2780),
                // legend needs to come after shape | legend defaults depends on shapes
                r(3024),
                // fx needs to come after legend | unified hover defaults depends on legends
                r(3080)
              ]), p([r(6580), r(1680)]), window.PlotlyLocales && Array.isArray(window.PlotlyLocales) && (p(window.PlotlyLocales), delete window.PlotlyLocales), L.Icons = r(9224);
              var d = r(3024), h = r(7316);
              L.Plots = {
                resize: h.resize,
                graphJson: h.graphJson,
                sendDataToCloud: h.sendDataToCloud
              }, L.Fx = {
                hover: d.hover,
                unhover: d.unhover,
                loneHover: d.loneHover,
                loneUnhover: d.loneUnhover
              }, L.Snapshot = r(8904), L.PlotSchema = r(3060);
            }
          ),
          /***/
          9224: (
            /***/
            function(M) {
              M.exports = {
                undo: {
                  width: 857.1,
                  height: 1e3,
                  path: "m857 350q0-87-34-166t-91-137-137-92-166-34q-96 0-183 41t-147 114q-4 6-4 13t5 11l76 77q6 5 14 5 9-1 13-7 41-53 100-82t126-29q58 0 110 23t92 61 61 91 22 111-22 111-61 91-92 61-110 23q-55 0-105-20t-90-57l77-77q17-16 8-38-10-23-33-23h-250q-15 0-25 11t-11 25v250q0 24 22 33 22 10 39-8l72-72q60 57 137 88t159 31q87 0 166-34t137-92 91-137 34-166z",
                  transform: "matrix(1 0 0 -1 0 850)"
                },
                home: {
                  width: 928.6,
                  height: 1e3,
                  path: "m786 296v-267q0-15-11-26t-25-10h-214v214h-143v-214h-214q-15 0-25 10t-11 26v267q0 1 0 2t0 2l321 264 321-264q1-1 1-4z m124 39l-34-41q-5-5-12-6h-2q-7 0-12 3l-386 322-386-322q-7-4-13-4-7 2-12 7l-35 41q-4 5-3 13t6 12l401 334q18 15 42 15t43-15l136-114v109q0 8 5 13t13 5h107q8 0 13-5t5-13v-227l122-102q5-5 6-12t-4-13z",
                  transform: "matrix(1 0 0 -1 0 850)"
                },
                "camera-retro": {
                  width: 1e3,
                  height: 1e3,
                  path: "m518 386q0 8-5 13t-13 5q-37 0-63-27t-26-63q0-8 5-13t13-5 12 5 5 13q0 23 16 38t38 16q8 0 13 5t5 13z m125-73q0-59-42-101t-101-42-101 42-42 101 42 101 101 42 101-42 42-101z m-572-320h858v71h-858v-71z m643 320q0 89-62 152t-152 62-151-62-63-152 63-151 151-63 152 63 62 151z m-571 358h214v72h-214v-72z m-72-107h858v143h-462l-36-71h-360v-72z m929 143v-714q0-30-21-51t-50-21h-858q-29 0-50 21t-21 51v714q0 30 21 51t50 21h858q29 0 50-21t21-51z",
                  transform: "matrix(1 0 0 -1 0 850)"
                },
                zoombox: {
                  width: 1e3,
                  height: 1e3,
                  path: "m1000-25l-250 251c40 63 63 138 63 218 0 224-182 406-407 406-224 0-406-182-406-406s183-406 407-406c80 0 155 22 218 62l250-250 125 125z m-812 250l0 438 437 0 0-438-437 0z m62 375l313 0 0-312-313 0 0 312z",
                  transform: "matrix(1 0 0 -1 0 850)"
                },
                pan: {
                  width: 1e3,
                  height: 1e3,
                  path: "m1000 350l-187 188 0-125-250 0 0 250 125 0-188 187-187-187 125 0 0-250-250 0 0 125-188-188 186-187 0 125 252 0 0-250-125 0 187-188 188 188-125 0 0 250 250 0 0-126 187 188z",
                  transform: "matrix(1 0 0 -1 0 850)"
                },
                zoom_plus: {
                  width: 875,
                  height: 1e3,
                  path: "m1 787l0-875 875 0 0 875-875 0z m687-500l-187 0 0-187-125 0 0 187-188 0 0 125 188 0 0 187 125 0 0-187 187 0 0-125z",
                  transform: "matrix(1 0 0 -1 0 850)"
                },
                zoom_minus: {
                  width: 875,
                  height: 1e3,
                  path: "m0 788l0-876 875 0 0 876-875 0z m688-500l-500 0 0 125 500 0 0-125z",
                  transform: "matrix(1 0 0 -1 0 850)"
                },
                autoscale: {
                  width: 1e3,
                  height: 1e3,
                  path: "m250 850l-187 0-63 0 0-62 0-188 63 0 0 188 187 0 0 62z m688 0l-188 0 0-62 188 0 0-188 62 0 0 188 0 62-62 0z m-875-938l0 188-63 0 0-188 0-62 63 0 187 0 0 62-187 0z m875 188l0-188-188 0 0-62 188 0 62 0 0 62 0 188-62 0z m-125 188l-1 0-93-94-156 156 156 156 92-93 2 0 0 250-250 0 0-2 93-92-156-156-156 156 94 92 0 2-250 0 0-250 0 0 93 93 157-156-157-156-93 94 0 0 0-250 250 0 0 0-94 93 156 157 156-157-93-93 0 0 250 0 0 250z",
                  transform: "matrix(1 0 0 -1 0 850)"
                },
                tooltip_basic: {
                  width: 1500,
                  height: 1e3,
                  path: "m375 725l0 0-375-375 375-374 0-1 1125 0 0 750-1125 0z",
                  transform: "matrix(1 0 0 -1 0 850)"
                },
                tooltip_compare: {
                  width: 1125,
                  height: 1e3,
                  path: "m187 786l0 2-187-188 188-187 0 0 937 0 0 373-938 0z m0-499l0 1-187-188 188-188 0 0 937 0 0 376-938-1z",
                  transform: "matrix(1 0 0 -1 0 850)"
                },
                plotlylogo: {
                  width: 1542,
                  height: 1e3,
                  path: "m0-10h182v-140h-182v140z m228 146h183v-286h-183v286z m225 714h182v-1000h-182v1000z m225-285h182v-715h-182v715z m225 142h183v-857h-183v857z m231-428h182v-429h-182v429z m225-291h183v-138h-183v138z",
                  transform: "matrix(1 0 0 -1 0 850)"
                },
                "z-axis": {
                  width: 1e3,
                  height: 1e3,
                  path: "m833 5l-17 108v41l-130-65 130-66c0 0 0 38 0 39 0-1 36-14 39-25 4-15-6-22-16-30-15-12-39-16-56-20-90-22-187-23-279-23-261 0-341 34-353 59 3 60 228 110 228 110-140-8-351-35-351-116 0-120 293-142 474-142 155 0 477 22 477 142 0 50-74 79-163 96z m-374 94c-58-5-99-21-99-40 0-24 65-43 144-43 79 0 143 19 143 43 0 19-42 34-98 40v216h87l-132 135-133-135h88v-216z m167 515h-136v1c16 16 31 34 46 52l84 109v54h-230v-71h124v-1c-16-17-28-32-44-51l-89-114v-51h245v72z",
                  transform: "matrix(1 0 0 -1 0 850)"
                },
                "3d_rotate": {
                  width: 1e3,
                  height: 1e3,
                  path: "m922 660c-5 4-9 7-14 11-359 263-580-31-580-31l-102 28 58-400c0 1 1 1 2 2 118 108 351 249 351 249s-62 27-100 42c88 83 222 183 347 122 16-8 30-17 44-27-2 1-4 2-6 4z m36-329c0 0 64 229-88 296-62 27-124 14-175-11 157-78 225-208 249-266 8-19 11-31 11-31 2 5 6 15 11 32-5-13-8-20-8-20z m-775-239c70-31 117-50 198-32-121 80-199 346-199 346l-96-15-58-12c0 0 55-226 155-287z m603 133l-317-139c0 0 4-4 19-14 7-5 24-15 24-15s-177-147-389 4c235-287 536-112 536-112l31-22 100 299-4-1z m-298-153c6-4 14-9 24-15 0 0-17 10-24 15z",
                  transform: "matrix(1 0 0 -1 0 850)"
                },
                camera: {
                  width: 1e3,
                  height: 1e3,
                  path: "m500 450c-83 0-150-67-150-150 0-83 67-150 150-150 83 0 150 67 150 150 0 83-67 150-150 150z m400 150h-120c-16 0-34 13-39 29l-31 93c-6 15-23 28-40 28h-340c-16 0-34-13-39-28l-31-94c-6-15-23-28-40-28h-120c-55 0-100-45-100-100v-450c0-55 45-100 100-100h800c55 0 100 45 100 100v450c0 55-45 100-100 100z m-400-550c-138 0-250 112-250 250 0 138 112 250 250 250 138 0 250-112 250-250 0-138-112-250-250-250z m365 380c-19 0-35 16-35 35 0 19 16 35 35 35 19 0 35-16 35-35 0-19-16-35-35-35z",
                  transform: "matrix(1 0 0 -1 0 850)"
                },
                movie: {
                  width: 1e3,
                  height: 1e3,
                  path: "m938 413l-188-125c0 37-17 71-44 94 64 38 107 107 107 187 0 121-98 219-219 219-121 0-219-98-219-219 0-61 25-117 66-156h-115c30 33 49 76 49 125 0 103-84 187-187 187s-188-84-188-187c0-57 26-107 65-141-38-22-65-62-65-109v-250c0-70 56-126 125-126h500c69 0 125 56 125 126l188-126c34 0 62 28 62 63v375c0 35-28 63-62 63z m-750 0c-69 0-125 56-125 125s56 125 125 125 125-56 125-125-56-125-125-125z m406-1c-87 0-157 70-157 157 0 86 70 156 157 156s156-70 156-156-70-157-156-157z",
                  transform: "matrix(1 0 0 -1 0 850)"
                },
                question: {
                  width: 857.1,
                  height: 1e3,
                  path: "m500 82v107q0 8-5 13t-13 5h-107q-8 0-13-5t-5-13v-107q0-8 5-13t13-5h107q8 0 13 5t5 13z m143 375q0 49-31 91t-77 65-95 23q-136 0-207-119-9-14 4-24l74-55q4-4 10-4 9 0 14 7 30 38 48 51 19 14 48 14 27 0 48-15t21-33q0-21-11-34t-38-25q-35-16-65-48t-29-70v-20q0-8 5-13t13-5h107q8 0 13 5t5 13q0 10 12 27t30 28q18 10 28 16t25 19 25 27 16 34 7 45z m214-107q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z",
                  transform: "matrix(1 0 0 -1 0 850)"
                },
                disk: {
                  width: 857.1,
                  height: 1e3,
                  path: "m214-7h429v214h-429v-214z m500 0h72v500q0 8-6 21t-11 20l-157 156q-5 6-19 12t-22 5v-232q0-22-15-38t-38-16h-322q-22 0-37 16t-16 38v232h-72v-714h72v232q0 22 16 38t37 16h465q22 0 38-16t15-38v-232z m-214 518v178q0 8-5 13t-13 5h-107q-7 0-13-5t-5-13v-178q0-8 5-13t13-5h107q7 0 13 5t5 13z m357-18v-518q0-22-15-38t-38-16h-750q-23 0-38 16t-16 38v750q0 22 16 38t38 16h517q23 0 50-12t42-26l156-157q16-15 27-42t11-49z",
                  transform: "matrix(1 0 0 -1 0 850)"
                },
                drawopenpath: {
                  width: 70,
                  height: 70,
                  path: "M33.21,85.65a7.31,7.31,0,0,1-2.59-.48c-8.16-3.11-9.27-19.8-9.88-41.3-.1-3.58-.19-6.68-.35-9-.15-2.1-.67-3.48-1.43-3.79-2.13-.88-7.91,2.32-12,5.86L3,32.38c1.87-1.64,11.55-9.66,18.27-6.9,2.13.87,4.75,3.14,5.17,9,.17,2.43.26,5.59.36,9.25a224.17,224.17,0,0,0,1.5,23.4c1.54,10.76,4,12.22,4.48,12.4.84.32,2.79-.46,5.76-3.59L43,80.07C41.53,81.57,37.68,85.64,33.21,85.65ZM74.81,69a11.34,11.34,0,0,0,6.09-6.72L87.26,44.5,74.72,32,56.9,38.35c-2.37.86-5.57,3.42-6.61,6L38.65,72.14l8.42,8.43ZM55,46.27a7.91,7.91,0,0,1,3.64-3.17l14.8-5.3,8,8L76.11,60.6l-.06.19a6.37,6.37,0,0,1-3,3.43L48.25,74.59,44.62,71Zm16.57,7.82A6.9,6.9,0,1,0,64.64,61,6.91,6.91,0,0,0,71.54,54.09Zm-4.05,0a2.85,2.85,0,1,1-2.85-2.85A2.86,2.86,0,0,1,67.49,54.09Zm-4.13,5.22L60.5,56.45,44.26,72.7l2.86,2.86ZM97.83,35.67,84.14,22l-8.57,8.57L89.26,44.24Zm-13.69-8,8,8-2.85,2.85-8-8Z",
                  transform: "matrix(1 0 0 1 -15 -15)"
                },
                drawclosedpath: {
                  width: 90,
                  height: 90,
                  path: "M88.41,21.12a26.56,26.56,0,0,0-36.18,0l-2.07,2-2.07-2a26.57,26.57,0,0,0-36.18,0,23.74,23.74,0,0,0,0,34.8L48,90.12a3.22,3.22,0,0,0,4.42,0l36-34.21a23.73,23.73,0,0,0,0-34.79ZM84,51.24,50.16,83.35,16.35,51.25a17.28,17.28,0,0,1,0-25.47,20,20,0,0,1,27.3,0l4.29,4.07a3.23,3.23,0,0,0,4.44,0l4.29-4.07a20,20,0,0,1,27.3,0,17.27,17.27,0,0,1,0,25.46ZM66.76,47.68h-33v6.91h33ZM53.35,35H46.44V68h6.91Z",
                  transform: "matrix(1 0 0 1 -5 -5)"
                },
                lasso: {
                  width: 1031,
                  height: 1e3,
                  path: "m1018 538c-36 207-290 336-568 286-277-48-473-256-436-463 10-57 36-108 76-151-13-66 11-137 68-183 34-28 75-41 114-42l-55-70 0 0c-2-1-3-2-4-3-10-14-8-34 5-45 14-11 34-8 45 4 1 1 2 3 2 5l0 0 113 140c16 11 31 24 45 40 4 3 6 7 8 11 48-3 100 0 151 9 278 48 473 255 436 462z m-624-379c-80 14-149 48-197 96 42 42 109 47 156 9 33-26 47-66 41-105z m-187-74c-19 16-33 37-39 60 50-32 109-55 174-68-42-25-95-24-135 8z m360 75c-34-7-69-9-102-8 8 62-16 128-68 170-73 59-175 54-244-5-9 20-16 40-20 61-28 159 121 317 333 354s407-60 434-217c28-159-121-318-333-355z",
                  transform: "matrix(1 0 0 -1 0 850)"
                },
                selectbox: {
                  width: 1e3,
                  height: 1e3,
                  path: "m0 850l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m285 0l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m-857-286l0-143 143 0 0 143-143 0z m857 0l0-143 143 0 0 143-143 0z m-857-285l0-143 143 0 0 143-143 0z m857 0l0-143 143 0 0 143-143 0z m-857-286l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m285 0l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z",
                  transform: "matrix(1 0 0 -1 0 850)"
                },
                drawline: {
                  width: 70,
                  height: 70,
                  path: "M60.64,62.3a11.29,11.29,0,0,0,6.09-6.72l6.35-17.72L60.54,25.31l-17.82,6.4c-2.36.86-5.57,3.41-6.6,6L24.48,65.5l8.42,8.42ZM40.79,39.63a7.89,7.89,0,0,1,3.65-3.17l14.79-5.31,8,8L61.94,54l-.06.19a6.44,6.44,0,0,1-3,3.43L34.07,68l-3.62-3.63Zm16.57,7.81a6.9,6.9,0,1,0-6.89,6.9A6.9,6.9,0,0,0,57.36,47.44Zm-4,0a2.86,2.86,0,1,1-2.85-2.85A2.86,2.86,0,0,1,53.32,47.44Zm-4.13,5.22L46.33,49.8,30.08,66.05l2.86,2.86ZM83.65,29,70,15.34,61.4,23.9,75.09,37.59ZM70,21.06l8,8-2.84,2.85-8-8ZM87,80.49H10.67V87H87Z",
                  transform: "matrix(1 0 0 1 -15 -15)"
                },
                drawrect: {
                  width: 80,
                  height: 80,
                  path: "M78,22V79H21V22H78m9-9H12V88H87V13ZM68,46.22H31V54H68ZM53,32H45.22V69H53Z",
                  transform: "matrix(1 0 0 1 -10 -10)"
                },
                drawcircle: {
                  width: 80,
                  height: 80,
                  path: "M50,84.72C26.84,84.72,8,69.28,8,50.3S26.84,15.87,50,15.87,92,31.31,92,50.3,73.16,84.72,50,84.72Zm0-60.59c-18.6,0-33.74,11.74-33.74,26.17S31.4,76.46,50,76.46,83.74,64.72,83.74,50.3,68.6,24.13,50,24.13Zm17.15,22h-34v7.11h34Zm-13.8-13H46.24v34h7.11Z",
                  transform: "matrix(1 0 0 1 -10 -10)"
                },
                eraseshape: {
                  width: 80,
                  height: 80,
                  path: "M82.77,78H31.85L6,49.57,31.85,21.14H82.77a8.72,8.72,0,0,1,8.65,8.77V69.24A8.72,8.72,0,0,1,82.77,78ZM35.46,69.84H82.77a.57.57,0,0,0,.49-.6V29.91a.57.57,0,0,0-.49-.61H35.46L17,49.57Zm32.68-34.7-24,24,5,5,24-24Zm-19,.53-5,5,24,24,5-5Z",
                  transform: "matrix(1 0 0 1 -10 -10)"
                },
                spikeline: {
                  width: 1e3,
                  height: 1e3,
                  path: "M512 409c0-57-46-104-103-104-57 0-104 47-104 104 0 57 47 103 104 103 57 0 103-46 103-103z m-327-39l92 0 0 92-92 0z m-185 0l92 0 0 92-92 0z m370-186l92 0 0 93-92 0z m0-184l92 0 0 92-92 0z",
                  transform: "matrix(1.5 0 0 -1.5 0 850)"
                },
                pencil: {
                  width: 1792,
                  height: 1792,
                  path: "M491 1536l91-91-235-235-91 91v107h128v128h107zm523-928q0-22-22-22-10 0-17 7l-542 542q-7 7-7 17 0 22 22 22 10 0 17-7l542-542q7-7 7-17zm-54-192l416 416-832 832h-416v-416zm683 96q0 53-37 90l-166 166-416-416 166-165q36-38 90-38 53 0 91 38l235 234q37 39 37 91z",
                  transform: "matrix(1 0 0 1 0 1)"
                },
                newplotlylogo: {
                  name: "newplotlylogo",
                  svg: ["<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 132 132'>", "<defs>", " <style>", "  .cls-0{fill:#000;}", "  .cls-1{fill:#FFF;}", "  .cls-2{fill:#F26;}", "  .cls-3{fill:#D69;}", "  .cls-4{fill:#BAC;}", "  .cls-5{fill:#9EF;}", " </style>", "</defs>", " <title>plotly-logomark</title>", " <g id='symbol'>", "  <rect class='cls-0' x='0' y='0' width='132' height='132' rx='18' ry='18'/>", "  <circle class='cls-5' cx='102' cy='30' r='6'/>", "  <circle class='cls-4' cx='78' cy='30' r='6'/>", "  <circle class='cls-4' cx='78' cy='54' r='6'/>", "  <circle class='cls-3' cx='54' cy='30' r='6'/>", "  <circle class='cls-2' cx='30' cy='30' r='6'/>", "  <circle class='cls-2' cx='30' cy='54' r='6'/>", "  <path class='cls-1' d='M30,72a6,6,0,0,0-6,6v24a6,6,0,0,0,12,0V78A6,6,0,0,0,30,72Z'/>", "  <path class='cls-1' d='M78,72a6,6,0,0,0-6,6v24a6,6,0,0,0,12,0V78A6,6,0,0,0,78,72Z'/>", "  <path class='cls-1' d='M54,48a6,6,0,0,0-6,6v48a6,6,0,0,0,12,0V54A6,6,0,0,0,54,48Z'/>", "  <path class='cls-1' d='M102,48a6,6,0,0,0-6,6v48a6,6,0,0,0,12,0V54A6,6,0,0,0,102,48Z'/>", " </g>", "</svg>"].join("")
                }
              };
            }
          ),
          /***/
          8308: (
            /***/
            function(M, L) {
              L.isLeftAnchor = function(a) {
                return a.xanchor === "left" || a.xanchor === "auto" && a.x <= 0.3333333333333333;
              }, L.isCenterAnchor = function(a) {
                return a.xanchor === "center" || a.xanchor === "auto" && a.x > 0.3333333333333333 && a.x < 0.6666666666666666;
              }, L.isRightAnchor = function(a) {
                return a.xanchor === "right" || a.xanchor === "auto" && a.x >= 0.6666666666666666;
              }, L.isTopAnchor = function(a) {
                return a.yanchor === "top" || a.yanchor === "auto" && a.y >= 0.6666666666666666;
              }, L.isMiddleAnchor = function(a) {
                return a.yanchor === "middle" || a.yanchor === "auto" && a.y > 0.3333333333333333 && a.y < 0.6666666666666666;
              }, L.isBottomAnchor = function(a) {
                return a.yanchor === "bottom" || a.yanchor === "auto" && a.y <= 0.3333333333333333;
              };
            }
          ),
          /***/
          1864: (
            /***/
            function(M, L, r) {
              var a = r(435), p = a.mod, l = a.modHalf, f = Math.PI, u = 2 * f;
              function c(k) {
                return k / 180 * f;
              }
              function d(k) {
                return k / f * 180;
              }
              function h(k) {
                return Math.abs(k[1] - k[0]) > u - 1e-14;
              }
              function i(k, A) {
                return l(A - k, u);
              }
              function b(k, A) {
                return Math.abs(i(k, A));
              }
              function x(k, A) {
                if (h(A))
                  return !0;
                var R, g;
                A[0] < A[1] ? (R = A[0], g = A[1]) : (R = A[1], g = A[0]), R = p(R, u), g = p(g, u), R > g && (g += u);
                var I = p(k, u), O = I + u;
                return I >= R && I <= g || O >= R && O <= g;
              }
              function D(k, A, R, g) {
                if (!x(A, g))
                  return !1;
                var I, O;
                return R[0] < R[1] ? (I = R[0], O = R[1]) : (I = R[1], O = R[0]), k >= I && k <= O;
              }
              function C(k, A, R, g, I, O, $) {
                I = I || 0, O = O || 0;
                var Y = h([R, g]), ne, q, B, X, U;
                Y ? (ne = 0, q = f, B = u) : R < g ? (ne = R, B = g) : (ne = g, B = R), k < A ? (X = k, U = A) : (X = A, U = k);
                function te(W, ae) {
                  return [W * Math.cos(ae) + I, O - W * Math.sin(ae)];
                }
                var se = Math.abs(B - ne) <= f ? 0 : 1;
                function me(W, ae, oe) {
                  return "A" + [W, W] + " " + [0, se, oe] + " " + te(W, ae);
                }
                var J;
                return Y ? X === null ? J = "M" + te(U, ne) + me(U, q, 0) + me(U, B, 0) + "Z" : J = "M" + te(X, ne) + me(X, q, 0) + me(X, B, 0) + "ZM" + te(U, ne) + me(U, q, 1) + me(U, B, 1) + "Z" : X === null ? (J = "M" + te(U, ne) + me(U, B, 0), $ && (J += "L0,0Z")) : J = "M" + te(X, ne) + "L" + te(U, ne) + me(U, B, 0) + "L" + te(X, B) + me(X, ne, 1) + "Z", J;
              }
              function w(k, A, R, g, I) {
                return C(null, k, A, R, g, I, 0);
              }
              function S(k, A, R, g, I) {
                return C(null, k, A, R, g, I, 1);
              }
              function T(k, A, R, g, I, O) {
                return C(k, A, R, g, I, O, 1);
              }
              M.exports = {
                deg2rad: c,
                rad2deg: d,
                angleDelta: i,
                angleDist: b,
                isFullCircle: h,
                isAngleInsideSector: x,
                isPtInsideSector: D,
                pathArc: w,
                pathSector: S,
                pathAnnulus: T
              };
            }
          ),
          /***/
          8116: (
            /***/
            function(M, L, r) {
              var a = r(3160).decode, p = r(3620), l = Array.isArray, f = ArrayBuffer, u = DataView;
              function c(C) {
                return f.isView(C) && !(C instanceof u);
              }
              L.isTypedArray = c;
              function d(C) {
                return l(C) || c(C);
              }
              L.isArrayOrTypedArray = d;
              function h(C) {
                return !d(C[0]);
              }
              L.isArray1D = h, L.ensureArray = function(C, w) {
                return l(C) || (C = []), C.length = w, C;
              };
              var i = {
                u1c: typeof Uint8ClampedArray > "u" ? void 0 : Uint8ClampedArray,
                // not supported in numpy?
                i1: typeof Int8Array > "u" ? void 0 : Int8Array,
                u1: typeof Uint8Array > "u" ? void 0 : Uint8Array,
                i2: typeof Int16Array > "u" ? void 0 : Int16Array,
                u2: typeof Uint16Array > "u" ? void 0 : Uint16Array,
                i4: typeof Int32Array > "u" ? void 0 : Int32Array,
                u4: typeof Uint32Array > "u" ? void 0 : Uint32Array,
                f4: typeof Float32Array > "u" ? void 0 : Float32Array,
                f8: typeof Float64Array > "u" ? void 0 : Float64Array
                /* TODO: potentially add Big Int
                 i8: typeof BigInt64Array === 'undefined' ? undefined :
                           BigInt64Array,
                 u8: typeof BigUint64Array === 'undefined' ? undefined :
                           BigUint64Array,
                */
              };
              i.uint8c = i.u1c, i.uint8 = i.u1, i.int8 = i.i1, i.uint16 = i.u2, i.int16 = i.i2, i.uint32 = i.u4, i.int32 = i.i4, i.float32 = i.f4, i.float64 = i.f8;
              function b(C) {
                return C.constructor === ArrayBuffer;
              }
              L.isArrayBuffer = b, L.decodeTypedArraySpec = function(C) {
                var w = [], S = x(C), T = S.dtype, k = i[T];
                if (!k)
                  throw new Error('Error in dtype: "' + T + '"');
                var A = k.BYTES_PER_ELEMENT, R = S.bdata;
                b(R) || (R = a(R));
                var g = S.shape === void 0 ? (
                  // detect 1-d length
                  [R.byteLength / A]
                ) : (
                  // convert number to string and split to array
                  ("" + S.shape).split(",")
                );
                g.reverse();
                var I = g.length, O, $, Y = +g[0], ne = A * Y, q = 0;
                if (I === 1)
                  w = new k(R);
                else if (I === 2)
                  for (O = +g[1], $ = 0; $ < O; $++)
                    w[$] = new k(R, q, Y), q += ne;
                else if (I === 3) {
                  O = +g[1];
                  for (var B = +g[2], X = 0; X < B; X++)
                    for (w[X] = [], $ = 0; $ < O; $++)
                      w[X][$] = new k(R, q, Y), q += ne;
                } else
                  throw new Error("ndim: " + I + 'is not supported with the shape:"' + S.shape + '"');
                return w.bdata = S.bdata, w.dtype = S.dtype, w.shape = g.reverse().join(","), C._inputArray = w, w;
              }, L.isTypedArraySpec = function(C) {
                return p(C) && C.hasOwnProperty("dtype") && typeof C.dtype == "string" && C.hasOwnProperty("bdata") && (typeof C.bdata == "string" || b(C.bdata)) && (C.shape === void 0 || C.hasOwnProperty("shape") && (typeof C.shape == "string" || typeof C.shape == "number"));
              };
              function x(C) {
                return {
                  bdata: C.bdata,
                  dtype: C.dtype,
                  shape: C.shape
                };
              }
              L.concat = function() {
                var C = [], w = !0, S = 0, T, k, A, R, g, I, O, $;
                for (A = 0; A < arguments.length; A++)
                  R = arguments[A], I = R.length, I && (k ? C.push(R) : (k = R, g = I), l(R) ? T = !1 : (w = !1, S ? T !== R.constructor && (T = !1) : T = R.constructor), S += I);
                if (!S)
                  return [];
                if (!C.length)
                  return k;
                if (w)
                  return k.concat.apply(k, C);
                if (T) {
                  for (O = new T(S), O.set(k), A = 0; A < C.length; A++)
                    R = C[A], O.set(R, g), g += R.length;
                  return O;
                }
                for (O = new Array(S), $ = 0; $ < k.length; $++)
                  O[$] = k[$];
                for (A = 0; A < C.length; A++) {
                  for (R = C[A], $ = 0; $ < R.length; $++)
                    O[g + $] = R[$];
                  g += $;
                }
                return O;
              }, L.maxRowLength = function(C) {
                return D(C, Math.max, 0);
              }, L.minRowLength = function(C) {
                return D(C, Math.min, 1 / 0);
              };
              function D(C, w, S) {
                if (d(C))
                  if (d(C[0])) {
                    for (var T = S, k = 0; k < C.length; k++)
                      T = w(T, C[k].length);
                    return T;
                  } else
                    return C.length;
                return 0;
              }
            }
          ),
          /***/
          4037: (
            /***/
            function(M, L, r) {
              var a = r(8248), p = r(9032).BADNUM, l = /^['"%,$#\s']+|[, ]|['"%,$#\s']+$/g;
              M.exports = function(u) {
                return typeof u == "string" && (u = u.replace(l, "")), a(u) ? Number(u) : p;
              };
            }
          ),
          /***/
          3696: (
            /***/
            function(M) {
              M.exports = function(r) {
                var a = r._fullLayout;
                a._glcanvas && a._glcanvas.size() && a._glcanvas.each(function(p) {
                  p.regl && p.regl.clear({
                    color: !0,
                    depth: !0
                  });
                });
              };
            }
          ),
          /***/
          5352: (
            /***/
            function(M) {
              M.exports = function(r) {
                r._responsiveChartHandler && (window.removeEventListener("resize", r._responsiveChartHandler), delete r._responsiveChartHandler);
              };
            }
          ),
          /***/
          3064: (
            /***/
            function(M, L, r) {
              var a = r(8248), p = r(9760), l = r(2880).extendFlat, f = r(5464), u = r(8304), c = r(6308), d = r(3448).DESELECTDIM, h = r(2296), i = r(3756).counter, b = r(435).modHalf, x = r(8116).isArrayOrTypedArray, D = r(8116).isTypedArraySpec, C = r(8116).decodeTypedArraySpec;
              L.valObjectMeta = {
                data_array: {
                  // You can use *dflt=[] to force said array to exist though.
                  coerceFunction: function(S, T, k) {
                    T.set(x(S) ? S : D(S) ? C(S) : k);
                  }
                },
                enumerated: {
                  coerceFunction: function(S, T, k, A) {
                    A.coerceNumber && (S = +S), A.values.indexOf(S) === -1 ? T.set(k) : T.set(S);
                  },
                  validateFunction: function(S, T) {
                    T.coerceNumber && (S = +S);
                    for (var k = T.values, A = 0; A < k.length; A++) {
                      var R = String(k[A]);
                      if (R.charAt(0) === "/" && R.charAt(R.length - 1) === "/") {
                        var g = new RegExp(R.substr(1, R.length - 2));
                        if (g.test(S))
                          return !0;
                      } else if (S === k[A])
                        return !0;
                    }
                    return !1;
                  }
                },
                boolean: {
                  coerceFunction: function(S, T, k) {
                    S === !0 || S === !1 ? T.set(S) : T.set(k);
                  }
                },
                number: {
                  coerceFunction: function(S, T, k, A) {
                    D(S) && (S = C(S)), !a(S) || A.min !== void 0 && S < A.min || A.max !== void 0 && S > A.max ? T.set(k) : T.set(+S);
                  }
                },
                integer: {
                  coerceFunction: function(S, T, k, A) {
                    if ((A.extras || []).indexOf(S) !== -1) {
                      T.set(S);
                      return;
                    }
                    D(S) && (S = C(S)), S % 1 || !a(S) || A.min !== void 0 && S < A.min || A.max !== void 0 && S > A.max ? T.set(k) : T.set(+S);
                  }
                },
                string: {
                  // TODO 'values shouldn't be in there (edge case: 'dash' in Scatter)
                  coerceFunction: function(S, T, k, A) {
                    if (typeof S != "string") {
                      var R = typeof S == "number";
                      A.strict === !0 || !R ? T.set(k) : T.set(String(S));
                    } else
                      A.noBlank && !S ? T.set(k) : T.set(S);
                  }
                },
                color: {
                  coerceFunction: function(S, T, k) {
                    D(S) && (S = C(S)), p(S).isValid() ? T.set(S) : T.set(k);
                  }
                },
                colorlist: {
                  coerceFunction: function(S, T, k) {
                    function A(R) {
                      return p(R).isValid();
                    }
                    !Array.isArray(S) || !S.length ? T.set(k) : S.every(A) ? T.set(S) : T.set(k);
                  }
                },
                colorscale: {
                  coerceFunction: function(S, T, k) {
                    T.set(u.get(S, k));
                  }
                },
                angle: {
                  coerceFunction: function(S, T, k) {
                    D(S) && (S = C(S)), S === "auto" ? T.set("auto") : a(S) ? T.set(b(+S, 360)) : T.set(k);
                  }
                },
                subplotid: {
                  coerceFunction: function(S, T, k, A) {
                    var R = A.regex || i(k);
                    if (typeof S == "string" && R.test(S)) {
                      T.set(S);
                      return;
                    }
                    T.set(k);
                  },
                  validateFunction: function(S, T) {
                    var k = T.dflt;
                    return S === k ? !0 : typeof S != "string" ? !1 : !!i(k).test(S);
                  }
                },
                flaglist: {
                  coerceFunction: function(S, T, k, A) {
                    if ((A.extras || []).indexOf(S) !== -1) {
                      T.set(S);
                      return;
                    }
                    if (typeof S != "string") {
                      T.set(k);
                      return;
                    }
                    for (var R = S.split("+"), g = 0; g < R.length; ) {
                      var I = R[g];
                      A.flags.indexOf(I) === -1 || R.indexOf(I) < g ? R.splice(g, 1) : g++;
                    }
                    R.length ? T.set(R.join("+")) : T.set(k);
                  }
                },
                any: {
                  coerceFunction: function(S, T, k) {
                    S === void 0 ? T.set(k) : T.set(D(S) ? C(S) : S);
                  }
                },
                info_array: {
                  // set `dimensions=2` for a 2D array or '1-2' for either
                  // `items` may be a single object instead of an array, in which case
                  // `freeLength` must be true.
                  // if `dimensions='1-2'` and items is a 1D array, then the value can
                  // either be a matching 1D array or an array of such matching 1D arrays
                  coerceFunction: function(S, T, k, A) {
                    function R(J, W, ae) {
                      var oe, ve = {
                        set: function(fe) {
                          oe = fe;
                        }
                      };
                      return ae === void 0 && (ae = W.dflt), L.valObjectMeta[W.valType].coerceFunction(J, ve, ae, W), oe;
                    }
                    if (D(S) && (S = C(S)), !x(S)) {
                      T.set(k);
                      return;
                    }
                    var g = A.dimensions === 2 || A.dimensions === "1-2" && Array.isArray(S) && x(S[0]), I = A.items, O = [], $ = Array.isArray(I), Y = $ && g && x(I[0]), ne = g && $ && !Y, q = $ && !ne ? I.length : S.length, B, X, U, te, se, me;
                    if (k = Array.isArray(k) ? k : [], g)
                      for (B = 0; B < q; B++)
                        for (O[B] = [], U = x(S[B]) ? S[B] : [], ne ? se = I.length : $ ? se = I[B].length : se = U.length, X = 0; X < se; X++)
                          ne ? te = I[X] : $ ? te = I[B][X] : te = I, me = R(U[X], te, (k[B] || [])[X]), me !== void 0 && (O[B][X] = me);
                    else
                      for (B = 0; B < q; B++)
                        me = R(S[B], $ ? I[B] : I, k[B]), me !== void 0 && (O[B] = me);
                    T.set(O);
                  },
                  validateFunction: function(S, T) {
                    if (!x(S))
                      return !1;
                    var k = T.items, A = Array.isArray(k), R = T.dimensions === 2;
                    if (!T.freeLength && S.length !== k.length)
                      return !1;
                    for (var g = 0; g < S.length; g++)
                      if (R) {
                        if (!x(S[g]) || !T.freeLength && S[g].length !== k[g].length)
                          return !1;
                        for (var I = 0; I < S[g].length; I++)
                          if (!w(S[g][I], A ? k[g][I] : k))
                            return !1;
                      } else if (!w(S[g], A ? k[g] : k))
                        return !1;
                    return !0;
                  }
                }
              }, L.coerce = function(S, T, k, A, R) {
                var g = h(k, A).get(), I = h(S, A), O = h(T, A), $ = I.get(), Y = T._template;
                if ($ === void 0 && Y && ($ = h(Y, A).get(), Y = 0), R === void 0 && (R = g.dflt), g.arrayOk) {
                  if (x($))
                    return O.set($), $;
                  if (D($))
                    return $ = C($), O.set($), $;
                }
                var ne = L.valObjectMeta[g.valType].coerceFunction;
                ne($, O, R, g);
                var q = O.get();
                return Y && q === R && !w($, g) && ($ = h(Y, A).get(), ne($, O, R, g), q = O.get()), q;
              }, L.coerce2 = function(S, T, k, A, R) {
                var g = h(S, A), I = L.coerce(S, T, k, A, R), O = g.get();
                return O != null ? I : !1;
              }, L.coerceFont = function(S, T, k, A) {
                A || (A = {}), k = l({}, k), k = l(k, A.overrideDflt || {});
                var R = {
                  family: S(T + ".family", k.family),
                  size: S(T + ".size", k.size),
                  color: S(T + ".color", k.color),
                  weight: S(T + ".weight", k.weight),
                  style: S(T + ".style", k.style)
                };
                if (A.noFontVariant || (R.variant = S(T + ".variant", k.variant)), A.noFontLineposition || (R.lineposition = S(T + ".lineposition", k.lineposition)), A.noFontTextcase || (R.textcase = S(T + ".textcase", k.textcase)), !A.noFontShadow) {
                  var g = k.shadow;
                  g === "none" && A.autoShadowDflt && (g = "auto"), R.shadow = S(T + ".shadow", g);
                }
                return R;
              }, L.coercePattern = function(S, T, k, A) {
                var R = S(T + ".shape");
                if (R) {
                  S(T + ".solidity"), S(T + ".size");
                  var g = S(T + ".fillmode"), I = g === "overlay";
                  if (!A) {
                    var O = S(T + ".bgcolor", I ? k : void 0);
                    S(T + ".fgcolor", I ? c.contrast(O) : k);
                  }
                  S(T + ".fgopacity", I ? 0.5 : 1);
                }
              }, L.coerceHoverinfo = function(S, T, k) {
                var A = T._module.attributes, R = A.hoverinfo ? A : f, g = R.hoverinfo, I;
                if (k._dataLength === 1) {
                  var O = g.dflt === "all" ? g.flags.slice() : g.dflt.split("+");
                  O.splice(O.indexOf("name"), 1), I = O.join("+");
                }
                return L.coerce(S, T, R, "hoverinfo", I);
              }, L.coerceSelectionMarkerOpacity = function(S, T) {
                if (S.marker) {
                  var k = S.marker.opacity;
                  if (k !== void 0) {
                    var A, R;
                    !x(k) && !S.selected && !S.unselected && (A = k, R = d * k), T("selected.marker.opacity", A), T("unselected.marker.opacity", R);
                  }
                }
              };
              function w(S, T) {
                var k = L.valObjectMeta[T.valType];
                if (T.arrayOk && x(S))
                  return !0;
                if (k.validateFunction)
                  return k.validateFunction(S, T);
                var A = {}, R = A, g = {
                  set: function(I) {
                    R = I;
                  }
                };
                return k.coerceFunction(S, g, A, T), R !== A;
              }
              L.validate = w;
            }
          ),
          /***/
          7555: (
            /***/
            function(M, L, r) {
              var a = r(4336).Yn, p = r(8248), l = r(4248), f = r(435).mod, u = r(9032), c = u.BADNUM, d = u.ONEDAY, h = u.ONEHOUR, i = u.ONEMIN, b = u.ONESEC, x = u.EPOCHJD, D = r(4040), C = r(4336).E9, w = /^\s*(-?\d\d\d\d|\d\d)(-(\d?\d)(-(\d?\d)([ Tt]([01]?\d|2[0-3])(:([0-5]\d)(:([0-5]\d(\.\d+)?))?(Z|z|[+\-]\d\d(:?\d\d)?)?)?)?)?)?\s*$/m, S = /^\s*(-?\d\d\d\d|\d\d)(-(\d?\di?)(-(\d?\d)([ Tt]([01]?\d|2[0-3])(:([0-5]\d)(:([0-5]\d(\.\d+)?))?(Z|z|[+\-]\d\d(:?\d\d)?)?)?)?)?)?\s*$/m, T = (/* @__PURE__ */ new Date()).getFullYear() - 70;
              function k(J) {
                return J && D.componentsRegistry.calendars && typeof J == "string" && J !== "gregorian";
              }
              L.dateTick0 = function(J, W) {
                var ae = A(J, !!W);
                if (W < 2)
                  return ae;
                var oe = L.dateTime2ms(ae, J);
                return oe += d * (W - 1), L.ms2DateTime(oe, 0, J);
              };
              function A(J, W) {
                return k(J) ? W ? D.getComponentMethod("calendars", "CANONICAL_SUNDAY")[J] : D.getComponentMethod("calendars", "CANONICAL_TICK")[J] : W ? "2000-01-02" : "2000-01-01";
              }
              L.dfltRange = function(J) {
                return k(J) ? D.getComponentMethod("calendars", "DFLTRANGE")[J] : ["2000-01-01", "2001-01-01"];
              }, L.isJSDate = function(J) {
                return typeof J == "object" && J !== null && typeof J.getTime == "function";
              };
              var R, g;
              L.dateTime2ms = function(J, W) {
                if (L.isJSDate(J)) {
                  var ae = J.getTimezoneOffset() * i, oe = (J.getUTCMinutes() - J.getMinutes()) * i + (J.getUTCSeconds() - J.getSeconds()) * b + (J.getUTCMilliseconds() - J.getMilliseconds());
                  if (oe) {
                    var ve = 3 * i;
                    ae = ae - ve / 2 + f(oe - ae + ve / 2, ve);
                  }
                  return J = Number(J) - ae, J >= R && J <= g ? J : c;
                }
                if (typeof J != "string" && typeof J != "number")
                  return c;
                J = String(J);
                var fe = k(W), ye = J.charAt(0);
                fe && (ye === "G" || ye === "g") && (J = J.substr(1), W = "");
                var Ce = fe && W.substr(0, 7) === "chinese", Re = J.match(Ce ? S : w);
                if (!Re)
                  return c;
                var Be = Re[1], xe = Re[3] || "1", Me = Number(Re[5] || 1), De = Number(Re[7] || 0), Z = Number(Re[9] || 0), ee = Number(Re[11] || 0);
                if (fe) {
                  if (Be.length === 2)
                    return c;
                  Be = Number(Be);
                  var ie;
                  try {
                    var G = D.getComponentMethod("calendars", "getCal")(W);
                    if (Ce) {
                      var H = xe.charAt(xe.length - 1) === "i";
                      xe = parseInt(xe, 10), ie = G.newDate(Be, G.toMonthIndex(Be, xe, H), Me);
                    } else
                      ie = G.newDate(Be, Number(xe), Me);
                  } catch {
                    return c;
                  }
                  return ie ? (ie.toJD() - x) * d + De * h + Z * i + ee * b : c;
                }
                Be.length === 2 ? Be = (Number(Be) + 2e3 - T) % 100 + T : Be = Number(Be), xe -= 1;
                var ce = new Date(Date.UTC(2e3, xe, Me, De, Z));
                return ce.setUTCFullYear(Be), ce.getUTCMonth() !== xe || ce.getUTCDate() !== Me ? c : ce.getTime() + ee * b;
              }, R = L.MIN_MS = L.dateTime2ms("-9999"), g = L.MAX_MS = L.dateTime2ms("9999-12-31 23:59:59.9999"), L.isDateTime = function(J, W) {
                return L.dateTime2ms(J, W) !== c;
              };
              function I(J, W) {
                return String(J + Math.pow(10, W)).substr(1);
              }
              var O = 90 * d, $ = 3 * h, Y = 5 * i;
              L.ms2DateTime = function(J, W, ae) {
                if (typeof J != "number" || !(J >= R && J <= g))
                  return c;
                W || (W = 0);
                var oe = Math.floor(f(J + 0.05, 1) * 10), ve = Math.round(J - oe / 10), fe, ye, Ce, Re, Be, xe;
                if (k(ae)) {
                  var Me = Math.floor(ve / d) + x, De = Math.floor(f(J, d));
                  try {
                    fe = D.getComponentMethod("calendars", "getCal")(ae).fromJD(Me).formatDate("yyyy-mm-dd");
                  } catch {
                    fe = C("G%Y-%m-%d")(new Date(ve));
                  }
                  if (fe.charAt(0) === "-")
                    for (; fe.length < 11; )
                      fe = "-0" + fe.substr(1);
                  else
                    for (; fe.length < 10; )
                      fe = "0" + fe;
                  ye = W < O ? Math.floor(De / h) : 0, Ce = W < O ? Math.floor(De % h / i) : 0, Re = W < $ ? Math.floor(De % i / b) : 0, Be = W < Y ? De % b * 10 + oe : 0;
                } else
                  xe = new Date(ve), fe = C("%Y-%m-%d")(xe), ye = W < O ? xe.getUTCHours() : 0, Ce = W < O ? xe.getUTCMinutes() : 0, Re = W < $ ? xe.getUTCSeconds() : 0, Be = W < Y ? xe.getUTCMilliseconds() * 10 + oe : 0;
                return ne(fe, ye, Ce, Re, Be);
              }, L.ms2DateTimeLocal = function(J) {
                if (!(J >= R + d && J <= g - d))
                  return c;
                var W = Math.floor(f(J + 0.05, 1) * 10), ae = new Date(Math.round(J - W / 10)), oe = a("%Y-%m-%d")(ae), ve = ae.getHours(), fe = ae.getMinutes(), ye = ae.getSeconds(), Ce = ae.getUTCMilliseconds() * 10 + W;
                return ne(oe, ve, fe, ye, Ce);
              };
              function ne(J, W, ae, oe, ve) {
                if ((W || ae || oe || ve) && (J += " " + I(W, 2) + ":" + I(ae, 2), (oe || ve) && (J += ":" + I(oe, 2), ve))) {
                  for (var fe = 4; ve % 10 === 0; )
                    fe -= 1, ve /= 10;
                  J += "." + I(ve, fe);
                }
                return J;
              }
              L.cleanDate = function(J, W, ae) {
                if (J === c)
                  return W;
                if (L.isJSDate(J) || typeof J == "number" && isFinite(J)) {
                  if (k(ae))
                    return l.error("JS Dates and milliseconds are incompatible with world calendars", J), W;
                  if (J = L.ms2DateTimeLocal(+J), !J && W !== void 0)
                    return W;
                } else if (!L.isDateTime(J, ae))
                  return l.error("unrecognized date", J), W;
                return J;
              };
              var q = /%\d?f/g, B = /%h/g, X = {
                1: "1",
                2: "1",
                3: "2",
                4: "2"
              };
              function U(J, W, ae, oe) {
                J = J.replace(q, function(fe) {
                  var ye = Math.min(+fe.charAt(1) || 6, 6), Ce = (W / 1e3 % 1 + 2).toFixed(ye).substr(2).replace(/0+$/, "") || "0";
                  return Ce;
                });
                var ve = new Date(Math.floor(W + 0.05));
                if (J = J.replace(B, function() {
                  return X[ae("%q")(ve)];
                }), k(oe))
                  try {
                    J = D.getComponentMethod("calendars", "worldCalFmt")(J, W, oe);
                  } catch {
                    return "Invalid";
                  }
                return ae(J)(ve);
              }
              var te = [59, 59.9, 59.99, 59.999, 59.9999];
              function se(J, W) {
                var ae = f(J + 0.05, d), oe = I(Math.floor(ae / h), 2) + ":" + I(f(Math.floor(ae / i), 60), 2);
                if (W !== "M") {
                  p(W) || (W = 0);
                  var ve = Math.min(f(J / b, 60), te[W]), fe = (100 + ve).toFixed(W).substr(1);
                  W > 0 && (fe = fe.replace(/0+$/, "").replace(/[\.]$/, "")), oe += ":" + fe;
                }
                return oe;
              }
              L.formatDate = function(J, W, ae, oe, ve, fe) {
                if (ve = k(ve) && ve, !W)
                  if (ae === "y")
                    W = fe.year;
                  else if (ae === "m")
                    W = fe.month;
                  else if (ae === "d")
                    W = fe.dayMonth + `
` + fe.year;
                  else
                    return se(J, ae) + `
` + U(fe.dayMonthYear, J, oe, ve);
                return U(W, J, oe, ve);
              };
              var me = 3 * d;
              L.incrementMonth = function(J, W, ae) {
                ae = k(ae) && ae;
                var oe = f(J, d);
                if (J = Math.round(J - oe), ae)
                  try {
                    var ve = Math.round(J / d) + x, fe = D.getComponentMethod("calendars", "getCal")(ae), ye = fe.fromJD(ve);
                    return W % 12 ? fe.add(ye, W, "m") : fe.add(ye, W / 12, "y"), (ye.toJD() - x) * d + oe;
                  } catch {
                    l.error("invalid ms " + J + " in calendar " + ae);
                  }
                var Ce = new Date(J + me);
                return Ce.setUTCMonth(Ce.getUTCMonth() + W) + oe - me;
              }, L.findExactDates = function(J, W) {
                for (var ae = 0, oe = 0, ve = 0, fe = 0, ye, Ce, Re = k(W) && D.getComponentMethod("calendars", "getCal")(W), Be = 0; Be < J.length; Be++) {
                  if (Ce = J[Be], !p(Ce)) {
                    fe++;
                    continue;
                  }
                  if (!(Ce % d))
                    if (Re)
                      try {
                        ye = Re.fromJD(Ce / d + x), ye.day() === 1 ? ye.month() === 1 ? ae++ : oe++ : ve++;
                      } catch {
                      }
                    else
                      ye = new Date(Ce), ye.getUTCDate() === 1 ? ye.getUTCMonth() === 0 ? ae++ : oe++ : ve++;
                }
                oe += ae, ve += oe;
                var xe = J.length - fe;
                return {
                  exactYears: ae / xe,
                  exactMonths: oe / xe,
                  exactDays: ve / xe
                };
              };
            }
          ),
          /***/
          2200: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(4248), l = r(2248), f = r(6524);
              function u(T) {
                var k;
                if (typeof T == "string") {
                  if (k = document.getElementById(T), k === null)
                    throw new Error("No DOM element with id '" + T + "' exists on the page.");
                  return k;
                } else if (T == null)
                  throw new Error("DOM element provided is null or undefined");
                return T;
              }
              function c(T) {
                var k = a.select(T);
                return k.node() instanceof HTMLElement && k.size() && k.classed("js-plotly-plot");
              }
              function d(T) {
                var k = T && T.parentNode;
                k && k.removeChild(T);
              }
              function h(T, k) {
                i("global", T, k);
              }
              function i(T, k, A) {
                var R = "plotly.js-style-" + T, g = document.getElementById(R);
                g || (g = document.createElement("style"), g.setAttribute("id", R), g.appendChild(document.createTextNode("")), document.head.appendChild(g));
                var I = g.sheet;
                I.insertRule ? I.insertRule(k + "{" + A + "}", 0) : I.addRule ? I.addRule(k, A, 0) : p.warn("addStyleRule failed");
              }
              function b(T) {
                var k = "plotly.js-style-" + T, A = document.getElementById(k);
                A && d(A);
              }
              function x(T) {
                var k = C(T), A = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
                return k.forEach(function(R) {
                  var g = D(R);
                  if (g) {
                    var I = l.convertCssMatrix(g);
                    A = f.multiply(A, A, I);
                  }
                }), A;
              }
              function D(T) {
                var k = window.getComputedStyle(T, null), A = k.getPropertyValue("-webkit-transform") || k.getPropertyValue("-moz-transform") || k.getPropertyValue("-ms-transform") || k.getPropertyValue("-o-transform") || k.getPropertyValue("transform");
                return A === "none" ? null : A.replace("matrix", "").replace("3d", "").slice(1, -1).split(",").map(function(R) {
                  return +R;
                });
              }
              function C(T) {
                for (var k = []; w(T); )
                  k.push(T), T = T.parentNode, typeof ShadowRoot == "function" && T instanceof ShadowRoot && (T = T.host);
                return k;
              }
              function w(T) {
                return T && (T instanceof Element || T instanceof HTMLElement);
              }
              function S(T, k) {
                return T && k && T.top === k.top && T.left === k.left && T.right === k.right && T.bottom === k.bottom;
              }
              M.exports = {
                getGraphDiv: u,
                isPlotDiv: c,
                removeElement: d,
                addStyleRule: h,
                addRelatedStyleRule: i,
                deleteRelatedStyleRule: b,
                getFullTransformMatrix: x,
                getElementTransformMatrix: D,
                getElementAndAncestors: C,
                equalDomRects: S
              };
            }
          ),
          /***/
          5924: (
            /***/
            function(M, L, r) {
              var a = r(1252).EventEmitter, p = {
                init: function(l) {
                  if (l._ev instanceof a)
                    return l;
                  var f = new a(), u = new a();
                  return l._ev = f, l._internalEv = u, l.on = f.on.bind(f), l.once = f.once.bind(f), l.removeListener = f.removeListener.bind(f), l.removeAllListeners = f.removeAllListeners.bind(f), l._internalOn = u.on.bind(u), l._internalOnce = u.once.bind(u), l._removeInternalListener = u.removeListener.bind(u), l._removeAllInternalListeners = u.removeAllListeners.bind(u), l.emit = function(c, d) {
                    typeof jQuery < "u" && jQuery(l).trigger(c, d), f.emit(c, d), u.emit(c, d);
                  }, l;
                },
                /*
                 * This function behaves like jQuery's triggerHandler. It calls
                 * all handlers for a particular event and returns the return value
                 * of the LAST handler. This function also triggers jQuery's
                 * triggerHandler for backwards compatibility.
                 */
                triggerHandler: function(l, f, u) {
                  var c, d;
                  typeof jQuery < "u" && (c = jQuery(l).triggerHandler(f, u));
                  var h = l._ev;
                  if (!h)
                    return c;
                  var i = h._events[f];
                  if (!i)
                    return c;
                  function b(D) {
                    if (D.listener) {
                      if (h.removeListener(f, D.listener), !D.fired)
                        return D.fired = !0, D.listener.apply(h, [u]);
                    } else
                      return D.apply(h, [u]);
                  }
                  i = Array.isArray(i) ? i : [i];
                  var x;
                  for (x = 0; x < i.length - 1; x++)
                    b(i[x]);
                  return d = b(i[x]), c !== void 0 ? c : d;
                },
                purge: function(l) {
                  return delete l._ev, delete l.on, delete l.once, delete l.removeListener, delete l.removeAllListeners, delete l.emit, delete l._ev, delete l._internalEv, delete l._internalOn, delete l._internalOnce, delete l._removeInternalListener, delete l._removeAllInternalListeners, l;
                }
              };
              M.exports = p;
            }
          ),
          /***/
          2880: (
            /***/
            function(M, L, r) {
              var a = r(3620), p = Array.isArray;
              function l(u, c) {
                var d, h;
                for (d = 0; d < u.length; d++) {
                  if (h = u[d], h !== null && typeof h == "object")
                    return !1;
                  h !== void 0 && (c[d] = h);
                }
                return !0;
              }
              L.extendFlat = function() {
                return f(arguments, !1, !1, !1);
              }, L.extendDeep = function() {
                return f(arguments, !0, !1, !1);
              }, L.extendDeepAll = function() {
                return f(arguments, !0, !0, !1);
              }, L.extendDeepNoArrays = function() {
                return f(arguments, !0, !1, !0);
              };
              function f(u, c, d, h) {
                var i = u[0], b = u.length, x, D, C, w, S, T, k;
                if (b === 2 && p(i) && p(u[1]) && i.length === 0) {
                  if (k = l(u[1], i), k)
                    return i;
                  i.splice(0, i.length);
                }
                for (var A = 1; A < b; A++) {
                  x = u[A];
                  for (D in x)
                    C = i[D], w = x[D], h && p(w) ? i[D] = w : c && w && (a(w) || (S = p(w))) ? (S ? (S = !1, T = C && p(C) ? C : []) : T = C && a(C) ? C : {}, i[D] = f([T, w], c, d, h)) : (typeof w < "u" || d) && (i[D] = w);
                }
                return i;
              }
            }
          ),
          /***/
          8944: (
            /***/
            function(M) {
              M.exports = function(r) {
                for (var a = {}, p = [], l = 0, f = 0; f < r.length; f++) {
                  var u = r[f];
                  a[u] !== 1 && (a[u] = 1, p[l++] = u);
                }
                return p;
              };
            }
          ),
          /***/
          3880: (
            /***/
            function(M) {
              M.exports = function(l) {
                for (var f = a(l) ? r : L, u = [], c = 0; c < l.length; c++) {
                  var d = l[c];
                  f(d) && u.push(d);
                }
                return u;
              };
              function L(p) {
                return p.visible === !0;
              }
              function r(p) {
                var l = p[0].trace;
                return l.visible === !0 && l._length !== 0;
              }
              function a(p) {
                return Array.isArray(p) && Array.isArray(p[0]) && p[0][0] && p[0][0].trace;
              }
            }
          ),
          /***/
          2348: (
            /***/
            function(M, L, r) {
              var a = r(435).mod;
              L.segmentsIntersect = p;
              function p(d, h, i, b, x, D, C, w) {
                var S = i - d, T = x - d, k = C - x, A = b - h, R = D - h, g = w - D, I = S * g - k * A;
                if (I === 0)
                  return null;
                var O = (T * g - k * R) / I, $ = (T * A - S * R) / I;
                return $ < 0 || $ > 1 || O < 0 || O > 1 ? null : {
                  x: d + S * O,
                  y: h + A * O
                };
              }
              L.segmentDistance = function(h, i, b, x, D, C, w, S) {
                if (p(h, i, b, x, D, C, w, S))
                  return 0;
                var T = b - h, k = x - i, A = w - D, R = S - C, g = T * T + k * k, I = A * A + R * R, O = Math.min(l(T, k, g, D - h, C - i), l(T, k, g, w - h, S - i), l(A, R, I, h - D, i - C), l(A, R, I, b - D, x - C));
                return Math.sqrt(O);
              };
              function l(d, h, i, b, x) {
                var D = b * d + x * h;
                if (D < 0)
                  return b * b + x * x;
                if (D > i) {
                  var C = b - d, w = x - h;
                  return C * C + w * w;
                } else {
                  var S = b * h - x * d;
                  return S * S / i;
                }
              }
              var f, u, c;
              L.getTextLocation = function(h, i, b, x) {
                if ((h !== u || x !== c) && (f = {}, u = h, c = x), f[b])
                  return f[b];
                var D = h.getPointAtLength(a(b - x / 2, i)), C = h.getPointAtLength(a(b + x / 2, i)), w = Math.atan((C.y - D.y) / (C.x - D.x)), S = h.getPointAtLength(a(b, i)), T = (S.x * 4 + D.x + C.x) / 6, k = (S.y * 4 + D.y + C.y) / 6, A = {
                  x: T,
                  y: k,
                  theta: w
                };
                return f[b] = A, A;
              }, L.clearLocationCache = function() {
                u = null;
              }, L.getVisibleSegment = function(h, i, b) {
                var x = i.left, D = i.right, C = i.top, w = i.bottom, S = 0, T = h.getTotalLength(), k = T, A, R;
                function g(O) {
                  var $ = h.getPointAtLength(O);
                  O === 0 ? A = $ : O === T && (R = $);
                  var Y = $.x < x ? x - $.x : $.x > D ? $.x - D : 0, ne = $.y < C ? C - $.y : $.y > w ? $.y - w : 0;
                  return Math.sqrt(Y * Y + ne * ne);
                }
                for (var I = g(S); I; ) {
                  if (S += I + b, S > k)
                    return;
                  I = g(S);
                }
                for (I = g(k); I; ) {
                  if (k -= I + b, S > k)
                    return;
                  I = g(k);
                }
                return {
                  min: S,
                  max: k,
                  len: k - S,
                  total: T,
                  isClosed: S === 0 && k === T && Math.abs(A.x - R.x) < 0.1 && Math.abs(A.y - R.y) < 0.1
                };
              }, L.findPointOnPath = function(h, i, b, x) {
                x = x || {};
                for (var D = x.pathLength || h.getTotalLength(), C = x.tolerance || 1e-3, w = x.iterationLimit || 30, S = h.getPointAtLength(0)[b] > h.getPointAtLength(D)[b] ? -1 : 1, T = 0, k = 0, A = D, R, g, I; T < w; ) {
                  if (R = (k + A) / 2, g = h.getPointAtLength(R), I = g[b] - i, Math.abs(I) < C)
                    return g;
                  S * I > 0 ? A = R : k = R, T++;
                }
                return g;
              };
            }
          ),
          /***/
          5536: (
            /***/
            function(M) {
              M.exports = function(r) {
                return r;
              };
            }
          ),
          /***/
          1396: (
            /***/
            function(M) {
              M.exports = function(r, a) {
                if (!a)
                  return r;
                var p = 1 / Math.abs(a), l = p > 1 ? (p * r + p * a) / p : r + a, f = String(l).length;
                if (f > 16) {
                  var u = String(a).length, c = String(r).length;
                  if (f >= c + u) {
                    var d = parseFloat(l).toPrecision(12);
                    d.indexOf("e+") === -1 && (l = +d);
                  }
                }
                return l;
              };
            }
          ),
          /***/
          3400: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(4336).E9, l = r(7624).E9, f = r(8248), u = r(9032), c = u.FP_SAFE, d = -c, h = u.BADNUM, i = M.exports = {};
              i.adjustFormat = function(ie) {
                return !ie || /^\d[.]\df/.test(ie) || /[.]\d%/.test(ie) ? ie : ie === "0.f" ? "~f" : /^\d%/.test(ie) ? "~%" : /^\ds/.test(ie) ? "~s" : !/^[~,.0$]/.test(ie) && /[&fps]/.test(ie) ? "~" + ie : ie;
              };
              var b = {};
              i.warnBadFormat = function(ee) {
                var ie = String(ee);
                b[ie] || (b[ie] = 1, i.warn('encountered bad format: "' + ie + '"'));
              }, i.noFormat = function(ee) {
                return String(ee);
              }, i.numberFormat = function(ee) {
                var ie;
                try {
                  ie = l(i.adjustFormat(ee));
                } catch {
                  return i.warnBadFormat(ee), i.noFormat;
                }
                return ie;
              }, i.nestedProperty = r(2296), i.keyedContainer = r(7804), i.relativeAttr = r(3193), i.isPlainObject = r(3620), i.toLogRange = r(6896), i.relinkPrivateKeys = r(1528);
              var x = r(8116);
              i.isArrayBuffer = x.isArrayBuffer, i.isTypedArray = x.isTypedArray, i.isArrayOrTypedArray = x.isArrayOrTypedArray, i.isArray1D = x.isArray1D, i.ensureArray = x.ensureArray, i.concat = x.concat, i.maxRowLength = x.maxRowLength, i.minRowLength = x.minRowLength;
              var D = r(435);
              i.mod = D.mod, i.modHalf = D.modHalf;
              var C = r(3064);
              i.valObjectMeta = C.valObjectMeta, i.coerce = C.coerce, i.coerce2 = C.coerce2, i.coerceFont = C.coerceFont, i.coercePattern = C.coercePattern, i.coerceHoverinfo = C.coerceHoverinfo, i.coerceSelectionMarkerOpacity = C.coerceSelectionMarkerOpacity, i.validate = C.validate;
              var w = r(7555);
              i.dateTime2ms = w.dateTime2ms, i.isDateTime = w.isDateTime, i.ms2DateTime = w.ms2DateTime, i.ms2DateTimeLocal = w.ms2DateTimeLocal, i.cleanDate = w.cleanDate, i.isJSDate = w.isJSDate, i.formatDate = w.formatDate, i.incrementMonth = w.incrementMonth, i.dateTick0 = w.dateTick0, i.dfltRange = w.dfltRange, i.findExactDates = w.findExactDates, i.MIN_MS = w.MIN_MS, i.MAX_MS = w.MAX_MS;
              var S = r(4952);
              i.findBin = S.findBin, i.sorterAsc = S.sorterAsc, i.sorterDes = S.sorterDes, i.distinctVals = S.distinctVals, i.roundUp = S.roundUp, i.sort = S.sort, i.findIndexOfMin = S.findIndexOfMin, i.sortObjectKeys = r(2996);
              var T = r(3084);
              i.aggNums = T.aggNums, i.len = T.len, i.mean = T.mean, i.median = T.median, i.midRange = T.midRange, i.variance = T.variance, i.stdev = T.stdev, i.interp = T.interp;
              var k = r(2248);
              i.init2dArray = k.init2dArray, i.transposeRagged = k.transposeRagged, i.dot = k.dot, i.translationMatrix = k.translationMatrix, i.rotationMatrix = k.rotationMatrix, i.rotationXYMatrix = k.rotationXYMatrix, i.apply3DTransform = k.apply3DTransform, i.apply2DTransform = k.apply2DTransform, i.apply2DTransform2 = k.apply2DTransform2, i.convertCssMatrix = k.convertCssMatrix, i.inverseTransformMatrix = k.inverseTransformMatrix;
              var A = r(1864);
              i.deg2rad = A.deg2rad, i.rad2deg = A.rad2deg, i.angleDelta = A.angleDelta, i.angleDist = A.angleDist, i.isFullCircle = A.isFullCircle, i.isAngleInsideSector = A.isAngleInsideSector, i.isPtInsideSector = A.isPtInsideSector, i.pathArc = A.pathArc, i.pathSector = A.pathSector, i.pathAnnulus = A.pathAnnulus;
              var R = r(8308);
              i.isLeftAnchor = R.isLeftAnchor, i.isCenterAnchor = R.isCenterAnchor, i.isRightAnchor = R.isRightAnchor, i.isTopAnchor = R.isTopAnchor, i.isMiddleAnchor = R.isMiddleAnchor, i.isBottomAnchor = R.isBottomAnchor;
              var g = r(2348);
              i.segmentsIntersect = g.segmentsIntersect, i.segmentDistance = g.segmentDistance, i.getTextLocation = g.getTextLocation, i.clearLocationCache = g.clearLocationCache, i.getVisibleSegment = g.getVisibleSegment, i.findPointOnPath = g.findPointOnPath;
              var I = r(2880);
              i.extendFlat = I.extendFlat, i.extendDeep = I.extendDeep, i.extendDeepAll = I.extendDeepAll, i.extendDeepNoArrays = I.extendDeepNoArrays;
              var O = r(4248);
              i.log = O.log, i.warn = O.warn, i.error = O.error;
              var $ = r(3756);
              i.counterRegex = $.counter;
              var Y = r(1200);
              i.throttle = Y.throttle, i.throttleDone = Y.done, i.clearThrottle = Y.clear;
              var ne = r(2200);
              i.getGraphDiv = ne.getGraphDiv, i.isPlotDiv = ne.isPlotDiv, i.removeElement = ne.removeElement, i.addStyleRule = ne.addStyleRule, i.addRelatedStyleRule = ne.addRelatedStyleRule, i.deleteRelatedStyleRule = ne.deleteRelatedStyleRule, i.getFullTransformMatrix = ne.getFullTransformMatrix, i.getElementTransformMatrix = ne.getElementTransformMatrix, i.getElementAndAncestors = ne.getElementAndAncestors, i.equalDomRects = ne.equalDomRects, i.clearResponsive = r(5352), i.preserveDrawingBuffer = r(4296), i.makeTraceGroups = r(988), i._ = r(8356), i.notifier = r(1792), i.filterUnique = r(8944), i.filterVisible = r(3880), i.pushUnique = r(2416), i.increment = r(1396), i.cleanNumber = r(4037), i.ensureNumber = function(ie) {
                return f(ie) ? (ie = Number(ie), ie > c || ie < d ? h : ie) : h;
              }, i.isIndex = function(ee, ie) {
                return ie !== void 0 && ee >= ie ? !1 : f(ee) && ee >= 0 && ee % 1 === 0;
              }, i.noop = r(6628), i.identity = r(5536), i.repeat = function(ee, ie) {
                for (var G = new Array(ie), H = 0; H < ie; H++)
                  G[H] = ee;
                return G;
              }, i.swapAttrs = function(ee, ie, G, H) {
                G || (G = "x"), H || (H = "y");
                for (var ce = 0; ce < ie.length; ce++) {
                  var j = ie[ce], he = i.nestedProperty(ee, j.replace("?", G)), be = i.nestedProperty(ee, j.replace("?", H)), we = he.get();
                  he.set(be.get()), be.set(we);
                }
              }, i.raiseToTop = function(ie) {
                ie.parentNode.appendChild(ie);
              }, i.cancelTransition = function(ee) {
                return ee.transition().duration(0);
              }, i.constrain = function(ee, ie, G) {
                return ie > G ? Math.max(G, Math.min(ie, ee)) : Math.max(ie, Math.min(G, ee));
              }, i.bBoxIntersect = function(ee, ie, G) {
                return G = G || 0, ee.left <= ie.right + G && ie.left <= ee.right + G && ee.top <= ie.bottom + G && ie.top <= ee.bottom + G;
              }, i.simpleMap = function(ee, ie, G, H, ce) {
                for (var j = ee.length, he = new Array(j), be = 0; be < j; be++)
                  he[be] = ie(ee[be], G, H, ce);
                return he;
              }, i.randstr = function ee(ie, G, H, ce) {
                if (H || (H = 16), G === void 0 && (G = 24), G <= 0)
                  return "0";
                var j = Math.log(Math.pow(2, G)) / Math.log(H), he = "", be, we, Ie;
                for (be = 2; j === 1 / 0; be *= 2)
                  j = Math.log(Math.pow(2, G / be)) / Math.log(H) * be;
                var Ge = j - Math.floor(j);
                for (be = 0; be < Math.floor(j); be++)
                  Ie = Math.floor(Math.random() * H).toString(H), he = Ie + he;
                Ge && (we = Math.pow(H, Ge), Ie = Math.floor(Math.random() * we).toString(H), he = Ie + he);
                var Ve = parseInt(he, H);
                return ie && ie[he] || Ve !== 1 / 0 && Ve >= Math.pow(2, G) ? ce > 10 ? (i.warn("randstr failed uniqueness"), he) : ee(ie, G, H, (ce || 0) + 1) : he;
              }, i.OptionControl = function(ee, ie) {
                ee || (ee = {}), ie || (ie = "opt");
                var G = {};
                return G.optionList = [], G._newoption = function(H) {
                  H[ie] = ee, G[H.name] = H, G.optionList.push(H);
                }, G["_" + ie] = ee, G;
              }, i.smooth = function(ee, ie) {
                if (ie = Math.round(ie) || 0, ie < 2)
                  return ee;
                var G = ee.length, H = 2 * G, ce = 2 * ie - 1, j = new Array(ce), he = new Array(G), be, we, Ie, Ge;
                for (be = 0; be < ce; be++)
                  j[be] = (1 - Math.cos(Math.PI * (be + 1) / ie)) / (2 * ie);
                for (be = 0; be < G; be++) {
                  for (Ge = 0, we = 0; we < ce; we++)
                    Ie = be + we + 1 - ie, Ie < -G ? Ie -= H * Math.round(Ie / H) : Ie >= H && (Ie -= H * Math.floor(Ie / H)), Ie < 0 ? Ie = -1 - Ie : Ie >= G && (Ie = H - 1 - Ie), Ge += ee[Ie] * j[we];
                  he[be] = Ge;
                }
                return he;
              }, i.syncOrAsync = function(ee, ie, G) {
                var H, ce;
                function j() {
                  return i.syncOrAsync(ee, ie, G);
                }
                for (; ee.length; )
                  if (ce = ee.splice(0, 1)[0], H = ce(ie), H && H.then)
                    return H.then(j);
                return G && G(ie);
              }, i.stripTrailingSlash = function(ee) {
                return ee.substr(-1) === "/" ? ee.substr(0, ee.length - 1) : ee;
              }, i.noneOrAll = function(ee, ie, G) {
                if (ee) {
                  var H = !1, ce = !0, j, he;
                  for (j = 0; j < G.length; j++)
                    he = ee[G[j]], he != null ? H = !0 : ce = !1;
                  if (H && !ce)
                    for (j = 0; j < G.length; j++)
                      ee[G[j]] = ie[G[j]];
                }
              }, i.mergeArray = function(ee, ie, G, H) {
                var ce = typeof H == "function";
                if (i.isArrayOrTypedArray(ee))
                  for (var j = Math.min(ee.length, ie.length), he = 0; he < j; he++) {
                    var be = ee[he];
                    ie[he][G] = ce ? H(be) : be;
                  }
              }, i.mergeArrayCastPositive = function(ee, ie, G) {
                return i.mergeArray(ee, ie, G, function(H) {
                  var ce = +H;
                  return isFinite(ce) && ce > 0 ? ce : 0;
                });
              }, i.fillArray = function(ee, ie, G, H) {
                if (H = H || i.identity, i.isArrayOrTypedArray(ee))
                  for (var ce = 0; ce < ie.length; ce++)
                    ie[ce][G] = H(ee[ce]);
              }, i.castOption = function(ee, ie, G, H) {
                H = H || i.identity;
                var ce = i.nestedProperty(ee, G).get();
                return i.isArrayOrTypedArray(ce) ? Array.isArray(ie) && i.isArrayOrTypedArray(ce[ie[0]]) ? H(ce[ie[0]][ie[1]]) : H(ce[ie]) : ce;
              }, i.extractOption = function(ee, ie, G, H) {
                if (G in ee)
                  return ee[G];
                var ce = i.nestedProperty(ie, H).get();
                if (!Array.isArray(ce))
                  return ce;
              };
              function q(ee) {
                var ie = {};
                for (var G in ee)
                  for (var H = ee[G], ce = 0; ce < H.length; ce++)
                    ie[H[ce]] = +G;
                return ie;
              }
              i.tagSelected = function(ee, ie, G) {
                var H = ie.selectedpoints, ce = ie._indexToPoints, j;
                ce && (j = q(ce));
                function he(Ve) {
                  return Ve !== void 0 && Ve < ee.length;
                }
                for (var be = 0; be < H.length; be++) {
                  var we = H[be];
                  if (i.isIndex(we) || i.isArrayOrTypedArray(we) && i.isIndex(we[0]) && i.isIndex(we[1])) {
                    var Ie = j ? j[we] : we, Ge = G ? G[Ie] : Ie;
                    he(Ge) && (ee[Ge].selected = 1);
                  }
                }
              }, i.selIndices2selPoints = function(ee) {
                var ie = ee.selectedpoints, G = ee._indexToPoints;
                if (G) {
                  for (var H = q(G), ce = [], j = 0; j < ie.length; j++) {
                    var he = ie[j];
                    if (i.isIndex(he)) {
                      var be = H[he];
                      i.isIndex(be) && ce.push(be);
                    }
                  }
                  return ce;
                } else
                  return ie;
              }, i.getTargetArray = function(ee, ie) {
                var G = ie.target;
                if (typeof G == "string" && G) {
                  var H = i.nestedProperty(ee, G).get();
                  return i.isArrayOrTypedArray(H) ? H : !1;
                } else if (i.isArrayOrTypedArray(G))
                  return G;
                return !1;
              };
              function B(ee, ie, G) {
                var H = {};
                typeof ie != "object" && (ie = {});
                var ce = G === "pieLike" ? -1 : 3, j = Object.keys(ee), he, be, we;
                for (he = 0; he < j.length; he++)
                  be = j[he], we = ee[be], !(be.charAt(0) === "_" || typeof we == "function") && (be === "module" ? H[be] = we : Array.isArray(we) ? be === "colorscale" || ce === -1 ? H[be] = we.slice() : H[be] = we.slice(0, ce) : i.isTypedArray(we) ? ce === -1 ? H[be] = we.subarray() : H[be] = we.subarray(0, ce) : we && typeof we == "object" ? H[be] = B(ee[be], ie[be], G) : H[be] = we);
                for (j = Object.keys(ie), he = 0; he < j.length; he++)
                  be = j[he], we = ie[be], (typeof we != "object" || !(be in H) || typeof H[be] != "object") && (H[be] = we);
                return H;
              }
              i.minExtend = B, i.titleCase = function(ee) {
                return ee.charAt(0).toUpperCase() + ee.substr(1);
              }, i.containsAny = function(ee, ie) {
                for (var G = 0; G < ie.length; G++)
                  if (ee.indexOf(ie[G]) !== -1)
                    return !0;
                return !1;
              }, i.isIE = function() {
                return typeof window.navigator.msSaveBlob < "u";
              };
              var X = /Version\/[\d\.]+.*Safari/;
              i.isSafari = function() {
                return X.test(window.navigator.userAgent);
              };
              var U = /iPad|iPhone|iPod/;
              i.isIOS = function() {
                return U.test(window.navigator.userAgent);
              };
              var te = /Firefox\/(\d+)\.\d+/;
              i.getFirefoxVersion = function() {
                var ee = te.exec(window.navigator.userAgent);
                if (ee && ee.length === 2) {
                  var ie = parseInt(ee[1]);
                  if (!isNaN(ie))
                    return ie;
                }
                return null;
              }, i.isD3Selection = function(ee) {
                return ee instanceof a.selection;
              }, i.ensureSingle = function(ee, ie, G, H) {
                var ce = ee.select(ie + (G ? "." + G : ""));
                if (ce.size())
                  return ce;
                var j = ee.append(ie);
                return G && j.classed(G, !0), H && j.call(H), j;
              }, i.ensureSingleById = function(ee, ie, G, H) {
                var ce = ee.select(ie + "#" + G);
                if (ce.size())
                  return ce;
                var j = ee.append(ie).attr("id", G);
                return H && j.call(H), j;
              }, i.objectFromPath = function(ee, ie) {
                for (var G = ee.split("."), H, ce = H = {}, j = 0; j < G.length; j++) {
                  var he = G[j], be = null, we = G[j].match(/(.*)\[([0-9]+)\]/);
                  we ? (he = we[1], be = we[2], H = H[he] = [], j === G.length - 1 ? H[be] = ie : H[be] = {}, H = H[be]) : (j === G.length - 1 ? H[he] = ie : H[he] = {}, H = H[he]);
                }
                return ce;
              };
              var se = /^([^\[\.]+)\.(.+)?/, me = /^([^\.]+)\[([0-9]+)\](\.)?(.+)?/;
              function J(ee) {
                return ee.slice(0, 2) === "__";
              }
              i.expandObjectPaths = function(ee) {
                var ie, G, H, ce, j, he, be;
                if (typeof ee == "object" && !Array.isArray(ee)) {
                  for (G in ee)
                    if (ee.hasOwnProperty(G))
                      if (ie = G.match(se)) {
                        if (ce = ee[G], H = ie[1], J(H))
                          continue;
                        delete ee[G], ee[H] = i.extendDeepNoArrays(ee[H] || {}, i.objectFromPath(G, i.expandObjectPaths(ce))[H]);
                      } else if (ie = G.match(me)) {
                        if (ce = ee[G], H = ie[1], J(H))
                          continue;
                        if (j = parseInt(ie[2]), delete ee[G], ee[H] = ee[H] || [], ie[3] === ".")
                          be = ie[4], he = ee[H][j] = ee[H][j] || {}, i.extendDeepNoArrays(he, i.objectFromPath(be, i.expandObjectPaths(ce)));
                        else {
                          if (J(H))
                            continue;
                          ee[H][j] = i.expandObjectPaths(ce);
                        }
                      } else {
                        if (J(G))
                          continue;
                        ee[G] = i.expandObjectPaths(ee[G]);
                      }
                }
                return ee;
              }, i.numSeparate = function(ee, ie, G) {
                if (G || (G = !1), typeof ie != "string" || ie.length === 0)
                  throw new Error("Separator string required for formatting!");
                typeof ee == "number" && (ee = String(ee));
                var H = /(\d+)(\d{3})/, ce = ie.charAt(0), j = ie.charAt(1), he = ee.split("."), be = he[0], we = he.length > 1 ? ce + he[1] : "";
                if (j && (he.length > 1 || be.length > 4 || G))
                  for (; H.test(be); )
                    be = be.replace(H, "$1" + j + "$2");
                return be + we;
              }, i.TEMPLATE_STRING_REGEX = /%{([^\s%{}:]*)([:|\|][^}]*)?}/g;
              var W = /^\w*$/;
              i.templateString = function(ee, ie) {
                var G = {};
                return ee.replace(i.TEMPLATE_STRING_REGEX, function(H, ce) {
                  var j;
                  return W.test(ce) ? j = ie[ce] : (G[ce] = G[ce] || i.nestedProperty(ie, ce).get, j = G[ce]()), i.isValidTextValue(j) ? j : "";
                });
              };
              var ae = {
                max: 10,
                count: 0,
                name: "hovertemplate"
              };
              i.hovertemplateString = function() {
                return Re.apply(ae, arguments);
              };
              var oe = {
                max: 10,
                count: 0,
                name: "texttemplate"
              };
              i.texttemplateString = function() {
                return Re.apply(oe, arguments);
              };
              var ve = /^(\S+)([\*\/])(-?\d+(\.\d+)?)$/;
              function fe(ee) {
                var ie = ee.match(ve);
                return ie ? {
                  key: ie[1],
                  op: ie[2],
                  number: Number(ie[3])
                } : {
                  key: ee,
                  op: null,
                  number: null
                };
              }
              var ye = {
                max: 10,
                count: 0,
                name: "texttemplate",
                parseMultDiv: !0
              };
              i.texttemplateStringForShapes = function() {
                return Re.apply(ye, arguments);
              };
              var Ce = /^[:|\|]/;
              function Re(ee, ie, G) {
                var H = this, ce = arguments;
                ie || (ie = {});
                var j = {};
                return ee.replace(i.TEMPLATE_STRING_REGEX, function(he, be, we) {
                  var Ie = be === "xother" || be === "yother", Ge = be === "_xother" || be === "_yother", Ve = be === "_xother_" || be === "_yother_", Je = be === "xother_" || be === "yother_", et = Ie || Ge || Je || Ve, at = be;
                  (Ge || Ve) && (at = at.substring(1)), (Je || Ve) && (at = at.substring(0, at.length - 1));
                  var Le = null, ze = null;
                  if (H.parseMultDiv) {
                    var Oe = fe(at);
                    at = Oe.key, Le = Oe.op, ze = Oe.number;
                  }
                  var Xe;
                  if (et) {
                    if (Xe = ie[at], Xe === void 0)
                      return "";
                  } else {
                    var it, ut;
                    for (ut = 3; ut < ce.length; ut++)
                      if (it = ce[ut], !!it) {
                        if (it.hasOwnProperty(at)) {
                          Xe = it[at];
                          break;
                        }
                        if (W.test(at) || (Xe = i.nestedProperty(it, at).get(), Xe = j[at] || i.nestedProperty(it, at).get(), Xe && (j[at] = Xe)), Xe !== void 0)
                          break;
                      }
                  }
                  if (Xe !== void 0 && (Le === "*" && (Xe *= ze), Le === "/" && (Xe /= ze)), Xe === void 0 && H)
                    return H.count < H.max && (i.warn("Variable '" + at + "' in " + H.name + " could not be found!"), Xe = he), H.count === H.max && i.warn("Too many " + H.name + " warnings - additional warnings will be suppressed"), H.count++, he;
                  if (we) {
                    var wt;
                    if (we[0] === ":" && (wt = G ? G.numberFormat : i.numberFormat, Xe !== "" && (Xe = wt(we.replace(Ce, ""))(Xe))), we[0] === "|") {
                      wt = G ? G.timeFormat : p;
                      var kt = i.dateTime2ms(Xe);
                      Xe = i.formatDate(kt, we.replace(Ce, ""), !1, wt);
                    }
                  } else {
                    var Ot = at + "Label";
                    ie.hasOwnProperty(Ot) && (Xe = ie[Ot]);
                  }
                  return et && (Xe = "(" + Xe + ")", (Ge || Ve) && (Xe = " " + Xe), (Je || Ve) && (Xe = Xe + " ")), Xe;
                });
              }
              var Be = 48, xe = 57;
              i.subplotSort = function(ee, ie) {
                for (var G = Math.min(ee.length, ie.length) + 1, H = 0, ce = 0, j = 0; j < G; j++) {
                  var he = ee.charCodeAt(j) || 0, be = ie.charCodeAt(j) || 0, we = he >= Be && he <= xe, Ie = be >= Be && be <= xe;
                  if (we && (H = 10 * H + he - Be), Ie && (ce = 10 * ce + be - Be), !we || !Ie) {
                    if (H !== ce)
                      return H - ce;
                    if (he !== be)
                      return he - be;
                  }
                }
                return ce - H;
              };
              var Me = 2e9;
              i.seedPseudoRandom = function() {
                Me = 2e9;
              }, i.pseudoRandom = function() {
                var ee = Me;
                return Me = (69069 * Me + 1) % 4294967296, Math.abs(Me - ee) < 429496729 ? i.pseudoRandom() : Me / 4294967296;
              }, i.fillText = function(ee, ie, G) {
                var H = Array.isArray(G) ? function(he) {
                  G.push(he);
                } : function(he) {
                  G.text = he;
                }, ce = i.extractOption(ee, ie, "htx", "hovertext");
                if (i.isValidTextValue(ce))
                  return H(ce);
                var j = i.extractOption(ee, ie, "tx", "text");
                if (i.isValidTextValue(j))
                  return H(j);
              }, i.isValidTextValue = function(ee) {
                return ee || ee === 0;
              }, i.formatPercent = function(ee, ie) {
                ie = ie || 0;
                for (var G = (Math.round(100 * ee * Math.pow(10, ie)) * Math.pow(0.1, ie)).toFixed(ie) + "%", H = 0; H < ie; H++)
                  G.indexOf(".") !== -1 && (G = G.replace("0%", "%"), G = G.replace(".%", "%"));
                return G;
              }, i.isHidden = function(ee) {
                var ie = window.getComputedStyle(ee).display;
                return !ie || ie === "none";
              }, i.strTranslate = function(ee, ie) {
                return ee || ie ? "translate(" + ee + "," + ie + ")" : "";
              }, i.strRotate = function(ee) {
                return ee ? "rotate(" + ee + ")" : "";
              }, i.strScale = function(ee) {
                return ee !== 1 ? "scale(" + ee + ")" : "";
              }, i.getTextTransform = function(ee) {
                var ie = ee.noCenter, G = ee.textX, H = ee.textY, ce = ee.targetX, j = ee.targetY, he = ee.anchorX || 0, be = ee.anchorY || 0, we = ee.rotate, Ie = ee.scale;
                return Ie ? Ie > 1 && (Ie = 1) : Ie = 0, i.strTranslate(ce - Ie * (G + he), j - Ie * (H + be)) + i.strScale(Ie) + (we ? "rotate(" + we + (ie ? "" : " " + G + " " + H) + ")" : "");
              }, i.setTransormAndDisplay = function(ee, ie) {
                ee.attr("transform", i.getTextTransform(ie)), ee.style("display", ie.scale ? null : "none");
              }, i.ensureUniformFontSize = function(ee, ie) {
                var G = i.extendFlat({}, ie);
                return G.size = Math.max(ie.size, ee._fullLayout.uniformtext.minsize || 0), G;
              }, i.join2 = function(ee, ie, G) {
                var H = ee.length;
                return H > 1 ? ee.slice(0, -1).join(ie) + G + ee[H - 1] : ee.join(ie);
              }, i.bigFont = function(ee) {
                return Math.round(1.2 * ee);
              };
              var De = i.getFirefoxVersion(), Z = De !== null && De < 86;
              i.getPositionFromD3Event = function() {
                return Z ? [a.event.layerX, a.event.layerY] : [a.event.offsetX, a.event.offsetY];
              };
            }
          ),
          /***/
          3620: (
            /***/
            function(M) {
              M.exports = function(r) {
                return window && window.process && window.process.versions ? Object.prototype.toString.call(r) === "[object Object]" : Object.prototype.toString.call(r) === "[object Object]" && Object.getPrototypeOf(r).hasOwnProperty("hasOwnProperty");
              };
            }
          ),
          /***/
          7804: (
            /***/
            function(M, L, r) {
              var a = r(2296), p = /^\w*$/, l = 0, f = 1, u = 2, c = 3, d = 4;
              M.exports = function(i, b, x, D) {
                x = x || "name", D = D || "value";
                var C, w, S, T = {};
                b && b.length ? (S = a(i, b), w = S.get()) : w = i, b = b || "";
                var k = {};
                if (w)
                  for (C = 0; C < w.length; C++)
                    k[w[C][x]] = C;
                var A = p.test(D), R = {
                  set: function(g, I) {
                    var O = I === null ? d : l;
                    if (!w) {
                      if (!S || O === d)
                        return;
                      w = [], S.set(w);
                    }
                    var $ = k[g];
                    if ($ === void 0) {
                      if (O === d)
                        return;
                      O = O | c, $ = w.length, k[g] = $;
                    } else
                      I !== (A ? w[$][D] : a(w[$], D).get()) && (O = O | u);
                    var Y = w[$] = w[$] || {};
                    return Y[x] = g, A ? Y[D] = I : a(Y, D).set(I), I !== null && (O = O & ~d), T[$] = T[$] | O, R;
                  },
                  get: function(g) {
                    if (w) {
                      var I = k[g];
                      if (I !== void 0)
                        return A ? w[I][D] : a(w[I], D).get();
                    }
                  },
                  rename: function(g, I) {
                    var O = k[g];
                    return O === void 0 || (T[O] = T[O] | f, k[I] = O, delete k[g], w[O][x] = I), R;
                  },
                  remove: function(g) {
                    var I = k[g];
                    if (I === void 0)
                      return R;
                    var O = w[I];
                    if (Object.keys(O).length > 2)
                      return T[I] = T[I] | u, R.set(g, null);
                    if (A) {
                      for (C = I; C < w.length; C++)
                        T[C] = T[C] | c;
                      for (C = I; C < w.length; C++)
                        k[w[C][x]]--;
                      w.splice(I, 1), delete k[g];
                    } else
                      a(O, D).set(null), T[I] = T[I] | u | d;
                    return R;
                  },
                  constructUpdate: function() {
                    for (var g, I, O = {}, $ = Object.keys(T), Y = 0; Y < $.length; Y++)
                      I = $[Y], g = b + "[" + I + "]", w[I] ? (T[I] & f && (O[g + "." + x] = w[I][x]), T[I] & u && (A ? O[g + "." + D] = T[I] & d ? null : w[I][D] : O[g + "." + D] = T[I] & d ? null : a(w[I], D).get())) : O[g] = null;
                    return O;
                  }
                };
                return R;
              };
            }
          ),
          /***/
          8356: (
            /***/
            function(M, L, r) {
              var a = r(4040);
              M.exports = function(l, f) {
                for (var u = l._context.locale, c = 0; c < 2; c++) {
                  for (var d = l._context.locales, h = 0; h < 2; h++) {
                    var i = (d[u] || {}).dictionary;
                    if (i) {
                      var b = i[f];
                      if (b)
                        return b;
                    }
                    d = a.localeRegistry;
                  }
                  var x = u.split("-")[0];
                  if (x === u)
                    break;
                  u = x;
                }
                return f;
              };
            }
          ),
          /***/
          4248: (
            /***/
            function(M, L, r) {
              var a = r(556).dfltConfig, p = r(1792), l = M.exports = {};
              l.log = function() {
                var f;
                if (a.logging > 1) {
                  var u = ["LOG:"];
                  for (f = 0; f < arguments.length; f++)
                    u.push(arguments[f]);
                  console.trace.apply(console, u);
                }
                if (a.notifyOnLogging > 1) {
                  var c = [];
                  for (f = 0; f < arguments.length; f++)
                    c.push(arguments[f]);
                  p(c.join("<br>"), "long");
                }
              }, l.warn = function() {
                var f;
                if (a.logging > 0) {
                  var u = ["WARN:"];
                  for (f = 0; f < arguments.length; f++)
                    u.push(arguments[f]);
                  console.trace.apply(console, u);
                }
                if (a.notifyOnLogging > 0) {
                  var c = [];
                  for (f = 0; f < arguments.length; f++)
                    c.push(arguments[f]);
                  p(c.join("<br>"), "stick");
                }
              }, l.error = function() {
                var f;
                if (a.logging > 0) {
                  var u = ["ERROR:"];
                  for (f = 0; f < arguments.length; f++)
                    u.push(arguments[f]);
                  console.error.apply(console, u);
                }
                if (a.notifyOnLogging > 0) {
                  var c = [];
                  for (f = 0; f < arguments.length; f++)
                    c.push(arguments[f]);
                  p(c.join("<br>"), "stick");
                }
              };
            }
          ),
          /***/
          988: (
            /***/
            function(M, L, r) {
              var a = r(3428);
              M.exports = function(l, f, u) {
                var c = l.selectAll("g." + u.replace(/\s/g, ".")).data(f, function(h) {
                  return h[0].trace.uid;
                });
                c.exit().remove(), c.enter().append("g").attr("class", u), c.order();
                var d = l.classed("rangeplot") ? "nodeRangePlot3" : "node3";
                return c.each(function(h) {
                  h[0][d] = a.select(this);
                }), c;
              };
            }
          ),
          /***/
          2248: (
            /***/
            function(M, L, r) {
              var a = r(6524);
              L.init2dArray = function(p, l) {
                for (var f = new Array(p), u = 0; u < p; u++)
                  f[u] = new Array(l);
                return f;
              }, L.transposeRagged = function(p) {
                var l = 0, f = p.length, u, c;
                for (u = 0; u < f; u++)
                  l = Math.max(l, p[u].length);
                var d = new Array(l);
                for (u = 0; u < l; u++)
                  for (d[u] = new Array(f), c = 0; c < f; c++)
                    d[u][c] = p[c][u];
                return d;
              }, L.dot = function(p, l) {
                if (!(p.length && l.length) || p.length !== l.length)
                  return null;
                var f = p.length, u, c;
                if (p[0].length)
                  for (u = new Array(f), c = 0; c < f; c++)
                    u[c] = L.dot(p[c], l);
                else if (l[0].length) {
                  var d = L.transposeRagged(l);
                  for (u = new Array(d.length), c = 0; c < d.length; c++)
                    u[c] = L.dot(p, d[c]);
                } else
                  for (u = 0, c = 0; c < f; c++)
                    u += p[c] * l[c];
                return u;
              }, L.translationMatrix = function(p, l) {
                return [[1, 0, p], [0, 1, l], [0, 0, 1]];
              }, L.rotationMatrix = function(p) {
                var l = p * Math.PI / 180;
                return [[Math.cos(l), -Math.sin(l), 0], [Math.sin(l), Math.cos(l), 0], [0, 0, 1]];
              }, L.rotationXYMatrix = function(p, l, f) {
                return L.dot(L.dot(L.translationMatrix(l, f), L.rotationMatrix(p)), L.translationMatrix(-l, -f));
              }, L.apply3DTransform = function(p) {
                return function() {
                  var l = arguments, f = arguments.length === 1 ? l[0] : [l[0], l[1], l[2] || 0];
                  return L.dot(p, [f[0], f[1], f[2], 1]).slice(0, 3);
                };
              }, L.apply2DTransform = function(p) {
                return function() {
                  var l = arguments;
                  l.length === 3 && (l = l[0]);
                  var f = arguments.length === 1 ? l[0] : [l[0], l[1]];
                  return L.dot(p, [f[0], f[1], 1]).slice(0, 2);
                };
              }, L.apply2DTransform2 = function(p) {
                var l = L.apply2DTransform(p);
                return function(f) {
                  return l(f.slice(0, 2)).concat(l(f.slice(2, 4)));
                };
              }, L.convertCssMatrix = function(p) {
                if (p) {
                  var l = p.length;
                  if (l === 16)
                    return p;
                  if (l === 6)
                    return [p[0], p[1], 0, 0, p[2], p[3], 0, 0, 0, 0, 1, 0, p[4], p[5], 0, 1];
                }
                return [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
              }, L.inverseTransformMatrix = function(p) {
                var l = [];
                return a.invert(l, p), [[l[0], l[1], l[2], l[3]], [l[4], l[5], l[6], l[7]], [l[8], l[9], l[10], l[11]], [l[12], l[13], l[14], l[15]]];
              };
            }
          ),
          /***/
          435: (
            /***/
            function(M) {
              function L(a, p) {
                var l = a % p;
                return l < 0 ? l + p : l;
              }
              function r(a, p) {
                return Math.abs(a) > p / 2 ? a - Math.round(a / p) * p : a;
              }
              M.exports = {
                mod: L,
                modHalf: r
              };
            }
          ),
          /***/
          2296: (
            /***/
            function(M, L, r) {
              var a = r(8248), p = r(8116).isArrayOrTypedArray;
              M.exports = function(D, C) {
                if (a(C))
                  C = String(C);
                else if (typeof C != "string" || C.substr(C.length - 4) === "[-1]")
                  throw "bad property string";
                var w = C.split("."), S, T, k, A;
                for (A = 0; A < w.length; A++)
                  if (String(w[A]).slice(0, 2) === "__")
                    throw "bad property string";
                for (A = 0; A < w.length; ) {
                  if (S = String(w[A]).match(/^([^\[\]]*)((\[\-?[0-9]*\])+)$/), S) {
                    if (S[1])
                      w[A] = S[1];
                    else if (A === 0)
                      w.splice(0, 1);
                    else
                      throw "bad property string";
                    for (T = S[2].substr(1, S[2].length - 2).split("]["), k = 0; k < T.length; k++)
                      A++, w.splice(A, 0, Number(T[k]));
                  }
                  A++;
                }
                return typeof D != "object" ? b(D, C, w) : {
                  set: c(D, w, C),
                  get: l(D, w),
                  astr: C,
                  parts: w,
                  obj: D
                };
              };
              function l(x, D) {
                return function() {
                  var C = x, w, S, T, k, A;
                  for (k = 0; k < D.length - 1; k++) {
                    if (w = D[k], w === -1) {
                      for (S = !0, T = [], A = 0; A < C.length; A++)
                        T[A] = l(C[A], D.slice(k + 1))(), T[A] !== T[0] && (S = !1);
                      return S ? T[0] : T;
                    }
                    if (typeof w == "number" && !p(C) || (C = C[w], typeof C != "object" || C === null))
                      return;
                  }
                  if (!(typeof C != "object" || C === null) && (T = C[D[k]], T !== null))
                    return T;
                };
              }
              var f = /(^|\.)args\[/;
              function u(x, D) {
                return x === void 0 || x === null && !D.match(f);
              }
              function c(x, D, C) {
                return function(w) {
                  var S = x, T = "", k = u(w, C), A, R;
                  for (R = 0; R < D.length - 1; R++) {
                    if (A = D[R], typeof A == "number" && !p(S))
                      throw "array index but container is not an array";
                    if (A === -1) {
                      if (k = !h(S, D.slice(R + 1), w, C), k)
                        break;
                      return;
                    }
                    if (!i(S, A, D[R + 1], k))
                      break;
                    if (S = S[A], typeof S != "object" || S === null)
                      throw "container is not an object";
                    T = d(T, A);
                  }
                  if (k) {
                    if (R === D.length - 1 && (delete S[D[R]], Array.isArray(S) && +D[R] === S.length - 1))
                      for (; S.length && S[S.length - 1] === void 0; )
                        S.pop();
                  } else
                    S[D[R]] = w;
                };
              }
              function d(x, D) {
                var C = D;
                return a(D) ? C = "[" + D + "]" : x && (C = "." + D), x + C;
              }
              function h(x, D, C, w) {
                var S = p(C), T = !0, k = C, A = w.replace("-1", 0), R = S ? !1 : u(C, A), g = D[0], I;
                for (I = 0; I < x.length; I++)
                  A = w.replace("-1", I), S && (k = C[I % C.length], R = u(k, A)), R && (T = !1), i(x, I, g, R) && c(x[I], D, w.replace("-1", I))(k);
                return T;
              }
              function i(x, D, C, w) {
                if (x[D] === void 0) {
                  if (w)
                    return !1;
                  typeof C == "number" ? x[D] = [] : x[D] = {};
                }
                return !0;
              }
              function b(x, D, C) {
                return {
                  set: function() {
                    throw "bad container";
                  },
                  get: function() {
                  },
                  astr: D,
                  parts: C,
                  obj: x
                };
              }
            }
          ),
          /***/
          6628: (
            /***/
            function(M) {
              M.exports = function() {
              };
            }
          ),
          /***/
          1792: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(8248), l = [];
              M.exports = function(f, u) {
                if (l.indexOf(f) !== -1)
                  return;
                l.push(f);
                var c = 1e3;
                p(u) ? c = u : u === "long" && (c = 3e3);
                var d = a.select("body").selectAll(".plotly-notifier").data([0]);
                d.enter().append("div").classed("plotly-notifier", !0);
                var h = d.selectAll(".notifier-note").data(l);
                function i(b) {
                  b.duration(700).style("opacity", 0).each("end", function(x) {
                    var D = l.indexOf(x);
                    D !== -1 && l.splice(D, 1), a.select(this).remove();
                  });
                }
                h.enter().append("div").classed("notifier-note", !0).style("opacity", 0).each(function(b) {
                  var x = a.select(this);
                  x.append("button").classed("notifier-close", !0).html("&times;").on("click", function() {
                    x.transition().call(i);
                  });
                  for (var D = x.append("p"), C = b.split(/<br\s*\/?>/g), w = 0; w < C.length; w++)
                    w && D.append("br"), D.append("span").text(C[w]);
                  u === "stick" ? x.transition().duration(350).style("opacity", 1) : x.transition().duration(700).style("opacity", 1).transition().delay(c).call(i);
                });
              };
            }
          ),
          /***/
          2213: (
            /***/
            function(M, L, r) {
              var a = r(3972), p = "data-savedcursor", l = "!!";
              M.exports = function(u, c) {
                var d = u.attr(p);
                if (c) {
                  if (!d) {
                    for (var h = (u.attr("class") || "").split(" "), i = 0; i < h.length; i++) {
                      var b = h[i];
                      b.indexOf("cursor-") === 0 && u.attr(p, b.substr(7)).classed(b, !1);
                    }
                    u.attr(p) || u.attr(p, l);
                  }
                  a(u, c);
                } else
                  d && (u.attr(p, null), d === l ? a(u) : a(u, d));
              };
            }
          ),
          /***/
          2065: (
            /***/
            function(M, L, r) {
              var a = r(2248).dot, p = r(9032).BADNUM, l = M.exports = {};
              l.tester = function(u) {
                var c = u.slice(), d = c[0][0], h = d, i = c[0][1], b = i, x;
                for ((c[c.length - 1][0] !== c[0][0] || c[c.length - 1][1] !== c[0][1]) && c.push(c[0]), x = 1; x < c.length; x++)
                  d = Math.min(d, c[x][0]), h = Math.max(h, c[x][0]), i = Math.min(i, c[x][1]), b = Math.max(b, c[x][1]);
                var D = !1, C;
                c.length === 5 && (c[0][0] === c[1][0] ? c[2][0] === c[3][0] && c[0][1] === c[3][1] && c[1][1] === c[2][1] && (D = !0, C = function(A) {
                  return A[0] === c[0][0];
                }) : c[0][1] === c[1][1] && c[2][1] === c[3][1] && c[0][0] === c[3][0] && c[1][0] === c[2][0] && (D = !0, C = function(A) {
                  return A[1] === c[0][1];
                }));
                function w(A, R) {
                  var g = A[0], I = A[1];
                  return !(g === p || g < d || g > h || I === p || I < i || I > b || R && C(A));
                }
                function S(A, R) {
                  var g = A[0], I = A[1];
                  if (g === p || g < d || g > h || I === p || I < i || I > b)
                    return !1;
                  var O = c.length, $ = c[0][0], Y = c[0][1], ne = 0, q, B, X, U, te;
                  for (q = 1; q < O; q++)
                    if (B = $, X = Y, $ = c[q][0], Y = c[q][1], U = Math.min(B, $), !(g < U || g > Math.max(B, $) || I > Math.max(X, Y)))
                      if (I < Math.min(X, Y))
                        g !== U && ne++;
                      else {
                        if ($ === B ? te = I : te = X + (g - B) * (Y - X) / ($ - B), I === te)
                          return !(q === 1 && R);
                        I <= te && g !== U && ne++;
                      }
                  return ne % 2 === 1;
                }
                var T = !0, k = c[0];
                for (x = 1; x < c.length; x++)
                  if (k[0] !== c[x][0] || k[1] !== c[x][1]) {
                    T = !1;
                    break;
                  }
                return {
                  xmin: d,
                  xmax: h,
                  ymin: i,
                  ymax: b,
                  pts: c,
                  contains: D ? w : S,
                  isRect: D,
                  degenerate: T
                };
              }, l.isSegmentBent = function(u, c, d, h) {
                var i = u[c], b = [u[d][0] - i[0], u[d][1] - i[1]], x = a(b, b), D = Math.sqrt(x), C = [-b[1] / D, b[0] / D], w, S, T;
                for (w = c + 1; w < d; w++)
                  if (S = [u[w][0] - i[0], u[w][1] - i[1]], T = a(S, b), T < 0 || T > x || Math.abs(a(S, C)) > h)
                    return !0;
                return !1;
              }, l.filter = function(u, c) {
                var d = [u[0]], h = 0, i = 0;
                function b(D) {
                  u.push(D);
                  var C = d.length, w = h;
                  d.splice(i + 1);
                  for (var S = w + 1; S < u.length; S++)
                    (S === u.length - 1 || l.isSegmentBent(u, w, S + 1, c)) && (d.push(u[S]), d.length < C - 2 && (h = S, i = d.length - 1), w = S);
                }
                if (u.length > 1) {
                  var x = u.pop();
                  b(x);
                }
                return {
                  addPt: b,
                  raw: u,
                  filtered: d
                };
              };
            }
          ),
          /***/
          4296: (
            /***/
            function(M, L, r) {
              var a = r(8248), p = r(5928);
              M.exports = function(u) {
                var c;
                if (u && u.hasOwnProperty("userAgent") ? c = u.userAgent : c = l(), typeof c != "string")
                  return !0;
                var d = p({
                  ua: {
                    headers: {
                      "user-agent": c
                    }
                  },
                  tablet: !0,
                  featureDetect: !1
                });
                if (!d)
                  for (var h = c.split(" "), i = 1; i < h.length; i++) {
                    var b = h[i];
                    if (b.indexOf("Safari") !== -1)
                      for (var x = i - 1; x > -1; x--) {
                        var D = h[x];
                        if (D.substr(0, 8) === "Version/") {
                          var C = D.substr(8).split(".")[0];
                          if (a(C) && (C = +C), C >= 13)
                            return !0;
                        }
                      }
                  }
                return d;
              };
              function l() {
                var f;
                return typeof navigator < "u" && (f = navigator.userAgent), f && f.headers && typeof f.headers["user-agent"] == "string" && (f = f.headers["user-agent"]), f;
              }
            }
          ),
          /***/
          2416: (
            /***/
            function(M) {
              M.exports = function(r, a) {
                if (a instanceof RegExp) {
                  for (var p = a.toString(), l = 0; l < r.length; l++)
                    if (r[l] instanceof RegExp && r[l].toString() === p)
                      return r;
                  r.push(a);
                } else
                  (a || a === 0) && r.indexOf(a) === -1 && r.push(a);
                return r;
              };
            }
          ),
          /***/
          4552: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(556).dfltConfig;
              function l(u, c) {
                for (var d = [], h, i = 0; i < c.length; i++)
                  h = c[i], h === u ? d[i] = h : typeof h == "object" ? d[i] = Array.isArray(h) ? a.extendDeep([], h) : a.extendDeepAll({}, h) : d[i] = h;
                return d;
              }
              var f = {};
              f.add = function(u, c, d, h, i) {
                var b, x;
                if (u.undoQueue = u.undoQueue || {
                  index: 0,
                  queue: [],
                  sequence: !1
                }, x = u.undoQueue.index, u.autoplay) {
                  u.undoQueue.inSequence || (u.autoplay = !1);
                  return;
                }
                !u.undoQueue.sequence || u.undoQueue.beginSequence ? (b = {
                  undo: {
                    calls: [],
                    args: []
                  },
                  redo: {
                    calls: [],
                    args: []
                  }
                }, u.undoQueue.queue.splice(x, u.undoQueue.queue.length - x, b), u.undoQueue.index += 1) : b = u.undoQueue.queue[x - 1], u.undoQueue.beginSequence = !1, b && (b.undo.calls.unshift(c), b.undo.args.unshift(d), b.redo.calls.push(h), b.redo.args.push(i)), u.undoQueue.queue.length > p.queueLength && (u.undoQueue.queue.shift(), u.undoQueue.index--);
              }, f.startSequence = function(u) {
                u.undoQueue = u.undoQueue || {
                  index: 0,
                  queue: [],
                  sequence: !1
                }, u.undoQueue.sequence = !0, u.undoQueue.beginSequence = !0;
              }, f.stopSequence = function(u) {
                u.undoQueue = u.undoQueue || {
                  index: 0,
                  queue: [],
                  sequence: !1
                }, u.undoQueue.sequence = !1, u.undoQueue.beginSequence = !1;
              }, f.undo = function(c) {
                var d, h;
                if (!(c.undoQueue === void 0 || isNaN(c.undoQueue.index) || c.undoQueue.index <= 0)) {
                  for (c.undoQueue.index--, d = c.undoQueue.queue[c.undoQueue.index], c.undoQueue.inSequence = !0, h = 0; h < d.undo.calls.length; h++)
                    f.plotDo(c, d.undo.calls[h], d.undo.args[h]);
                  c.undoQueue.inSequence = !1, c.autoplay = !1;
                }
              }, f.redo = function(c) {
                var d, h;
                if (!(c.undoQueue === void 0 || isNaN(c.undoQueue.index) || c.undoQueue.index >= c.undoQueue.queue.length)) {
                  for (d = c.undoQueue.queue[c.undoQueue.index], c.undoQueue.inSequence = !0, h = 0; h < d.redo.calls.length; h++)
                    f.plotDo(c, d.redo.calls[h], d.redo.args[h]);
                  c.undoQueue.inSequence = !1, c.autoplay = !1, c.undoQueue.index++;
                }
              }, f.plotDo = function(u, c, d) {
                u.autoplay = !0, d = l(u, d), c.apply(null, d);
              }, M.exports = f;
            }
          ),
          /***/
          3756: (
            /***/
            function(M, L) {
              L.counter = function(r, a, p, l) {
                var f = (a || "") + (p ? "" : "$"), u = l === !1 ? "" : "^";
                return r === "xy" ? new RegExp(u + "x([2-9]|[1-9][0-9]+)?y([2-9]|[1-9][0-9]+)?" + f) : new RegExp(u + r + "([2-9]|[1-9][0-9]+)?" + f);
              };
            }
          ),
          /***/
          3193: (
            /***/
            function(M) {
              var L = /^(.*)(\.[^\.\[\]]+|\[\d\])$/, r = /^[^\.\[\]]+$/;
              M.exports = function(a, p) {
                for (; p; ) {
                  var l = a.match(L);
                  if (l)
                    a = l[1];
                  else if (a.match(r))
                    a = "";
                  else
                    throw new Error("bad relativeAttr call:" + [a, p]);
                  if (p.charAt(0) === "^")
                    p = p.slice(1);
                  else
                    break;
                }
                return a && p.charAt(0) !== "[" ? a + "." + p : a + p;
              };
            }
          ),
          /***/
          1528: (
            /***/
            function(M, L, r) {
              var a = r(8116).isArrayOrTypedArray, p = r(3620);
              M.exports = function l(f, u) {
                for (var c in u) {
                  var d = u[c], h = f[c];
                  if (h !== d)
                    if (c.charAt(0) === "_" || typeof d == "function") {
                      if (c in f)
                        continue;
                      f[c] = d;
                    } else if (a(d) && a(h) && p(d[0])) {
                      if (c === "customdata" || c === "ids")
                        continue;
                      for (var i = Math.min(d.length, h.length), b = 0; b < i; b++)
                        h[b] !== d[b] && p(d[b]) && p(h[b]) && l(h[b], d[b]);
                    } else
                      p(d) && p(h) && (l(h, d), Object.keys(h).length || delete f[c]);
                }
              };
            }
          ),
          /***/
          4952: (
            /***/
            function(M, L, r) {
              var a = r(8248), p = r(4248), l = r(5536), f = r(9032).BADNUM, u = 1e-9;
              L.findBin = function(b, x, D) {
                if (a(x.start))
                  return D ? Math.ceil((b - x.start) / x.size - u) - 1 : Math.floor((b - x.start) / x.size + u);
                var C = 0, w = x.length, S = 0, T = w > 1 ? (x[w - 1] - x[0]) / (w - 1) : 1, k, A;
                for (T >= 0 ? A = D ? c : d : A = D ? i : h, b += T * u * (D ? -1 : 1) * (T >= 0 ? 1 : -1); C < w && S++ < 100; )
                  k = Math.floor((C + w) / 2), A(x[k], b) ? C = k + 1 : w = k;
                return S > 90 && p.log("Long binary search..."), C - 1;
              };
              function c(b, x) {
                return b < x;
              }
              function d(b, x) {
                return b <= x;
              }
              function h(b, x) {
                return b > x;
              }
              function i(b, x) {
                return b >= x;
              }
              L.sorterAsc = function(b, x) {
                return b - x;
              }, L.sorterDes = function(b, x) {
                return x - b;
              }, L.distinctVals = function(b) {
                var x = b.slice();
                x.sort(L.sorterAsc);
                var D;
                for (D = x.length - 1; D > -1 && x[D] === f; D--)
                  ;
                for (var C = x[D] - x[0] || 1, w = C / (D || 1) / 1e4, S = [], T, k = 0; k <= D; k++) {
                  var A = x[k], R = A - T;
                  T === void 0 ? (S.push(A), T = A) : R > w && (C = Math.min(C, R), S.push(A), T = A);
                }
                return {
                  vals: S,
                  minDiff: C
                };
              }, L.roundUp = function(b, x, D) {
                for (var C = 0, w = x.length - 1, S, T = 0, k = D ? 0 : 1, A = D ? 1 : 0, R = D ? Math.ceil : Math.floor; C < w && T++ < 100; )
                  S = R((C + w) / 2), x[S] <= b ? C = S + k : w = S - A;
                return x[C];
              }, L.sort = function(b, x) {
                for (var D = 0, C = 0, w = 1; w < b.length; w++) {
                  var S = x(b[w], b[w - 1]);
                  if (S < 0 ? D = 1 : S > 0 && (C = 1), D && C)
                    return b.sort(x);
                }
                return C ? b : b.reverse();
              }, L.findIndexOfMin = function(b, x) {
                x = x || l;
                for (var D = 1 / 0, C, w = 0; w < b.length; w++) {
                  var S = x(b[w]);
                  S < D && (D = S, C = w);
                }
                return C;
              };
            }
          ),
          /***/
          3972: (
            /***/
            function(M) {
              M.exports = function(r, a) {
                (r.attr("class") || "").split(" ").forEach(function(p) {
                  p.indexOf("cursor-") === 0 && r.classed(p, !1);
                }), a && r.classed("cursor-" + a, !0);
              };
            }
          ),
          /***/
          2996: (
            /***/
            function(M) {
              M.exports = function(r) {
                return Object.keys(r).sort();
              };
            }
          ),
          /***/
          3084: (
            /***/
            function(M, L, r) {
              var a = r(8248), p = r(8116).isArrayOrTypedArray;
              L.aggNums = function(l, f, u, c) {
                var d, h;
                if ((!c || c > u.length) && (c = u.length), a(f) || (f = !1), p(u[0])) {
                  for (h = new Array(c), d = 0; d < c; d++)
                    h[d] = L.aggNums(l, f, u[d]);
                  u = h;
                }
                for (d = 0; d < c; d++)
                  a(f) ? a(u[d]) && (f = l(+f, +u[d])) : f = u[d];
                return f;
              }, L.len = function(l) {
                return L.aggNums(function(f) {
                  return f + 1;
                }, 0, l);
              }, L.mean = function(l, f) {
                return f || (f = L.len(l)), L.aggNums(function(u, c) {
                  return u + c;
                }, 0, l) / f;
              }, L.midRange = function(l) {
                if (!(l === void 0 || l.length === 0))
                  return (L.aggNums(Math.max, null, l) + L.aggNums(Math.min, null, l)) / 2;
              }, L.variance = function(l, f, u) {
                return f || (f = L.len(l)), a(u) || (u = L.mean(l, f)), L.aggNums(function(c, d) {
                  return c + Math.pow(d - u, 2);
                }, 0, l) / f;
              }, L.stdev = function(l, f, u) {
                return Math.sqrt(L.variance(l, f, u));
              }, L.median = function(l) {
                var f = l.slice().sort();
                return L.interp(f, 0.5);
              }, L.interp = function(l, f) {
                if (!a(f))
                  throw "n should be a finite number";
                if (f = f * l.length - 0.5, f < 0)
                  return l[0];
                if (f > l.length - 1)
                  return l[l.length - 1];
                var u = f % 1;
                return u * l[Math.ceil(f)] + (1 - u) * l[Math.floor(f)];
              };
            }
          ),
          /***/
          2736: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(3400), l = p.strTranslate, f = r(9616), u = r(4284).LINE_SPACING, c = /([^$]*)([$]+[^$]*[$]+)([^$]*)/;
              L.convertToTspans = function(ae, oe, ve) {
                var fe = ae.text(), ye = !ae.attr("data-notex") && oe && oe._context.typesetMath && typeof MathJax < "u" && fe.match(c), Ce = a.select(ae.node().parentNode);
                if (Ce.empty())
                  return;
                var Re = ae.attr("class") ? ae.attr("class").split(" ")[0] : "text";
                Re += "-math", Ce.selectAll("svg." + Re).remove(), Ce.selectAll("g." + Re + "-group").remove(), ae.style("display", null).attr({
                  // some callers use data-unformatted *from the <text> element* in 'cancel'
                  // so we need it here even if we're going to turn it into math
                  // these two (plus style and text-anchor attributes) form the key we're
                  // going to use for Drawing.bBox
                  "data-unformatted": fe,
                  "data-math": "N"
                });
                function Be() {
                  Ce.empty() || (Re = ae.attr("class") + "-math", Ce.select("svg." + Re).remove()), ae.text("").style("white-space", "pre");
                  var xe = se(ae.node(), fe);
                  xe && ae.style("pointer-events", "all"), L.positionText(ae), ve && ve.call(ae);
                }
                return ye ? (oe && oe._promises || []).push(new Promise(function(xe) {
                  ae.style("display", "none");
                  var Me = parseInt(ae.node().style.fontSize, 10), De = {
                    fontSize: Me
                  };
                  x(ye[2], De, function(Z, ee, ie) {
                    Ce.selectAll("svg." + Re).remove(), Ce.selectAll("g." + Re + "-group").remove();
                    var G = Z && Z.select("svg");
                    if (!G || !G.node()) {
                      Be(), xe();
                      return;
                    }
                    var H = Ce.append("g").classed(Re + "-group", !0).attr({
                      "pointer-events": "none",
                      "data-unformatted": fe,
                      "data-math": "Y"
                    });
                    H.node().appendChild(G.node()), ee && ee.node() && G.node().insertBefore(ee.node().cloneNode(!0), G.node().firstChild);
                    var ce = ie.width, j = ie.height;
                    G.attr({
                      class: Re,
                      height: j,
                      preserveAspectRatio: "xMinYMin meet"
                    }).style({
                      overflow: "visible",
                      "pointer-events": "none"
                    });
                    var he = ae.node().style.fill || "black", be = G.select("g");
                    be.attr({
                      fill: he,
                      stroke: he
                    });
                    var we = be.node().getBoundingClientRect(), Ie = we.width, Ge = we.height;
                    (Ie > ce || Ge > j) && (G.style("overflow", "hidden"), we = G.node().getBoundingClientRect(), Ie = we.width, Ge = we.height);
                    var Ve = +ae.attr("x"), Je = +ae.attr("y"), et = Me || ae.node().getBoundingClientRect().height, at = -et / 4;
                    if (Re[0] === "y")
                      H.attr({
                        transform: "rotate(" + [-90, Ve, Je] + ")" + l(-Ie / 2, at - Ge / 2)
                      });
                    else if (Re[0] === "l")
                      Je = at - Ge / 2;
                    else if (Re[0] === "a" && Re.indexOf("atitle") !== 0)
                      Ve = 0, Je = at;
                    else {
                      var Le = ae.attr("text-anchor");
                      Ve = Ve - Ie * (Le === "middle" ? 0.5 : Le === "end" ? 1 : 0), Je = Je + at - Ge / 2;
                    }
                    G.attr({
                      x: Ve,
                      y: Je
                    }), ve && ve.call(ae, H), xe(H);
                  });
                })) : Be(), ae;
              };
              var d = /(<|&lt;|&#60;)/g, h = /(>|&gt;|&#62;)/g;
              function i(ae) {
                return ae.replace(d, "\\lt ").replace(h, "\\gt ");
              }
              var b = [["$", "$"], ["\\(", "\\)"]];
              function x(ae, oe, ve) {
                var fe = parseInt((MathJax.version || "").split(".")[0]);
                if (fe !== 2 && fe !== 3) {
                  p.warn("No MathJax version:", MathJax.version);
                  return;
                }
                var ye, Ce, Re, Be, xe = function() {
                  return Ce = p.extendDeepAll({}, MathJax.Hub.config), Re = MathJax.Hub.processSectionDelay, MathJax.Hub.processSectionDelay !== void 0 && (MathJax.Hub.processSectionDelay = 0), MathJax.Hub.Config({
                    messageStyle: "none",
                    tex2jax: {
                      inlineMath: b
                    },
                    displayAlign: "left"
                  });
                }, Me = function() {
                  Ce = p.extendDeepAll({}, MathJax.config), MathJax.config.tex || (MathJax.config.tex = {}), MathJax.config.tex.inlineMath = b;
                }, De = function() {
                  if (ye = MathJax.Hub.config.menuSettings.renderer, ye !== "SVG")
                    return MathJax.Hub.setRenderer("SVG");
                }, Z = function() {
                  ye = MathJax.config.startup.output, ye !== "svg" && (MathJax.config.startup.output = "svg");
                }, ee = function() {
                  var he = "math-output-" + p.randstr({}, 64);
                  Be = a.select("body").append("div").attr({
                    id: he
                  }).style({
                    visibility: "hidden",
                    position: "absolute",
                    "font-size": oe.fontSize + "px"
                  }).text(i(ae));
                  var be = Be.node();
                  return fe === 2 ? MathJax.Hub.Typeset(be) : MathJax.typeset([be]);
                }, ie = function() {
                  var he = Be.select(fe === 2 ? ".MathJax_SVG" : ".MathJax"), be = !he.empty() && Be.select("svg").node();
                  if (!be)
                    p.log("There was an error in the tex syntax.", ae), ve();
                  else {
                    var we = be.getBoundingClientRect(), Ie;
                    fe === 2 ? Ie = a.select("body").select("#MathJax_SVG_glyphs") : Ie = he.select("defs"), ve(he, Ie, we);
                  }
                  Be.remove();
                }, G = function() {
                  if (ye !== "SVG")
                    return MathJax.Hub.setRenderer(ye);
                }, H = function() {
                  ye !== "svg" && (MathJax.config.startup.output = ye);
                }, ce = function() {
                  return Re !== void 0 && (MathJax.Hub.processSectionDelay = Re), MathJax.Hub.Config(Ce);
                }, j = function() {
                  MathJax.config = Ce;
                };
                fe === 2 ? MathJax.Hub.Queue(xe, De, ee, ie, G, ce) : fe === 3 && (Me(), Z(), MathJax.startup.defaultReady(), MathJax.startup.promise.then(function() {
                  ee(), ie(), H(), j();
                }));
              }
              var D = {
                // would like to use baseline-shift for sub/sup but FF doesn't support it
                // so we need to use dy along with the uber hacky shift-back-to
                // baseline below
                sup: "font-size:70%",
                sub: "font-size:70%",
                b: "font-weight:bold",
                i: "font-style:italic",
                a: "cursor:pointer",
                span: "",
                em: "font-style:italic;font-weight:bold"
              }, C = {
                sub: "0.3em",
                sup: "-0.6em"
              }, w = {
                sub: "-0.21em",
                sup: "0.42em"
              }, S = "​", T = ["http:", "https:", "mailto:", "", void 0, ":"], k = L.NEWLINES = /(\r\n?|\n)/g, A = /(<[^<>]*>)/, R = /<(\/?)([^ >]*)(\s+(.*))?>/i, g = /<br(\s+.*)?>/i;
              L.BR_TAG_ALL = /<br(\s+.*)?>/gi;
              var I = /(^|[\s"'])style\s*=\s*("([^"]*);?"|'([^']*);?')/i, O = /(^|[\s"'])href\s*=\s*("([^"]*)"|'([^']*)')/i, $ = /(^|[\s"'])target\s*=\s*("([^"\s]*)"|'([^'\s]*)')/i, Y = /(^|[\s"'])popup\s*=\s*("([\w=,]*)"|'([\w=,]*)')/i;
              function ne(ae, oe) {
                if (!ae)
                  return null;
                var ve = ae.match(oe), fe = ve && (ve[3] || ve[4]);
                return fe && U(fe);
              }
              var q = /(^|;)\s*color:/;
              L.plainText = function(ae, oe) {
                oe = oe || {};
                for (var ve = oe.len !== void 0 && oe.len !== -1 ? oe.len : 1 / 0, fe = oe.allowedTags !== void 0 ? oe.allowedTags : ["br"], ye = "...", Ce = ye.length, Re = ae.split(A), Be = [], xe = "", Me = 0, De = 0; De < Re.length; De++) {
                  var Z = Re[De], ee = Z.match(R), ie = ee && ee[2].toLowerCase();
                  if (ie)
                    fe.indexOf(ie) !== -1 && (Be.push(Z), xe = ie);
                  else {
                    var G = Z.length;
                    if (Me + G < ve)
                      Be.push(Z), Me += G;
                    else if (Me < ve) {
                      var H = ve - Me;
                      xe && (xe !== "br" || H <= Ce || G <= Ce) && Be.pop(), ve > Ce ? Be.push(Z.substr(0, H - Ce) + ye) : Be.push(Z.substr(0, H));
                      break;
                    }
                    xe = "";
                  }
                }
                return Be.join("");
              };
              var B = {
                mu: "μ",
                amp: "&",
                lt: "<",
                gt: ">",
                nbsp: " ",
                times: "×",
                plusmn: "±",
                deg: "°"
              }, X = /&(#\d+|#x[\da-fA-F]+|[a-z]+);/g;
              function U(ae) {
                return ae.replace(X, function(oe, ve) {
                  var fe;
                  return ve.charAt(0) === "#" ? fe = te(ve.charAt(1) === "x" ? parseInt(ve.substr(2), 16) : parseInt(ve.substr(1), 10)) : fe = B[ve], fe || oe;
                });
              }
              L.convertEntities = U;
              function te(ae) {
                if (!(ae > 1114111)) {
                  var oe = String.fromCodePoint;
                  if (oe)
                    return oe(ae);
                  var ve = String.fromCharCode;
                  return ae <= 65535 ? ve(ae) : ve((ae >> 10) + 55232, ae % 1024 + 56320);
                }
              }
              function se(ae, oe) {
                oe = oe.replace(k, " ");
                var ve = !1, fe = [], ye, Ce = -1;
                function Re() {
                  Ce++;
                  var Ge = document.createElementNS(f.svg, "tspan");
                  a.select(Ge).attr({
                    class: "line",
                    dy: Ce * u + "em"
                  }), ae.appendChild(Ge), ye = Ge;
                  var Ve = fe;
                  if (fe = [{
                    node: Ge
                  }], Ve.length > 1)
                    for (var Je = 1; Je < Ve.length; Je++)
                      Be(Ve[Je]);
                }
                function Be(Ge) {
                  var Ve = Ge.type, Je = {}, et;
                  if (Ve === "a") {
                    et = "a";
                    var at = Ge.target, Le = Ge.href, ze = Ge.popup;
                    Le && (Je = {
                      "xlink:xlink:show": at === "_blank" || at.charAt(0) !== "_" ? "new" : "replace",
                      target: at,
                      "xlink:xlink:href": Le
                    }, ze && (Je.onclick = 'window.open(this.href.baseVal,this.target.baseVal,"' + ze + '");return false;'));
                  } else
                    et = "tspan";
                  Ge.style && (Je.style = Ge.style);
                  var Oe = document.createElementNS(f.svg, et);
                  if (Ve === "sup" || Ve === "sub") {
                    xe(ye, S), ye.appendChild(Oe);
                    var Xe = document.createElementNS(f.svg, "tspan");
                    xe(Xe, S), a.select(Xe).attr("dy", w[Ve]), Je.dy = C[Ve], ye.appendChild(Oe), ye.appendChild(Xe);
                  } else
                    ye.appendChild(Oe);
                  a.select(Oe).attr(Je), ye = Ge.node = Oe, fe.push(Ge);
                }
                function xe(Ge, Ve) {
                  Ge.appendChild(document.createTextNode(Ve));
                }
                function Me(Ge) {
                  if (fe.length === 1) {
                    p.log("Ignoring unexpected end tag </" + Ge + ">.", oe);
                    return;
                  }
                  var Ve = fe.pop();
                  Ge !== Ve.type && p.log("Start tag <" + Ve.type + "> doesnt match end tag <" + Ge + ">. Pretending it did match.", oe), ye = fe[fe.length - 1].node;
                }
                var De = g.test(oe);
                De ? Re() : (ye = ae, fe = [{
                  node: ae
                }]);
                for (var Z = oe.split(A), ee = 0; ee < Z.length; ee++) {
                  var ie = Z[ee], G = ie.match(R), H = G && G[2].toLowerCase(), ce = D[H];
                  if (H === "br")
                    Re();
                  else if (ce === void 0)
                    xe(ye, U(ie));
                  else if (G[1])
                    Me(H);
                  else {
                    var j = G[4], he = {
                      type: H
                    }, be = ne(j, I);
                    if (be ? (be = be.replace(q, "$1 fill:"), ce && (be += ";" + ce)) : ce && (be = ce), be && (he.style = be), H === "a") {
                      ve = !0;
                      var we = ne(j, O);
                      if (we) {
                        var Ie = me(we);
                        Ie && (he.href = Ie, he.target = ne(j, $) || "_blank", he.popup = ne(j, Y));
                      }
                    }
                    Be(he);
                  }
                }
                return ve;
              }
              function me(ae) {
                var oe = encodeURI(decodeURI(ae)), ve = document.createElement("a"), fe = document.createElement("a");
                ve.href = ae, fe.href = oe;
                var ye = ve.protocol, Ce = fe.protocol;
                return T.indexOf(ye) !== -1 && T.indexOf(Ce) !== -1 ? oe : "";
              }
              L.sanitizeHTML = function(oe) {
                oe = oe.replace(k, " ");
                for (var ve = document.createElement("p"), fe = ve, ye = [], Ce = oe.split(A), Re = 0; Re < Ce.length; Re++) {
                  var Be = Ce[Re], xe = Be.match(R), Me = xe && xe[2].toLowerCase();
                  if (Me in D)
                    if (xe[1])
                      ye.length && (fe = ye.pop());
                    else {
                      var De = xe[4], Z = ne(De, I), ee = Z ? {
                        style: Z
                      } : {};
                      if (Me === "a") {
                        var ie = ne(De, O);
                        if (ie) {
                          var G = me(ie);
                          if (G) {
                            ee.href = G;
                            var H = ne(De, $);
                            H && (ee.target = H);
                          }
                        }
                      }
                      var ce = document.createElement(Me);
                      fe.appendChild(ce), a.select(ce).attr(ee), fe = ce, ye.push(ce);
                    }
                  else
                    fe.appendChild(document.createTextNode(U(Be)));
                }
                var j = "innerHTML";
                return ve[j];
              }, L.lineCount = function(oe) {
                return oe.selectAll("tspan.line").size() || 1;
              }, L.positionText = function(oe, ve, fe) {
                return oe.each(function() {
                  var ye = a.select(this);
                  function Ce(xe, Me) {
                    return Me === void 0 ? (Me = ye.attr(xe), Me === null && (ye.attr(xe, 0), Me = 0)) : ye.attr(xe, Me), Me;
                  }
                  var Re = Ce("x", ve), Be = Ce("y", fe);
                  this.nodeName === "text" && ye.selectAll("tspan.line").attr({
                    x: Re,
                    y: Be
                  });
                });
              };
              function J(ae, oe, ve) {
                var fe = ve.horizontalAlign, ye = ve.verticalAlign || "top", Ce = ae.node().getBoundingClientRect(), Re = oe.node().getBoundingClientRect(), Be, xe, Me;
                return ye === "bottom" ? xe = function() {
                  return Ce.bottom - Be.height;
                } : ye === "middle" ? xe = function() {
                  return Ce.top + (Ce.height - Be.height) / 2;
                } : xe = function() {
                  return Ce.top;
                }, fe === "right" ? Me = function() {
                  return Ce.right - Be.width;
                } : fe === "center" ? Me = function() {
                  return Ce.left + (Ce.width - Be.width) / 2;
                } : Me = function() {
                  return Ce.left;
                }, function() {
                  Be = this.node().getBoundingClientRect();
                  var De = Me() - Re.left, Z = xe() - Re.top, ee = ve.gd || {};
                  if (ve.gd) {
                    ee._fullLayout._calcInverseTransform(ee);
                    var ie = p.apply3DTransform(ee._fullLayout._invTransform)(De, Z);
                    De = ie[0], Z = ie[1];
                  }
                  return this.style({
                    top: Z + "px",
                    left: De + "px",
                    "z-index": 1e3
                  }), this;
                };
              }
              var W = "1px ";
              L.makeTextShadow = function(ae) {
                var oe = W, ve = W, fe = W;
                return oe + ve + fe + ae + ", -" + oe + "-" + ve + fe + ae + ", " + oe + "-" + ve + fe + ae + ", -" + oe + ve + fe + ae;
              }, L.makeEditable = function(ae, oe) {
                var ve = oe.gd, fe = oe.delegate, ye = a.dispatch("edit", "input", "cancel"), Ce = fe || ae;
                if (ae.style({
                  "pointer-events": fe ? "none" : "all"
                }), ae.size() !== 1)
                  throw new Error("boo");
                function Re() {
                  xe(), ae.style({
                    opacity: 0
                  });
                  var Me = Ce.attr("class"), De;
                  Me ? De = "." + Me.split(" ")[0] + "-math-group" : De = "[class*=-math-group]", De && a.select(ae.node().parentNode).select(De).style({
                    opacity: 0
                  });
                }
                function Be(Me) {
                  var De = Me.node(), Z = document.createRange();
                  Z.selectNodeContents(De);
                  var ee = window.getSelection();
                  ee.removeAllRanges(), ee.addRange(Z), De.focus();
                }
                function xe() {
                  var Me = a.select(ve), De = Me.select(".svg-container"), Z = De.append("div"), ee = ae.node().style, ie = parseFloat(ee.fontSize || 12), G = oe.text;
                  G === void 0 && (G = ae.attr("data-unformatted")), Z.classed("plugin-editable editable", !0).style({
                    position: "absolute",
                    "font-family": ee.fontFamily || "Arial",
                    "font-size": ie,
                    color: oe.fill || ee.fill || "black",
                    opacity: 1,
                    "background-color": oe.background || "transparent",
                    outline: "#ffffff33 1px solid",
                    margin: [-ie / 8 + 1, 0, 0, -1].join("px ") + "px",
                    padding: "0",
                    "box-sizing": "border-box"
                  }).attr({
                    contenteditable: !0
                  }).text(G).call(J(ae, De, oe)).on("blur", function() {
                    ve._editing = !1, ae.text(this.textContent).style({
                      opacity: 1
                    });
                    var H = a.select(this).attr("class"), ce;
                    H ? ce = "." + H.split(" ")[0] + "-math-group" : ce = "[class*=-math-group]", ce && a.select(ae.node().parentNode).select(ce).style({
                      opacity: 0
                    });
                    var j = this.textContent;
                    a.select(this).transition().duration(0).remove(), a.select(document).on("mouseup", null), ye.edit.call(ae, j);
                  }).on("focus", function() {
                    var H = this;
                    ve._editing = !0, a.select(document).on("mouseup", function() {
                      if (a.event.target === H)
                        return !1;
                      document.activeElement === Z.node() && Z.node().blur();
                    });
                  }).on("keyup", function() {
                    a.event.which === 27 ? (ve._editing = !1, ae.style({
                      opacity: 1
                    }), a.select(this).style({
                      opacity: 0
                    }).on("blur", function() {
                      return !1;
                    }).transition().remove(), ye.cancel.call(ae, this.textContent)) : (ye.input.call(ae, this.textContent), a.select(this).call(J(ae, De, oe)));
                  }).on("keydown", function() {
                    a.event.which === 13 && this.blur();
                  }).call(Be);
                }
                return oe.immediate ? Re() : Ce.on("click", Re), a.rebind(ae, ye, "on");
              };
            }
          ),
          /***/
          1200: (
            /***/
            function(M, L) {
              var r = {};
              L.throttle = function(l, f, u) {
                var c = r[l], d = Date.now();
                if (!c) {
                  for (var h in r)
                    r[h].ts < d - 6e4 && delete r[h];
                  c = r[l] = {
                    ts: 0,
                    timer: null
                  };
                }
                a(c);
                function i() {
                  u(), c.ts = Date.now(), c.onDone && (c.onDone(), c.onDone = null);
                }
                if (d > c.ts + f) {
                  i();
                  return;
                }
                c.timer = setTimeout(function() {
                  i(), c.timer = null;
                }, f);
              }, L.done = function(p) {
                var l = r[p];
                return !l || !l.timer ? Promise.resolve() : new Promise(function(f) {
                  var u = l.onDone;
                  l.onDone = function() {
                    u && u(), f(), l.onDone = null;
                  };
                });
              }, L.clear = function(p) {
                if (p)
                  a(r[p]), delete r[p];
                else
                  for (var l in r)
                    L.clear(l);
              };
              function a(p) {
                p && p.timer !== null && (clearTimeout(p.timer), p.timer = null);
              }
            }
          ),
          /***/
          6896: (
            /***/
            function(M, L, r) {
              var a = r(8248);
              M.exports = function(l, f) {
                if (l > 0)
                  return Math.log(l) / Math.LN10;
                var u = Math.log(Math.min(f[0], f[1])) / Math.LN10;
                return a(u) || (u = Math.log(Math.max(f[0], f[1])) / Math.LN10 - 6), u;
              };
            }
          ),
          /***/
          1680: (
            /***/
            function(M) {
              M.exports = {
                moduleType: "locale",
                name: "en-US",
                dictionary: {
                  "Click to enter Colorscale title": "Click to enter Colorscale title"
                },
                format: {
                  date: "%m/%d/%Y"
                }
              };
            }
          ),
          /***/
          6580: (
            /***/
            function(M) {
              M.exports = {
                moduleType: "locale",
                name: "en",
                dictionary: {
                  "Click to enter Colorscale title": "Click to enter Colourscale title"
                },
                format: {
                  days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
                  shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
                  months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
                  shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
                  periods: ["AM", "PM"],
                  dateTime: "%a %b %e %X %Y",
                  date: "%d/%m/%Y",
                  time: "%H:%M:%S",
                  decimal: ".",
                  thousands: ",",
                  grouping: [3],
                  currency: ["$", ""],
                  year: "%Y",
                  month: "%b %Y",
                  dayMonth: "%b %-d",
                  dayMonthYear: "%b %-d, %Y"
                }
              };
            }
          ),
          /***/
          9820: (
            /***/
            function(M, L, r) {
              var a = r(4040);
              M.exports = function(l) {
                for (var f = a.layoutArrayContainers, u = a.layoutArrayRegexes, c = l.split("[")[0], d, h, i = 0; i < u.length; i++)
                  if (h = l.match(u[i]), h && h.index === 0) {
                    d = h[0];
                    break;
                  }
                if (d || (d = f[f.indexOf(c)]), !d)
                  return !1;
                var b = l.substr(d.length);
                return b ? (h = b.match(/^\[(0|[1-9][0-9]*)\](\.(.+))?$/), h ? {
                  array: d,
                  index: Number(h[1]),
                  property: h[3] || ""
                } : !1) : {
                  array: d,
                  index: "",
                  property: ""
                };
              };
            }
          ),
          /***/
          7824: (
            /***/
            function(M, L, r) {
              var a = r(2880).extendFlat, p = r(3620), l = {
                valType: "flaglist",
                extras: ["none"],
                flags: ["calc", "clearAxisTypes", "plot", "style", "markerSize", "colorbars"]
              }, f = {
                valType: "flaglist",
                extras: ["none"],
                flags: ["calc", "plot", "legend", "ticks", "axrange", "layoutstyle", "modebar", "camera", "arraydraw", "colorbars"]
              }, u = l.flags.slice().concat(["fullReplot"]), c = f.flags.slice().concat("layoutReplot");
              M.exports = {
                traces: l,
                layout: f,
                /*
                 * default (all false) edit flags for restyle (traces)
                 * creates a new object each call, so the caller can mutate freely
                 */
                traceFlags: function() {
                  return d(u);
                },
                /*
                 * default (all false) edit flags for relayout
                 * creates a new object each call, so the caller can mutate freely
                 */
                layoutFlags: function() {
                  return d(c);
                },
                /*
                 * update `flags` with the `editType` values found in `attr`
                 */
                update: function(b, x) {
                  var D = x.editType;
                  if (D && D !== "none")
                    for (var C = D.split("+"), w = 0; w < C.length; w++)
                      b[C[w]] = !0;
                },
                overrideAll: h
              };
              function d(b) {
                for (var x = {}, D = 0; D < b.length; D++)
                  x[b[D]] = !1;
                return x;
              }
              function h(b, x, D) {
                var C = a({}, b);
                for (var w in C) {
                  var S = C[w];
                  p(S) && (C[w] = i(S, x, D, w));
                }
                return D === "from-root" && (C.editType = x), C;
              }
              function i(b, x, D, C) {
                if (b.valType) {
                  var w = a({}, b);
                  if (w.editType = x, Array.isArray(b.items)) {
                    w.items = new Array(b.items.length);
                    for (var S = 0; S < b.items.length; S++)
                      w.items[S] = i(b.items[S], x);
                  }
                  return w;
                } else
                  return h(b, x, C.charAt(0) === "_" ? "nested" : "from-root");
              }
            }
          ),
          /***/
          3404: (
            /***/
            function(M, L, r) {
              var a = r(8248), p = r(1784), l = r(4040), f = r(3400), u = r(7316), c = r(9811), d = r(6308), h = c.cleanId, i = c.getFromTrace, b = l.traceIs;
              L.clearPromiseQueue = function(g) {
                Array.isArray(g._promises) && g._promises.length > 0 && f.log("Clearing previous rejected promises from queue."), g._promises = [];
              }, L.cleanLayout = function(g) {
                var I, O;
                g || (g = {}), g.xaxis1 && (g.xaxis || (g.xaxis = g.xaxis1), delete g.xaxis1), g.yaxis1 && (g.yaxis || (g.yaxis = g.yaxis1), delete g.yaxis1), g.scene1 && (g.scene || (g.scene = g.scene1), delete g.scene1);
                var $ = (u.subplotsRegistry.cartesian || {}).attrRegex, Y = (u.subplotsRegistry.polar || {}).attrRegex, ne = (u.subplotsRegistry.ternary || {}).attrRegex, q = (u.subplotsRegistry.gl3d || {}).attrRegex, B = Object.keys(g);
                for (I = 0; I < B.length; I++) {
                  var X = B[I];
                  if ($ && $.test(X)) {
                    var U = g[X];
                    U.anchor && U.anchor !== "free" && (U.anchor = h(U.anchor)), U.overlaying && (U.overlaying = h(U.overlaying)), U.type || (U.isdate ? U.type = "date" : U.islog ? U.type = "log" : U.isdate === !1 && U.islog === !1 && (U.type = "linear")), (U.autorange === "withzero" || U.autorange === "tozero") && (U.autorange = !0, U.rangemode = "tozero"), U.insiderange && delete U.range, delete U.islog, delete U.isdate, delete U.categories, T(U, "domain") && delete U.domain, U.autotick !== void 0 && (U.tickmode === void 0 && (U.tickmode = U.autotick ? "auto" : "linear"), delete U.autotick), D(U);
                  } else if (Y && Y.test(X)) {
                    var te = g[X];
                    D(te.radialaxis);
                  } else if (ne && ne.test(X)) {
                    var se = g[X];
                    D(se.aaxis), D(se.baxis), D(se.caxis);
                  } else if (q && q.test(X)) {
                    var me = g[X], J = me.cameraposition;
                    if (Array.isArray(J) && J[0].length === 4) {
                      var W = J[0], ae = J[1], oe = J[2], ve = p([], W), fe = [];
                      for (O = 0; O < 3; ++O)
                        fe[O] = ae[O] + oe * ve[2 + 4 * O];
                      me.camera = {
                        eye: {
                          x: fe[0],
                          y: fe[1],
                          z: fe[2]
                        },
                        center: {
                          x: ae[0],
                          y: ae[1],
                          z: ae[2]
                        },
                        up: {
                          x: 0,
                          y: 0,
                          z: 1
                        }
                        // we just ignore calculating camera z up in this case
                      }, delete me.cameraposition;
                    }
                    D(me.xaxis), D(me.yaxis), D(me.zaxis);
                  }
                }
                var ye = Array.isArray(g.annotations) ? g.annotations.length : 0;
                for (I = 0; I < ye; I++) {
                  var Ce = g.annotations[I];
                  f.isPlainObject(Ce) && (Ce.ref && (Ce.ref === "paper" ? (Ce.xref = "paper", Ce.yref = "paper") : Ce.ref === "data" && (Ce.xref = "x", Ce.yref = "y"), delete Ce.ref), x(Ce, "xref"), x(Ce, "yref"));
                }
                var Re = Array.isArray(g.shapes) ? g.shapes.length : 0;
                for (I = 0; I < Re; I++) {
                  var Be = g.shapes[I];
                  f.isPlainObject(Be) && (x(Be, "xref"), x(Be, "yref"));
                }
                var xe = Array.isArray(g.images) ? g.images.length : 0;
                for (I = 0; I < xe; I++) {
                  var Me = g.images[I];
                  f.isPlainObject(Me) && (x(Me, "xref"), x(Me, "yref"));
                }
                var De = g.legend;
                return De && (De.x > 3 ? (De.x = 1.02, De.xanchor = "left") : De.x < -2 && (De.x = -0.02, De.xanchor = "right"), De.y > 3 ? (De.y = 1.02, De.yanchor = "bottom") : De.y < -2 && (De.y = -0.02, De.yanchor = "top")), D(g), g.dragmode === "rotate" && (g.dragmode = "orbit"), d.clean(g), g.template && g.template.layout && L.cleanLayout(g.template.layout), g;
              };
              function x(g, I) {
                var O = g[I], $ = I.charAt(0);
                O && O !== "paper" && (g[I] = h(O, $, !0));
              }
              function D(g) {
                g && ((typeof g.title == "string" || typeof g.title == "number") && (g.title = {
                  text: g.title
                }), I("titlefont", "font"), I("titleposition", "position"), I("titleside", "side"), I("titleoffset", "offset"));
                function I(O, $) {
                  var Y = g[O], ne = g.title && g.title[$];
                  Y && !ne && (g.title || (g.title = {}), g.title[$] = g[O], delete g[O]);
                }
              }
              L.cleanData = function(g) {
                for (var I = 0; I < g.length; I++) {
                  var O = g[I], $;
                  if (O.type === "histogramy" && "xbins" in O && !("ybins" in O) && (O.ybins = O.xbins, delete O.xbins), O.error_y && "opacity" in O.error_y) {
                    var Y = d.defaults, ne = O.error_y.color || (b(O, "bar") ? d.defaultLine : Y[I % Y.length]);
                    O.error_y.color = d.addOpacity(d.rgb(ne), d.opacity(ne) * O.error_y.opacity), delete O.error_y.opacity;
                  }
                  if ("bardir" in O && (O.bardir === "h" && (b(O, "bar") || O.type.substr(0, 9) === "histogram") && (O.orientation = "h", L.swapXYData(O)), delete O.bardir), O.type === "histogramy" && L.swapXYData(O), (O.type === "histogramx" || O.type === "histogramy") && (O.type = "histogram"), "scl" in O && !("colorscale" in O) && (O.colorscale = O.scl, delete O.scl), "reversescl" in O && !("reversescale" in O) && (O.reversescale = O.reversescl, delete O.reversescl), O.xaxis && (O.xaxis = h(O.xaxis, "x")), O.yaxis && (O.yaxis = h(O.yaxis, "y")), b(O, "gl3d") && O.scene && (O.scene = u.subplotsRegistry.gl3d.cleanId(O.scene)), !b(O, "pie-like") && !b(O, "bar-like"))
                    if (Array.isArray(O.textposition))
                      for ($ = 0; $ < O.textposition.length; $++)
                        O.textposition[$] = S(O.textposition[$]);
                    else
                      O.textposition && (O.textposition = S(O.textposition));
                  var q = l.getModule(O);
                  if (q && q.colorbar) {
                    var B = q.colorbar.container, X = B ? O[B] : O;
                    X && X.colorscale && (X.colorscale === "YIGnBu" && (X.colorscale = "YlGnBu"), X.colorscale === "YIOrRd" && (X.colorscale = "YlOrRd"));
                  }
                  if (O.type === "surface" && f.isPlainObject(O.contours)) {
                    var U = ["x", "y", "z"];
                    for ($ = 0; $ < U.length; $++) {
                      var te = O.contours[U[$]];
                      f.isPlainObject(te) && (te.highlightColor && (te.highlightcolor = te.highlightColor, delete te.highlightColor), te.highlightWidth && (te.highlightwidth = te.highlightWidth, delete te.highlightWidth));
                    }
                  }
                  if (O.type === "candlestick" || O.type === "ohlc") {
                    var se = (O.increasing || {}).showlegend !== !1, me = (O.decreasing || {}).showlegend !== !1, J = C(O.increasing), W = C(O.decreasing);
                    if (J !== !1 && W !== !1) {
                      var ae = w(J, W, se, me);
                      ae && (O.name = ae);
                    } else
                      (J || W) && !O.name && (O.name = J || W);
                  }
                  if (Array.isArray(O.transforms)) {
                    var oe = O.transforms;
                    for ($ = 0; $ < oe.length; $++) {
                      var ve = oe[$];
                      if (f.isPlainObject(ve))
                        switch (ve.type) {
                          case "filter":
                            ve.filtersrc && (ve.target = ve.filtersrc, delete ve.filtersrc), ve.calendar && (ve.valuecalendar || (ve.valuecalendar = ve.calendar), delete ve.calendar);
                            break;
                          case "groupby":
                            if (ve.styles = ve.styles || ve.style, ve.styles && !Array.isArray(ve.styles)) {
                              var fe = ve.styles, ye = Object.keys(fe);
                              ve.styles = [];
                              for (var Ce = 0; Ce < ye.length; Ce++)
                                ve.styles.push({
                                  target: ye[Ce],
                                  value: fe[ye[Ce]]
                                });
                            }
                            break;
                        }
                    }
                  }
                  T(O, "line") && delete O.line, "marker" in O && (T(O.marker, "line") && delete O.marker.line, T(O, "marker") && delete O.marker), d.clean(O), O.autobinx && (delete O.autobinx, delete O.xbins), O.autobiny && (delete O.autobiny, delete O.ybins), D(O), O.colorbar && D(O.colorbar), O.marker && O.marker.colorbar && D(O.marker.colorbar), O.line && O.line.colorbar && D(O.line.colorbar), O.aaxis && D(O.aaxis), O.baxis && D(O.baxis);
                }
              };
              function C(g) {
                if (!f.isPlainObject(g))
                  return !1;
                var I = g.name;
                return delete g.name, delete g.showlegend, (typeof I == "string" || typeof I == "number") && String(I);
              }
              function w(g, I, O, $) {
                if (O && !$)
                  return g;
                if ($ && !O || !g.trim())
                  return I;
                if (!I.trim())
                  return g;
                var Y = Math.min(g.length, I.length), ne;
                for (ne = 0; ne < Y && g.charAt(ne) === I.charAt(ne); ne++)
                  ;
                var q = g.substr(0, ne);
                return q.trim();
              }
              function S(g) {
                var I = "middle", O = "center";
                return typeof g == "string" && (g.indexOf("top") !== -1 ? I = "top" : g.indexOf("bottom") !== -1 && (I = "bottom"), g.indexOf("left") !== -1 ? O = "left" : g.indexOf("right") !== -1 && (O = "right")), I + " " + O;
              }
              function T(g, I) {
                return I in g && typeof g[I] == "object" && Object.keys(g[I]).length === 0;
              }
              L.swapXYData = function(g) {
                var I;
                if (f.swapAttrs(g, ["?", "?0", "d?", "?bins", "nbins?", "autobin?", "?src", "error_?"]), Array.isArray(g.z) && Array.isArray(g.z[0]) && (g.transpose ? delete g.transpose : g.transpose = !0), g.error_x && g.error_y) {
                  var O = g.error_y, $ = "copy_ystyle" in O ? O.copy_ystyle : !(O.color || O.thickness || O.width);
                  f.swapAttrs(g, ["error_?.copy_ystyle"]), $ && f.swapAttrs(g, ["error_?.color", "error_?.thickness", "error_?.width"]);
                }
                if (typeof g.hoverinfo == "string") {
                  var Y = g.hoverinfo.split("+");
                  for (I = 0; I < Y.length; I++)
                    Y[I] === "x" ? Y[I] = "y" : Y[I] === "y" && (Y[I] = "x");
                  g.hoverinfo = Y.join("+");
                }
              }, L.coerceTraceIndices = function(g, I) {
                if (a(I))
                  return [I];
                if (!Array.isArray(I) || !I.length)
                  return g.data.map(function(Y, ne) {
                    return ne;
                  });
                if (Array.isArray(I)) {
                  for (var O = [], $ = 0; $ < I.length; $++)
                    f.isIndex(I[$], g.data.length) ? O.push(I[$]) : f.warn("trace index (", I[$], ") is not a number or is out of bounds");
                  return O;
                }
                return I;
              }, L.manageArrayContainers = function(g, I, O) {
                var $ = g.obj, Y = g.parts, ne = Y.length, q = Y[ne - 1], B = a(q);
                if (B && I === null) {
                  var X = Y.slice(0, ne - 1).join("."), U = f.nestedProperty($, X).get();
                  U.splice(q, 1);
                } else
                  B && g.get() === void 0 && g.get() === void 0 && (O[g.astr] = null), g.set(I);
              };
              var k = /(\.[^\[\]\.]+|\[[^\[\]\.]+\])$/;
              function A(g) {
                var I = g.search(k);
                if (I > 0)
                  return g.substr(0, I);
              }
              L.hasParent = function(g, I) {
                for (var O = A(I); O; ) {
                  if (O in g)
                    return !0;
                  O = A(O);
                }
                return !1;
              };
              var R = ["x", "y", "z"];
              L.clearAxisTypes = function(g, I, O) {
                for (var $ = 0; $ < I.length; $++)
                  for (var Y = g._fullData[$], ne = 0; ne < 3; ne++) {
                    var q = i(g, Y, R[ne]);
                    if (q && q.type !== "log") {
                      var B = q._name, X = q._id.substr(1);
                      if (X.substr(0, 5) === "scene") {
                        if (O[X] !== void 0)
                          continue;
                        B = X + "." + B;
                      }
                      var U = B + ".type";
                      O[B] === void 0 && O[U] === void 0 && f.nestedProperty(g.layout, U).set(null);
                    }
                  }
              };
            }
          ),
          /***/
          2448: (
            /***/
            function(M, L, r) {
              var a = r(6424);
              L._doPlot = a._doPlot, L.newPlot = a.newPlot, L.restyle = a.restyle, L.relayout = a.relayout, L.redraw = a.redraw, L.update = a.update, L._guiRestyle = a._guiRestyle, L._guiRelayout = a._guiRelayout, L._guiUpdate = a._guiUpdate, L._storeDirectGUIEdit = a._storeDirectGUIEdit, L.react = a.react, L.extendTraces = a.extendTraces, L.prependTraces = a.prependTraces, L.addTraces = a.addTraces, L.deleteTraces = a.deleteTraces, L.moveTraces = a.moveTraces, L.purge = a.purge, L.addFrames = a.addFrames, L.deleteFrames = a.deleteFrames, L.animate = a.animate, L.setPlotConfig = a.setPlotConfig;
              var p = r(2200).getGraphDiv, l = r(4016).eraseActiveShape;
              L.deleteActiveShape = function(u) {
                return l(p(u));
              }, L.toImage = r(7024), L.validate = r(1480), L.downloadImage = r(7412);
              var f = r(4828);
              L.makeTemplate = f.makeTemplate, L.validateTemplate = f.validateTemplate;
            }
          ),
          /***/
          7680: (
            /***/
            function(M, L, r) {
              var a = r(3620), p = r(6628), l = r(4248), f = r(4952).sorterAsc, u = r(4040);
              L.containerArrayMatch = r(9820);
              var c = L.isAddVal = function(i) {
                return i === "add" || a(i);
              }, d = L.isRemoveVal = function(i) {
                return i === null || i === "remove";
              };
              L.applyContainerArrayChanges = function(i, b, x, D, C) {
                var w = b.astr, S = u.getComponentMethod(w, "supplyLayoutDefaults"), T = u.getComponentMethod(w, "draw"), k = u.getComponentMethod(w, "drawOne"), A = D.replot || D.recalc || S === p || T === p, R = i.layout, g = i._fullLayout;
                if (x[""]) {
                  Object.keys(x).length > 1 && l.warn("Full array edits are incompatible with other edits", w);
                  var I = x[""][""];
                  if (d(I))
                    b.set(null);
                  else if (Array.isArray(I))
                    b.set(I);
                  else
                    return l.warn("Unrecognized full array edit value", w, I), !0;
                  return A ? !1 : (S(R, g), T(i), !0);
                }
                var O = Object.keys(x).map(Number).sort(f), $ = b.get(), Y = $ || [], ne = C(g, w).get(), q = [], B = -1, X = Y.length, U, te, se, me, J, W, ae, oe;
                for (U = 0; U < O.length; U++) {
                  if (se = O[U], me = x[se], J = Object.keys(me), W = me[""], ae = c(W), se < 0 || se > Y.length - (ae ? 0 : 1)) {
                    l.warn("index out of range", w, se);
                    continue;
                  }
                  if (W !== void 0)
                    J.length > 1 && l.warn("Insertion & removal are incompatible with edits to the same index.", w, se), d(W) ? q.push(se) : ae ? (W === "add" && (W = {}), Y.splice(se, 0, W), ne && ne.splice(se, 0, {})) : l.warn("Unrecognized full object edit value", w, se, W), B === -1 && (B = se);
                  else
                    for (te = 0; te < J.length; te++)
                      oe = w + "[" + se + "].", C(Y[se], J[te], oe).set(me[J[te]]);
                }
                for (U = q.length - 1; U >= 0; U--)
                  Y.splice(q[U], 1), ne && ne.splice(q[U], 1);
                if (Y.length ? $ || b.set(Y) : b.set(null), A)
                  return !1;
                if (S(R, g), k !== p) {
                  var ve;
                  if (B === -1)
                    ve = O;
                  else {
                    for (X = Math.max(Y.length, X), ve = [], U = 0; U < O.length && (se = O[U], !(se >= B)); U++)
                      ve.push(se);
                    for (U = B; U < X; U++)
                      ve.push(U);
                  }
                  for (U = 0; U < ve.length; U++)
                    k(i, ve[U]);
                } else
                  T(i);
                return !0;
              };
            }
          ),
          /***/
          6424: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(8248), l = r(2264), f = r(3400), u = f.nestedProperty, c = r(5924), d = r(4552), h = r(4040), i = r(3060), b = r(7316), x = r(4460), D = r(6312), C = r(4724), w = r(3616), S = r(6308), T = r(2464).initInteractions, k = r(9616), A = r(2676).clearOutline, R = r(556).dfltConfig, g = r(7680), I = r(3404), O = r(9172), $ = r(7824), Y = r(3816).AX_NAME_PATTERN, ne = 0, q = 5;
              function B(Se, Pe, Ye, Ze) {
                var rt;
                if (Se = f.getGraphDiv(Se), c.init(Se), f.isPlainObject(Pe)) {
                  var tt = Pe;
                  Pe = tt.data, Ye = tt.layout, Ze = tt.config, rt = tt.frames;
                }
                var Ft = c.triggerHandler(Se, "plotly_beforeplot", [Pe, Ye, Ze]);
                if (Ft === !1)
                  return Promise.reject();
                !Pe && !Ye && !f.isPlotDiv(Se) && f.warn("Calling _doPlot as if redrawing but this container doesn't yet have a plot.", Se);
                function Dt() {
                  if (rt)
                    return L.addFrames(Se, rt);
                }
                me(Se, Ze), Ye || (Ye = {}), a.select(Se).classed("js-plotly-plot", !0), w.makeTester(), Array.isArray(Se._promises) || (Se._promises = []);
                var dt = (Se.data || []).length === 0 && Array.isArray(Pe);
                Array.isArray(Pe) && (I.cleanData(Pe), dt ? Se.data = Pe : Se.data.push.apply(Se.data, Pe), Se.empty = !1), (!Se.layout || dt) && (Se.layout = I.cleanLayout(Ye)), b.supplyDefaults(Se);
                var st = Se._fullLayout, Nt = st._has("cartesian");
                st._replotting = !0, (dt || st._shouldCreateBgLayer) && (lt(Se), st._shouldCreateBgLayer && delete st._shouldCreateBgLayer), w.initGradients(Se), w.initPatterns(Se), dt && x.saveShowSpikeInitial(Se);
                var ar = !Se.calcdata || Se.calcdata.length !== (Se._fullData || []).length;
                ar && b.doCalcdata(Se);
                for (var ur = 0; ur < Se.calcdata.length; ur++)
                  Se.calcdata[ur][0].trace = Se._fullData[ur];
                Se._context.responsive ? Se._responsiveChartHandler || (Se._responsiveChartHandler = function() {
                  f.isHidden(Se) || b.resize(Se);
                }, window.addEventListener("resize", Se._responsiveChartHandler)) : f.clearResponsive(Se);
                var Or = f.extendFlat({}, st._size), Fr = 0;
                function br() {
                  for (var Er = st._basePlotModules, Cr = 0; Cr < Er.length; Cr++)
                    Er[Cr].drawFramework && Er[Cr].drawFramework(Se);
                  !st._glcanvas && st._has("gl") && (st._glcanvas = st._glcontainer.selectAll(".gl-canvas").data([{
                    key: "contextLayer",
                    context: !0,
                    pick: !1
                  }, {
                    key: "focusLayer",
                    context: !1,
                    pick: !1
                  }, {
                    key: "pickLayer",
                    context: !1,
                    pick: !0
                  }], function(Ir) {
                    return Ir.key;
                  }), st._glcanvas.enter().append("canvas").attr("class", function(Ir) {
                    return "gl-canvas gl-canvas-" + Ir.key.replace("Layer", "");
                  }).style({
                    position: "absolute",
                    top: 0,
                    left: 0,
                    overflow: "visible",
                    "pointer-events": "none"
                  }));
                  var zr = Se._context.plotGlPixelRatio;
                  if (st._glcanvas) {
                    st._glcanvas.attr("width", st.width * zr).attr("height", st.height * zr).style("width", st.width + "px").style("height", st.height + "px");
                    var en = st._glcanvas.data()[0].regl;
                    if (en && (Math.floor(st.width * zr) !== en._gl.drawingBufferWidth || Math.floor(st.height * zr) !== en._gl.drawingBufferHeight)) {
                      var on = "WebGL context buffer and canvas dimensions do not match due to browser/WebGL bug.";
                      if (Fr)
                        f.error(on);
                      else
                        return f.log(on + " Clearing graph and plotting again."), b.cleanPlot([], {}, Se._fullData, st), b.supplyDefaults(Se), st = Se._fullLayout, b.doCalcdata(Se), Fr++, br();
                    }
                  }
                  return st.modebar.orientation === "h" ? st._modebardiv.style("height", null).style("width", "100%") : st._modebardiv.style("width", null).style("height", st.height + "px"), b.previousPromises(Se);
                }
                function or() {
                  if (b.clearAutoMarginIds(Se), O.drawMarginPushers(Se), x.allowAutoMargin(Se), Se._fullLayout.title.text && Se._fullLayout.title.automargin && b.allowAutoMargin(Se, "title.automargin"), st._has("pie"))
                    for (var Er = Se._fullData, Cr = 0; Cr < Er.length; Cr++) {
                      var zr = Er[Cr];
                      zr.type === "pie" && zr.automargin && b.allowAutoMargin(Se, "pie." + zr.uid + ".automargin");
                    }
                  return b.doAutoMargin(Se), b.previousPromises(Se);
                }
                function Rr() {
                  if (b.didMarginChange(Or, st._size))
                    return f.syncOrAsync([or, O.layoutStyles], Se);
                }
                function lr() {
                  if (!ar) {
                    Tr();
                    return;
                  }
                  return f.syncOrAsync([h.getComponentMethod("shapes", "calcAutorange"), h.getComponentMethod("annotations", "calcAutorange"), Tr], Se);
                }
                function Tr() {
                  Se._transitioning || (O.doAutoRangeAndConstraints(Se), dt && x.saveRangeInitial(Se), h.getComponentMethod("rangeslider", "calcAutorange")(Se));
                }
                function Gr() {
                  return x.draw(Se, dt ? "" : "redraw");
                }
                var Dr = [b.previousPromises, Dt, br, or, Rr];
                Nt && Dr.push(lr), Dr.push(O.layoutStyles), Nt && Dr.push(Gr, function(Cr) {
                  var zr = Cr._fullLayout._insideTickLabelsUpdaterange;
                  if (zr)
                    return Cr._fullLayout._insideTickLabelsUpdaterange = void 0, we(Cr, zr).then(function() {
                      x.saveRangeInitial(Cr, !0);
                    });
                }), Dr.push(
                  O.drawData,
                  O.finalDraw,
                  T,
                  b.addLinks,
                  b.rehover,
                  b.redrag,
                  b.reselect,
                  // TODO: doAutoMargin is only needed here for axis automargin, which
                  // happens outside of marginPushers where all the other automargins are
                  // calculated. Would be much better to separate margin calculations from
                  // component drawing - see https://github.com/plotly/plotly.js/issues/2704
                  b.doAutoMargin,
                  b.previousPromises
                );
                var gr = f.syncOrAsync(Dr, Se);
                return (!gr || !gr.then) && (gr = Promise.resolve()), gr.then(function() {
                  return X(Se), Se;
                });
              }
              function X(Se) {
                var Pe = Se._fullLayout;
                Pe._redrawFromAutoMarginCount ? Pe._redrawFromAutoMarginCount-- : Se.emit("plotly_afterplot");
              }
              function U(Se) {
                return f.extendFlat(R, Se);
              }
              function te(Se, Pe) {
                try {
                  Se._fullLayout._paper.style("background", Pe);
                } catch (Ye) {
                  f.error(Ye);
                }
              }
              function se(Se, Pe) {
                var Ye = S.combine(Pe, "white");
                te(Se, Ye);
              }
              function me(Se, Pe) {
                if (!Se._context) {
                  Se._context = f.extendDeep({}, R);
                  var Ye = a.select("base");
                  Se._context._baseUrl = Ye.size() && Ye.attr("href") ? window.location.href.split("#")[0] : "";
                }
                var Ze = Se._context, rt, tt, Ft;
                if (Pe) {
                  for (tt = Object.keys(Pe), rt = 0; rt < tt.length; rt++)
                    Ft = tt[rt], !(Ft === "editable" || Ft === "edits") && Ft in Ze && (Ft === "setBackground" && Pe[Ft] === "opaque" ? Ze[Ft] = se : Ze[Ft] = Pe[Ft]);
                  Pe.plot3dPixelRatio && !Ze.plotGlPixelRatio && (Ze.plotGlPixelRatio = Ze.plot3dPixelRatio);
                  var Dt = Pe.editable;
                  if (Dt !== void 0)
                    for (Ze.editable = Dt, tt = Object.keys(Ze.edits), rt = 0; rt < tt.length; rt++)
                      Ze.edits[tt[rt]] = Dt;
                  if (Pe.edits)
                    for (tt = Object.keys(Pe.edits), rt = 0; rt < tt.length; rt++)
                      Ft = tt[rt], Ft in Ze.edits && (Ze.edits[Ft] = Pe.edits[Ft]);
                  Ze._exportedPlot = Pe._exportedPlot;
                }
                Ze.staticPlot && (Ze.editable = !1, Ze.edits = {}, Ze.autosizable = !1, Ze.scrollZoom = !1, Ze.doubleClick = !1, Ze.showTips = !1, Ze.showLink = !1, Ze.displayModeBar = !1), Ze.displayModeBar === "hover" && !l && (Ze.displayModeBar = !0), (Ze.setBackground === "transparent" || typeof Ze.setBackground != "function") && (Ze.setBackground = te), Ze._hasZeroHeight = Ze._hasZeroHeight || Se.clientHeight === 0, Ze._hasZeroWidth = Ze._hasZeroWidth || Se.clientWidth === 0;
                var dt = Ze.scrollZoom, st = Ze._scrollZoom = {};
                if (dt === !0)
                  st.cartesian = 1, st.gl3d = 1, st.geo = 1, st.mapbox = 1;
                else if (typeof dt == "string") {
                  var Nt = dt.split("+");
                  for (rt = 0; rt < Nt.length; rt++)
                    st[Nt[rt]] = 1;
                } else
                  dt !== !1 && (st.gl3d = 1, st.geo = 1, st.mapbox = 1);
              }
              function J(Se) {
                if (Se = f.getGraphDiv(Se), !f.isPlotDiv(Se))
                  throw new Error("This element is not a Plotly plot: " + Se);
                return I.cleanData(Se.data), I.cleanLayout(Se.layout), Se.calcdata = void 0, L._doPlot(Se).then(function() {
                  return Se.emit("plotly_redraw"), Se;
                });
              }
              function W(Se, Pe, Ye, Ze) {
                return Se = f.getGraphDiv(Se), b.cleanPlot([], {}, Se._fullData || [], Se._fullLayout || {}), b.purge(Se), L._doPlot(Se, Pe, Ye, Ze);
              }
              function ae(Se, Pe) {
                var Ye = Pe + 1, Ze = [], rt, tt;
                for (rt = 0; rt < Se.length; rt++)
                  tt = Se[rt], tt < 0 ? Ze.push(Ye + tt) : Ze.push(tt);
                return Ze;
              }
              function oe(Se, Pe, Ye) {
                var Ze, rt;
                for (Ze = 0; Ze < Pe.length; Ze++) {
                  if (rt = Pe[Ze], rt !== parseInt(rt, 10))
                    throw new Error("all values in " + Ye + " must be integers");
                  if (rt >= Se.data.length || rt < -Se.data.length)
                    throw new Error(Ye + " must be valid indices for gd.data.");
                  if (Pe.indexOf(rt, Ze + 1) > -1 || rt >= 0 && Pe.indexOf(-Se.data.length + rt) > -1 || rt < 0 && Pe.indexOf(Se.data.length + rt) > -1)
                    throw new Error("each index in " + Ye + " must be unique.");
                }
              }
              function ve(Se, Pe, Ye) {
                if (!Array.isArray(Se.data))
                  throw new Error("gd.data must be an array.");
                if (typeof Pe > "u")
                  throw new Error("currentIndices is a required argument.");
                if (Array.isArray(Pe) || (Pe = [Pe]), oe(Se, Pe, "currentIndices"), typeof Ye < "u" && !Array.isArray(Ye) && (Ye = [Ye]), typeof Ye < "u" && oe(Se, Ye, "newIndices"), typeof Ye < "u" && Pe.length !== Ye.length)
                  throw new Error("current and new indices must be of equal length.");
              }
              function fe(Se, Pe, Ye) {
                var Ze, rt;
                if (!Array.isArray(Se.data))
                  throw new Error("gd.data must be an array.");
                if (typeof Pe > "u")
                  throw new Error("traces must be defined.");
                for (Array.isArray(Pe) || (Pe = [Pe]), Ze = 0; Ze < Pe.length; Ze++)
                  if (rt = Pe[Ze], typeof rt != "object" || Array.isArray(rt) || rt === null)
                    throw new Error("all values in traces array must be non-array objects");
                if (typeof Ye < "u" && !Array.isArray(Ye) && (Ye = [Ye]), typeof Ye < "u" && Ye.length !== Pe.length)
                  throw new Error("if indices is specified, traces.length must equal indices.length");
              }
              function ye(Se, Pe, Ye, Ze) {
                var rt = f.isPlainObject(Ze);
                if (!Array.isArray(Se.data))
                  throw new Error("gd.data must be an array");
                if (!f.isPlainObject(Pe))
                  throw new Error("update must be a key:value object");
                if (typeof Ye > "u")
                  throw new Error("indices must be an integer or array of integers");
                oe(Se, Ye, "indices");
                for (var tt in Pe) {
                  if (!Array.isArray(Pe[tt]) || Pe[tt].length !== Ye.length)
                    throw new Error("attribute " + tt + " must be an array of length equal to indices array length");
                  if (rt && (!(tt in Ze) || !Array.isArray(Ze[tt]) || Ze[tt].length !== Pe[tt].length))
                    throw new Error("when maxPoints is set as a key:value object it must contain a 1:1 corrispondence with the keys and number of traces in the update object");
                }
              }
              function Ce(Se, Pe, Ye, Ze) {
                var rt = f.isPlainObject(Ze), tt = [], Ft, Dt, dt, st, Nt;
                Array.isArray(Ye) || (Ye = [Ye]), Ye = ae(Ye, Se.data.length - 1);
                for (var ar in Pe)
                  for (var ur = 0; ur < Ye.length; ur++) {
                    if (Ft = Se.data[Ye[ur]], dt = u(Ft, ar), Dt = dt.get(), st = Pe[ar][ur], !f.isArrayOrTypedArray(st))
                      throw new Error("attribute: " + ar + " index: " + ur + " must be an array");
                    if (!f.isArrayOrTypedArray(Dt))
                      throw new Error("cannot extend missing or non-array attribute: " + ar);
                    if (Dt.constructor !== st.constructor)
                      throw new Error("cannot extend array with an array of a different type: " + ar);
                    Nt = rt ? Ze[ar][ur] : Ze, p(Nt) || (Nt = -1), tt.push({
                      prop: dt,
                      target: Dt,
                      insert: st,
                      maxp: Math.floor(Nt)
                    });
                  }
                return tt;
              }
              function Re(Se, Pe, Ye, Ze, rt) {
                ye(Se, Pe, Ye, Ze);
                for (var tt = Ce(Se, Pe, Ye, Ze), Ft = {}, Dt = {}, dt = 0; dt < tt.length; dt++) {
                  var st = tt[dt].prop, Nt = tt[dt].maxp, ar = rt(tt[dt].target, tt[dt].insert, Nt);
                  st.set(ar[0]), Array.isArray(Ft[st.astr]) || (Ft[st.astr] = []), Ft[st.astr].push(ar[1]), Array.isArray(Dt[st.astr]) || (Dt[st.astr] = []), Dt[st.astr].push(tt[dt].target.length);
                }
                return {
                  update: Ft,
                  maxPoints: Dt
                };
              }
              function Be(Se, Pe) {
                var Ye = new Se.constructor(Se.length + Pe.length);
                return Ye.set(Se), Ye.set(Pe, Se.length), Ye;
              }
              function xe(Se, Pe, Ye, Ze) {
                Se = f.getGraphDiv(Se);
                function rt(dt, st, Nt) {
                  var ar, ur;
                  if (f.isTypedArray(dt))
                    if (Nt < 0) {
                      var Or = new dt.constructor(0), Fr = Be(dt, st);
                      Nt < 0 ? (ar = Fr, ur = Or) : (ar = Or, ur = Fr);
                    } else if (ar = new dt.constructor(Nt), ur = new dt.constructor(dt.length + st.length - Nt), Nt === st.length)
                      ar.set(st), ur.set(dt);
                    else if (Nt < st.length) {
                      var br = st.length - Nt;
                      ar.set(st.subarray(br)), ur.set(dt), ur.set(st.subarray(0, br), dt.length);
                    } else {
                      var or = Nt - st.length, Rr = dt.length - or;
                      ar.set(dt.subarray(Rr)), ar.set(st, or), ur.set(dt.subarray(0, Rr));
                    }
                  else
                    ar = dt.concat(st), ur = Nt >= 0 && Nt < ar.length ? ar.splice(0, ar.length - Nt) : [];
                  return [ar, ur];
                }
                var tt = Re(Se, Pe, Ye, Ze, rt), Ft = L.redraw(Se), Dt = [Se, tt.update, Ye, tt.maxPoints];
                return d.add(Se, L.prependTraces, Dt, xe, arguments), Ft;
              }
              function Me(Se, Pe, Ye, Ze) {
                Se = f.getGraphDiv(Se);
                function rt(dt, st, Nt) {
                  var ar, ur;
                  if (f.isTypedArray(dt))
                    if (Nt <= 0) {
                      var Or = new dt.constructor(0), Fr = Be(st, dt);
                      Nt < 0 ? (ar = Fr, ur = Or) : (ar = Or, ur = Fr);
                    } else if (ar = new dt.constructor(Nt), ur = new dt.constructor(dt.length + st.length - Nt), Nt === st.length)
                      ar.set(st), ur.set(dt);
                    else if (Nt < st.length) {
                      var br = st.length - Nt;
                      ar.set(st.subarray(0, br)), ur.set(st.subarray(br)), ur.set(dt, br);
                    } else {
                      var or = Nt - st.length;
                      ar.set(st), ar.set(dt.subarray(0, or), st.length), ur.set(dt.subarray(or));
                    }
                  else
                    ar = st.concat(dt), ur = Nt >= 0 && Nt < ar.length ? ar.splice(Nt, ar.length) : [];
                  return [ar, ur];
                }
                var tt = Re(Se, Pe, Ye, Ze, rt), Ft = L.redraw(Se), Dt = [Se, tt.update, Ye, tt.maxPoints];
                return d.add(Se, L.extendTraces, Dt, Me, arguments), Ft;
              }
              function De(Se, Pe, Ye) {
                Se = f.getGraphDiv(Se);
                var Ze = [], rt = L.deleteTraces, tt = De, Ft = [Se, Ze], Dt = [Se, Pe], dt, st;
                for (fe(Se, Pe, Ye), Array.isArray(Pe) || (Pe = [Pe]), Pe = Pe.map(function(Nt) {
                  return f.extendFlat({}, Nt);
                }), I.cleanData(Pe), dt = 0; dt < Pe.length; dt++)
                  Se.data.push(Pe[dt]);
                for (dt = 0; dt < Pe.length; dt++)
                  Ze.push(-Pe.length + dt);
                if (typeof Ye > "u")
                  return st = L.redraw(Se), d.add(Se, rt, Ft, tt, Dt), st;
                Array.isArray(Ye) || (Ye = [Ye]);
                try {
                  ve(Se, Ze, Ye);
                } catch (Nt) {
                  throw Se.data.splice(Se.data.length - Pe.length, Pe.length), Nt;
                }
                return d.startSequence(Se), d.add(Se, rt, Ft, tt, Dt), st = L.moveTraces(Se, Ze, Ye), d.stopSequence(Se), st;
              }
              function Z(Se, Pe) {
                Se = f.getGraphDiv(Se);
                var Ye = [], Ze = L.addTraces, rt = Z, tt = [Se, Ye, Pe], Ft = [Se, Pe], Dt, dt;
                if (typeof Pe > "u")
                  throw new Error("indices must be an integer or array of integers.");
                for (Array.isArray(Pe) || (Pe = [Pe]), oe(Se, Pe, "indices"), Pe = ae(Pe, Se.data.length - 1), Pe.sort(f.sorterDes), Dt = 0; Dt < Pe.length; Dt += 1)
                  dt = Se.data.splice(Pe[Dt], 1)[0], Ye.push(dt);
                var st = L.redraw(Se);
                return d.add(Se, Ze, tt, rt, Ft), st;
              }
              function ee(Se, Pe, Ye) {
                Se = f.getGraphDiv(Se);
                var Ze = [], rt = [], tt = ee, Ft = ee, Dt = [Se, Ye, Pe], dt = [Se, Pe, Ye], st;
                if (ve(Se, Pe, Ye), Pe = Array.isArray(Pe) ? Pe : [Pe], typeof Ye > "u")
                  for (Ye = [], st = 0; st < Pe.length; st++)
                    Ye.push(-Pe.length + st);
                for (Ye = Array.isArray(Ye) ? Ye : [Ye], Pe = ae(Pe, Se.data.length - 1), Ye = ae(Ye, Se.data.length - 1), st = 0; st < Se.data.length; st++)
                  Pe.indexOf(st) === -1 && Ze.push(Se.data[st]);
                for (st = 0; st < Pe.length; st++)
                  rt.push({
                    newIndex: Ye[st],
                    trace: Se.data[Pe[st]]
                  });
                for (rt.sort(function(ar, ur) {
                  return ar.newIndex - ur.newIndex;
                }), st = 0; st < rt.length; st += 1)
                  Ze.splice(rt[st].newIndex, 0, rt[st].trace);
                Se.data = Ze;
                var Nt = L.redraw(Se);
                return d.add(Se, tt, Dt, Ft, dt), Nt;
              }
              function ie(Se, Pe, Ye, Ze) {
                Se = f.getGraphDiv(Se), I.clearPromiseQueue(Se);
                var rt = {};
                if (typeof Pe == "string")
                  rt[Pe] = Ye;
                else if (f.isPlainObject(Pe))
                  rt = f.extendFlat({}, Pe), Ze === void 0 && (Ze = Ye);
                else
                  return f.warn("Restyle fail.", Pe, Ye, Ze), Promise.reject();
                Object.keys(rt).length && (Se.changed = !0);
                var tt = I.coerceTraceIndices(Se, Ze), Ft = he(Se, rt, tt), Dt = Ft.flags;
                Dt.calc && (Se.calcdata = void 0), Dt.clearAxisTypes && I.clearAxisTypes(Se, tt, {});
                var dt = [];
                Dt.fullReplot ? dt.push(L._doPlot) : (dt.push(b.previousPromises), b.supplyDefaults(Se), Dt.markerSize && (b.doCalcdata(Se), Ge(dt)), Dt.style && dt.push(O.doTraceStyle), Dt.colorbars && dt.push(O.doColorBars), dt.push(X)), dt.push(b.rehover, b.redrag, b.reselect), d.add(Se, ie, [Se, Ft.undoit, Ft.traces], ie, [Se, Ft.redoit, Ft.traces]);
                var st = f.syncOrAsync(dt, Se);
                return (!st || !st.then) && (st = Promise.resolve()), st.then(function() {
                  return Se.emit("plotly_restyle", Ft.eventData), Se;
                });
              }
              function G(Se) {
                return Se === void 0 ? null : Se;
              }
              function H(Se, Pe) {
                return Pe ? function(Ye, Ze, rt) {
                  var tt = u(Ye, Ze), Ft = tt.set;
                  return tt.set = function(Dt) {
                    var dt = (rt || "") + Ze;
                    ce(dt, tt.get(), Dt, Se), Ft(Dt);
                  }, tt;
                } : u;
              }
              function ce(Se, Pe, Ye, Ze) {
                if (Array.isArray(Pe) || Array.isArray(Ye))
                  for (var rt = Array.isArray(Pe) ? Pe : [], tt = Array.isArray(Ye) ? Ye : [], Ft = Math.max(rt.length, tt.length), Dt = 0; Dt < Ft; Dt++)
                    ce(Se + "[" + Dt + "]", rt[Dt], tt[Dt], Ze);
                else if (f.isPlainObject(Pe) || f.isPlainObject(Ye)) {
                  var dt = f.isPlainObject(Pe) ? Pe : {}, st = f.isPlainObject(Ye) ? Ye : {}, Nt = f.extendFlat({}, dt, st);
                  for (var ar in Nt)
                    ce(Se + "." + ar, dt[ar], st[ar], Ze);
                } else
                  Ze[Se] === void 0 && (Ze[Se] = G(Pe));
              }
              function j(Se, Pe, Ye) {
                for (var Ze in Ye) {
                  var rt = u(Se, Ze);
                  ce(Ze, rt.get(), Ye[Ze], Pe);
                }
              }
              function he(Se, Pe, Ye) {
                var Ze = Se._fullLayout, rt = Se._fullData, tt = Se.data, Ft = Ze._guiEditing, Dt = H(Ze._preGUI, Ft), dt = f.extendDeepAll({}, Pe), st;
                be(Pe);
                var Nt = $.traceFlags(), ar = {}, ur = {}, Or;
                function Fr() {
                  return Ye.map(function() {
                  });
                }
                function br(sr) {
                  var Xr = x.id2name(sr);
                  Or.indexOf(Xr) === -1 && Or.push(Xr);
                }
                function or(sr) {
                  return "LAYOUT" + sr + ".autorange";
                }
                function Rr(sr) {
                  return "LAYOUT" + sr + ".range";
                }
                function lr(sr) {
                  for (var Xr = sr; Xr < rt.length; Xr++)
                    if (rt[Xr]._input === tt[sr])
                      return rt[Xr];
                }
                function Tr(sr, Xr, Lr) {
                  if (Array.isArray(sr)) {
                    sr.forEach(function(Qr) {
                      Tr(Qr, Xr, Lr);
                    });
                    return;
                  }
                  if (!(sr in Pe || I.hasParent(Pe, sr))) {
                    var Pr;
                    if (sr.substr(0, 6) === "LAYOUT")
                      Pr = Dt(Se.layout, sr.replace("LAYOUT", ""));
                    else {
                      var $r = Ye[Lr], Jr = Ze._tracePreGUI[lr($r)._fullInput.uid];
                      Pr = H(Jr, Ft)(tt[$r], sr);
                    }
                    sr in ur || (ur[sr] = Fr()), ur[sr][Lr] === void 0 && (ur[sr][Lr] = G(Pr.get())), Xr !== void 0 && Pr.set(Xr);
                  }
                }
                function Gr(sr) {
                  return function(Xr) {
                    return rt[Xr][sr];
                  };
                }
                function Dr(sr) {
                  return function(Xr, Lr) {
                    return Xr === !1 ? rt[Ye[Lr]][sr] : null;
                  };
                }
                for (var gr in Pe) {
                  if (I.hasParent(Pe, gr))
                    throw new Error("cannot set " + gr + " and a parent attribute simultaneously");
                  var Er = Pe[gr], Cr, zr, en, on, Ir, Ae;
                  if ((gr === "autobinx" || gr === "autobiny") && (gr = gr.charAt(gr.length - 1) + "bins", Array.isArray(Er) ? Er = Er.map(Dr(gr)) : Er === !1 ? Er = Ye.map(Gr(gr)) : Er = null), ar[gr] = Er, gr.substr(0, 6) === "LAYOUT") {
                    en = Dt(Se.layout, gr.replace("LAYOUT", "")), ur[gr] = [G(en.get())], en.set(Array.isArray(Er) ? Er[0] : Er), Nt.calc = !0;
                    continue;
                  }
                  for (ur[gr] = Fr(), st = 0; st < Ye.length; st++) {
                    Cr = tt[Ye[st]], zr = lr(Ye[st]);
                    var ue = Ze._tracePreGUI[zr._fullInput.uid];
                    if (en = H(ue, Ft)(Cr, gr), on = en.get(), Ir = Array.isArray(Er) ? Er[st % Er.length] : Er, Ir !== void 0) {
                      var ft = en.parts[en.parts.length - 1], nt = gr.substr(0, gr.length - ft.length - 1), mt = nt ? nt + "." : "", Tt = nt ? u(zr, nt).get() : zr;
                      if (Ae = i.getTraceValObject(zr, en.parts), Ae && Ae.impliedEdits && Ir !== null)
                        for (var bt in Ae.impliedEdits)
                          Tr(f.relativeAttr(gr, bt), Ae.impliedEdits[bt], st);
                      else if ((ft === "thicknessmode" || ft === "lenmode") && on !== Ir && (Ir === "fraction" || Ir === "pixels") && Tt) {
                        var vt = Ze._size, ht = Tt.orient, St = ht === "top" || ht === "bottom";
                        if (ft === "thicknessmode") {
                          var It = St ? vt.h : vt.w;
                          Tr(mt + "thickness", Tt.thickness * (Ir === "fraction" ? 1 / It : It), st);
                        } else {
                          var Ht = St ? vt.w : vt.h;
                          Tr(mt + "len", Tt.len * (Ir === "fraction" ? 1 / Ht : Ht), st);
                        }
                      } else if (gr === "type" && (Ir === "pie" != (on === "pie") || Ir === "funnelarea" != (on === "funnelarea"))) {
                        var Et = "x", Zt = "y";
                        (Ir === "bar" || on === "bar") && Cr.orientation === "h" && (Et = "y", Zt = "x"), f.swapAttrs(Cr, ["?", "?src"], "labels", Et), f.swapAttrs(Cr, ["d?", "?0"], "label", Et), f.swapAttrs(Cr, ["?", "?src"], "values", Zt), on === "pie" || on === "funnelarea" ? (u(Cr, "marker.color").set(u(Cr, "marker.colors").get()), Ze._pielayer.selectAll("g.trace").remove()) : h.traceIs(Cr, "cartesian") && u(Cr, "marker.colors").set(u(Cr, "marker.color").get());
                      }
                      ur[gr][st] = G(on);
                      var Yt = ["swapxy", "swapxyaxes", "orientation", "orientationaxes"];
                      if (Yt.indexOf(gr) !== -1) {
                        if (gr === "orientation") {
                          en.set(Ir);
                          var Gt = Cr.x && !Cr.y ? "h" : "v";
                          if ((en.get() || Gt) === zr.orientation)
                            continue;
                        } else
                          gr === "orientationaxes" && (Cr.orientation = {
                            v: "h",
                            h: "v"
                          }[zr.orientation]);
                        I.swapXYData(Cr), Nt.calc = Nt.clearAxisTypes = !0;
                      } else
                        b.dataArrayContainers.indexOf(en.parts[0]) !== -1 ? (I.manageArrayContainers(en, Ir, ur), Nt.calc = !0) : (Ae ? Ae.arrayOk && !h.traceIs(zr, "regl") && (f.isArrayOrTypedArray(Ir) || f.isArrayOrTypedArray(on)) ? Nt.calc = !0 : $.update(Nt, Ae) : Nt.calc = !0, en.set(Ir));
                    }
                  }
                  if (["swapxyaxes", "orientationaxes"].indexOf(gr) !== -1 && x.swap(Se, Ye), gr === "orientationaxes") {
                    var $t = u(Se.layout, "hovermode"), ir = $t.get();
                    ir === "x" ? $t.set("y") : ir === "y" ? $t.set("x") : ir === "x unified" ? $t.set("y unified") : ir === "y unified" && $t.set("x unified");
                  }
                  if (["orientation", "type"].indexOf(gr) !== -1) {
                    for (Or = [], st = 0; st < Ye.length; st++) {
                      var wr = tt[Ye[st]];
                      h.traceIs(wr, "cartesian") && (br(wr.xaxis || "x"), br(wr.yaxis || "y"));
                    }
                    Tr(Or.map(or), !0, 0), Tr(Or.map(Rr), [0, 1], 0);
                  }
                }
                return (Nt.calc || Nt.plot) && (Nt.fullReplot = !0), {
                  flags: Nt,
                  undoit: ur,
                  redoit: ar,
                  traces: Ye,
                  eventData: f.extendDeepNoArrays([], [dt, Ye])
                };
              }
              function be(Se) {
                var Pe = f.counterRegex("axis", ".title", !1, !1), Ye = /colorbar\.title$/, Ze = Object.keys(Se), rt, tt, Ft;
                for (rt = 0; rt < Ze.length; rt++)
                  tt = Ze[rt], Ft = Se[tt], (tt === "title" || Pe.test(tt) || Ye.test(tt)) && (typeof Ft == "string" || typeof Ft == "number") ? Dt(tt, tt.replace("title", "title.text")) : tt.indexOf("titlefont") > -1 && tt.indexOf("grouptitlefont") === -1 ? Dt(tt, tt.replace("titlefont", "title.font")) : tt.indexOf("titleposition") > -1 ? Dt(tt, tt.replace("titleposition", "title.position")) : tt.indexOf("titleside") > -1 ? Dt(tt, tt.replace("titleside", "title.side")) : tt.indexOf("titleoffset") > -1 && Dt(tt, tt.replace("titleoffset", "title.offset"));
                function Dt(dt, st) {
                  Se[st] = Se[dt], delete Se[dt];
                }
              }
              function we(Se, Pe, Ye) {
                Se = f.getGraphDiv(Se), I.clearPromiseQueue(Se);
                var Ze = {};
                if (typeof Pe == "string")
                  Ze[Pe] = Ye;
                else if (f.isPlainObject(Pe))
                  Ze = f.extendFlat({}, Pe);
                else
                  return f.warn("Relayout fail.", Pe, Ye), Promise.reject();
                Object.keys(Ze).length && (Se.changed = !0);
                var rt = at(Se, Ze), tt = rt.flags;
                tt.calc && (Se.calcdata = void 0);
                var Ft = [b.previousPromises];
                tt.layoutReplot ? Ft.push(O.layoutReplot) : Object.keys(Ze).length && (Ie(Se, tt, rt) || b.supplyDefaults(Se), tt.legend && Ft.push(O.doLegend), tt.layoutstyle && Ft.push(O.layoutStyles), tt.axrange && Ge(Ft, rt.rangesAltered), tt.ticks && Ft.push(O.doTicksRelayout), tt.modebar && Ft.push(O.doModeBar), tt.camera && Ft.push(O.doCamera), tt.colorbars && Ft.push(O.doColorBars), Ft.push(X)), Ft.push(b.rehover, b.redrag, b.reselect), d.add(Se, we, [Se, rt.undoit], we, [Se, rt.redoit]);
                var Dt = f.syncOrAsync(Ft, Se);
                return (!Dt || !Dt.then) && (Dt = Promise.resolve(Se)), Dt.then(function() {
                  return Se.emit("plotly_relayout", rt.eventData), Se;
                });
              }
              function Ie(Se, Pe, Ye) {
                var Ze = Se._fullLayout;
                if (!Pe.axrange)
                  return !1;
                for (var rt in Pe)
                  if (rt !== "axrange" && Pe[rt])
                    return !1;
                var tt, Ft, Dt = function(Or, Fr) {
                  return f.coerce(tt, Ft, C, Or, Fr);
                }, dt = {};
                for (var st in Ye.rangesAltered) {
                  var Nt = x.id2name(st);
                  if (tt = Se.layout[Nt], Ft = Ze[Nt], D(tt, Ft, Dt, dt), Ft._matchGroup) {
                    for (var ar in Ft._matchGroup)
                      if (ar !== st) {
                        var ur = Ze[x.id2name(ar)];
                        ur.autorange = Ft.autorange, ur.range = Ft.range.slice(), ur._input.range = Ft.range.slice();
                      }
                  }
                }
                return !0;
              }
              function Ge(Se, Pe) {
                var Ye = Pe ? function(Ze) {
                  var rt = [], tt = !0;
                  for (var Ft in Pe) {
                    var Dt = x.getFromId(Ze, Ft);
                    if (rt.push(Ft), (Dt.ticklabelposition || "").indexOf("inside") !== -1 && Dt._anchorAxis && rt.push(Dt._anchorAxis._id), Dt._matchGroup)
                      for (var dt in Dt._matchGroup)
                        Pe[dt] || rt.push(dt);
                  }
                  return x.draw(Ze, rt, {
                    skipTitle: tt
                  });
                } : function(Ze) {
                  return x.draw(Ze, "redraw");
                };
                Se.push(A, O.doAutoRangeAndConstraints, Ye, O.drawData, O.finalDraw);
              }
              var Ve = /^[xyz]axis[0-9]*\.range(\[[0|1]\])?$/, Je = /^[xyz]axis[0-9]*\.autorange$/, et = /^[xyz]axis[0-9]*\.domain(\[[0|1]\])?$/;
              function at(Se, Pe) {
                var Ye = Se.layout, Ze = Se._fullLayout, rt = Ze._guiEditing, tt = H(Ze._preGUI, rt), Ft = Object.keys(Pe), Dt = x.list(Se), dt = f.extendDeepAll({}, Pe), st = {}, Nt, ar, ur;
                for (be(Pe), Ft = Object.keys(Pe), ar = 0; ar < Ft.length; ar++)
                  if (Ft[ar].indexOf("allaxes") === 0) {
                    for (ur = 0; ur < Dt.length; ur++) {
                      var Or = Dt[ur]._id.substr(1), Fr = Or.indexOf("scene") !== -1 ? Or + "." : "", br = Ft[ar].replace("allaxes", Fr + Dt[ur]._name);
                      Pe[br] || (Pe[br] = Pe[Ft[ar]]);
                    }
                    delete Pe[Ft[ar]];
                  }
                var or = $.layoutFlags(), Rr = {}, lr = {};
                function Tr(Jr, Qr) {
                  if (Array.isArray(Jr)) {
                    Jr.forEach(function(An) {
                      Tr(An, Qr);
                    });
                    return;
                  }
                  if (!(Jr in Pe || I.hasParent(Pe, Jr))) {
                    var vn = tt(Ye, Jr);
                    Jr in lr || (lr[Jr] = G(vn.get())), Qr !== void 0 && vn.set(Qr);
                  }
                }
                var Gr = {}, Dr;
                function gr(Jr) {
                  var Qr = x.name2id(Jr.split(".")[0]);
                  return Gr[Qr] = 1, Qr;
                }
                for (var Er in Pe) {
                  if (I.hasParent(Pe, Er))
                    throw new Error("cannot set " + Er + " and a parent attribute simultaneously");
                  for (var Cr = tt(Ye, Er), zr = Pe[Er], en = Cr.parts.length, on = en - 1; on > 0 && typeof Cr.parts[on] != "string"; )
                    on--;
                  var Ir = Cr.parts[on], Ae = Cr.parts[on - 1] + "." + Ir, ue = Cr.parts.slice(0, on).join("."), ft = u(Se.layout, ue).get(), nt = u(Ze, ue).get(), mt = Cr.get();
                  if (zr !== void 0) {
                    Rr[Er] = zr, lr[Er] = Ir === "reverse" ? zr : G(mt);
                    var Tt = i.getLayoutValObject(Ze, Cr.parts);
                    if (Tt && Tt.impliedEdits && zr !== null)
                      for (var bt in Tt.impliedEdits)
                        Tr(f.relativeAttr(Er, bt), Tt.impliedEdits[bt]);
                    if (["width", "height"].indexOf(Er) !== -1)
                      if (zr) {
                        Tr("autosize", null);
                        var vt = Er === "height" ? "width" : "height";
                        Tr(vt, Ze[vt]);
                      } else
                        Ze[Er] = Se._initialAutoSize[Er];
                    else if (Er === "autosize")
                      Tr("width", zr ? null : Ze.width), Tr("height", zr ? null : Ze.height);
                    else if (Ae.match(Ve))
                      gr(Ae), u(Ze, ue + "._inputRange").set(null);
                    else if (Ae.match(Je)) {
                      gr(Ae), u(Ze, ue + "._inputRange").set(null);
                      var ht = u(Ze, ue).get();
                      ht._inputDomain && (ht._input.domain = ht._inputDomain.slice());
                    } else
                      Ae.match(et) && u(Ze, ue + "._inputDomain").set(null);
                    if (Ir === "type") {
                      Dr = ft;
                      var St = nt.type === "linear" && zr === "log", It = nt.type === "log" && zr === "linear";
                      if (St || It) {
                        if (!Dr || !Dr.range)
                          Tr(ue + ".autorange", !0);
                        else if (nt.autorange)
                          St && (Dr.range = Dr.range[1] > Dr.range[0] ? [1, 2] : [2, 1]);
                        else {
                          var Ht = Dr.range[0], Et = Dr.range[1];
                          St ? (Ht <= 0 && Et <= 0 && Tr(ue + ".autorange", !0), Ht <= 0 ? Ht = Et / 1e6 : Et <= 0 && (Et = Ht / 1e6), Tr(ue + ".range[0]", Math.log(Ht) / Math.LN10), Tr(ue + ".range[1]", Math.log(Et) / Math.LN10)) : (Tr(ue + ".range[0]", Math.pow(10, Ht)), Tr(ue + ".range[1]", Math.pow(10, Et)));
                        }
                        Array.isArray(Ze._subplots.polar) && Ze._subplots.polar.length && Ze[Cr.parts[0]] && Cr.parts[1] === "radialaxis" && delete Ze[Cr.parts[0]]._subplot.viewInitial["radialaxis.range"], h.getComponentMethod("annotations", "convertCoords")(Se, nt, zr, Tr), h.getComponentMethod("images", "convertCoords")(Se, nt, zr, Tr);
                      } else
                        Tr(ue + ".autorange", !0), Tr(ue + ".range", null);
                      u(Ze, ue + "._inputRange").set(null);
                    } else if (Ir.match(Y)) {
                      var Zt = u(Ze, Er).get(), Yt = (zr || {}).type;
                      (!Yt || Yt === "-") && (Yt = "linear"), h.getComponentMethod("annotations", "convertCoords")(Se, Zt, Yt, Tr), h.getComponentMethod("images", "convertCoords")(Se, Zt, Yt, Tr);
                    }
                    var Gt = g.containerArrayMatch(Er);
                    if (Gt) {
                      Nt = Gt.array, ar = Gt.index;
                      var $t = Gt.property, ir = Tt || {
                        editType: "calc"
                      };
                      ar !== "" && $t === "" && (g.isAddVal(zr) ? lr[Er] = null : g.isRemoveVal(zr) ? lr[Er] = (u(Ye, Nt).get() || [])[ar] : f.warn("unrecognized full object value", Pe)), $.update(or, ir), st[Nt] || (st[Nt] = {});
                      var wr = st[Nt][ar];
                      wr || (wr = st[Nt][ar] = {}), wr[$t] = zr, delete Pe[Er];
                    } else
                      Ir === "reverse" ? (ft.range ? ft.range.reverse() : (Tr(ue + ".autorange", !0), ft.range = [1, 0]), nt.autorange ? or.calc = !0 : or.plot = !0) : (Er === "dragmode" && (zr === !1 && mt !== !1 || zr !== !1 && mt === !1) || Ze._has("scatter-like") && Ze._has("regl") && Er === "dragmode" && (zr === "lasso" || zr === "select") && !(mt === "lasso" || mt === "select") || Ze._has("gl2d") ? or.plot = !0 : Tt ? $.update(or, Tt) : or.calc = !0, Cr.set(zr));
                  }
                }
                for (Nt in st) {
                  var sr = g.applyContainerArrayChanges(Se, tt(Ye, Nt), st[Nt], or, tt);
                  sr || (or.plot = !0);
                }
                for (var Xr in Gr) {
                  Dr = x.getFromId(Se, Xr);
                  var Lr = Dr && Dr._constraintGroup;
                  if (Lr) {
                    or.calc = !0;
                    for (var Pr in Lr)
                      Gr[Pr] || (x.getFromId(Se, Pr)._constraintShrinkable = !0);
                  }
                }
                (Le(Se) || Pe.height || Pe.width) && (or.plot = !0);
                var $r = Ze.shapes;
                for (ar = 0; ar < $r.length; ar++)
                  if ($r[ar].showlegend) {
                    or.calc = !0;
                    break;
                  }
                return (or.plot || or.calc) && (or.layoutReplot = !0), {
                  flags: or,
                  rangesAltered: Gr,
                  undoit: lr,
                  redoit: Rr,
                  eventData: dt
                };
              }
              function Le(Se) {
                var Pe = Se._fullLayout, Ye = Pe.width, Ze = Pe.height;
                return Se.layout.autosize && b.plotAutoSize(Se, Se.layout, Pe), Pe.width !== Ye || Pe.height !== Ze;
              }
              function ze(Se, Pe, Ye, Ze) {
                Se = f.getGraphDiv(Se), I.clearPromiseQueue(Se), f.isPlainObject(Pe) || (Pe = {}), f.isPlainObject(Ye) || (Ye = {}), Object.keys(Pe).length && (Se.changed = !0), Object.keys(Ye).length && (Se.changed = !0);
                var rt = I.coerceTraceIndices(Se, Ze), tt = he(Se, f.extendFlat({}, Pe), rt), Ft = tt.flags, Dt = at(Se, f.extendFlat({}, Ye)), dt = Dt.flags;
                (Ft.calc || dt.calc) && (Se.calcdata = void 0), Ft.clearAxisTypes && I.clearAxisTypes(Se, rt, Ye);
                var st = [];
                dt.layoutReplot ? st.push(O.layoutReplot) : Ft.fullReplot ? st.push(L._doPlot) : (st.push(b.previousPromises), Ie(Se, dt, Dt) || b.supplyDefaults(Se), Ft.style && st.push(O.doTraceStyle), (Ft.colorbars || dt.colorbars) && st.push(O.doColorBars), dt.legend && st.push(O.doLegend), dt.layoutstyle && st.push(O.layoutStyles), dt.axrange && Ge(st, Dt.rangesAltered), dt.ticks && st.push(O.doTicksRelayout), dt.modebar && st.push(O.doModeBar), dt.camera && st.push(O.doCamera), st.push(X)), st.push(b.rehover, b.redrag, b.reselect), d.add(Se, ze, [Se, tt.undoit, Dt.undoit, tt.traces], ze, [Se, tt.redoit, Dt.redoit, tt.traces]);
                var Nt = f.syncOrAsync(st, Se);
                return (!Nt || !Nt.then) && (Nt = Promise.resolve(Se)), Nt.then(function() {
                  return Se.emit("plotly_update", {
                    data: tt.eventData,
                    layout: Dt.eventData
                  }), Se;
                });
              }
              function Oe(Se) {
                return function(Ye) {
                  Ye._fullLayout._guiEditing = !0;
                  var Ze = Se.apply(null, arguments);
                  return Ye._fullLayout._guiEditing = !1, Ze;
                };
              }
              var Xe = [
                {
                  pattern: /^hiddenlabels/,
                  attr: "legend.uirevision"
                },
                {
                  pattern: /^((x|y)axis\d*)\.((auto)?range|title\.text)/
                },
                // showspikes and modes include those nested inside scenes
                {
                  pattern: /axis\d*\.showspikes$/,
                  attr: "modebar.uirevision"
                },
                {
                  pattern: /(hover|drag)mode$/,
                  attr: "modebar.uirevision"
                },
                {
                  pattern: /^(scene\d*)\.camera/
                },
                {
                  pattern: /^(geo\d*)\.(projection|center|fitbounds)/
                },
                {
                  pattern: /^(ternary\d*\.[abc]axis)\.(min|title\.text)$/
                },
                {
                  pattern: /^(polar\d*\.radialaxis)\.((auto)?range|angle|title\.text)/
                },
                {
                  pattern: /^(polar\d*\.angularaxis)\.rotation/
                },
                {
                  pattern: /^(mapbox\d*)\.(center|zoom|bearing|pitch)/
                },
                {
                  pattern: /^legend\.(x|y)$/,
                  attr: "editrevision"
                },
                {
                  pattern: /^(shapes|annotations)/,
                  attr: "editrevision"
                },
                {
                  pattern: /^title\.text$/,
                  attr: "editrevision"
                }
              ], it = [
                {
                  pattern: /^selectedpoints$/,
                  attr: "selectionrevision"
                },
                // "visible" includes trace.transforms[i].styles[j].value.visible
                {
                  pattern: /(^|value\.)visible$/,
                  attr: "legend.uirevision"
                },
                {
                  pattern: /^dimensions\[\d+\]\.constraintrange/
                },
                {
                  pattern: /^node\.(x|y|groups)/
                },
                // for Sankey nodes
                {
                  pattern: /^level$/
                },
                // for Sunburst, Treemap and Icicle traces
                // below this you must be in editable: true mode
                // TODO: I still put name and title with `trace.uirevision`
                // reasonable or should these be `editrevision`?
                // Also applies to axis titles up in the layout section
                // "name" also includes transform.styles
                {
                  pattern: /(^|value\.)name$/
                },
                // including nested colorbar attributes (ie marker.colorbar)
                {
                  pattern: /colorbar\.title\.text$/
                },
                {
                  pattern: /colorbar\.(x|y)$/,
                  attr: "editrevision"
                }
              ];
              function ut(Se, Pe) {
                for (var Ye = 0; Ye < Pe.length; Ye++) {
                  var Ze = Pe[Ye], rt = Se.match(Ze.pattern);
                  if (rt) {
                    var tt = rt[1] || "";
                    return {
                      head: tt,
                      tail: Se.substr(tt.length + 1),
                      attr: Ze.attr
                    };
                  }
                }
              }
              function wt(Se, Pe) {
                var Ye = u(Pe, Se).get();
                if (Ye !== void 0)
                  return Ye;
                var Ze = Se.split(".");
                for (Ze.pop(); Ze.length > 1; )
                  if (Ze.pop(), Ye = u(Pe, Ze.join(".") + ".uirevision").get(), Ye !== void 0)
                    return Ye;
                return Pe.uirevision;
              }
              function kt(Se, Pe) {
                for (var Ye = 0; Ye < Pe.length; Ye++)
                  if (Pe[Ye]._fullInput.uid === Se)
                    return Ye;
                return -1;
              }
              function Ot(Se, Pe, Ye) {
                for (var Ze = 0; Ze < Pe.length; Ze++)
                  if (Pe[Ze].uid === Se)
                    return Ze;
                return !Pe[Ye] || Pe[Ye].uid ? -1 : Ye;
              }
              function Lt(Se, Pe) {
                var Ye = f.isPlainObject(Se), Ze = Array.isArray(Se);
                return Ye || Ze ? (Ye && f.isPlainObject(Pe) || Ze && Array.isArray(Pe)) && JSON.stringify(Se) === JSON.stringify(Pe) : Se === Pe;
              }
              function Mt(Se, Pe, Ye, Ze) {
                var rt = Ze._preGUI, tt, Ft, Dt, dt, st, Nt, ar, ur, Or, Fr, br = [], or = {}, Rr = {};
                for (tt in rt) {
                  if (st = ut(tt, Xe), st) {
                    if (Or = st.head, Fr = st.tail, Ft = st.attr || Or + ".uirevision", Dt = u(Ze, Ft).get(), dt = Dt && wt(Ft, Pe), dt && dt === Dt) {
                      if (Nt = rt[tt], Nt === null && (Nt = void 0), ar = u(Pe, tt), ur = ar.get(), Lt(ur, Nt)) {
                        ur === void 0 && Fr === "autorange" && br.push(Or), ar.set(G(u(Ze, tt).get()));
                        continue;
                      } else if (Fr === "autorange" || Fr.substr(0, 6) === "range[") {
                        var lr = rt[Or + ".range[0]"], Tr = rt[Or + ".range[1]"], Gr = rt[Or + ".autorange"];
                        if (Gr || Gr === null && lr === null && Tr === null) {
                          if (!(Or in or)) {
                            var Dr = u(Pe, Or).get();
                            or[Or] = Dr && (Dr.autorange || Dr.autorange !== !1 && (!Dr.range || Dr.range.length !== 2));
                          }
                          if (or[Or]) {
                            ar.set(G(u(Ze, tt).get()));
                            continue;
                          }
                        }
                      }
                    }
                  } else
                    f.warn("unrecognized GUI edit: " + tt);
                  delete rt[tt], st && st.tail.substr(0, 6) === "range[" && (Rr[st.head] = 1);
                }
                for (var gr = 0; gr < br.length; gr++) {
                  var Er = br[gr];
                  if (Rr[Er]) {
                    var Cr = u(Pe, Er).get();
                    Cr && delete Cr.autorange;
                  }
                }
                var zr = Ze._tracePreGUI;
                for (var en in zr) {
                  var on = zr[en], Ir = null, Ae;
                  for (tt in on) {
                    if (!Ir) {
                      var ue = kt(en, Ye);
                      if (ue < 0) {
                        delete zr[en];
                        break;
                      }
                      var ft = Ye[ue];
                      Ae = ft._fullInput;
                      var nt = Ot(en, Se, Ae.index);
                      if (nt < 0) {
                        delete zr[en];
                        break;
                      }
                      Ir = Se[nt];
                    }
                    if (st = ut(tt, it), st) {
                      if (st.attr ? (Dt = u(Ze, st.attr).get(), dt = Dt && wt(st.attr, Pe)) : (Dt = Ae.uirevision, dt = Ir.uirevision, dt === void 0 && (dt = Pe.uirevision)), dt && dt === Dt && (Nt = on[tt], Nt === null && (Nt = void 0), ar = u(Ir, tt), ur = ar.get(), Lt(ur, Nt))) {
                        ar.set(G(u(Ae, tt).get()));
                        continue;
                      }
                    } else
                      f.warn("unrecognized GUI edit: " + tt + " in trace uid " + en);
                    delete on[tt];
                  }
                }
              }
              function Ut(Se, Pe, Ye, Ze) {
                var rt, tt;
                function Ft() {
                  return L.addFrames(Se, rt);
                }
                Se = f.getGraphDiv(Se), I.clearPromiseQueue(Se);
                var Dt = Se._fullData, dt = Se._fullLayout;
                if (!f.isPlotDiv(Se) || !Dt || !dt)
                  tt = L.newPlot(Se, Pe, Ye, Ze);
                else {
                  if (f.isPlainObject(Pe)) {
                    var st = Pe;
                    Pe = st.data, Ye = st.layout, Ze = st.config, rt = st.frames;
                  }
                  var Nt = !1;
                  if (Ze) {
                    var ar = f.extendDeep({}, Se._context);
                    Se._context = void 0, me(Se, Ze), Nt = Jt(ar, Se._context);
                  }
                  Se.data = Pe || [], I.cleanData(Se.data), Se.layout = Ye || {}, I.cleanLayout(Se.layout), Mt(Se.data, Se.layout, Dt, dt), b.supplyDefaults(Se, {
                    skipUpdateCalc: !0
                  });
                  var ur = Se._fullData, Or = Se._fullLayout, Fr = Or.datarevision === void 0, br = Or.transition, or = jt(Se, dt, Or, Fr, br), Rr = or.newDataRevision, lr = Ct(Se, Dt, ur, Fr, br, Rr);
                  if (Le(Se) && (or.layoutReplot = !0), lr.calc || or.calc) {
                    Se.calcdata = void 0;
                    for (var Tr = Object.getOwnPropertyNames(Or), Gr = 0; Gr < Tr.length; Gr++) {
                      var Dr = Tr[Gr], gr = Dr.substring(0, 5);
                      if (gr === "xaxis" || gr === "yaxis") {
                        var Er = Or[Dr]._emptyCategories;
                        Er && Er();
                      }
                    }
                  } else
                    b.supplyDefaultsUpdateCalc(Se.calcdata, ur);
                  var Cr = [];
                  if (rt && (Se._transitionData = {}, b.createTransitionData(Se), Cr.push(Ft)), Or.transition && !Nt && (lr.anim || or.anim))
                    or.ticks && Cr.push(O.doTicksRelayout), b.doCalcdata(Se), O.doAutoRangeAndConstraints(Se), Cr.push(function() {
                      return b.transitionFromReact(Se, lr, or, dt);
                    });
                  else if (lr.fullReplot || or.layoutReplot || Nt)
                    Se._fullLayout._skipDefaults = !0, Cr.push(L._doPlot);
                  else {
                    for (var zr in or.arrays) {
                      var en = or.arrays[zr];
                      if (en.length) {
                        var on = h.getComponentMethod(zr, "drawOne");
                        if (on !== f.noop)
                          for (var Ir = 0; Ir < en.length; Ir++)
                            on(Se, en[Ir]);
                        else {
                          var Ae = h.getComponentMethod(zr, "draw");
                          if (Ae === f.noop)
                            throw new Error("cannot draw components: " + zr);
                          Ae(Se);
                        }
                      }
                    }
                    Cr.push(b.previousPromises), lr.style && Cr.push(O.doTraceStyle), (lr.colorbars || or.colorbars) && Cr.push(O.doColorBars), or.legend && Cr.push(O.doLegend), or.layoutstyle && Cr.push(O.layoutStyles), or.axrange && Ge(Cr), or.ticks && Cr.push(O.doTicksRelayout), or.modebar && Cr.push(O.doModeBar), or.camera && Cr.push(O.doCamera), Cr.push(X);
                  }
                  Cr.push(b.rehover, b.redrag, b.reselect), tt = f.syncOrAsync(Cr, Se), (!tt || !tt.then) && (tt = Promise.resolve(Se));
                }
                return tt.then(function() {
                  return Se.emit("plotly_react", {
                    data: Pe,
                    layout: Ye
                  }), Se;
                });
              }
              function Ct(Se, Pe, Ye, Ze, rt, tt) {
                var Ft = Pe.length === Ye.length;
                if (!rt && !Ft)
                  return {
                    fullReplot: !0,
                    calc: !0
                  };
                var Dt = $.traceFlags();
                Dt.arrays = {}, Dt.nChanges = 0, Dt.nChangesAnim = 0;
                var dt, st;
                function Nt(Or) {
                  var Fr = i.getTraceValObject(st, Or);
                  return !st._module.animatable && Fr.anim && (Fr.anim = !1), Fr;
                }
                var ar = {
                  getValObject: Nt,
                  flags: Dt,
                  immutable: Ze,
                  transition: rt,
                  newDataRevision: tt,
                  gd: Se
                }, ur = {};
                for (dt = 0; dt < Pe.length; dt++)
                  if (Ye[dt]) {
                    if (st = Ye[dt]._fullInput, b.hasMakesDataTransform(st) && (st = Ye[dt]), ur[st.uid])
                      continue;
                    ur[st.uid] = 1, nr(Pe[dt]._fullInput, st, [], ar);
                  }
                return (Dt.calc || Dt.plot) && (Dt.fullReplot = !0), rt && Dt.nChanges && Dt.nChangesAnim && (Dt.anim = Dt.nChanges === Dt.nChangesAnim && Ft ? "all" : "some"), Dt;
              }
              function jt(Se, Pe, Ye, Ze, rt) {
                var tt = $.layoutFlags();
                tt.arrays = {}, tt.rangesAltered = {}, tt.nChanges = 0, tt.nChangesAnim = 0;
                function Ft(dt) {
                  return i.getLayoutValObject(Ye, dt);
                }
                var Dt = {
                  getValObject: Ft,
                  flags: tt,
                  immutable: Ze,
                  transition: rt,
                  gd: Se
                };
                return nr(Pe, Ye, [], Dt), (tt.plot || tt.calc) && (tt.layoutReplot = !0), rt && tt.nChanges && tt.nChangesAnim && (tt.anim = tt.nChanges === tt.nChangesAnim ? "all" : "some"), tt;
              }
              function nr(Se, Pe, Ye, Ze) {
                var rt, tt, Ft, Dt = Ze.getValObject, dt = Ze.flags, st = Ze.immutable, Nt = Ze.inArray, ar = Ze.arrayIndex;
                function ur() {
                  var ue = rt.editType;
                  if (Nt && ue.indexOf("arraydraw") !== -1) {
                    f.pushUnique(dt.arrays[Nt], ar);
                    return;
                  }
                  $.update(dt, rt), ue !== "none" && dt.nChanges++, Ze.transition && rt.anim && dt.nChangesAnim++, (Ve.test(Ft) || Je.test(Ft)) && (dt.rangesAltered[Ye[0]] = 1), et.test(Ft) && u(Pe, "_inputDomain").set(null), tt === "datarevision" && (dt.newDataRevision = 1);
                }
                function Or(ue) {
                  return ue.valType === "data_array" || ue.arrayOk;
                }
                for (tt in Se) {
                  if (dt.calc && !Ze.transition)
                    return;
                  var Fr = Se[tt], br = Pe[tt], or = Ye.concat(tt);
                  if (Ft = or.join("."), !(tt.charAt(0) === "_" || typeof Fr == "function" || Fr === br)) {
                    if ((tt === "tick0" || tt === "dtick") && Ye[0] !== "geo") {
                      var Rr = Pe.tickmode;
                      if (Rr === "auto" || Rr === "array" || !Rr)
                        continue;
                    }
                    if (!(tt === "range" && Pe.autorange) && !((tt === "zmin" || tt === "zmax") && Pe.type === "contourcarpet") && (rt = Dt(or), !!rt && !(rt._compareAsJSON && JSON.stringify(Fr) === JSON.stringify(br)))) {
                      var lr = rt.valType, Tr, Gr = Or(rt), Dr = Array.isArray(Fr), gr = Array.isArray(br);
                      if (Dr && gr) {
                        var Er = "_input_" + tt, Cr = Se[Er], zr = Pe[Er];
                        if (Array.isArray(Cr) && Cr === zr)
                          continue;
                      }
                      if (br === void 0)
                        Gr && Dr ? dt.calc = !0 : ur();
                      else if (rt._isLinkedToArray) {
                        var en = [], on = !1;
                        Nt || (dt.arrays[tt] = en);
                        var Ir = Math.min(Fr.length, br.length), Ae = Math.max(Fr.length, br.length);
                        if (Ir !== Ae)
                          if (rt.editType === "arraydraw")
                            on = !0;
                          else {
                            ur();
                            continue;
                          }
                        for (Tr = 0; Tr < Ir; Tr++)
                          nr(
                            Fr[Tr],
                            br[Tr],
                            or.concat(Tr),
                            // add array indices, but not if we're already in an array
                            f.extendFlat({
                              inArray: tt,
                              arrayIndex: Tr
                            }, Ze)
                          );
                        if (on)
                          for (Tr = Ir; Tr < Ae; Tr++)
                            en.push(Tr);
                      } else
                        !lr && f.isPlainObject(Fr) ? nr(Fr, br, or, Ze) : Gr ? Dr && gr ? (st && (dt.calc = !0), (st || Ze.newDataRevision) && ur()) : Dr !== gr ? dt.calc = !0 : ur() : Dr && gr ? (Fr.length !== br.length || String(Fr) !== String(br)) && ur() : ur();
                    }
                  }
                }
                for (tt in Pe)
                  if (!(tt in Se || tt.charAt(0) === "_" || typeof Pe[tt] == "function"))
                    if (rt = Dt(Ye.concat(tt)), Or(rt) && Array.isArray(Pe[tt])) {
                      dt.calc = !0;
                      return;
                    } else
                      ur();
              }
              function Jt(Se, Pe) {
                var Ye;
                for (Ye in Se)
                  if (Ye.charAt(0) !== "_") {
                    var Ze = Se[Ye], rt = Pe[Ye];
                    if (Ze !== rt)
                      if (f.isPlainObject(Ze) && f.isPlainObject(rt)) {
                        if (Jt(Ze, rt))
                          return !0;
                      } else if (Array.isArray(Ze) && Array.isArray(rt)) {
                        if (Ze.length !== rt.length)
                          return !0;
                        for (var tt = 0; tt < Ze.length; tt++)
                          if (Ze[tt] !== rt[tt])
                            if (f.isPlainObject(Ze[tt]) && f.isPlainObject(rt[tt])) {
                              if (Jt(Ze[tt], rt[tt]))
                                return !0;
                            } else
                              return !0;
                      } else
                        return !0;
                  }
              }
              function Wt(Se, Pe, Ye) {
                if (Se = f.getGraphDiv(Se), !f.isPlotDiv(Se))
                  throw new Error("This element is not a Plotly plot: " + Se + ". It's likely that you've failed to create a plot before animating it. For more details, see https://plotly.com/javascript/animations/");
                var Ze = Se._transitionData;
                Ze._frameQueue || (Ze._frameQueue = []), Ye = b.supplyAnimationDefaults(Ye);
                var rt = Ye.transition, tt = Ye.frame;
                Ze._frameWaitingCnt === void 0 && (Ze._frameWaitingCnt = 0);
                function Ft(st) {
                  return Array.isArray(rt) ? st >= rt.length ? rt[0] : rt[st] : rt;
                }
                function Dt(st) {
                  return Array.isArray(tt) ? st >= tt.length ? tt[0] : tt[st] : tt;
                }
                function dt(st, Nt) {
                  var ar = 0;
                  return function() {
                    if (st && ++ar === Nt)
                      return st();
                  };
                }
                return new Promise(function(st, Nt) {
                  function ar() {
                    if (Ze._frameQueue.length !== 0) {
                      for (; Ze._frameQueue.length; ) {
                        var Ir = Ze._frameQueue.pop();
                        Ir.onInterrupt && Ir.onInterrupt();
                      }
                      Se.emit("plotly_animationinterrupted", []);
                    }
                  }
                  function ur(Ir) {
                    if (Ir.length !== 0) {
                      for (var Ae = 0; Ae < Ir.length; Ae++) {
                        var ue;
                        Ir[Ae].type === "byname" ? ue = b.computeFrame(Se, Ir[Ae].name) : ue = Ir[Ae].data;
                        var ft = Dt(Ae), nt = Ft(Ae);
                        nt.duration = Math.min(nt.duration, ft.duration);
                        var mt = {
                          frame: ue,
                          name: Ir[Ae].name,
                          frameOpts: ft,
                          transitionOpts: nt
                        };
                        Ae === Ir.length - 1 && (mt.onComplete = dt(st, 2), mt.onInterrupt = Nt), Ze._frameQueue.push(mt);
                      }
                      Ye.mode === "immediate" && (Ze._lastFrameAt = -1 / 0), Ze._animationRaf || br();
                    }
                  }
                  function Or() {
                    Se.emit("plotly_animated"), window.cancelAnimationFrame(Ze._animationRaf), Ze._animationRaf = null;
                  }
                  function Fr() {
                    Ze._currentFrame && Ze._currentFrame.onComplete && Ze._currentFrame.onComplete();
                    var Ir = Ze._currentFrame = Ze._frameQueue.shift();
                    if (Ir) {
                      var Ae = Ir.name ? Ir.name.toString() : null;
                      Se._fullLayout._currentFrame = Ae, Ze._lastFrameAt = Date.now(), Ze._timeToNext = Ir.frameOpts.duration, b.transition(Se, Ir.frame.data, Ir.frame.layout, I.coerceTraceIndices(Se, Ir.frame.traces), Ir.frameOpts, Ir.transitionOpts).then(function() {
                        Ir.onComplete && Ir.onComplete();
                      }), Se.emit("plotly_animatingframe", {
                        name: Ae,
                        frame: Ir.frame,
                        animation: {
                          frame: Ir.frameOpts,
                          transition: Ir.transitionOpts
                        }
                      });
                    } else
                      Or();
                  }
                  function br() {
                    Se.emit("plotly_animating"), Ze._lastFrameAt = -1 / 0, Ze._timeToNext = 0, Ze._runningTransitions = 0, Ze._currentFrame = null;
                    var Ir = function() {
                      Ze._animationRaf = window.requestAnimationFrame(Ir), Date.now() - Ze._lastFrameAt > Ze._timeToNext && Fr();
                    };
                    Ir();
                  }
                  var or = 0;
                  function Rr(Ir) {
                    return Array.isArray(rt) ? or >= rt.length ? Ir.transitionOpts = rt[or] : Ir.transitionOpts = rt[0] : Ir.transitionOpts = rt, or++, Ir;
                  }
                  var lr, Tr, Gr = [], Dr = Pe == null, gr = Array.isArray(Pe), Er = !Dr && !gr && f.isPlainObject(Pe);
                  if (Er)
                    Gr.push({
                      type: "object",
                      data: Rr(f.extendFlat({}, Pe))
                    });
                  else if (Dr || ["string", "number"].indexOf(typeof Pe) !== -1)
                    for (lr = 0; lr < Ze._frames.length; lr++)
                      Tr = Ze._frames[lr], Tr && (Dr || String(Tr.group) === String(Pe)) && Gr.push({
                        type: "byname",
                        name: String(Tr.name),
                        data: Rr({
                          name: Tr.name
                        })
                      });
                  else if (gr)
                    for (lr = 0; lr < Pe.length; lr++) {
                      var Cr = Pe[lr];
                      ["number", "string"].indexOf(typeof Cr) !== -1 ? (Cr = String(Cr), Gr.push({
                        type: "byname",
                        name: Cr,
                        data: Rr({
                          name: Cr
                        })
                      })) : f.isPlainObject(Cr) && Gr.push({
                        type: "object",
                        data: Rr(f.extendFlat({}, Cr))
                      });
                    }
                  for (lr = 0; lr < Gr.length; lr++)
                    if (Tr = Gr[lr], Tr.type === "byname" && !Ze._frameHash[Tr.data.name]) {
                      f.warn('animate failure: frame not found: "' + Tr.data.name + '"'), Nt();
                      return;
                    }
                  ["next", "immediate"].indexOf(Ye.mode) !== -1 && ar(), Ye.direction === "reverse" && Gr.reverse();
                  var zr = Se._fullLayout._currentFrame;
                  if (zr && Ye.fromcurrent) {
                    var en = -1;
                    for (lr = 0; lr < Gr.length; lr++)
                      if (Tr = Gr[lr], Tr.type === "byname" && Tr.name === zr) {
                        en = lr;
                        break;
                      }
                    if (en > 0 && en < Gr.length - 1) {
                      var on = [];
                      for (lr = 0; lr < Gr.length; lr++)
                        Tr = Gr[lr], (Gr[lr].type !== "byname" || lr > en) && on.push(Tr);
                      Gr = on;
                    }
                  }
                  Gr.length > 0 ? ur(Gr) : (Se.emit("plotly_animated"), st());
                });
              }
              function qe(Se, Pe, Ye) {
                if (Se = f.getGraphDiv(Se), Pe == null)
                  return Promise.resolve();
                if (!f.isPlotDiv(Se))
                  throw new Error("This element is not a Plotly plot: " + Se + ". It's likely that you've failed to create a plot before adding frames. For more details, see https://plotly.com/javascript/animations/");
                var Ze, rt, tt, Ft, Dt = Se._transitionData._frames, dt = Se._transitionData._frameHash;
                if (!Array.isArray(Pe))
                  throw new Error("addFrames failure: frameList must be an Array of frame definitions" + Pe);
                var st = Dt.length + Pe.length * 2, Nt = [], ar = {};
                for (Ze = Pe.length - 1; Ze >= 0; Ze--)
                  if (f.isPlainObject(Pe[Ze])) {
                    var ur = Pe[Ze].name, Or = (dt[ur] || ar[ur] || {}).name, Fr = Pe[Ze].name, br = dt[Or] || ar[Or];
                    Or && Fr && typeof Fr == "number" && br && ne < q && (ne++, f.warn('addFrames: overwriting frame "' + (dt[Or] || ar[Or]).name + '" with a frame whose name of type "number" also equates to "' + Or + '". This is valid but may potentially lead to unexpected behavior since all plotly.js frame names are stored internally as strings.'), ne === q && f.warn("addFrames: This API call has yielded too many of these warnings. For the rest of this call, further warnings about numeric frame names will be suppressed.")), ar[ur] = {
                      name: ur
                    }, Nt.push({
                      frame: b.supplyFrameDefaults(Pe[Ze]),
                      index: Ye && Ye[Ze] !== void 0 && Ye[Ze] !== null ? Ye[Ze] : st + Ze
                    });
                  }
                Nt.sort(function(Er, Cr) {
                  return Er.index > Cr.index ? -1 : Er.index < Cr.index ? 1 : 0;
                });
                var or = [], Rr = [], lr = Dt.length;
                for (Ze = Nt.length - 1; Ze >= 0; Ze--) {
                  if (rt = Nt[Ze].frame, typeof rt.name == "number" && f.warn("Warning: addFrames accepts frames with numeric names, but the numbers areimplicitly cast to strings"), !rt.name)
                    for (; dt[rt.name = "frame " + Se._transitionData._counter++]; )
                      ;
                  if (dt[rt.name]) {
                    for (tt = 0; tt < Dt.length && (Dt[tt] || {}).name !== rt.name; tt++)
                      ;
                    or.push({
                      type: "replace",
                      index: tt,
                      value: rt
                    }), Rr.unshift({
                      type: "replace",
                      index: tt,
                      value: Dt[tt]
                    });
                  } else
                    Ft = Math.max(0, Math.min(Nt[Ze].index, lr)), or.push({
                      type: "insert",
                      index: Ft,
                      value: rt
                    }), Rr.unshift({
                      type: "delete",
                      index: Ft
                    }), lr++;
                }
                var Tr = b.modifyFrames, Gr = b.modifyFrames, Dr = [Se, Rr], gr = [Se, or];
                return d && d.add(Se, Tr, Dr, Gr, gr), b.modifyFrames(Se, or);
              }
              function Ue(Se, Pe) {
                if (Se = f.getGraphDiv(Se), !f.isPlotDiv(Se))
                  throw new Error("This element is not a Plotly plot: " + Se);
                var Ye, Ze, rt = Se._transitionData._frames, tt = [], Ft = [];
                if (!Pe)
                  for (Pe = [], Ye = 0; Ye < rt.length; Ye++)
                    Pe.push(Ye);
                for (Pe = Pe.slice(), Pe.sort(), Ye = Pe.length - 1; Ye >= 0; Ye--)
                  Ze = Pe[Ye], tt.push({
                    type: "delete",
                    index: Ze
                  }), Ft.unshift({
                    type: "insert",
                    index: Ze,
                    value: rt[Ze]
                  });
                var Dt = b.modifyFrames, dt = b.modifyFrames, st = [Se, Ft], Nt = [Se, tt];
                return d && d.add(Se, Dt, st, dt, Nt), b.modifyFrames(Se, tt);
              }
              function We(Se) {
                Se = f.getGraphDiv(Se);
                var Pe = Se._fullLayout || {}, Ye = Se._fullData || [];
                return b.cleanPlot([], {}, Ye, Pe), b.purge(Se), c.purge(Se), Pe._container && Pe._container.remove(), delete Se._context, Se;
              }
              function je(Se) {
                var Pe = Se._fullLayout, Ye = Se.getBoundingClientRect();
                if (!f.equalDomRects(Ye, Pe._lastBBox)) {
                  var Ze = Pe._invTransform = f.inverseTransformMatrix(f.getFullTransformMatrix(Se));
                  Pe._invScaleX = Math.sqrt(Ze[0][0] * Ze[0][0] + Ze[0][1] * Ze[0][1] + Ze[0][2] * Ze[0][2]), Pe._invScaleY = Math.sqrt(Ze[1][0] * Ze[1][0] + Ze[1][1] * Ze[1][1] + Ze[1][2] * Ze[1][2]), Pe._lastBBox = Ye;
                }
              }
              function lt(Se) {
                var Pe = a.select(Se), Ye = Se._fullLayout;
                if (Ye._calcInverseTransform = je, Ye._calcInverseTransform(Se), Ye._container = Pe.selectAll(".plot-container").data([0]), Ye._container.enter().insert("div", ":first-child").classed("plot-container", !0).classed("plotly", !0), Ye._paperdiv = Ye._container.selectAll(".svg-container").data([0]), Ye._paperdiv.enter().append("div").classed("user-select-none", !0).classed("svg-container", !0).style("position", "relative"), Ye._glcontainer = Ye._paperdiv.selectAll(".gl-container").data([{}]), Ye._glcontainer.enter().append("div").classed("gl-container", !0), Ye._paperdiv.selectAll(".main-svg").remove(), Ye._paperdiv.select(".modebar-container").remove(), Ye._paper = Ye._paperdiv.insert("svg", ":first-child").classed("main-svg", !0), Ye._toppaper = Ye._paperdiv.append("svg").classed("main-svg", !0), Ye._modebardiv = Ye._paperdiv.append("div"), delete Ye._modeBar, Ye._hoverpaper = Ye._paperdiv.append("svg").classed("main-svg", !0), !Ye._uid) {
                  var Ze = {};
                  a.selectAll("defs").each(function() {
                    this.id && (Ze[this.id.split("-")[1]] = 1);
                  }), Ye._uid = f.randstr(Ze);
                }
                Ye._paperdiv.selectAll(".main-svg").attr(k.svgAttrs), Ye._defs = Ye._paper.append("defs").attr("id", "defs-" + Ye._uid), Ye._clips = Ye._defs.append("g").classed("clips", !0), Ye._topdefs = Ye._toppaper.append("defs").attr("id", "topdefs-" + Ye._uid), Ye._topclips = Ye._topdefs.append("g").classed("clips", !0), Ye._bgLayer = Ye._paper.append("g").classed("bglayer", !0), Ye._draggers = Ye._paper.append("g").classed("draglayer", !0);
                var rt = Ye._paper.append("g").classed("layer-below", !0);
                Ye._imageLowerLayer = rt.append("g").classed("imagelayer", !0), Ye._shapeLowerLayer = rt.append("g").classed("shapelayer", !0), Ye._cartesianlayer = Ye._paper.append("g").classed("cartesianlayer", !0), Ye._polarlayer = Ye._paper.append("g").classed("polarlayer", !0), Ye._smithlayer = Ye._paper.append("g").classed("smithlayer", !0), Ye._ternarylayer = Ye._paper.append("g").classed("ternarylayer", !0), Ye._geolayer = Ye._paper.append("g").classed("geolayer", !0), Ye._funnelarealayer = Ye._paper.append("g").classed("funnelarealayer", !0), Ye._pielayer = Ye._paper.append("g").classed("pielayer", !0), Ye._iciclelayer = Ye._paper.append("g").classed("iciclelayer", !0), Ye._treemaplayer = Ye._paper.append("g").classed("treemaplayer", !0), Ye._sunburstlayer = Ye._paper.append("g").classed("sunburstlayer", !0), Ye._indicatorlayer = Ye._toppaper.append("g").classed("indicatorlayer", !0), Ye._glimages = Ye._paper.append("g").classed("glimages", !0);
                var tt = Ye._toppaper.append("g").classed("layer-above", !0);
                Ye._imageUpperLayer = tt.append("g").classed("imagelayer", !0), Ye._shapeUpperLayer = tt.append("g").classed("shapelayer", !0), Ye._selectionLayer = Ye._toppaper.append("g").classed("selectionlayer", !0), Ye._infolayer = Ye._toppaper.append("g").classed("infolayer", !0), Ye._menulayer = Ye._toppaper.append("g").classed("menulayer", !0), Ye._zoomlayer = Ye._toppaper.append("g").classed("zoomlayer", !0), Ye._hoverlayer = Ye._hoverpaper.append("g").classed("hoverlayer", !0), Ye._modebardiv.classed("modebar-container", !0).style("position", "absolute").style("top", "0px").style("right", "0px"), Se.emit("plotly_framework");
              }
              L.animate = Wt, L.addFrames = qe, L.deleteFrames = Ue, L.addTraces = De, L.deleteTraces = Z, L.extendTraces = xe, L.moveTraces = ee, L.prependTraces = Me, L.newPlot = W, L._doPlot = B, L.purge = We, L.react = Ut, L.redraw = J, L.relayout = we, L.restyle = ie, L.setPlotConfig = U, L.update = ze, L._guiRelayout = Oe(we), L._guiRestyle = Oe(ie), L._guiUpdate = Oe(ze), L._storeDirectGUIEdit = j;
            }
          ),
          /***/
          556: (
            /***/
            function(M) {
              var L = {
                staticPlot: {
                  valType: "boolean",
                  dflt: !1
                },
                typesetMath: {
                  valType: "boolean",
                  dflt: !0
                },
                plotlyServerURL: {
                  valType: "string",
                  dflt: ""
                },
                editable: {
                  valType: "boolean",
                  dflt: !1
                },
                edits: {
                  annotationPosition: {
                    valType: "boolean",
                    dflt: !1
                  },
                  annotationTail: {
                    valType: "boolean",
                    dflt: !1
                  },
                  annotationText: {
                    valType: "boolean",
                    dflt: !1
                  },
                  axisTitleText: {
                    valType: "boolean",
                    dflt: !1
                  },
                  colorbarPosition: {
                    valType: "boolean",
                    dflt: !1
                  },
                  colorbarTitleText: {
                    valType: "boolean",
                    dflt: !1
                  },
                  legendPosition: {
                    valType: "boolean",
                    dflt: !1
                  },
                  legendText: {
                    valType: "boolean",
                    dflt: !1
                  },
                  shapePosition: {
                    valType: "boolean",
                    dflt: !1
                  },
                  titleText: {
                    valType: "boolean",
                    dflt: !1
                  }
                },
                editSelection: {
                  valType: "boolean",
                  dflt: !0
                },
                autosizable: {
                  valType: "boolean",
                  dflt: !1
                },
                responsive: {
                  valType: "boolean",
                  dflt: !1
                },
                fillFrame: {
                  valType: "boolean",
                  dflt: !1
                },
                frameMargins: {
                  valType: "number",
                  dflt: 0,
                  min: 0,
                  max: 0.5
                },
                scrollZoom: {
                  valType: "flaglist",
                  flags: ["cartesian", "gl3d", "geo", "mapbox"],
                  extras: [!0, !1],
                  dflt: "gl3d+geo+mapbox"
                },
                doubleClick: {
                  valType: "enumerated",
                  values: [!1, "reset", "autosize", "reset+autosize"],
                  dflt: "reset+autosize"
                },
                doubleClickDelay: {
                  valType: "number",
                  dflt: 300,
                  min: 0
                },
                showAxisDragHandles: {
                  valType: "boolean",
                  dflt: !0
                },
                showAxisRangeEntryBoxes: {
                  valType: "boolean",
                  dflt: !0
                },
                showTips: {
                  valType: "boolean",
                  dflt: !0
                },
                showLink: {
                  valType: "boolean",
                  dflt: !1
                },
                linkText: {
                  valType: "string",
                  dflt: "Edit chart",
                  noBlank: !0
                },
                sendData: {
                  valType: "boolean",
                  dflt: !0
                },
                showSources: {
                  valType: "any",
                  dflt: !1
                },
                displayModeBar: {
                  valType: "enumerated",
                  values: ["hover", !0, !1],
                  dflt: "hover"
                },
                showSendToCloud: {
                  valType: "boolean",
                  dflt: !1
                },
                showEditInChartStudio: {
                  valType: "boolean",
                  dflt: !1
                },
                modeBarButtonsToRemove: {
                  valType: "any",
                  dflt: []
                },
                modeBarButtonsToAdd: {
                  valType: "any",
                  dflt: []
                },
                modeBarButtons: {
                  valType: "any",
                  dflt: !1
                },
                toImageButtonOptions: {
                  valType: "any",
                  dflt: {}
                },
                displaylogo: {
                  valType: "boolean",
                  dflt: !0
                },
                watermark: {
                  valType: "boolean",
                  dflt: !1
                },
                plotGlPixelRatio: {
                  valType: "number",
                  dflt: 2,
                  min: 1,
                  max: 4
                },
                setBackground: {
                  valType: "any",
                  dflt: "transparent"
                },
                topojsonURL: {
                  valType: "string",
                  noBlank: !0,
                  dflt: "https://cdn.plot.ly/"
                },
                mapboxAccessToken: {
                  valType: "string",
                  dflt: null
                },
                logging: {
                  valType: "integer",
                  min: 0,
                  max: 2,
                  dflt: 1
                },
                notifyOnLogging: {
                  valType: "integer",
                  min: 0,
                  max: 2,
                  dflt: 0
                },
                queueLength: {
                  valType: "integer",
                  min: 0,
                  dflt: 0
                },
                globalTransforms: {
                  valType: "any",
                  dflt: []
                },
                locale: {
                  valType: "string",
                  dflt: "en-US"
                },
                locales: {
                  valType: "any",
                  dflt: {}
                }
              }, r = {};
              function a(p, l) {
                for (var f in p) {
                  var u = p[f];
                  u.valType ? l[f] = u.dflt : (l[f] || (l[f] = {}), a(u, l[f]));
                }
              }
              a(L, r), M.exports = {
                configAttributes: L,
                dfltConfig: r
              };
            }
          ),
          /***/
          3060: (
            /***/
            function(M, L, r) {
              var a = r(4040), p = r(3400), l = r(5464), f = r(4859), u = r(6672), c = r(5656), d = r(556).configAttributes, h = r(7824), i = p.extendDeepAll, b = p.isPlainObject, x = p.isArrayOrTypedArray, D = p.nestedProperty, C = p.valObjectMeta, w = "_isSubplotObj", S = "_isLinkedToArray", T = "_arrayAttrRegexps", k = "_deprecated", A = [w, S, T, k];
              L.IS_SUBPLOT_OBJ = w, L.IS_LINKED_TO_ARRAY = S, L.DEPRECATED = k, L.UNDERSCORE_ATTRS = A, L.get = function() {
                var me = {};
                a.allTypes.forEach(function(W) {
                  me[W] = O(W);
                });
                var J = {};
                return Object.keys(a.transformsRegistry).forEach(function(W) {
                  J[W] = Y(W);
                }), {
                  defs: {
                    valObjects: C,
                    metaKeys: A.concat(["description", "role", "editType", "impliedEdits"]),
                    editType: {
                      traces: h.traces,
                      layout: h.layout
                    },
                    impliedEdits: {}
                  },
                  traces: me,
                  layout: $(),
                  transforms: J,
                  frames: ne(),
                  animation: q(c),
                  config: q(d)
                };
              }, L.crawl = function(me, J, W, ae) {
                var oe = W || 0;
                ae = ae || "", Object.keys(me).forEach(function(ve) {
                  var fe = me[ve];
                  if (A.indexOf(ve) === -1) {
                    var ye = (ae ? ae + "." : "") + ve;
                    J(fe, ve, me, oe, ye), !L.isValObject(fe) && b(fe) && ve !== "impliedEdits" && L.crawl(fe, J, oe + 1, ye);
                  }
                });
              }, L.isValObject = function(me) {
                return me && me.valType !== void 0;
              }, L.findArrayAttributes = function(me) {
                var J = [], W = [], ae = [], oe, ve;
                function fe(Me, De, Z, ee) {
                  W = W.slice(0, ee).concat([De]), ae = ae.slice(0, ee).concat([Me && Me._isLinkedToArray]);
                  var ie = Me && (Me.valType === "data_array" || Me.arrayOk === !0) && !(W[ee - 1] === "colorbar" && (De === "ticktext" || De === "tickvals"));
                  ie && ye(oe, 0, "");
                }
                function ye(Me, De, Z) {
                  var ee = Me[W[De]], ie = Z + W[De];
                  if (De === W.length - 1)
                    x(ee) && J.push(ve + ie);
                  else if (ae[De]) {
                    if (Array.isArray(ee))
                      for (var G = 0; G < ee.length; G++)
                        b(ee[G]) && ye(ee[G], De + 1, ie + "[" + G + "].");
                  } else
                    b(ee) && ye(ee, De + 1, ie + ".");
                }
                oe = me, ve = "", L.crawl(l, fe), me._module && me._module.attributes && L.crawl(me._module.attributes, fe);
                var Ce = me.transforms;
                if (Ce)
                  for (var Re = 0; Re < Ce.length; Re++) {
                    var Be = Ce[Re], xe = Be._module;
                    xe && (ve = "transforms[" + Re + "].", oe = Be, L.crawl(xe.attributes, fe));
                  }
                return J;
              }, L.getTraceValObject = function(me, J) {
                var W = J[0], ae = 1, oe, ve;
                if (W === "transforms") {
                  if (J.length === 1)
                    return l.transforms;
                  var fe = me.transforms;
                  if (!Array.isArray(fe) || !fe.length)
                    return !1;
                  var ye = J[1];
                  if (!I(ye) || ye >= fe.length)
                    return !1;
                  oe = (a.transformsRegistry[fe[ye].type] || {}).attributes, ve = oe && oe[J[2]], ae = 3;
                } else {
                  var Ce = me._module;
                  if (Ce || (Ce = (a.modules[me.type || l.type.dflt] || {})._module), !Ce)
                    return !1;
                  if (oe = Ce.attributes, ve = oe && oe[W], !ve) {
                    var Re = Ce.basePlotModule;
                    Re && Re.attributes && (ve = Re.attributes[W]);
                  }
                  ve || (ve = l[W]);
                }
                return g(ve, J, ae);
              }, L.getLayoutValObject = function(me, J) {
                var W = R(me, J[0]);
                return g(W, J, 1);
              };
              function R(me, J) {
                var W, ae, oe, ve, fe = me._basePlotModules;
                if (fe) {
                  var ye;
                  for (W = 0; W < fe.length; W++) {
                    if (oe = fe[W], oe.attrRegex && oe.attrRegex.test(J)) {
                      if (oe.layoutAttrOverrides)
                        return oe.layoutAttrOverrides;
                      !ye && oe.layoutAttributes && (ye = oe.layoutAttributes);
                    }
                    var Ce = oe.baseLayoutAttrOverrides;
                    if (Ce && J in Ce)
                      return Ce[J];
                  }
                  if (ye)
                    return ye;
                }
                var Re = me._modules;
                if (Re) {
                  for (W = 0; W < Re.length; W++)
                    if (ve = Re[W].layoutAttributes, ve && J in ve)
                      return ve[J];
                }
                for (ae in a.componentsRegistry) {
                  if (oe = a.componentsRegistry[ae], oe.name === "colorscale" && J.indexOf("coloraxis") === 0)
                    return oe.layoutAttributes[J];
                  if (!oe.schema && J === oe.name)
                    return oe.layoutAttributes;
                }
                return J in f ? f[J] : !1;
              }
              function g(me, J, W) {
                if (!me)
                  return !1;
                if (me._isLinkedToArray) {
                  if (I(J[W]))
                    W++;
                  else if (W < J.length)
                    return !1;
                }
                for (; W < J.length; W++) {
                  var ae = me[J[W]];
                  if (b(ae))
                    me = ae;
                  else
                    break;
                  if (W === J.length - 1)
                    break;
                  if (me._isLinkedToArray) {
                    if (W++, !I(J[W]))
                      return !1;
                  } else if (me.valType === "info_array") {
                    W++;
                    var oe = J[W];
                    if (!I(oe))
                      return !1;
                    var ve = me.items;
                    if (Array.isArray(ve)) {
                      if (oe >= ve.length)
                        return !1;
                      if (me.dimensions === 2) {
                        if (W++, J.length === W)
                          return me;
                        var fe = J[W];
                        if (!I(fe))
                          return !1;
                        me = ve[oe][fe];
                      } else
                        me = ve[oe];
                    } else
                      me = ve;
                  }
                }
                return me;
              }
              function I(me) {
                return me === Math.round(me) && me >= 0;
              }
              function O(me) {
                var J, W;
                J = a.modules[me]._module, W = J.basePlotModule;
                var ae = {};
                ae.type = null;
                var oe = i({}, l), ve = i({}, J.attributes);
                L.crawl(ve, function(Ce, Re, Be, xe, Me) {
                  D(oe, Me).set(void 0), Ce === void 0 && D(ve, Me).set(void 0);
                }), i(ae, oe), a.traceIs(me, "noOpacity") && delete ae.opacity, a.traceIs(me, "showLegend") || (delete ae.showlegend, delete ae.legendgroup), a.traceIs(me, "noHover") && (delete ae.hoverinfo, delete ae.hoverlabel), J.selectPoints || delete ae.selectedpoints, i(ae, ve), W.attributes && i(ae, W.attributes), ae.type = me;
                var fe = {
                  meta: J.meta || {},
                  categories: J.categories || {},
                  animatable: !!J.animatable,
                  type: me,
                  attributes: q(ae)
                };
                if (J.layoutAttributes) {
                  var ye = {};
                  i(ye, J.layoutAttributes), fe.layoutAttributes = q(ye);
                }
                return J.animatable || L.crawl(fe, function(Ce) {
                  L.isValObject(Ce) && "anim" in Ce && delete Ce.anim;
                }), fe;
              }
              function $() {
                var me = {}, J, W;
                i(me, f);
                for (J in a.subplotsRegistry)
                  if (W = a.subplotsRegistry[J], !!W.layoutAttributes)
                    if (Array.isArray(W.attr))
                      for (var ae = 0; ae < W.attr.length; ae++)
                        te(me, W, W.attr[ae]);
                    else {
                      var oe = W.attr === "subplot" ? W.name : W.attr;
                      te(me, W, oe);
                    }
                for (J in a.componentsRegistry) {
                  W = a.componentsRegistry[J];
                  var ve = W.schema;
                  if (ve && (ve.subplots || ve.layout)) {
                    var fe = ve.subplots;
                    if (fe && fe.xaxis && !fe.yaxis)
                      for (var ye in fe.xaxis)
                        delete me.yaxis[ye];
                    delete me.xaxis.shift, delete me.xaxis.autoshift;
                  } else
                    W.name === "colorscale" ? i(me, W.layoutAttributes) : W.layoutAttributes && se(me, W.layoutAttributes, W.name);
                }
                return {
                  layoutAttributes: q(me)
                };
              }
              function Y(me) {
                var J = a.transformsRegistry[me], W = i({}, J.attributes);
                return Object.keys(a.componentsRegistry).forEach(function(ae) {
                  var oe = a.componentsRegistry[ae];
                  oe.schema && oe.schema.transforms && oe.schema.transforms[me] && Object.keys(oe.schema.transforms[me]).forEach(function(ve) {
                    se(W, oe.schema.transforms[me][ve], ve);
                  });
                }), {
                  attributes: q(W)
                };
              }
              function ne() {
                var me = {
                  frames: i({}, u)
                };
                return q(me), me.frames;
              }
              function q(me) {
                return B(me), X(me), U(me), me;
              }
              function B(me) {
                function J(ae) {
                  return {
                    valType: "string",
                    editType: "none"
                  };
                }
                function W(ae, oe, ve) {
                  L.isValObject(ae) ? (ae.arrayOk === !0 || ae.valType === "data_array") && (ve[oe + "src"] = J()) : b(ae) && (ae.role = "object");
                }
                L.crawl(me, W);
              }
              function X(me) {
                function J(W, ae, oe) {
                  if (W) {
                    var ve = W[S];
                    ve && (delete W[S], oe[ae] = {
                      items: {}
                    }, oe[ae].items[ve] = W, oe[ae].role = "object");
                  }
                }
                L.crawl(me, J);
              }
              function U(me) {
                function J(W) {
                  for (var ae in W)
                    if (b(W[ae]))
                      J(W[ae]);
                    else if (Array.isArray(W[ae]))
                      for (var oe = 0; oe < W[ae].length; oe++)
                        J(W[ae][oe]);
                    else
                      W[ae] instanceof RegExp && (W[ae] = W[ae].toString());
                }
                J(me);
              }
              function te(me, J, W) {
                var ae = D(me, W), oe = i({}, J.layoutAttributes);
                oe[w] = !0, ae.set(oe);
              }
              function se(me, J, W) {
                var ae = D(me, W);
                ae.set(i(ae.get() || {}, J));
              }
            }
          ),
          /***/
          1780: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(5464), l = "templateitemname", f = {
                name: {
                  valType: "string",
                  editType: "none"
                }
              };
              f[l] = {
                valType: "string",
                editType: "calc"
              }, L.templatedArray = function(d, h) {
                return h._isLinkedToArray = d, h.name = f.name, h[l] = f[l], h;
              }, L.traceTemplater = function(d) {
                var h = {}, i, b;
                for (i in d)
                  b = d[i], Array.isArray(b) && b.length && (h[i] = 0);
                function x(D) {
                  i = a.coerce(D, {}, p, "type");
                  var C = {
                    type: i,
                    _template: null
                  };
                  if (i in h) {
                    b = d[i];
                    var w = h[i] % b.length;
                    h[i]++, C._template = b[w];
                  }
                  return C;
                }
                return {
                  newTrace: x
                  // TODO: function to figure out what's left & what didn't work
                };
              }, L.newContainer = function(d, h, i) {
                var b = d._template, x = b && (b[h] || i && b[i]);
                a.isPlainObject(x) || (x = null);
                var D = d[h] = {
                  _template: x
                };
                return D;
              }, L.arrayTemplater = function(d, h, i) {
                var b = d._template, x = b && b[c(h)], D = b && b[h];
                (!Array.isArray(D) || !D.length) && (D = []);
                var C = {};
                function w(T) {
                  var k = {
                    name: T.name,
                    _input: T
                  }, A = k[l] = T[l];
                  if (!u(A))
                    return k._template = x, k;
                  for (var R = 0; R < D.length; R++) {
                    var g = D[R];
                    if (g.name === A)
                      return C[A] = 1, k._template = g, k;
                  }
                  return k[i] = T[i] || !1, k._template = !1, k;
                }
                function S() {
                  for (var T = [], k = 0; k < D.length; k++) {
                    var A = D[k], R = A.name;
                    if (u(R) && !C[R]) {
                      var g = {
                        _template: A,
                        name: R,
                        _input: {
                          _templateitemname: R
                        }
                      };
                      g[l] = A[l], T.push(g), C[R] = 1;
                    }
                  }
                  return T;
                }
                return {
                  newItem: w,
                  defaultItems: S
                };
              };
              function u(d) {
                return d && typeof d == "string";
              }
              function c(d) {
                var h = d.length - 1;
                return d.charAt(h) !== "s" && a.warn("bad argument to arrayDefaultKey: " + d), d.substr(0, d.length - 1) + "defaults";
              }
              L.arrayDefaultKey = c, L.arrayEditor = function(d, h, i) {
                var b = (a.nestedProperty(d, h).get() || []).length, x = i._index, D = x >= b && (i._input || {})._templateitemname;
                D && (x = b);
                var C = h + "[" + x + "]", w;
                function S() {
                  w = {}, D && (w[C] = {}, w[C][l] = D);
                }
                S();
                function T(g, I) {
                  w[g] = I;
                }
                function k(g, I) {
                  D ? a.nestedProperty(w[C], g).set(I) : w[C + "." + g] = I;
                }
                function A() {
                  var g = w;
                  return S(), g;
                }
                function R(g, I) {
                  g && k(g, I);
                  var O = A();
                  for (var $ in O)
                    a.nestedProperty(d, $).set(O[$]);
                }
                return {
                  modifyBase: T,
                  modifyItem: k,
                  getUpdateObj: A,
                  applyUpdate: R
                };
              };
            }
          ),
          /***/
          9172: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(4040), l = r(7316), f = r(3400), u = r(2736), c = r(3696), d = r(6308), h = r(3616), i = r(1668), b = r(3080), x = r(4460), D = r(4284), C = r(1888), w = C.enforce, S = C.clean, T = r(9280).doAutoRange, k = "start", A = "middle", R = "end";
              L.layoutStyles = function(W) {
                return f.syncOrAsync([l.doAutoMargin, I], W);
              };
              function g(W, ae, oe) {
                for (var ve = 0; ve < oe.length; ve++) {
                  var fe = oe[ve][0], ye = oe[ve][1];
                  if (!(fe[0] >= W[1] || fe[1] <= W[0]) && ye[0] < ae[1] && ye[1] > ae[0])
                    return !0;
                }
                return !1;
              }
              function I(W) {
                var ae = W._fullLayout, oe = ae._size, ve = oe.p, fe = x.list(W, "", !0), ye, Ce, Re, Be, xe, Me;
                if (ae._paperdiv.style({
                  width: W._context.responsive && ae.autosize && !W._context._hasZeroWidth && !W.layout.width ? "100%" : ae.width + "px",
                  height: W._context.responsive && ae.autosize && !W._context._hasZeroHeight && !W.layout.height ? "100%" : ae.height + "px"
                }).selectAll(".main-svg").call(h.setSize, ae.width, ae.height), W._context.setBackground(W, ae.paper_bgcolor), L.drawMainTitle(W), b.manage(W), !ae._has("cartesian"))
                  return l.previousPromises(W);
                function De(We, je, lt) {
                  var Se = We._lw / 2;
                  if (We._id.charAt(0) === "x") {
                    if (je) {
                      if (lt === "top")
                        return je._offset - ve - Se;
                    } else
                      return oe.t + oe.h * (1 - (We.position || 0)) + Se % 1;
                    return je._offset + je._length + ve + Se;
                  }
                  if (je) {
                    if (lt === "right")
                      return je._offset + je._length + ve + Se;
                  } else
                    return oe.l + oe.w * (We.position || 0) + Se % 1;
                  return je._offset - ve - Se;
                }
                for (ye = 0; ye < fe.length; ye++) {
                  Be = fe[ye];
                  var Z = Be._anchorAxis;
                  Be._linepositions = {}, Be._lw = h.crispRound(W, Be.linewidth, 1), Be._mainLinePosition = De(Be, Z, Be.side), Be._mainMirrorPosition = Be.mirror && Z ? De(Be, Z, D.OPPOSITE_SIDE[Be.side]) : null;
                }
                var ee = [], ie = [], G = [], H = d.opacity(ae.paper_bgcolor) === 1 && d.opacity(ae.plot_bgcolor) === 1 && ae.paper_bgcolor === ae.plot_bgcolor;
                for (Ce in ae._plots)
                  if (Re = ae._plots[Ce], Re.mainplot)
                    Re.bg && Re.bg.remove(), Re.bg = void 0;
                  else {
                    var ce = Re.xaxis.domain, j = Re.yaxis.domain, he = Re.plotgroup;
                    if (g(ce, j, G)) {
                      var be = he.node(), we = Re.bg = f.ensureSingle(he, "rect", "bg");
                      be.insertBefore(we.node(), be.childNodes[0]), ie.push(Ce);
                    } else
                      he.select("rect.bg").remove(), G.push([ce, j]), H || (ee.push(Ce), ie.push(Ce));
                  }
                var Ie = ae._bgLayer.selectAll(".bg").data(ee);
                for (Ie.enter().append("rect").classed("bg", !0), Ie.exit().remove(), Ie.each(function(We) {
                  ae._plots[We].bg = a.select(this);
                }), ye = 0; ye < ie.length; ye++)
                  Re = ae._plots[ie[ye]], xe = Re.xaxis, Me = Re.yaxis, Re.bg && xe._offset !== void 0 && Me._offset !== void 0 && Re.bg.call(h.setRect, xe._offset - ve, Me._offset - ve, xe._length + 2 * ve, Me._length + 2 * ve).call(d.fill, ae.plot_bgcolor).style("stroke-width", 0);
                if (!ae._hasOnlyLargeSploms)
                  for (Ce in ae._plots) {
                    Re = ae._plots[Ce], xe = Re.xaxis, Me = Re.yaxis;
                    var Ge = Re.clipId = "clip" + ae._uid + Ce + "plot", Ve = f.ensureSingleById(ae._clips, "clipPath", Ge, function(We) {
                      We.classed("plotclip", !0).append("rect");
                    });
                    Re.clipRect = Ve.select("rect").attr({
                      width: xe._length,
                      height: Me._length
                    }), h.setTranslate(Re.plot, xe._offset, Me._offset);
                    var Je, et;
                    Re._hasClipOnAxisFalse ? (Je = null, et = Ge) : (Je = Ge, et = null), h.setClipUrl(Re.plot, Je, W), Re.layerClipId = et;
                  }
                var at, Le, ze, Oe, Xe, it, ut, wt, kt, Ot, Lt, Mt, Ut;
                function Ct(We) {
                  return "M" + at + "," + We + "H" + Le;
                }
                function jt(We) {
                  return "M" + xe._offset + "," + We + "h" + xe._length;
                }
                function nr(We) {
                  return "M" + We + "," + wt + "V" + ut;
                }
                function Jt(We) {
                  return Me._shift !== void 0 && (We += Me._shift), "M" + We + "," + Me._offset + "v" + Me._length;
                }
                function Wt(We, je, lt) {
                  if (!We.showline || Ce !== We._mainSubplot)
                    return "";
                  if (!We._anchorAxis)
                    return lt(We._mainLinePosition);
                  var Se = je(We._mainLinePosition);
                  return We.mirror && (Se += je(We._mainMirrorPosition)), Se;
                }
                for (Ce in ae._plots) {
                  Re = ae._plots[Ce], xe = Re.xaxis, Me = Re.yaxis;
                  var qe = "M0,0";
                  O(xe, Ce) && (Xe = Y(xe, "left", Me, fe), at = xe._offset - (Xe ? ve + Xe : 0), it = Y(xe, "right", Me, fe), Le = xe._offset + xe._length + (it ? ve + it : 0), ze = De(xe, Me, "bottom"), Oe = De(xe, Me, "top"), Ut = !xe._anchorAxis || Ce !== xe._mainSubplot, Ut && (xe.mirror === "allticks" || xe.mirror === "all") && (xe._linepositions[Ce] = [ze, Oe]), qe = Wt(xe, Ct, jt), Ut && xe.showline && (xe.mirror === "all" || xe.mirror === "allticks") && (qe += Ct(ze) + Ct(Oe)), Re.xlines.style("stroke-width", xe._lw + "px").call(d.stroke, xe.showline ? xe.linecolor : "rgba(0,0,0,0)")), Re.xlines.attr("d", qe);
                  var Ue = "M0,0";
                  O(Me, Ce) && (Lt = Y(Me, "bottom", xe, fe), ut = Me._offset + Me._length + (Lt ? ve : 0), Mt = Y(Me, "top", xe, fe), wt = Me._offset - (Mt ? ve : 0), kt = De(Me, xe, "left"), Ot = De(Me, xe, "right"), Ut = !Me._anchorAxis || Ce !== Me._mainSubplot, Ut && (Me.mirror === "allticks" || Me.mirror === "all") && (Me._linepositions[Ce] = [kt, Ot]), Ue = Wt(Me, nr, Jt), Ut && Me.showline && (Me.mirror === "all" || Me.mirror === "allticks") && (Ue += nr(kt) + nr(Ot)), Re.ylines.style("stroke-width", Me._lw + "px").call(d.stroke, Me.showline ? Me.linecolor : "rgba(0,0,0,0)")), Re.ylines.attr("d", Ue);
                }
                return x.makeClipPaths(W), l.previousPromises(W);
              }
              function O(W, ae) {
                return (W.ticks || W.showline) && (ae === W._mainSubplot || W.mirror === "all" || W.mirror === "allticks");
              }
              function $(W, ae, oe) {
                if (!oe.showline || !oe._lw)
                  return !1;
                if (oe.mirror === "all" || oe.mirror === "allticks")
                  return !0;
                var ve = oe._anchorAxis;
                if (!ve)
                  return !1;
                var fe = D.FROM_BL[ae];
                return oe.side === ae ? ve.domain[fe] === W.domain[fe] : oe.mirror && ve.domain[1 - fe] === W.domain[1 - fe];
              }
              function Y(W, ae, oe, ve) {
                if ($(W, ae, oe))
                  return oe._lw;
                for (var fe = 0; fe < ve.length; fe++) {
                  var ye = ve[fe];
                  if (ye._mainAxis === oe._mainAxis && $(W, ae, ye))
                    return ye._lw;
                }
                return 0;
              }
              L.drawMainTitle = function(W) {
                var ae = W._fullLayout.title, oe = W._fullLayout, ve = me(oe), fe = J(oe), ye = te(oe, fe), Ce = U(oe, ve);
                if (i.draw(W, "gtitle", {
                  propContainer: oe,
                  propName: "title.text",
                  placeholder: oe._dfltTitle.plot,
                  attributes: {
                    x: Ce,
                    y: ye,
                    "text-anchor": ve,
                    dy: fe
                  }
                }), ae.text && ae.automargin) {
                  var Re = a.selectAll(".gtitle"), Be = h.bBox(Re.node()).height, xe = B(W, ae, Be);
                  if (xe > 0) {
                    X(W, ye, xe, Be), Re.attr({
                      x: Ce,
                      y: ye,
                      "text-anchor": ve,
                      dy: se(ae.yanchor)
                    }).call(u.positionText, Ce, ye);
                    var Me = (ae.text.match(u.BR_TAG_ALL) || []).length;
                    if (Me) {
                      var De = D.LINE_SPACING * Me + D.MID_SHIFT;
                      ae.y === 0 && (De = -De), Re.selectAll(".line").each(function() {
                        var Z = +this.getAttribute("dy").slice(0, -2) - De + "em";
                        this.setAttribute("dy", Z);
                      });
                    }
                  }
                }
              };
              function ne(W, ae, oe, ve, fe) {
                var ye = ae.yref === "paper" ? W._fullLayout._size.h : W._fullLayout.height, Ce = f.isTopAnchor(ae) ? ve : ve - fe, Re = oe === "b" ? ye - Ce : Ce;
                return f.isTopAnchor(ae) && oe === "t" || f.isBottomAnchor(ae) && oe === "b" ? !1 : Re < fe;
              }
              function q(W, ae, oe, ve, fe) {
                var ye = 0;
                return oe === "middle" && (ye += fe / 2), W === "t" ? (oe === "top" && (ye += fe), ye += ve - ae * ve) : (oe === "bottom" && (ye += fe), ye += ae * ve), ye;
              }
              function B(W, ae, oe) {
                var ve = ae.y, fe = ae.yanchor, ye = ve > 0.5 ? "t" : "b", Ce = W._fullLayout.margin[ye], Re = 0;
                return ae.yref === "paper" ? Re = oe + ae.pad.t + ae.pad.b : ae.yref === "container" && (Re = q(ye, ve, fe, W._fullLayout.height, oe) + ae.pad.t + ae.pad.b), Re > Ce ? Re : 0;
              }
              function X(W, ae, oe, ve) {
                var fe = "title.automargin", ye = W._fullLayout.title, Ce = ye.y > 0.5 ? "t" : "b", Re = {
                  x: ye.x,
                  y: ye.y,
                  t: 0,
                  b: 0
                }, Be = {};
                ye.yref === "paper" && ne(W, ye, Ce, ae, ve) ? Re[Ce] = oe : ye.yref === "container" && (Be[Ce] = oe, W._fullLayout._reservedMargin[fe] = Be), l.allowAutoMargin(W, fe), l.autoMargin(W, fe, Re);
              }
              function U(W, ae) {
                var oe = W.title, ve = W._size, fe = 0;
                switch (ae === k ? fe = oe.pad.l : ae === R && (fe = -oe.pad.r), oe.xref) {
                  case "paper":
                    return ve.l + ve.w * oe.x + fe;
                  case "container":
                  default:
                    return W.width * oe.x + fe;
                }
              }
              function te(W, ae) {
                var oe = W.title, ve = W._size, fe = 0;
                if (ae === "0em" || !ae ? fe = -oe.pad.b : ae === D.CAP_SHIFT + "em" && (fe = oe.pad.t), oe.y === "auto")
                  return ve.t / 2;
                switch (oe.yref) {
                  case "paper":
                    return ve.t + ve.h - ve.h * oe.y + fe;
                  case "container":
                  default:
                    return W.height - W.height * oe.y + fe;
                }
              }
              function se(W) {
                return W === "top" ? D.CAP_SHIFT + 0.3 + "em" : W === "bottom" ? "-0.3em" : D.MID_SHIFT + "em";
              }
              function me(W) {
                var ae = W.title, oe = A;
                return f.isRightAnchor(ae) ? oe = R : f.isLeftAnchor(ae) && (oe = k), oe;
              }
              function J(W) {
                var ae = W.title, oe = "0em";
                return f.isTopAnchor(ae) ? oe = D.CAP_SHIFT + "em" : f.isMiddleAnchor(ae) && (oe = D.MID_SHIFT + "em"), oe;
              }
              L.doTraceStyle = function(W) {
                var ae = W.calcdata, oe = [], ve;
                for (ve = 0; ve < ae.length; ve++) {
                  var fe = ae[ve], ye = fe[0] || {}, Ce = ye.trace || {}, Re = Ce._module || {}, Be = Re.arraysToCalcdata;
                  Be && Be(fe, Ce);
                  var xe = Re.editStyle;
                  xe && oe.push({
                    fn: xe,
                    cd0: ye
                  });
                }
                if (oe.length) {
                  for (ve = 0; ve < oe.length; ve++) {
                    var Me = oe[ve];
                    Me.fn(W, Me.cd0);
                  }
                  c(W), L.redrawReglTraces(W);
                }
                return l.style(W), p.getComponentMethod("legend", "draw")(W), l.previousPromises(W);
              }, L.doColorBars = function(W) {
                return p.getComponentMethod("colorbar", "draw")(W), l.previousPromises(W);
              }, L.layoutReplot = function(W) {
                var ae = W.layout;
                return W.layout = void 0, p.call("_doPlot", W, "", ae);
              }, L.doLegend = function(W) {
                return p.getComponentMethod("legend", "draw")(W), l.previousPromises(W);
              }, L.doTicksRelayout = function(W) {
                return x.draw(W, "redraw"), W._fullLayout._hasOnlyLargeSploms && (p.subplotsRegistry.splom.updateGrid(W), c(W), L.redrawReglTraces(W)), L.drawMainTitle(W), l.previousPromises(W);
              }, L.doModeBar = function(W) {
                var ae = W._fullLayout;
                b.manage(W);
                for (var oe = 0; oe < ae._basePlotModules.length; oe++) {
                  var ve = ae._basePlotModules[oe].updateFx;
                  ve && ve(W);
                }
                return l.previousPromises(W);
              }, L.doCamera = function(W) {
                for (var ae = W._fullLayout, oe = ae._subplots.gl3d, ve = 0; ve < oe.length; ve++) {
                  var fe = ae[oe[ve]], ye = fe._scene;
                  ye.setViewport(fe);
                }
              }, L.drawData = function(W) {
                var ae = W._fullLayout;
                c(W);
                for (var oe = ae._basePlotModules, ve = 0; ve < oe.length; ve++)
                  oe[ve].plot(W);
                return L.redrawReglTraces(W), l.style(W), p.getComponentMethod("selections", "draw")(W), p.getComponentMethod("shapes", "draw")(W), p.getComponentMethod("annotations", "draw")(W), p.getComponentMethod("images", "draw")(W), ae._replotting = !1, l.previousPromises(W);
              }, L.redrawReglTraces = function(W) {
                var ae = W._fullLayout;
                if (ae._has("regl")) {
                  var oe = W._fullData, ve = [], fe = [], ye, Ce;
                  for (ae._hasOnlyLargeSploms && ae._splomGrid.draw(), ye = 0; ye < oe.length; ye++) {
                    var Re = oe[ye];
                    Re.visible === !0 && Re._length !== 0 && (Re.type === "splom" ? ae._splomScenes[Re.uid].draw() : Re.type === "scattergl" ? f.pushUnique(ve, Re.xaxis + Re.yaxis) : Re.type === "scatterpolargl" && f.pushUnique(fe, Re.subplot));
                  }
                  for (ye = 0; ye < ve.length; ye++)
                    Ce = ae._plots[ve[ye]], Ce._scene && Ce._scene.draw();
                  for (ye = 0; ye < fe.length; ye++)
                    Ce = ae[fe[ye]]._subplot, Ce._scene && Ce._scene.draw();
                }
              }, L.doAutoRangeAndConstraints = function(W) {
                for (var ae = x.list(W, "", !0), oe, ve = {}, fe = 0; fe < ae.length; fe++)
                  if (oe = ae[fe], !ve[oe._id]) {
                    ve[oe._id] = 1, S(W, oe), T(W, oe);
                    var ye = oe._matchGroup;
                    if (ye)
                      for (var Ce in ye) {
                        var Re = x.getFromId(W, Ce);
                        T(W, Re, oe.range), ve[Ce] = 1;
                      }
                  }
                w(W);
              }, L.finalDraw = function(W) {
                p.getComponentMethod("rangeslider", "draw")(W), p.getComponentMethod("rangeselector", "draw")(W);
              }, L.drawMarginPushers = function(W) {
                p.getComponentMethod("legend", "draw")(W), p.getComponentMethod("rangeselector", "draw")(W), p.getComponentMethod("sliders", "draw")(W), p.getComponentMethod("updatemenus", "draw")(W), p.getComponentMethod("colorbar", "draw")(W);
              };
            }
          ),
          /***/
          4828: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = a.isPlainObject, l = r(3060), f = r(7316), u = r(5464), c = r(1780), d = r(556).dfltConfig;
              L.makeTemplate = function(T) {
                T = a.isPlainObject(T) ? T : a.getGraphDiv(T), T = a.extendDeep({
                  _context: d
                }, {
                  data: T.data,
                  layout: T.layout
                }), f.supplyDefaults(T);
                var k = T.data || [], A = T.layout || {};
                A._basePlotModules = T._fullLayout._basePlotModules, A._modules = T._fullLayout._modules;
                var R = {
                  data: {},
                  layout: {}
                };
                k.forEach(function(U) {
                  var te = {};
                  b(U, te, D.bind(null, U));
                  var se = a.coerce(U, {}, u, "type"), me = R.data[se];
                  me || (me = R.data[se] = []), me.push(te);
                }), b(A, R.layout, x.bind(null, A)), delete R.layout.template;
                var g = A.template;
                if (p(g)) {
                  var I = g.layout, O, $, Y, ne, q, B;
                  p(I) && h(I, R.layout);
                  var X = g.data;
                  if (p(X)) {
                    for ($ in R.data)
                      if (Y = X[$], Array.isArray(Y)) {
                        for (q = R.data[$], B = q.length, ne = Y.length, O = 0; O < B; O++)
                          h(Y[O % ne], q[O]);
                        for (O = B; O < ne; O++)
                          q.push(a.extendDeep({}, Y[O]));
                      }
                    for ($ in X)
                      $ in R.data || (R.data[$] = a.extendDeep([], X[$]));
                  }
                }
                return R;
              };
              function h(T, k) {
                T = a.extendDeep({}, T);
                var A = Object.keys(T).sort(), R, g;
                function I(q, B, X) {
                  if (p(B) && p(q))
                    h(q, B);
                  else if (Array.isArray(B) && Array.isArray(q)) {
                    var U = c.arrayTemplater({
                      _template: T
                    }, X);
                    for (g = 0; g < B.length; g++) {
                      var te = B[g], se = U.newItem(te)._template;
                      se && h(se, te);
                    }
                    var me = U.defaultItems();
                    for (g = 0; g < me.length; g++)
                      B.push(me[g]._template);
                    for (g = 0; g < B.length; g++)
                      delete B[g].templateitemname;
                  }
                }
                for (R = 0; R < A.length; R++) {
                  var O = A[R], $ = T[O];
                  if (O in k ? I($, k[O], O) : k[O] = $, i(O) === O)
                    for (var Y in k) {
                      var ne = i(Y);
                      Y !== ne && ne === O && !(Y in T) && I($, k[Y], O);
                    }
                }
              }
              function i(T) {
                return T.replace(/[0-9]+$/, "");
              }
              function b(T, k, A, R, g) {
                var I = g && A(g);
                for (var O in T) {
                  var $ = T[O], Y = C(T, O, R), ne = C(T, O, g), q = A(ne);
                  if (!q) {
                    var B = i(O);
                    B !== O && (ne = C(T, B, g), q = A(ne));
                  }
                  if (!(I && I === q) && !(!q || q._noTemplating || q.valType === "data_array" || q.arrayOk && Array.isArray($)))
                    if (!q.valType && p($))
                      b($, k, A, Y, ne);
                    else if (q._isLinkedToArray && Array.isArray($))
                      for (var X = !1, U = 0, te = {}, se = 0; se < $.length; se++) {
                        var me = $[se];
                        if (p(me)) {
                          var J = me.name;
                          if (J)
                            te[J] || (b(me, k, A, C($, U, Y), C($, U, ne)), U++, te[J] = 1);
                          else if (!X) {
                            var W = c.arrayDefaultKey(O), ae = C(T, W, R), oe = C($, U, Y);
                            b(me, k, A, oe, C($, U, ne));
                            var ve = a.nestedProperty(k, oe), fe = a.nestedProperty(k, ae);
                            fe.set(ve.get()), ve.set(null), X = !0;
                          }
                        }
                      }
                    else {
                      var ye = a.nestedProperty(k, Y);
                      ye.set($);
                    }
                }
              }
              function x(T, k) {
                return l.getLayoutValObject(T, a.nestedProperty({}, k).parts);
              }
              function D(T, k) {
                return l.getTraceValObject(T, a.nestedProperty({}, k).parts);
              }
              function C(T, k, A) {
                var R;
                return A ? Array.isArray(T) ? R = A + "[" + k + "]" : R = A + "." + k : R = k, R;
              }
              L.validateTemplate = function(T, k) {
                var A = a.extendDeep({}, {
                  _context: d,
                  data: T.data,
                  layout: T.layout
                }), R = A.layout || {};
                p(k) || (k = R.template || {});
                var g = k.layout, I = k.data, O = [];
                A.layout = R, A.layout.template = k, f.supplyDefaults(A);
                var $ = A._fullLayout, Y = A._fullData, ne = {};
                function q(ae, oe) {
                  for (var ve in ae)
                    if (ve.charAt(0) !== "_" && p(ae[ve])) {
                      var fe = i(ve), ye = [], Ce;
                      for (Ce = 0; Ce < oe.length; Ce++)
                        ye.push(C(ae, ve, oe[Ce])), fe !== ve && ye.push(C(ae, fe, oe[Ce]));
                      for (Ce = 0; Ce < ye.length; Ce++)
                        ne[ye[Ce]] = 1;
                      q(ae[ve], ye);
                    }
                }
                function B(ae, oe) {
                  for (var ve in ae)
                    if (ve.indexOf("defaults") === -1 && p(ae[ve])) {
                      var fe = C(ae, ve, oe);
                      ne[fe] ? B(ae[ve], fe) : O.push({
                        code: "unused",
                        path: fe
                      });
                    }
                }
                if (p(g) ? (q($, ["layout"]), B(g, "layout")) : O.push({
                  code: "layout"
                }), !p(I))
                  O.push({
                    code: "data"
                  });
                else {
                  for (var X = {}, U, te = 0; te < Y.length; te++) {
                    var se = Y[te];
                    U = se.type, X[U] = (X[U] || 0) + 1, se._fullInput._template || O.push({
                      code: "missing",
                      index: se._fullInput.index,
                      traceType: U
                    });
                  }
                  for (U in I) {
                    var me = I[U].length, J = X[U] || 0;
                    me > J ? O.push({
                      code: "unused",
                      traceType: U,
                      templateCount: me,
                      dataCount: J
                    }) : J > me && O.push({
                      code: "reused",
                      traceType: U,
                      templateCount: me,
                      dataCount: J
                    });
                  }
                }
                function W(ae, oe) {
                  for (var ve in ae)
                    if (ve.charAt(0) !== "_") {
                      var fe = ae[ve], ye = C(ae, ve, oe);
                      p(fe) ? (Array.isArray(ae) && fe._template === !1 && fe.templateitemname && O.push({
                        code: "missing",
                        path: ye,
                        templateitemname: fe.templateitemname
                      }), W(fe, ye)) : Array.isArray(fe) && w(fe) && W(fe, ye);
                    }
                }
                if (W({
                  data: Y,
                  layout: $
                }, ""), O.length)
                  return O.map(S);
              };
              function w(T) {
                for (var k = 0; k < T.length; k++)
                  if (p(T[k]))
                    return !0;
              }
              function S(T) {
                var k;
                switch (T.code) {
                  case "data":
                    k = "The template has no key data.";
                    break;
                  case "layout":
                    k = "The template has no key layout.";
                    break;
                  case "missing":
                    T.path ? k = "There are no templates for item " + T.path + " with name " + T.templateitemname : k = "There are no templates for trace " + T.index + ", of type " + T.traceType + ".";
                    break;
                  case "unused":
                    T.path ? k = "The template item at " + T.path + " was not used in constructing the plot." : T.dataCount ? k = "Some of the templates of type " + T.traceType + " were not used. The template has " + T.templateCount + " traces, the data only has " + T.dataCount + " of this type." : k = "The template has " + T.templateCount + " traces of type " + T.traceType + " but there are none in the data.";
                    break;
                  case "reused":
                    k = "Some of the templates of type " + T.traceType + " were used more than once. The template has " + T.templateCount + " traces, the data has " + T.dataCount + " of this type.";
                    break;
                }
                return T.msg = k, T;
              }
            }
          ),
          /***/
          7024: (
            /***/
            function(M, L, r) {
              var a = r(8248), p = r(6424), l = r(7316), f = r(3400), u = r(7030), c = r(7164), d = r(3268), h = r(5788).version, i = {
                format: {
                  valType: "enumerated",
                  values: ["png", "jpeg", "webp", "svg", "full-json"],
                  dflt: "png"
                },
                width: {
                  valType: "number",
                  min: 1
                },
                height: {
                  valType: "number",
                  min: 1
                },
                scale: {
                  valType: "number",
                  min: 0,
                  dflt: 1
                },
                setBackground: {
                  valType: "any",
                  dflt: !1
                },
                imageDataOnly: {
                  valType: "boolean",
                  dflt: !1
                }
              };
              function b(x, D) {
                D = D || {};
                var C, w, S, T;
                f.isPlainObject(x) ? (C = x.data || [], w = x.layout || {}, S = x.config || {}, T = {}) : (x = f.getGraphDiv(x), C = f.extendDeep([], x.data), w = f.extendDeep({}, x.layout), S = x._context, T = x._fullLayout || {});
                function k(J) {
                  return !(J in D) || f.validate(D[J], i[J]);
                }
                if (!k("width") && D.width !== null || !k("height") && D.height !== null)
                  throw new Error("Height and width should be pixel values.");
                if (!k("format"))
                  throw new Error("Export format is not " + f.join2(i.format.values, ", ", " or ") + ".");
                var A = {};
                function R(J, W) {
                  return f.coerce(D, A, i, J, W);
                }
                var g = R("format"), I = R("width"), O = R("height"), $ = R("scale"), Y = R("setBackground"), ne = R("imageDataOnly"), q = document.createElement("div");
                q.style.position = "absolute", q.style.left = "-5000px", document.body.appendChild(q);
                var B = f.extendFlat({}, w);
                I ? B.width = I : D.width === null && a(T.width) && (B.width = T.width), O ? B.height = O : D.height === null && a(T.height) && (B.height = T.height);
                var X = f.extendFlat({}, S, {
                  _exportedPlot: !0,
                  staticPlot: !0,
                  setBackground: Y
                }), U = u.getRedrawFunc(q);
                function te() {
                  return new Promise(function(J) {
                    setTimeout(J, u.getDelay(q._fullLayout));
                  });
                }
                function se() {
                  return new Promise(function(J, W) {
                    var ae = c(q, g, $), oe = q._fullLayout.width, ve = q._fullLayout.height;
                    function fe() {
                      p.purge(q), document.body.removeChild(q);
                    }
                    if (g === "full-json") {
                      var ye = l.graphJson(q, !1, "keepdata", "object", !0, !0);
                      return ye.version = h, ye = JSON.stringify(ye), fe(), J(ne ? ye : u.encodeJSON(ye));
                    }
                    if (fe(), g === "svg")
                      return J(ne ? ae : u.encodeSVG(ae));
                    var Ce = document.createElement("canvas");
                    Ce.id = f.randstr(), d({
                      format: g,
                      width: oe,
                      height: ve,
                      scale: $,
                      canvas: Ce,
                      svg: ae,
                      // ask svgToImg to return a Promise
                      //  rather than EventEmitter
                      //  leave EventEmitter for backward
                      //  compatibility
                      promise: !0
                    }).then(J).catch(W);
                  });
                }
                function me(J) {
                  return ne ? J.replace(u.IMAGE_URL_PREFIX, "") : J;
                }
                return new Promise(function(J, W) {
                  p.newPlot(q, C, B, X).then(U).then(te).then(se).then(function(ae) {
                    J(me(ae));
                  }).catch(function(ae) {
                    W(ae);
                  });
                });
              }
              M.exports = b;
            }
          ),
          /***/
          1480: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(7316), l = r(3060), f = r(556).dfltConfig, u = a.isPlainObject, c = Array.isArray, d = a.isArrayOrTypedArray;
              M.exports = function(R, g) {
                R === void 0 && (R = []), g === void 0 && (g = {});
                var I = l.get(), O = [], $ = {
                  _context: a.extendFlat({}, f)
                }, Y, ne;
                c(R) ? ($.data = a.extendDeep([], R), Y = R) : ($.data = [], Y = [], O.push(D("array", "data"))), u(g) ? ($.layout = a.extendDeep({}, g), ne = g) : ($.layout = {}, ne = {}, arguments.length > 1 && O.push(D("object", "layout"))), p.supplyDefaults($);
                for (var q = $._fullData, B = Y.length, X = 0; X < B; X++) {
                  var U = Y[X], te = ["data", X];
                  if (!u(U)) {
                    O.push(D("object", te));
                    continue;
                  }
                  var se = q[X], me = se.type, J = I.traces[me].attributes;
                  J.type = {
                    valType: "enumerated",
                    values: [me]
                  }, se.visible === !1 && U.visible !== !1 && O.push(D("invisible", te)), h(U, se, J, O, te);
                  var W = U.transforms, ae = se.transforms;
                  if (W) {
                    c(W) || O.push(D("array", te, ["transforms"])), te.push("transforms");
                    for (var oe = 0; oe < W.length; oe++) {
                      var ve = ["transforms", oe], fe = W[oe].type;
                      if (!u(W[oe])) {
                        O.push(D("object", te, ve));
                        continue;
                      }
                      var ye = I.transforms[fe] ? I.transforms[fe].attributes : {};
                      ye.type = {
                        valType: "enumerated",
                        values: Object.keys(I.transforms)
                      }, h(W[oe], ae[oe], ye, O, te, ve);
                    }
                  }
                }
                var Ce = $._fullLayout, Re = i(I, q);
                return h(ne, Ce, Re, O, "layout"), O.length === 0 ? void 0 : O;
              };
              function h(A, R, g, I, O, $) {
                $ = $ || [];
                for (var Y = Object.keys(A), ne = 0; ne < Y.length; ne++) {
                  var q = Y[ne];
                  if (q !== "transforms") {
                    var B = $.slice();
                    B.push(q);
                    var X = A[q], U = R[q], te = w(g, q), se = (te || {}).valType, me = se === "info_array", J = se === "colorscale", W = (te || {}).items;
                    if (!C(g, q))
                      I.push(D("schema", O, B));
                    else if (u(X) && u(U) && se !== "any")
                      h(X, U, te, I, O, B);
                    else if (me && c(X)) {
                      X.length > U.length && I.push(D("unused", O, B.concat(U.length)));
                      var ae = U.length, oe = Array.isArray(W);
                      oe && (ae = Math.min(ae, W.length));
                      var ve, fe, ye, Ce, Re;
                      if (te.dimensions === 2)
                        for (fe = 0; fe < ae; fe++)
                          if (c(X[fe])) {
                            X[fe].length > U[fe].length && I.push(D("unused", O, B.concat(fe, U[fe].length)));
                            var Be = U[fe].length;
                            for (ve = 0; ve < (oe ? Math.min(Be, W[fe].length) : Be); ve++)
                              ye = oe ? W[fe][ve] : W, Ce = X[fe][ve], Re = U[fe][ve], a.validate(Ce, ye) ? Re !== Ce && Re !== +Ce && I.push(D("dynamic", O, B.concat(fe, ve), Ce, Re)) : I.push(D("value", O, B.concat(fe, ve), Ce));
                          } else
                            I.push(D("array", O, B.concat(fe), X[fe]));
                      else
                        for (fe = 0; fe < ae; fe++)
                          ye = oe ? W[fe] : W, Ce = X[fe], Re = U[fe], a.validate(Ce, ye) ? Re !== Ce && Re !== +Ce && I.push(D("dynamic", O, B.concat(fe), Ce, Re)) : I.push(D("value", O, B.concat(fe), Ce));
                    } else if (te.items && !me && c(X)) {
                      var xe = W[Object.keys(W)[0]], Me = [], De, Z;
                      for (De = 0; De < U.length; De++) {
                        var ee = U[De]._index || De;
                        if (Z = B.slice(), Z.push(ee), u(X[ee]) && u(U[De])) {
                          Me.push(ee);
                          var ie = X[ee], G = U[De];
                          u(ie) && ie.visible !== !1 && G.visible === !1 ? I.push(D("invisible", O, Z)) : h(ie, G, xe, I, O, Z);
                        }
                      }
                      for (De = 0; De < X.length; De++)
                        Z = B.slice(), Z.push(De), u(X[De]) ? Me.indexOf(De) === -1 && I.push(D("unused", O, Z)) : I.push(D("object", O, Z, X[De]));
                    } else
                      !u(X) && u(U) ? I.push(D("object", O, B, X)) : !d(X) && d(U) && !me && !J ? I.push(D("array", O, B, X)) : q in R ? a.validate(X, te) ? te.valType === "enumerated" && (te.coerceNumber && X !== +U || X !== U) && I.push(D("dynamic", O, B, X, U)) : I.push(D("value", O, B, X)) : I.push(D("unused", O, B, X));
                  }
                }
                return I;
              }
              function i(A, R) {
                for (var g = A.layout.layoutAttributes, I = 0; I < R.length; I++) {
                  var O = R[I], $ = A.traces[O.type], Y = $.layoutAttributes;
                  Y && (O.subplot ? a.extendFlat(g[$.attributes.subplot.dflt], Y) : a.extendFlat(g, Y));
                }
                return g;
              }
              var b = {
                object: function(A, R) {
                  var g;
                  return A === "layout" && R === "" ? g = "The layout argument" : A[0] === "data" && R === "" ? g = "Trace " + A[1] + " in the data argument" : g = x(A) + "key " + R, g + " must be linked to an object container";
                },
                array: function(A, R) {
                  var g;
                  return A === "data" ? g = "The data argument" : g = x(A) + "key " + R, g + " must be linked to an array container";
                },
                schema: function(A, R) {
                  return x(A) + "key " + R + " is not part of the schema";
                },
                unused: function(A, R, g) {
                  var I = u(g) ? "container" : "key";
                  return x(A) + I + " " + R + " did not get coerced";
                },
                dynamic: function(A, R, g, I) {
                  return [x(A) + "key", R, "(set to '" + g + "')", "got reset to", "'" + I + "'", "during defaults."].join(" ");
                },
                invisible: function(A, R) {
                  return (R ? x(A) + "item " + R : "Trace " + A[1]) + " got defaulted to be not visible";
                },
                value: function(A, R, g) {
                  return [x(A) + "key " + R, "is set to an invalid value (" + g + ")"].join(" ");
                }
              };
              function x(A) {
                return c(A) ? "In data trace " + A[1] + ", " : "In " + A + ", ";
              }
              function D(A, R, g, I, O) {
                g = g || "";
                var $, Y;
                c(R) ? ($ = R[0], Y = R[1]) : ($ = R, Y = null);
                var ne = k(g), q = b[A](R, ne, I, O);
                return a.log(q), {
                  code: A,
                  container: $,
                  trace: Y,
                  path: g,
                  astr: ne,
                  msg: q
                };
              }
              function C(A, R) {
                var g = T(R), I = g.keyMinusId, O = g.id;
                return I in A && A[I]._isSubplotObj && O ? !0 : R in A;
              }
              function w(A, R) {
                if (R in A)
                  return A[R];
                var g = T(R);
                return A[g.keyMinusId];
              }
              var S = a.counterRegex("([a-z]+)");
              function T(A) {
                var R = A.match(S);
                return {
                  keyMinusId: R && R[1],
                  id: R && R[2]
                };
              }
              function k(A) {
                if (!c(A))
                  return String(A);
                for (var R = "", g = 0; g < A.length; g++) {
                  var I = A[g];
                  typeof I == "number" ? R = R.substr(0, R.length - 1) + "[" + I + "]" : R += I, g < A.length - 1 && (R += ".");
                }
                return R;
              }
            }
          ),
          /***/
          5656: (
            /***/
            function(M) {
              M.exports = {
                mode: {
                  valType: "enumerated",
                  dflt: "afterall",
                  values: ["immediate", "next", "afterall"]
                },
                direction: {
                  valType: "enumerated",
                  values: ["forward", "reverse"],
                  dflt: "forward"
                },
                fromcurrent: {
                  valType: "boolean",
                  dflt: !1
                },
                frame: {
                  duration: {
                    valType: "number",
                    min: 0,
                    dflt: 500
                  },
                  redraw: {
                    valType: "boolean",
                    dflt: !0
                  }
                },
                transition: {
                  duration: {
                    valType: "number",
                    min: 0,
                    dflt: 500,
                    editType: "none"
                  },
                  easing: {
                    valType: "enumerated",
                    dflt: "cubic-in-out",
                    values: ["linear", "quad", "cubic", "sin", "exp", "circle", "elastic", "back", "bounce", "linear-in", "quad-in", "cubic-in", "sin-in", "exp-in", "circle-in", "elastic-in", "back-in", "bounce-in", "linear-out", "quad-out", "cubic-out", "sin-out", "exp-out", "circle-out", "elastic-out", "back-out", "bounce-out", "linear-in-out", "quad-in-out", "cubic-in-out", "sin-in-out", "exp-in-out", "circle-in-out", "elastic-in-out", "back-in-out", "bounce-in-out"],
                    editType: "none"
                  },
                  ordering: {
                    valType: "enumerated",
                    values: ["layout first", "traces first"],
                    dflt: "layout first",
                    editType: "none"
                  }
                }
              };
            }
          ),
          /***/
          1272: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(1780);
              M.exports = function(f, u, c) {
                var d = c.name, h = c.inclusionAttr || "visible", i = u[d], b = a.isArrayOrTypedArray(f[d]) ? f[d] : [], x = u[d] = [], D = p.arrayTemplater(u, d, h), C, w;
                for (C = 0; C < b.length; C++) {
                  var S = b[C];
                  a.isPlainObject(S) ? w = D.newItem(S) : (w = D.newItem({}), w[h] = !1), w._index = C, w[h] !== !1 && c.handleItemDefaults(S, w, u, c), x.push(w);
                }
                var T = D.defaultItems();
                for (C = 0; C < T.length; C++)
                  w = T[C], w._index = x.length, c.handleItemDefaults({}, w, u, c, {}), x.push(w);
                if (a.isArrayOrTypedArray(i)) {
                  var k = Math.min(i.length, x.length);
                  for (C = 0; C < k; C++)
                    a.relinkPrivateKeys(x[C], i[C]);
                }
                return x;
              };
            }
          ),
          /***/
          5464: (
            /***/
            function(M, L, r) {
              var a = r(5376), p = r(5756);
              M.exports = {
                type: {
                  valType: "enumerated",
                  values: [],
                  // listed dynamically
                  dflt: "scatter",
                  editType: "calc+clearAxisTypes",
                  _noTemplating: !0
                  // we handle this at a higher level
                },
                visible: {
                  valType: "enumerated",
                  values: [!0, !1, "legendonly"],
                  dflt: !0,
                  editType: "calc"
                },
                showlegend: {
                  valType: "boolean",
                  dflt: !0,
                  editType: "style"
                },
                legend: {
                  valType: "subplotid",
                  dflt: "legend",
                  editType: "style"
                },
                legendgroup: {
                  valType: "string",
                  dflt: "",
                  editType: "style"
                },
                legendgrouptitle: {
                  text: {
                    valType: "string",
                    dflt: "",
                    editType: "style"
                  },
                  font: a({
                    editType: "style"
                  }),
                  editType: "style"
                },
                legendrank: {
                  valType: "number",
                  dflt: 1e3,
                  editType: "style"
                },
                legendwidth: {
                  valType: "number",
                  min: 0,
                  editType: "style"
                },
                opacity: {
                  valType: "number",
                  min: 0,
                  max: 1,
                  dflt: 1,
                  editType: "style"
                },
                name: {
                  valType: "string",
                  editType: "style"
                },
                uid: {
                  valType: "string",
                  editType: "plot",
                  anim: !0
                },
                ids: {
                  valType: "data_array",
                  editType: "calc",
                  anim: !0
                },
                customdata: {
                  valType: "data_array",
                  editType: "calc"
                },
                meta: {
                  valType: "any",
                  arrayOk: !0,
                  editType: "plot"
                },
                // N.B. these cannot be 'data_array' as they do not have the same length as
                // other data arrays and arrayOk attributes in general
                //
                // Maybe add another valType:
                // https://github.com/plotly/plotly.js/issues/1894
                selectedpoints: {
                  valType: "any",
                  editType: "calc"
                },
                hoverinfo: {
                  valType: "flaglist",
                  flags: ["x", "y", "z", "text", "name"],
                  extras: ["all", "none", "skip"],
                  arrayOk: !0,
                  dflt: "all",
                  editType: "none"
                },
                hoverlabel: p.hoverlabel,
                stream: {
                  token: {
                    valType: "string",
                    noBlank: !0,
                    strict: !0,
                    editType: "calc"
                  },
                  maxpoints: {
                    valType: "number",
                    min: 0,
                    max: 1e4,
                    dflt: 500,
                    editType: "calc"
                  },
                  editType: "calc"
                },
                transforms: {
                  _isLinkedToArray: "transform",
                  editType: "calc"
                },
                uirevision: {
                  valType: "any",
                  editType: "none"
                }
              };
            }
          ),
          /***/
          1220: (
            /***/
            function(M, L, r) {
              var a = r(8248), p = r(3400), l = p.dateTime2ms, f = p.incrementMonth, u = r(9032), c = u.ONEAVGMONTH;
              M.exports = function(h, i, b, x) {
                if (i.type !== "date")
                  return {
                    vals: x
                  };
                var D = h[b + "periodalignment"];
                if (!D)
                  return {
                    vals: x
                  };
                var C = h[b + "period"], w;
                if (a(C)) {
                  if (C = +C, C <= 0)
                    return {
                      vals: x
                    };
                } else if (typeof C == "string" && C.charAt(0) === "M") {
                  var S = +C.substring(1);
                  if (S > 0 && Math.round(S) === S)
                    w = S;
                  else
                    return {
                      vals: x
                    };
                }
                for (var T = i.calendar, k = D === "start", A = D === "end", R = h[b + "period0"], g = l(R, T) || 0, I = [], O = [], $ = [], Y = x.length, ne = 0; ne < Y; ne++) {
                  var q = x[ne], B, X, U;
                  if (w) {
                    for (B = Math.round((q - g) / (w * c)), U = f(g, w * B, T); U > q; )
                      U = f(U, -w, T);
                    for (; U <= q; )
                      U = f(U, w, T);
                    X = f(U, -w, T);
                  } else {
                    for (B = Math.round((q - g) / C), U = g + B * C; U > q; )
                      U -= C;
                    for (; U <= q; )
                      U += C;
                    X = U - C;
                  }
                  I[ne] = k ? X : A ? U : (X + U) / 2, O[ne] = X, $[ne] = U;
                }
                return {
                  vals: I,
                  starts: O,
                  ends: $
                };
              };
            }
          ),
          /***/
          6720: (
            /***/
            function(M) {
              M.exports = {
                xaxis: {
                  valType: "subplotid",
                  dflt: "x",
                  editType: "calc+clearAxisTypes"
                },
                yaxis: {
                  valType: "subplotid",
                  dflt: "y",
                  editType: "calc+clearAxisTypes"
                }
              };
            }
          ),
          /***/
          9280: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(8248), l = r(3400), f = r(9032).FP_SAFE, u = r(4040), c = r(3616), d = r(9811), h = d.getFromId, i = d.isLinked;
              M.exports = {
                applyAutorangeOptions: B,
                getAutoRange: b,
                makePadFn: D,
                doAutoRange: T,
                findExtremes: k,
                concatExtremes: S
              };
              function b(X, U) {
                var te, se, me = [], J = X._fullLayout, W = D(J, U, 0), ae = D(J, U, 1), oe = S(X, U), ve = oe.min, fe = oe.max;
                if (ve.length === 0 || fe.length === 0)
                  return l.simpleMap(U.range, U.r2l);
                var ye = ve[0].val, Ce = fe[0].val;
                for (te = 1; te < ve.length && ye === Ce; te++)
                  ye = Math.min(ye, ve[te].val);
                for (te = 1; te < fe.length && ye === Ce; te++)
                  Ce = Math.max(Ce, fe[te].val);
                var Re = U.autorange, Be = Re === "reversed" || Re === "min reversed" || Re === "max reversed";
                if (!Be && U.range) {
                  var xe = l.simpleMap(U.range, U.r2l);
                  Be = xe[1] < xe[0];
                }
                U.autorange === "reversed" && (U.autorange = !0);
                var Me = U.rangemode, De = Me === "tozero", Z = Me === "nonnegative", ee = U._length, ie = ee / 10, G = 0, H, ce, j, he, be, we;
                for (te = 0; te < ve.length; te++)
                  for (H = ve[te], se = 0; se < fe.length; se++)
                    ce = fe[se], we = ce.val - H.val - x(U, H.val, ce.val), we > 0 && (be = ee - W(H) - ae(ce), be > ie ? we / be > G && (j = H, he = ce, G = we / be) : we / ee > G && (j = {
                      val: H.val,
                      nopad: 1
                    }, he = {
                      val: ce.val,
                      nopad: 1
                    }, G = we / ee));
                function Ie(at, Le) {
                  return Math.max(at, ae(Le));
                }
                if (ye === Ce) {
                  var Ge = ye - 1, Ve = ye + 1;
                  if (De)
                    if (ye === 0)
                      me = [0, 1];
                    else {
                      var Je = (ye > 0 ? fe : ve).reduce(Ie, 0), et = ye / (1 - Math.min(0.5, Je / ee));
                      me = ye > 0 ? [0, et] : [et, 0];
                    }
                  else
                    Z ? me = [Math.max(0, Ge), Math.max(1, Ve)] : me = [Ge, Ve];
                } else
                  De ? (j.val >= 0 && (j = {
                    val: 0,
                    nopad: 1
                  }), he.val <= 0 && (he = {
                    val: 0,
                    nopad: 1
                  })) : Z && (j.val - G * W(j) < 0 && (j = {
                    val: 0,
                    nopad: 1
                  }), he.val <= 0 && (he = {
                    val: 1,
                    nopad: 1
                  })), G = (he.val - j.val - x(U, H.val, ce.val)) / (ee - W(j) - ae(he)), me = [j.val - G * W(j), he.val + G * ae(he)];
                return me = B(me, U), U.limitRange && U.limitRange(), Be && me.reverse(), l.simpleMap(me, U.l2r || Number);
              }
              function x(X, U, te) {
                var se = 0;
                if (X.rangebreaks)
                  for (var me = X.locateBreaks(U, te), J = 0; J < me.length; J++) {
                    var W = me[J];
                    se += W.max - W.min;
                  }
                return se;
              }
              function D(X, U, te) {
                var se = 0.05 * U._length, me = U._anchorAxis || {};
                if ((U.ticklabelposition || "").indexOf("inside") !== -1 || (me.ticklabelposition || "").indexOf("inside") !== -1) {
                  var J = U.isReversed();
                  if (!J) {
                    var W = l.simpleMap(U.range, U.r2l);
                    J = W[1] < W[0];
                  }
                  J && (te = !te);
                }
                var ae = 0;
                return i(X, U._id) || (ae = w(X, U, te)), se = Math.max(ae, se), U.constrain === "domain" && U._inputDomain && (se *= (U._inputDomain[1] - U._inputDomain[0]) / (U.domain[1] - U.domain[0])), function(ve) {
                  return ve.nopad ? 0 : ve.pad + (ve.extrapad ? se : ae);
                };
              }
              var C = 3;
              function w(X, U, te) {
                var se = 0, me = U._id.charAt(0) === "x";
                for (var J in X._plots) {
                  var W = X._plots[J];
                  if (!(U._id !== W.xaxis._id && U._id !== W.yaxis._id)) {
                    var ae = (me ? W.yaxis : W.xaxis) || {};
                    if ((ae.ticklabelposition || "").indexOf("inside") !== -1 && (!te && (ae.side === "left" || ae.side === "bottom") || te && (ae.side === "top" || ae.side === "right"))) {
                      if (ae._vals) {
                        var oe = l.deg2rad(ae._tickAngles[ae._id + "tick"] || 0), ve = Math.abs(Math.cos(oe)), fe = Math.abs(Math.sin(oe));
                        if (!ae._vals[0].bb) {
                          var ye = ae._id + "tick", Ce = ae._selections[ye];
                          Ce.each(function(Z) {
                            var ee = a.select(this), ie = ee.select(".text-math-group");
                            ie.empty() && (Z.bb = c.bBox(ee.node()));
                          });
                        }
                        for (var Re = 0; Re < ae._vals.length; Re++) {
                          var Be = ae._vals[Re], xe = Be.bb;
                          if (xe) {
                            var Me = 2 * C + xe.width, De = 2 * C + xe.height;
                            se = Math.max(se, me ? Math.max(Me * ve, De * fe) : Math.max(De * ve, Me * fe));
                          }
                        }
                      }
                      ae.ticks === "inside" && ae.ticklabelposition === "inside" && (se += ae.ticklen || 0);
                    }
                  }
                }
                return se;
              }
              function S(X, U, te) {
                var se = U._id, me = X._fullData, J = X._fullLayout, W = [], ae = [], oe, ve, fe;
                function ye(Me, De) {
                  for (oe = 0; oe < De.length; oe++) {
                    var Z = Me[De[oe]], ee = (Z._extremes || {})[se];
                    if (Z.visible === !0 && ee) {
                      for (ve = 0; ve < ee.min.length; ve++)
                        fe = ee.min[ve], A(W, fe.val, fe.pad, {
                          extrapad: fe.extrapad
                        });
                      for (ve = 0; ve < ee.max.length; ve++)
                        fe = ee.max[ve], R(ae, fe.val, fe.pad, {
                          extrapad: fe.extrapad
                        });
                    }
                  }
                }
                if (ye(me, U._traceIndices), ye(J.annotations || [], U._annIndices || []), ye(J.shapes || [], U._shapeIndices || []), U._matchGroup && !te) {
                  for (var Ce in U._matchGroup)
                    if (Ce !== U._id) {
                      var Re = h(X, Ce), Be = S(X, Re, !0), xe = U._length / Re._length;
                      for (ve = 0; ve < Be.min.length; ve++)
                        fe = Be.min[ve], A(W, fe.val, fe.pad * xe, {
                          extrapad: fe.extrapad
                        });
                      for (ve = 0; ve < Be.max.length; ve++)
                        fe = Be.max[ve], R(ae, fe.val, fe.pad * xe, {
                          extrapad: fe.extrapad
                        });
                    }
                }
                return {
                  min: W,
                  max: ae
                };
              }
              function T(X, U, te) {
                if (U.setScale(), U.autorange) {
                  U.range = te ? te.slice() : b(X, U), U._r = U.range.slice(), U._rl = l.simpleMap(U._r, U.r2l);
                  var se = U._input, me = {};
                  me[U._attr + ".range"] = U.range, me[U._attr + ".autorange"] = U.autorange, u.call("_storeDirectGUIEdit", X.layout, X._fullLayout._preGUI, me), se.range = U.range.slice(), se.autorange = U.autorange;
                }
                var J = U._anchorAxis;
                if (J && J.rangeslider) {
                  var W = J.rangeslider[U._name];
                  W && W.rangemode === "auto" && (W.range = b(X, U)), J._input.rangeslider[U._name] = l.extendFlat({}, W);
                }
              }
              function k(X, U, te) {
                te || (te = {}), X._m || X.setScale();
                var se = [], me = [], J = U.length, W = te.padded || !1, ae = te.tozero && (X.type === "linear" || X.type === "-"), oe = X.type === "log", ve = !1, fe = te.vpadLinearized || !1, ye, Ce, Re, Be, xe, Me, De, Z, ee;
                function ie(Ie) {
                  if (Array.isArray(Ie))
                    return ve = !0, function(Ve) {
                      return Math.max(Number(Ie[Ve] || 0), 0);
                    };
                  var Ge = Math.max(Number(Ie || 0), 0);
                  return function() {
                    return Ge;
                  };
                }
                var G = ie((X._m > 0 ? te.ppadplus : te.ppadminus) || te.ppad || 0), H = ie((X._m > 0 ? te.ppadminus : te.ppadplus) || te.ppad || 0), ce = ie(te.vpadplus || te.vpad), j = ie(te.vpadminus || te.vpad);
                if (!ve) {
                  if (Z = 1 / 0, ee = -1 / 0, oe)
                    for (ye = 0; ye < J; ye++)
                      Ce = U[ye], Ce < Z && Ce > 0 && (Z = Ce), Ce > ee && Ce < f && (ee = Ce);
                  else
                    for (ye = 0; ye < J; ye++)
                      Ce = U[ye], Ce < Z && Ce > -f && (Z = Ce), Ce > ee && Ce < f && (ee = Ce);
                  U = [Z, ee], J = 2;
                }
                var he = {
                  tozero: ae,
                  extrapad: W
                };
                function be(Ie) {
                  Re = U[Ie], p(Re) && (Me = G(Ie), De = H(Ie), fe ? (Be = X.c2l(Re) - j(Ie), xe = X.c2l(Re) + ce(Ie)) : (Z = Re - j(Ie), ee = Re + ce(Ie), oe && Z < ee / 10 && (Z = ee / 10), Be = X.c2l(Z), xe = X.c2l(ee)), ae && (Be = Math.min(0, Be), xe = Math.max(0, xe)), I(Be) && A(se, Be, De, he), I(xe) && R(me, xe, Me, he));
                }
                var we = Math.min(6, J);
                for (ye = 0; ye < we; ye++)
                  be(ye);
                for (ye = J - 1; ye >= we; ye--)
                  be(ye);
                return {
                  min: se,
                  max: me,
                  opts: te
                };
              }
              function A(X, U, te, se) {
                g(X, U, te, se, O);
              }
              function R(X, U, te, se) {
                g(X, U, te, se, $);
              }
              function g(X, U, te, se, me) {
                for (var J = se.tozero, W = se.extrapad, ae = !0, oe = 0; oe < X.length && ae; oe++) {
                  var ve = X[oe];
                  if (me(ve.val, U) && ve.pad >= te && (ve.extrapad || !W)) {
                    ae = !1;
                    break;
                  } else
                    me(U, ve.val) && ve.pad <= te && (W || !ve.extrapad) && (X.splice(oe, 1), oe--);
                }
                if (ae) {
                  var fe = J && U === 0;
                  X.push({
                    val: U,
                    pad: fe ? 0 : te,
                    extrapad: fe ? !1 : W
                  });
                }
              }
              function I(X) {
                return p(X) && Math.abs(X) < f;
              }
              function O(X, U) {
                return X <= U;
              }
              function $(X, U) {
                return X >= U;
              }
              function Y(X, U) {
                var te = U.autorangeoptions;
                return te && te.minallowed !== void 0 && q(U, te.minallowed, te.maxallowed) ? te.minallowed : te && te.clipmin !== void 0 && q(U, te.clipmin, te.clipmax) ? Math.max(X, U.d2l(te.clipmin)) : X;
              }
              function ne(X, U) {
                var te = U.autorangeoptions;
                return te && te.maxallowed !== void 0 && q(U, te.minallowed, te.maxallowed) ? te.maxallowed : te && te.clipmax !== void 0 && q(U, te.clipmin, te.clipmax) ? Math.min(X, U.d2l(te.clipmax)) : X;
              }
              function q(X, U, te) {
                return U !== void 0 && te !== void 0 ? (U = X.d2l(U), te = X.d2l(te), U < te) : !0;
              }
              function B(X, U) {
                if (!U || !U.autorangeoptions)
                  return X;
                var te = X[0], se = X[1], me = U.autorangeoptions.include;
                if (me !== void 0) {
                  var J = U.d2l(te), W = U.d2l(se);
                  l.isArrayOrTypedArray(me) || (me = [me]);
                  for (var ae = 0; ae < me.length; ae++) {
                    var oe = U.d2l(me[ae]);
                    J >= oe && (J = oe, te = oe), W <= oe && (W = oe, se = oe);
                  }
                }
                return te = Y(te, U), se = ne(se, U), [te, se];
              }
            }
          ),
          /***/
          6808: (
            /***/
            function(M) {
              M.exports = function(r, a, p) {
                var l, f;
                if (p) {
                  var u = a === "reversed" || a === "min reversed" || a === "max reversed";
                  l = p[u ? 1 : 0], f = p[u ? 0 : 1];
                }
                var c = r("autorangeoptions.minallowed", f === null ? l : void 0), d = r("autorangeoptions.maxallowed", l === null ? f : void 0);
                c === void 0 && r("autorangeoptions.clipmin"), d === void 0 && r("autorangeoptions.clipmax"), r("autorangeoptions.include");
              };
            }
          ),
          /***/
          4460: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(8248), l = r(7316), f = r(4040), u = r(3400), c = u.strTranslate, d = r(2736), h = r(1668), i = r(6308), b = r(3616), x = r(4724), D = r(8728), C = r(9032), w = C.ONEMAXYEAR, S = C.ONEAVGYEAR, T = C.ONEMINYEAR, k = C.ONEMAXQUARTER, A = C.ONEAVGQUARTER, R = C.ONEMINQUARTER, g = C.ONEMAXMONTH, I = C.ONEAVGMONTH, O = C.ONEMINMONTH, $ = C.ONEWEEK, Y = C.ONEDAY, ne = Y / 2, q = C.ONEHOUR, B = C.ONEMIN, X = C.ONESEC, U = C.MINUS_SIGN, te = C.BADNUM, se = {
                K: "zeroline"
              }, me = {
                K: "gridline",
                L: "path"
              }, J = {
                K: "minor-gridline",
                L: "path"
              }, W = {
                K: "tick",
                L: "path"
              }, ae = {
                K: "tick",
                L: "text"
              }, oe = {
                width: ["x", "r", "l", "xl", "xr"],
                height: ["y", "t", "b", "yt", "yb"],
                right: ["r", "xr"],
                left: ["l", "xl"],
                top: ["t", "yt"],
                bottom: ["b", "yb"]
              }, ve = r(4284), fe = ve.MID_SHIFT, ye = ve.CAP_SHIFT, Ce = ve.LINE_SPACING, Re = ve.OPPOSITE_SIDE, Be = 3, xe = M.exports = {};
              xe.setConvert = r(8344);
              var Me = r(2976), De = r(9811), Z = De.idSort, ee = De.isLinked;
              xe.id2name = De.id2name, xe.name2id = De.name2id, xe.cleanId = De.cleanId, xe.list = De.list, xe.listIds = De.listIds, xe.getFromId = De.getFromId, xe.getFromTrace = De.getFromTrace;
              var ie = r(9280);
              xe.getAutoRange = ie.getAutoRange, xe.findExtremes = ie.findExtremes;
              var G = 1e-4;
              function H(Ae) {
                var ue = (Ae[1] - Ae[0]) * G;
                return [Ae[0] - ue, Ae[1] + ue];
              }
              xe.coerceRef = function(Ae, ue, ft, nt, mt, Tt) {
                var bt = nt.charAt(nt.length - 1), vt = ft._fullLayout._subplots[bt + "axis"], ht = nt + "ref", St = {};
                return mt || (mt = vt[0] || (typeof Tt == "string" ? Tt : Tt[0])), Tt || (Tt = mt), vt = vt.concat(vt.map(function(It) {
                  return It + " domain";
                })), St[ht] = {
                  valType: "enumerated",
                  values: vt.concat(Tt ? typeof Tt == "string" ? [Tt] : Tt : []),
                  dflt: mt
                }, u.coerce(Ae, ue, St, ht);
              }, xe.getRefType = function(Ae) {
                return Ae === void 0 ? Ae : Ae === "paper" ? "paper" : Ae === "pixel" ? "pixel" : /( domain)$/.test(Ae) ? "domain" : "range";
              }, xe.coercePosition = function(Ae, ue, ft, nt, mt, Tt) {
                var bt, vt, ht = xe.getRefType(nt);
                if (ht !== "range")
                  bt = u.ensureNumber, vt = ft(mt, Tt);
                else {
                  var St = xe.getFromId(ue, nt);
                  Tt = St.fraction2r(Tt), vt = ft(mt, Tt), bt = St.cleanPos;
                }
                Ae[mt] = bt(vt);
              }, xe.cleanPosition = function(Ae, ue, ft) {
                var nt = ft === "paper" || ft === "pixel" ? u.ensureNumber : xe.getFromId(ue, ft).cleanPos;
                return nt(Ae);
              }, xe.redrawComponents = function(Ae, ue) {
                ue = ue || xe.listIds(Ae);
                var ft = Ae._fullLayout;
                function nt(mt, Tt, bt, vt) {
                  for (var ht = f.getComponentMethod(mt, Tt), St = {}, It = 0; It < ue.length; It++)
                    for (var Ht = ft[xe.id2name(ue[It])], Et = Ht[bt], Zt = 0; Zt < Et.length; Zt++) {
                      var Yt = Et[Zt];
                      if (!St[Yt] && (ht(Ae, Yt), St[Yt] = 1, vt))
                        return;
                    }
                }
                nt("annotations", "drawOne", "_annIndices"), nt("shapes", "drawOne", "_shapeIndices"), nt("images", "draw", "_imgIndices", !0), nt("selections", "drawOne", "_selectionIndices");
              };
              var ce = xe.getDataConversions = function(Ae, ue, ft, nt) {
                var mt, Tt = ft === "x" || ft === "y" || ft === "z" ? ft : nt;
                if (u.isArrayOrTypedArray(Tt)) {
                  if (mt = {
                    type: Me(nt, void 0, {
                      autotypenumbers: Ae._fullLayout.autotypenumbers
                    }),
                    _categories: []
                  }, xe.setConvert(mt), mt.type === "category")
                    for (var bt = 0; bt < nt.length; bt++)
                      mt.d2c(nt[bt]);
                } else
                  mt = xe.getFromTrace(Ae, ue, Tt);
                return mt ? {
                  d2c: mt.d2c,
                  c2d: mt.c2d
                } : Tt === "ids" ? {
                  d2c: he,
                  c2d: he
                } : {
                  d2c: j,
                  c2d: j
                };
              };
              function j(Ae) {
                return +Ae;
              }
              function he(Ae) {
                return String(Ae);
              }
              xe.getDataToCoordFunc = function(Ae, ue, ft, nt) {
                return ce(Ae, ue, ft, nt).d2c;
              }, xe.counterLetter = function(Ae) {
                var ue = Ae.charAt(0);
                if (ue === "x")
                  return "y";
                if (ue === "y")
                  return "x";
              }, xe.minDtick = function(Ae, ue, ft, nt) {
                ["log", "category", "multicategory"].indexOf(Ae.type) !== -1 || !nt ? Ae._minDtick = 0 : Ae._minDtick === void 0 ? (Ae._minDtick = ue, Ae._forceTick0 = ft) : Ae._minDtick && ((Ae._minDtick / ue + 1e-6) % 1 < 2e-6 && // existing minDtick is an integer multiple of newDiff
                // (within rounding err)
                // and forceTick0 can be shifted to newFirst
                ((ft - Ae._forceTick0) / ue % 1 + 1.000001) % 1 < 2e-6 ? (Ae._minDtick = ue, Ae._forceTick0 = ft) : ((ue / Ae._minDtick + 1e-6) % 1 > 2e-6 || // if the converse is true (newDiff is a multiple of minDtick and
                // newFirst can be shifted to forceTick0) then do nothing - same
                // forcing stands. Otherwise, cancel forced minimum
                ((ft - Ae._forceTick0) / Ae._minDtick % 1 + 1.000001) % 1 > 2e-6) && (Ae._minDtick = 0));
              }, xe.saveRangeInitial = function(Ae, ue) {
                for (var ft = xe.list(Ae, "", !0), nt = !1, mt = 0; mt < ft.length; mt++) {
                  var Tt = ft[mt], bt = Tt._rangeInitial0 === void 0 && Tt._rangeInitial1 === void 0, vt = bt || Tt.range[0] !== Tt._rangeInitial0 || Tt.range[1] !== Tt._rangeInitial1, ht = Tt.autorange;
                  (bt && ht !== !0 || ue && vt) && (Tt._rangeInitial0 = ht === "min" || ht === "max reversed" ? void 0 : Tt.range[0], Tt._rangeInitial1 = ht === "max" || ht === "min reversed" ? void 0 : Tt.range[1], Tt._autorangeInitial = ht, nt = !0);
                }
                return nt;
              }, xe.saveShowSpikeInitial = function(Ae, ue) {
                for (var ft = xe.list(Ae, "", !0), nt = !1, mt = "on", Tt = 0; Tt < ft.length; Tt++) {
                  var bt = ft[Tt], vt = bt._showSpikeInitial === void 0, ht = vt || bt.showspikes !== bt._showspikes;
                  (vt || ue && ht) && (bt._showSpikeInitial = bt.showspikes, nt = !0), mt === "on" && !bt.showspikes && (mt = "off");
                }
                return Ae._fullLayout._cartesianSpikesEnabled = mt, nt;
              }, xe.autoBin = function(Ae, ue, ft, nt, mt, Tt) {
                var bt = u.aggNums(Math.min, null, Ae), vt = u.aggNums(Math.max, null, Ae);
                if (ue.type === "category" || ue.type === "multicategory")
                  return {
                    start: bt - 0.5,
                    end: vt + 0.5,
                    size: Math.max(1, Math.round(Tt) || 1),
                    _dataSpan: vt - bt
                  };
                mt || (mt = ue.calendar);
                var ht;
                if (ue.type === "log" ? ht = {
                  type: "linear",
                  range: [bt, vt]
                } : ht = {
                  type: ue.type,
                  range: u.simpleMap([bt, vt], ue.c2r, 0, mt),
                  calendar: mt
                }, xe.setConvert(ht), Tt = Tt && D.dtick(Tt, ht.type), Tt)
                  ht.dtick = Tt, ht.tick0 = D.tick0(void 0, ht.type, mt);
                else {
                  var St;
                  if (ft)
                    St = (vt - bt) / ft;
                  else {
                    var It = u.distinctVals(Ae), Ht = Math.pow(10, Math.floor(Math.log(It.minDiff) / Math.LN10)), Et = Ht * u.roundUp(It.minDiff / Ht, [0.9, 1.9, 4.9, 9.9], !0);
                    St = Math.max(Et, 2 * u.stdev(Ae) / Math.pow(Ae.length, nt ? 0.25 : 0.4)), p(St) || (St = 1);
                  }
                  xe.autoTicks(ht, St);
                }
                var Zt = ht.dtick, Yt = xe.tickIncrement(xe.tickFirst(ht), Zt, "reverse", mt), Gt, $t;
                if (typeof Zt == "number")
                  Yt = be(Yt, Ae, ht, bt, vt), $t = 1 + Math.floor((vt - Yt) / Zt), Gt = Yt + $t * Zt;
                else
                  for (ht.dtick.charAt(0) === "M" && (Yt = we(Yt, Ae, Zt, bt, mt)), Gt = Yt, $t = 0; Gt <= vt; )
                    Gt = xe.tickIncrement(Gt, Zt, !1, mt), $t++;
                return {
                  start: ue.c2r(Yt, 0, mt),
                  end: ue.c2r(Gt, 0, mt),
                  size: Zt,
                  _dataSpan: vt - bt
                };
              };
              function be(Ae, ue, ft, nt, mt) {
                var Tt = 0, bt = 0, vt = 0, ht = 0;
                function St(Zt) {
                  return (1 + (Zt - Ae) * 100 / ft.dtick) % 100 < 2;
                }
                for (var It = 0; It < ue.length; It++)
                  ue[It] % 1 === 0 ? vt++ : p(ue[It]) || ht++, St(ue[It]) && Tt++, St(ue[It] + ft.dtick / 2) && bt++;
                var Ht = ue.length - ht;
                if (vt === Ht && ft.type !== "date")
                  ft.dtick < 1 ? Ae = nt - 0.5 * ft.dtick : (Ae -= 0.5, Ae + ft.dtick < nt && (Ae += ft.dtick));
                else if (bt < Ht * 0.1 && (Tt > Ht * 0.3 || St(nt) || St(mt))) {
                  var Et = ft.dtick / 2;
                  Ae += Ae + Et < nt ? Et : -Et;
                }
                return Ae;
              }
              function we(Ae, ue, ft, nt, mt) {
                var Tt = u.findExactDates(ue, mt), bt = 0.8;
                if (Tt.exactDays > bt) {
                  var vt = Number(ft.substr(1));
                  Tt.exactYears > bt && vt % 12 === 0 ? Ae = xe.tickIncrement(Ae, "M6", "reverse") + Y * 1.5 : Tt.exactMonths > bt ? Ae = xe.tickIncrement(Ae, "M1", "reverse") + Y * 15.5 : Ae -= ne;
                  var ht = xe.tickIncrement(Ae, ft);
                  if (ht <= nt)
                    return ht;
                }
                return Ae;
              }
              xe.prepMinorTicks = function(Ae, ue, ft) {
                if (!ue.minor.dtick) {
                  delete Ae.dtick;
                  var nt = ue.dtick && p(ue._tmin), mt;
                  if (nt) {
                    var Tt = xe.tickIncrement(ue._tmin, ue.dtick, !0);
                    mt = [ue._tmin, Tt * 0.99 + ue._tmin * 0.01];
                  } else {
                    var bt = u.simpleMap(ue.range, ue.r2l);
                    mt = [bt[0], 0.8 * bt[0] + 0.2 * bt[1]];
                  }
                  if (Ae.range = u.simpleMap(mt, ue.l2r), Ae._isMinor = !0, xe.prepTicks(Ae, ft), nt) {
                    var vt = p(ue.dtick), ht = p(Ae.dtick), St = vt ? ue.dtick : +ue.dtick.substring(1), It = ht ? Ae.dtick : +Ae.dtick.substring(1);
                    vt && ht ? Ie(St, It) ? St === 2 * $ && It === 2 * Y && (Ae.dtick = $) : St === 2 * $ && It === 3 * Y ? Ae.dtick = $ : St === $ && !(ue._input.minor || {}).nticks ? Ae.dtick = Y : Ge(St / It, 2.5) ? Ae.dtick = St / 2 : Ae.dtick = St : String(ue.dtick).charAt(0) === "M" ? ht ? Ae.dtick = "M1" : Ie(St, It) ? St >= 12 && It === 2 && (Ae.dtick = "M3") : Ae.dtick = ue.dtick : String(Ae.dtick).charAt(0) === "L" ? String(ue.dtick).charAt(0) === "L" ? Ie(St, It) || (Ae.dtick = Ge(St / It, 2.5) ? ue.dtick / 2 : ue.dtick) : Ae.dtick = "D1" : Ae.dtick === "D2" && +ue.dtick > 1 && (Ae.dtick = 1);
                  }
                  Ae.range = ue.range;
                }
                ue.minor._tick0Init === void 0 && (Ae.tick0 = ue.tick0);
              };
              function Ie(Ae, ue) {
                return Math.abs((Ae / ue + 0.5) % 1 - 0.5) < 1e-3;
              }
              function Ge(Ae, ue) {
                return Math.abs(Ae / ue - 1) < 1e-3;
              }
              xe.prepTicks = function(Ae, ue) {
                var ft = u.simpleMap(Ae.range, Ae.r2l, void 0, void 0, ue);
                if (Ae.tickmode === "auto" || !Ae.dtick) {
                  var nt = Ae.nticks, mt;
                  nt || (Ae.type === "category" || Ae.type === "multicategory" ? (mt = Ae.tickfont ? u.bigFont(Ae.tickfont.size || 12) : 15, nt = Ae._length / mt) : (mt = Ae._id.charAt(0) === "y" ? 40 : 80, nt = u.constrain(Ae._length / mt, 4, 9) + 1), Ae._name === "radialaxis" && (nt *= 2)), Ae.minor && Ae.minor.tickmode !== "array" || Ae.tickmode === "array" && (nt *= 100), Ae._roughDTick = Math.abs(ft[1] - ft[0]) / nt, xe.autoTicks(Ae, Ae._roughDTick), Ae._minDtick > 0 && Ae.dtick < Ae._minDtick * 2 && (Ae.dtick = Ae._minDtick, Ae.tick0 = Ae.l2r(Ae._forceTick0));
                }
                Ae.ticklabelmode === "period" && Je(Ae), Ae.tick0 || (Ae.tick0 = Ae.type === "date" ? "2000-01-01" : 0), Ae.type === "date" && Ae.dtick < 0.1 && (Ae.dtick = 0.1), Mt(Ae);
              };
              function Ve(Ae) {
                return +Ae.substring(1);
              }
              function Je(Ae) {
                var ue;
                function ft() {
                  return !(p(Ae.dtick) || Ae.dtick.charAt(0) !== "M");
                }
                var nt = ft(), mt = xe.getTickFormat(Ae);
                if (mt) {
                  var Tt = Ae._dtickInit !== Ae.dtick;
                  /%[fLQsSMX]/.test(mt) || (/%[HI]/.test(mt) ? (ue = q, Tt && !nt && Ae.dtick < q && (Ae.dtick = q)) : /%p/.test(mt) ? (ue = ne, Tt && !nt && Ae.dtick < ne && (Ae.dtick = ne)) : /%[Aadejuwx]/.test(mt) ? (ue = Y, Tt && !nt && Ae.dtick < Y && (Ae.dtick = Y)) : /%[UVW]/.test(mt) ? (ue = $, Tt && !nt && Ae.dtick < $ && (Ae.dtick = $)) : /%[Bbm]/.test(mt) ? (ue = I, Tt && (nt ? Ve(Ae.dtick) < 1 : Ae.dtick < O) && (Ae.dtick = "M1")) : /%[q]/.test(mt) ? (ue = A, Tt && (nt ? Ve(Ae.dtick) < 3 : Ae.dtick < R) && (Ae.dtick = "M3")) : /%[Yy]/.test(mt) && (ue = S, Tt && (nt ? Ve(Ae.dtick) < 12 : Ae.dtick < T) && (Ae.dtick = "M12")));
                }
                nt = ft(), nt && Ae.tick0 === Ae._dowTick0 && (Ae.tick0 = Ae._rawTick0), Ae._definedDelta = ue;
              }
              function et(Ae, ue, ft) {
                for (var nt = 0; nt < Ae.length; nt++) {
                  var mt = Ae[nt].value, Tt = nt, bt = nt + 1;
                  nt < Ae.length - 1 ? (Tt = nt, bt = nt + 1) : nt > 0 ? (Tt = nt - 1, bt = nt) : (Tt = nt, bt = nt);
                  var vt = Ae[Tt].value, ht = Ae[bt].value, St = Math.abs(ht - vt), It = ft || St, Ht = 0;
                  It >= T ? St >= T && St <= w ? Ht = St : Ht = S : ft === A && It >= R ? St >= R && St <= k ? Ht = St : Ht = A : It >= O ? St >= O && St <= g ? Ht = St : Ht = I : ft === $ && It >= $ ? Ht = $ : It >= Y ? Ht = Y : ft === ne && It >= ne ? Ht = ne : ft === q && It >= q && (Ht = q);
                  var Et;
                  Ht >= St && (Ht = St, Et = !0);
                  var Zt = mt + Ht;
                  if (ue.rangebreaks && Ht > 0) {
                    for (var Yt = 84, Gt = 0, $t = 0; $t < Yt; $t++) {
                      var ir = ($t + 0.5) / Yt;
                      ue.maskBreaks(mt * (1 - ir) + ir * Zt) !== te && Gt++;
                    }
                    Ht *= Gt / Yt, Ht || (Ae[nt].drop = !0), Et && St > $ && (Ht = St);
                  }
                  (Ht > 0 || // not instant
                  nt === 0) && (Ae[nt].periodX = mt + Ht / 2);
                }
              }
              xe.calcTicks = function(ue, ft) {
                for (var nt = ue.type, mt = ue.calendar, Tt = ue.ticklabelstep, bt = ue.ticklabelmode === "period", vt = u.simpleMap(ue.range, ue.r2l, void 0, void 0, ft), ht = vt[1] < vt[0], St = Math.min(vt[0], vt[1]), It = Math.max(vt[0], vt[1]), Ht = Math.max(1e3, ue._length || 0), Et = [], Zt = [], Yt = [], Gt = [], $t = ue.minor && (ue.minor.ticks || ue.minor.showgrid), ir = 1; ir >= ($t ? 0 : 1); ir--) {
                  var wr = !ir;
                  ir ? (ue._dtickInit = ue.dtick, ue._tick0Init = ue.tick0) : (ue.minor._dtickInit = ue.minor.dtick, ue.minor._tick0Init = ue.minor.tick0);
                  var sr = ir ? ue : u.extendFlat({}, ue, ue.minor);
                  if (wr ? xe.prepMinorTicks(sr, ue, ft) : xe.prepTicks(sr, ft), sr.tickmode === "array") {
                    ir ? (Yt = [], Et = ze(ue, !wr)) : (Gt = [], Zt = ze(ue, !wr));
                    continue;
                  }
                  if (sr.tickmode === "sync") {
                    Yt = [], Et = Le(ue);
                    continue;
                  }
                  var Xr = H(vt), Lr = Xr[0], Pr = Xr[1], $r = p(sr.dtick), Jr = nt === "log" && !($r || sr.dtick.charAt(0) === "L"), Qr = xe.tickFirst(sr, ft);
                  if (ir) {
                    if (ue._tmin = Qr, Qr < Lr !== ht)
                      break;
                    (nt === "category" || nt === "multicategory") && (Pr = ht ? Math.max(-0.5, Pr) : Math.min(ue._categories.length - 0.5, Pr));
                  }
                  var vn = null, An = Qr, hn;
                  if (ir) {
                    var Pn;
                    $r ? Pn = ue.dtick : nt === "date" ? typeof ue.dtick == "string" && ue.dtick.charAt(0) === "M" && (Pn = I * ue.dtick.substring(1)) : Pn = ue._roughDTick, hn = Math.round((ue.r2l(An) - ue.r2l(ue.tick0)) / Pn) - 1;
                  }
                  var sa = sr.dtick;
                  for (sr.rangebreaks && sr._tick0Init !== sr.tick0 && (An = Cr(An, ue), ht || (An = xe.tickIncrement(An, sa, !ht, mt))), ir && bt && (An = xe.tickIncrement(An, sa, !ht, mt), hn--); ht ? An >= Pr : An <= Pr; An = xe.tickIncrement(An, sa, ht, mt)) {
                    if (ir && hn++, sr.rangebreaks && !ht) {
                      if (An < Lr)
                        continue;
                      if (sr.maskBreaks(An) === te && Cr(An, sr) >= It)
                        break;
                    }
                    if (Yt.length > Ht || An === vn)
                      break;
                    vn = An;
                    var Ra = {
                      value: An
                    };
                    ir ? (Jr && An !== (An | 0) && (Ra.simpleLabel = !0), Tt > 1 && hn % Tt && (Ra.skipLabel = !0), Yt.push(Ra)) : (Ra.minor = !0, Gt.push(Ra));
                  }
                }
                if ($t) {
                  var rn = ue.minor.ticks === "inside" && ue.ticks === "outside" || ue.minor.ticks === "outside" && ue.ticks === "inside";
                  if (!rn) {
                    for (var ua = Yt.map(function(ri) {
                      return ri.value;
                    }), dn = [], Dn = 0; Dn < Gt.length; Dn++) {
                      var Sn = Gt[Dn], Fn = Sn.value;
                      if (ua.indexOf(Fn) === -1) {
                        for (var Mn = !1, qn = 0; !Mn && qn < Yt.length; qn++)
                          // add 10e6 to eliminate problematic digits
                          1e7 + Yt[qn].value === 1e7 + Fn && (Mn = !0);
                        Mn || dn.push(Sn);
                      }
                    }
                    Gt = dn;
                  }
                }
                bt && et(Yt, ue, ue._definedDelta);
                var Rn;
                if (ue.rangebreaks) {
                  var ea = ue._id.charAt(0) === "y", ga = 1;
                  ue.tickmode === "auto" && (ga = ue.tickfont ? ue.tickfont.size : 12);
                  var oa = NaN;
                  for (Rn = Yt.length - 1; Rn > -1; Rn--) {
                    if (Yt[Rn].drop) {
                      Yt.splice(Rn, 1);
                      continue;
                    }
                    Yt[Rn].value = Cr(Yt[Rn].value, ue);
                    var Kn = ue.c2p(Yt[Rn].value);
                    (ea ? oa > Kn - ga : oa < Kn + ga) ? Yt.splice(ht ? Rn + 1 : Rn, 1) : oa = Kn;
                  }
                }
                Er(ue) && Math.abs(vt[1] - vt[0]) === 360 && Yt.pop(), ue._tmax = (Yt[Yt.length - 1] || {}).value, ue._prevDateHead = "", ue._inCalcTicks = !0;
                var ba, Fa = function(ri) {
                  ri.text = "", ue._prevDateHead = ba;
                };
                Yt = Yt.concat(Gt);
                var xa, _a;
                for (Rn = 0; Rn < Yt.length; Rn++) {
                  var si = Yt[Rn].minor, pi = Yt[Rn].value;
                  si ? Zt.push({
                    x: pi,
                    minor: !0
                  }) : (ba = ue._prevDateHead, xa = xe.tickText(
                    ue,
                    pi,
                    !1,
                    // hover
                    Yt[Rn].simpleLabel
                    // noSuffixPrefix
                  ), _a = Yt[Rn].periodX, _a !== void 0 && (xa.periodX = _a, (_a > It || _a < St) && (_a > It && (xa.periodX = It), _a < St && (xa.periodX = St), Fa(xa))), Yt[Rn].skipLabel && Fa(xa), Et.push(xa));
                }
                return Et = Et.concat(Zt), ue._inCalcTicks = !1, bt && Et.length && (Et[0].noTick = !0), Et;
              };
              function at(Ae, ue) {
                return Ae.rangebreaks && (ue = ue.filter(function(ft) {
                  return Ae.maskBreaks(ft.x) !== te;
                })), ue;
              }
              function Le(Ae) {
                var ue = Ae._mainAxis, ft = [];
                if (ue._vals) {
                  for (var nt = 0; nt < ue._vals.length; nt++)
                    if (!ue._vals[nt].noTick) {
                      var mt = ue.l2p(ue._vals[nt].x), Tt = Ae.p2l(mt), bt = xe.tickText(Ae, Tt);
                      ue._vals[nt].minor && (bt.minor = !0, bt.text = ""), ft.push(bt);
                    }
                }
                return ft = at(Ae, ft), ft;
              }
              function ze(Ae, ue) {
                var ft = u.simpleMap(Ae.range, Ae.r2l), nt = H(ft), mt = Math.min(nt[0], nt[1]), Tt = Math.max(nt[0], nt[1]), bt = Ae.type === "category" ? Ae.d2l_noadd : Ae.d2l;
                Ae.type === "log" && String(Ae.dtick).charAt(0) !== "L" && (Ae.dtick = "L" + Math.pow(10, Math.floor(Math.min(Ae.range[0], Ae.range[1])) - 1));
                for (var vt = [], ht = 0; ht <= 1; ht++)
                  if (!(ue !== void 0 && (ue && ht || ue === !1 && !ht)) && !(ht && !Ae.minor)) {
                    var St = ht ? Ae.minor.tickvals : Ae.tickvals, It = ht ? [] : Ae.ticktext;
                    if (St) {
                      u.isArrayOrTypedArray(It) || (It = []);
                      for (var Ht = 0; Ht < St.length; Ht++) {
                        var Et = bt(St[Ht]);
                        if (Et > mt && Et < Tt) {
                          var Zt = xe.tickText(Ae, Et, !1, String(It[Ht]));
                          ht && (Zt.minor = !0, Zt.text = ""), vt.push(Zt);
                        }
                      }
                    }
                  }
                return vt = at(Ae, vt), vt;
              }
              var Oe = [2, 5, 10], Xe = [1, 2, 3, 6, 12], it = [1, 2, 5, 10, 15, 30], ut = [1, 2, 3, 7, 14], wt = [-0.046, 0, 0.301, 0.477, 0.602, 0.699, 0.778, 0.845, 0.903, 0.954, 1], kt = [-0.301, 0, 0.301, 0.699, 1], Ot = [15, 30, 45, 90, 180];
              function Lt(Ae, ue, ft) {
                return ue * u.roundUp(Ae / ue, ft);
              }
              xe.autoTicks = function(Ae, ue, ft) {
                var nt;
                function mt(Ht) {
                  return Math.pow(Ht, Math.floor(Math.log(ue) / Math.LN10));
                }
                if (Ae.type === "date") {
                  Ae.tick0 = u.dateTick0(Ae.calendar, 0);
                  var Tt = 2 * ue;
                  if (Tt > S)
                    ue /= S, nt = mt(10), Ae.dtick = "M" + 12 * Lt(ue, nt, Oe);
                  else if (Tt > I)
                    ue /= I, Ae.dtick = "M" + Lt(ue, 1, Xe);
                  else if (Tt > Y) {
                    if (Ae.dtick = Lt(ue, Y, Ae._hasDayOfWeekBreaks ? [1, 2, 7, 14] : ut), !ft) {
                      var bt = xe.getTickFormat(Ae), vt = Ae.ticklabelmode === "period";
                      vt && (Ae._rawTick0 = Ae.tick0), /%[uVW]/.test(bt) ? Ae.tick0 = u.dateTick0(Ae.calendar, 2) : Ae.tick0 = u.dateTick0(Ae.calendar, 1), vt && (Ae._dowTick0 = Ae.tick0);
                    }
                  } else
                    Tt > q ? Ae.dtick = Lt(ue, q, Xe) : Tt > B ? Ae.dtick = Lt(ue, B, it) : Tt > X ? Ae.dtick = Lt(ue, X, it) : (nt = mt(10), Ae.dtick = Lt(ue, nt, Oe));
                } else if (Ae.type === "log") {
                  Ae.tick0 = 0;
                  var ht = u.simpleMap(Ae.range, Ae.r2l);
                  if (Ae._isMinor && (ue *= 1.5), ue > 0.7)
                    Ae.dtick = Math.ceil(ue);
                  else if (Math.abs(ht[1] - ht[0]) < 1) {
                    var St = 1.5 * Math.abs((ht[1] - ht[0]) / ue);
                    ue = Math.abs(Math.pow(10, ht[1]) - Math.pow(10, ht[0])) / St, nt = mt(10), Ae.dtick = "L" + Lt(ue, nt, Oe);
                  } else
                    Ae.dtick = ue > 0.3 ? "D2" : "D1";
                } else
                  Ae.type === "category" || Ae.type === "multicategory" ? (Ae.tick0 = 0, Ae.dtick = Math.ceil(Math.max(ue, 1))) : Er(Ae) ? (Ae.tick0 = 0, nt = 1, Ae.dtick = Lt(ue, nt, Ot)) : (Ae.tick0 = 0, nt = mt(10), Ae.dtick = Lt(ue, nt, Oe));
                if (Ae.dtick === 0 && (Ae.dtick = 1), !p(Ae.dtick) && typeof Ae.dtick != "string") {
                  var It = Ae.dtick;
                  throw Ae.dtick = 1, "ax.dtick error: " + String(It);
                }
              };
              function Mt(Ae) {
                var ue = Ae.dtick;
                if (Ae._tickexponent = 0, !p(ue) && typeof ue != "string" && (ue = 1), (Ae.type === "category" || Ae.type === "multicategory") && (Ae._tickround = null), Ae.type === "date") {
                  var ft = Ae.r2l(Ae.tick0), nt = Ae.l2r(ft).replace(/(^-|i)/g, ""), mt = nt.length;
                  if (String(ue).charAt(0) === "M")
                    mt > 10 || nt.substr(5) !== "01-01" ? Ae._tickround = "d" : Ae._tickround = +ue.substr(1) % 12 === 0 ? "y" : "m";
                  else if (ue >= Y && mt <= 10 || ue >= Y * 15)
                    Ae._tickround = "d";
                  else if (ue >= B && mt <= 16 || ue >= q)
                    Ae._tickround = "M";
                  else if (ue >= X && mt <= 19 || ue >= B)
                    Ae._tickround = "S";
                  else {
                    var Tt = Ae.l2r(ft + ue).replace(/^-/, "").length;
                    Ae._tickround = Math.max(mt, Tt) - 20, Ae._tickround < 0 && (Ae._tickround = 4);
                  }
                } else if (p(ue) || ue.charAt(0) === "L") {
                  var bt = Ae.range.map(Ae.r2d || Number);
                  p(ue) || (ue = Number(ue.substr(1))), Ae._tickround = 2 - Math.floor(Math.log(ue) / Math.LN10 + 0.01);
                  var vt = Math.max(Math.abs(bt[0]), Math.abs(bt[1])), ht = Math.floor(Math.log(vt) / Math.LN10 + 0.01), St = Ae.minexponent === void 0 ? 3 : Ae.minexponent;
                  Math.abs(ht) > St && (je(Ae.exponentformat) && !lt(ht) ? Ae._tickexponent = 3 * Math.round((ht - 1) / 3) : Ae._tickexponent = ht);
                } else
                  Ae._tickround = null;
              }
              xe.tickIncrement = function(Ae, ue, ft, nt) {
                var mt = ft ? -1 : 1;
                if (p(ue))
                  return u.increment(Ae, mt * ue);
                var Tt = ue.charAt(0), bt = mt * Number(ue.substr(1));
                if (Tt === "M")
                  return u.incrementMonth(Ae, bt, nt);
                if (Tt === "L")
                  return Math.log(Math.pow(10, Ae) + bt) / Math.LN10;
                if (Tt === "D") {
                  var vt = ue === "D2" ? kt : wt, ht = Ae + mt * 0.01, St = u.roundUp(u.mod(ht, 1), vt, ft);
                  return Math.floor(ht) + Math.log(a.round(Math.pow(10, St), 1)) / Math.LN10;
                }
                throw "unrecognized dtick " + String(ue);
              }, xe.tickFirst = function(Ae, ue) {
                var ft = Ae.r2l || Number, nt = u.simpleMap(Ae.range, ft, void 0, void 0, ue), mt = nt[1] < nt[0], Tt = mt ? Math.floor : Math.ceil, bt = H(nt)[0], vt = Ae.dtick, ht = ft(Ae.tick0);
                if (p(vt)) {
                  var St = Tt((bt - ht) / vt) * vt + ht;
                  return (Ae.type === "category" || Ae.type === "multicategory") && (St = u.constrain(St, 0, Ae._categories.length - 1)), St;
                }
                var It = vt.charAt(0), Ht = Number(vt.substr(1));
                if (It === "M") {
                  for (var Et = 0, Zt = ht, Yt, Gt, $t; Et < 10; ) {
                    if (Yt = xe.tickIncrement(Zt, vt, mt, Ae.calendar), (Yt - bt) * (Zt - bt) <= 0)
                      return mt ? Math.min(Zt, Yt) : Math.max(Zt, Yt);
                    Gt = (bt - (Zt + Yt) / 2) / (Yt - Zt), $t = It + (Math.abs(Math.round(Gt)) || 1) * Ht, Zt = xe.tickIncrement(Zt, $t, Gt < 0 ? !mt : mt, Ae.calendar), Et++;
                  }
                  return u.error("tickFirst did not converge", Ae), Zt;
                } else {
                  if (It === "L")
                    return Math.log(Tt((Math.pow(10, bt) - ht) / Ht) * Ht + ht) / Math.LN10;
                  if (It === "D") {
                    var ir = vt === "D2" ? kt : wt, wr = u.roundUp(u.mod(bt, 1), ir, mt);
                    return Math.floor(bt) + Math.log(a.round(Math.pow(10, wr), 1)) / Math.LN10;
                  } else
                    throw "unrecognized dtick " + String(vt);
                }
              }, xe.tickText = function(Ae, ue, ft, nt) {
                var mt = Ut(Ae, ue), Tt = Ae.tickmode === "array", bt = ft || Tt, vt = Ae.type, ht = vt === "category" ? Ae.d2l_noadd : Ae.d2l, St, It = function($t) {
                  var ir = Ae.l2p($t);
                  return ir >= 0 && ir <= Ae._length ? $t : null;
                };
                if (Tt && u.isArrayOrTypedArray(Ae.ticktext)) {
                  var Ht = u.simpleMap(Ae.range, Ae.r2l), Et = (Math.abs(Ht[1] - Ht[0]) - (Ae._lBreaks || 0)) / 1e4;
                  for (St = 0; St < Ae.ticktext.length && !(Math.abs(ue - ht(Ae.tickvals[St])) < Et); St++)
                    ;
                  if (St < Ae.ticktext.length)
                    return mt.text = String(Ae.ticktext[St]), mt.xbnd = [It(mt.x - 0.5), It(mt.x + Ae.dtick - 0.5)], mt;
                }
                function Zt($t) {
                  if ($t === void 0)
                    return !0;
                  if (ft)
                    return $t === "none";
                  var ir = {
                    first: Ae._tmin,
                    last: Ae._tmax
                  }[$t];
                  return $t !== "all" && ue !== ir;
                }
                var Yt = ft ? "never" : Ae.exponentformat !== "none" && Zt(Ae.showexponent) ? "hide" : "";
                if (vt === "date" ? Ct(Ae, mt, ft, bt) : vt === "log" ? jt(Ae, mt, ft, bt, Yt) : vt === "category" ? nr(Ae, mt) : vt === "multicategory" ? Jt(Ae, mt, ft) : Er(Ae) ? qe(Ae, mt, ft, bt, Yt) : Wt(Ae, mt, ft, bt, Yt), nt || (Ae.tickprefix && !Zt(Ae.showtickprefix) && (mt.text = Ae.tickprefix + mt.text), Ae.ticksuffix && !Zt(Ae.showticksuffix) && (mt.text += Ae.ticksuffix)), Ae.labelalias && Ae.labelalias.hasOwnProperty(mt.text)) {
                  var Gt = Ae.labelalias[mt.text];
                  typeof Gt == "string" && (mt.text = Gt);
                }
                return (Ae.tickson === "boundaries" || Ae.showdividers) && (mt.xbnd = [It(mt.x - 0.5), It(mt.x + Ae.dtick - 0.5)]), mt;
              }, xe.hoverLabelText = function(Ae, ue, ft) {
                ft && (Ae = u.extendFlat({}, Ae, {
                  hoverformat: ft
                }));
                var nt = u.isArrayOrTypedArray(ue) ? ue[0] : ue, mt = u.isArrayOrTypedArray(ue) ? ue[1] : void 0;
                if (mt !== void 0 && mt !== nt)
                  return xe.hoverLabelText(Ae, nt, ft) + " - " + xe.hoverLabelText(Ae, mt, ft);
                var Tt = Ae.type === "log" && nt <= 0, bt = xe.tickText(Ae, Ae.c2l(Tt ? -nt : nt), "hover").text;
                return Tt ? nt === 0 ? "0" : U + bt : bt;
              };
              function Ut(Ae, ue, ft) {
                var nt = Ae.tickfont || {};
                return {
                  x: ue,
                  dx: 0,
                  dy: 0,
                  text: ft || "",
                  fontSize: nt.size,
                  font: nt.family,
                  fontWeight: nt.weight,
                  fontStyle: nt.style,
                  fontVariant: nt.variant,
                  fontTextcase: nt.textcase,
                  fontLineposition: nt.lineposition,
                  fontShadow: nt.shadow,
                  fontColor: nt.color
                };
              }
              function Ct(Ae, ue, ft, nt) {
                var mt = Ae._tickround, Tt = ft && Ae.hoverformat || xe.getTickFormat(Ae);
                nt = !Tt && nt, nt && (p(mt) ? mt = 4 : mt = {
                  y: "m",
                  m: "d",
                  d: "M",
                  M: "S",
                  S: 4
                }[mt]);
                var bt = u.formatDate(ue.x, Tt, mt, Ae._dateFormat, Ae.calendar, Ae._extraFormat), vt, ht = bt.indexOf(`
`);
                if (ht !== -1 && (vt = bt.substr(ht + 1), bt = bt.substr(0, ht)), nt && (vt !== void 0 && (bt === "00:00:00" || bt === "00:00") ? (bt = vt, vt = "") : bt.length === 8 && (bt = bt.replace(/:00$/, ""))), vt)
                  if (ft)
                    mt === "d" ? bt += ", " + vt : bt = vt + (bt ? ", " + bt : "");
                  else if (!Ae._inCalcTicks || Ae._prevDateHead !== vt)
                    Ae._prevDateHead = vt, bt += "<br>" + vt;
                  else {
                    var St = zr(Ae), It = Ae._trueSide || Ae.side;
                    (!St && It === "top" || St && It === "bottom") && (bt += "<br> ");
                  }
                ue.text = bt;
              }
              function jt(Ae, ue, ft, nt, mt) {
                var Tt = Ae.dtick, bt = ue.x, vt = Ae.tickformat, ht = typeof Tt == "string" && Tt.charAt(0);
                if (mt === "never" && (mt = ""), nt && ht !== "L" && (Tt = "L3", ht = "L"), vt || ht === "L")
                  ue.text = Se(Math.pow(10, bt), Ae, mt, nt);
                else if (p(Tt) || ht === "D" && u.mod(bt + 0.01, 1) < 0.1) {
                  var St = Math.round(bt), It = Math.abs(St), Ht = Ae.exponentformat;
                  Ht === "power" || je(Ht) && lt(St) ? (St === 0 ? ue.text = 1 : St === 1 ? ue.text = "10" : ue.text = "10<sup>" + (St > 1 ? "" : U) + It + "</sup>", ue.fontSize *= 1.25) : (Ht === "e" || Ht === "E") && It > 2 ? ue.text = "1" + Ht + (St > 0 ? "+" : U) + It : (ue.text = Se(Math.pow(10, bt), Ae, "", "fakehover"), Tt === "D1" && Ae._id.charAt(0) === "y" && (ue.dy -= ue.fontSize / 6));
                } else if (ht === "D")
                  ue.text = String(Math.round(Math.pow(10, u.mod(bt, 1)))), ue.fontSize *= 0.75;
                else
                  throw "unrecognized dtick " + String(Tt);
                if (Ae.dtick === "D1") {
                  var Et = String(ue.text).charAt(0);
                  (Et === "0" || Et === "1") && (Ae._id.charAt(0) === "y" ? ue.dx -= ue.fontSize / 4 : (ue.dy += ue.fontSize / 2, ue.dx += (Ae.range[1] > Ae.range[0] ? 1 : -1) * ue.fontSize * (bt < 0 ? 0.5 : 0.25)));
                }
              }
              function nr(Ae, ue) {
                var ft = Ae._categories[Math.round(ue.x)];
                ft === void 0 && (ft = ""), ue.text = String(ft);
              }
              function Jt(Ae, ue, ft) {
                var nt = Math.round(ue.x), mt = Ae._categories[nt] || [], Tt = mt[1] === void 0 ? "" : String(mt[1]), bt = mt[0] === void 0 ? "" : String(mt[0]);
                ft ? ue.text = bt + " - " + Tt : (ue.text = Tt, ue.text2 = bt);
              }
              function Wt(Ae, ue, ft, nt, mt) {
                mt === "never" ? mt = "" : Ae.showexponent === "all" && Math.abs(ue.x / Ae.dtick) < 1e-6 && (mt = "hide"), ue.text = Se(ue.x, Ae, mt, nt);
              }
              function qe(Ae, ue, ft, nt, mt) {
                if (Ae.thetaunit === "radians" && !ft) {
                  var Tt = ue.x / 180;
                  if (Tt === 0)
                    ue.text = "0";
                  else {
                    var bt = Ue(Tt);
                    if (bt[1] >= 100)
                      ue.text = Se(u.deg2rad(ue.x), Ae, mt, nt);
                    else {
                      var vt = ue.x < 0;
                      bt[1] === 1 ? bt[0] === 1 ? ue.text = "π" : ue.text = bt[0] + "π" : ue.text = ["<sup>", bt[0], "</sup>", "⁄", "<sub>", bt[1], "</sub>", "π"].join(""), vt && (ue.text = U + ue.text);
                    }
                  }
                } else
                  ue.text = Se(ue.x, Ae, mt, nt);
              }
              function Ue(Ae) {
                function ue(vt, ht) {
                  return Math.abs(vt - ht) <= 1e-6;
                }
                function ft(vt, ht) {
                  return ue(ht, 0) ? vt : ft(ht, vt % ht);
                }
                function nt(vt) {
                  for (var ht = 1; !ue(Math.round(vt * ht) / ht, vt); )
                    ht *= 10;
                  return ht;
                }
                var mt = nt(Ae), Tt = Ae * mt, bt = Math.abs(ft(Tt, mt));
                return [
                  // numerator
                  Math.round(Tt / bt),
                  // denominator
                  Math.round(mt / bt)
                ];
              }
              var We = ["f", "p", "n", "μ", "m", "", "k", "M", "G", "T"];
              function je(Ae) {
                return Ae === "SI" || Ae === "B";
              }
              function lt(Ae) {
                return Ae > 14 || Ae < -15;
              }
              function Se(Ae, ue, ft, nt) {
                var mt = Ae < 0, Tt = ue._tickround, bt = ft || ue.exponentformat || "B", vt = ue._tickexponent, ht = xe.getTickFormat(ue), St = ue.separatethousands;
                if (nt) {
                  var It = {
                    exponentformat: bt,
                    minexponent: ue.minexponent,
                    dtick: ue.showexponent === "none" ? ue.dtick : p(Ae) && Math.abs(Ae) || 1,
                    // if not showing any exponents, don't change the exponent
                    // from what we calculate
                    range: ue.showexponent === "none" ? ue.range.map(ue.r2d) : [0, Ae || 1]
                  };
                  Mt(It), Tt = (Number(It._tickround) || 0) + 4, vt = It._tickexponent, ue.hoverformat && (ht = ue.hoverformat);
                }
                if (ht)
                  return ue._numFormat(ht)(Ae).replace(/-/g, U);
                var Ht = Math.pow(10, -Tt) / 2;
                if (bt === "none" && (vt = 0), Ae = Math.abs(Ae), Ae < Ht)
                  Ae = "0", mt = !1;
                else {
                  if (Ae += Ht, vt && (Ae *= Math.pow(10, -vt), Tt += vt), Tt === 0)
                    Ae = String(Math.floor(Ae));
                  else if (Tt < 0) {
                    Ae = String(Math.round(Ae)), Ae = Ae.substr(0, Ae.length + Tt);
                    for (var Et = Tt; Et < 0; Et++)
                      Ae += "0";
                  } else {
                    Ae = String(Ae);
                    var Zt = Ae.indexOf(".") + 1;
                    Zt && (Ae = Ae.substr(0, Zt + Tt).replace(/\.?0+$/, ""));
                  }
                  Ae = u.numSeparate(Ae, ue._separators, St);
                }
                if (vt && bt !== "hide") {
                  je(bt) && lt(vt) && (bt = "power");
                  var Yt;
                  vt < 0 ? Yt = U + -vt : bt !== "power" ? Yt = "+" + vt : Yt = String(vt), bt === "e" || bt === "E" ? Ae += bt + Yt : bt === "power" ? Ae += "×10<sup>" + Yt + "</sup>" : bt === "B" && vt === 9 ? Ae += "B" : je(bt) && (Ae += We[vt / 3 + 5]);
                }
                return mt ? U + Ae : Ae;
              }
              xe.getTickFormat = function(Ae) {
                var ue;
                function ft(ht) {
                  return typeof ht != "string" ? ht : Number(ht.replace("M", "")) * I;
                }
                function nt(ht, St) {
                  var It = ["L", "D"];
                  if (typeof ht == typeof St) {
                    if (typeof ht == "number")
                      return ht - St;
                    var Ht = It.indexOf(ht.charAt(0)), Et = It.indexOf(St.charAt(0));
                    return Ht === Et ? Number(ht.replace(/(L|D)/g, "")) - Number(St.replace(/(L|D)/g, "")) : Ht - Et;
                  } else
                    return typeof ht == "number" ? 1 : -1;
                }
                function mt(ht, St, It) {
                  var Ht = It || function(Yt) {
                    return Yt;
                  }, Et = St[0], Zt = St[1];
                  return (!Et && typeof Et != "number" || Ht(Et) <= Ht(ht)) && (!Zt && typeof Zt != "number" || Ht(Zt) >= Ht(ht));
                }
                function Tt(ht, St) {
                  var It = St[0] === null, Ht = St[1] === null, Et = nt(ht, St[0]) >= 0, Zt = nt(ht, St[1]) <= 0;
                  return (It || Et) && (Ht || Zt);
                }
                var bt, vt;
                if (Ae.tickformatstops && Ae.tickformatstops.length > 0)
                  switch (Ae.type) {
                    case "date":
                    case "linear": {
                      for (ue = 0; ue < Ae.tickformatstops.length; ue++)
                        if (vt = Ae.tickformatstops[ue], vt.enabled && mt(Ae.dtick, vt.dtickrange, ft)) {
                          bt = vt;
                          break;
                        }
                      break;
                    }
                    case "log": {
                      for (ue = 0; ue < Ae.tickformatstops.length; ue++)
                        if (vt = Ae.tickformatstops[ue], vt.enabled && Tt(Ae.dtick, vt.dtickrange)) {
                          bt = vt;
                          break;
                        }
                      break;
                    }
                  }
                return bt ? bt.value : Ae.tickformat;
              }, xe.getSubplots = function(Ae, ue) {
                var ft = Ae._fullLayout._subplots, nt = ft.cartesian.concat(ft.gl2d || []), mt = ue ? xe.findSubplotsWithAxis(nt, ue) : nt;
                return mt.sort(function(Tt, bt) {
                  var vt = Tt.substr(1).split("y"), ht = bt.substr(1).split("y");
                  return vt[0] === ht[0] ? +vt[1] - +ht[1] : +vt[0] - +ht[0];
                }), mt;
              }, xe.findSubplotsWithAxis = function(Ae, ue) {
                for (var ft = new RegExp(ue._id.charAt(0) === "x" ? "^" + ue._id + "y" : ue._id + "$"), nt = [], mt = 0; mt < Ae.length; mt++) {
                  var Tt = Ae[mt];
                  ft.test(Tt) && nt.push(Tt);
                }
                return nt;
              }, xe.makeClipPaths = function(Ae) {
                var ue = Ae._fullLayout;
                if (!ue._hasOnlyLargeSploms) {
                  var ft = {
                    _offset: 0,
                    _length: ue.width,
                    _id: ""
                  }, nt = {
                    _offset: 0,
                    _length: ue.height,
                    _id: ""
                  }, mt = xe.list(Ae, "x", !0), Tt = xe.list(Ae, "y", !0), bt = [], vt, ht;
                  for (vt = 0; vt < mt.length; vt++)
                    for (bt.push({
                      x: mt[vt],
                      y: nt
                    }), ht = 0; ht < Tt.length; ht++)
                      vt === 0 && bt.push({
                        x: ft,
                        y: Tt[ht]
                      }), bt.push({
                        x: mt[vt],
                        y: Tt[ht]
                      });
                  var St = ue._clips.selectAll(".axesclip").data(bt, function(It) {
                    return It.x._id + It.y._id;
                  });
                  St.enter().append("clipPath").classed("axesclip", !0).attr("id", function(It) {
                    return "clip" + ue._uid + It.x._id + It.y._id;
                  }).append("rect"), St.exit().remove(), St.each(function(It) {
                    a.select(this).select("rect").attr({
                      x: It.x._offset || 0,
                      y: It.y._offset || 0,
                      width: It.x._length || 1,
                      height: It.y._length || 1
                    });
                  });
                }
              }, xe.draw = function(Ae, ue, ft) {
                var nt = Ae._fullLayout;
                ue === "redraw" && nt._paper.selectAll("g.subplot").each(function(ht) {
                  var St = ht[0], It = nt._plots[St];
                  if (It) {
                    var Ht = It.xaxis, Et = It.yaxis;
                    It.xaxislayer.selectAll("." + Ht._id + "tick").remove(), It.yaxislayer.selectAll("." + Et._id + "tick").remove(), It.xaxislayer.selectAll("." + Ht._id + "tick2").remove(), It.yaxislayer.selectAll("." + Et._id + "tick2").remove(), It.xaxislayer.selectAll("." + Ht._id + "divider").remove(), It.yaxislayer.selectAll("." + Et._id + "divider").remove(), It.minorGridlayer && It.minorGridlayer.selectAll("path").remove(), It.gridlayer && It.gridlayer.selectAll("path").remove(), It.zerolinelayer && It.zerolinelayer.selectAll("path").remove(), nt._infolayer.select(".g-" + Ht._id + "title").remove(), nt._infolayer.select(".g-" + Et._id + "title").remove();
                  }
                });
                var mt = !ue || ue === "redraw" ? xe.listIds(Ae) : ue, Tt = xe.list(Ae), bt = Tt.filter(function(ht) {
                  return ht.autoshift;
                }).map(function(ht) {
                  return ht.overlaying;
                });
                mt.map(function(ht) {
                  var St = xe.getFromId(Ae, ht);
                  if (St.tickmode === "sync" && St.overlaying) {
                    var It = mt.findIndex(function(Ht) {
                      return Ht === St.overlaying;
                    });
                    It >= 0 && mt.unshift(mt.splice(It, 1).shift());
                  }
                });
                var vt = {
                  false: {
                    left: 0,
                    right: 0
                  }
                };
                return u.syncOrAsync(mt.map(function(ht) {
                  return function() {
                    if (ht) {
                      var St = xe.getFromId(Ae, ht);
                      ft || (ft = {}), ft.axShifts = vt, ft.overlayingShiftedAx = bt;
                      var It = xe.drawOne(Ae, St, ft);
                      return St._shiftPusher && on(St, St._fullDepth || 0, vt, !0), St._r = St.range.slice(), St._rl = u.simpleMap(St._r, St.r2l), It;
                    }
                  };
                }));
              }, xe.drawOne = function(Ae, ue, ft) {
                ft = ft || {};
                var nt = ft.axShifts || {}, mt = ft.overlayingShiftedAx || [], Tt, bt, vt;
                ue.setScale();
                var ht = Ae._fullLayout, St = ue._id, It = St.charAt(0), Ht = xe.counterLetter(St), Et = ht._plots[ue._mainSubplot];
                if (!Et)
                  return;
                if (ue._shiftPusher = ue.autoshift || mt.indexOf(ue._id) !== -1 || mt.indexOf(ue.overlaying) !== -1, ue._shiftPusher & ue.anchor === "free") {
                  var Zt = ue.linewidth / 2 || 0;
                  ue.ticks === "inside" && (Zt += ue.ticklen), on(ue, Zt, nt, !0), on(ue, ue.shift || 0, nt, !1);
                }
                (ft.skipTitle !== !0 || ue._shift === void 0) && (ue._shift = Ir(ue, nt));
                var Yt = Et[It + "axislayer"], Gt = ue._mainLinePosition, $t = Gt += ue._shift, ir = ue._mainMirrorPosition, wr = ue._vals = xe.calcTicks(ue), sr = [ue.mirror, $t, ir].join("_");
                for (Tt = 0; Tt < wr.length; Tt++)
                  wr[Tt].axInfo = sr;
                ue._selections = {}, ue._tickAngles && (ue._prevTickAngles = ue._tickAngles), ue._tickAngles = {}, ue._depth = null;
                var Xr = {};
                function Lr(Ta) {
                  var oo = St + (Ta || "tick");
                  return Xr[oo] || (Xr[oo] = tt(ue, oo, $t)), Xr[oo];
                }
                if (ue.visible) {
                  var Pr = xe.makeTransTickFn(ue), $r = xe.makeTransTickLabelFn(ue), Jr, Qr, vn = ue.ticks === "inside", An = ue.ticks === "outside";
                  if (ue.tickson === "boundaries") {
                    var hn = Ye(ue, wr);
                    Qr = xe.clipEnds(ue, hn), Jr = vn ? Qr : hn;
                  } else
                    Qr = xe.clipEnds(ue, wr), Jr = vn && ue.ticklabelmode !== "period" ? Qr : wr;
                  var Pn = ue._gridVals = Qr, sa = rt(ue, wr);
                  if (!ht._hasOnlyLargeSploms) {
                    var Ra = ue._subplotsWith, rn = {};
                    for (Tt = 0; Tt < Ra.length; Tt++) {
                      bt = Ra[Tt], vt = ht._plots[bt];
                      var ua = vt[Ht + "axis"], dn = ua._mainAxis._id;
                      if (!rn[dn]) {
                        rn[dn] = 1;
                        var Dn = It === "x" ? "M0," + ua._offset + "v" + ua._length : "M" + ua._offset + ",0h" + ua._length;
                        xe.drawGrid(Ae, ue, {
                          vals: Pn,
                          counterAxis: ua,
                          layer: vt.gridlayer.select("." + St),
                          minorLayer: vt.minorGridlayer.select("." + St),
                          path: Dn,
                          transFn: Pr
                        }), xe.drawZeroLine(Ae, ue, {
                          counterAxis: ua,
                          layer: vt.zerolinelayer,
                          path: Dn,
                          transFn: Pr
                        });
                      }
                    }
                  }
                  var Sn, Fn = xe.getTickSigns(ue), Mn = xe.getTickSigns(ue, "minor");
                  if (ue.ticks || ue.minor && ue.minor.ticks) {
                    var qn = xe.makeTickPath(ue, $t, Fn[2]), Rn = xe.makeTickPath(ue, $t, Mn[2], {
                      minor: !0
                    }), ea, ga, oa, Kn;
                    if (ue._anchorAxis && ue.mirror && ue.mirror !== !0 ? (ea = xe.makeTickPath(ue, ir, Fn[3]), ga = xe.makeTickPath(ue, ir, Mn[3], {
                      minor: !0
                    }), oa = qn + ea, Kn = Rn + ga) : (ea = "", ga = "", oa = qn, Kn = Rn), ue.showdividers && An && ue.tickson === "boundaries") {
                      var ba = {};
                      for (Tt = 0; Tt < sa.length; Tt++)
                        ba[sa[Tt].x] = 1;
                      Sn = function(Ta) {
                        return ba[Ta.x] ? ea : oa;
                      };
                    } else
                      Sn = function(Ta) {
                        return Ta.minor ? Kn : oa;
                      };
                  }
                  if (xe.drawTicks(Ae, ue, {
                    vals: Jr,
                    layer: Yt,
                    path: Sn,
                    transFn: Pr
                  }), ue.mirror === "allticks") {
                    var Fa = Object.keys(ue._linepositions || {});
                    for (Tt = 0; Tt < Fa.length; Tt++) {
                      bt = Fa[Tt], vt = ht._plots[bt];
                      var xa = ue._linepositions[bt] || [], _a = xa[0], si = xa[1], pi = xa[2], ri = xe.makeTickPath(ue, _a, pi ? Fn[0] : Mn[0], {
                        minor: pi
                      }) + xe.makeTickPath(ue, si, pi ? Fn[1] : Mn[1], {
                        minor: pi
                      });
                      xe.drawTicks(Ae, ue, {
                        vals: Jr,
                        layer: vt[It + "axislayer"],
                        path: ri,
                        transFn: Pr
                      });
                    }
                  }
                  var da = [];
                  if (da.push(function() {
                    return xe.drawLabels(Ae, ue, {
                      vals: wr,
                      layer: Yt,
                      plotinfo: vt,
                      transFn: $r,
                      labelFns: xe.makeLabelFns(ue, $t)
                    });
                  }), ue.type === "multicategory") {
                    var Fi = {
                      x: 2,
                      y: 10
                    }[It];
                    da.push(function() {
                      var Ta = {
                        x: "height",
                        y: "width"
                      }[It], oo = Lr()[Ta] + Fi + (ue._tickAngles[St + "tick"] ? ue.tickfont.size * Ce : 0);
                      return xe.drawLabels(Ae, ue, {
                        vals: Ze(ue, wr),
                        layer: Yt,
                        cls: St + "tick2",
                        repositionOnUpdate: !0,
                        secondary: !0,
                        transFn: Pr,
                        labelFns: xe.makeLabelFns(ue, $t + oo * Fn[4])
                      });
                    }), da.push(function() {
                      return ue._depth = Fn[4] * (Lr("tick2")[ue.side] - $t), st(Ae, ue, {
                        vals: sa,
                        layer: Yt,
                        path: xe.makeTickPath(ue, $t, Fn[4], {
                          len: ue._depth
                        }),
                        transFn: Pr
                      });
                    });
                  } else
                    ue.title.hasOwnProperty("standoff") && da.push(function() {
                      ue._depth = Fn[4] * (Lr()[ue.side] - $t);
                    });
                  var sl = f.getComponentMethod("rangeslider", "isVisible")(ue);
                  return !ft.skipTitle && !(sl && ue.side === "bottom") && da.push(function() {
                    return ar(Ae, ue);
                  }), da.push(function() {
                    var Ta = ue.side.charAt(0), oo = Re[ue.side].charAt(0), mi = xe.getPxPosition(Ae, ue), wi = An ? ue.ticklen : 0, ta, Zn, ji, ul;
                    (ue.automargin || sl || ue._shiftPusher) && (ue.type === "multicategory" ? ta = Lr("tick2") : (ta = Lr(), It === "x" && Ta === "b" && (ue._depth = Math.max(ta.width > 0 ? ta.bottom - mi : 0, wi))));
                    var Pl = 0, Yu = 0;
                    if (ue._shiftPusher && (Pl = Math.max(wi, ta.height > 0 ? Ta === "l" ? mi - ta.left : ta.right - mi : 0), ue.title.text !== ht._dfltTitle[It] && (Yu = (ue._titleStandoff || 0) + (ue._titleScoot || 0), Ta === "l" && (Yu += Nt(ue))), ue._fullDepth = Math.max(Pl, Yu)), ue.automargin) {
                      Zn = {
                        x: 0,
                        y: 0,
                        r: 0,
                        l: 0,
                        t: 0,
                        b: 0
                      };
                      var Si = [0, 1], Fl = typeof ue._shift == "number" ? ue._shift : 0;
                      if (It === "x") {
                        if (Ta === "b" ? Zn[Ta] = ue._depth : (Zn[Ta] = ue._depth = Math.max(ta.width > 0 ? mi - ta.top : 0, wi), Si.reverse()), ta.width > 0) {
                          var Ms = ta.right - (ue._offset + ue._length);
                          Ms > 0 && (Zn.xr = 1, Zn.r = Ms);
                          var Es = ue._offset - ta.left;
                          Es > 0 && (Zn.xl = 0, Zn.l = Es);
                        }
                      } else if (Ta === "l" ? (ue._depth = Math.max(ta.height > 0 ? mi - ta.left : 0, wi), Zn[Ta] = ue._depth - Fl) : (ue._depth = Math.max(ta.height > 0 ? ta.right - mi : 0, wi), Zn[Ta] = ue._depth + Fl, Si.reverse()), ta.height > 0) {
                        var ts = ta.bottom - (ue._offset + ue._length);
                        ts > 0 && (Zn.yb = 0, Zn.b = ts);
                        var rs = ue._offset - ta.top;
                        rs > 0 && (Zn.yt = 1, Zn.t = rs);
                      }
                      Zn[Ht] = ue.anchor === "free" ? ue.position : ue._anchorAxis.domain[Si[0]], ue.title.text !== ht._dfltTitle[It] && (Zn[Ta] += Nt(ue) + (ue.title.standoff || 0)), ue.mirror && ue.anchor !== "free" && (ji = {
                        x: 0,
                        y: 0,
                        r: 0,
                        l: 0,
                        t: 0,
                        b: 0
                      }, ji[oo] = ue.linewidth, ue.mirror && ue.mirror !== !0 && (ji[oo] += wi), ue.mirror === !0 || ue.mirror === "ticks" ? ji[Ht] = ue._anchorAxis.domain[Si[1]] : (ue.mirror === "all" || ue.mirror === "allticks") && (ji[Ht] = [ue._counterDomainMin, ue._counterDomainMax][Si[1]]));
                    }
                    sl && (ul = f.getComponentMethod("rangeslider", "autoMarginOpts")(Ae, ue)), typeof ue.automargin == "string" && (Pe(Zn, ue.automargin), Pe(ji, ue.automargin)), l.autoMargin(Ae, or(ue), Zn), l.autoMargin(Ae, Rr(ue), ji), l.autoMargin(Ae, lr(ue), ul);
                  }), u.syncOrAsync(da);
                }
              };
              function Pe(Ae, ue) {
                if (Ae) {
                  var ft = Object.keys(oe).reduce(function(nt, mt) {
                    return ue.indexOf(mt) !== -1 && oe[mt].forEach(function(Tt) {
                      nt[Tt] = 1;
                    }), nt;
                  }, {});
                  Object.keys(Ae).forEach(function(nt) {
                    ft[nt] || (nt.length === 1 ? Ae[nt] = 0 : delete Ae[nt]);
                  });
                }
              }
              function Ye(Ae, ue) {
                var ft = [], nt, mt = function(Tt, bt) {
                  var vt = Tt.xbnd[bt];
                  vt !== null && ft.push(u.extendFlat({}, Tt, {
                    x: vt
                  }));
                };
                if (ue.length) {
                  for (nt = 0; nt < ue.length; nt++)
                    mt(ue[nt], 0);
                  mt(ue[nt - 1], 1);
                }
                return ft;
              }
              function Ze(Ae, ue) {
                for (var ft = [], nt = {}, mt = 0; mt < ue.length; mt++) {
                  var Tt = ue[mt];
                  nt[Tt.text2] ? nt[Tt.text2].push(Tt.x) : nt[Tt.text2] = [Tt.x];
                }
                for (var bt in nt)
                  ft.push(Ut(Ae, u.interp(nt[bt], 0.5), bt));
                return ft;
              }
              function rt(Ae, ue) {
                var ft = [], nt, mt, Tt = ue.length && ue[ue.length - 1].x < ue[0].x, bt = function(ht, St) {
                  var It = ht.xbnd[St];
                  It !== null && ft.push(u.extendFlat({}, ht, {
                    x: It
                  }));
                };
                if (Ae.showdividers && ue.length) {
                  for (nt = 0; nt < ue.length; nt++) {
                    var vt = ue[nt];
                    vt.text2 !== mt && bt(vt, Tt ? 1 : 0), mt = vt.text2;
                  }
                  bt(ue[nt - 1], Tt ? 0 : 1);
                }
                return ft;
              }
              function tt(Ae, ue, ft) {
                var nt, mt, Tt, bt;
                if (Ae._selections[ue].size())
                  nt = 1 / 0, mt = -1 / 0, Tt = 1 / 0, bt = -1 / 0, Ae._selections[ue].each(function() {
                    var ht = br(this), St = b.bBox(ht.node().parentNode);
                    nt = Math.min(nt, St.top), mt = Math.max(mt, St.bottom), Tt = Math.min(Tt, St.left), bt = Math.max(bt, St.right);
                  });
                else {
                  var vt = xe.makeLabelFns(Ae, ft);
                  nt = mt = vt.yFn({
                    dx: 0,
                    dy: 0,
                    fontSize: 0
                  }), Tt = bt = vt.xFn({
                    dx: 0,
                    dy: 0,
                    fontSize: 0
                  });
                }
                return {
                  top: nt,
                  bottom: mt,
                  left: Tt,
                  right: bt,
                  height: mt - nt,
                  width: bt - Tt
                };
              }
              xe.getTickSigns = function(Ae, ue) {
                var ft = Ae._id.charAt(0), nt = {
                  x: "top",
                  y: "right"
                }[ft], mt = Ae.side === nt ? 1 : -1, Tt = [-1, 1, mt, -mt], bt = ue ? (Ae.minor || {}).ticks : Ae.ticks;
                return bt !== "inside" == (ft === "x") && (Tt = Tt.map(function(vt) {
                  return -vt;
                })), Ae.side && Tt.push({
                  l: -1,
                  t: -1,
                  r: 1,
                  b: 1
                }[Ae.side.charAt(0)]), Tt;
              }, xe.makeTransTickFn = function(Ae) {
                return Ae._id.charAt(0) === "x" ? function(ue) {
                  return c(Ae._offset + Ae.l2p(ue.x), 0);
                } : function(ue) {
                  return c(0, Ae._offset + Ae.l2p(ue.x));
                };
              }, xe.makeTransTickLabelFn = function(Ae) {
                var ue = Dt(Ae), ft = ue[0], nt = ue[1];
                return Ae._id.charAt(0) === "x" ? function(mt) {
                  return c(ft + Ae._offset + Ae.l2p(Ft(mt)), nt);
                } : function(mt) {
                  return c(nt, ft + Ae._offset + Ae.l2p(Ft(mt)));
                };
              };
              function Ft(Ae) {
                return Ae.periodX !== void 0 ? Ae.periodX : Ae.x;
              }
              function Dt(Ae) {
                var ue = Ae.ticklabelposition || "", ft = function(Zt) {
                  return ue.indexOf(Zt) !== -1;
                }, nt = ft("top"), mt = ft("left"), Tt = ft("right"), bt = ft("bottom"), vt = ft("inside"), ht = bt || mt || nt || Tt;
                if (!ht && !vt)
                  return [0, 0];
                var St = Ae.side, It = ht ? (Ae.tickwidth || 0) / 2 : 0, Ht = Be, Et = Ae.tickfont ? Ae.tickfont.size : 12;
                return (bt || nt) && (It += Et * ye, Ht += (Ae.linewidth || 0) / 2), (mt || Tt) && (It += (Ae.linewidth || 0) / 2, Ht += Be), vt && St === "top" && (Ht -= Et * (1 - ye)), (mt || nt) && (It = -It), (St === "bottom" || St === "right") && (Ht = -Ht), [ht ? It : 0, vt ? Ht : 0];
              }
              xe.makeTickPath = function(Ae, ue, ft, nt) {
                nt || (nt = {});
                var mt = nt.minor;
                if (mt && !Ae.minor)
                  return "";
                var Tt = nt.len !== void 0 ? nt.len : mt ? Ae.minor.ticklen : Ae.ticklen, bt = Ae._id.charAt(0), vt = (Ae.linewidth || 1) / 2;
                return bt === "x" ? "M0," + (ue + vt * ft) + "v" + Tt * ft : "M" + (ue + vt * ft) + ",0h" + Tt * ft;
              }, xe.makeLabelFns = function(Ae, ue, ft) {
                var nt = Ae.ticklabelposition || "", mt = function(hn) {
                  return nt.indexOf(hn) !== -1;
                }, Tt = mt("top"), bt = mt("left"), vt = mt("right"), ht = mt("bottom"), St = ht || bt || Tt || vt, It = mt("inside"), Ht = nt === "inside" && Ae.ticks === "inside" || !It && Ae.ticks === "outside" && Ae.tickson !== "boundaries", Et = 0, Zt = 0, Yt = Ht ? Ae.ticklen : 0;
                if (It ? Yt *= -1 : St && (Yt = 0), Ht && (Et += Yt, ft)) {
                  var Gt = u.deg2rad(ft);
                  Et = Yt * Math.cos(Gt) + 1, Zt = Yt * Math.sin(Gt);
                }
                Ae.showticklabels && (Ht || Ae.showline) && (Et += 0.2 * Ae.tickfont.size), Et += (Ae.linewidth || 1) / 2 * (It ? -1 : 1);
                var $t = {
                  labelStandoff: Et,
                  labelShift: Zt
                }, ir, wr, sr, Xr, Lr = 0, Pr = Ae.side, $r = Ae._id.charAt(0), Jr = Ae.tickangle, Qr;
                if ($r === "x")
                  Qr = !It && Pr === "bottom" || It && Pr === "top", Xr = Qr ? 1 : -1, It && (Xr *= -1), ir = Zt * Xr, wr = ue + Et * Xr, sr = Qr ? 1 : -0.2, Math.abs(Jr) === 90 && (It ? sr += fe : Jr === -90 && Pr === "bottom" ? sr = ye : Jr === 90 && Pr === "top" ? sr = fe : sr = 0.5, Lr = fe / 2 * (Jr / 90)), $t.xFn = function(hn) {
                    return hn.dx + ir + Lr * hn.fontSize;
                  }, $t.yFn = function(hn) {
                    return hn.dy + wr + hn.fontSize * sr;
                  }, $t.anchorFn = function(hn, Pn) {
                    if (St) {
                      if (bt)
                        return "end";
                      if (vt)
                        return "start";
                    }
                    return !p(Pn) || Pn === 0 || Pn === 180 ? "middle" : Pn * Xr < 0 !== It ? "end" : "start";
                  }, $t.heightFn = function(hn, Pn, sa) {
                    return Pn < -60 || Pn > 60 ? -0.5 * sa : Ae.side === "top" !== It ? -sa : 0;
                  };
                else if ($r === "y") {
                  if (Qr = !It && Pr === "left" || It && Pr === "right", Xr = Qr ? 1 : -1, It && (Xr *= -1), ir = Et, wr = Zt * Xr, sr = 0, !It && Math.abs(Jr) === 90 && (Jr === -90 && Pr === "left" || Jr === 90 && Pr === "right" ? sr = ye : sr = 0.5), It) {
                    var vn = p(Jr) ? +Jr : 0;
                    if (vn !== 0) {
                      var An = u.deg2rad(vn);
                      Lr = Math.abs(Math.sin(An)) * ye * Xr, sr = 0;
                    }
                  }
                  $t.xFn = function(hn) {
                    return hn.dx + ue - (ir + hn.fontSize * sr) * Xr + Lr * hn.fontSize;
                  }, $t.yFn = function(hn) {
                    return hn.dy + wr + hn.fontSize * fe;
                  }, $t.anchorFn = function(hn, Pn) {
                    return p(Pn) && Math.abs(Pn) === 90 ? "middle" : Qr ? "end" : "start";
                  }, $t.heightFn = function(hn, Pn, sa) {
                    return Ae.side === "right" && (Pn *= -1), Pn < -30 ? -sa : Pn < 30 ? -0.5 * sa : 0;
                  };
                }
                return $t;
              };
              function dt(Ae) {
                return [Ae.text, Ae.x, Ae.axInfo, Ae.font, Ae.fontSize, Ae.fontColor].join("_");
              }
              xe.drawTicks = function(Ae, ue, ft) {
                ft = ft || {};
                var nt = ue._id + "tick", mt = [].concat(ue.minor && ue.minor.ticks ? (
                  // minor vals
                  ft.vals.filter(function(bt) {
                    return bt.minor && !bt.noTick;
                  })
                ) : []).concat(ue.ticks ? (
                  // major vals
                  ft.vals.filter(function(bt) {
                    return !bt.minor && !bt.noTick;
                  })
                ) : []), Tt = ft.layer.selectAll("path." + nt).data(mt, dt);
                Tt.exit().remove(), Tt.enter().append("path").classed(nt, 1).classed("ticks", 1).classed("crisp", ft.crisp !== !1).each(function(bt) {
                  return i.stroke(a.select(this), bt.minor ? ue.minor.tickcolor : ue.tickcolor);
                }).style("stroke-width", function(bt) {
                  return b.crispRound(Ae, bt.minor ? ue.minor.tickwidth : ue.tickwidth, 1) + "px";
                }).attr("d", ft.path).style("display", null), en(ue, [W]), Tt.attr("transform", ft.transFn);
              }, xe.drawGrid = function(Ae, ue, ft) {
                if (ft = ft || {}, ue.tickmode !== "sync") {
                  var nt = ue._id + "grid", mt = ue.minor && ue.minor.showgrid, Tt = mt ? ft.vals.filter(function(ir) {
                    return ir.minor;
                  }) : [], bt = ue.showgrid ? ft.vals.filter(function(ir) {
                    return !ir.minor;
                  }) : [], vt = ft.counterAxis;
                  if (vt && xe.shouldShowZeroLine(Ae, ue, vt))
                    for (var ht = ue.tickmode === "array", St = 0; St < bt.length; St++) {
                      var It = bt[St].x;
                      if (ht ? !It : Math.abs(It) < ue.dtick / 100)
                        if (bt = bt.slice(0, St).concat(bt.slice(St + 1)), ht)
                          St--;
                        else
                          break;
                    }
                  ue._gw = b.crispRound(Ae, ue.gridwidth, 1);
                  for (var Ht = mt ? b.crispRound(Ae, ue.minor.gridwidth, 1) : 0, Et = ft.layer, Zt = ft.minorLayer, Yt = 1; Yt >= 0; Yt--) {
                    var Gt = Yt ? Et : Zt;
                    if (Gt) {
                      var $t = Gt.selectAll("path." + nt).data(Yt ? bt : Tt, dt);
                      $t.exit().remove(), $t.enter().append("path").classed(nt, 1).classed("crisp", ft.crisp !== !1), $t.attr("transform", ft.transFn).attr("d", ft.path).each(function(ir) {
                        return i.stroke(a.select(this), ir.minor ? ue.minor.gridcolor : ue.gridcolor || "#ddd");
                      }).style("stroke-dasharray", function(ir) {
                        return b.dashStyle(ir.minor ? ue.minor.griddash : ue.griddash, ir.minor ? ue.minor.gridwidth : ue.gridwidth);
                      }).style("stroke-width", function(ir) {
                        return (ir.minor ? Ht : ue._gw) + "px";
                      }).style("display", null), typeof ft.path == "function" && $t.attr("d", ft.path);
                    }
                  }
                  en(ue, [me, J]);
                }
              }, xe.drawZeroLine = function(Ae, ue, ft) {
                ft = ft || ft;
                var nt = ue._id + "zl", mt = xe.shouldShowZeroLine(Ae, ue, ft.counterAxis), Tt = ft.layer.selectAll("path." + nt).data(mt ? [{
                  x: 0,
                  id: ue._id
                }] : []);
                Tt.exit().remove(), Tt.enter().append("path").classed(nt, 1).classed("zl", 1).classed("crisp", ft.crisp !== !1).each(function() {
                  ft.layer.selectAll("path").sort(function(bt, vt) {
                    return Z(bt.id, vt.id);
                  });
                }), Tt.attr("transform", ft.transFn).attr("d", ft.path).call(i.stroke, ue.zerolinecolor || i.defaultLine).style("stroke-width", b.crispRound(Ae, ue.zerolinewidth, ue._gw || 1) + "px").style("display", null), en(ue, [se]);
              }, xe.drawLabels = function(Ae, ue, ft) {
                ft = ft || {};
                var nt = Ae._fullLayout, mt = ue._id, Tt = ft.cls || mt + "tick", bt = ft.vals.filter(function(dn) {
                  return dn.text;
                }), vt = ft.labelFns, ht = ft.secondary ? 0 : ue.tickangle, St = (ue._prevTickAngles || {})[Tt], It = ft.layer.selectAll("g." + Tt).data(ue.showticklabels ? bt : [], dt), Ht = [];
                It.enter().append("g").classed(Tt, 1).append("text").attr("text-anchor", "middle").each(function(dn) {
                  var Dn = a.select(this), Sn = Ae._promises.length;
                  Dn.call(d.positionText, vt.xFn(dn), vt.yFn(dn)).call(b.font, {
                    family: dn.font,
                    size: dn.fontSize,
                    color: dn.fontColor,
                    weight: dn.fontWeight,
                    style: dn.fontStyle,
                    variant: dn.fontVariant,
                    textcase: dn.fontTextcase,
                    lineposition: dn.fontLineposition,
                    shadow: dn.fontShadow
                  }).text(dn.text).call(d.convertToTspans, Ae), Ae._promises[Sn] ? Ht.push(Ae._promises.pop().then(function() {
                    Et(Dn, ht);
                  })) : Et(Dn, ht);
                }), en(ue, [ae]), It.exit().remove(), ft.repositionOnUpdate && It.each(function(dn) {
                  a.select(this).select("text").call(d.positionText, vt.xFn(dn), vt.yFn(dn));
                });
                function Et(dn, Dn) {
                  dn.each(function(Sn) {
                    var Fn = a.select(this), Mn = Fn.select(".text-math-group"), qn = vt.anchorFn(Sn, Dn), Rn = ft.transFn.call(Fn.node(), Sn) + (p(Dn) && +Dn != 0 ? " rotate(" + Dn + "," + vt.xFn(Sn) + "," + (vt.yFn(Sn) - Sn.fontSize / 2) + ")" : ""), ea = d.lineCount(Fn), ga = Ce * Sn.fontSize, oa = vt.heightFn(Sn, p(Dn) ? +Dn : 0, (ea - 1) * ga);
                    if (oa && (Rn += c(0, oa)), Mn.empty()) {
                      var Kn = Fn.select("text");
                      Kn.attr({
                        transform: Rn,
                        "text-anchor": qn
                      }), Kn.style("opacity", 1), ue._adjustTickLabelsOverflow && ue._adjustTickLabelsOverflow();
                    } else {
                      var ba = b.bBox(Mn.node()).width, Fa = ba * {
                        end: -0.5,
                        start: 0.5
                      }[qn];
                      Mn.attr("transform", Rn + c(Fa, 0));
                    }
                  });
                }
                ue._adjustTickLabelsOverflow = function() {
                  var dn = ue.ticklabeloverflow;
                  if (!(!dn || dn === "allow")) {
                    var Dn = dn.indexOf("hide") !== -1, Sn = ue._id.charAt(0) === "x", Fn = 0, Mn = Sn ? Ae._fullLayout.width : Ae._fullLayout.height;
                    if (dn.indexOf("domain") !== -1) {
                      var qn = u.simpleMap(ue.range, ue.r2l);
                      Fn = ue.l2p(qn[0]) + ue._offset, Mn = ue.l2p(qn[1]) + ue._offset;
                    }
                    var Rn = Math.min(Fn, Mn), ea = Math.max(Fn, Mn), ga = ue.side, oa = 1 / 0, Kn = -1 / 0;
                    It.each(function(_a) {
                      var si = a.select(this), pi = si.select(".text-math-group");
                      if (pi.empty()) {
                        var ri = b.bBox(si.node()), da = 0;
                        Sn ? (ri.right > ea || ri.left < Rn) && (da = 1) : (ri.bottom > ea || ri.top + (ue.tickangle ? 0 : _a.fontSize / 4) < Rn) && (da = 1);
                        var Fi = si.select("text");
                        da ? Dn && Fi.style("opacity", 0) : (Fi.style("opacity", 1), ga === "bottom" || ga === "right" ? oa = Math.min(oa, Sn ? ri.top : ri.left) : oa = -1 / 0, ga === "top" || ga === "left" ? Kn = Math.max(Kn, Sn ? ri.bottom : ri.right) : Kn = 1 / 0);
                      }
                    });
                    for (var ba in nt._plots) {
                      var Fa = nt._plots[ba];
                      if (!(ue._id !== Fa.xaxis._id && ue._id !== Fa.yaxis._id)) {
                        var xa = Sn ? Fa.yaxis : Fa.xaxis;
                        xa && (xa["_visibleLabelMin_" + ue._id] = oa, xa["_visibleLabelMax_" + ue._id] = Kn);
                      }
                    }
                  }
                }, ue._hideCounterAxisInsideTickLabels = function(dn) {
                  var Dn = ue._id.charAt(0) === "x", Sn = [];
                  for (var Fn in nt._plots) {
                    var Mn = nt._plots[Fn];
                    ue._id !== Mn.xaxis._id && ue._id !== Mn.yaxis._id || Sn.push(Dn ? Mn.yaxis : Mn.xaxis);
                  }
                  Sn.forEach(function(qn, Rn) {
                    qn && zr(qn) && (dn || [se, J, me, W, ae]).forEach(function(ea) {
                      var ga = ea.K === "tick" && ea.L === "text" && ue.ticklabelmode === "period", oa = nt._plots[ue._mainSubplot], Kn;
                      ea.K === se.K ? Kn = oa.zerolinelayer.selectAll("." + ue._id + "zl") : ea.K === J.K ? Kn = oa.minorGridlayer.selectAll("." + ue._id) : ea.K === me.K ? Kn = oa.gridlayer.selectAll("." + ue._id) : Kn = oa[ue._id.charAt(0) + "axislayer"], Kn.each(function() {
                        var ba = a.select(this);
                        ea.L && (ba = ba.selectAll(ea.L)), ba.each(function(Fa) {
                          var xa = ue.l2p(ga ? Ft(Fa) : Fa.x) + ue._offset, _a = a.select(this);
                          xa < ue["_visibleLabelMax_" + qn._id] && xa > ue["_visibleLabelMin_" + qn._id] ? _a.style("display", "none") : ea.K === "tick" && !Rn && _a.style("display", null);
                        });
                      });
                    });
                  });
                }, Et(It, St + 1 ? St : ht);
                function Zt() {
                  return Ht.length && Promise.all(Ht);
                }
                var Yt = null;
                function Gt() {
                  if (Et(It, ht), bt.length && ue.autotickangles && (ue.type !== "log" || String(ue.dtick).charAt(0) !== "D")) {
                    Yt = ue.autotickangles[0];
                    var dn = 0, Dn = [], Sn, Fn = 1;
                    It.each(function(ta) {
                      dn = Math.max(dn, ta.fontSize);
                      var Zn = ue.l2p(ta.x), ji = br(this), ul = b.bBox(ji.node());
                      Fn = Math.max(Fn, d.lineCount(ji)), Dn.push({
                        // ignore about y, just deal with x overlaps
                        top: 0,
                        bottom: 10,
                        height: 10,
                        left: Zn - ul.width / 2,
                        // impose a 2px gap
                        right: Zn + ul.width / 2 + 2,
                        width: ul.width + 2
                      });
                    });
                    var Mn = (ue.tickson === "boundaries" || ue.showdividers) && !ft.secondary, qn = bt.length, Rn = Math.abs((bt[qn - 1].x - bt[0].x) * ue._m) / (qn - 1), ea = Mn ? Rn / 2 : Rn, ga = Mn ? ue.ticklen : dn * 1.25 * Fn, oa = Math.sqrt(Math.pow(ea, 2) + Math.pow(ga, 2)), Kn = ea / oa, ba = ue.autotickangles.map(function(ta) {
                      return ta * Math.PI / 180;
                    }), Fa = ba.find(function(ta) {
                      return Math.abs(Math.cos(ta)) <= Kn;
                    });
                    Fa === void 0 && (Fa = ba.reduce(function(ta, Zn) {
                      return Math.abs(Math.cos(ta)) < Math.abs(Math.cos(Zn)) ? ta : Zn;
                    }, ba[0]));
                    var xa = Fa * (180 / Math.PI);
                    if (Mn) {
                      var _a = 2;
                      for (ue.ticks && (_a += ue.tickwidth / 2), Sn = 0; Sn < Dn.length; Sn++) {
                        var si = bt[Sn].xbnd, pi = Dn[Sn];
                        if (si[0] !== null && pi.left - ue.l2p(si[0]) < _a || si[1] !== null && ue.l2p(si[1]) - pi.right < _a) {
                          Yt = xa;
                          break;
                        }
                      }
                    } else {
                      var ri = ue.ticklabelposition || "", da = function(ta) {
                        return ri.indexOf(ta) !== -1;
                      }, Fi = da("top"), sl = da("left"), Ta = da("right"), oo = da("bottom"), mi = oo || sl || Fi || Ta, wi = mi ? (ue.tickwidth || 0) + 2 * Be : 0;
                      for (Sn = 0; Sn < Dn.length - 1; Sn++)
                        if (u.bBoxIntersect(Dn[Sn], Dn[Sn + 1], wi)) {
                          Yt = xa;
                          break;
                        }
                    }
                    Yt && Et(It, Yt);
                  }
                }
                ue._selections && (ue._selections[Tt] = It);
                var $t = [Zt];
                ue.automargin && nt._redrawFromAutoMarginCount && St === 90 ? (Yt = St, $t.push(function() {
                  Et(It, St);
                })) : $t.push(Gt), ue._tickAngles && $t.push(function() {
                  ue._tickAngles[Tt] = Yt === null ? p(ht) ? ht : 0 : Yt;
                });
                var ir = function() {
                  var dn = 0, Dn = 0;
                  return It.each(function(Sn, Fn) {
                    var Mn = br(this), qn = Mn.select(".text-math-group");
                    if (qn.empty()) {
                      var Rn;
                      ue._vals[Fn] && (Rn = ue._vals[Fn].bb || b.bBox(Mn.node()), ue._vals[Fn].bb = Rn), dn = Math.max(dn, Rn.width), Dn = Math.max(Dn, Rn.height);
                    }
                  }), {
                    labelsMaxW: dn,
                    labelsMaxH: Dn
                  };
                }, wr = ue._anchorAxis;
                if (wr && (wr.autorange || wr.insiderange) && zr(ue) && !ee(nt, ue._id) && (nt._insideTickLabelsUpdaterange || (nt._insideTickLabelsUpdaterange = {}), wr.autorange && (nt._insideTickLabelsUpdaterange[wr._name + ".autorange"] = wr.autorange, $t.push(ir)), wr.insiderange)) {
                  var sr = ir(), Xr = ue._id.charAt(0) === "y" ? sr.labelsMaxW : sr.labelsMaxH;
                  Xr += 2 * Be, ue.ticklabelposition === "inside" && (Xr += ue.ticklen || 0);
                  var Lr = ue.side === "right" || ue.side === "top" ? 1 : -1, Pr = Lr === 1 ? 1 : 0, $r = Lr === 1 ? 0 : 1, Jr = [];
                  Jr[$r] = wr.range[$r];
                  var Qr = wr.range, vn = wr.r2p(Qr[Pr]), An = wr.r2p(Qr[$r]), hn = nt._insideTickLabelsUpdaterange[wr._name + ".range"];
                  if (hn) {
                    var Pn = wr.r2p(hn[Pr]), sa = wr.r2p(hn[$r]), Ra = Lr * (ue._id.charAt(0) === "y" ? 1 : -1);
                    Ra * vn < Ra * Pn && (vn = Pn, Jr[Pr] = Qr[Pr] = hn[Pr]), Ra * An > Ra * sa && (An = sa, Jr[$r] = Qr[$r] = hn[$r]);
                  }
                  var rn = Math.abs(An - vn);
                  rn - Xr > 0 ? (rn -= Xr, Xr *= 1 + Xr / rn) : Xr = 0, ue._id.charAt(0) !== "y" && (Xr = -Xr), Jr[Pr] = wr.p2r(wr.r2p(Qr[Pr]) + Lr * Xr), wr.autorange === "min" || wr.autorange === "max reversed" ? (Jr[0] = null, wr._rangeInitial0 = void 0, wr._rangeInitial1 = void 0) : (wr.autorange === "max" || wr.autorange === "min reversed") && (Jr[1] = null, wr._rangeInitial0 = void 0, wr._rangeInitial1 = void 0), nt._insideTickLabelsUpdaterange[wr._name + ".range"] = Jr;
                }
                var ua = u.syncOrAsync($t);
                return ua && ua.then && Ae._promises.push(ua), ua;
              };
              function st(Ae, ue, ft) {
                var nt = ue._id + "divider", mt = ft.vals, Tt = ft.layer.selectAll("path." + nt).data(mt, dt);
                Tt.exit().remove(), Tt.enter().insert("path", ":first-child").classed(nt, 1).classed("crisp", 1).call(i.stroke, ue.dividercolor).style("stroke-width", b.crispRound(Ae, ue.dividerwidth, 1) + "px"), Tt.attr("transform", ft.transFn).attr("d", ft.path);
              }
              xe.getPxPosition = function(Ae, ue) {
                var ft = Ae._fullLayout._size, nt = ue._id.charAt(0), mt = ue.side, Tt;
                if (ue.anchor !== "free" ? Tt = ue._anchorAxis : nt === "x" ? Tt = {
                  _offset: ft.t + (1 - (ue.position || 0)) * ft.h,
                  _length: 0
                } : nt === "y" && (Tt = {
                  _offset: ft.l + (ue.position || 0) * ft.w + ue._shift,
                  _length: 0
                }), mt === "top" || mt === "left")
                  return Tt._offset;
                if (mt === "bottom" || mt === "right")
                  return Tt._offset + Tt._length;
              };
              function Nt(Ae) {
                var ue = Ae.title.font.size, ft = (Ae.title.text.match(d.BR_TAG_ALL) || []).length;
                return Ae.title.hasOwnProperty("standoff") ? ue * (ye + ft * Ce) : ft ? ue * (ft + 1) * Ce : ue;
              }
              function ar(Ae, ue) {
                var ft = Ae._fullLayout, nt = ue._id, mt = nt.charAt(0), Tt = ue.title.font.size, bt, vt = (ue.title.text.match(d.BR_TAG_ALL) || []).length;
                if (ue.title.hasOwnProperty("standoff"))
                  ue.side === "bottom" || ue.side === "right" ? bt = ue._depth + ue.title.standoff + Tt * ye : (ue.side === "top" || ue.side === "left") && (bt = ue._depth + ue.title.standoff + Tt * (fe + vt * Ce));
                else {
                  var ht = zr(ue);
                  if (ue.type === "multicategory")
                    bt = ue._depth;
                  else {
                    var St = 1.5 * Tt;
                    ht && (St = 0.5 * Tt, ue.ticks === "outside" && (St += ue.ticklen)), bt = 10 + St + (ue.linewidth ? ue.linewidth - 1 : 0);
                  }
                  ht || (mt === "x" ? bt += ue.side === "top" ? Tt * (ue.showticklabels ? 1 : 0) : Tt * (ue.showticklabels ? 1.5 : 0.5) : bt += ue.side === "right" ? Tt * (ue.showticklabels ? 1 : 0.5) : Tt * (ue.showticklabels ? 0.5 : 0));
                }
                var It = xe.getPxPosition(Ae, ue), Ht, Et, Zt;
                mt === "x" ? (Et = ue._offset + ue._length / 2, Zt = ue.side === "top" ? It - bt : It + bt) : (Zt = ue._offset + ue._length / 2, Et = ue.side === "right" ? It + bt : It - bt, Ht = {
                  rotate: "-90",
                  offset: 0
                });
                var Yt;
                if (ue.type !== "multicategory") {
                  var Gt = ue._selections[ue._id + "tick"];
                  if (Yt = {
                    selection: Gt,
                    side: ue.side
                  }, Gt && Gt.node() && Gt.node().parentNode) {
                    var $t = b.getTranslate(Gt.node().parentNode);
                    Yt.offsetLeft = $t.x, Yt.offsetTop = $t.y;
                  }
                  ue.title.hasOwnProperty("standoff") && (Yt.pad = 0);
                }
                return ue._titleStandoff = bt, h.draw(Ae, nt + "title", {
                  propContainer: ue,
                  propName: ue._name + ".title.text",
                  placeholder: ft._dfltTitle[mt],
                  avoid: Yt,
                  transform: Ht,
                  attributes: {
                    x: Et,
                    y: Zt,
                    "text-anchor": "middle"
                  }
                });
              }
              xe.shouldShowZeroLine = function(Ae, ue, ft) {
                var nt = u.simpleMap(ue.range, ue.r2l);
                return nt[0] * nt[1] <= 0 && ue.zeroline && (ue.type === "linear" || ue.type === "-") && !(ue.rangebreaks && ue.maskBreaks(0) === te) && (ur(ue, 0) || !Or(Ae, ue, ft, nt) || Fr(Ae, ue));
              }, xe.clipEnds = function(Ae, ue) {
                return ue.filter(function(ft) {
                  return ur(Ae, ft.x);
                });
              };
              function ur(Ae, ue) {
                var ft = Ae.l2p(ue);
                return ft > 1 && ft < Ae._length - 1;
              }
              function Or(Ae, ue, ft, nt) {
                var mt = ft._mainAxis;
                if (!mt)
                  return;
                var Tt = Ae._fullLayout, bt = ue._id.charAt(0), vt = xe.counterLetter(ue._id), ht = ue._offset + (Math.abs(nt[0]) < Math.abs(nt[1]) == (bt === "x") ? 0 : ue._length);
                function St(Yt) {
                  if (!Yt.showline || !Yt.linewidth)
                    return !1;
                  var Gt = Math.max((Yt.linewidth + ue.zerolinewidth) / 2, 1);
                  function $t(sr) {
                    return typeof sr == "number" && Math.abs(sr - ht) < Gt;
                  }
                  if ($t(Yt._mainLinePosition) || $t(Yt._mainMirrorPosition))
                    return !0;
                  var ir = Yt._linepositions || {};
                  for (var wr in ir)
                    if ($t(ir[wr][0]) || $t(ir[wr][1]))
                      return !0;
                }
                var It = Tt._plots[ft._mainSubplot];
                if (!(It.mainplotinfo || It).overlays.length)
                  return St(ft);
                for (var Ht = xe.list(Ae, vt), Et = 0; Et < Ht.length; Et++) {
                  var Zt = Ht[Et];
                  if (Zt._mainAxis === mt && St(Zt))
                    return !0;
                }
              }
              function Fr(Ae, ue) {
                for (var ft = Ae._fullData, nt = ue._mainSubplot, mt = ue._id.charAt(0), Tt = 0; Tt < ft.length; Tt++) {
                  var bt = ft[Tt];
                  if (bt.visible === !0 && bt.xaxis + bt.yaxis === nt && (f.traceIs(bt, "bar-like") && bt.orientation === {
                    x: "h",
                    y: "v"
                  }[mt] || bt.fill && bt.fill.charAt(bt.fill.length - 1) === mt))
                    return !0;
                }
                return !1;
              }
              function br(Ae) {
                var ue = a.select(Ae), ft = ue.select(".text-math-group");
                return ft.empty() ? ue.select("text") : ft;
              }
              xe.allowAutoMargin = function(Ae) {
                for (var ue = xe.list(Ae, "", !0), ft = 0; ft < ue.length; ft++) {
                  var nt = ue[ft];
                  nt.automargin && (l.allowAutoMargin(Ae, or(nt)), nt.mirror && l.allowAutoMargin(Ae, Rr(nt))), f.getComponentMethod("rangeslider", "isVisible")(nt) && l.allowAutoMargin(Ae, lr(nt));
                }
              };
              function or(Ae) {
                return Ae._id + ".automargin";
              }
              function Rr(Ae) {
                return or(Ae) + ".mirror";
              }
              function lr(Ae) {
                return Ae._id + ".rangeslider";
              }
              xe.swap = function(Ae, ue) {
                for (var ft = Tr(Ae, ue), nt = 0; nt < ft.length; nt++)
                  Dr(Ae, ft[nt].x, ft[nt].y);
              };
              function Tr(Ae, ue) {
                var ft = [], nt, mt;
                for (nt = 0; nt < ue.length; nt++) {
                  var Tt = [], bt = Ae._fullData[ue[nt]].xaxis, vt = Ae._fullData[ue[nt]].yaxis;
                  if (!(!bt || !vt)) {
                    for (mt = 0; mt < ft.length; mt++)
                      (ft[mt].x.indexOf(bt) !== -1 || ft[mt].y.indexOf(vt) !== -1) && Tt.push(mt);
                    if (!Tt.length) {
                      ft.push({
                        x: [bt],
                        y: [vt]
                      });
                      continue;
                    }
                    var ht = ft[Tt[0]], St;
                    if (Tt.length > 1)
                      for (mt = 1; mt < Tt.length; mt++)
                        St = ft[Tt[mt]], Gr(ht.x, St.x), Gr(ht.y, St.y);
                    Gr(ht.x, [bt]), Gr(ht.y, [vt]);
                  }
                }
                return ft;
              }
              function Gr(Ae, ue) {
                for (var ft = 0; ft < ue.length; ft++)
                  Ae.indexOf(ue[ft]) === -1 && Ae.push(ue[ft]);
              }
              function Dr(Ae, ue, ft) {
                var nt = [], mt = [], Tt = Ae.layout, bt, vt;
                for (bt = 0; bt < ue.length; bt++)
                  nt.push(xe.getFromId(Ae, ue[bt]));
                for (bt = 0; bt < ft.length; bt++)
                  mt.push(xe.getFromId(Ae, ft[bt]));
                var ht = Object.keys(x), St = ["anchor", "domain", "overlaying", "position", "side", "tickangle", "editType"], It = ["linear", "log"];
                for (bt = 0; bt < ht.length; bt++) {
                  var Ht = ht[bt], Et = nt[0][Ht], Zt = mt[0][Ht], Yt = !0, Gt = !1, $t = !1;
                  if (!(Ht.charAt(0) === "_" || typeof Et == "function" || St.indexOf(Ht) !== -1)) {
                    for (vt = 1; vt < nt.length && Yt; vt++) {
                      var ir = nt[vt][Ht];
                      Ht === "type" && It.indexOf(Et) !== -1 && It.indexOf(ir) !== -1 && Et !== ir ? Gt = !0 : ir !== Et && (Yt = !1);
                    }
                    for (vt = 1; vt < mt.length && Yt; vt++) {
                      var wr = mt[vt][Ht];
                      Ht === "type" && It.indexOf(Zt) !== -1 && It.indexOf(wr) !== -1 && Zt !== wr ? $t = !0 : mt[vt][Ht] !== Zt && (Yt = !1);
                    }
                    Yt && (Gt && (Tt[nt[0]._name].type = "linear"), $t && (Tt[mt[0]._name].type = "linear"), gr(Tt, Ht, nt, mt, Ae._fullLayout._dfltTitle));
                  }
                }
                for (bt = 0; bt < Ae._fullLayout.annotations.length; bt++) {
                  var sr = Ae._fullLayout.annotations[bt];
                  ue.indexOf(sr.xref) !== -1 && ft.indexOf(sr.yref) !== -1 && u.swapAttrs(Tt.annotations[bt], ["?"]);
                }
              }
              function gr(Ae, ue, ft, nt, mt) {
                var Tt = u.nestedProperty, bt = Tt(Ae[ft[0]._name], ue).get(), vt = Tt(Ae[nt[0]._name], ue).get(), ht;
                for (ue === "title" && (bt && bt.text === mt.x && (bt.text = mt.y), vt && vt.text === mt.y && (vt.text = mt.x)), ht = 0; ht < ft.length; ht++)
                  Tt(Ae, ft[ht]._name + "." + ue).set(vt);
                for (ht = 0; ht < nt.length; ht++)
                  Tt(Ae, nt[ht]._name + "." + ue).set(bt);
              }
              function Er(Ae) {
                return Ae._id === "angularaxis";
              }
              function Cr(Ae, ue) {
                for (var ft = ue._rangebreaks.length, nt = 0; nt < ft; nt++) {
                  var mt = ue._rangebreaks[nt];
                  if (Ae >= mt.min && Ae < mt.max)
                    return mt.max;
                }
                return Ae;
              }
              function zr(Ae) {
                return (Ae.ticklabelposition || "").indexOf("inside") !== -1;
              }
              function en(Ae, ue) {
                zr(Ae._anchorAxis || {}) && Ae._hideCounterAxisInsideTickLabels && Ae._hideCounterAxisInsideTickLabels(ue);
              }
              function on(Ae, ue, ft, nt) {
                var mt = Ae.anchor !== "free" && (Ae.overlaying === void 0 || Ae.overlaying === !1) ? Ae._id : Ae.overlaying, Tt;
                nt ? Tt = Ae.side === "right" ? ue : -ue : Tt = ue, mt in ft || (ft[mt] = {}), Ae.side in ft[mt] || (ft[mt][Ae.side] = 0), ft[mt][Ae.side] += Tt;
              }
              function Ir(Ae, ue) {
                return Ae.autoshift ? ue[Ae.overlaying][Ae.side] : Ae.shift || 0;
              }
            }
          ),
          /***/
          2976: (
            /***/
            function(M, L, r) {
              var a = r(8248), p = r(3400), l = r(9032).BADNUM, f = p.isArrayOrTypedArray, u = p.isDateTime, c = p.cleanNumber, d = Math.round;
              M.exports = function(S, T, k) {
                var A = S, R = k.noMultiCategory;
                if (f(A) && !A.length)
                  return "-";
                if (!R && C(A))
                  return "multicategory";
                if (R && Array.isArray(A[0])) {
                  for (var g = [], I = 0; I < A.length; I++)
                    if (f(A[I]))
                      for (var O = 0; O < A[I].length; O++)
                        g.push(A[I][O]);
                  A = g;
                }
                if (b(A, T))
                  return "date";
                var $ = k.autotypenumbers !== "strict";
                return D(A, $) ? "category" : i(A, $) ? "linear" : "-";
              };
              function h(w, S) {
                return S ? a(w) : typeof w == "number";
              }
              function i(w, S) {
                for (var T = w.length, k = 0; k < T; k++)
                  if (h(w[k], S))
                    return !0;
                return !1;
              }
              function b(w, S) {
                for (var T = w.length, k = x(T), A = 0, R = 0, g = {}, I = 0; I < T; I += k) {
                  var O = d(I), $ = w[O], Y = String($);
                  g[Y] || (g[Y] = 1, u($, S) && A++, a($) && R++);
                }
                return A > R * 2;
              }
              function x(w) {
                return Math.max(1, (w - 1) / 1e3);
              }
              function D(w, S) {
                for (var T = w.length, k = x(T), A = 0, R = 0, g = {}, I = 0; I < T; I += k) {
                  var O = d(I), $ = w[O], Y = String($);
                  if (!g[Y]) {
                    g[Y] = 1;
                    var ne = typeof $;
                    ne === "boolean" ? R++ : (S ? c($) !== l : ne === "number") ? A++ : ne === "string" && R++;
                  }
                }
                return R > A * 2;
              }
              function C(w) {
                return f(w[0]) && f(w[1]);
              }
            }
          ),
          /***/
          5955: (
            /***/
            function(M, L, r) {
              var a = r(8248), p = r(4040), l = r(3400), f = r(1780), u = r(1272), c = r(4724), d = r(6332), h = r(5404), i = r(5936), b = r(2568), x = r(4796), D = r(2136), C = r(6312), w = r(8344), S = r(3816).WEEKDAY_PATTERN, T = r(3816).HOUR_PATTERN;
              M.exports = function(I, O, $, Y, ne) {
                var q = Y.letter, B = Y.font || {}, X = Y.splomStash || {}, U = $("visible", !Y.visibleDflt), te = O._template || {}, se = O.type || te.type || "-", me;
                if (se === "date") {
                  var J = p.getComponentMethod("calendars", "handleDefaults");
                  J(I, O, "calendar", Y.calendar), Y.noTicklabelmode || (me = $("ticklabelmode"));
                }
                var W = "";
                (!Y.noTicklabelposition || se === "multicategory") && (W = l.coerce(I, O, {
                  ticklabelposition: {
                    valType: "enumerated",
                    dflt: "outside",
                    values: me === "period" ? ["outside", "inside"] : q === "x" ? ["outside", "inside", "outside left", "inside left", "outside right", "inside right"] : ["outside", "inside", "outside top", "inside top", "outside bottom", "inside bottom"]
                  }
                }, "ticklabelposition")), Y.noTicklabeloverflow || $("ticklabeloverflow", W.indexOf("inside") !== -1 ? "hide past domain" : se === "category" || se === "multicategory" ? "allow" : "hide past div"), w(O, ne), C(I, O, $, Y), x(I, O, $, Y), se !== "category" && !Y.noHover && $("hoverformat");
                var ae = $("color"), oe = ae !== c.color.dflt ? ae : B.color, ve = X.label || ne._dfltTitle[q];
                if (b(I, O, $, se, Y), !U)
                  return O;
                $("title.text", ve), l.coerceFont($, "title.font", B, {
                  overrideDflt: {
                    size: l.bigFont(B.size),
                    color: oe
                  }
                }), d(I, O, $, se);
                var fe = Y.hasMinor;
                if (fe && (f.newContainer(O, "minor"), d(I, O, $, se, {
                  isMinor: !0
                })), i(I, O, $, se, Y), h(I, O, $, Y), fe) {
                  var ye = Y.isMinor;
                  Y.isMinor = !0, h(I, O, $, Y), Y.isMinor = ye;
                }
                D(I, O, $, {
                  dfltColor: ae,
                  bgColor: Y.bgColor,
                  showGrid: Y.showGrid,
                  hasMinor: fe,
                  attributes: c
                }), fe && !O.minor.ticks && !O.minor.showgrid && delete O.minor, (O.showline || O.ticks) && $("mirror");
                var Ce = se === "multicategory";
                if (!Y.noTickson && (se === "category" || Ce) && (O.ticks || O.showgrid)) {
                  var Re;
                  Ce && (Re = "boundaries");
                  var Be = $("tickson", Re);
                  Be === "boundaries" && delete O.ticklabelposition;
                }
                if (Ce) {
                  var xe = $("showdividers");
                  xe && ($("dividercolor"), $("dividerwidth"));
                }
                if (se === "date")
                  if (u(I, O, {
                    name: "rangebreaks",
                    inclusionAttr: "enabled",
                    handleItemDefaults: k
                  }), !O.rangebreaks.length)
                    delete O.rangebreaks;
                  else {
                    for (var Me = 0; Me < O.rangebreaks.length; Me++)
                      if (O.rangebreaks[Me].pattern === S) {
                        O._hasDayOfWeekBreaks = !0;
                        break;
                      }
                    if (w(O, ne), ne._has("scattergl") || ne._has("splom"))
                      for (var De = 0; De < Y.data.length; De++) {
                        var Z = Y.data[De];
                        (Z.type === "scattergl" || Z.type === "splom") && (Z.visible = !1, l.warn(Z.type + " traces do not work on axes with rangebreaks. Setting trace " + Z.index + " to `visible: false`."));
                      }
                  }
                return O;
              };
              function k(g, I, O) {
                function $(me, J) {
                  return l.coerce(g, I, c.rangebreaks, me, J);
                }
                var Y = $("enabled");
                if (Y) {
                  var ne = $("bounds");
                  if (ne && ne.length >= 2) {
                    var q = "", B, X;
                    if (ne.length === 2) {
                      for (B = 0; B < 2; B++)
                        if (X = R(ne[B]), X) {
                          q = S;
                          break;
                        }
                    }
                    var U = $("pattern", q);
                    if (U === S)
                      for (B = 0; B < 2; B++)
                        X = R(ne[B]), X && (I.bounds[B] = ne[B] = X - 1);
                    if (U)
                      for (B = 0; B < 2; B++)
                        switch (X = ne[B], U) {
                          case S:
                            if (!a(X)) {
                              I.enabled = !1;
                              return;
                            }
                            if (X = +X, X !== Math.floor(X) || // don't accept fractional days for mow
                            X < 0 || X >= 7) {
                              I.enabled = !1;
                              return;
                            }
                            I.bounds[B] = ne[B] = X;
                            break;
                          case T:
                            if (!a(X)) {
                              I.enabled = !1;
                              return;
                            }
                            if (X = +X, X < 0 || X > 24) {
                              I.enabled = !1;
                              return;
                            }
                            I.bounds[B] = ne[B] = X;
                            break;
                        }
                    if (O.autorange === !1) {
                      var te = O.range;
                      if (te[0] < te[1]) {
                        if (ne[0] < te[0] && ne[1] > te[1]) {
                          I.enabled = !1;
                          return;
                        }
                      } else if (ne[0] > te[0] && ne[1] < te[1]) {
                        I.enabled = !1;
                        return;
                      }
                    }
                  } else {
                    var se = $("values");
                    if (se && se.length)
                      $("dvalue");
                    else {
                      I.enabled = !1;
                      return;
                    }
                  }
                }
              }
              var A = {
                sun: 1,
                mon: 2,
                tue: 3,
                wed: 4,
                thu: 5,
                fri: 6,
                sat: 7
              };
              function R(g) {
                if (typeof g == "string")
                  return A[g.substr(0, 3).toLowerCase()];
              }
            }
          ),
          /***/
          9736: (
            /***/
            function(M, L, r) {
              var a = r(6880), p = a.FORMAT_LINK, l = a.DATE_FORMAT_LINK;
              function f(d, h) {
                return {
                  valType: "string",
                  dflt: "",
                  editType: "none",
                  description: (h ? u : c)("hover text", d) + ["By default the values are formatted using " + (h ? "generic number format" : "`" + d + "axis.hoverformat`") + "."].join(" ")
                };
              }
              function u(d, h) {
                return ["Sets the " + d + " formatting rule" + (h ? "for `" + h + "` " : ""), "using d3 formatting mini-languages", "which are very similar to those in Python. For numbers, see: " + p + "."].join(" ");
              }
              function c(d, h) {
                return u(d, h) + [" And for dates see: " + l + ".", "We add two items to d3's date formatter:", "*%h* for half of the year as a decimal number as well as", "*%{n}f* for fractional seconds", "with n digits. For example, *2016-10-13 09:15:23.456* with tickformat", "*%H~%M~%S.%2f* would display *09~15~23.46*"].join(" ");
              }
              M.exports = {
                axisHoverFormat: f,
                descriptionOnlyNumbers: u,
                descriptionWithDates: c
              };
            }
          ),
          /***/
          9811: (
            /***/
            function(M, L, r) {
              var a = r(4040), p = r(3816);
              L.id2name = function(u) {
                if (!(typeof u != "string" || !u.match(p.AX_ID_PATTERN))) {
                  var c = u.split(" ")[0].substr(1);
                  return c === "1" && (c = ""), u.charAt(0) + "axis" + c;
                }
              }, L.name2id = function(u) {
                if (u.match(p.AX_NAME_PATTERN)) {
                  var c = u.substr(5);
                  return c === "1" && (c = ""), u.charAt(0) + c;
                }
              }, L.cleanId = function(u, c, d) {
                var h = /( domain)$/.test(u);
                if (!(typeof u != "string" || !u.match(p.AX_ID_PATTERN)) && !(c && u.charAt(0) !== c) && !(h && !d)) {
                  var i = u.split(" ")[0].substr(1).replace(/^0+/, "");
                  return i === "1" && (i = ""), u.charAt(0) + i + (h && d ? " domain" : "");
                }
              }, L.list = function(f, u, c) {
                var d = f._fullLayout;
                if (!d)
                  return [];
                var h = L.listIds(f, u), i = new Array(h.length), b;
                for (b = 0; b < h.length; b++) {
                  var x = h[b];
                  i[b] = d[x.charAt(0) + "axis" + x.substr(1)];
                }
                if (!c) {
                  var D = d._subplots.gl3d || [];
                  for (b = 0; b < D.length; b++) {
                    var C = d[D[b]];
                    u ? i.push(C[u + "axis"]) : i.push(C.xaxis, C.yaxis, C.zaxis);
                  }
                }
                return i;
              }, L.listIds = function(f, u) {
                var c = f._fullLayout;
                if (!c)
                  return [];
                var d = c._subplots;
                return u ? d[u + "axis"] : d.xaxis.concat(d.yaxis);
              }, L.getFromId = function(f, u, c) {
                var d = f._fullLayout;
                return u = u === void 0 || typeof u != "string" ? u : u.replace(" domain", ""), c === "x" ? u = u.replace(/y[0-9]*/, "") : c === "y" && (u = u.replace(/x[0-9]*/, "")), d[L.id2name(u)];
              }, L.getFromTrace = function(f, u, c) {
                var d = f._fullLayout, h = null;
                if (a.traceIs(u, "gl3d")) {
                  var i = u.scene;
                  i.substr(0, 5) === "scene" && (h = d[i][c + "axis"]);
                } else
                  h = L.getFromId(f, u[c + "axis"] || c);
                return h;
              }, L.idSort = function(f, u) {
                var c = f.charAt(0), d = u.charAt(0);
                return c !== d ? c > d ? 1 : -1 : +(f.substr(1) || 1) - +(u.substr(1) || 1);
              }, L.ref2id = function(f) {
                return /^[xyz]/.test(f) ? f.split(" ")[0] : !1;
              };
              function l(f, u) {
                if (u && u.length) {
                  for (var c = 0; c < u.length; c++)
                    if (u[c][f])
                      return !0;
                }
                return !1;
              }
              L.isLinked = function(f, u) {
                return l(u, f._axisMatchGroups) || l(u, f._axisConstraintGroups);
              };
            }
          ),
          /***/
          4796: (
            /***/
            function(M, L, r) {
              var a = r(8116).isTypedArraySpec;
              function p(l, f) {
                var u = f.dataAttr || l._id.charAt(0), c = {}, d, h, i;
                if (f.axData)
                  d = f.axData;
                else
                  for (d = [], h = 0; h < f.data.length; h++) {
                    var b = f.data[h];
                    b[u + "axis"] === l._id && d.push(b);
                  }
                for (h = 0; h < d.length; h++) {
                  var x = d[h][u];
                  for (i = 0; i < x.length; i++) {
                    var D = x[i];
                    D != null && (c[D] = 1);
                  }
                }
                return Object.keys(c);
              }
              M.exports = function(f, u, c, d) {
                if (u.type === "category") {
                  var h = f.categoryarray, i = Array.isArray(h) && h.length > 0 || a(h), b;
                  i && (b = "array");
                  var x = c("categoryorder", b), D;
                  x === "array" && (D = c("categoryarray")), !i && x === "array" && (x = u.categoryorder = "trace"), x === "trace" ? u._initialCategories = [] : x === "array" ? u._initialCategories = D.slice() : (D = p(u, d).sort(), x === "category ascending" ? u._initialCategories = D : x === "category descending" && (u._initialCategories = D.reverse()));
                }
              };
            }
          ),
          /***/
          8728: (
            /***/
            function(M, L, r) {
              var a = r(8248), p = r(3400), l = r(9032), f = l.ONEDAY, u = l.ONEWEEK;
              L.dtick = function(c, d) {
                var h = d === "log", i = d === "date", b = d === "category", x = i ? f : 1;
                if (!c)
                  return x;
                if (a(c))
                  return c = Number(c), c <= 0 ? x : b ? Math.max(1, Math.round(c)) : i ? Math.max(0.1, c) : c;
                if (typeof c != "string" || !(i || h))
                  return x;
                var D = c.charAt(0), C = c.substr(1);
                return C = a(C) ? Number(C) : 0, C <= 0 || !// "M<n>" gives ticks every (integer) n months
                (i && D === "M" && C === Math.round(C) || // "L<f>" gives ticks linearly spaced in data (not in position) every (float) f
                h && D === "L" || // "D1" gives powers of 10 with all small digits between, "D2" gives only 2 and 5
                h && D === "D" && (C === 1 || C === 2)) ? x : c;
              }, L.tick0 = function(c, d, h, i) {
                if (d === "date")
                  return p.cleanDate(c, p.dateTick0(h, i % u === 0 ? 1 : 0));
                if (!(i === "D1" || i === "D2"))
                  return a(c) ? Number(c) : 0;
              };
            }
          ),
          /***/
          3816: (
            /***/
            function(M, L, r) {
              var a = r(3756).counter;
              M.exports = {
                idRegex: {
                  x: a("x", "( domain)?"),
                  y: a("y", "( domain)?")
                },
                attrRegex: a("[xy]axis"),
                // axis match regular expression
                xAxisMatch: a("xaxis"),
                yAxisMatch: a("yaxis"),
                // pattern matching axis ids and names
                // note that this is more permissive than counterRegex, as
                // id2name, name2id, and cleanId accept "x1" etc
                AX_ID_PATTERN: /^[xyz][0-9]*( domain)?$/,
                AX_NAME_PATTERN: /^[xyz]axis[0-9]*$/,
                // and for 2D subplots
                SUBPLOT_PATTERN: /^x([0-9]*)y([0-9]*)$/,
                HOUR_PATTERN: "hour",
                WEEKDAY_PATTERN: "day of week",
                // pixels to move mouse before you stop clamping to starting point
                MINDRAG: 8,
                // smallest dimension allowed for a zoombox
                MINZOOM: 20,
                // width of axis drag regions
                DRAGGERSIZE: 20,
                // delay before a redraw (relayout) after smooth panning and zooming
                REDRAWDELAY: 50,
                // last resort axis ranges for x and y axes if we have no data
                DFLTRANGEX: [-1, 6],
                DFLTRANGEY: [-1, 4],
                // Layers to keep trace types in the right order
                // N.B. each  'unique' plot method must have its own layer
                traceLayerClasses: ["imagelayer", "heatmaplayer", "contourcarpetlayer", "contourlayer", "funnellayer", "waterfalllayer", "barlayer", "carpetlayer", "violinlayer", "boxlayer", "ohlclayer", "scattercarpetlayer", "scatterlayer"],
                clipOnAxisFalseQuery: [".scatterlayer", ".barlayer", ".funnellayer", ".waterfalllayer"],
                layerValue2layerClass: {
                  "above traces": "above",
                  "below traces": "below"
                }
              };
            }
          ),
          /***/
          1888: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(9280), l = r(9811).id2name, f = r(4724), u = r(1160), c = r(8344), d = r(9032).ALMOST_EQUAL, h = r(4284).FROM_BL;
              L.handleDefaults = function(T, k, A) {
                var R = A.axIds, g = A.axHasImage, I = k._axisConstraintGroups = [], O = k._axisMatchGroups = [], $, Y, ne, q, B, X, U, te;
                for ($ = 0; $ < R.length; $++)
                  q = l(R[$]), B = T[q], X = k[q], i(B, X, {
                    axIds: R,
                    layoutOut: k,
                    hasImage: g[q]
                  });
                function se(Ce, Re) {
                  for ($ = 0; $ < Ce.length; $++) {
                    Y = Ce[$];
                    for (ne in Y)
                      k[l(ne)][Re] = Y;
                  }
                }
                for (se(O, "_matchGroup"), $ = 0; $ < I.length; $++) {
                  Y = I[$];
                  for (ne in Y)
                    if (X = k[l(ne)], X.fixedrange) {
                      for (var me in Y) {
                        var J = l(me);
                        (T[J] || {}).fixedrange === !1 && a.warn("fixedrange was specified as false for axis " + J + " but was overridden because another axis in its constraint group has fixedrange true"), k[J].fixedrange = !0;
                      }
                      break;
                    }
                }
                for ($ = 0; $ < I.length; ) {
                  Y = I[$];
                  for (ne in Y) {
                    X = k[l(ne)], X._matchGroup && Object.keys(X._matchGroup).length === Object.keys(Y).length && (I.splice($, 1), $--);
                    break;
                  }
                  $++;
                }
                se(I, "_constraintGroup");
                var W = ["constrain", "range", "autorange", "rangemode", "rangebreaks", "categoryorder", "categoryarray"], ae = !1, oe = !1;
                function ve() {
                  te = X[U], U === "rangebreaks" && (oe = X._hasDayOfWeekBreaks);
                }
                for ($ = 0; $ < O.length; $++) {
                  Y = O[$];
                  for (var fe = 0; fe < W.length; fe++) {
                    U = W[fe], te = null;
                    var ye;
                    for (ne in Y)
                      if (q = l(ne), B = T[q], X = k[q], U in X) {
                        if (!X.matches && (ye = X, U in B)) {
                          ve();
                          break;
                        }
                        te === null && U in B && ve();
                      }
                    if (U === "range" && te && B.range && B.range.length === 2 && B.range[0] !== null && B.range[1] !== null && (ae = !0), U === "autorange" && te === null && ae && (te = !1), te === null && U in ye && (te = ye[U]), te !== null)
                      for (ne in Y)
                        X = k[l(ne)], X[U] = U === "range" ? te.slice() : te, U === "rangebreaks" && (X._hasDayOfWeekBreaks = oe, c(X, k));
                  }
                }
              };
              function i(T, k, A) {
                var R = A.axIds, g = A.layoutOut, I = A.hasImage, O = g._axisConstraintGroups, $ = g._axisMatchGroups, Y = k._id, ne = Y.charAt(0), q = ((g._splomAxes || {})[ne] || {})[Y] || {}, B = k._id, X = B.charAt(0) === "x";
                k._matchGroup = null, k._constraintGroup = null;
                function U(Me, De) {
                  return a.coerce(T, k, f, Me, De);
                }
                U("constrain", I ? "domain" : "range"), a.coerce(T, k, {
                  constraintoward: {
                    valType: "enumerated",
                    values: X ? ["left", "center", "right"] : ["bottom", "middle", "top"],
                    dflt: X ? "center" : "middle"
                  }
                }, "constraintoward");
                var te = k.type, se, me, J = [];
                for (se = 0; se < R.length; se++)
                  if (me = R[se], me !== B) {
                    var W = g[l(me)];
                    W.type === te && J.push(me);
                  }
                var ae = x(O, B);
                if (ae) {
                  var oe = [];
                  for (se = 0; se < J.length; se++)
                    me = J[se], ae[me] || oe.push(me);
                  J = oe;
                }
                var ve = J.length, fe, ye;
                ve && (T.matches || q.matches) && (fe = a.coerce(T, k, {
                  matches: {
                    valType: "enumerated",
                    values: J,
                    dflt: J.indexOf(q.matches) !== -1 ? q.matches : void 0
                  }
                }, "matches"));
                var Ce = I && !X ? k.anchor : void 0;
                if (ve && !fe && (T.scaleanchor || Ce) && (ye = a.coerce(T, k, {
                  scaleanchor: {
                    valType: "enumerated",
                    values: J.concat([!1])
                  }
                }, "scaleanchor", Ce)), fe) {
                  k._matchGroup = D($, B, fe, 1);
                  var Re = g[l(fe)], Be = b(g, k) / b(g, Re);
                  X !== (fe.charAt(0) === "x") && (Be = (X ? "x" : "y") + Be), D(O, B, fe, Be);
                } else
                  T.matches && R.indexOf(T.matches) !== -1 && a.warn("ignored " + k._name + '.matches: "' + T.matches + '" to avoid an infinite loop');
                if (ye) {
                  var xe = U("scaleratio");
                  xe || (xe = k.scaleratio = 1), D(O, B, ye, xe);
                } else
                  T.scaleanchor && R.indexOf(T.scaleanchor) !== -1 && a.warn("ignored " + k._name + '.scaleanchor: "' + T.scaleanchor + '" to avoid either an infinite loop and possibly inconsistent scaleratios, or because this axis declares a *matches* constraint.');
              }
              function b(T, k) {
                var A = k.domain;
                return A || (A = T[l(k.overlaying)].domain), A[1] - A[0];
              }
              function x(T, k) {
                for (var A = 0; A < T.length; A++)
                  if (T[A][k])
                    return T[A];
                return null;
              }
              function D(T, k, A, R) {
                var g, I, O, $, Y, ne = x(T, k);
                ne === null ? (ne = {}, ne[k] = 1, Y = T.length, T.push(ne)) : Y = T.indexOf(ne);
                var q = Object.keys(ne);
                for (g = 0; g < T.length; g++)
                  if (O = T[g], g !== Y && O[A]) {
                    var B = O[A];
                    for (I = 0; I < q.length; I++)
                      $ = q[I], O[$] = C(B, C(R, ne[$]));
                    T.splice(Y, 1);
                    return;
                  }
                if (R !== 1)
                  for (I = 0; I < q.length; I++) {
                    var X = q[I];
                    ne[X] = C(R, ne[X]);
                  }
                ne[A] = 1;
              }
              function C(T, k) {
                var A = "", R = "", g, I;
                typeof T == "string" && (A = T.match(/^[xy]*/)[0], g = A.length, T = +T.substr(g)), typeof k == "string" && (R = k.match(/^[xy]*/)[0], I = R.length, k = +k.substr(I));
                var O = T * k;
                return !g && !I ? O : !g || !I || A.charAt(0) === R.charAt(0) ? A + R + T * k : g === I ? O : (g > I ? A.substr(I) : R.substr(g)) + O;
              }
              function w(T, k) {
                for (var A = k._size, R = A.h / A.w, g = {}, I = Object.keys(T), O = 0; O < I.length; O++) {
                  var $ = I[O], Y = T[$];
                  if (typeof Y == "string") {
                    var ne = Y.match(/^[xy]*/)[0], q = ne.length;
                    Y = +Y.substr(q);
                    for (var B = ne.charAt(0) === "y" ? R : 1 / R, X = 0; X < q; X++)
                      Y *= B;
                  }
                  g[$] = Y;
                }
                return g;
              }
              L.enforce = function(k) {
                var A = k._fullLayout, R = A._axisConstraintGroups || [], g, I, O, $, Y, ne, q, B;
                for (g = 0; g < R.length; g++) {
                  O = w(R[g], A);
                  var X = Object.keys(O), U = 1 / 0, te = 0, se = 1 / 0, me = {}, J = {}, W = !1;
                  for (I = 0; I < X.length; I++)
                    $ = X[I], J[$] = Y = A[l($)], Y._inputDomain ? Y.domain = Y._inputDomain.slice() : Y._inputDomain = Y.domain.slice(), Y._inputRange || (Y._inputRange = Y.range.slice()), Y.setScale(), me[$] = ne = Math.abs(Y._m) / O[$], U = Math.min(U, ne), (Y.constrain === "domain" || !Y._constraintShrinkable) && (se = Math.min(se, ne)), delete Y._constraintShrinkable, te = Math.max(te, ne), Y.constrain === "domain" && (W = !0);
                  if (!(U > d * te && !W)) {
                    for (I = 0; I < X.length; I++)
                      if ($ = X[I], ne = me[$], Y = J[$], q = Y.constrain, ne !== se || q === "domain")
                        if (B = ne / se, q === "range")
                          u(Y, B);
                        else {
                          var ae = Y._inputDomain, oe = (Y.domain[1] - Y.domain[0]) / (ae[1] - ae[0]), ve = (Y.r2l(Y.range[1]) - Y.r2l(Y.range[0])) / (Y.r2l(Y._inputRange[1]) - Y.r2l(Y._inputRange[0]));
                          if (B /= oe, B * ve < 1) {
                            Y.domain = Y._input.domain = ae.slice(), u(Y, B);
                            continue;
                          }
                          if (ve < 1 && (Y.range = Y._input.range = Y._inputRange.slice(), B *= ve), Y.autorange) {
                            var fe = Y.r2l(Y.range[0]), ye = Y.r2l(Y.range[1]), Ce = (fe + ye) / 2, Re = Ce, Be = Ce, xe = Math.abs(ye - Ce), Me = Ce - xe * B * 1.0001, De = Ce + xe * B * 1.0001, Z = p.makePadFn(A, Y, 0), ee = p.makePadFn(A, Y, 1);
                            S(Y, B);
                            var ie = Math.abs(Y._m), G = p.concatExtremes(k, Y), H = G.min, ce = G.max, j, he;
                            for (he = 0; he < H.length; he++)
                              j = H[he].val - Z(H[he]) / ie, j > Me && j < Re && (Re = j);
                            for (he = 0; he < ce.length; he++)
                              j = ce[he].val + ee(ce[he]) / ie, j < De && j > Be && (Be = j);
                            var be = (Be - Re) / (2 * xe);
                            B /= be, Re = Y.l2r(Re), Be = Y.l2r(Be), Y.range = Y._input.range = fe < ye ? [Re, Be] : [Be, Re];
                          }
                          S(Y, B);
                        }
                  }
                }
              }, L.getAxisGroup = function(k, A) {
                for (var R = k._axisMatchGroups, g = 0; g < R.length; g++) {
                  var I = R[g];
                  if (I[A])
                    return "g" + g;
                }
                return A;
              }, L.clean = function(k, A) {
                if (A._inputDomain) {
                  for (var R = !1, g = A._id, I = k._fullLayout._axisConstraintGroups, O = 0; O < I.length; O++)
                    if (I[O][g]) {
                      R = !0;
                      break;
                    }
                  (!R || A.constrain !== "domain") && (A._input.domain = A.domain = A._inputDomain, delete A._inputDomain);
                }
              };
              function S(T, k) {
                var A = T._inputDomain, R = h[T.constraintoward], g = A[0] + (A[1] - A[0]) * R;
                T.domain = T._input.domain = [g + (A[0] - g) / k, g + (A[1] - g) / k], T.setScale();
              }
            }
          ),
          /***/
          1184: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(3400), l = p.numberFormat, f = r(9760), u = r(9184), c = r(4040), d = p.strTranslate, h = r(2736), i = r(6308), b = r(3616), x = r(3024), D = r(4460), C = r(3972), w = r(6476), S = r(2760), T = S.selectingOrDrawing, k = S.freeMode, A = r(4284).FROM_TL, R = r(3696), g = r(9172).redrawReglTraces, I = r(7316), O = r(9811).getFromId, $ = r(2676).prepSelect, Y = r(2676).clearOutline, ne = r(2676).selectOnClick, q = r(1160), B = r(3816), X = B.MINDRAG, U = B.MINZOOM, te = !0;
              function se(j, he, be, we, Ie, Ge, Ve, Je) {
                var et = j._fullLayout._zoomlayer, at = Ve + Je === "nsew", Le = (Ve + Je).length === 1, ze, Oe, Xe, it, ut, wt, kt, Ot, Lt, Mt, Ut, Ct, jt, nr, Jt, Wt, qe, Ue, We, je, lt, Se, Pe;
                be += he.yaxis._shift;
                function Ye() {
                  if (ze = he.xaxis, Oe = he.yaxis, Lt = ze._length, Mt = Oe._length, kt = ze._offset, Ot = Oe._offset, Xe = {}, Xe[ze._id] = ze, it = {}, it[Oe._id] = Oe, Ve && Je)
                    for (var vt = he.overlays, ht = 0; ht < vt.length; ht++) {
                      var St = vt[ht].xaxis;
                      Xe[St._id] = St;
                      var It = vt[ht].yaxis;
                      it[It._id] = It;
                    }
                  ut = ce(Xe), wt = ce(it), jt = W(ut, Je), nr = W(wt, Ve), Jt = !nr && !jt, Ct = G(j, j._fullLayout._axisMatchGroups, Xe, it), Ut = G(j, j._fullLayout._axisConstraintGroups, Xe, it, Ct);
                  var Ht = Ut.isSubplotConstrained || Ct.isSubplotConstrained;
                  Wt = Je || Ht, qe = Ve || Ht;
                  var Et = j._fullLayout;
                  Ue = Et._has("scattergl"), We = Et._has("splom"), je = Et._has("svg");
                }
                Ye();
                var Ze = ye(nr + jt, j._fullLayout.dragmode, at), rt = J(he, Ve + Je + "drag", Ze, be, we, Ie, Ge);
                if (Jt && !at)
                  return rt.onmousedown = null, rt.style.pointerEvents = "none", rt;
                var tt = {
                  element: rt,
                  gd: j,
                  plotinfo: he
                };
                tt.prepFn = function(vt, ht, St) {
                  var It = tt.dragmode, Ht = j._fullLayout.dragmode;
                  Ht !== It && (tt.dragmode = Ht), Ye(), Se = j._fullLayout._invScaleX, Pe = j._fullLayout._invScaleY, Jt || (at ? vt.shiftKey ? Ht === "pan" ? Ht = "zoom" : T(Ht) || (Ht = "pan") : vt.ctrlKey && (Ht = "pan") : Ht = "pan"), k(Ht) ? tt.minDrag = 1 : tt.minDrag = void 0, T(Ht) ? (tt.xaxes = ut, tt.yaxes = wt, $(vt, ht, St, tt, Ht)) : (tt.clickFn = Dt, T(It) && Ft(), Jt || (Ht === "zoom" ? (tt.moveFn = Tr, tt.doneFn = Dr, tt.minDrag = 1, lr(vt, ht, St)) : Ht === "pan" && (tt.moveFn = on, tt.doneFn = ft))), j._fullLayout._redrag = function() {
                    var Et = j._dragdata;
                    if (Et && Et.element === rt) {
                      var Zt = j._fullLayout.dragmode;
                      T(Zt) || (Ye(), nt([0, 0, Lt, Mt]), tt.moveFn(Et.dx, Et.dy));
                    }
                  };
                };
                function Ft() {
                  tt.plotinfo.selection = !1, Y(j);
                }
                function Dt(vt, ht) {
                  var St = tt.gd;
                  if (St._fullLayout._activeShapeIndex >= 0) {
                    St._fullLayout._deactivateShape(St);
                    return;
                  }
                  var It = St._fullLayout.clickmode;
                  if (Me(St), vt === 2 && !Le && ue(), at)
                    It.indexOf("select") > -1 && ne(ht, St, ut, wt, he.id, tt), It.indexOf("event") > -1 && x.click(St, ht, he.id);
                  else if (vt === 1 && Le) {
                    var Ht = Ve ? Oe : ze, Et = Ve === "s" || Je === "w" ? 0 : 1, Zt = Ht._name + ".range[" + Et + "]", Yt = ae(Ht, Et), Gt = "left", $t = "middle";
                    if (Ht.fixedrange)
                      return;
                    Ve ? ($t = Ve === "n" ? "top" : "bottom", Ht.side === "right" && (Gt = "right")) : Je === "e" && (Gt = "right"), St._context.showAxisRangeEntryBoxes && a.select(rt).call(h.makeEditable, {
                      gd: St,
                      immediate: !0,
                      background: St._fullLayout.paper_bgcolor,
                      text: String(Yt),
                      fill: Ht.tickfont ? Ht.tickfont.color : "#444",
                      horizontalAlign: Gt,
                      verticalAlign: $t
                    }).on("edit", function(ir) {
                      var wr = Ht.d2r(ir);
                      wr !== void 0 && c.call("_guiRelayout", St, Zt, wr);
                    });
                  }
                }
                w.init(tt);
                var dt, st, Nt, ar, ur, Or, Fr, br, or, Rr;
                function lr(vt, ht, St) {
                  var It = rt.getBoundingClientRect();
                  dt = ht - It.left, st = St - It.top, j._fullLayout._calcInverseTransform(j);
                  var Ht = p.apply3DTransform(j._fullLayout._invTransform)(dt, st);
                  dt = Ht[0], st = Ht[1], Nt = {
                    l: dt,
                    r: dt,
                    w: 0,
                    t: st,
                    b: st,
                    h: 0
                  }, ar = j._hmpixcount ? j._hmlumcount / j._hmpixcount : f(j._fullLayout.plot_bgcolor).getLuminance(), ur = "M0,0H" + Lt + "V" + Mt + "H0V0", Or = !1, Fr = "xy", Rr = !1, br = Ce(et, ar, kt, Ot, ur), or = Re(et, kt, Ot);
                }
                function Tr(vt, ht) {
                  if (j._transitioningWithDuration)
                    return !1;
                  var St = Math.max(0, Math.min(Lt, Se * vt + dt)), It = Math.max(0, Math.min(Mt, Pe * ht + st)), Ht = Math.abs(St - dt), Et = Math.abs(It - st);
                  Nt.l = Math.min(dt, St), Nt.r = Math.max(dt, St), Nt.t = Math.min(st, It), Nt.b = Math.max(st, It);
                  function Zt() {
                    Fr = "", Nt.r = Nt.l, Nt.t = Nt.b, or.attr("d", "M0,0Z");
                  }
                  if (Ut.isSubplotConstrained)
                    Ht > U || Et > U ? (Fr = "xy", Ht / Lt > Et / Mt ? (Et = Ht * Mt / Lt, st > It ? Nt.t = st - Et : Nt.b = st + Et) : (Ht = Et * Lt / Mt, dt > St ? Nt.l = dt - Ht : Nt.r = dt + Ht), or.attr("d", ie(Nt))) : Zt();
                  else if (Ct.isSubplotConstrained)
                    if (Ht > U || Et > U) {
                      Fr = "xy";
                      var Yt = Math.min(Nt.l / Lt, (Mt - Nt.b) / Mt), Gt = Math.max(Nt.r / Lt, (Mt - Nt.t) / Mt);
                      Nt.l = Yt * Lt, Nt.r = Gt * Lt, Nt.b = (1 - Yt) * Mt, Nt.t = (1 - Gt) * Mt, or.attr("d", ie(Nt));
                    } else
                      Zt();
                  else
                    !nr || Et < Math.min(Math.max(Ht * 0.6, X), U) ? Ht < X || !jt ? Zt() : (Nt.t = 0, Nt.b = Mt, Fr = "x", or.attr("d", Z(Nt, st))) : !jt || Ht < Math.min(Et * 0.6, U) ? (Nt.l = 0, Nt.r = Lt, Fr = "y", or.attr("d", ee(Nt, dt))) : (Fr = "xy", or.attr("d", ie(Nt)));
                  Nt.w = Nt.r - Nt.l, Nt.h = Nt.b - Nt.t, Fr && (Rr = !0), j._dragged = Rr, Be(br, or, Nt, ur, Or, ar), Gr(), j.emit("plotly_relayouting", lt), Or = !0;
                }
                function Gr() {
                  lt = {}, (Fr === "xy" || Fr === "x") && (oe(ut, Nt.l / Lt, Nt.r / Lt, lt, Ut.xaxes), Ir("x", lt)), (Fr === "xy" || Fr === "y") && (oe(wt, (Mt - Nt.b) / Mt, (Mt - Nt.t) / Mt, lt, Ut.yaxes), Ir("y", lt));
                }
                function Dr() {
                  Gr(), Me(j), ft(), De(j);
                }
                var gr = [0, 0, Lt, Mt], Er = null, Cr = B.REDRAWDELAY, zr = he.mainplot ? j._fullLayout._plots[he.mainplot] : he;
                function en(vt) {
                  if (!j._context._scrollZoom.cartesian && !j._fullLayout._enablescrollzoom)
                    return;
                  if (Ft(), j._transitioningWithDuration) {
                    vt.preventDefault(), vt.stopPropagation();
                    return;
                  }
                  Ye(), clearTimeout(Er);
                  var ht = -vt.deltaY;
                  if (isFinite(ht) || (ht = vt.wheelDelta / 10), !isFinite(ht)) {
                    p.log("Did not find wheel motion attributes: ", vt);
                    return;
                  }
                  var St = Math.exp(-Math.min(Math.max(ht, -20), 20) / 200), It = zr.draglayer.select(".nsewdrag").node().getBoundingClientRect(), Ht = (vt.clientX - It.left) / It.width, Et = (It.bottom - vt.clientY) / It.height, Zt;
                  function Yt(Gt, $t, ir) {
                    if (Gt.fixedrange)
                      return;
                    var wr = p.simpleMap(Gt.range, Gt.r2l), sr = wr[0] + (wr[1] - wr[0]) * $t;
                    function Xr(Lr) {
                      return Gt.l2r(sr + (Lr - sr) * ir);
                    }
                    Gt.range = wr.map(Xr);
                  }
                  if (Wt) {
                    for (Je || (Ht = 0.5), Zt = 0; Zt < ut.length; Zt++)
                      Yt(ut[Zt], Ht, St);
                    Ir("x"), gr[2] *= St, gr[0] += gr[2] * Ht * (1 / St - 1);
                  }
                  if (qe) {
                    for (Ve || (Et = 0.5), Zt = 0; Zt < wt.length; Zt++)
                      Yt(wt[Zt], Et, St);
                    Ir("y"), gr[3] *= St, gr[1] += gr[3] * (1 - Et) * (1 / St - 1);
                  }
                  nt(gr), Ae(), j.emit("plotly_relayouting", lt), Er = setTimeout(function() {
                    j._fullLayout && (gr = [0, 0, Lt, Mt], ft());
                  }, Cr), vt.preventDefault();
                }
                Ve.length * Je.length !== 1 && H(rt, en);
                function on(vt, ht) {
                  if (vt = vt * Se, ht = ht * Pe, j._transitioningWithDuration)
                    return;
                  if (j._fullLayout._replotting = !0, jt === "ew" || nr === "ns") {
                    var St = jt ? -vt : 0, It = nr ? -ht : 0;
                    if (Ct.isSubplotConstrained) {
                      if (jt && nr) {
                        var Ht = (vt / Lt - ht / Mt) / 2;
                        vt = Ht * Lt, ht = -Ht * Mt, St = -vt, It = -ht;
                      }
                      nr ? St = -It * Lt / Mt : It = -St * Mt / Lt;
                    }
                    jt && (ve(ut, vt), Ir("x")), nr && (ve(wt, ht), Ir("y")), nt([St, It, Lt, Mt]), Ae(), j.emit("plotly_relayouting", lt);
                    return;
                  }
                  function Et(Xr, Lr, Pr) {
                    for (var $r = 1 - Lr, Jr, Qr, vn = 0; vn < Xr.length; vn++) {
                      var An = Xr[vn];
                      if (!An.fixedrange) {
                        Jr = An, Qr = An._rl[$r] + (An._rl[Lr] - An._rl[$r]) / fe(Pr / An._length);
                        var hn = An.l2r(Qr);
                        hn !== !1 && hn !== void 0 && (An.range[Lr] = hn);
                      }
                    }
                    return Jr._length * (Jr._rl[Lr] - Qr) / (Jr._rl[Lr] - Jr._rl[$r]);
                  }
                  var Zt = jt === "w" == (nr === "n") ? 1 : -1;
                  if (jt && nr && (Ut.isSubplotConstrained || Ct.isSubplotConstrained)) {
                    var Yt = (vt / Lt + Zt * ht / Mt) / 2;
                    vt = Yt * Lt, ht = Zt * Yt * Mt;
                  }
                  var Gt, $t;
                  if (jt === "w" ? vt = Et(ut, 0, vt) : jt === "e" ? vt = Et(ut, 1, -vt) : jt || (vt = 0), nr === "n" ? ht = Et(wt, 1, ht) : nr === "s" ? ht = Et(wt, 0, -ht) : nr || (ht = 0), Gt = jt === "w" ? vt : 0, $t = nr === "n" ? ht : 0, Ut.isSubplotConstrained && !Ct.isSubplotConstrained || // NW or SE on matching axes - create a symmetric zoom
                  Ct.isSubplotConstrained && jt && nr && Zt > 0) {
                    var ir;
                    if (Ct.isSubplotConstrained || !jt && nr.length === 1) {
                      for (ir = 0; ir < ut.length; ir++)
                        ut[ir].range = ut[ir]._r.slice(), q(ut[ir], 1 - ht / Mt);
                      vt = ht * Lt / Mt, Gt = vt / 2;
                    }
                    if (Ct.isSubplotConstrained || !nr && jt.length === 1) {
                      for (ir = 0; ir < wt.length; ir++)
                        wt[ir].range = wt[ir]._r.slice(), q(wt[ir], 1 - vt / Lt);
                      ht = vt * Mt / Lt, $t = ht / 2;
                    }
                  }
                  (!Ct.isSubplotConstrained || !nr) && Ir("x"), (!Ct.isSubplotConstrained || !jt) && Ir("y");
                  var wr = Lt - vt, sr = Mt - ht;
                  Ct.isSubplotConstrained && !(jt && nr) && (jt ? ($t = Gt ? 0 : vt * Mt / Lt, sr = wr * Mt / Lt) : (Gt = $t ? 0 : ht * Lt / Mt, wr = sr * Lt / Mt)), nt([Gt, $t, wr, sr]), Ae(), j.emit("plotly_relayouting", lt);
                }
                function Ir(vt, ht) {
                  for (var St = Ct.isSubplotConstrained ? {
                    x: wt,
                    y: ut
                  }[vt] : Ct[vt + "axes"], It = Ct.isSubplotConstrained ? {
                    x: ut,
                    y: wt
                  }[vt] : [], Ht = 0; Ht < St.length; Ht++) {
                    var Et = St[Ht], Zt = Et._id, Yt = Ct.xLinks[Zt] || Ct.yLinks[Zt], Gt = It[0] || Xe[Yt] || it[Yt];
                    Gt && (ht ? (ht[Et._name + ".range[0]"] = ht[Gt._name + ".range[0]"], ht[Et._name + ".range[1]"] = ht[Gt._name + ".range[1]"]) : Et.range = Gt.range.slice());
                  }
                }
                function Ae() {
                  var vt = [], ht;
                  function St(Zt) {
                    for (ht = 0; ht < Zt.length; ht++)
                      Zt[ht].fixedrange || vt.push(Zt[ht]._id);
                  }
                  function It(Zt, Yt) {
                    for (ht = 0; ht < Zt.length; ht++) {
                      var Gt = Zt[ht], $t = Gt[Yt];
                      !Gt.fixedrange && $t.tickmode === "sync" && vt.push($t._id);
                    }
                  }
                  for (Wt && (St(ut), St(Ut.xaxes), St(Ct.xaxes), It(he.overlays, "xaxis")), qe && (St(wt), St(Ut.yaxes), St(Ct.yaxes), It(he.overlays, "yaxis")), lt = {}, ht = 0; ht < vt.length; ht++) {
                    var Ht = vt[ht], Et = O(j, Ht);
                    D.drawOne(j, Et, {
                      skipTitle: !0
                    }), lt[Et._name + ".range[0]"] = Et.range[0], lt[Et._name + ".range[1]"] = Et.range[1];
                  }
                  D.redrawComponents(j, vt);
                }
                function ue() {
                  if (!j._transitioningWithDuration) {
                    var vt = j._context.doubleClick, ht = [];
                    jt && (ht = ht.concat(ut)), nr && (ht = ht.concat(wt)), Ct.xaxes && (ht = ht.concat(Ct.xaxes)), Ct.yaxes && (ht = ht.concat(Ct.yaxes));
                    var St = {}, It, Ht;
                    if (vt === "reset+autosize")
                      for (vt = "autosize", Ht = 0; Ht < ht.length; Ht++) {
                        It = ht[Ht];
                        var Et = It._rangeInitial0, Zt = It._rangeInitial1, Yt = Et !== void 0 || Zt !== void 0;
                        if (Yt && (Et !== void 0 && Et !== It.range[0] || Zt !== void 0 && Zt !== It.range[1]) || !Yt && It.autorange !== !0) {
                          vt = "reset";
                          break;
                        }
                      }
                    if (vt === "autosize")
                      for (Ht = 0; Ht < ht.length; Ht++)
                        It = ht[Ht], It.fixedrange || (St[It._name + ".autorange"] = !0);
                    else if (vt === "reset") {
                      for ((jt || Ut.isSubplotConstrained) && (ht = ht.concat(Ut.xaxes)), nr && !Ut.isSubplotConstrained && (ht = ht.concat(Ut.yaxes)), Ut.isSubplotConstrained && (jt ? nr || (ht = ht.concat(wt)) : ht = ht.concat(ut)), Ht = 0; Ht < ht.length; Ht++)
                        if (It = ht[Ht], !It.fixedrange) {
                          var Gt = It._name, $t = It._autorangeInitial;
                          It._rangeInitial0 === void 0 && It._rangeInitial1 === void 0 ? St[Gt + ".autorange"] = !0 : It._rangeInitial0 === void 0 ? (St[Gt + ".autorange"] = $t, St[Gt + ".range"] = [null, It._rangeInitial1]) : It._rangeInitial1 === void 0 ? (St[Gt + ".range"] = [It._rangeInitial0, null], St[Gt + ".autorange"] = $t) : St[Gt + ".range"] = [It._rangeInitial0, It._rangeInitial1];
                        }
                    }
                    j.emit("plotly_doubleclick", null), c.call("_guiRelayout", j, St);
                  }
                }
                function ft() {
                  nt([0, 0, Lt, Mt]), p.syncOrAsync([I.previousPromises, function() {
                    j._fullLayout._replotting = !1, c.call("_guiRelayout", j, lt);
                  }], j);
                }
                function nt(vt) {
                  var ht = j._fullLayout, St = ht._plots, It = ht._subplots.cartesian, Ht, Et, Zt, Yt;
                  if (We && c.subplotsRegistry.splom.drag(j), Ue) {
                    for (Ht = 0; Ht < It.length; Ht++)
                      if (Et = St[It[Ht]], Zt = Et.xaxis, Yt = Et.yaxis, Et._scene) {
                        var Gt = p.simpleMap(Zt.range, Zt.r2l), $t = p.simpleMap(Yt.range, Yt.r2l);
                        Zt.limitRange && Zt.limitRange(), Yt.limitRange && Yt.limitRange(), Gt = Zt.range, $t = Yt.range, Et._scene.update({
                          range: [Gt[0], $t[0], Gt[1], $t[1]]
                        });
                      }
                  }
                  if ((We || Ue) && (R(j), g(j)), je) {
                    var ir = vt[2] / ze._length, wr = vt[3] / Oe._length;
                    for (Ht = 0; Ht < It.length; Ht++) {
                      Et = St[It[Ht]], Zt = Et.xaxis, Yt = Et.yaxis;
                      var sr = (Wt || Ct.isSubplotConstrained) && !Zt.fixedrange && Xe[Zt._id], Xr = (qe || Ct.isSubplotConstrained) && !Yt.fixedrange && it[Yt._id], Lr, Pr, $r, Jr;
                      if (sr ? (Lr = ir, $r = Je || Ct.isSubplotConstrained ? vt[0] : bt(Zt, Lr)) : Ct.xaHash[Zt._id] ? (Lr = ir, $r = vt[0] * Zt._length / ze._length) : Ct.yaHash[Zt._id] ? (Lr = wr, $r = nr === "ns" ? -vt[1] * Zt._length / Oe._length : bt(Zt, Lr, {
                        n: "top",
                        s: "bottom"
                      }[nr])) : (Lr = mt(Zt, ir, wr), $r = Tt(Zt, Lr)), Lr > 1 && (Zt.maxallowed !== void 0 && Wt === (Zt.range[0] < Zt.range[1] ? "e" : "w") || Zt.minallowed !== void 0 && Wt === (Zt.range[0] < Zt.range[1] ? "w" : "e")) && (Lr = 1, $r = 0), Xr ? (Pr = wr, Jr = Ve || Ct.isSubplotConstrained ? vt[1] : bt(Yt, Pr)) : Ct.yaHash[Yt._id] ? (Pr = wr, Jr = vt[1] * Yt._length / Oe._length) : Ct.xaHash[Yt._id] ? (Pr = ir, Jr = jt === "ew" ? -vt[0] * Yt._length / ze._length : bt(Yt, Pr, {
                        e: "right",
                        w: "left"
                      }[jt])) : (Pr = mt(Yt, ir, wr), Jr = Tt(Yt, Pr)), Pr > 1 && (Yt.maxallowed !== void 0 && qe === (Yt.range[0] < Yt.range[1] ? "n" : "s") || Yt.minallowed !== void 0 && qe === (Yt.range[0] < Yt.range[1] ? "s" : "n")) && (Pr = 1, Jr = 0), !(!Lr && !Pr)) {
                        Lr || (Lr = 1), Pr || (Pr = 1);
                        var Qr = Zt._offset - $r / Lr, vn = Yt._offset - Jr / Pr;
                        Et.clipRect.call(b.setTranslate, $r, Jr).call(b.setScale, Lr, Pr), Et.plot.call(b.setTranslate, Qr, vn).call(b.setScale, 1 / Lr, 1 / Pr), (Lr !== Et.xScaleFactor || Pr !== Et.yScaleFactor) && (b.setPointGroupScale(Et.zoomScalePts, Lr, Pr), b.setTextPointsScale(Et.zoomScaleTxt, Lr, Pr)), b.hideOutsideRangePoints(Et.clipOnAxisFalseTraces, Et), Et.xScaleFactor = Lr, Et.yScaleFactor = Pr;
                      }
                    }
                  }
                }
                function mt(vt, ht, St) {
                  return vt.fixedrange ? 0 : Wt && Ut.xaHash[vt._id] ? ht : qe && (Ut.isSubplotConstrained ? Ut.xaHash : Ut.yaHash)[vt._id] ? St : 0;
                }
                function Tt(vt, ht) {
                  return ht ? (vt.range = vt._r.slice(), q(vt, ht), bt(vt, ht)) : 0;
                }
                function bt(vt, ht, St) {
                  return vt._length * (1 - ht) * A[St || vt.constraintoward || "middle"];
                }
                return rt;
              }
              function me(j, he, be, we) {
                var Ie = p.ensureSingle(j.draglayer, he, be, function(Ge) {
                  Ge.classed("drag", !0).style({
                    fill: "transparent",
                    "stroke-width": 0
                  }).attr("data-subplot", j.id);
                });
                return Ie.call(C, we), Ie.node();
              }
              function J(j, he, be, we, Ie, Ge, Ve) {
                var Je = me(j, "rect", he, be);
                return a.select(Je).call(b.setRect, we, Ie, Ge, Ve), Je;
              }
              function W(j, he) {
                for (var be = 0; be < j.length; be++)
                  if (!j[be].fixedrange)
                    return he;
                return "";
              }
              function ae(j, he) {
                var be = j.range[he], we = Math.abs(be - j.range[1 - he]), Ie;
                return j.type === "date" ? be : j.type === "log" ? (Ie = Math.ceil(Math.max(0, -Math.log(we) / Math.LN10)) + 3, l("." + Ie + "g")(Math.pow(10, be))) : (Ie = Math.floor(Math.log(Math.abs(be)) / Math.LN10) - Math.floor(Math.log(we) / Math.LN10) + 4, l("." + String(Ie) + "g")(be));
              }
              function oe(j, he, be, we, Ie) {
                for (var Ge = 0; Ge < j.length; Ge++) {
                  var Ve = j[Ge];
                  if (!Ve.fixedrange)
                    if (Ve.rangebreaks) {
                      var Je = Ve._id.charAt(0) === "y", et = Je ? 1 - he : he, at = Je ? 1 - be : be;
                      we[Ve._name + ".range[0]"] = Ve.l2r(Ve.p2l(et * Ve._length)), we[Ve._name + ".range[1]"] = Ve.l2r(Ve.p2l(at * Ve._length));
                    } else {
                      var Le = Ve._rl[0], ze = Ve._rl[1] - Le;
                      we[Ve._name + ".range[0]"] = Ve.l2r(Le + ze * he), we[Ve._name + ".range[1]"] = Ve.l2r(Le + ze * be);
                    }
                }
                if (Ie && Ie.length) {
                  var Oe = (he + (1 - be)) / 2;
                  oe(Ie, Oe, 1 - Oe, we, []);
                }
              }
              function ve(j, he) {
                for (var be = 0; be < j.length; be++) {
                  var we = j[be];
                  if (!we.fixedrange) {
                    if (we.rangebreaks) {
                      var Ie = 0, Ge = we._length, Ve = we.p2l(Ie + he) - we.p2l(Ie), Je = we.p2l(Ge + he) - we.p2l(Ge), et = (Ve + Je) / 2;
                      we.range = [we.l2r(we._rl[0] - et), we.l2r(we._rl[1] - et)];
                    } else
                      we.range = [we.l2r(we._rl[0] - he / we._m), we.l2r(we._rl[1] - he / we._m)];
                    we.limitRange && we.limitRange();
                  }
                }
              }
              function fe(j) {
                return 1 - (j >= 0 ? Math.min(j, 0.9) : 1 / (1 / Math.max(j, -0.3) + 3.222));
              }
              function ye(j, he, be) {
                return j ? j === "nsew" ? be ? "" : he === "pan" ? "move" : "crosshair" : j.toLowerCase() + "-resize" : "pointer";
              }
              function Ce(j, he, be, we, Ie) {
                return j.append("path").attr("class", "zoombox").style({
                  fill: he > 0.2 ? "rgba(0,0,0,0)" : "rgba(255,255,255,0)",
                  "stroke-width": 0
                }).attr("transform", d(be, we)).attr("d", Ie + "Z");
              }
              function Re(j, he, be) {
                return j.append("path").attr("class", "zoombox-corners").style({
                  fill: i.background,
                  stroke: i.defaultLine,
                  "stroke-width": 1,
                  opacity: 0
                }).attr("transform", d(he, be)).attr("d", "M0,0Z");
              }
              function Be(j, he, be, we, Ie, Ge) {
                j.attr("d", we + "M" + be.l + "," + be.t + "v" + be.h + "h" + be.w + "v-" + be.h + "h-" + be.w + "Z"), xe(j, he, Ie, Ge);
              }
              function xe(j, he, be, we) {
                be || (j.transition().style("fill", we > 0.2 ? "rgba(0,0,0,0.4)" : "rgba(255,255,255,0.3)").duration(200), he.transition().style("opacity", 1).duration(200));
              }
              function Me(j) {
                a.select(j).selectAll(".zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners").remove();
              }
              function De(j) {
                te && j.data && j._context.showTips && (p.notifier(p._(j, "Double-click to zoom back out"), "long"), te = !1);
              }
              function Z(j, he) {
                return "M" + (j.l - 0.5) + "," + (he - U - 0.5) + "h-3v" + (2 * U + 1) + "h3ZM" + (j.r + 0.5) + "," + (he - U - 0.5) + "h3v" + (2 * U + 1) + "h-3Z";
              }
              function ee(j, he) {
                return "M" + (he - U - 0.5) + "," + (j.t - 0.5) + "v-3h" + (2 * U + 1) + "v3ZM" + (he - U - 0.5) + "," + (j.b + 0.5) + "v3h" + (2 * U + 1) + "v-3Z";
              }
              function ie(j) {
                var he = Math.floor(Math.min(j.b - j.t, j.r - j.l, U) / 2);
                return "M" + (j.l - 3.5) + "," + (j.t - 0.5 + he) + "h3v" + -he + "h" + he + "v-3h-" + (he + 3) + "ZM" + (j.r + 3.5) + "," + (j.t - 0.5 + he) + "h-3v" + -he + "h" + -he + "v-3h" + (he + 3) + "ZM" + (j.r + 3.5) + "," + (j.b + 0.5 - he) + "h-3v" + he + "h" + -he + "v3h" + (he + 3) + "ZM" + (j.l - 3.5) + "," + (j.b + 0.5 - he) + "h3v" + he + "h" + he + "v3h-" + (he + 3) + "Z";
              }
              function G(j, he, be, we, Ie) {
                for (var Ge = !1, Ve = {}, Je = {}, et, at, Le, ze, Oe = (Ie || {}).xaHash, Xe = (Ie || {}).yaHash, it = 0; it < he.length; it++) {
                  var ut = he[it];
                  for (et in be)
                    if (ut[et]) {
                      for (Le in ut)
                        !(Ie && (Oe[Le] || Xe[Le])) && !(Le.charAt(0) === "x" ? be : we)[Le] && (Ve[Le] = et);
                      for (at in we)
                        !(Ie && (Oe[at] || Xe[at])) && ut[at] && (Ge = !0);
                    }
                  for (at in we)
                    if (ut[at])
                      for (ze in ut)
                        !(Ie && (Oe[ze] || Xe[ze])) && !(ze.charAt(0) === "x" ? be : we)[ze] && (Je[ze] = at);
                }
                Ge && (p.extendFlat(Ve, Je), Je = {});
                var wt = {}, kt = [];
                for (Le in Ve) {
                  var Ot = O(j, Le);
                  kt.push(Ot), wt[Ot._id] = Ot;
                }
                var Lt = {}, Mt = [];
                for (ze in Je) {
                  var Ut = O(j, ze);
                  Mt.push(Ut), Lt[Ut._id] = Ut;
                }
                return {
                  xaHash: wt,
                  yaHash: Lt,
                  xaxes: kt,
                  yaxes: Mt,
                  xLinks: Ve,
                  yLinks: Je,
                  isSubplotConstrained: Ge
                };
              }
              function H(j, he) {
                if (!u)
                  j.onwheel !== void 0 ? j.onwheel = he : j.onmousewheel !== void 0 ? j.onmousewheel = he : j.isAddedWheelEvent || (j.isAddedWheelEvent = !0, j.addEventListener("wheel", he, {
                    passive: !1
                  }));
                else {
                  var be = j.onwheel !== void 0 ? "wheel" : "mousewheel";
                  j._onwheel && j.removeEventListener(be, j._onwheel), j._onwheel = he, j.addEventListener(be, he, {
                    passive: !1
                  });
                }
              }
              function ce(j) {
                var he = [];
                for (var be in j)
                  he.push(j[be]);
                return he;
              }
              M.exports = {
                makeDragBox: se,
                makeDragger: me,
                makeRectDragger: J,
                makeZoombox: Ce,
                makeCorners: Re,
                updateZoombox: Be,
                xyCorners: ie,
                transitionZoombox: xe,
                removeZoombox: Me,
                showDoubleClickNotifier: De,
                attachWheelEventHandler: H
              };
            }
          ),
          /***/
          2464: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(3024), l = r(6476), f = r(3972), u = r(1184).makeDragBox, c = r(3816).DRAGGERSIZE;
              L.initInteractions = function(h) {
                var i = h._fullLayout;
                if (h._context.staticPlot) {
                  a.select(h).selectAll(".drag").remove();
                  return;
                }
                if (!(!i._has("cartesian") && !i._has("splom"))) {
                  var b = Object.keys(i._plots || {}).sort(function(D, C) {
                    if ((i._plots[D].mainplot && !0) === (i._plots[C].mainplot && !0)) {
                      var w = D.split("y"), S = C.split("y");
                      return w[0] === S[0] ? Number(w[1] || 1) - Number(S[1] || 1) : Number(w[0] || 1) - Number(S[0] || 1);
                    }
                    return i._plots[D].mainplot ? 1 : -1;
                  });
                  b.forEach(function(D) {
                    var C = i._plots[D], w = C.xaxis, S = C.yaxis;
                    if (!C.mainplot) {
                      var T = u(h, C, w._offset, S._offset, w._length, S._length, "ns", "ew");
                      T.onmousemove = function(R) {
                        h._fullLayout._rehover = function() {
                          h._fullLayout._hoversubplot === D && h._fullLayout._plots[D] && p.hover(h, R, D);
                        }, p.hover(h, R, D), h._fullLayout._lasthover = T, h._fullLayout._hoversubplot = D;
                      }, T.onmouseout = function(R) {
                        h._dragging || (h._fullLayout._hoversubplot = null, l.unhover(h, R));
                      }, h._context.showAxisDragHandles && (u(h, C, w._offset - c, S._offset - c, c, c, "n", "w"), u(h, C, w._offset + w._length, S._offset - c, c, c, "n", "e"), u(h, C, w._offset - c, S._offset + S._length, c, c, "s", "w"), u(h, C, w._offset + w._length, S._offset + S._length, c, c, "s", "e"));
                    }
                    if (h._context.showAxisDragHandles) {
                      if (D === w._mainSubplot) {
                        var k = w._mainLinePosition;
                        w.side === "top" && (k -= c), u(h, C, w._offset + w._length * 0.1, k, w._length * 0.8, c, "", "ew"), u(h, C, w._offset, k, w._length * 0.1, c, "", "w"), u(h, C, w._offset + w._length * 0.9, k, w._length * 0.1, c, "", "e");
                      }
                      if (D === S._mainSubplot) {
                        var A = S._mainLinePosition;
                        S.side !== "right" && (A -= c), u(h, C, A, S._offset + S._length * 0.1, c, S._length * 0.8, "ns", ""), u(h, C, A, S._offset + S._length * 0.9, c, S._length * 0.1, "s", ""), u(h, C, A, S._offset, c, S._length * 0.1, "n", "");
                      }
                    }
                  });
                  var x = i._hoverlayer.node();
                  x.onmousemove = function(D) {
                    D.target = h._fullLayout._lasthover, p.hover(h, D, i._hoversubplot);
                  }, x.onclick = function(D) {
                    D.target = h._fullLayout._lasthover, p.click(h, D);
                  }, x.onmousedown = function(D) {
                    h._fullLayout._lasthover.onmousedown(D);
                  }, L.updateFx(h);
                }
              }, L.updateFx = function(d) {
                var h = d._fullLayout, i = h.dragmode === "pan" ? "move" : "crosshair";
                f(h._draggers, i);
              };
            }
          ),
          /***/
          6632: (
            /***/
            function(M, L, r) {
              var a = r(4040), p = r(3400), l = r(9811);
              M.exports = function(u) {
                return function(d, h) {
                  var i = d[u];
                  if (Array.isArray(i))
                    for (var b = a.subplotsRegistry.cartesian, x = b.idRegex, D = h._subplots, C = D.xaxis, w = D.yaxis, S = D.cartesian, T = h._has("cartesian") || h._has("gl2d"), k = 0; k < i.length; k++) {
                      var A = i[k];
                      if (p.isPlainObject(A)) {
                        var R = l.cleanId(A.xref, "x", !1), g = l.cleanId(A.yref, "y", !1), I = x.x.test(R), O = x.y.test(g);
                        if (I || O) {
                          T || p.pushUnique(h._basePlotModules, b);
                          var $ = !1;
                          I && C.indexOf(R) === -1 && (C.push(R), $ = !0), O && w.indexOf(g) === -1 && (w.push(g), $ = !0), $ && I && O && S.push(R + g);
                        }
                      }
                    }
                };
              };
            }
          ),
          /***/
          7952: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(4040), l = r(3400), f = r(7316), u = r(3616), c = r(4888)._M, d = r(9811), h = r(3816), i = r(9616), b = l.ensureSingle;
              function x(k, A, R) {
                return l.ensureSingle(k, A, R, function(g) {
                  g.datum(R);
                });
              }
              L.name = "cartesian", L.attr = ["xaxis", "yaxis"], L.idRoot = ["x", "y"], L.idRegex = h.idRegex, L.attrRegex = h.attrRegex, L.attributes = r(6720), L.layoutAttributes = r(4724), L.supplyLayoutDefaults = r(7352), L.transitionAxes = r(3736), L.finalizeSubplots = function(k, A) {
                var R = A._subplots, g = R.xaxis, I = R.yaxis, O = R.cartesian, $ = O.concat(R.gl2d || []), Y = {}, ne = {}, q, B, X;
                for (q = 0; q < $.length; q++) {
                  var U = $[q].split("y");
                  Y[U[0]] = 1, ne["y" + U[1]] = 1;
                }
                for (q = 0; q < g.length; q++)
                  B = g[q], Y[B] || (X = (k[d.id2name(B)] || {}).anchor, h.idRegex.y.test(X) || (X = "y"), O.push(B + X), $.push(B + X), ne[X] || (ne[X] = 1, l.pushUnique(I, X)));
                for (q = 0; q < I.length; q++)
                  X = I[q], ne[X] || (B = (k[d.id2name(X)] || {}).anchor, h.idRegex.x.test(B) || (B = "x"), O.push(B + X), $.push(B + X), Y[B] || (Y[B] = 1, l.pushUnique(g, B)));
                if (!$.length) {
                  B = "", X = "";
                  for (var te in k)
                    if (h.attrRegex.test(te)) {
                      var se = te.charAt(0);
                      se === "x" ? (!B || +te.substr(5) < +B.substr(5)) && (B = te) : (!X || +te.substr(5) < +X.substr(5)) && (X = te);
                    }
                  B = B ? d.name2id(B) : "x", X = X ? d.name2id(X) : "y", g.push(B), I.push(X), O.push(B + X);
                }
              }, L.plot = function(k, A, R, g) {
                var I = k._fullLayout, O = I._subplots.cartesian, $ = k.calcdata, Y;
                if (!Array.isArray(A))
                  for (A = [], Y = 0; Y < $.length; Y++)
                    A.push(Y);
                for (Y = 0; Y < O.length; Y++) {
                  for (var ne = O[Y], q = I._plots[ne], B = [], X, U = 0; U < $.length; U++) {
                    var te = $[U], se = te[0].trace;
                    se.xaxis + se.yaxis === ne && ((A.indexOf(se.index) !== -1 || se.carpet) && (X && X[0].trace.xaxis + X[0].trace.yaxis === ne && ["tonextx", "tonexty", "tonext"].indexOf(se.fill) !== -1 && B.indexOf(X) === -1 && B.push(X), B.push(te)), X = te);
                  }
                  D(k, q, B, R, g);
                }
              };
              function D(k, A, R, g, I) {
                for (var O = h.traceLayerClasses, $ = k._fullLayout, Y = $._modules, ne, q, B, X = {}, U = 0; U < R.length; U++) {
                  var te = R[U][0].trace, se = te.zorder || 0;
                  X[se] || (X[se] = []), X[se].push(R[U]);
                }
                for (var me = [], J = [], W = Object.keys(X).map(Number).sort(l.sorterAsc), ae = 0; ae < W.length; ae++)
                  for (var oe = W[ae], ve = 0; ve < Y.length; ve++) {
                    ne = Y[ve];
                    var fe = ne.name, ye = p.modules[fe].categories;
                    if (ye.svg) {
                      var Ce = ne.layerName || fe + "layer", Re = Ce + (ae ? Number(ae) + 1 : ""), Be = ne.plot;
                      q = c(R, Be, oe), B = q[0], R = q[1], B.length && me.push({
                        i: O.indexOf(Ce),
                        zorder: ae,
                        className: Re,
                        plotMethod: Be,
                        cdModule: B
                      }), ye.zoomScale && J.push("." + Re);
                    }
                  }
                me.sort(function(De, Z) {
                  return (De.zorder || 0) - (Z.zorder || 0) || De.i - Z.i;
                });
                var xe = A.plot.selectAll("g.mlayer").data(me, function(De) {
                  return De.className;
                });
                if (xe.enter().append("g").attr("class", function(De) {
                  return De.className;
                }).classed("mlayer", !0).classed("rangeplot", A.isRangePlot), xe.exit().remove(), xe.order(), xe.each(function(De) {
                  var Z = a.select(this), ee = De.className;
                  De.plotMethod(k, A, De.cdModule, Z, g, I), h.clipOnAxisFalseQuery.indexOf("." + ee) === -1 && u.setClipUrl(Z, A.layerClipId, k);
                }), $._has("scattergl") && (ne = p.getModule("scattergl"), B = c(R, ne)[0], ne.plot(k, A, B)), !k._context.staticPlot && (A._hasClipOnAxisFalse && (A.clipOnAxisFalseTraces = A.plot.selectAll(h.clipOnAxisFalseQuery.join(",")).selectAll(".trace")), J.length)) {
                  var Me = A.plot.selectAll(J.join(",")).selectAll(".trace");
                  A.zoomScalePts = Me.selectAll("path.point"), A.zoomScaleTxt = Me.selectAll(".textpoint");
                }
              }
              L.clean = function(k, A, R, g) {
                var I = g._plots || {}, O = A._plots || {}, $ = g._subplots || {}, Y, ne, q;
                if (g._hasOnlyLargeSploms && !A._hasOnlyLargeSploms)
                  for (q in I)
                    Y = I[q], Y.plotgroup && Y.plotgroup.remove();
                var B = g._has && g._has("gl"), X = A._has && A._has("gl");
                if (B && !X)
                  for (q in I)
                    Y = I[q], Y._scene && Y._scene.destroy();
                if ($.xaxis && $.yaxis) {
                  var U = d.listIds({
                    _fullLayout: g
                  });
                  for (ne = 0; ne < U.length; ne++) {
                    var te = U[ne];
                    A[d.id2name(te)] || g._infolayer.selectAll(".g-" + te + "title").remove();
                  }
                }
                var se = g._has && g._has("cartesian"), me = A._has && A._has("cartesian");
                if (se && !me)
                  S(g._cartesianlayer.selectAll(".subplot"), g), g._defs.selectAll(".axesclip").remove(), delete g._axisConstraintGroups, delete g._axisMatchGroups;
                else if ($.cartesian)
                  for (ne = 0; ne < $.cartesian.length; ne++) {
                    var J = $.cartesian[ne];
                    if (!O[J]) {
                      var W = "." + J + ",." + J + "-x,." + J + "-y";
                      g._cartesianlayer.selectAll(W).remove(), T(J, g);
                    }
                  }
              }, L.drawFramework = function(k) {
                var A = k._fullLayout, R = C(k), g = A._cartesianlayer.selectAll(".subplot").data(R, String);
                g.enter().append("g").attr("class", function(I) {
                  return "subplot " + I[0];
                }), g.order(), g.exit().call(S, A), g.each(function(I) {
                  var O = I[0], $ = A._plots[O];
                  $.plotgroup = a.select(this), w(k, $), $.draglayer = b(A._draggers, "g", O);
                });
              }, L.rangePlot = function(k, A, R) {
                w(k, A), D(k, A, R), f.style(k);
              };
              function C(k) {
                var A = k._fullLayout, R = A._subplots.cartesian, g = R.length, I, O, $, Y, ne, q, B = [], X = [];
                for (I = 0; I < g; I++) {
                  $ = R[I], Y = A._plots[$], ne = Y.xaxis, q = Y.yaxis;
                  var U = ne._mainAxis, te = q._mainAxis, se = U._id + te._id, me = A._plots[se];
                  Y.overlays = [], se !== $ && me ? (Y.mainplot = se, Y.mainplotinfo = me, X.push($)) : (Y.mainplot = void 0, Y.mainplotinfo = void 0, B.push($));
                }
                for (I = 0; I < X.length; I++)
                  $ = X[I], Y = A._plots[$], Y.mainplotinfo.overlays.push(Y);
                var J = B.concat(X), W = new Array(g);
                for (I = 0; I < g; I++) {
                  $ = J[I], Y = A._plots[$], ne = Y.xaxis, q = Y.yaxis;
                  var ae = [$, ne.layer, q.layer, ne.overlaying || "", q.overlaying || ""];
                  for (O = 0; O < Y.overlays.length; O++)
                    ae.push(Y.overlays[O].id);
                  W[I] = ae;
                }
                return W;
              }
              function w(k, A) {
                var R = A.plotgroup, g = A.id, I = h.layerValue2layerClass[A.xaxis.layer], O = h.layerValue2layerClass[A.yaxis.layer], $ = k._fullLayout._hasOnlyLargeSploms;
                if (A.mainplot) {
                  var q = A.mainplotinfo, B = q.plotgroup, X = g + "-x", U = g + "-y";
                  A.minorGridlayer = q.minorGridlayer, A.gridlayer = q.gridlayer, A.zerolinelayer = q.zerolinelayer, b(q.overlinesBelow, "path", X), b(q.overlinesBelow, "path", U), b(q.overaxesBelow, "g", X), b(q.overaxesBelow, "g", U), A.plot = b(q.overplot, "g", g), b(q.overlinesAbove, "path", X), b(q.overlinesAbove, "path", U), b(q.overaxesAbove, "g", X), b(q.overaxesAbove, "g", U), A.xlines = B.select(".overlines-" + I).select("." + X), A.ylines = B.select(".overlines-" + O).select("." + U), A.xaxislayer = B.select(".overaxes-" + I).select("." + X), A.yaxislayer = B.select(".overaxes-" + O).select("." + U);
                } else if ($)
                  A.xlines = b(R, "path", "xlines-above"), A.ylines = b(R, "path", "ylines-above"), A.xaxislayer = b(R, "g", "xaxislayer-above"), A.yaxislayer = b(R, "g", "yaxislayer-above");
                else {
                  var Y = b(R, "g", "layer-subplot");
                  A.shapelayer = b(Y, "g", "shapelayer"), A.imagelayer = b(Y, "g", "imagelayer"), A.minorGridlayer = b(R, "g", "minor-gridlayer"), A.gridlayer = b(R, "g", "gridlayer"), A.zerolinelayer = b(R, "g", "zerolinelayer");
                  var ne = b(R, "g", "layer-between");
                  A.shapelayerBetween = b(ne, "g", "shapelayer"), A.imagelayerBetween = b(ne, "g", "imagelayer"), b(R, "path", "xlines-below"), b(R, "path", "ylines-below"), A.overlinesBelow = b(R, "g", "overlines-below"), b(R, "g", "xaxislayer-below"), b(R, "g", "yaxislayer-below"), A.overaxesBelow = b(R, "g", "overaxes-below"), A.plot = b(R, "g", "plot"), A.overplot = b(R, "g", "overplot"), A.xlines = b(R, "path", "xlines-above"), A.ylines = b(R, "path", "ylines-above"), A.overlinesAbove = b(R, "g", "overlines-above"), b(R, "g", "xaxislayer-above"), b(R, "g", "yaxislayer-above"), A.overaxesAbove = b(R, "g", "overaxes-above"), A.xlines = R.select(".xlines-" + I), A.ylines = R.select(".ylines-" + O), A.xaxislayer = R.select(".xaxislayer-" + I), A.yaxislayer = R.select(".yaxislayer-" + O);
                }
                $ || (x(A.minorGridlayer, "g", A.xaxis._id), x(A.minorGridlayer, "g", A.yaxis._id), A.minorGridlayer.selectAll("g").map(function(te) {
                  return te[0];
                }).sort(d.idSort), x(A.gridlayer, "g", A.xaxis._id), x(A.gridlayer, "g", A.yaxis._id), A.gridlayer.selectAll("g").map(function(te) {
                  return te[0];
                }).sort(d.idSort)), A.xlines.style("fill", "none").classed("crisp", !0), A.ylines.style("fill", "none").classed("crisp", !0);
              }
              function S(k, A) {
                if (k) {
                  var R = {};
                  k.each(function(ne) {
                    var q = ne[0], B = a.select(this);
                    B.remove(), T(q, A), R[q] = !0;
                  });
                  for (var g in A._plots)
                    for (var I = A._plots[g], O = I.overlays || [], $ = 0; $ < O.length; $++) {
                      var Y = O[$];
                      R[Y.id] && Y.plot.selectAll(".trace").remove();
                    }
                }
              }
              function T(k, A) {
                A._draggers.selectAll("g." + k).remove(), A._defs.select("#clip" + A._uid + k + "plot").remove();
              }
              L.toSVG = function(k) {
                var A = k._fullLayout._glimages, R = a.select(k).selectAll(".svg-container"), g = R.filter(function(O, $) {
                  return $ === R.size() - 1;
                }).selectAll(".gl-canvas-context, .gl-canvas-focus");
                function I() {
                  var O = this, $ = O.toDataURL("image/png"), Y = A.append("svg:image");
                  Y.attr({
                    xmlns: i.svg,
                    "xlink:href": $,
                    preserveAspectRatio: "none",
                    x: 0,
                    y: 0,
                    width: O.style.width,
                    height: O.style.height
                  });
                }
                g.each(I);
              }, L.updateFx = r(2464).updateFx;
            }
          ),
          /***/
          4724: (
            /***/
            function(M, L, r) {
              var a = r(5376), p = r(2548), l = r(8192).u, f = r(2880).extendFlat, u = r(1780).templatedArray, c = r(9736).descriptionWithDates, d = r(9032).ONEDAY, h = r(3816), i = h.HOUR_PATTERN, b = h.WEEKDAY_PATTERN, x = {
                valType: "enumerated",
                values: ["auto", "linear", "array"],
                editType: "ticks",
                impliedEdits: {
                  tick0: void 0,
                  dtick: void 0
                }
              }, D = f({}, x, {
                values: x.values.slice().concat(["sync"])
              });
              function C(ne) {
                return {
                  valType: "integer",
                  min: 0,
                  dflt: ne ? 5 : 0,
                  editType: "ticks"
                };
              }
              var w = {
                valType: "any",
                editType: "ticks",
                impliedEdits: {
                  tickmode: "linear"
                }
              }, S = {
                valType: "any",
                editType: "ticks",
                impliedEdits: {
                  tickmode: "linear"
                }
              }, T = {
                valType: "data_array",
                editType: "ticks"
              }, k = {
                valType: "enumerated",
                values: ["outside", "inside", ""],
                editType: "ticks"
              };
              function A(ne) {
                var q = {
                  valType: "number",
                  min: 0,
                  editType: "ticks"
                };
                return ne || (q.dflt = 5), q;
              }
              function R(ne) {
                var q = {
                  valType: "number",
                  min: 0,
                  editType: "ticks"
                };
                return ne || (q.dflt = 1), q;
              }
              var g = {
                valType: "color",
                dflt: p.defaultLine,
                editType: "ticks"
              }, I = {
                valType: "color",
                dflt: p.lightLine,
                editType: "ticks"
              };
              function O(ne) {
                var q = {
                  valType: "number",
                  min: 0,
                  editType: "ticks"
                };
                return ne || (q.dflt = 1), q;
              }
              var $ = f({}, l, {
                editType: "ticks"
              }), Y = {
                valType: "boolean",
                editType: "ticks"
              };
              M.exports = {
                visible: {
                  valType: "boolean",
                  editType: "plot"
                },
                color: {
                  valType: "color",
                  dflt: p.defaultLine,
                  editType: "ticks"
                },
                title: {
                  text: {
                    valType: "string",
                    editType: "ticks"
                  },
                  font: a({
                    editType: "ticks"
                  }),
                  standoff: {
                    valType: "number",
                    min: 0,
                    editType: "ticks"
                  },
                  editType: "ticks"
                },
                type: {
                  valType: "enumerated",
                  // '-' means we haven't yet run autotype or couldn't find any data
                  // it gets turned into linear in gd._fullLayout but not copied back
                  // to gd.data like the others are.
                  values: ["-", "linear", "log", "date", "category", "multicategory"],
                  dflt: "-",
                  editType: "calc",
                  // we forget when an axis has been autotyped, just writing the auto
                  // value back to the input - so it doesn't make sense to template this.
                  // Note: we do NOT prohibit this in `coerce`, so if someone enters a
                  // type in the template explicitly it will be honored as the default.
                  _noTemplating: !0
                },
                autotypenumbers: {
                  valType: "enumerated",
                  values: ["convert types", "strict"],
                  dflt: "convert types",
                  editType: "calc"
                },
                autorange: {
                  valType: "enumerated",
                  values: [!0, !1, "reversed", "min reversed", "max reversed", "min", "max"],
                  dflt: !0,
                  editType: "axrange",
                  impliedEdits: {
                    "range[0]": void 0,
                    "range[1]": void 0
                  }
                },
                autorangeoptions: {
                  minallowed: {
                    valType: "any",
                    editType: "plot",
                    impliedEdits: {
                      "range[0]": void 0,
                      "range[1]": void 0
                    }
                  },
                  maxallowed: {
                    valType: "any",
                    editType: "plot",
                    impliedEdits: {
                      "range[0]": void 0,
                      "range[1]": void 0
                    }
                  },
                  clipmin: {
                    valType: "any",
                    editType: "plot",
                    impliedEdits: {
                      "range[0]": void 0,
                      "range[1]": void 0
                    }
                  },
                  clipmax: {
                    valType: "any",
                    editType: "plot",
                    impliedEdits: {
                      "range[0]": void 0,
                      "range[1]": void 0
                    }
                  },
                  include: {
                    valType: "any",
                    arrayOk: !0,
                    editType: "plot",
                    impliedEdits: {
                      "range[0]": void 0,
                      "range[1]": void 0
                    }
                  },
                  editType: "plot"
                },
                rangemode: {
                  valType: "enumerated",
                  values: ["normal", "tozero", "nonnegative"],
                  dflt: "normal",
                  editType: "plot"
                },
                range: {
                  valType: "info_array",
                  items: [{
                    valType: "any",
                    editType: "axrange",
                    impliedEdits: {
                      "^autorange": !1
                    },
                    anim: !0
                  }, {
                    valType: "any",
                    editType: "axrange",
                    impliedEdits: {
                      "^autorange": !1
                    },
                    anim: !0
                  }],
                  editType: "axrange",
                  impliedEdits: {
                    autorange: !1
                  },
                  anim: !0
                },
                minallowed: {
                  valType: "any",
                  editType: "plot",
                  impliedEdits: {
                    "^autorange": !1
                  }
                },
                maxallowed: {
                  valType: "any",
                  editType: "plot",
                  impliedEdits: {
                    "^autorange": !1
                  }
                },
                fixedrange: {
                  valType: "boolean",
                  dflt: !1,
                  editType: "calc"
                },
                insiderange: {
                  valType: "info_array",
                  items: [{
                    valType: "any",
                    editType: "plot"
                  }, {
                    valType: "any",
                    editType: "plot"
                  }],
                  editType: "plot"
                },
                // scaleanchor: not used directly, just put here for reference
                // values are any opposite-letter axis id, or `false`.
                scaleanchor: {
                  valType: "enumerated",
                  values: [h.idRegex.x.toString(), h.idRegex.y.toString(), !1],
                  editType: "plot"
                },
                scaleratio: {
                  valType: "number",
                  min: 0,
                  dflt: 1,
                  editType: "plot"
                },
                constrain: {
                  valType: "enumerated",
                  values: ["range", "domain"],
                  editType: "plot"
                },
                // constraintoward: not used directly, just put here for reference
                constraintoward: {
                  valType: "enumerated",
                  values: ["left", "center", "right", "top", "middle", "bottom"],
                  editType: "plot"
                },
                matches: {
                  valType: "enumerated",
                  values: [h.idRegex.x.toString(), h.idRegex.y.toString()],
                  editType: "calc"
                },
                rangebreaks: u("rangebreak", {
                  enabled: {
                    valType: "boolean",
                    dflt: !0,
                    editType: "calc"
                  },
                  bounds: {
                    valType: "info_array",
                    items: [{
                      valType: "any",
                      editType: "calc"
                    }, {
                      valType: "any",
                      editType: "calc"
                    }],
                    editType: "calc"
                  },
                  pattern: {
                    valType: "enumerated",
                    values: [b, i, ""],
                    editType: "calc"
                  },
                  values: {
                    valType: "info_array",
                    freeLength: !0,
                    editType: "calc",
                    items: {
                      valType: "any",
                      editType: "calc"
                    }
                  },
                  dvalue: {
                    // TODO could become 'any' to add support for 'months', 'years'
                    valType: "number",
                    editType: "calc",
                    min: 0,
                    dflt: d
                  },
                  /*
                  gap: {
                      valType: 'number',
                      min: 0,
                      dflt: 0, // for *date* axes, maybe something else for *linear*
                      editType: 'calc',
                  },
                  gapmode: {
                      valType: 'enumerated',
                      values: ['pixels', 'fraction'],
                      dflt: 'pixels',
                      editType: 'calc',
                  },
                  */
                  // To complete https://github.com/plotly/plotly.js/issues/4210
                  // we additionally need `gap` and make this work on *linear*, and
                  // possibly all other cartesian axis types. We possibly would also need
                  // some style attributes controlling the zig-zag on the corresponding
                  // axis.
                  editType: "calc"
                }),
                // ticks
                tickmode: D,
                nticks: C(),
                tick0: w,
                dtick: S,
                ticklabelstep: {
                  valType: "integer",
                  min: 1,
                  dflt: 1,
                  editType: "ticks"
                },
                tickvals: T,
                ticktext: {
                  valType: "data_array",
                  editType: "ticks"
                },
                ticks: k,
                tickson: {
                  valType: "enumerated",
                  values: ["labels", "boundaries"],
                  dflt: "labels",
                  editType: "ticks"
                },
                ticklabelmode: {
                  valType: "enumerated",
                  values: ["instant", "period"],
                  dflt: "instant",
                  editType: "ticks"
                },
                // ticklabelposition: not used directly, as values depend on direction (similar to side)
                // left/right options are for x axes, and top/bottom options are for y axes
                ticklabelposition: {
                  valType: "enumerated",
                  values: ["outside", "inside", "outside top", "inside top", "outside left", "inside left", "outside right", "inside right", "outside bottom", "inside bottom"],
                  dflt: "outside",
                  editType: "calc"
                },
                ticklabeloverflow: {
                  valType: "enumerated",
                  values: ["allow", "hide past div", "hide past domain"],
                  editType: "calc"
                },
                mirror: {
                  valType: "enumerated",
                  values: [!0, "ticks", !1, "all", "allticks"],
                  dflt: !1,
                  editType: "ticks+layoutstyle"
                },
                ticklen: A(),
                tickwidth: R(),
                tickcolor: g,
                showticklabels: {
                  valType: "boolean",
                  dflt: !0,
                  editType: "ticks"
                },
                labelalias: {
                  valType: "any",
                  dflt: !1,
                  editType: "ticks"
                },
                automargin: {
                  valType: "flaglist",
                  flags: ["height", "width", "left", "right", "top", "bottom"],
                  extras: [!0, !1],
                  dflt: !1,
                  editType: "ticks"
                },
                showspikes: {
                  valType: "boolean",
                  dflt: !1,
                  editType: "modebar"
                },
                spikecolor: {
                  valType: "color",
                  dflt: null,
                  editType: "none"
                },
                spikethickness: {
                  valType: "number",
                  dflt: 3,
                  editType: "none"
                },
                spikedash: f({}, l, {
                  dflt: "dash",
                  editType: "none"
                }),
                spikemode: {
                  valType: "flaglist",
                  flags: ["toaxis", "across", "marker"],
                  dflt: "toaxis",
                  editType: "none"
                },
                spikesnap: {
                  valType: "enumerated",
                  values: ["data", "cursor", "hovered data"],
                  dflt: "hovered data",
                  editType: "none"
                },
                tickfont: a({
                  editType: "ticks"
                }),
                tickangle: {
                  valType: "angle",
                  dflt: "auto",
                  editType: "ticks"
                },
                autotickangles: {
                  valType: "info_array",
                  freeLength: !0,
                  items: {
                    valType: "angle"
                  },
                  dflt: [0, 30, 90],
                  editType: "ticks"
                },
                tickprefix: {
                  valType: "string",
                  dflt: "",
                  editType: "ticks"
                },
                showtickprefix: {
                  valType: "enumerated",
                  values: ["all", "first", "last", "none"],
                  dflt: "all",
                  editType: "ticks"
                },
                ticksuffix: {
                  valType: "string",
                  dflt: "",
                  editType: "ticks"
                },
                showticksuffix: {
                  valType: "enumerated",
                  values: ["all", "first", "last", "none"],
                  dflt: "all",
                  editType: "ticks"
                },
                showexponent: {
                  valType: "enumerated",
                  values: ["all", "first", "last", "none"],
                  dflt: "all",
                  editType: "ticks"
                },
                exponentformat: {
                  valType: "enumerated",
                  values: ["none", "e", "E", "power", "SI", "B"],
                  dflt: "B",
                  editType: "ticks"
                },
                minexponent: {
                  valType: "number",
                  dflt: 3,
                  min: 0,
                  editType: "ticks"
                },
                separatethousands: {
                  valType: "boolean",
                  dflt: !1,
                  editType: "ticks"
                },
                tickformat: {
                  valType: "string",
                  dflt: "",
                  editType: "ticks",
                  description: c("tick label")
                },
                tickformatstops: u("tickformatstop", {
                  enabled: {
                    valType: "boolean",
                    dflt: !0,
                    editType: "ticks"
                  },
                  dtickrange: {
                    valType: "info_array",
                    items: [{
                      valType: "any",
                      editType: "ticks"
                    }, {
                      valType: "any",
                      editType: "ticks"
                    }],
                    editType: "ticks"
                  },
                  value: {
                    valType: "string",
                    dflt: "",
                    editType: "ticks"
                  },
                  editType: "ticks"
                }),
                hoverformat: {
                  valType: "string",
                  dflt: "",
                  editType: "none",
                  description: c("hover text")
                },
                // lines and grids
                showline: {
                  valType: "boolean",
                  dflt: !1,
                  editType: "ticks+layoutstyle"
                },
                linecolor: {
                  valType: "color",
                  dflt: p.defaultLine,
                  editType: "layoutstyle"
                },
                linewidth: {
                  valType: "number",
                  min: 0,
                  dflt: 1,
                  editType: "ticks+layoutstyle"
                },
                showgrid: Y,
                gridcolor: I,
                gridwidth: O(),
                griddash: $,
                zeroline: {
                  valType: "boolean",
                  editType: "ticks"
                },
                zerolinecolor: {
                  valType: "color",
                  dflt: p.defaultLine,
                  editType: "ticks"
                },
                zerolinewidth: {
                  valType: "number",
                  dflt: 1,
                  editType: "ticks"
                },
                showdividers: {
                  valType: "boolean",
                  dflt: !0,
                  editType: "ticks"
                },
                dividercolor: {
                  valType: "color",
                  dflt: p.defaultLine,
                  editType: "ticks"
                },
                dividerwidth: {
                  valType: "number",
                  dflt: 1,
                  editType: "ticks"
                },
                // TODO dividerlen: that would override "to label base" length?
                // positioning attributes
                // anchor: not used directly, just put here for reference
                // values are any opposite-letter axis id
                anchor: {
                  valType: "enumerated",
                  values: ["free", h.idRegex.x.toString(), h.idRegex.y.toString()],
                  editType: "plot"
                },
                // side: not used directly, as values depend on direction
                // values are top, bottom for x axes, and left, right for y
                side: {
                  valType: "enumerated",
                  values: ["top", "bottom", "left", "right"],
                  editType: "plot"
                },
                // overlaying: not used directly, just put here for reference
                // values are false and any other same-letter axis id that's not
                // itself overlaying anything
                overlaying: {
                  valType: "enumerated",
                  values: ["free", h.idRegex.x.toString(), h.idRegex.y.toString()],
                  editType: "plot"
                },
                minor: {
                  tickmode: x,
                  nticks: C("minor"),
                  tick0: w,
                  dtick: S,
                  tickvals: T,
                  ticks: k,
                  ticklen: A("minor"),
                  tickwidth: R("minor"),
                  tickcolor: g,
                  gridcolor: I,
                  gridwidth: O("minor"),
                  griddash: $,
                  showgrid: Y,
                  editType: "ticks"
                },
                layer: {
                  valType: "enumerated",
                  values: ["above traces", "below traces"],
                  dflt: "above traces",
                  editType: "plot"
                },
                domain: {
                  valType: "info_array",
                  items: [{
                    valType: "number",
                    min: 0,
                    max: 1,
                    editType: "plot"
                  }, {
                    valType: "number",
                    min: 0,
                    max: 1,
                    editType: "plot"
                  }],
                  dflt: [0, 1],
                  editType: "plot"
                },
                position: {
                  valType: "number",
                  min: 0,
                  max: 1,
                  dflt: 0,
                  editType: "plot"
                },
                autoshift: {
                  valType: "boolean",
                  dflt: !1,
                  editType: "plot"
                },
                shift: {
                  valType: "number",
                  editType: "plot"
                },
                categoryorder: {
                  valType: "enumerated",
                  values: ["trace", "category ascending", "category descending", "array", "total ascending", "total descending", "min ascending", "min descending", "max ascending", "max descending", "sum ascending", "sum descending", "mean ascending", "mean descending", "median ascending", "median descending"],
                  dflt: "trace",
                  editType: "calc"
                },
                categoryarray: {
                  valType: "data_array",
                  editType: "calc"
                },
                uirevision: {
                  valType: "any",
                  editType: "none"
                },
                editType: "calc",
                _deprecated: {
                  autotick: {
                    valType: "boolean",
                    editType: "ticks"
                  },
                  title: {
                    valType: "string",
                    editType: "ticks"
                  },
                  titlefont: a({
                    editType: "ticks"
                  })
                }
              };
            }
          ),
          /***/
          7352: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(6308), l = r(624).isUnifiedHover, f = r(1008), u = r(1780), c = r(4859), d = r(4724), h = r(4944), i = r(5955), b = r(1888), x = r(7668), D = r(9811), C = D.id2name, w = D.name2id, S = r(3816).AX_ID_PATTERN, T = r(4040), k = T.traceIs, A = T.getComponentMethod;
              function R(g, I, O) {
                Array.isArray(g[I]) ? g[I].push(O) : g[I] = [O];
              }
              M.exports = function(I, O, $) {
                var Y = O.autotypenumbers, ne = {}, q = {}, B = {}, X = {}, U = {}, te = {}, se = {}, me = {}, J = {}, W = {}, ae, oe;
                for (ae = 0; ae < $.length; ae++) {
                  var ve = $[ae];
                  if (!(!k(ve, "cartesian") && !k(ve, "gl2d"))) {
                    var fe;
                    if (ve.xaxis)
                      fe = C(ve.xaxis), R(ne, fe, ve);
                    else if (ve.xaxes)
                      for (oe = 0; oe < ve.xaxes.length; oe++)
                        R(ne, C(ve.xaxes[oe]), ve);
                    var ye;
                    if (ve.yaxis)
                      ye = C(ve.yaxis), R(ne, ye, ve);
                    else if (ve.yaxes)
                      for (oe = 0; oe < ve.yaxes.length; oe++)
                        R(ne, C(ve.yaxes[oe]), ve);
                    if (ve.type === "funnel" ? ve.orientation === "h" ? (fe && (q[fe] = !0), ye && (se[ye] = !0)) : ye && (B[ye] = !0) : ve.type === "image" ? (ye && (me[ye] = !0), fe && (me[fe] = !0)) : (ye && (U[ye] = !0, te[ye] = !0), (!k(ve, "carpet") || ve.type === "carpet" && !ve._cheater) && fe && (X[fe] = !0)), ve.type === "carpet" && ve._cheater && fe && (q[fe] = !0), k(ve, "2dMap") && (J[fe] = !0, J[ye] = !0), k(ve, "oriented")) {
                      var Ce = ve.orientation === "h" ? ye : fe;
                      W[Ce] = !0;
                    }
                  }
                }
                var Re = O._subplots, Be = Re.xaxis, xe = Re.yaxis, Me = a.simpleMap(Be, C), De = a.simpleMap(xe, C), Z = Me.concat(De), ee = p.background;
                Be.length && xe.length && (ee = a.coerce(I, O, c, "plot_bgcolor"));
                var ie = p.combine(ee, O.paper_bgcolor), G, H, ce, j, he;
                function be() {
                  var Se = ne[G] || [];
                  he._traceIndices = Se.map(function(Pe) {
                    return Pe._expandedIndex;
                  }), he._annIndices = [], he._shapeIndices = [], he._selectionIndices = [], he._imgIndices = [], he._subplotsWith = [], he._counterAxes = [], he._name = he._attr = G, he._id = H;
                }
                function we(Se, Pe) {
                  return a.coerce(j, he, d, Se, Pe);
                }
                function Ie(Se, Pe) {
                  return a.coerce2(j, he, d, Se, Pe);
                }
                function Ge(Se) {
                  return Se === "x" ? xe : Be;
                }
                function Ve(Se, Pe) {
                  for (var Ye = Se === "x" ? Me : De, Ze = [], rt = 0; rt < Ye.length; rt++) {
                    var tt = Ye[rt];
                    tt !== Pe && !(I[tt] || {}).overlaying && Ze.push(w(tt));
                  }
                  return Ze;
                }
                var Je = {
                  x: Ge("x"),
                  y: Ge("y")
                }, et = Je.x.concat(Je.y), at = {}, Le = [];
                function ze() {
                  var Se = j.matches;
                  S.test(Se) && et.indexOf(Se) === -1 && (at[Se] = j.type, Le = Object.keys(at));
                }
                var Oe = f(I, O), Xe = l(Oe);
                for (ae = 0; ae < Z.length; ae++) {
                  G = Z[ae], H = w(G), ce = G.charAt(0), a.isPlainObject(I[G]) || (I[G] = {}), j = I[G], he = u.newContainer(O, G, ce + "axis"), be();
                  var it = ce === "x" && !X[G] && q[G] || ce === "y" && !U[G] && B[G], ut = ce === "y" && (!te[G] && se[G] || me[G]), wt = {
                    hasMinor: !0,
                    letter: ce,
                    font: O.font,
                    outerTicks: J[G],
                    showGrid: !W[G],
                    data: ne[G] || [],
                    bgColor: ie,
                    calendar: O.calendar,
                    automargin: !0,
                    visibleDflt: it,
                    reverseDflt: ut,
                    autotypenumbersDflt: Y,
                    splomStash: ((O._splomAxes || {})[ce] || {})[H],
                    noAutotickangles: ce === "y"
                  };
                  we("uirevision", O.uirevision), h(j, he, we, wt), i(j, he, we, wt, O);
                  var kt = Xe && ce === Oe.charAt(0), Ot = Ie("spikecolor", Xe ? he.color : void 0), Lt = Ie("spikethickness", Xe ? 1.5 : void 0), Mt = Ie("spikedash", Xe ? "dot" : void 0), Ut = Ie("spikemode", Xe ? "across" : void 0), Ct = Ie("spikesnap"), jt = we("showspikes", !!kt || !!Ot || !!Lt || !!Mt || !!Ut || !!Ct);
                  jt || (delete he.spikecolor, delete he.spikethickness, delete he.spikedash, delete he.spikemode, delete he.spikesnap);
                  var nr = C(j.overlaying), Jt = [0, 1];
                  if (O[nr] !== void 0) {
                    var Wt = C(O[nr].anchor);
                    O[Wt] !== void 0 && (Jt = O[Wt].domain);
                  }
                  x(j, he, we, {
                    letter: ce,
                    counterAxes: Je[ce],
                    overlayableAxes: Ve(ce, G),
                    grid: O.grid,
                    overlayingDomain: Jt
                  }), we("title.standoff"), ze(), he._input = j;
                }
                for (ae = 0; ae < Le.length; ) {
                  H = Le[ae++], G = C(H), ce = G.charAt(0), a.isPlainObject(I[G]) || (I[G] = {}), j = I[G], he = u.newContainer(O, G, ce + "axis"), be();
                  var qe = {
                    letter: ce,
                    font: O.font,
                    outerTicks: J[G],
                    showGrid: !W[G],
                    data: [],
                    bgColor: ie,
                    calendar: O.calendar,
                    automargin: !0,
                    visibleDflt: !1,
                    reverseDflt: !1,
                    autotypenumbersDflt: Y,
                    splomStash: ((O._splomAxes || {})[ce] || {})[H]
                  };
                  we("uirevision", O.uirevision), he.type = at[H] || "linear", i(j, he, we, qe, O), x(j, he, we, {
                    letter: ce,
                    counterAxes: Je[ce],
                    overlayableAxes: Ve(ce, G),
                    grid: O.grid
                  }), we("fixedrange"), ze(), he._input = j;
                }
                var Ue = A("rangeslider", "handleDefaults"), We = A("rangeselector", "handleDefaults");
                for (ae = 0; ae < Me.length; ae++)
                  G = Me[ae], j = I[G], he = O[G], Ue(I, O, G), he.type === "date" && We(j, he, O, De, he.calendar), we("fixedrange");
                for (ae = 0; ae < De.length; ae++) {
                  G = De[ae], j = I[G], he = O[G];
                  var je = O[C(he.anchor)], lt = A("rangeslider", "isVisible")(je);
                  we("fixedrange", lt);
                }
                b.handleDefaults(I, O, {
                  axIds: et.concat(Le).sort(D.idSort),
                  axHasImage: me
                });
              };
            }
          ),
          /***/
          2136: (
            /***/
            function(M, L, r) {
              var a = r(9760).mix, p = r(2548), l = r(3400);
              M.exports = function(u, c, d, h) {
                h = h || {};
                var i = h.dfltColor;
                function b(B, X) {
                  return l.coerce2(u, c, h.attributes, B, X);
                }
                var x = b("linecolor", i), D = b("linewidth"), C = d("showline", h.showLine || !!x || !!D);
                C || (delete c.linecolor, delete c.linewidth);
                var w = a(i, h.bgColor, h.blend || p.lightFraction).toRgbString(), S = b("gridcolor", w), T = b("gridwidth"), k = b("griddash"), A = d("showgrid", h.showGrid || !!S || !!T || !!k);
                if (A || (delete c.gridcolor, delete c.gridwidth, delete c.griddash), h.hasMinor) {
                  var R = a(c.gridcolor, h.bgColor, 67).toRgbString(), g = b("minor.gridcolor", R), I = b("minor.gridwidth", c.gridwidth || 1), O = b("minor.griddash", c.griddash || "solid"), $ = d("minor.showgrid", !!g || !!I || !!O);
                  $ || (delete c.minor.gridcolor, delete c.minor.gridwidth, delete c.minor.griddash);
                }
                if (!h.noZeroLine) {
                  var Y = b("zerolinecolor", i), ne = b("zerolinewidth"), q = d("zeroline", h.showGrid || !!Y || !!ne);
                  q || (delete c.zerolinecolor, delete c.zerolinewidth);
                }
              };
            }
          ),
          /***/
          7668: (
            /***/
            function(M, L, r) {
              var a = r(8248), p = r(3400);
              M.exports = function(f, u, c, d) {
                var h = d.counterAxes || [], i = d.overlayableAxes || [], b = d.letter, x = d.grid, D = d.overlayingDomain, C, w, S, T, k, A;
                x && (w = x._domains[b][x._axisMap[u._id]], C = x._anchors[u._id], w && (S = x[b + "side"].split(" ")[0], T = x.domain[b][S === "right" || S === "top" ? 1 : 0])), w = w || [0, 1], C = C || (a(f.position) ? "free" : h[0] || "free"), S = S || (b === "x" ? "bottom" : "left"), T = T || 0, k = 0, A = !1;
                var R = p.coerce(f, u, {
                  anchor: {
                    valType: "enumerated",
                    values: ["free"].concat(h),
                    dflt: C
                  }
                }, "anchor"), g = p.coerce(f, u, {
                  side: {
                    valType: "enumerated",
                    values: b === "x" ? ["bottom", "top"] : ["left", "right"],
                    dflt: S
                  }
                }, "side");
                if (R === "free") {
                  if (b === "y") {
                    var I = c("autoshift");
                    I && (T = g === "left" ? D[0] : D[1], A = u.automargin ? u.automargin : !0, k = g === "left" ? -3 : 3), c("shift", k);
                  }
                  c("position", T);
                }
                c("automargin", A);
                var O = !1;
                if (i.length && (O = p.coerce(f, u, {
                  overlaying: {
                    valType: "enumerated",
                    values: [!1].concat(i),
                    dflt: !1
                  }
                }, "overlaying")), !O) {
                  var $ = c("domain", w);
                  $[0] > $[1] - 244140625e-12 && (u.domain = w), p.noneOrAll(f.domain, u.domain, w), u.tickmode === "sync" && (u.tickmode = "auto");
                }
                return c("layer"), u;
              };
            }
          ),
          /***/
          2568: (
            /***/
            function(M, L, r) {
              var a = r(5024);
              M.exports = function(l, f, u, c, d) {
                d || (d = {});
                var h = d.tickSuffixDflt, i = a(l), b = u("tickprefix");
                b && u("showtickprefix", i);
                var x = u("ticksuffix", h);
                x && u("showticksuffix", i);
              };
            }
          ),
          /***/
          6312: (
            /***/
            function(M, L, r) {
              var a = r(6808);
              M.exports = function(l, f, u, c) {
                var d = f._template || {}, h = f.type || d.type || "-";
                u("minallowed"), u("maxallowed");
                var i = u("range");
                if (!i) {
                  var b;
                  !c.noInsiderange && h !== "log" && (b = u("insiderange"), b && (b[0] === null || b[1] === null) && (f.insiderange = !1, b = void 0), b && (i = u("range", b)));
                }
                var x = f.getAutorangeDflt(i, c), D = u("autorange", x), C;
                i && (i[0] === null && i[1] === null || (i[0] === null || i[1] === null) && (D === "reversed" || D === !0) || i[0] !== null && (D === "min" || D === "max reversed") || i[1] !== null && (D === "max" || D === "min reversed")) && (i = void 0, delete f.range, f.autorange = !0, C = !0), C || (x = f.getAutorangeDflt(i, c), D = u("autorange", x)), D && (a(u, D, i), (h === "linear" || h === "-") && u("rangemode")), f.cleanRange();
              };
            }
          ),
          /***/
          1160: (
            /***/
            function(M, L, r) {
              var a = r(4284).FROM_BL;
              M.exports = function(l, f, u) {
                u === void 0 && (u = a[l.constraintoward || "center"]);
                var c = [l.r2l(l.range[0]), l.r2l(l.range[1])], d = c[0] + (c[1] - c[0]) * u;
                l.range = l._input.range = [l.l2r(d + (c[0] - d) * f), l.l2r(d + (c[1] - d) * f)], l.setScale();
              };
            }
          ),
          /***/
          8344: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(4336).E9, l = r(3400), f = l.numberFormat, u = r(8248), c = l.cleanNumber, d = l.ms2DateTime, h = l.dateTime2ms, i = l.ensureNumber, b = l.isArrayOrTypedArray, x = r(9032), D = x.FP_SAFE, C = x.BADNUM, w = x.LOG_CLIP, S = x.ONEWEEK, T = x.ONEDAY, k = x.ONEHOUR, A = x.ONEMIN, R = x.ONESEC, g = r(9811), I = r(3816), O = I.HOUR_PATTERN, $ = I.WEEKDAY_PATTERN;
              function Y(q) {
                return Math.pow(10, q);
              }
              function ne(q) {
                return q != null;
              }
              M.exports = function(B, X) {
                X = X || {};
                var U = B._id || "x", te = U.charAt(0);
                function se(Z, ee) {
                  if (Z > 0)
                    return Math.log(Z) / Math.LN10;
                  if (Z <= 0 && ee && B.range && B.range.length === 2) {
                    var ie = B.range[0], G = B.range[1];
                    return 0.5 * (ie + G - 2 * w * Math.abs(ie - G));
                  } else
                    return C;
                }
                function me(Z, ee, ie, G) {
                  if ((G || {}).msUTC && u(Z))
                    return +Z;
                  var H = h(Z, ie || B.calendar);
                  if (H === C)
                    if (u(Z)) {
                      Z = +Z;
                      var ce = Math.floor(l.mod(Z + 0.05, 1) * 10), j = Math.round(Z - ce / 10);
                      H = h(new Date(j)) + ce / 10;
                    } else
                      return C;
                  return H;
                }
                function J(Z, ee, ie) {
                  return d(Z, ee, ie || B.calendar);
                }
                function W(Z) {
                  return B._categories[Math.round(Z)];
                }
                function ae(Z) {
                  if (ne(Z)) {
                    if (B._categoriesMap === void 0 && (B._categoriesMap = {}), B._categoriesMap[Z] !== void 0)
                      return B._categoriesMap[Z];
                    B._categories.push(typeof Z == "number" ? String(Z) : Z);
                    var ee = B._categories.length - 1;
                    return B._categoriesMap[Z] = ee, ee;
                  }
                  return C;
                }
                function oe(Z, ee) {
                  for (var ie = new Array(ee), G = 0; G < ee; G++) {
                    var H = (Z[0] || [])[G], ce = (Z[1] || [])[G];
                    ie[G] = ve([H, ce]);
                  }
                  return ie;
                }
                function ve(Z) {
                  if (B._categoriesMap)
                    return B._categoriesMap[Z];
                }
                function fe(Z) {
                  var ee = ve(Z);
                  if (ee !== void 0)
                    return ee;
                  if (u(Z))
                    return +Z;
                }
                function ye(Z) {
                  return u(Z) ? +Z : ve(Z);
                }
                function Ce(Z, ee, ie) {
                  return a.round(ie + ee * Z, 2);
                }
                function Re(Z, ee, ie) {
                  return (Z - ie) / ee;
                }
                var Be = function(ee) {
                  return u(ee) ? Ce(ee, B._m, B._b) : C;
                }, xe = function(Z) {
                  return Re(Z, B._m, B._b);
                };
                if (B.rangebreaks) {
                  var Me = te === "y";
                  Be = function(Z) {
                    if (!u(Z))
                      return C;
                    var ee = B._rangebreaks.length;
                    if (!ee)
                      return Ce(Z, B._m, B._b);
                    var ie = Me;
                    B.range[0] > B.range[1] && (ie = !ie);
                    for (var G = ie ? -1 : 1, H = G * Z, ce = 0, j = 0; j < ee; j++) {
                      var he = G * B._rangebreaks[j].min, be = G * B._rangebreaks[j].max;
                      if (H < he)
                        break;
                      if (H > be)
                        ce = j + 1;
                      else {
                        ce = H < (he + be) / 2 ? j : j + 1;
                        break;
                      }
                    }
                    var we = B._B[ce] || 0;
                    return isFinite(we) ? Ce(Z, B._m2, we) : 0;
                  }, xe = function(Z) {
                    var ee = B._rangebreaks.length;
                    if (!ee)
                      return Re(Z, B._m, B._b);
                    for (var ie = 0, G = 0; G < ee && !(Z < B._rangebreaks[G].pmin); G++)
                      Z > B._rangebreaks[G].pmax && (ie = G + 1);
                    return Re(Z, B._m2, B._B[ie]);
                  };
                }
                B.c2l = B.type === "log" ? se : i, B.l2c = B.type === "log" ? Y : i, B.l2p = Be, B.p2l = xe, B.c2p = B.type === "log" ? function(Z, ee) {
                  return Be(se(Z, ee));
                } : Be, B.p2c = B.type === "log" ? function(Z) {
                  return Y(xe(Z));
                } : xe, ["linear", "-"].indexOf(B.type) !== -1 ? (B.d2r = B.r2d = B.d2c = B.r2c = B.d2l = B.r2l = c, B.c2d = B.c2r = B.l2d = B.l2r = i, B.d2p = B.r2p = function(Z) {
                  return B.l2p(c(Z));
                }, B.p2d = B.p2r = xe, B.cleanPos = i) : B.type === "log" ? (B.d2r = B.d2l = function(Z, ee) {
                  return se(c(Z), ee);
                }, B.r2d = B.r2c = function(Z) {
                  return Y(c(Z));
                }, B.d2c = B.r2l = c, B.c2d = B.l2r = i, B.c2r = se, B.l2d = Y, B.d2p = function(Z, ee) {
                  return B.l2p(B.d2r(Z, ee));
                }, B.p2d = function(Z) {
                  return Y(xe(Z));
                }, B.r2p = function(Z) {
                  return B.l2p(c(Z));
                }, B.p2r = xe, B.cleanPos = i) : B.type === "date" ? (B.d2r = B.r2d = l.identity, B.d2c = B.r2c = B.d2l = B.r2l = me, B.c2d = B.c2r = B.l2d = B.l2r = J, B.d2p = B.r2p = function(Z, ee, ie) {
                  return B.l2p(me(Z, 0, ie));
                }, B.p2d = B.p2r = function(Z, ee, ie) {
                  return J(xe(Z), ee, ie);
                }, B.cleanPos = function(Z) {
                  return l.cleanDate(Z, C, B.calendar);
                }) : B.type === "category" ? (B.d2c = B.d2l = ae, B.r2d = B.c2d = B.l2d = W, B.d2r = B.d2l_noadd = fe, B.r2c = function(Z) {
                  var ee = ye(Z);
                  return ee !== void 0 ? ee : B.fraction2r(0.5);
                }, B.l2r = B.c2r = i, B.r2l = ye, B.d2p = function(Z) {
                  return B.l2p(B.r2c(Z));
                }, B.p2d = function(Z) {
                  return W(xe(Z));
                }, B.r2p = B.d2p, B.p2r = xe, B.cleanPos = function(Z) {
                  return typeof Z == "string" && Z !== "" ? Z : i(Z);
                }) : B.type === "multicategory" && (B.r2d = B.c2d = B.l2d = W, B.d2r = B.d2l_noadd = fe, B.r2c = function(Z) {
                  var ee = fe(Z);
                  return ee !== void 0 ? ee : B.fraction2r(0.5);
                }, B.r2c_just_indices = ve, B.l2r = B.c2r = i, B.r2l = fe, B.d2p = function(Z) {
                  return B.l2p(B.r2c(Z));
                }, B.p2d = function(Z) {
                  return W(xe(Z));
                }, B.r2p = B.d2p, B.p2r = xe, B.cleanPos = function(Z) {
                  return Array.isArray(Z) || typeof Z == "string" && Z !== "" ? Z : i(Z);
                }, B.setupMultiCategory = function(Z) {
                  var ee = B._traceIndices, ie, G, H = B._matchGroup;
                  if (H && B._categories.length === 0) {
                    for (var ce in H)
                      if (ce !== U) {
                        var j = X[g.id2name(ce)];
                        ee = ee.concat(j._traceIndices);
                      }
                  }
                  var he = [[0, {}], [0, {}]], be = [];
                  for (ie = 0; ie < ee.length; ie++) {
                    var we = Z[ee[ie]];
                    if (te in we) {
                      var Ie = we[te], Ge = we._length || l.minRowLength(Ie);
                      if (b(Ie[0]) && b(Ie[1]))
                        for (G = 0; G < Ge; G++) {
                          var Ve = Ie[0][G], Je = Ie[1][G];
                          ne(Ve) && ne(Je) && (be.push([Ve, Je]), Ve in he[0][1] || (he[0][1][Ve] = he[0][0]++), Je in he[1][1] || (he[1][1][Je] = he[1][0]++));
                        }
                    }
                  }
                  for (be.sort(function(et, at) {
                    var Le = he[0][1], ze = Le[et[0]] - Le[at[0]];
                    if (ze)
                      return ze;
                    var Oe = he[1][1];
                    return Oe[et[1]] - Oe[at[1]];
                  }), ie = 0; ie < be.length; ie++)
                    ae(be[ie]);
                }), B.fraction2r = function(Z) {
                  var ee = B.r2l(B.range[0]), ie = B.r2l(B.range[1]);
                  return B.l2r(ee + Z * (ie - ee));
                }, B.r2fraction = function(Z) {
                  var ee = B.r2l(B.range[0]), ie = B.r2l(B.range[1]);
                  return (B.r2l(Z) - ee) / (ie - ee);
                }, B.limitRange = function(Z) {
                  var ee = B.minallowed, ie = B.maxallowed;
                  if (!(ee === void 0 && ie === void 0)) {
                    Z || (Z = "range");
                    var G = l.nestedProperty(B, Z).get(), H = l.simpleMap(G, B.r2l), ce = H[1] < H[0];
                    ce && H.reverse();
                    var j = l.simpleMap([ee, ie], B.r2l);
                    if (ee !== void 0 && H[0] < j[0] && (G[ce ? 1 : 0] = ee), ie !== void 0 && H[1] > j[1] && (G[ce ? 0 : 1] = ie), G[0] === G[1]) {
                      var he = B.l2r(ee), be = B.l2r(ie);
                      if (ee !== void 0) {
                        var we = he + 1;
                        ie !== void 0 && (we = Math.min(we, be)), G[ce ? 1 : 0] = we;
                      }
                      if (ie !== void 0) {
                        var Ie = be + 1;
                        ee !== void 0 && (Ie = Math.max(Ie, he)), G[ce ? 0 : 1] = Ie;
                      }
                    }
                  }
                }, B.cleanRange = function(Z, ee) {
                  B._cleanRange(Z, ee), B.limitRange(Z);
                }, B._cleanRange = function(Z, ee) {
                  ee || (ee = {}), Z || (Z = "range");
                  var ie = l.nestedProperty(B, Z).get(), G, H;
                  if (B.type === "date" ? H = l.dfltRange(B.calendar) : te === "y" ? H = I.DFLTRANGEY : B._name === "realaxis" ? H = [0, 1] : H = ee.dfltRange || I.DFLTRANGEX, H = H.slice(), (B.rangemode === "tozero" || B.rangemode === "nonnegative") && (H[0] = 0), !ie || ie.length !== 2) {
                    l.nestedProperty(B, Z).set(H);
                    return;
                  }
                  var ce = ie[0] === null, j = ie[1] === null;
                  for (B.type === "date" && !B.autorange && (ie[0] = l.cleanDate(ie[0], C, B.calendar), ie[1] = l.cleanDate(ie[1], C, B.calendar)), G = 0; G < 2; G++)
                    if (B.type === "date") {
                      if (!l.isDateTime(ie[G], B.calendar)) {
                        B[Z] = H;
                        break;
                      }
                      if (B.r2l(ie[0]) === B.r2l(ie[1])) {
                        var he = l.constrain(B.r2l(ie[0]), l.MIN_MS + 1e3, l.MAX_MS - 1e3);
                        ie[0] = B.l2r(he - 1e3), ie[1] = B.l2r(he + 1e3);
                        break;
                      }
                    } else {
                      if (!u(ie[G]))
                        if (!(ce || j) && u(ie[1 - G]))
                          ie[G] = ie[1 - G] * (G ? 10 : 0.1);
                        else {
                          B[Z] = H;
                          break;
                        }
                      if (ie[G] < -D ? ie[G] = -D : ie[G] > D && (ie[G] = D), ie[0] === ie[1]) {
                        var be = Math.max(1, Math.abs(ie[0] * 1e-6));
                        ie[0] -= be, ie[1] += be;
                      }
                    }
                }, B.setScale = function(Z) {
                  var ee = X._size;
                  if (B.overlaying) {
                    var ie = g.getFromId({
                      _fullLayout: X
                    }, B.overlaying);
                    B.domain = ie.domain;
                  }
                  var G = Z && B._r ? "_r" : "range", H = B.calendar;
                  B.cleanRange(G);
                  var ce = B.r2l(B[G][0], H), j = B.r2l(B[G][1], H), he = te === "y";
                  if (he ? (B._offset = ee.t + (1 - B.domain[1]) * ee.h, B._length = ee.h * (B.domain[1] - B.domain[0]), B._m = B._length / (ce - j), B._b = -B._m * j) : (B._offset = ee.l + B.domain[0] * ee.w, B._length = ee.w * (B.domain[1] - B.domain[0]), B._m = B._length / (j - ce), B._b = -B._m * ce), B._rangebreaks = [], B._lBreaks = 0, B._m2 = 0, B._B = [], B.rangebreaks) {
                    var be, we;
                    if (B._rangebreaks = B.locateBreaks(Math.min(ce, j), Math.max(ce, j)), B._rangebreaks.length) {
                      for (be = 0; be < B._rangebreaks.length; be++)
                        we = B._rangebreaks[be], B._lBreaks += Math.abs(we.max - we.min);
                      var Ie = he;
                      ce > j && (Ie = !Ie), Ie && B._rangebreaks.reverse();
                      var Ge = Ie ? -1 : 1;
                      for (B._m2 = Ge * B._length / (Math.abs(j - ce) - B._lBreaks), B._B.push(-B._m2 * (he ? j : ce)), be = 0; be < B._rangebreaks.length; be++)
                        we = B._rangebreaks[be], B._B.push(B._B[B._B.length - 1] - Ge * B._m2 * (we.max - we.min));
                      for (be = 0; be < B._rangebreaks.length; be++)
                        we = B._rangebreaks[be], we.pmin = Be(we.min), we.pmax = Be(we.max);
                    }
                  }
                  if (!isFinite(B._m) || !isFinite(B._b) || B._length < 0)
                    throw X._replotting = !1, new Error("Something went wrong with axis scaling");
                }, B.maskBreaks = function(Z) {
                  var ee = B.rangebreaks || [], ie, G, H, ce, j;
                  ee._cachedPatterns || (ee._cachedPatterns = ee.map(function(Le) {
                    return Le.enabled && Le.bounds ? l.simpleMap(
                      Le.bounds,
                      Le.pattern ? c : B.d2c
                      // case of pattern: ''
                    ) : null;
                  })), ee._cachedValues || (ee._cachedValues = ee.map(function(Le) {
                    return Le.enabled && Le.values ? l.simpleMap(Le.values, B.d2c).sort(l.sorterAsc) : null;
                  }));
                  for (var he = 0; he < ee.length; he++) {
                    var be = ee[he];
                    if (be.enabled) {
                      if (be.bounds) {
                        var we = be.pattern;
                        switch (ie = ee._cachedPatterns[he], G = ie[0], H = ie[1], we) {
                          case $:
                            j = new Date(Z), ce = j.getUTCDay(), G > H && (H += 7, ce < G && (ce += 7));
                            break;
                          case O:
                            j = new Date(Z);
                            var Ie = j.getUTCHours(), Ge = j.getUTCMinutes(), Ve = j.getUTCSeconds(), Je = j.getUTCMilliseconds();
                            ce = Ie + (Ge / 60 + Ve / 3600 + Je / 36e5), G > H && (H += 24, ce < G && (ce += 24));
                            break;
                          case "":
                            ce = Z;
                            break;
                        }
                        if (ce >= G && ce < H)
                          return C;
                      } else
                        for (var et = ee._cachedValues[he], at = 0; at < et.length; at++)
                          if (G = et[at], H = G + be.dvalue, Z >= G && Z < H)
                            return C;
                    }
                  }
                  return Z;
                }, B.locateBreaks = function(Z, ee) {
                  var ie, G, H, ce, j = [];
                  if (!B.rangebreaks)
                    return j;
                  var he = B.rangebreaks.slice().sort(function(Oe, Xe) {
                    return Oe.pattern === $ && Xe.pattern === O ? -1 : Xe.pattern === $ && Oe.pattern === O ? 1 : 0;
                  }), be = function(Oe, Xe) {
                    if (Oe = l.constrain(Oe, Z, ee), Xe = l.constrain(Xe, Z, ee), Oe !== Xe) {
                      for (var it = !0, ut = 0; ut < j.length; ut++) {
                        var wt = j[ut];
                        Oe < wt.max && Xe >= wt.min && (Oe < wt.min && (wt.min = Oe), Xe > wt.max && (wt.max = Xe), it = !1);
                      }
                      it && j.push({
                        min: Oe,
                        max: Xe
                      });
                    }
                  };
                  for (ie = 0; ie < he.length; ie++) {
                    var we = he[ie];
                    if (we.enabled)
                      if (we.bounds) {
                        var Ie = Z, Ge = ee;
                        we.pattern && (Ie = Math.floor(Ie)), G = l.simpleMap(we.bounds, we.pattern ? c : B.r2l), H = G[0], ce = G[1];
                        var Ve = new Date(Ie), Je, et;
                        switch (we.pattern) {
                          case $:
                            et = S, Je = ((ce < H ? 7 : 0) + (ce - H)) * T, Ie += H * T - (Ve.getUTCDay() * T + Ve.getUTCHours() * k + Ve.getUTCMinutes() * A + Ve.getUTCSeconds() * R + Ve.getUTCMilliseconds());
                            break;
                          case O:
                            et = T, Je = ((ce < H ? 24 : 0) + (ce - H)) * k, Ie += H * k - (Ve.getUTCHours() * k + Ve.getUTCMinutes() * A + Ve.getUTCSeconds() * R + Ve.getUTCMilliseconds());
                            break;
                          default:
                            Ie = Math.min(G[0], G[1]), Ge = Math.max(G[0], G[1]), et = Ge - Ie, Je = et;
                        }
                        for (var at = Ie; at < Ge; at += et)
                          be(at, at + Je);
                      } else
                        for (var Le = l.simpleMap(we.values, B.d2c), ze = 0; ze < Le.length; ze++)
                          H = Le[ze], ce = H + we.dvalue, be(H, ce);
                  }
                  return j.sort(function(Oe, Xe) {
                    return Oe.min - Xe.min;
                  }), j;
                }, B.makeCalcdata = function(Z, ee, ie) {
                  var G, H, ce, j, he = B.type, be = he === "date" && Z[ee + "calendar"];
                  if (ee in Z) {
                    if (G = Z[ee], j = Z._length || l.minRowLength(G), l.isTypedArray(G) && (he === "linear" || he === "log")) {
                      if (j === G.length)
                        return G;
                      if (G.subarray)
                        return G.subarray(0, j);
                    }
                    if (he === "multicategory")
                      return oe(G, j);
                    for (H = new Array(j), ce = 0; ce < j; ce++)
                      H[ce] = B.d2c(G[ce], 0, be, ie);
                  } else {
                    var we = ee + "0" in Z ? B.d2c(Z[ee + "0"], 0, be) : 0, Ie = Z["d" + ee] ? Number(Z["d" + ee]) : 1;
                    for (G = Z[{
                      x: "y",
                      y: "x"
                    }[ee]], j = Z._length || G.length, H = new Array(j), ce = 0; ce < j; ce++)
                      H[ce] = we + ce * Ie;
                  }
                  if (B.rangebreaks)
                    for (ce = 0; ce < j; ce++)
                      H[ce] = B.maskBreaks(H[ce]);
                  return H;
                }, B.isValidRange = function(Z, ee) {
                  return Array.isArray(Z) && Z.length === 2 && (ee && Z[0] === null || u(B.r2l(Z[0]))) && (ee && Z[1] === null || u(B.r2l(Z[1])));
                }, B.getAutorangeDflt = function(Z, ee) {
                  var ie = !B.isValidRange(Z, "nullOk");
                  return ie && ee && ee.reverseDflt ? ie = "reversed" : Z && (Z[0] === null && Z[1] === null ? ie = !0 : Z[0] === null && Z[1] !== null ? ie = "min" : Z[0] !== null && Z[1] === null && (ie = "max")), ie;
                }, B.isReversed = function() {
                  var Z = B.autorange;
                  return Z === "reversed" || Z === "min reversed" || Z === "max reversed";
                }, B.isPtWithinRange = function(Z, ee) {
                  var ie = B.c2l(Z[te], null, ee), G = B.r2l(B.range[0]), H = B.r2l(B.range[1]);
                  return G < H ? G <= ie && ie <= H : H <= ie && ie <= G;
                }, B._emptyCategories = function() {
                  B._categories = [], B._categoriesMap = {};
                }, B.clearCalc = function() {
                  var Z = B._matchGroup;
                  if (Z) {
                    var ee = null, ie = null;
                    for (var G in Z) {
                      var H = X[g.id2name(G)];
                      if (H._categories) {
                        ee = H._categories, ie = H._categoriesMap;
                        break;
                      }
                    }
                    ee && ie ? (B._categories = ee, B._categoriesMap = ie) : B._emptyCategories();
                  } else
                    B._emptyCategories();
                  if (B._initialCategories)
                    for (var ce = 0; ce < B._initialCategories.length; ce++)
                      ae(B._initialCategories[ce]);
                }, B.sortByInitialCategories = function() {
                  var Z = [];
                  if (B._emptyCategories(), B._initialCategories)
                    for (var ee = 0; ee < B._initialCategories.length; ee++)
                      ae(B._initialCategories[ee]);
                  Z = Z.concat(B._traceIndices);
                  var ie = B._matchGroup;
                  for (var G in ie)
                    if (U !== G) {
                      var H = X[g.id2name(G)];
                      H._categories = B._categories, H._categoriesMap = B._categoriesMap, Z = Z.concat(H._traceIndices);
                    }
                  return Z;
                };
                var De = X._d3locale;
                B.type === "date" && (B._dateFormat = De ? De.timeFormat : p, B._extraFormat = X._extraFormat), B._separators = X.separators, B._numFormat = De ? De.numberFormat : f, delete B._minDtick, delete B._forceTick0;
              };
            }
          ),
          /***/
          5024: (
            /***/
            function(M) {
              M.exports = function(r) {
                var a = ["showexponent", "showtickprefix", "showticksuffix"], p = a.filter(function(f) {
                  return r[f] !== void 0;
                }), l = function(f) {
                  return r[f] === r[p[0]];
                };
                if (p.every(l) || p.length === 1)
                  return r[p[0]];
              };
            }
          ),
          /***/
          5936: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(6308).contrast, l = r(4724), f = r(5024), u = r(1272);
              M.exports = function(h, i, b, x, D) {
                D || (D = {});
                var C = b("labelalias");
                a.isPlainObject(C) || delete i.labelalias;
                var w = f(h), S = b("showticklabels");
                if (S) {
                  var T = D.font || {}, k = i.color, A = i.ticklabelposition || "", R = A.indexOf("inside") !== -1 ? p(D.bgColor) : (
                    // as with titlefont.color, inherit axis.color only if one was
                    // explicitly provided
                    k && k !== l.color.dflt ? k : T.color
                  );
                  if (a.coerceFont(b, "tickfont", T, {
                    overrideDflt: {
                      color: R
                    }
                  }), !D.noTicklabelstep && x !== "multicategory" && x !== "log" && b("ticklabelstep"), !D.noAng) {
                    var g = b("tickangle");
                    !D.noAutotickangles && g === "auto" && b("autotickangles");
                  }
                  if (x !== "category") {
                    var I = b("tickformat");
                    u(h, i, {
                      name: "tickformatstops",
                      inclusionAttr: "enabled",
                      handleItemDefaults: c
                    }), i.tickformatstops.length || delete i.tickformatstops, !D.noExp && !I && x !== "date" && (b("showexponent", w), b("exponentformat"), b("minexponent"), b("separatethousands"));
                  }
                }
              };
              function c(d, h) {
                function i(x, D) {
                  return a.coerce(d, h, l.tickformatstops, x, D);
                }
                var b = i("enabled");
                b && (i("dtickrange"), i("value"));
              }
            }
          ),
          /***/
          5404: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(4724);
              M.exports = function(f, u, c, d) {
                var h = d.isMinor, i = h ? f.minor || {} : f, b = h ? u.minor : u, x = h ? p.minor : p, D = h ? "minor." : "", C = a.coerce2(i, b, x, "ticklen", h ? (u.ticklen || 5) * 0.6 : void 0), w = a.coerce2(i, b, x, "tickwidth", h ? u.tickwidth || 1 : void 0), S = a.coerce2(i, b, x, "tickcolor", (h ? u.tickcolor : void 0) || b.color), T = c(D + "ticks", !h && d.outerTicks || C || w || S ? "outside" : "");
                T || (delete b.ticklen, delete b.tickwidth, delete b.tickcolor);
              };
            }
          ),
          /***/
          6332: (
            /***/
            function(M, L, r) {
              var a = r(8728), p = r(3400).isArrayOrTypedArray, l = r(8116).isTypedArraySpec, f = r(8116).decodeTypedArraySpec;
              M.exports = function(c, d, h, i, b) {
                b || (b = {});
                var x = b.isMinor, D = x ? c.minor || {} : c, C = x ? d.minor : d, w = x ? "minor." : "";
                function S($) {
                  var Y = D[$];
                  return l(Y) && (Y = f(Y)), Y !== void 0 ? Y : (C._template || {})[$];
                }
                var T = S("tick0"), k = S("dtick"), A = S("tickvals"), R = p(A) ? "array" : k ? "linear" : "auto", g = h(w + "tickmode", R);
                if (g === "auto" || g === "sync")
                  h(w + "nticks");
                else if (g === "linear") {
                  var I = C.dtick = a.dtick(k, i);
                  C.tick0 = a.tick0(T, i, d.calendar, I);
                } else if (i !== "multicategory") {
                  var O = h(w + "tickvals");
                  O === void 0 ? C.tickmode = "auto" : x || h("ticktext");
                }
              };
            }
          ),
          /***/
          3736: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(4040), l = r(3400), f = r(3616), u = r(4460);
              M.exports = function(d, h, i, b) {
                var x = d._fullLayout;
                if (h.length === 0) {
                  u.redrawComponents(d);
                  return;
                }
                function D(O) {
                  var $ = O.xaxis, Y = O.yaxis;
                  x._defs.select("#" + O.clipId + "> rect").call(f.setTranslate, 0, 0).call(f.setScale, 1, 1), O.plot.call(f.setTranslate, $._offset, Y._offset).call(f.setScale, 1, 1);
                  var ne = O.plot.selectAll(".scatterlayer .trace");
                  ne.selectAll(".point").call(f.setPointGroupScale, 1, 1), ne.selectAll(".textpoint").call(f.setTextPointsScale, 1, 1), ne.call(f.hideOutsideRangePoints, O);
                }
                function C(O, $) {
                  var Y = O.plotinfo, ne = Y.xaxis, q = Y.yaxis, B = ne._length, X = q._length, U = !!O.xr1, te = !!O.yr1, se = [];
                  if (U) {
                    var me = l.simpleMap(O.xr0, ne.r2l), J = l.simpleMap(O.xr1, ne.r2l), W = me[1] - me[0], ae = J[1] - J[0];
                    se[0] = (me[0] * (1 - $) + $ * J[0] - me[0]) / (me[1] - me[0]) * B, se[2] = B * (1 - $ + $ * ae / W), ne.range[0] = ne.l2r(me[0] * (1 - $) + $ * J[0]), ne.range[1] = ne.l2r(me[1] * (1 - $) + $ * J[1]);
                  } else
                    se[0] = 0, se[2] = B;
                  if (te) {
                    var oe = l.simpleMap(O.yr0, q.r2l), ve = l.simpleMap(O.yr1, q.r2l), fe = oe[1] - oe[0], ye = ve[1] - ve[0];
                    se[1] = (oe[1] * (1 - $) + $ * ve[1] - oe[1]) / (oe[0] - oe[1]) * X, se[3] = X * (1 - $ + $ * ye / fe), q.range[0] = ne.l2r(oe[0] * (1 - $) + $ * ve[0]), q.range[1] = q.l2r(oe[1] * (1 - $) + $ * ve[1]);
                  } else
                    se[1] = 0, se[3] = X;
                  u.drawOne(d, ne, {
                    skipTitle: !0
                  }), u.drawOne(d, q, {
                    skipTitle: !0
                  }), u.redrawComponents(d, [ne._id, q._id]);
                  var Ce = U ? B / se[2] : 1, Re = te ? X / se[3] : 1, Be = U ? se[0] : 0, xe = te ? se[1] : 0, Me = U ? se[0] / se[2] * B : 0, De = te ? se[1] / se[3] * X : 0, Z = ne._offset - Me, ee = q._offset - De;
                  Y.clipRect.call(f.setTranslate, Be, xe).call(f.setScale, 1 / Ce, 1 / Re), Y.plot.call(f.setTranslate, Z, ee).call(f.setScale, Ce, Re), f.setPointGroupScale(Y.zoomScalePts, 1 / Ce, 1 / Re), f.setTextPointsScale(Y.zoomScaleTxt, 1 / Ce, 1 / Re);
                }
                var w;
                b && (w = b());
                function S() {
                  for (var O = {}, $ = 0; $ < h.length; $++) {
                    var Y = h[$], ne = Y.plotinfo.xaxis, q = Y.plotinfo.yaxis;
                    Y.xr1 && (O[ne._name + ".range"] = Y.xr1.slice()), Y.yr1 && (O[q._name + ".range"] = Y.yr1.slice());
                  }
                  return w && w(), p.call("relayout", d, O).then(function() {
                    for (var B = 0; B < h.length; B++)
                      D(h[B].plotinfo);
                  });
                }
                function T() {
                  for (var O = {}, $ = 0; $ < h.length; $++) {
                    var Y = h[$], ne = Y.plotinfo.xaxis, q = Y.plotinfo.yaxis;
                    Y.xr0 && (O[ne._name + ".range"] = Y.xr0.slice()), Y.yr0 && (O[q._name + ".range"] = Y.yr0.slice());
                  }
                  return p.call("relayout", d, O).then(function() {
                    for (var B = 0; B < h.length; B++)
                      D(h[B].plotinfo);
                  });
                }
                var k, A, R, g = a.ease(i.easing);
                d._transitionData._interruptCallbacks.push(function() {
                  return window.cancelAnimationFrame(R), R = null, T();
                });
                function I() {
                  A = Date.now();
                  for (var O = Math.min(1, (A - k) / i.duration), $ = g(O), Y = 0; Y < h.length; Y++)
                    C(h[Y], $);
                  A - k > i.duration ? (S(), R = window.cancelAnimationFrame(I)) : R = window.requestAnimationFrame(I);
                }
                return k = Date.now(), R = window.requestAnimationFrame(I), Promise.resolve();
              };
            }
          ),
          /***/
          4944: (
            /***/
            function(M, L, r) {
              var a = r(4040).traceIs, p = r(2976);
              M.exports = function(h, i, b, x) {
                b("autotypenumbers", x.autotypenumbersDflt);
                var D = b("type", (x.splomStash || {}).type);
                D === "-" && (l(i, x.data), i.type === "-" ? i.type = "linear" : h.type = i.type);
              };
              function l(d, h) {
                if (d.type === "-") {
                  var i = d._id, b = i.charAt(0), x;
                  i.indexOf("scene") !== -1 && (i = b);
                  var D = f(h, i, b);
                  if (D) {
                    if (D.type === "histogram" && b === {
                      v: "y",
                      h: "x"
                    }[D.orientation || "v"]) {
                      d.type = "linear";
                      return;
                    }
                    var C = b + "calendar", w = D[C], S = {
                      noMultiCategory: !a(D, "cartesian") || a(D, "noMultiCategory")
                    };
                    if (D.type === "box" && D._hasPreCompStats && b === {
                      h: "x",
                      v: "y"
                    }[D.orientation || "v"] && (S.noMultiCategory = !0), S.autotypenumbers = d.autotypenumbers, c(D, b)) {
                      var T = u(D), k = [];
                      for (x = 0; x < h.length; x++) {
                        var A = h[x];
                        !a(A, "box-violin") || (A[b + "axis"] || b) !== i || (A[T] !== void 0 ? k.push(A[T][0]) : A.name !== void 0 ? k.push(A.name) : k.push("text"), A[C] !== w && (w = void 0));
                      }
                      d.type = p(k, w, S);
                    } else if (D.type === "splom") {
                      var R = D.dimensions, g = R[D._axesDim[i]];
                      g.visible && (d.type = p(g.values, w, S));
                    } else
                      d.type = p(D[b] || [D[b + "0"]], w, S);
                  }
                }
              }
              function f(d, h, i) {
                for (var b = 0; b < d.length; b++) {
                  var x = d[b];
                  if (x.type === "splom" && x._length > 0 && (x["_" + i + "axes"] || {})[h])
                    return x;
                  if ((x[i + "axis"] || i) === h) {
                    if (c(x, i))
                      return x;
                    if ((x[i] || []).length || x[i + "0"])
                      return x;
                  }
                }
              }
              function u(d) {
                return {
                  v: "x",
                  h: "y"
                }[d.orientation || "v"];
              }
              function c(d, h) {
                var i = u(d), b = a(d, "box-violin"), x = a(d._fullInput || {}, "candlestick");
                return b && !x && h === i && d[i] === void 0 && d[i + "0"] === void 0;
              }
            }
          ),
          /***/
          2460: (
            /***/
            function(M, L, r) {
              var a = r(4040), p = r(3400);
              L.manageCommandObserver = function(h, i, b, x) {
                var D = {}, C = !0;
                i && i._commandObserver && (D = i._commandObserver), D.cache || (D.cache = {}), D.lookupTable = {};
                var w = L.hasSimpleAPICommandBindings(h, b, D.lookupTable);
                if (i && i._commandObserver) {
                  if (w)
                    return D;
                  if (i._commandObserver.remove)
                    return i._commandObserver.remove(), i._commandObserver = null, D;
                }
                if (w) {
                  l(h, w, D.cache), D.check = function() {
                    if (C) {
                      var A = l(h, w, D.cache);
                      return A.changed && x && D.lookupTable[A.value] !== void 0 && (D.disable(), Promise.resolve(x({
                        value: A.value,
                        type: w.type,
                        prop: w.prop,
                        traces: w.traces,
                        index: D.lookupTable[A.value]
                      })).then(D.enable, D.enable)), A.changed;
                    }
                  };
                  for (var S = ["plotly_relayout", "plotly_redraw", "plotly_restyle", "plotly_update", "plotly_animatingframe", "plotly_afterplot"], T = 0; T < S.length; T++)
                    h._internalOn(S[T], D.check);
                  D.remove = function() {
                    for (var k = 0; k < S.length; k++)
                      h._removeInternalListener(S[k], D.check);
                  };
                } else
                  p.log("Unable to automatically bind plot updates to API command"), D.lookupTable = {}, D.remove = function() {
                  };
                return D.disable = function() {
                  C = !1;
                }, D.enable = function() {
                  C = !0;
                }, i && (i._commandObserver = D), D;
              }, L.hasSimpleAPICommandBindings = function(h, i, b) {
                var x, D = i.length, C;
                for (x = 0; x < D; x++) {
                  var w, S = i[x], T = S.method, k = S.args;
                  if (Array.isArray(k) || (k = []), !T)
                    return !1;
                  var A = L.computeAPICommandBindings(h, T, k);
                  if (A.length !== 1)
                    return !1;
                  if (!C)
                    C = A[0], Array.isArray(C.traces) && C.traces.sort();
                  else {
                    if (w = A[0], w.type !== C.type || w.prop !== C.prop)
                      return !1;
                    if (Array.isArray(C.traces))
                      if (Array.isArray(w.traces)) {
                        w.traces.sort();
                        for (var R = 0; R < C.traces.length; R++)
                          if (C.traces[R] !== w.traces[R])
                            return !1;
                      } else
                        return !1;
                    else if (w.prop !== C.prop)
                      return !1;
                  }
                  w = A[0];
                  var g = w.value;
                  if (Array.isArray(g))
                    if (g.length === 1)
                      g = g[0];
                    else
                      return !1;
                  b && (b[g] = x);
                }
                return C;
              };
              function l(h, i, b) {
                var x, D, C, w = !1;
                if (i.type === "data")
                  x = h._fullData[i.traces !== null ? i.traces[0] : 0];
                else if (i.type === "layout")
                  x = h._fullLayout;
                else
                  return !1;
                return D = p.nestedProperty(x, i.prop).get(), C = b[i.type] = b[i.type] || {}, C.hasOwnProperty(i.prop) && C[i.prop] !== D && (w = !0), C[i.prop] = D, {
                  changed: w,
                  value: D
                };
              }
              L.executeAPICommand = function(h, i, b) {
                if (i === "skip")
                  return Promise.resolve();
                var x = a.apiMethodRegistry[i], D = [h];
                Array.isArray(b) || (b = []);
                for (var C = 0; C < b.length; C++)
                  D.push(b[C]);
                return x.apply(null, D).catch(function(w) {
                  return p.warn("API call to Plotly." + i + " rejected.", w), Promise.reject(w);
                });
              }, L.computeAPICommandBindings = function(h, i, b) {
                var x;
                switch (Array.isArray(b) || (b = []), i) {
                  case "restyle":
                    x = c(h, b);
                    break;
                  case "relayout":
                    x = u(h, b);
                    break;
                  case "update":
                    x = c(h, [b[0], b[2]]).concat(u(h, [b[1]]));
                    break;
                  case "animate":
                    x = f(h, b);
                    break;
                  default:
                    x = [];
                }
                return x;
              };
              function f(h, i) {
                return Array.isArray(i[0]) && i[0].length === 1 && ["string", "number"].indexOf(typeof i[0][0]) !== -1 ? [{
                  type: "layout",
                  prop: "_currentFrame",
                  value: i[0][0].toString()
                }] : [];
              }
              function u(h, i) {
                var b = [], x = i[0], D = {};
                if (typeof x == "string")
                  D[x] = i[1];
                else if (p.isPlainObject(x))
                  D = x;
                else
                  return b;
                return d(D, function(C, w, S) {
                  b.push({
                    type: "layout",
                    prop: C,
                    value: S
                  });
                }, "", 0), b;
              }
              function c(h, i) {
                var b, x, D, C, w = [];
                if (x = i[0], D = i[1], b = i[2], C = {}, typeof x == "string")
                  C[x] = D;
                else if (p.isPlainObject(x))
                  C = x, b === void 0 && (b = D);
                else
                  return w;
                return b === void 0 && (b = null), d(C, function(S, T, k) {
                  var A, R;
                  if (Array.isArray(k)) {
                    R = k.slice();
                    var g = Math.min(R.length, h.data.length);
                    b && (g = Math.min(g, b.length)), A = [];
                    for (var I = 0; I < g; I++)
                      A[I] = b ? b[I] : I;
                  } else
                    R = k, A = b ? b.slice() : null;
                  if (A === null)
                    Array.isArray(R) && (R = R[0]);
                  else if (Array.isArray(A)) {
                    if (!Array.isArray(R)) {
                      var O = R;
                      R = [];
                      for (var $ = 0; $ < A.length; $++)
                        R[$] = O;
                    }
                    R.length = Math.min(A.length, R.length);
                  }
                  w.push({
                    type: "data",
                    prop: S,
                    traces: A,
                    value: R
                  });
                }, "", 0), w;
              }
              function d(h, i, b, x) {
                Object.keys(h).forEach(function(D) {
                  var C = h[D];
                  if (D[0] !== "_") {
                    var w = b + (x > 0 ? "." : "") + D;
                    p.isPlainObject(C) ? d(C, i, w, x + 1) : i(w, D, C);
                  }
                });
              }
            }
          ),
          /***/
          6968: (
            /***/
            function(M, L, r) {
              var a = r(2880).extendFlat;
              L.u = function(p, l) {
                p = p || {}, l = l || {};
                var f = {
                  valType: "info_array",
                  editType: p.editType,
                  items: [{
                    valType: "number",
                    min: 0,
                    max: 1,
                    editType: p.editType
                  }, {
                    valType: "number",
                    min: 0,
                    max: 1,
                    editType: p.editType
                  }],
                  dflt: [0, 1]
                };
                p.name && p.name + "", p.trace, l.description && "" + l.description;
                var u = {
                  x: a({}, f, {}),
                  y: a({}, f, {}),
                  editType: p.editType
                };
                return p.noGridCell || (u.row = {
                  valType: "integer",
                  min: 0,
                  dflt: 0,
                  editType: p.editType
                }, u.column = {
                  valType: "integer",
                  min: 0,
                  dflt: 0,
                  editType: p.editType
                }), u;
              }, L.Q = function(p, l, f, u) {
                var c = u && u.x || [0, 1], d = u && u.y || [0, 1], h = l.grid;
                if (h) {
                  var i = f("domain.column");
                  i !== void 0 && (i < h.columns ? c = h._domains.x[i] : delete p.domain.column);
                  var b = f("domain.row");
                  b !== void 0 && (b < h.rows ? d = h._domains.y[b] : delete p.domain.row);
                }
                var x = f("domain.x", c), D = f("domain.y", d);
                x[0] < x[1] || (p.domain.x = c.slice()), D[0] < D[1] || (p.domain.y = d.slice());
              };
            }
          ),
          /***/
          5376: (
            /***/
            function(M) {
              M.exports = function(L) {
                var r = L.variantValues, a = L.editType, p = L.colorEditType;
                p === void 0 && (p = a);
                var l = {
                  editType: a,
                  valType: "integer",
                  min: 1,
                  max: 1e3,
                  extras: ["normal", "bold"],
                  dflt: "normal"
                };
                L.noNumericWeightValues && (l.valType = "enumerated", l.values = l.extras, l.extras = void 0, l.min = void 0, l.max = void 0);
                var f = {
                  family: {
                    valType: "string",
                    noBlank: !0,
                    strict: !0,
                    editType: a
                  },
                  size: {
                    valType: "number",
                    min: 1,
                    editType: a
                  },
                  color: {
                    valType: "color",
                    editType: p
                  },
                  weight: l,
                  style: {
                    editType: a,
                    valType: "enumerated",
                    values: ["normal", "italic"],
                    dflt: "normal"
                  },
                  variant: L.noFontVariant ? void 0 : {
                    editType: a,
                    valType: "enumerated",
                    values: r || ["normal", "small-caps", "all-small-caps", "all-petite-caps", "petite-caps", "unicase"],
                    dflt: "normal"
                  },
                  textcase: L.noFontTextcase ? void 0 : {
                    editType: a,
                    valType: "enumerated",
                    values: ["normal", "word caps", "upper", "lower"],
                    dflt: "normal"
                  },
                  lineposition: L.noFontLineposition ? void 0 : {
                    editType: a,
                    valType: "flaglist",
                    flags: ["under", "over", "through"],
                    extras: ["none"],
                    dflt: "none"
                  },
                  shadow: L.noFontShadow ? void 0 : {
                    editType: a,
                    valType: "string",
                    dflt: L.autoShadowDflt ? "auto" : "none"
                  },
                  editType: a
                  // blank strings so compress_attributes can remove
                  // TODO - that's uber hacky... better solution?
                };
                return L.autoSize && (f.size.dflt = "auto"), L.autoColor && (f.color.dflt = "auto"), L.arrayOk && (f.family.arrayOk = !0, f.weight.arrayOk = !0, f.style.arrayOk = !0, L.noFontVariant || (f.variant.arrayOk = !0), L.noFontTextcase || (f.textcase.arrayOk = !0), L.noFontLineposition || (f.lineposition.arrayOk = !0), L.noFontShadow || (f.shadow.arrayOk = !0), f.size.arrayOk = !0, f.color.arrayOk = !0), f;
              };
            }
          ),
          /***/
          6672: (
            /***/
            function(M) {
              M.exports = {
                _isLinkedToArray: "frames_entry",
                group: {
                  valType: "string"
                },
                name: {
                  valType: "string"
                },
                traces: {
                  valType: "any"
                },
                baseframe: {
                  valType: "string"
                },
                data: {
                  valType: "any"
                },
                layout: {
                  valType: "any"
                }
              };
            }
          ),
          /***/
          4888: (
            /***/
            function(M, L, r) {
              var a = r(4040);
              r(3816).SUBPLOT_PATTERN, L._M = function(p, l, f) {
                var u = [], c = [], d;
                if (typeof l == "string" ? d = a.getModule(l).plot : typeof l == "function" ? d = l : d = l.plot, !d)
                  return [u, p];
                for (var h = f, i = 0; i < p.length; i++) {
                  var b = p[i], x = b[0].trace, D = x.zorder !== void 0;
                  x.visible !== !0 || x._length === 0 || (x._module && x._module.plot === d && (!D || x.zorder === h) ? u.push(b) : c.push(b));
                }
                return [u, c];
              };
            }
          ),
          /***/
          4424: (
            /***/
            function(M) {
              function L(a, p) {
                var l = [0, 0, 0, 0], f, u;
                for (f = 0; f < 4; ++f)
                  for (u = 0; u < 4; ++u)
                    l[u] += a[4 * f + u] * p[f];
                return l;
              }
              function r(a, p) {
                var l = L(a.projection, L(a.view, L(a.model, [p[0], p[1], p[2], 1])));
                return l;
              }
              M.exports = r;
            }
          ),
          /***/
          4859: (
            /***/
            function(M, L, r) {
              var a = r(5376), p = r(5656), l = r(2548), f = r(2872), u = r(4200), c = r(6741), d = r(2880).extendFlat, h = a({
                editType: "calc"
              });
              h.family.dflt = '"Open Sans", verdana, arial, sans-serif', h.size.dflt = 12, h.color.dflt = l.defaultLine, M.exports = {
                font: h,
                title: {
                  text: {
                    valType: "string",
                    editType: "layoutstyle"
                  },
                  font: a({
                    editType: "layoutstyle"
                  }),
                  xref: {
                    valType: "enumerated",
                    dflt: "container",
                    values: ["container", "paper"],
                    editType: "layoutstyle"
                  },
                  yref: {
                    valType: "enumerated",
                    dflt: "container",
                    values: ["container", "paper"],
                    editType: "layoutstyle"
                  },
                  x: {
                    valType: "number",
                    min: 0,
                    max: 1,
                    dflt: 0.5,
                    editType: "layoutstyle"
                  },
                  y: {
                    valType: "number",
                    min: 0,
                    max: 1,
                    dflt: "auto",
                    editType: "layoutstyle"
                  },
                  xanchor: {
                    valType: "enumerated",
                    dflt: "auto",
                    values: ["auto", "left", "center", "right"],
                    editType: "layoutstyle"
                  },
                  yanchor: {
                    valType: "enumerated",
                    dflt: "auto",
                    values: ["auto", "top", "middle", "bottom"],
                    editType: "layoutstyle"
                  },
                  pad: d(c({
                    editType: "layoutstyle"
                  }), {}),
                  automargin: {
                    valType: "boolean",
                    dflt: !1,
                    editType: "plot"
                  },
                  editType: "layoutstyle"
                },
                uniformtext: {
                  mode: {
                    valType: "enumerated",
                    values: [!1, "hide", "show"],
                    dflt: !1,
                    editType: "plot"
                  },
                  minsize: {
                    valType: "number",
                    min: 0,
                    dflt: 0,
                    editType: "plot"
                  },
                  editType: "plot"
                },
                autosize: {
                  valType: "boolean",
                  dflt: !1,
                  // autosize, width, and height get special editType treatment in _relayout
                  // so we can handle noop resizes more efficiently
                  editType: "none"
                },
                width: {
                  valType: "number",
                  min: 10,
                  dflt: 700,
                  editType: "plot"
                },
                height: {
                  valType: "number",
                  min: 10,
                  dflt: 450,
                  editType: "plot"
                },
                minreducedwidth: {
                  valType: "number",
                  min: 2,
                  dflt: 64,
                  editType: "plot"
                },
                minreducedheight: {
                  valType: "number",
                  min: 2,
                  dflt: 64,
                  editType: "plot"
                },
                margin: {
                  l: {
                    valType: "number",
                    min: 0,
                    dflt: 80,
                    editType: "plot"
                  },
                  r: {
                    valType: "number",
                    min: 0,
                    dflt: 80,
                    editType: "plot"
                  },
                  t: {
                    valType: "number",
                    min: 0,
                    dflt: 100,
                    editType: "plot"
                  },
                  b: {
                    valType: "number",
                    min: 0,
                    dflt: 80,
                    editType: "plot"
                  },
                  pad: {
                    valType: "number",
                    min: 0,
                    dflt: 0,
                    editType: "plot"
                  },
                  autoexpand: {
                    valType: "boolean",
                    dflt: !0,
                    editType: "plot"
                  },
                  editType: "plot"
                },
                computed: {
                  valType: "any",
                  editType: "none"
                },
                paper_bgcolor: {
                  valType: "color",
                  dflt: l.background,
                  editType: "plot"
                },
                plot_bgcolor: {
                  // defined here, but set in cartesian.supplyLayoutDefaults
                  // because it needs to know if there are (2D) axes or not
                  valType: "color",
                  dflt: l.background,
                  editType: "layoutstyle"
                },
                autotypenumbers: {
                  valType: "enumerated",
                  values: ["convert types", "strict"],
                  dflt: "convert types",
                  editType: "calc"
                },
                separators: {
                  valType: "string",
                  editType: "plot"
                },
                hidesources: {
                  valType: "boolean",
                  dflt: !1,
                  editType: "plot"
                },
                showlegend: {
                  // handled in legend.supplyLayoutDefaults
                  // but included here because it's not in the legend object
                  valType: "boolean",
                  editType: "legend"
                },
                colorway: {
                  valType: "colorlist",
                  dflt: l.defaults,
                  editType: "calc"
                },
                datarevision: {
                  valType: "any",
                  editType: "calc"
                },
                uirevision: {
                  valType: "any",
                  editType: "none"
                },
                editrevision: {
                  valType: "any",
                  editType: "none"
                },
                selectionrevision: {
                  valType: "any",
                  editType: "none"
                },
                template: {
                  valType: "any",
                  editType: "calc"
                },
                newshape: f.newshape,
                activeshape: f.activeshape,
                newselection: u.newselection,
                activeselection: u.activeselection,
                meta: {
                  valType: "any",
                  arrayOk: !0,
                  editType: "plot"
                },
                transition: d({}, p.transition, {
                  editType: "none"
                }),
                _deprecated: {
                  title: {
                    valType: "string",
                    editType: "layoutstyle"
                  },
                  titlefont: a({
                    editType: "layoutstyle"
                  })
                }
              };
            }
          ),
          /***/
          6741: (
            /***/
            function(M) {
              M.exports = function(L) {
                var r = L.editType;
                return {
                  t: {
                    valType: "number",
                    dflt: 0,
                    editType: r
                  },
                  r: {
                    valType: "number",
                    dflt: 0,
                    editType: r
                  },
                  b: {
                    valType: "number",
                    dflt: 0,
                    editType: r
                  },
                  l: {
                    valType: "number",
                    dflt: 0,
                    editType: r
                  },
                  editType: r
                };
              };
            }
          ),
          /***/
          7316: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(4336).m_, l = r(7624).SO, f = r(8248), u = r(3160), c = r(4040), d = r(3060), h = r(1780), i = r(3400), b = r(6308), x = r(9032).BADNUM, D = r(9811), C = r(1936).clearOutline, w = r(5308), S = r(5656), T = r(6672), k = r(4888)._M, A = i.relinkPrivateKeys, R = i._, g = M.exports = {};
              i.extendFlat(g, c), g.attributes = r(5464), g.attributes.type.values = g.allTypes, g.fontAttrs = r(5376), g.layoutAttributes = r(4859);
              var I = g.transformsRegistry, O = r(2460);
              g.executeAPICommand = O.executeAPICommand, g.computeAPICommandBindings = O.computeAPICommandBindings, g.manageCommandObserver = O.manageCommandObserver, g.hasSimpleAPICommandBindings = O.hasSimpleAPICommandBindings, g.redrawText = function(Z) {
                return Z = i.getGraphDiv(Z), new Promise(function(ee) {
                  setTimeout(function() {
                    Z._fullLayout && (c.getComponentMethod("annotations", "draw")(Z), c.getComponentMethod("legend", "draw")(Z), c.getComponentMethod("colorbar", "draw")(Z), ee(g.previousPromises(Z)));
                  }, 300);
                });
              }, g.resize = function(Z) {
                Z = i.getGraphDiv(Z);
                var ee, ie = new Promise(function(G, H) {
                  (!Z || i.isHidden(Z)) && H(new Error("Resize must be passed a displayed plot div element.")), Z._redrawTimer && clearTimeout(Z._redrawTimer), Z._resolveResize && (ee = Z._resolveResize), Z._resolveResize = G, Z._redrawTimer = setTimeout(function() {
                    if (!Z.layout || Z.layout.width && Z.layout.height || i.isHidden(Z)) {
                      G(Z);
                      return;
                    }
                    delete Z.layout.width, delete Z.layout.height;
                    var ce = Z.changed;
                    Z.autoplay = !0, c.call("relayout", Z, {
                      autosize: !0
                    }).then(function() {
                      Z.changed = ce, Z._resolveResize === G && (delete Z._resolveResize, G(Z));
                    });
                  }, 100);
                });
                return ee && ee(ie), ie;
              }, g.previousPromises = function(Z) {
                if ((Z._promises || []).length)
                  return Promise.all(Z._promises).then(function() {
                    Z._promises = [];
                  });
              }, g.addLinks = function(Z) {
                if (!(!Z._context.showLink && !Z._context.showSources)) {
                  var ee = Z._fullLayout, ie = i.ensureSingle(ee._paper, "text", "js-plot-link-container", function(be) {
                    be.style({
                      "font-family": '"Open Sans", Arial, sans-serif',
                      "font-size": "12px",
                      fill: b.defaultLine,
                      "pointer-events": "all"
                    }).each(function() {
                      var we = a.select(this);
                      we.append("tspan").classed("js-link-to-tool", !0), we.append("tspan").classed("js-link-spacer", !0), we.append("tspan").classed("js-sourcelinks", !0);
                    });
                  }), G = ie.node(), H = {
                    y: ee._paper.attr("height") - 9
                  };
                  document.body.contains(G) && G.getComputedTextLength() >= ee.width - 20 ? (H["text-anchor"] = "start", H.x = 5) : (H["text-anchor"] = "end", H.x = ee._paper.attr("width") - 7), ie.attr(H);
                  var ce = ie.select(".js-link-to-tool"), j = ie.select(".js-link-spacer"), he = ie.select(".js-sourcelinks");
                  Z._context.showSources && Z._context.showSources(Z), Z._context.showLink && $(Z, ce), j.text(ce.text() && he.text() ? " - " : "");
                }
              };
              function $(Z, ee) {
                ee.text("");
                var ie = ee.append("a").attr({
                  "xlink:xlink:href": "#",
                  class: "link--impt link--embedview",
                  "font-weight": "bold"
                }).text(Z._context.linkText + " »");
                if (Z._context.sendData)
                  ie.on("click", function() {
                    g.sendDataToCloud(Z);
                  });
                else {
                  var G = window.location.pathname.split("/"), H = window.location.search;
                  ie.attr({
                    "xlink:xlink:show": "new",
                    "xlink:xlink:href": "/" + G[2].split(".")[0] + "/" + G[1] + H
                  });
                }
              }
              g.sendDataToCloud = function(Z) {
                var ee = (window.PLOTLYENV || {}).BASE_URL || Z._context.plotlyServerURL;
                if (ee) {
                  Z.emit("plotly_beforeexport");
                  var ie = a.select(Z).append("div").attr("id", "hiddenform").style("display", "none"), G = ie.append("form").attr({
                    action: ee + "/external",
                    method: "post",
                    target: "_blank"
                  }), H = G.append("input").attr({
                    type: "text",
                    name: "data"
                  });
                  return H.node().value = g.graphJson(Z, !1, "keepdata"), G.node().submit(), ie.remove(), Z.emit("plotly_afterexport"), !1;
                }
              };
              var Y = ["days", "shortDays", "months", "shortMonths", "periods", "dateTime", "date", "time", "decimal", "thousands", "grouping", "currency"], ne = ["year", "month", "dayMonth", "dayMonthYear"];
              g.supplyDefaults = function(Z, ee) {
                var ie = ee && ee.skipUpdateCalc, G = Z._fullLayout || {};
                if (G._skipDefaults) {
                  delete G._skipDefaults;
                  return;
                }
                var H = Z._fullLayout = {}, ce = Z.layout || {}, j = Z._fullData || [], he = Z._fullData = [], be = Z.data || [], we = Z.calcdata || [], Ie = Z._context || {}, Ge;
                Z._transitionData || g.createTransitionData(Z), H._dfltTitle = {
                  plot: R(Z, "Click to enter Plot title"),
                  x: R(Z, "Click to enter X axis title"),
                  y: R(Z, "Click to enter Y axis title"),
                  colorbar: R(Z, "Click to enter Colorscale title"),
                  annotation: R(Z, "new text")
                }, H._traceWord = R(Z, "trace");
                var Ve = X(Z, Y);
                if (H._mapboxAccessToken = Ie.mapboxAccessToken, G._initialAutoSizeIsDone) {
                  var Je = G.width, et = G.height;
                  g.supplyLayoutGlobalDefaults(ce, H, Ve), ce.width || (H.width = Je), ce.height || (H.height = et), g.sanitizeMargins(H);
                } else {
                  g.supplyLayoutGlobalDefaults(ce, H, Ve);
                  var at = !ce.width || !ce.height, Le = H.autosize, ze = Ie.autosizable, Oe = at && (Le || ze);
                  Oe ? g.plotAutoSize(Z, ce, H) : at && g.sanitizeMargins(H), !Le && at && (ce.width = H.width, ce.height = H.height);
                }
                H._d3locale = U(Ve, H.separators), H._extraFormat = X(Z, ne), H._initialAutoSizeIsDone = !0, H._dataLength = be.length, H._modules = [], H._visibleModules = [], H._basePlotModules = [];
                var Xe = H._subplots = B(), it = H._splomAxes = {
                  x: {},
                  y: {}
                }, ut = H._splomSubplots = {};
                H._splomGridDflt = {}, H._scatterStackOpts = {}, H._firstScatter = {}, H._alignmentOpts = {}, H._colorAxes = {}, H._requestRangeslider = {}, H._traceUids = q(j, be), H._globalTransforms = (Z._context || {}).globalTransforms, g.supplyDataDefaults(be, he, ce, H);
                var wt = Object.keys(it.x), kt = Object.keys(it.y);
                if (wt.length > 1 && kt.length > 1) {
                  for (c.getComponentMethod("grid", "sizeDefaults")(ce, H), Ge = 0; Ge < wt.length; Ge++)
                    i.pushUnique(Xe.xaxis, wt[Ge]);
                  for (Ge = 0; Ge < kt.length; Ge++)
                    i.pushUnique(Xe.yaxis, kt[Ge]);
                  for (var Ot in ut)
                    i.pushUnique(Xe.cartesian, Ot);
                }
                if (H._has = g._hasPlotType.bind(H), j.length === he.length)
                  for (Ge = 0; Ge < he.length; Ge++)
                    A(he[Ge], j[Ge]);
                g.supplyLayoutModuleDefaults(ce, H, he, Z._transitionData);
                var Lt = H._visibleModules, Mt = [];
                for (Ge = 0; Ge < Lt.length; Ge++) {
                  var Ut = Lt[Ge].crossTraceDefaults;
                  Ut && i.pushUnique(Mt, Ut);
                }
                for (Ge = 0; Ge < Mt.length; Ge++)
                  Mt[Ge](he, H);
                H._hasOnlyLargeSploms = H._basePlotModules.length === 1 && H._basePlotModules[0].name === "splom" && wt.length > 15 && kt.length > 15 && H.shapes.length === 0 && H.images.length === 0, g.linkSubplots(he, H, j, G), g.cleanPlot(he, H, j, G);
                var Ct = !!(G._has && G._has("gl2d")), jt = !!(H._has && H._has("gl2d")), nr = !!(G._has && G._has("cartesian")), Jt = !!(H._has && H._has("cartesian")), Wt = nr || Ct, qe = Jt || jt;
                Wt && !qe ? G._bgLayer.remove() : qe && !Wt && (H._shouldCreateBgLayer = !0), G._zoomlayer && !Z._dragging && C({
                  // mock old gd
                  _fullLayout: G
                }), te(he, H), A(H, G), c.getComponentMethod("colorscale", "crossTraceDefaults")(he, H), H._preGUI || (H._preGUI = {}), H._tracePreGUI || (H._tracePreGUI = {});
                var Ue = H._tracePreGUI, We = {}, je;
                for (je in Ue)
                  We[je] = "old";
                for (Ge = 0; Ge < he.length; Ge++)
                  je = he[Ge]._fullInput.uid, We[je] || (Ue[je] = {}), We[je] = "new";
                for (je in We)
                  We[je] === "old" && delete Ue[je];
                ae(H), c.getComponentMethod("rangeslider", "makeData")(H), !ie && we.length === he.length && g.supplyDefaultsUpdateCalc(we, he);
              }, g.supplyDefaultsUpdateCalc = function(Z, ee) {
                for (var ie = 0; ie < ee.length; ie++) {
                  var G = ee[ie], H = (Z[ie] || [])[0];
                  if (H && H.trace) {
                    var ce = H.trace;
                    if (ce._hasCalcTransform) {
                      var j = ce._arrayAttrs, he, be, we;
                      for (he = 0; he < j.length; he++)
                        be = j[he], we = i.nestedProperty(ce, be).get().slice(), i.nestedProperty(G, be).set(we);
                    }
                    H.trace = G;
                  }
                }
              };
              function q(Z, ee) {
                var ie = ee.length, G = [], H, ce;
                for (H = 0; H < Z.length; H++) {
                  var j = Z[H]._fullInput;
                  j !== ce && G.push(j), ce = j;
                }
                var he = G.length, be = new Array(ie), we = {};
                function Ie(Je, et) {
                  be[et] = Je, we[Je] = 1;
                }
                function Ge(Je, et) {
                  if (Je && typeof Je == "string" && !we[Je])
                    return Ie(Je, et), !0;
                }
                for (H = 0; H < ie; H++) {
                  var Ve = ee[H].uid;
                  typeof Ve == "number" && (Ve = String(Ve)), !Ge(Ve, H) && (H < he && Ge(G[H].uid, H) || Ie(i.randstr(we), H));
                }
                return be;
              }
              function B() {
                var Z = c.collectableSubplotTypes, ee = {}, ie, G;
                if (!Z) {
                  Z = [];
                  var H = c.subplotsRegistry;
                  for (var ce in H) {
                    var j = H[ce], he = j.attr;
                    if (he && (Z.push(ce), Array.isArray(he)))
                      for (G = 0; G < he.length; G++)
                        i.pushUnique(Z, he[G]);
                  }
                }
                for (ie = 0; ie < Z.length; ie++)
                  ee[Z[ie]] = [];
                return ee;
              }
              function X(Z, ee) {
                var ie = Z._context.locale;
                ie || (ie = "en-US");
                var G = !1, H = {};
                function ce(Ge) {
                  for (var Ve = !0, Je = 0; Je < ee.length; Je++) {
                    var et = ee[Je];
                    H[et] || (Ge[et] ? H[et] = Ge[et] : Ve = !1);
                  }
                  Ve && (G = !0);
                }
                for (var j = 0; j < 2; j++) {
                  for (var he = Z._context.locales, be = 0; be < 2; be++) {
                    var we = (he[ie] || {}).format;
                    if (we && (ce(we), G))
                      break;
                    he = c.localeRegistry;
                  }
                  var Ie = ie.split("-")[0];
                  if (G || Ie === ie)
                    break;
                  ie = Ie;
                }
                return G || ce(c.localeRegistry.en.format), H;
              }
              function U(Z, ee) {
                return Z.decimal = ee.charAt(0), Z.thousands = ee.charAt(1), {
                  numberFormat: function(ie) {
                    try {
                      ie = l(Z).format(i.adjustFormat(ie));
                    } catch {
                      return i.warnBadFormat(ie), i.noFormat;
                    }
                    return ie;
                  },
                  timeFormat: p(Z).utcFormat
                };
              }
              function te(Z, ee) {
                var ie, G = [];
                ee.meta && (ie = ee._meta = {
                  meta: ee.meta,
                  layout: {
                    meta: ee.meta
                  }
                });
                for (var H = 0; H < Z.length; H++) {
                  var ce = Z[H];
                  ce.meta ? G[ce.index] = ce._meta = {
                    meta: ce.meta
                  } : ee.meta && (ce._meta = {
                    meta: ee.meta
                  }), ee.meta && (ce._meta.layout = {
                    meta: ee.meta
                  });
                }
                G.length && (ie || (ie = ee._meta = {}), ie.data = G);
              }
              g.createTransitionData = function(Z) {
                Z._transitionData || (Z._transitionData = {}), Z._transitionData._frames || (Z._transitionData._frames = []), Z._transitionData._frameHash || (Z._transitionData._frameHash = {}), Z._transitionData._counter || (Z._transitionData._counter = 0), Z._transitionData._interruptCallbacks || (Z._transitionData._interruptCallbacks = []);
              }, g._hasPlotType = function(Z) {
                var ee, ie = this._basePlotModules || [];
                for (ee = 0; ee < ie.length; ee++)
                  if (ie[ee].name === Z)
                    return !0;
                var G = this._modules || [];
                for (ee = 0; ee < G.length; ee++) {
                  var H = G[ee].name;
                  if (H === Z)
                    return !0;
                  var ce = c.modules[H];
                  if (ce && ce.categories[Z])
                    return !0;
                }
                return !1;
              }, g.cleanPlot = function(Z, ee, ie, G) {
                var H, ce, j = G._basePlotModules || [];
                for (H = 0; H < j.length; H++) {
                  var he = j[H];
                  he.clean && he.clean(Z, ee, ie, G);
                }
                var be = G._has && G._has("gl"), we = ee._has && ee._has("gl");
                be && !we && G._glcontainer !== void 0 && (G._glcontainer.selectAll(".gl-canvas").remove(), G._glcontainer.selectAll(".no-webgl").remove(), G._glcanvas = null);
                var Ie = !!G._infolayer;
                e:
                  for (H = 0; H < ie.length; H++) {
                    var Ge = ie[H], Ve = Ge.uid;
                    for (ce = 0; ce < Z.length; ce++) {
                      var Je = Z[ce];
                      if (Ve === Je.uid)
                        continue e;
                    }
                    Ie && G._infolayer.select(".cb" + Ve).remove();
                  }
              }, g.linkSubplots = function(Z, ee, ie, G) {
                var H, ce, j = G._plots || {}, he = ee._plots = {}, be = ee._subplots, we = {
                  _fullData: Z,
                  _fullLayout: ee
                }, Ie = be.cartesian.concat(be.gl2d || []);
                for (H = 0; H < Ie.length; H++) {
                  var Ge = Ie[H], Ve = j[Ge], Je = D.getFromId(we, Ge, "x"), et = D.getFromId(we, Ge, "y"), at;
                  for (Ve ? at = he[Ge] = Ve : (at = he[Ge] = {}, at.id = Ge), Je._counterAxes.push(et._id), et._counterAxes.push(Je._id), Je._subplotsWith.push(Ge), et._subplotsWith.push(Ge), at.xaxis = Je, at.yaxis = et, at._hasClipOnAxisFalse = !1, ce = 0; ce < Z.length; ce++) {
                    var Le = Z[ce];
                    if (Le.xaxis === at.xaxis._id && Le.yaxis === at.yaxis._id && Le.cliponaxis === !1) {
                      at._hasClipOnAxisFalse = !0;
                      break;
                    }
                  }
                }
                var ze = D.list(we, null, !0), Oe;
                for (H = 0; H < ze.length; H++) {
                  Oe = ze[H];
                  var Xe = null;
                  Oe.overlaying && (Xe = D.getFromId(we, Oe.overlaying), Xe && Xe.overlaying && (Oe.overlaying = !1, Xe = null)), Oe._mainAxis = Xe || Oe, Xe && (Oe.domain = Xe.domain.slice()), Oe._anchorAxis = Oe.anchor === "free" ? null : D.getFromId(we, Oe.anchor);
                }
                for (H = 0; H < ze.length; H++)
                  if (Oe = ze[H], Oe._counterAxes.sort(D.idSort), Oe._subplotsWith.sort(i.subplotSort), Oe._mainSubplot = se(Oe, ee), Oe._counterAxes.length && (Oe.spikemode && Oe.spikemode.indexOf("across") !== -1 || Oe.automargin && Oe.mirror && Oe.anchor !== "free" || c.getComponentMethod("rangeslider", "isVisible")(Oe))) {
                    var it = 1, ut = 0;
                    for (ce = 0; ce < Oe._counterAxes.length; ce++) {
                      var wt = D.getFromId(we, Oe._counterAxes[ce]);
                      it = Math.min(it, wt.domain[0]), ut = Math.max(ut, wt.domain[1]);
                    }
                    it < ut && (Oe._counterDomainMin = it, Oe._counterDomainMax = ut);
                  }
              };
              function se(Z, ee) {
                var ie = {
                  _fullLayout: ee
                }, G = Z._id.charAt(0) === "x", H = Z._mainAxis._anchorAxis, ce = "", j = "", he = "";
                if (H && (he = H._mainAxis._id, ce = G ? Z._id + he : he + Z._id), !ce || !ee._plots[ce]) {
                  ce = "";
                  for (var be = Z._counterAxes, we = 0; we < be.length; we++) {
                    var Ie = be[we], Ge = G ? Z._id + Ie : Ie + Z._id;
                    j || (j = Ge);
                    var Ve = D.getFromId(ie, Ie);
                    if (he && Ve.overlaying === he) {
                      ce = Ge;
                      break;
                    }
                  }
                }
                return ce || j;
              }
              g.clearExpandedTraceDefaultColors = function(Z) {
                var ee, ie, G;
                function H(j, he, be, we) {
                  ie[we] = he, ie.length = we + 1, j.valType === "color" && j.dflt === void 0 && ee.push(ie.join("."));
                }
                for (ie = [], ee = Z._module._colorAttrs, ee || (Z._module._colorAttrs = ee = [], d.crawl(Z._module.attributes, H)), G = 0; G < ee.length; G++) {
                  var ce = i.nestedProperty(Z, "_input." + ee[G]);
                  ce.get() || i.nestedProperty(Z, ee[G]).set(null);
                }
              }, g.supplyDataDefaults = function(Z, ee, ie, G) {
                var H = G._modules, ce = G._visibleModules, j = G._basePlotModules, he = 0, be = 0, we, Ie, Ge;
                G._transformModules = [];
                function Ve(kt) {
                  ee.push(kt);
                  var Ot = kt._module;
                  Ot && (i.pushUnique(H, Ot), kt.visible === !0 && i.pushUnique(ce, Ot), i.pushUnique(j, kt._module.basePlotModule), he++, kt._input.visible !== !1 && be++);
                }
                var Je = {}, et = [], at = (ie.template || {}).data || {}, Le = h.traceTemplater(at);
                for (we = 0; we < Z.length; we++) {
                  if (Ge = Z[we], Ie = Le.newTrace(Ge), Ie.uid = G._traceUids[we], g.supplyTraceDefaults(Ge, Ie, be, G, we), Ie.index = we, Ie._input = Ge, Ie._expandedIndex = he, Ie.transforms && Ie.transforms.length)
                    for (var ze = Ge.visible !== !1 && Ie.visible === !1, Oe = J(Ie, ee, ie, G), Xe = 0; Xe < Oe.length; Xe++) {
                      var it = Oe[Xe], ut = {
                        _template: Ie._template,
                        type: Ie.type,
                        // set uid using parent uid and expanded index
                        // to promote consistency between update calls
                        uid: Ie.uid + Xe
                      };
                      ze && it.visible === !1 && delete it.visible, g.supplyTraceDefaults(it, ut, he, G, we), A(ut, it), ut.index = we, ut._input = Ge, ut._fullInput = Ie, ut._expandedIndex = he, ut._expandedInput = it, Ve(ut);
                    }
                  else
                    Ie._fullInput = Ie, Ie._expandedInput = Ie, Ve(Ie);
                  c.traceIs(Ie, "carpetAxis") && (Je[Ie.carpet] = Ie), c.traceIs(Ie, "carpetDependent") && et.push(we);
                }
                for (we = 0; we < et.length; we++)
                  if (Ie = ee[et[we]], !!Ie.visible) {
                    var wt = Je[Ie.carpet];
                    if (Ie._carpet = wt, !wt || !wt.visible) {
                      Ie.visible = !1;
                      continue;
                    }
                    Ie.xaxis = wt.xaxis, Ie.yaxis = wt.yaxis;
                  }
              }, g.supplyAnimationDefaults = function(Z) {
                Z = Z || {};
                var ee, ie = {};
                function G(H, ce) {
                  return i.coerce(Z || {}, ie, S, H, ce);
                }
                if (G("mode"), G("direction"), G("fromcurrent"), Array.isArray(Z.frame))
                  for (ie.frame = [], ee = 0; ee < Z.frame.length; ee++)
                    ie.frame[ee] = g.supplyAnimationFrameDefaults(Z.frame[ee] || {});
                else
                  ie.frame = g.supplyAnimationFrameDefaults(Z.frame || {});
                if (Array.isArray(Z.transition))
                  for (ie.transition = [], ee = 0; ee < Z.transition.length; ee++)
                    ie.transition[ee] = g.supplyAnimationTransitionDefaults(Z.transition[ee] || {});
                else
                  ie.transition = g.supplyAnimationTransitionDefaults(Z.transition || {});
                return ie;
              }, g.supplyAnimationFrameDefaults = function(Z) {
                var ee = {};
                function ie(G, H) {
                  return i.coerce(Z || {}, ee, S.frame, G, H);
                }
                return ie("duration"), ie("redraw"), ee;
              }, g.supplyAnimationTransitionDefaults = function(Z) {
                var ee = {};
                function ie(G, H) {
                  return i.coerce(Z || {}, ee, S.transition, G, H);
                }
                return ie("duration"), ie("easing"), ee;
              }, g.supplyFrameDefaults = function(Z) {
                var ee = {};
                function ie(G, H) {
                  return i.coerce(Z, ee, T, G, H);
                }
                return ie("group"), ie("name"), ie("traces"), ie("baseframe"), ie("data"), ie("layout"), ee;
              }, g.supplyTraceDefaults = function(Z, ee, ie, G, H) {
                var ce = G.colorway || b.defaults, j = ce[ie % ce.length], he;
                function be(Xe, it) {
                  return i.coerce(Z, ee, g.attributes, Xe, it);
                }
                var we = be("visible");
                be("type"), be("name", G._traceWord + " " + H), be("uirevision", G.uirevision);
                var Ie = g.getModule(ee);
                if (ee._module = Ie, Ie) {
                  var Ge = Ie.basePlotModule, Ve = Ge.attr, Je = Ge.attributes;
                  if (Ve && Je) {
                    var et = G._subplots, at = "";
                    if (we || Ge.name !== "gl2d") {
                      if (Array.isArray(Ve))
                        for (he = 0; he < Ve.length; he++) {
                          var Le = Ve[he], ze = i.coerce(Z, ee, Je, Le);
                          et[Le] && i.pushUnique(et[Le], ze), at += ze;
                        }
                      else
                        at = i.coerce(Z, ee, Je, Ve);
                      et[Ge.name] && i.pushUnique(et[Ge.name], at);
                    }
                  }
                }
                if (we) {
                  if (be("customdata"), be("ids"), be("meta"), c.traceIs(ee, "showLegend") ? (i.coerce(Z, ee, Ie.attributes.showlegend ? Ie.attributes : g.attributes, "showlegend"), be("legend"), be("legendwidth"), be("legendgroup"), be("legendgrouptitle.text"), be("legendrank"), ee._dfltShowLegend = !0) : ee._dfltShowLegend = !1, Ie && Ie.supplyDefaults(Z, ee, j, G), c.traceIs(ee, "noOpacity") || be("opacity"), c.traceIs(ee, "notLegendIsolatable") && (ee.visible = !!ee.visible), c.traceIs(ee, "noHover") || (ee.hovertemplate || i.coerceHoverinfo(Z, ee, G), ee.type !== "parcats" && c.getComponentMethod("fx", "supplyDefaults")(Z, ee, j, G)), Ie && Ie.selectPoints) {
                    var Oe = be("selectedpoints");
                    i.isTypedArray(Oe) && (ee.selectedpoints = Array.from(Oe));
                  }
                  g.supplyTransformDefaults(Z, ee, G);
                }
                return ee;
              };
              function me(Z) {
                var ee = Z.transforms;
                if (Array.isArray(ee) && ee.length)
                  for (var ie = 0; ie < ee.length; ie++) {
                    var G = ee[ie], H = G._module || I[G.type];
                    if (H && H.makesData)
                      return !0;
                  }
                return !1;
              }
              g.hasMakesDataTransform = me, g.supplyTransformDefaults = function(Z, ee, ie) {
                if (ee._length || me(Z)) {
                  var G = ie._globalTransforms || [], H = ie._transformModules || [];
                  if (!(!Array.isArray(Z.transforms) && G.length === 0))
                    for (var ce = Z.transforms || [], j = G.concat(ce), he = ee.transforms = [], be = 0; be < j.length; be++) {
                      var we = j[be], Ie = we.type, Ge = I[Ie], Ve, Je = !(we._module && we._module === Ge), et = Ge && typeof Ge.transform == "function";
                      Ge || i.warn("Unrecognized transform type " + Ie + "."), Ge && Ge.supplyDefaults && (Je || et) ? (Ve = Ge.supplyDefaults(we, ee, ie, Z), Ve.type = Ie, Ve._module = Ge, i.pushUnique(H, Ge)) : Ve = i.extendFlat({}, we), he.push(Ve);
                    }
                }
              };
              function J(Z, ee, ie, G) {
                for (var H = Z.transforms, ce = [Z], j = 0; j < H.length; j++) {
                  var he = H[j], be = I[he.type];
                  be && be.transform && (ce = be.transform(ce, {
                    transform: he,
                    fullTrace: Z,
                    fullData: ee,
                    layout: ie,
                    fullLayout: G,
                    transformIndex: j
                  }));
                }
                return ce;
              }
              g.supplyLayoutGlobalDefaults = function(Z, ee, ie) {
                function G(Ge, Ve) {
                  return i.coerce(Z, ee, g.layoutAttributes, Ge, Ve);
                }
                var H = Z.template;
                i.isPlainObject(H) && (ee.template = H, ee._template = H.layout, ee._dataTemplate = H.data), G("autotypenumbers");
                var ce = i.coerceFont(G, "font"), j = ce.size;
                i.coerceFont(G, "title.font", ce, {
                  overrideDflt: {
                    size: Math.round(j * 1.4)
                  }
                }), G("title.text", ee._dfltTitle.plot), G("title.xref");
                var he = G("title.yref");
                G("title.pad.t"), G("title.pad.r"), G("title.pad.b"), G("title.pad.l");
                var be = G("title.automargin");
                G("title.x"), G("title.xanchor"), G("title.y"), G("title.yanchor"), be && (he === "paper" && (ee.title.y !== 0 && (ee.title.y = 1), ee.title.yanchor === "auto" && (ee.title.yanchor = ee.title.y === 0 ? "top" : "bottom")), he === "container" && (ee.title.y === "auto" && (ee.title.y = 1), ee.title.yanchor === "auto" && (ee.title.yanchor = ee.title.y < 0.5 ? "bottom" : "top")));
                var we = G("uniformtext.mode");
                we && G("uniformtext.minsize"), G("autosize", !(Z.width && Z.height)), G("width"), G("height"), G("minreducedwidth"), G("minreducedheight"), G("margin.l"), G("margin.r"), G("margin.t"), G("margin.b"), G("margin.pad"), G("margin.autoexpand"), Z.width && Z.height && g.sanitizeMargins(ee), c.getComponentMethod("grid", "sizeDefaults")(Z, ee), G("paper_bgcolor"), G("separators", ie.decimal + ie.thousands), G("hidesources"), G("colorway"), G("datarevision");
                var Ie = G("uirevision");
                G("editrevision", Ie), G("selectionrevision", Ie), c.getComponentMethod("modebar", "supplyLayoutDefaults")(Z, ee), c.getComponentMethod("shapes", "supplyDrawNewShapeDefaults")(Z, ee, G), c.getComponentMethod("selections", "supplyDrawNewSelectionDefaults")(Z, ee, G), G("meta"), i.isPlainObject(Z.transition) && (G("transition.duration"), G("transition.easing"), G("transition.ordering")), c.getComponentMethod("calendars", "handleDefaults")(Z, ee, "calendar"), c.getComponentMethod("fx", "supplyLayoutGlobalDefaults")(Z, ee, G), i.coerce(Z, ee, w, "scattermode");
              };
              function W(Z) {
                return typeof Z == "string" && Z.substr(Z.length - 2) === "px" && parseFloat(Z);
              }
              g.plotAutoSize = function(ee, ie, G) {
                var H = ee._context || {}, ce = H.frameMargins, j, he, be = i.isPlotDiv(ee);
                if (be && ee.emit("plotly_autosize"), H.fillFrame)
                  j = window.innerWidth, he = window.innerHeight, document.body.style.overflow = "hidden";
                else {
                  var we = be ? window.getComputedStyle(ee) : {};
                  if (j = W(we.width) || W(we.maxWidth) || G.width, he = W(we.height) || W(we.maxHeight) || G.height, f(ce) && ce > 0) {
                    var Ie = 1 - 2 * ce;
                    j = Math.round(Ie * j), he = Math.round(Ie * he);
                  }
                }
                var Ge = g.layoutAttributes.width.min, Ve = g.layoutAttributes.height.min;
                j < Ge && (j = Ge), he < Ve && (he = Ve);
                var Je = !ie.width && Math.abs(G.width - j) > 1, et = !ie.height && Math.abs(G.height - he) > 1;
                (et || Je) && (Je && (G.width = j), et && (G.height = he)), ee._initialAutoSize || (ee._initialAutoSize = {
                  width: j,
                  height: he
                }), g.sanitizeMargins(G);
              }, g.supplyLayoutModuleDefaults = function(Z, ee, ie, G) {
                var H = c.componentsRegistry, ce = ee._basePlotModules, j, he, be, we = c.subplotsRegistry.cartesian;
                for (j in H)
                  be = H[j], be.includeBasePlot && be.includeBasePlot(Z, ee);
                ce.length || ce.push(we), ee._has("cartesian") && (c.getComponentMethod("grid", "contentDefaults")(Z, ee), we.finalizeSubplots(Z, ee));
                for (var Ie in ee._subplots)
                  ee._subplots[Ie].sort(i.subplotSort);
                for (he = 0; he < ce.length; he++)
                  be = ce[he], be.supplyLayoutDefaults && be.supplyLayoutDefaults(Z, ee, ie);
                var Ge = ee._modules;
                for (he = 0; he < Ge.length; he++)
                  be = Ge[he], be.supplyLayoutDefaults && be.supplyLayoutDefaults(Z, ee, ie);
                var Ve = ee._transformModules;
                for (he = 0; he < Ve.length; he++)
                  be = Ve[he], be.supplyLayoutDefaults && be.supplyLayoutDefaults(Z, ee, ie, G);
                for (j in H)
                  be = H[j], be.supplyLayoutDefaults && be.supplyLayoutDefaults(Z, ee, ie);
              }, g.purge = function(Z) {
                var ee = Z._fullLayout || {};
                ee._glcontainer !== void 0 && (ee._glcontainer.selectAll(".gl-canvas").remove(), ee._glcontainer.remove(), ee._glcanvas = null), ee._modeBar && ee._modeBar.destroy(), Z._transitionData && (Z._transitionData._interruptCallbacks && (Z._transitionData._interruptCallbacks.length = 0), Z._transitionData._animationRaf && window.cancelAnimationFrame(Z._transitionData._animationRaf)), i.clearThrottle(), i.clearResponsive(Z), delete Z.data, delete Z.layout, delete Z._fullData, delete Z._fullLayout, delete Z.calcdata, delete Z.empty, delete Z.fid, delete Z.undoqueue, delete Z.undonum, delete Z.autoplay, delete Z.changed, delete Z._promises, delete Z._redrawTimer, delete Z._hmlumcount, delete Z._hmpixcount, delete Z._transitionData, delete Z._transitioning, delete Z._initialAutoSize, delete Z._transitioningWithDuration, delete Z._dragging, delete Z._dragged, delete Z._dragdata, delete Z._hoverdata, delete Z._snapshotInProgress, delete Z._editing, delete Z._mouseDownTime, delete Z._legendMouseDownTime, Z.removeAllListeners && Z.removeAllListeners();
              }, g.style = function(Z) {
                var ee = Z._fullLayout._visibleModules, ie = [], G;
                for (G = 0; G < ee.length; G++) {
                  var H = ee[G];
                  H.style && i.pushUnique(ie, H.style);
                }
                for (G = 0; G < ie.length; G++)
                  ie[G](Z);
              }, g.sanitizeMargins = function(Z) {
                if (!(!Z || !Z.margin)) {
                  var ee = Z.width, ie = Z.height, G = Z.margin, H = ee - (G.l + G.r), ce = ie - (G.t + G.b), j;
                  H < 0 && (j = (ee - 1) / (G.l + G.r), G.l = Math.floor(j * G.l), G.r = Math.floor(j * G.r)), ce < 0 && (j = (ie - 1) / (G.t + G.b), G.t = Math.floor(j * G.t), G.b = Math.floor(j * G.b));
                }
              }, g.clearAutoMarginIds = function(Z) {
                Z._fullLayout._pushmarginIds = {};
              }, g.allowAutoMargin = function(Z, ee) {
                Z._fullLayout._pushmarginIds[ee] = 1;
              };
              function ae(Z) {
                var ee = Z.margin;
                if (!Z._size) {
                  var ie = Z._size = {
                    l: Math.round(ee.l),
                    r: Math.round(ee.r),
                    t: Math.round(ee.t),
                    b: Math.round(ee.b),
                    p: Math.round(ee.pad)
                  };
                  ie.w = Math.round(Z.width) - ie.l - ie.r, ie.h = Math.round(Z.height) - ie.t - ie.b;
                }
                Z._pushmargin || (Z._pushmargin = {}), Z._pushmarginIds || (Z._pushmarginIds = {}), Z._reservedMargin || (Z._reservedMargin = {});
              }
              var oe = 2, ve = 2;
              g.autoMargin = function(Z, ee, ie) {
                var G = Z._fullLayout, H = G.width, ce = G.height, j = G.margin, he = G.minreducedwidth, be = G.minreducedheight, we = i.constrain(H - j.l - j.r, oe, he), Ie = i.constrain(ce - j.t - j.b, ve, be), Ge = Math.max(0, H - we), Ve = Math.max(0, ce - Ie), Je = G._pushmargin, et = G._pushmarginIds;
                if (j.autoexpand !== !1) {
                  if (!ie)
                    delete Je[ee], delete et[ee];
                  else {
                    var at = ie.pad;
                    if (at === void 0 && (at = Math.min(12, j.l, j.r, j.t, j.b)), Ge) {
                      var Le = (ie.l + ie.r) / Ge;
                      Le > 1 && (ie.l /= Le, ie.r /= Le);
                    }
                    if (Ve) {
                      var ze = (ie.t + ie.b) / Ve;
                      ze > 1 && (ie.t /= ze, ie.b /= ze);
                    }
                    var Oe = ie.xl !== void 0 ? ie.xl : ie.x, Xe = ie.xr !== void 0 ? ie.xr : ie.x, it = ie.yt !== void 0 ? ie.yt : ie.y, ut = ie.yb !== void 0 ? ie.yb : ie.y;
                    Je[ee] = {
                      l: {
                        val: Oe,
                        size: ie.l + at
                      },
                      r: {
                        val: Xe,
                        size: ie.r + at
                      },
                      b: {
                        val: ut,
                        size: ie.b + at
                      },
                      t: {
                        val: it,
                        size: ie.t + at
                      }
                    }, et[ee] = 1;
                  }
                  if (!G._replotting)
                    return g.doAutoMargin(Z);
                }
              };
              function fe(Z) {
                if ("_redrawFromAutoMarginCount" in Z._fullLayout)
                  return !1;
                var ee = D.list(Z, "", !0);
                for (var ie in ee)
                  if (ee[ie].autoshift || ee[ie].shift)
                    return !0;
                return !1;
              }
              g.doAutoMargin = function(Z) {
                var ee = Z._fullLayout, ie = ee.width, G = ee.height;
                ee._size || (ee._size = {}), ae(ee);
                var H = ee._size, ce = ee.margin, j = {
                  t: 0,
                  b: 0,
                  l: 0,
                  r: 0
                }, he = i.extendFlat({}, H), be = ce.l, we = ce.r, Ie = ce.t, Ge = ce.b, Ve = ee._pushmargin, Je = ee._pushmarginIds, et = ee.minreducedwidth, at = ee.minreducedheight;
                if (ce.autoexpand !== !1) {
                  for (var Le in Ve)
                    Je[Le] || delete Ve[Le];
                  var ze = Z._fullLayout._reservedMargin;
                  for (var Oe in ze)
                    for (var Xe in ze[Oe]) {
                      var it = ze[Oe][Xe];
                      j[Xe] = Math.max(j[Xe], it);
                    }
                  Ve.base = {
                    l: {
                      val: 0,
                      size: be
                    },
                    r: {
                      val: 1,
                      size: we
                    },
                    t: {
                      val: 1,
                      size: Ie
                    },
                    b: {
                      val: 0,
                      size: Ge
                    }
                  };
                  for (var ut in j) {
                    var wt = 0;
                    for (var kt in Ve)
                      kt !== "base" && f(Ve[kt][ut].size) && (wt = Ve[kt][ut].size > wt ? Ve[kt][ut].size : wt);
                    var Ot = Math.max(0, ce[ut] - wt);
                    j[ut] = Math.max(0, j[ut] - Ot);
                  }
                  for (var Lt in Ve) {
                    var Mt = Ve[Lt].l || {}, Ut = Ve[Lt].b || {}, Ct = Mt.val, jt = Mt.size, nr = Ut.val, Jt = Ut.size, Wt = ie - j.r - j.l, qe = G - j.t - j.b;
                    for (var Ue in Ve) {
                      if (f(jt) && Ve[Ue].r) {
                        var We = Ve[Ue].r.val, je = Ve[Ue].r.size;
                        if (We > Ct) {
                          var lt = (jt * We + (je - Wt) * Ct) / (We - Ct), Se = (je * (1 - Ct) + (jt - Wt) * (1 - We)) / (We - Ct);
                          lt + Se > be + we && (be = lt, we = Se);
                        }
                      }
                      if (f(Jt) && Ve[Ue].t) {
                        var Pe = Ve[Ue].t.val, Ye = Ve[Ue].t.size;
                        if (Pe > nr) {
                          var Ze = (Jt * Pe + (Ye - qe) * nr) / (Pe - nr), rt = (Ye * (1 - nr) + (Jt - qe) * (1 - Pe)) / (Pe - nr);
                          Ze + rt > Ge + Ie && (Ge = Ze, Ie = rt);
                        }
                      }
                    }
                  }
                }
                var tt = i.constrain(ie - ce.l - ce.r, oe, et), Ft = i.constrain(G - ce.t - ce.b, ve, at), Dt = Math.max(0, ie - tt), dt = Math.max(0, G - Ft);
                if (Dt) {
                  var st = (be + we) / Dt;
                  st > 1 && (be /= st, we /= st);
                }
                if (dt) {
                  var Nt = (Ge + Ie) / dt;
                  Nt > 1 && (Ge /= Nt, Ie /= Nt);
                }
                if (H.l = Math.round(be) + j.l, H.r = Math.round(we) + j.r, H.t = Math.round(Ie) + j.t, H.b = Math.round(Ge) + j.b, H.p = Math.round(ce.pad), H.w = Math.round(ie) - H.l - H.r, H.h = Math.round(G) - H.t - H.b, !ee._replotting && (g.didMarginChange(he, H) || fe(Z))) {
                  "_redrawFromAutoMarginCount" in ee ? ee._redrawFromAutoMarginCount++ : ee._redrawFromAutoMarginCount = 1;
                  var ar = 3 * (1 + Object.keys(Je).length);
                  if (ee._redrawFromAutoMarginCount < ar)
                    return c.call("_doPlot", Z);
                  ee._size = he, i.warn("Too many auto-margin redraws.");
                }
                ye(Z);
              };
              function ye(Z) {
                var ee = D.list(Z, "", !0);
                ["_adjustTickLabelsOverflow", "_hideCounterAxisInsideTickLabels"].forEach(function(ie) {
                  for (var G = 0; G < ee.length; G++) {
                    var H = ee[G][ie];
                    H && H();
                  }
                });
              }
              var Ce = ["l", "r", "t", "b", "p", "w", "h"];
              g.didMarginChange = function(Z, ee) {
                for (var ie = 0; ie < Ce.length; ie++) {
                  var G = Ce[ie], H = Z[G], ce = ee[G];
                  if (!f(H) || Math.abs(ce - H) > 1)
                    return !0;
                }
                return !1;
              }, g.graphJson = function(Z, ee, ie, G, H, ce) {
                (H && ee && !Z._fullData || H && !ee && !Z._fullLayout) && g.supplyDefaults(Z);
                var j = H ? Z._fullData : Z.data, he = H ? Z._fullLayout : Z.layout, be = (Z._transitionData || {})._frames;
                function we(Ve, Je) {
                  if (typeof Ve == "function")
                    return Je ? "_function_" : null;
                  if (i.isPlainObject(Ve)) {
                    var et = {}, at;
                    return Object.keys(Ve).sort().forEach(function(Xe) {
                      if (["_", "["].indexOf(Xe.charAt(0)) === -1) {
                        if (typeof Ve[Xe] == "function") {
                          Je && (et[Xe] = "_function");
                          return;
                        }
                        if (ie === "keepdata") {
                          if (Xe.substr(Xe.length - 3) === "src")
                            return;
                        } else if (ie === "keepstream") {
                          if (at = Ve[Xe + "src"], typeof at == "string" && at.indexOf(":") > 0 && !i.isPlainObject(Ve.stream))
                            return;
                        } else if (ie !== "keepall" && (at = Ve[Xe + "src"], typeof at == "string" && at.indexOf(":") > 0))
                          return;
                        et[Xe] = we(Ve[Xe], Je);
                      }
                    }), et;
                  }
                  var Le = Array.isArray(Ve), ze = i.isTypedArray(Ve);
                  if ((Le || ze) && Ve.dtype && Ve.shape) {
                    var Oe = Ve.bdata;
                    return we({
                      dtype: Ve.dtype,
                      shape: Ve.shape,
                      bdata: (
                        // case of ArrayBuffer
                        i.isArrayBuffer(Oe) ? u.encode(Oe) : (
                          // case of b64 string
                          Oe
                        )
                      )
                    }, Je);
                  }
                  return Le ? Ve.map(function(Xe) {
                    return we(Xe, Je);
                  }) : ze ? i.simpleMap(Ve, i.identity) : i.isJSDate(Ve) ? i.ms2DateTimeLocal(+Ve) : Ve;
                }
                var Ie = {
                  data: (j || []).map(function(Ve) {
                    var Je = we(Ve);
                    return ee && delete Je.fit, Je;
                  })
                };
                if (!ee && (Ie.layout = we(he), H)) {
                  var Ge = he._size;
                  Ie.layout.computed = {
                    margin: {
                      b: Ge.b,
                      l: Ge.l,
                      r: Ge.r,
                      t: Ge.t
                    }
                  };
                }
                return be && (Ie.frames = we(be)), ce && (Ie.config = we(Z._context, !0)), G === "object" ? Ie : JSON.stringify(Ie);
              }, g.modifyFrames = function(Z, ee) {
                var ie, G, H, ce = Z._transitionData._frames, j = Z._transitionData._frameHash;
                for (ie = 0; ie < ee.length; ie++)
                  switch (G = ee[ie], G.type) {
                    case "replace":
                      H = G.value;
                      var he = (ce[G.index] || {}).name, be = H.name;
                      ce[G.index] = j[be] = H, be !== he && (delete j[he], j[be] = H);
                      break;
                    case "insert":
                      H = G.value, j[H.name] = H, ce.splice(G.index, 0, H);
                      break;
                    case "delete":
                      H = ce[G.index], delete j[H.name], ce.splice(G.index, 1);
                      break;
                  }
                return Promise.resolve();
              }, g.computeFrame = function(Z, ee) {
                var ie = Z._transitionData._frameHash, G, H, ce, j;
                if (!ee)
                  throw new Error("computeFrame must be given a string frame name");
                var he = ie[ee.toString()];
                if (!he)
                  return !1;
                for (var be = [he], we = [he.name]; he.baseframe && (he = ie[he.baseframe.toString()]) && we.indexOf(he.name) === -1; )
                  be.push(he), we.push(he.name);
                for (var Ie = {}; he = be.pop(); )
                  if (he.layout && (Ie.layout = g.extendLayout(Ie.layout, he.layout)), he.data) {
                    if (Ie.data || (Ie.data = []), H = he.traces, !H)
                      for (H = [], G = 0; G < he.data.length; G++)
                        H[G] = G;
                    for (Ie.traces || (Ie.traces = []), G = 0; G < he.data.length; G++)
                      ce = H[G], ce != null && (j = Ie.traces.indexOf(ce), j === -1 && (j = Ie.data.length, Ie.traces[j] = ce), Ie.data[j] = g.extendTrace(Ie.data[j], he.data[G]));
                  }
                return Ie;
              }, g.recomputeFrameHash = function(Z) {
                for (var ee = Z._transitionData._frameHash = {}, ie = Z._transitionData._frames, G = 0; G < ie.length; G++) {
                  var H = ie[G];
                  H && H.name && (ee[H.name] = H);
                }
              }, g.extendObjectWithContainers = function(Z, ee, ie) {
                var G, H, ce, j, he, be, we, Ie, Ge = i.extendDeepNoArrays({}, ee || {}), Ve = i.expandObjectPaths(Ge), Je = {};
                if (ie && ie.length)
                  for (ce = 0; ce < ie.length; ce++)
                    G = i.nestedProperty(Ve, ie[ce]), H = G.get(), H === void 0 ? i.nestedProperty(Je, ie[ce]).set(null) : (G.set(null), i.nestedProperty(Je, ie[ce]).set(H));
                if (Z = i.extendDeepNoArrays(Z || {}, Ve), ie && ie.length) {
                  for (ce = 0; ce < ie.length; ce++)
                    if (he = i.nestedProperty(Je, ie[ce]), we = he.get(), !!we) {
                      for (be = i.nestedProperty(Z, ie[ce]), Ie = be.get(), Array.isArray(Ie) || (Ie = [], be.set(Ie)), j = 0; j < we.length; j++) {
                        var et = we[j];
                        et === null ? Ie[j] = null : Ie[j] = g.extendObjectWithContainers(Ie[j], et);
                      }
                      be.set(Ie);
                    }
                }
                return Z;
              }, g.dataArrayContainers = ["transforms", "dimensions"], g.layoutArrayContainers = c.layoutArrayContainers, g.extendTrace = function(Z, ee) {
                return g.extendObjectWithContainers(Z, ee, g.dataArrayContainers);
              }, g.extendLayout = function(Z, ee) {
                return g.extendObjectWithContainers(Z, ee, g.layoutArrayContainers);
              }, g.transition = function(Z, ee, ie, G, H, ce) {
                var j = {
                  redraw: H.redraw
                }, he = {}, be = [];
                return j.prepareFn = function() {
                  for (var we = Array.isArray(ee) ? ee.length : 0, Ie = G.slice(0, we), Ge = 0; Ge < Ie.length; Ge++) {
                    var Ve = Ie[Ge], Je = Z._fullData[Ve], et = Je._module;
                    if (et) {
                      if (et.animatable) {
                        var at = et.basePlotModule.name;
                        he[at] || (he[at] = []), he[at].push(Ve);
                      }
                      Z.data[Ie[Ge]] = g.extendTrace(Z.data[Ie[Ge]], ee[Ge]);
                    }
                  }
                  var Le = i.expandObjectPaths(i.extendDeepNoArrays({}, ie)), ze = /^[xy]axis[0-9]*$/;
                  for (var Oe in Le)
                    ze.test(Oe) && delete Le[Oe].range;
                  g.extendLayout(Z.layout, Le), delete Z.calcdata, g.supplyDefaults(Z), g.doCalcdata(Z);
                  var Xe = i.expandObjectPaths(ie);
                  if (Xe) {
                    var it = Z._fullLayout._plots;
                    for (var ut in it) {
                      var wt = it[ut], kt = wt.xaxis, Ot = wt.yaxis, Lt = kt.range.slice(), Mt = Ot.range.slice(), Ut = null, Ct = null, jt = null, nr = null;
                      Array.isArray(Xe[kt._name + ".range"]) ? Ut = Xe[kt._name + ".range"].slice() : Array.isArray((Xe[kt._name] || {}).range) && (Ut = Xe[kt._name].range.slice()), Array.isArray(Xe[Ot._name + ".range"]) ? Ct = Xe[Ot._name + ".range"].slice() : Array.isArray((Xe[Ot._name] || {}).range) && (Ct = Xe[Ot._name].range.slice()), Lt && Ut && (kt.r2l(Lt[0]) !== kt.r2l(Ut[0]) || kt.r2l(Lt[1]) !== kt.r2l(Ut[1])) && (jt = {
                        xr0: Lt,
                        xr1: Ut
                      }), Mt && Ct && (Ot.r2l(Mt[0]) !== Ot.r2l(Ct[0]) || Ot.r2l(Mt[1]) !== Ot.r2l(Ct[1])) && (nr = {
                        yr0: Mt,
                        yr1: Ct
                      }), (jt || nr) && be.push(i.extendFlat({
                        plotinfo: wt
                      }, jt, nr));
                    }
                  }
                  return Promise.resolve();
                }, j.runFn = function(we) {
                  var Ie, Ge = Z._fullLayout._basePlotModules, Ve = be.length, Je;
                  if (ie)
                    for (Je = 0; Je < Ge.length; Je++)
                      Ge[Je].transitionAxes && Ge[Je].transitionAxes(Z, be, ce, we);
                  Ve ? (Ie = i.extendFlat({}, ce), Ie.duration = 0, delete he.cartesian) : Ie = ce;
                  for (var et in he) {
                    var at = he[et], Le = Z._fullData[at[0]]._module;
                    Le.basePlotModule.plot(Z, at, Ie, we);
                  }
                }, Re(Z, ce, j);
              }, g.transitionFromReact = function(Z, ee, ie, G) {
                var H = Z._fullLayout, ce = H.transition, j = {}, he = [];
                return j.prepareFn = function() {
                  var be = H._plots;
                  j.redraw = !1, ee.anim === "some" && (j.redraw = !0), ie.anim === "some" && (j.redraw = !0);
                  for (var we in be) {
                    var Ie = be[we], Ge = Ie.xaxis, Ve = Ie.yaxis, Je = G[Ge._name].range.slice(), et = G[Ve._name].range.slice(), at = Ge.range.slice(), Le = Ve.range.slice();
                    Ge.setScale(), Ve.setScale();
                    var ze = null, Oe = null;
                    (Ge.r2l(Je[0]) !== Ge.r2l(at[0]) || Ge.r2l(Je[1]) !== Ge.r2l(at[1])) && (ze = {
                      xr0: Je,
                      xr1: at
                    }), (Ve.r2l(et[0]) !== Ve.r2l(Le[0]) || Ve.r2l(et[1]) !== Ve.r2l(Le[1])) && (Oe = {
                      yr0: et,
                      yr1: Le
                    }), (ze || Oe) && he.push(i.extendFlat({
                      plotinfo: Ie
                    }, ze, Oe));
                  }
                  return Promise.resolve();
                }, j.runFn = function(be) {
                  for (var we = Z._fullData, Ie = Z._fullLayout, Ge = Ie._basePlotModules, Ve, Je, et, at = [], Le = 0; Le < we.length; Le++)
                    at.push(Le);
                  function ze() {
                    if (Z._fullLayout)
                      for (var Xe = 0; Xe < Ge.length; Xe++)
                        Ge[Xe].transitionAxes && Ge[Xe].transitionAxes(Z, he, Ve, be);
                  }
                  function Oe() {
                    if (Z._fullLayout)
                      for (var Xe = 0; Xe < Ge.length; Xe++)
                        Ge[Xe].plot(Z, et, Je, be);
                  }
                  he.length && ee.anim ? ce.ordering === "traces first" ? (Ve = i.extendFlat({}, ce, {
                    duration: 0
                  }), et = at, Je = ce, setTimeout(ze, ce.duration), Oe()) : (Ve = ce, et = null, Je = i.extendFlat({}, ce, {
                    duration: 0
                  }), setTimeout(Oe, Ve.duration), ze()) : he.length ? (Ve = ce, ze()) : ee.anim && (et = at, Je = ce, Oe());
                }, Re(Z, ce, j);
              };
              function Re(Z, ee, ie) {
                var G = !1;
                function H(Ge) {
                  var Ve = Promise.resolve();
                  if (!Ge)
                    return Ve;
                  for (; Ge.length; )
                    Ve = Ve.then(Ge.shift());
                  return Ve;
                }
                function ce(Ge) {
                  if (Ge)
                    for (; Ge.length; )
                      Ge.shift();
                }
                function j() {
                  return Z.emit("plotly_transitioning", []), new Promise(function(Ge) {
                    Z._transitioning = !0, ee.duration > 0 && (Z._transitioningWithDuration = !0), Z._transitionData._interruptCallbacks.push(function() {
                      G = !0;
                    }), ie.redraw && Z._transitionData._interruptCallbacks.push(function() {
                      return c.call("redraw", Z);
                    }), Z._transitionData._interruptCallbacks.push(function() {
                      Z.emit("plotly_transitioninterrupted", []);
                    });
                    var Ve = 0, Je = 0;
                    function et() {
                      return Ve++, function() {
                        Je++, !G && Je === Ve && he(Ge);
                      };
                    }
                    ie.runFn(et), setTimeout(et());
                  });
                }
                function he(Ge) {
                  if (Z._transitionData)
                    return ce(Z._transitionData._interruptCallbacks), Promise.resolve().then(function() {
                      if (ie.redraw)
                        return c.call("redraw", Z);
                    }).then(function() {
                      Z._transitioning = !1, Z._transitioningWithDuration = !1, Z.emit("plotly_transitioned", []);
                    }).then(Ge);
                }
                function be() {
                  if (Z._transitionData)
                    return Z._transitioning = !1, H(Z._transitionData._interruptCallbacks);
                }
                var we = [g.previousPromises, be, ie.prepareFn, g.rehover, g.reselect, j], Ie = i.syncOrAsync(we, Z);
                return (!Ie || !Ie.then) && (Ie = Promise.resolve()), Ie.then(function() {
                  return Z;
                });
              }
              g.doCalcdata = function(Z, ee) {
                var ie = D.list(Z), G = Z._fullData, H = Z._fullLayout, ce, j, he, be, we = new Array(G.length), Ie = (Z.calcdata || []).slice();
                for (Z.calcdata = we, H._numBoxes = 0, H._numViolins = 0, H._violinScaleGroupStats = {}, Z._hmpixcount = 0, Z._hmlumcount = 0, H._piecolormap = {}, H._sunburstcolormap = {}, H._treemapcolormap = {}, H._iciclecolormap = {}, H._funnelareacolormap = {}, he = 0; he < G.length; he++)
                  if (Array.isArray(ee) && ee.indexOf(he) === -1) {
                    we[he] = Ie[he];
                    continue;
                  }
                for (he = 0; he < G.length; he++)
                  ce = G[he], ce._arrayAttrs = d.findArrayAttributes(ce), ce._extremes = {};
                var Ge = H._subplots.polar || [];
                for (he = 0; he < Ge.length; he++)
                  ie.push(H[Ge[he]].radialaxis, H[Ge[he]].angularaxis);
                for (var Ve in H._colorAxes) {
                  var Je = H[Ve];
                  Je.cauto !== !1 && (delete Je.cmin, delete Je.cmax);
                }
                var et = !1;
                function at(Oe) {
                  if (ce = G[Oe], j = ce._module, ce.visible === !0 && ce.transforms) {
                    if (j && j.calc) {
                      var Xe = j.calc(Z, ce);
                      Xe[0] && Xe[0].t && Xe[0].t._scene && delete Xe[0].t._scene.dirty;
                    }
                    for (be = 0; be < ce.transforms.length; be++) {
                      var it = ce.transforms[be];
                      j = I[it.type], j && j.calcTransform && (ce._hasCalcTransform = !0, et = !0, j.calcTransform(Z, ce, it));
                    }
                  }
                }
                function Le(Oe, Xe) {
                  if (ce = G[Oe], j = ce._module, !!j.isContainer === Xe) {
                    var it = [];
                    if (ce.visible === !0 && ce._length !== 0) {
                      delete ce._indexToPoints;
                      var ut = ce.transforms || [];
                      for (be = ut.length - 1; be >= 0; be--)
                        if (ut[be].enabled) {
                          ce._indexToPoints = ut[be]._indexToPoints;
                          break;
                        }
                      j && j.calc && (it = j.calc(Z, ce));
                    }
                    (!Array.isArray(it) || !it[0]) && (it = [{
                      x,
                      y: x
                    }]), it[0].t || (it[0].t = {}), it[0].trace = ce, we[Oe] = it;
                  }
                }
                for (Me(ie, G, H), he = 0; he < G.length; he++)
                  Le(he, !0);
                for (he = 0; he < G.length; he++)
                  at(he);
                for (et && Me(ie, G, H), he = 0; he < G.length; he++)
                  Le(he, !0);
                for (he = 0; he < G.length; he++)
                  Le(he, !1);
                De(Z);
                var ze = xe(ie, Z);
                if (ze.length) {
                  for (H._numBoxes = 0, H._numViolins = 0, he = 0; he < ze.length; he++)
                    Le(ze[he], !0);
                  for (he = 0; he < ze.length; he++)
                    Le(ze[he], !1);
                  De(Z);
                }
                c.getComponentMethod("fx", "calc")(Z), c.getComponentMethod("errorbars", "calc")(Z);
              };
              var Be = /(total|sum|min|max|mean|median) (ascending|descending)/;
              function xe(Z, ee) {
                var ie = [], G, H, ce, j, he;
                function be(Ue, We, je) {
                  var lt = We._id.charAt(0);
                  if (Ue === "histogram2dcontour") {
                    var Se = We._counterAxes[0], Pe = D.getFromId(ee, Se), Ye = lt === "x" || Se === "x" && Pe.type === "category", Ze = lt === "y" || Se === "y" && Pe.type === "category";
                    return function(rt, tt) {
                      return rt === 0 || tt === 0 || Ye && rt === je[tt].length - 1 || Ze && tt === je.length - 1 ? -1 : (lt === "y" ? tt : rt) - 1;
                    };
                  } else
                    return function(rt, tt) {
                      return lt === "y" ? tt : rt;
                    };
                }
                var we = {
                  min: function(Ue) {
                    return i.aggNums(Math.min, null, Ue);
                  },
                  max: function(Ue) {
                    return i.aggNums(Math.max, null, Ue);
                  },
                  sum: function(Ue) {
                    return i.aggNums(function(We, je) {
                      return We + je;
                    }, null, Ue);
                  },
                  total: function(Ue) {
                    return i.aggNums(function(We, je) {
                      return We + je;
                    }, null, Ue);
                  },
                  mean: function(Ue) {
                    return i.mean(Ue);
                  },
                  median: function(Ue) {
                    return i.median(Ue);
                  }
                };
                function Ie(Ue, We) {
                  return Ue[1] - We[1];
                }
                function Ge(Ue, We) {
                  return We[1] - Ue[1];
                }
                for (G = 0; G < Z.length; G++) {
                  var Ve = Z[G];
                  if (Ve.type === "category") {
                    var Je = Ve.categoryorder.match(Be);
                    if (Je) {
                      var et = Je[1], at = Je[2], Le = Ve._id.charAt(0), ze = Le === "x", Oe = [];
                      for (H = 0; H < Ve._categories.length; H++)
                        Oe.push([Ve._categories[H], []]);
                      for (H = 0; H < Ve._traceIndices.length; H++) {
                        var Xe = Ve._traceIndices[H], it = ee._fullData[Xe];
                        if (it.visible === !0) {
                          var ut = it.type;
                          c.traceIs(it, "histogram") && (delete it._xautoBinFinished, delete it._yautoBinFinished);
                          var wt = ut === "splom", kt = ut === "scattergl", Ot = ee.calcdata[Xe];
                          for (ce = 0; ce < Ot.length; ce++) {
                            var Lt = Ot[ce], Mt, Ut;
                            if (wt) {
                              var Ct = it._axesDim[Ve._id];
                              if (!ze) {
                                var jt = it._diag[Ct][0];
                                jt && (Ve = ee._fullLayout[D.id2name(jt)]);
                              }
                              var nr = Lt.trace.dimensions[Ct].values;
                              for (j = 0; j < nr.length; j++)
                                for (Mt = Ve._categoriesMap[nr[j]], he = 0; he < Lt.trace.dimensions.length; he++)
                                  if (he !== Ct) {
                                    var Jt = Lt.trace.dimensions[he];
                                    Oe[Mt][1].push(Jt.values[j]);
                                  }
                            } else if (kt) {
                              for (j = 0; j < Lt.t.x.length; j++)
                                ze ? (Mt = Lt.t.x[j], Ut = Lt.t.y[j]) : (Mt = Lt.t.y[j], Ut = Lt.t.x[j]), Oe[Mt][1].push(Ut);
                              Lt.t && Lt.t._scene && delete Lt.t._scene.dirty;
                            } else if (Lt.hasOwnProperty("z")) {
                              Ut = Lt.z;
                              var Wt = be(it.type, Ve, Ut);
                              for (j = 0; j < Ut.length; j++)
                                for (he = 0; he < Ut[j].length; he++)
                                  Mt = Wt(he, j), Mt + 1 && Oe[Mt][1].push(Ut[j][he]);
                            } else
                              for (Mt = Lt.p, Mt === void 0 && (Mt = Lt[Le]), Ut = Lt.s, Ut === void 0 && (Ut = Lt.v), Ut === void 0 && (Ut = ze ? Lt.y : Lt.x), Array.isArray(Ut) || (Ut === void 0 ? Ut = [] : Ut = [Ut]), j = 0; j < Ut.length; j++)
                                Oe[Mt][1].push(Ut[j]);
                          }
                        }
                      }
                      Ve._categoriesValue = Oe;
                      var qe = [];
                      for (H = 0; H < Oe.length; H++)
                        qe.push([Oe[H][0], we[et](Oe[H][1])]);
                      qe.sort(at === "descending" ? Ge : Ie), Ve._categoriesAggregatedValue = qe, Ve._initialCategories = qe.map(function(Ue) {
                        return Ue[0];
                      }), ie = ie.concat(Ve.sortByInitialCategories());
                    }
                  }
                }
                return ie;
              }
              function Me(Z, ee, ie) {
                var G = {};
                function H(be) {
                  be.clearCalc(), be.type === "multicategory" && be.setupMultiCategory(ee), G[be._id] = 1;
                }
                i.simpleMap(Z, H);
                for (var ce = ie._axisMatchGroups || [], j = 0; j < ce.length; j++)
                  for (var he in ce[j])
                    G[he] || H(ie[D.id2name(he)]);
              }
              function De(Z) {
                var ee = Z._fullLayout, ie = ee._visibleModules, G = {}, H, ce, j;
                for (ce = 0; ce < ie.length; ce++) {
                  var he = ie[ce], be = he.crossTraceCalc;
                  if (be) {
                    var we = he.basePlotModule.name;
                    G[we] ? i.pushUnique(G[we], be) : G[we] = [be];
                  }
                }
                for (j in G) {
                  var Ie = G[j], Ge = ee._subplots[j];
                  if (Array.isArray(Ge))
                    for (H = 0; H < Ge.length; H++) {
                      var Ve = Ge[H], Je = j === "cartesian" ? ee._plots[Ve] : ee[Ve];
                      for (ce = 0; ce < Ie.length; ce++)
                        Ie[ce](Z, Je, Ve);
                    }
                  else
                    for (ce = 0; ce < Ie.length; ce++)
                      Ie[ce](Z);
                }
              }
              g.rehover = function(Z) {
                Z._fullLayout._rehover && Z._fullLayout._rehover();
              }, g.redrag = function(Z) {
                Z._fullLayout._redrag && Z._fullLayout._redrag();
              }, g.reselect = function(Z) {
                var ee = Z._fullLayout, ie = (Z.layout || {}).selections, G = ee._previousSelections;
                ee._previousSelections = ie;
                var H = ee._reselect || JSON.stringify(ie) !== JSON.stringify(G);
                c.getComponentMethod("selections", "reselect")(Z, H);
              }, g.generalUpdatePerTraceModule = function(Z, ee, ie, G) {
                var H = ee.traceHash, ce = {}, j;
                for (j = 0; j < ie.length; j++) {
                  var he = ie[j], be = he[0].trace;
                  be.visible && (ce[be.type] = ce[be.type] || [], ce[be.type].push(he));
                }
                for (var we in H)
                  if (!ce[we]) {
                    var Ie = H[we][0], Ge = Ie[0].trace;
                    Ge.visible = !1, ce[we] = [Ie];
                  }
                for (var Ve in ce) {
                  var Je = ce[Ve], et = Je[0][0].trace._module;
                  et.plot(Z, ee, i.filterVisible(Je), G);
                }
                ee.traceHash = ce;
              }, g.plotBasePlot = function(Z, ee, ie, G, H) {
                var ce = c.getModule(Z), j = k(ee.calcdata, ce)[0];
                ce.plot(ee, j, G, H);
              }, g.cleanBasePlot = function(Z, ee, ie, G, H) {
                var ce = H._has && H._has(Z), j = ie._has && ie._has(Z);
                ce && !j && H["_" + Z + "layer"].selectAll("g.trace").remove();
              };
            }
          ),
          /***/
          1776: (
            /***/
            function(M, L, r) {
              var a = r(6880);
              a.FORMAT_LINK, a.DATE_FORMAT_LINK;
              function p(l) {
                var f = l.description ? " " + l.description : "", u = l.keys || [];
                if (u.length > 0) {
                  for (var c = [], d = 0; d < u.length; d++)
                    c[d] = "`" + u[d] + "`";
                  f = f + "Finally, the template string has access to ", u.length === 1 ? f = f + "variable " + c[0] : f = f + "variables " + c.slice(0, -1).join(", ") + " and " + c.slice(-1) + ".";
                }
                return f;
              }
              L.Ks = function(l, f) {
                l = l || {}, f = f || {}, p(f);
                var u = {
                  valType: "string",
                  dflt: "",
                  editType: l.editType || "none"
                };
                return l.arrayOk !== !1 && (u.arrayOk = !0), u;
              }, L.Gw = function(l, f) {
                l = l || {}, f = f || {}, p(f);
                var u = {
                  valType: "string",
                  dflt: "",
                  editType: l.editType || "calc"
                };
                return l.arrayOk !== !1 && (u.arrayOk = !0), u;
              }, L.ye = function(l, f) {
                l = l || {}, f = f || {}, l.newshape, p(f);
                var u = {
                  valType: "string",
                  dflt: "",
                  editType: l.editType || "arraydraw"
                };
                return u;
              };
            }
          ),
          /***/
          4040: (
            /***/
            function(M, L, r) {
              var a = r(4248), p = r(6628), l = r(2416), f = r(3620), u = r(2200).addStyleRule, c = r(2880), d = r(5464), h = r(4859), i = c.extendFlat, b = c.extendDeepAll;
              L.modules = {}, L.allCategories = {}, L.allTypes = [], L.subplotsRegistry = {}, L.transformsRegistry = {}, L.componentsRegistry = {}, L.layoutArrayContainers = [], L.layoutArrayRegexes = [], L.traceLayoutAttributes = {}, L.localeRegistry = {}, L.apiMethodRegistry = {}, L.collectableSubplotTypes = null, L.register = function(O) {
                if (L.collectableSubplotTypes = null, O)
                  O && !Array.isArray(O) && (O = [O]);
                else
                  throw new Error("No argument passed to Plotly.register.");
                for (var $ = 0; $ < O.length; $++) {
                  var Y = O[$];
                  if (!Y)
                    throw new Error("Invalid module was attempted to be registered!");
                  switch (Y.moduleType) {
                    case "trace":
                      x(Y);
                      break;
                    case "transform":
                      w(Y);
                      break;
                    case "component":
                      C(Y);
                      break;
                    case "locale":
                      S(Y);
                      break;
                    case "apiMethod":
                      var ne = Y.name;
                      L.apiMethodRegistry[ne] = Y.fn;
                      break;
                    default:
                      throw new Error("Invalid module was attempted to be registered!");
                  }
                }
              }, L.getModule = function(I) {
                var O = L.modules[g(I)];
                return O ? O._module : !1;
              }, L.traceIs = function(I, O) {
                if (I = g(I), I === "various")
                  return !1;
                var $ = L.modules[I];
                return $ || (I && a.log("Unrecognized trace type " + I + "."), $ = L.modules[d.type.dflt]), !!$.categories[O];
              }, L.getTransformIndices = function(I, O) {
                for (var $ = [], Y = I.transforms || [], ne = 0; ne < Y.length; ne++)
                  Y[ne].type === O && $.push(ne);
                return $;
              }, L.hasTransform = function(I, O) {
                for (var $ = I.transforms || [], Y = 0; Y < $.length; Y++)
                  if ($[Y].type === O)
                    return !0;
                return !1;
              }, L.getComponentMethod = function(I, O) {
                var $ = L.componentsRegistry[I];
                return $ && $[O] || p;
              }, L.call = function() {
                var I = arguments[0], O = [].slice.call(arguments, 1);
                return L.apiMethodRegistry[I].apply(null, O);
              };
              function x(I) {
                var O = I.name, $ = I.categories, Y = I.meta;
                if (L.modules[O]) {
                  a.log("Type " + O + " already registered");
                  return;
                }
                L.subplotsRegistry[I.basePlotModule.name] || D(I.basePlotModule);
                for (var ne = {}, q = 0; q < $.length; q++)
                  ne[$[q]] = !0, L.allCategories[$[q]] = !0;
                L.modules[O] = {
                  _module: I,
                  categories: ne
                }, Y && Object.keys(Y).length && (L.modules[O].meta = Y), L.allTypes.push(O);
                for (var B in L.componentsRegistry)
                  k(B, O);
                I.layoutAttributes && i(L.traceLayoutAttributes, I.layoutAttributes);
                var X = I.basePlotModule, U = X.name;
                if (U === "mapbox") {
                  var te = X.constants.styleRules;
                  for (var se in te)
                    u(".js-plotly-plot .plotly .mapboxgl-" + se, te[se]);
                }
                (U === "geo" || U === "mapbox") && window.PlotlyGeoAssets === void 0 && (window.PlotlyGeoAssets = {
                  topojson: {}
                });
              }
              function D(I) {
                var O = I.name;
                if (L.subplotsRegistry[O]) {
                  a.log("Plot type " + O + " already registered.");
                  return;
                }
                T(I), L.subplotsRegistry[O] = I;
                for (var $ in L.componentsRegistry)
                  R($, I.name);
              }
              function C(I) {
                if (typeof I.name != "string")
                  throw new Error("Component module *name* must be a string.");
                var O = I.name;
                L.componentsRegistry[O] = I, I.layoutAttributes && (I.layoutAttributes._isLinkedToArray && l(L.layoutArrayContainers, O), T(I));
                for (var $ in L.modules)
                  k(O, $);
                for (var Y in L.subplotsRegistry)
                  R(O, Y);
                for (var ne in L.transformsRegistry)
                  A(O, ne);
                I.schema && I.schema.layout && b(h, I.schema.layout);
              }
              function w(I) {
                if (typeof I.name != "string")
                  throw new Error("Transform module *name* must be a string.");
                var O = "Transform module " + I.name, $ = typeof I.transform == "function", Y = typeof I.calcTransform == "function";
                if (!$ && !Y)
                  throw new Error(O + " is missing a *transform* or *calcTransform* method.");
                $ && Y && a.log([O + " has both a *transform* and *calcTransform* methods.", "Please note that all *transform* methods are executed", "before all *calcTransform* methods."].join(" ")), f(I.attributes) || a.log(O + " registered without an *attributes* object."), typeof I.supplyDefaults != "function" && a.log(O + " registered without a *supplyDefaults* method."), L.transformsRegistry[I.name] = I;
                for (var ne in L.componentsRegistry)
                  A(ne, I.name);
              }
              function S(I) {
                var O = I.name, $ = O.split("-")[0], Y = I.dictionary, ne = I.format, q = Y && Object.keys(Y).length, B = ne && Object.keys(ne).length, X = L.localeRegistry, U = X[O];
                if (U || (X[O] = U = {}), $ !== O) {
                  var te = X[$];
                  te || (X[$] = te = {}), q && te.dictionary === U.dictionary && (te.dictionary = Y), B && te.format === U.format && (te.format = ne);
                }
                q && (U.dictionary = Y), B && (U.format = ne);
              }
              function T(I) {
                if (I.layoutAttributes) {
                  var O = I.layoutAttributes._arrayAttrRegexps;
                  if (O)
                    for (var $ = 0; $ < O.length; $++)
                      l(L.layoutArrayRegexes, O[$]);
                }
              }
              function k(I, O) {
                var $ = L.componentsRegistry[I].schema;
                if (!(!$ || !$.traces)) {
                  var Y = $.traces[O];
                  Y && b(L.modules[O]._module.attributes, Y);
                }
              }
              function A(I, O) {
                var $ = L.componentsRegistry[I].schema;
                if (!(!$ || !$.transforms)) {
                  var Y = $.transforms[O];
                  Y && b(L.transformsRegistry[O].attributes, Y);
                }
              }
              function R(I, O) {
                var $ = L.componentsRegistry[I].schema;
                if (!(!$ || !$.subplots)) {
                  var Y = L.subplotsRegistry[O], ne = Y.layoutAttributes, q = Y.attr === "subplot" ? Y.name : Y.attr;
                  Array.isArray(q) && (q = q[0]);
                  var B = $.subplots[q];
                  ne && B && b(ne, B);
                }
              }
              function g(I) {
                return typeof I == "object" && (I = I.type), I;
              }
            }
          ),
          /***/
          1536: (
            /***/
            function(M, L, r) {
              var a = r(4040), p = r(3400), l = p.extendFlat, f = p.extendDeep;
              function u(d) {
                var h;
                switch (d) {
                  case "themes__thumb":
                    h = {
                      autosize: !0,
                      width: 150,
                      height: 150,
                      title: {
                        text: ""
                      },
                      showlegend: !1,
                      margin: {
                        l: 5,
                        r: 5,
                        t: 5,
                        b: 5,
                        pad: 0
                      },
                      annotations: []
                    };
                    break;
                  case "thumbnail":
                    h = {
                      title: {
                        text: ""
                      },
                      hidesources: !0,
                      showlegend: !1,
                      borderwidth: 0,
                      bordercolor: "",
                      margin: {
                        l: 1,
                        r: 1,
                        t: 1,
                        b: 1,
                        pad: 0
                      },
                      annotations: []
                    };
                    break;
                  default:
                    h = {};
                }
                return h;
              }
              function c(d) {
                var h = ["xaxis", "yaxis", "zaxis"];
                return h.indexOf(d.slice(0, 5)) > -1;
              }
              M.exports = function(h, i) {
                var b, x = h.data, D = h.layout, C = f([], x), w = f({}, D, u(i.tileClass)), S = h._context || {};
                if (i.width && (w.width = i.width), i.height && (w.height = i.height), i.tileClass === "thumbnail" || i.tileClass === "themes__thumb") {
                  w.annotations = [];
                  var T = Object.keys(w);
                  for (b = 0; b < T.length; b++)
                    c(T[b]) && (w[T[b]].title = {
                      text: ""
                    });
                  for (b = 0; b < C.length; b++) {
                    var k = C[b];
                    k.showscale = !1, k.marker && (k.marker.showscale = !1), a.traceIs(k, "pie-like") && (k.textposition = "none");
                  }
                }
                if (Array.isArray(i.annotations))
                  for (b = 0; b < i.annotations.length; b++)
                    w.annotations.push(i.annotations[b]);
                var A = Object.keys(w).filter(function($) {
                  return $.match(/^scene\d*$/);
                });
                if (A.length) {
                  var R = {};
                  for (i.tileClass === "thumbnail" && (R = {
                    title: {
                      text: ""
                    },
                    showaxeslabels: !1,
                    showticklabels: !1,
                    linetickenable: !1
                  }), b = 0; b < A.length; b++) {
                    var g = w[A[b]];
                    g.xaxis || (g.xaxis = {}), g.yaxis || (g.yaxis = {}), g.zaxis || (g.zaxis = {}), l(g.xaxis, R), l(g.yaxis, R), l(g.zaxis, R), g._scene = null;
                  }
                }
                var I = document.createElement("div");
                i.tileClass && (I.className = i.tileClass);
                var O = {
                  gd: I,
                  td: I,
                  // for external (image server) compatibility
                  layout: w,
                  data: C,
                  config: {
                    staticPlot: i.staticPlot === void 0 ? !0 : i.staticPlot,
                    plotGlPixelRatio: i.plotGlPixelRatio === void 0 ? 2 : i.plotGlPixelRatio,
                    displaylogo: i.displaylogo || !1,
                    showLink: i.showLink || !1,
                    showTips: i.showTips || !1,
                    mapboxAccessToken: S.mapboxAccessToken
                  }
                };
                return i.setBackground !== "transparent" && (O.config.setBackground = i.setBackground || "opaque"), O.gd.defaultLayout = u(i.tileClass), O;
              };
            }
          ),
          /***/
          7412: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(7024), l = r(8616), f = r(7030);
              function u(c, d) {
                var h;
                return a.isPlainObject(c) || (h = a.getGraphDiv(c)), d = d || {}, d.format = d.format || "png", d.width = d.width || null, d.height = d.height || null, d.imageDataOnly = !0, new Promise(function(i, b) {
                  h && h._snapshotInProgress && b(new Error("Snapshotting already in progress.")), a.isIE() && d.format !== "svg" && b(new Error(f.MSG_IE_BAD_FORMAT)), h && (h._snapshotInProgress = !0);
                  var x = p(c, d), D = d.filename || c.fn || "newplot";
                  D += "." + d.format.replace("-", "."), x.then(function(C) {
                    return h && (h._snapshotInProgress = !1), l(C, D, d.format);
                  }).then(function(C) {
                    i(C);
                  }).catch(function(C) {
                    h && (h._snapshotInProgress = !1), b(C);
                  });
                });
              }
              M.exports = u;
            }
          ),
          /***/
          8616: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(7030);
              function l(f, u, c) {
                var d = document.createElement("a"), h = "download" in d, i = new Promise(function(b, x) {
                  var D, C;
                  if (a.isIE())
                    return D = p.createBlob(f, "svg"), window.navigator.msSaveBlob(D, u), D = null, b(u);
                  if (h)
                    return D = p.createBlob(f, c), C = p.createObjectURL(D), d.href = C, d.download = u, document.body.appendChild(d), d.click(), document.body.removeChild(d), p.revokeObjectURL(C), D = null, b(u);
                  if (a.isSafari()) {
                    var w = c === "svg" ? "," : ";base64,";
                    return p.octetStream(w + encodeURIComponent(f)), b(u);
                  }
                  x(new Error("download error"));
                });
                return i;
              }
              M.exports = l;
            }
          ),
          /***/
          7030: (
            /***/
            function(M, L, r) {
              var a = r(4040);
              L.getDelay = function(f) {
                return f._has && (f._has("gl3d") || f._has("gl2d") || f._has("mapbox")) ? 500 : 0;
              }, L.getRedrawFunc = function(f) {
                return function() {
                  a.getComponentMethod("colorbar", "draw")(f);
                };
              }, L.encodeSVG = function(f) {
                return "data:image/svg+xml," + encodeURIComponent(f);
              }, L.encodeJSON = function(f) {
                return "data:application/json," + encodeURIComponent(f);
              };
              var p = window.URL || window.webkitURL;
              L.createObjectURL = function(f) {
                return p.createObjectURL(f);
              }, L.revokeObjectURL = function(f) {
                return p.revokeObjectURL(f);
              }, L.createBlob = function(f, u) {
                if (u === "svg")
                  return new window.Blob([f], {
                    type: "image/svg+xml;charset=utf-8"
                  });
                if (u === "full-json")
                  return new window.Blob([f], {
                    type: "application/json;charset=utf-8"
                  });
                var c = l(window.atob(f));
                return new window.Blob([c], {
                  type: "image/" + u
                });
              }, L.octetStream = function(f) {
                document.location.href = "data:application/octet-stream" + f;
              };
              function l(f) {
                for (var u = f.length, c = new ArrayBuffer(u), d = new Uint8Array(c), h = 0; h < u; h++)
                  d[h] = f.charCodeAt(h);
                return c;
              }
              L.IMAGE_URL_PREFIX = /^data:image\/\w+;base64,/, L.MSG_IE_BAD_FORMAT = "Sorry IE does not support downloading from canvas. Try {format:'svg'} instead.";
            }
          ),
          /***/
          8904: (
            /***/
            function(M, L, r) {
              var a = r(7030), p = {
                getDelay: a.getDelay,
                getRedrawFunc: a.getRedrawFunc,
                clone: r(1536),
                toSVG: r(7164),
                svgToImg: r(3268),
                toImage: r(1808),
                downloadImage: r(7412)
              };
              M.exports = p;
            }
          ),
          /***/
          3268: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(1252).EventEmitter, l = r(7030);
              function f(u) {
                var c = u.emitter || new p(), d = new Promise(function(h, i) {
                  var b = window.Image, x = u.svg, D = u.format || "png";
                  if (a.isIE() && D !== "svg") {
                    var C = new Error(l.MSG_IE_BAD_FORMAT);
                    return i(C), u.promise ? d : c.emit("error", C);
                  }
                  var w = u.canvas, S = u.scale || 1, T = u.width || 300, k = u.height || 150, A = S * T, R = S * k, g = w.getContext("2d", {
                    willReadFrequently: !0
                  }), I = new b(), O, $;
                  D === "svg" || a.isSafari() ? $ = l.encodeSVG(x) : (O = l.createBlob(x, "svg"), $ = l.createObjectURL(O)), w.width = A, w.height = R, I.onload = function() {
                    var Y;
                    switch (O = null, l.revokeObjectURL($), D !== "svg" && g.drawImage(I, 0, 0, A, R), D) {
                      case "jpeg":
                        Y = w.toDataURL("image/jpeg");
                        break;
                      case "png":
                        Y = w.toDataURL("image/png");
                        break;
                      case "webp":
                        Y = w.toDataURL("image/webp");
                        break;
                      case "svg":
                        Y = $;
                        break;
                      default:
                        var ne = "Image format is not jpeg, png, svg or webp.";
                        if (i(new Error(ne)), !u.promise)
                          return c.emit("error", ne);
                    }
                    h(Y), u.promise || c.emit("success", Y);
                  }, I.onerror = function(Y) {
                    if (O = null, l.revokeObjectURL($), i(Y), !u.promise)
                      return c.emit("error", Y);
                  }, I.src = $;
                });
                return u.promise ? d : c;
              }
              M.exports = f;
            }
          ),
          /***/
          1808: (
            /***/
            function(M, L, r) {
              var a = r(1252).EventEmitter, p = r(4040), l = r(3400), f = r(7030), u = r(1536), c = r(7164), d = r(3268);
              function h(i, b) {
                var x = new a(), D = u(i, {
                  format: "png"
                }), C = D.gd;
                C.style.position = "absolute", C.style.left = "-5000px", document.body.appendChild(C);
                function w() {
                  var T = f.getDelay(C._fullLayout);
                  setTimeout(function() {
                    var k = c(C), A = document.createElement("canvas");
                    A.id = l.randstr(), x = d({
                      format: b.format,
                      width: C._fullLayout.width,
                      height: C._fullLayout.height,
                      canvas: A,
                      emitter: x,
                      svg: k
                    }), x.clean = function() {
                      C && document.body.removeChild(C);
                    };
                  }, T);
                }
                var S = f.getRedrawFunc(C);
                return p.call("_doPlot", C, D.data, D.layout, D.config).then(S).then(w).catch(function(T) {
                  x.emit("error", T);
                }), x;
              }
              M.exports = h;
            }
          ),
          /***/
          7164: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(3400), l = r(3616), f = r(6308), u = r(9616), c = /"/g, d = "TOBESTRIPPED", h = new RegExp('("' + d + ")|(" + d + '")', "g");
              function i(x) {
                var D = a.select("body").append("div").style({
                  display: "none"
                }).html(""), C = x.replace(/(&[^;]*;)/gi, function(w) {
                  return w === "&lt;" ? "&#60;" : w === "&rt;" ? "&#62;" : w.indexOf("<") !== -1 || w.indexOf(">") !== -1 ? "" : D.html(w).text();
                });
                return D.remove(), C;
              }
              function b(x) {
                return x.replace(/&(?!\w+;|\#[0-9]+;| \#x[0-9A-F]+;)/g, "&amp;");
              }
              M.exports = function(D, C, w) {
                var S = D._fullLayout, T = S._paper, k = S._toppaper, A = S.width, R = S.height, g;
                T.insert("rect", ":first-child").call(l.setRect, 0, 0, A, R).call(f.fill, S.paper_bgcolor);
                var I = S._basePlotModules || [];
                for (g = 0; g < I.length; g++) {
                  var O = I[g];
                  O.toSVG && O.toSVG(D);
                }
                if (k) {
                  var $ = k.node().childNodes, Y = Array.prototype.slice.call($);
                  for (g = 0; g < Y.length; g++) {
                    var ne = Y[g];
                    ne.childNodes.length && T.node().appendChild(ne);
                  }
                }
                S._draggers && S._draggers.remove(), T.node().style.background = "", T.selectAll("text").attr({
                  "data-unformatted": null,
                  "data-math": null
                }).each(function() {
                  var B = a.select(this);
                  if (this.style.visibility === "hidden" || this.style.display === "none") {
                    B.remove();
                    return;
                  } else
                    B.style({
                      visibility: null,
                      display: null
                    });
                  var X = this.style.fontFamily;
                  X && X.indexOf('"') !== -1 && B.style("font-family", X.replace(c, d));
                  var U = this.style.fontWeight;
                  U && (U === "normal" || U === "400") && B.style("font-weight", void 0);
                  var te = this.style.fontStyle;
                  te && te === "normal" && B.style("font-style", void 0);
                  var se = this.style.fontVariant;
                  se && se === "normal" && B.style("font-variant", void 0);
                }), T.selectAll(".gradient_filled,.pattern_filled").each(function() {
                  var B = a.select(this), X = this.style.fill;
                  X && X.indexOf("url(") !== -1 && B.style("fill", X.replace(c, d));
                  var U = this.style.stroke;
                  U && U.indexOf("url(") !== -1 && B.style("stroke", U.replace(c, d));
                }), (C === "pdf" || C === "eps") && T.selectAll("#MathJax_SVG_glyphs path").attr("stroke-width", 0), T.node().setAttributeNS(u.xmlns, "xmlns", u.svg), T.node().setAttributeNS(u.xmlns, "xmlns:xlink", u.xlink), C === "svg" && w && (T.attr("width", w * A), T.attr("height", w * R), T.attr("viewBox", "0 0 " + A + " " + R));
                var q = new window.XMLSerializer().serializeToString(T.node());
                return q = i(q), q = b(q), q = q.replace(h, "'"), p.isIE() && (q = q.replace(/"/gi, "'"), q = q.replace(/(\('#)([^']*)('\))/gi, '("#$2")'), q = q.replace(/(\\')/gi, '"')), q;
              };
            }
          ),
          /***/
          4664: (
            /***/
            function(M, L, r) {
              var a = r(3400);
              M.exports = function(l, f) {
                for (var u = 0; u < l.length; u++)
                  l[u].i = u;
                a.mergeArray(f.text, l, "tx"), a.mergeArray(f.hovertext, l, "htx");
                var c = f.marker;
                if (c) {
                  a.mergeArray(c.opacity, l, "mo", !0), a.mergeArray(c.color, l, "mc");
                  var d = c.line;
                  d && (a.mergeArray(d.color, l, "mlc"), a.mergeArrayCastPositive(d.width, l, "mlw"));
                }
              };
            }
          ),
          /***/
          832: (
            /***/
            function(M, L, r) {
              var a = r(2904), p = r(9736).axisHoverFormat, l = r(1776).Ks, f = r(1776).Gw, u = r(9084), c = r(5376), d = r(8048), h = r(8192).c, i = r(2880).extendFlat, b = c({
                editType: "calc",
                arrayOk: !0,
                colorEditType: "style"
              }), x = a.marker, D = x.line, C = i({}, D.width, {
                dflt: 0
              }), w = i({
                width: C,
                editType: "calc"
              }, u("marker.line")), S = i({
                line: w,
                editType: "calc"
              }, u("marker"), {
                opacity: {
                  valType: "number",
                  arrayOk: !0,
                  dflt: 1,
                  min: 0,
                  max: 1,
                  editType: "style"
                },
                pattern: h,
                cornerradius: {
                  valType: "any",
                  editType: "calc"
                }
              });
              M.exports = {
                x: a.x,
                x0: a.x0,
                dx: a.dx,
                y: a.y,
                y0: a.y0,
                dy: a.dy,
                xperiod: a.xperiod,
                yperiod: a.yperiod,
                xperiod0: a.xperiod0,
                yperiod0: a.yperiod0,
                xperiodalignment: a.xperiodalignment,
                yperiodalignment: a.yperiodalignment,
                xhoverformat: p("x"),
                yhoverformat: p("y"),
                text: a.text,
                texttemplate: f({
                  editType: "plot"
                }, {
                  keys: d.eventDataKeys
                }),
                hovertext: a.hovertext,
                hovertemplate: l({}, {
                  keys: d.eventDataKeys
                }),
                textposition: {
                  valType: "enumerated",
                  values: ["inside", "outside", "auto", "none"],
                  dflt: "auto",
                  arrayOk: !0,
                  editType: "calc"
                },
                insidetextanchor: {
                  valType: "enumerated",
                  values: ["end", "middle", "start"],
                  dflt: "end",
                  editType: "plot"
                },
                textangle: {
                  valType: "angle",
                  dflt: "auto",
                  editType: "plot"
                },
                textfont: i({}, b, {}),
                insidetextfont: i({}, b, {}),
                outsidetextfont: i({}, b, {}),
                constraintext: {
                  valType: "enumerated",
                  values: ["inside", "outside", "both", "none"],
                  dflt: "both",
                  editType: "calc"
                },
                cliponaxis: i({}, a.cliponaxis, {}),
                orientation: {
                  valType: "enumerated",
                  values: ["v", "h"],
                  editType: "calc+clearAxisTypes"
                },
                base: {
                  valType: "any",
                  dflt: null,
                  arrayOk: !0,
                  editType: "calc"
                },
                offset: {
                  valType: "number",
                  dflt: null,
                  arrayOk: !0,
                  editType: "calc"
                },
                width: {
                  valType: "number",
                  dflt: null,
                  min: 0,
                  arrayOk: !0,
                  editType: "calc"
                },
                marker: S,
                offsetgroup: a.offsetgroup,
                alignmentgroup: a.alignmentgroup,
                selected: {
                  marker: {
                    opacity: a.selected.marker.opacity,
                    color: a.selected.marker.color,
                    editType: "style"
                  },
                  textfont: a.selected.textfont,
                  editType: "style"
                },
                unselected: {
                  marker: {
                    opacity: a.unselected.marker.opacity,
                    color: a.unselected.marker.color,
                    editType: "style"
                  },
                  textfont: a.unselected.textfont,
                  editType: "style"
                },
                zorder: a.zorder,
                _deprecated: {
                  bardir: {
                    valType: "enumerated",
                    editType: "calc",
                    values: ["v", "h"]
                  }
                }
              };
            }
          ),
          /***/
          9439: (
            /***/
            function(M, L, r) {
              var a = r(4460), p = r(1220), l = r(4288).hasColorscale, f = r(7128), u = r(4664), c = r(4500);
              M.exports = function(h, i) {
                var b = a.getFromId(h, i.xaxis || "x"), x = a.getFromId(h, i.yaxis || "y"), D, C, w, S, T, k, A = {
                  msUTC: !!(i.base || i.base === 0)
                };
                i.orientation === "h" ? (D = b.makeCalcdata(i, "x", A), w = x.makeCalcdata(i, "y"), S = p(i, x, "y", w), T = !!i.yperiodalignment, k = "y") : (D = x.makeCalcdata(i, "y", A), w = b.makeCalcdata(i, "x"), S = p(i, b, "x", w), T = !!i.xperiodalignment, k = "x"), C = S.vals;
                for (var R = Math.min(C.length, D.length), g = new Array(R), I = 0; I < R; I++)
                  g[I] = {
                    p: C[I],
                    s: D[I]
                  }, T && (g[I].orig_p = w[I], g[I][k + "End"] = S.ends[I], g[I][k + "Start"] = S.starts[I]), i.ids && (g[I].id = String(i.ids[I]));
                return l(i, "marker") && f(h, i, {
                  vals: i.marker.color,
                  containerStr: "marker",
                  cLetter: "c"
                }), l(i, "marker.line") && f(h, i, {
                  vals: i.marker.line.color,
                  containerStr: "marker.line",
                  cLetter: "c"
                }), u(g, i), c(g, i), g;
              };
            }
          ),
          /***/
          8048: (
            /***/
            function(M) {
              M.exports = {
                // padding in pixels around text
                TEXTPAD: 3,
                // 'value' and 'label' are not really necessary for bar traces,
                // but they were made available to `texttemplate` (maybe by accident)
                // via tokens `%{value}` and `%{label}` starting in 1.50.0,
                // so let's include them in the event data also.
                eventDataKeys: ["value", "label"]
              };
            }
          ),
          /***/
          6376: (
            /***/
            function(M, L, r) {
              var a = r(8248), p = r(3400).isArrayOrTypedArray, l = r(9032).BADNUM, f = r(4040), u = r(4460), c = r(1888).getAxisGroup, d = r(2592);
              function h(U, te) {
                for (var se = te.xaxis, me = te.yaxis, J = U._fullLayout, W = U._fullData, ae = U.calcdata, oe = [], ve = [], fe = 0; fe < W.length; fe++) {
                  var ye = W[fe];
                  if (ye.visible === !0 && f.traceIs(ye, "bar") && ye.xaxis === se._id && ye.yaxis === me._id && (ye.orientation === "h" ? oe.push(ae[fe]) : ve.push(ae[fe]), ye._computePh))
                    for (var Ce = U.calcdata[fe], Re = 0; Re < Ce.length; Re++)
                      typeof Ce[Re].ph0 == "function" && (Ce[Re].ph0 = Ce[Re].ph0()), typeof Ce[Re].ph1 == "function" && (Ce[Re].ph1 = Ce[Re].ph1());
                }
                var Be = {
                  xCat: se.type === "category" || se.type === "multicategory",
                  yCat: me.type === "category" || me.type === "multicategory",
                  mode: J.barmode,
                  norm: J.barnorm,
                  gap: J.bargap,
                  groupgap: J.bargroupgap
                };
                i(U, se, me, ve, Be), i(U, me, se, oe, Be);
              }
              function i(U, te, se, me, J) {
                if (me.length) {
                  var W, ae, oe, ve, fe;
                  switch (D(se, me), J.mode) {
                    case "overlay":
                      C(te, se, me, J);
                      break;
                    case "group":
                      for (W = [], ae = [], oe = 0; oe < me.length; oe++)
                        ve = me[oe], fe = ve[0].trace, fe.offset === void 0 ? ae.push(ve) : W.push(ve);
                      ae.length && w(U, te, se, ae, J), W.length && C(te, se, W, J);
                      break;
                    case "stack":
                    case "relative":
                      for (W = [], ae = [], oe = 0; oe < me.length; oe++)
                        ve = me[oe], fe = ve[0].trace, fe.base === void 0 ? ae.push(ve) : W.push(ve);
                      x(ae), ae.length && S(U, te, se, ae, J), W.length && C(te, se, W, J);
                      break;
                  }
                  b(me), B(me, te);
                }
              }
              function b(U) {
                var te, se, me, J, W, ae, oe;
                for (te = 0; te < U.length; te++)
                  se = U[te], me = se[0].trace, J = se[0].t, J.cornerradiusvalue === void 0 && (W = me.marker ? me.marker.cornerradius : void 0, W !== void 0 && (ae = a(W) ? +W : +W.slice(0, -1), oe = a(W) ? "px" : "%", J.cornerradiusvalue = ae, J.cornerradiusform = oe));
              }
              function x(U) {
                if (!(U.length < 2)) {
                  var te, se, me, J, W, ae, oe;
                  for (te = 0; te < U.length && (se = U[te], me = se[0].trace, W = me.marker ? me.marker.cornerradius : void 0, W === void 0); te++)
                    ;
                  if (W !== void 0)
                    for (ae = a(W) ? +W : +W.slice(0, -1), oe = a(W) ? "px" : "%", te = 0; te < U.length; te++)
                      se = U[te], J = se[0].t, J.cornerradiusvalue = ae, J.cornerradiusform = oe;
                }
              }
              function D(U, te) {
                var se, me;
                for (se = 0; se < te.length; se++) {
                  var J = te[se], W = J[0].trace, ae = W.type === "funnel" ? W._base : W.base, oe, ve = W.orientation === "h" ? W.xcalendar : W.ycalendar, fe = U.type === "category" || U.type === "multicategory" ? function() {
                    return null;
                  } : U.d2c;
                  if (p(ae)) {
                    for (me = 0; me < Math.min(ae.length, J.length); me++)
                      oe = fe(ae[me], 0, ve), a(oe) ? (J[me].b = +oe, J[me].hasB = 1) : J[me].b = 0;
                    for (; me < J.length; me++)
                      J[me].b = 0;
                  } else {
                    oe = fe(ae, 0, ve);
                    var ye = a(oe);
                    for (oe = ye ? oe : 0, me = 0; me < J.length; me++)
                      J[me].b = oe, ye && (J[me].hasB = 1);
                  }
                }
              }
              function C(U, te, se, me) {
                for (var J = 0; J < se.length; J++) {
                  var W = se[J], ae = new d([W], {
                    posAxis: U,
                    sepNegVal: !1,
                    overlapNoMerge: !me.norm
                  });
                  T(U, ae, me), me.norm ? ($(ae), ne(te, ae, me)) : I(te, ae);
                }
              }
              function w(U, te, se, me, J) {
                var W = new d(me, {
                  posAxis: te,
                  sepNegVal: !1,
                  overlapNoMerge: !J.norm
                });
                k(U, te, W, J), Y(W, te), J.norm ? ($(W), ne(se, W, J)) : I(se, W);
              }
              function S(U, te, se, me, J) {
                var W = new d(me, {
                  posAxis: te,
                  sepNegVal: J.mode === "relative",
                  overlapNoMerge: !(J.norm || J.mode === "stack" || J.mode === "relative")
                });
                T(te, W, J), O(se, W, J);
                for (var ae = 0; ae < me.length; ae++)
                  for (var oe = me[ae], ve = 0; ve < oe.length; ve++) {
                    var fe = oe[ve];
                    if (fe.s !== l) {
                      var ye = fe.b + fe.s === W.get(fe.p, fe.s);
                      ye && (fe._outmost = !0);
                    }
                  }
                J.norm && ne(se, W, J);
              }
              function T(U, te, se) {
                for (var me = te.minDiff, J = te.traces, W = me * (1 - se.gap), ae = W, oe = ae * (1 - (se.groupgap || 0)), ve = -oe / 2, fe = 0; fe < J.length; fe++) {
                  var ye = J[fe], Ce = ye[0].t;
                  Ce.barwidth = oe, Ce.poffset = ve, Ce.bargroupwidth = W, Ce.bardelta = me;
                }
                te.binWidth = J[0][0].t.barwidth / 100, A(te), R(U, te), g(U, te);
              }
              function k(U, te, se, me) {
                for (var J = U._fullLayout, W = se.positions, ae = se.distinctPositions, oe = se.minDiff, ve = se.traces, fe = ve.length, ye = W.length !== ae.length, Ce = oe * (1 - me.gap), Re = c(J, te._id) + ve[0][0].trace.orientation, Be = J._alignmentOpts[Re] || {}, xe = 0; xe < fe; xe++) {
                  var Me = ve[xe], De = Me[0].trace, Z = Be[De.alignmentgroup] || {}, ee = Object.keys(Z.offsetGroups || {}).length, ie;
                  ee ? ie = Ce / ee : ie = ye ? Ce / fe : Ce;
                  var G = ie * (1 - (me.groupgap || 0)), H;
                  ee ? H = ((2 * De._offsetIndex + 1 - ee) * ie - G) / 2 : H = ye ? ((2 * xe + 1 - fe) * ie - G) / 2 : -G / 2;
                  var ce = Me[0].t;
                  ce.barwidth = G, ce.poffset = H, ce.bargroupwidth = Ce, ce.bardelta = oe;
                }
                se.binWidth = ve[0][0].t.barwidth / 100, A(se), R(te, se), g(te, se, ye);
              }
              function A(U) {
                var te = U.traces, se, me;
                for (se = 0; se < te.length; se++) {
                  var J = te[se], W = J[0], ae = W.trace, oe = W.t, ve = ae._offset || ae.offset, fe = oe.poffset, ye;
                  if (p(ve)) {
                    for (ye = Array.prototype.slice.call(ve, 0, J.length), me = 0; me < ye.length; me++)
                      a(ye[me]) || (ye[me] = fe);
                    for (me = ye.length; me < J.length; me++)
                      ye.push(fe);
                    oe.poffset = ye;
                  } else
                    ve !== void 0 && (oe.poffset = ve);
                  var Ce = ae._width || ae.width, Re = oe.barwidth;
                  if (p(Ce)) {
                    var Be = Array.prototype.slice.call(Ce, 0, J.length);
                    for (me = 0; me < Be.length; me++)
                      a(Be[me]) || (Be[me] = Re);
                    for (me = Be.length; me < J.length; me++)
                      Be.push(Re);
                    if (oe.barwidth = Be, ve === void 0) {
                      for (ye = [], me = 0; me < J.length; me++)
                        ye.push(fe + (Re - Be[me]) / 2);
                      oe.poffset = ye;
                    }
                  } else
                    Ce !== void 0 && (oe.barwidth = Ce, ve === void 0 && (oe.poffset = fe + (Re - Ce) / 2));
                }
              }
              function R(U, te) {
                for (var se = te.traces, me = X(U), J = 0; J < se.length; J++)
                  for (var W = se[J], ae = W[0].t, oe = ae.poffset, ve = p(oe), fe = ae.barwidth, ye = p(fe), Ce = 0; Ce < W.length; Ce++) {
                    var Re = W[Ce], Be = Re.w = ye ? fe[Ce] : fe;
                    Re.p === void 0 && (Re.p = Re[me], Re["orig_" + me] = Re[me]);
                    var xe = (ve ? oe[Ce] : oe) + Be / 2;
                    Re[me] = Re.p + xe;
                  }
              }
              function g(U, te, se) {
                var me = te.traces, J = te.minDiff, W = J / 2;
                u.minDtick(U, te.minDiff, te.distinctPositions[0], se);
                for (var ae = 0; ae < me.length; ae++) {
                  var oe = me[ae], ve = oe[0], fe = ve.trace, ye = [], Ce, Re, Be, xe;
                  for (xe = 0; xe < oe.length; xe++)
                    Ce = oe[xe], Re = Ce.p - W, Be = Ce.p + W, ye.push(Re, Be);
                  if (fe.width || fe.offset) {
                    var Me = ve.t, De = Me.poffset, Z = Me.barwidth, ee = p(De), ie = p(Z);
                    for (xe = 0; xe < oe.length; xe++) {
                      Ce = oe[xe];
                      var G = ee ? De[xe] : De, H = ie ? Z[xe] : Z;
                      Re = Ce.p + G, Be = Re + H, ye.push(Re, Be);
                    }
                  }
                  fe._extremes[U._id] = u.findExtremes(U, ye, {
                    padded: !1
                  });
                }
              }
              function I(U, te) {
                for (var se = te.traces, me = X(U), J = 0; J < se.length; J++) {
                  for (var W = se[J], ae = W[0].trace, oe = ae.type === "scatter", ve = ae.orientation === "v", fe = [], ye = !1, Ce = 0; Ce < W.length; Ce++) {
                    var Re = W[Ce], Be = oe ? 0 : Re.b, xe = oe ? ve ? Re.y : Re.x : Be + Re.s;
                    Re[me] = xe, fe.push(xe), Re.hasB && fe.push(Be), (!Re.hasB || !Re.b) && (ye = !0);
                  }
                  ae._extremes[U._id] = u.findExtremes(U, fe, {
                    tozero: ye,
                    padded: !0
                  });
                }
              }
              function O(U, te, se) {
                var me = X(U), J = te.traces, W, ae, oe, ve, fe, ye;
                for (ve = 0; ve < J.length; ve++)
                  if (W = J[ve], ae = W[0].trace, ae.type === "funnel")
                    for (fe = 0; fe < W.length; fe++)
                      ye = W[fe], ye.s !== l && te.put(ye.p, -0.5 * ye.s);
                for (ve = 0; ve < J.length; ve++) {
                  W = J[ve], ae = W[0].trace, oe = ae.type === "funnel";
                  var Ce = [];
                  for (fe = 0; fe < W.length; fe++)
                    if (ye = W[fe], ye.s !== l) {
                      var Re;
                      oe ? Re = ye.s : Re = ye.s + ye.b;
                      var Be = te.put(ye.p, Re), xe = Be + Re;
                      ye.b = Be, ye[me] = xe, se.norm || (Ce.push(xe), ye.hasB && Ce.push(Be));
                    }
                  se.norm || (ae._extremes[U._id] = u.findExtremes(U, Ce, {
                    // N.B. we don't stack base with 'base',
                    // so set tozero:true always!
                    tozero: !0,
                    padded: !0
                  }));
                }
              }
              function $(U) {
                for (var te = U.traces, se = 0; se < te.length; se++)
                  for (var me = te[se], J = 0; J < me.length; J++) {
                    var W = me[J];
                    W.s !== l && U.put(W.p, W.b + W.s);
                  }
              }
              function Y(U, te) {
                for (var se = U.traces, me = 0; me < se.length; me++) {
                  var J = se[me], W = J[0].trace;
                  if (W.base === void 0)
                    for (var ae = new d([J], {
                      posAxis: te,
                      sepNegVal: !0,
                      overlapNoMerge: !0
                    }), oe = 0; oe < J.length; oe++) {
                      var ve = J[oe];
                      if (ve.p !== l) {
                        var fe = ae.put(ve.p, ve.b + ve.s);
                        fe && (ve.b = fe);
                      }
                    }
                }
              }
              function ne(U, te, se) {
                var me = te.traces, J = X(U), W = se.norm === "fraction" ? 1 : 100, ae = W / 1e9, oe = U.l2c(U.c2l(0)), ve = se.mode === "stack" ? W : oe;
                function fe(H) {
                  return a(U.c2l(H)) && (H < oe - ae || H > ve + ae || !a(oe));
                }
                for (var ye = 0; ye < me.length; ye++) {
                  for (var Ce = me[ye], Re = Ce[0].trace, Be = [], xe = !1, Me = !1, De = 0; De < Ce.length; De++) {
                    var Z = Ce[De];
                    if (Z.s !== l) {
                      var ee = Math.abs(W / te.get(Z.p, Z.s));
                      Z.b *= ee, Z.s *= ee;
                      var ie = Z.b, G = ie + Z.s;
                      Z[J] = G, Be.push(G), Me = Me || fe(G), Z.hasB && (Be.push(ie), Me = Me || fe(ie)), (!Z.hasB || !Z.b) && (xe = !0);
                    }
                  }
                  Re._extremes[U._id] = u.findExtremes(U, Be, {
                    tozero: xe,
                    padded: Me
                  });
                }
              }
              function q(U, te, se, me) {
                for (var J = X(me), W = 0; W < U.length; W++)
                  for (var ae = U[W], oe = 0; oe < ae.length; oe++) {
                    var ve = ae[oe], fe = ve[J];
                    ve._sMin = te[fe], ve._sMax = se[fe];
                  }
              }
              function B(U, te) {
                var se = X(te), me = {}, J, W, ae, oe = 1 / 0, ve = -1 / 0;
                for (J = 0; J < U.length; J++)
                  for (ae = U[J], W = 0; W < ae.length; W++) {
                    var fe = ae[W].p;
                    a(fe) && (oe = Math.min(oe, fe), ve = Math.max(ve, fe));
                  }
                var ye = 1e4 / (ve - oe), Ce = me.round = function(he) {
                  return String(Math.round(ye * (he - oe)));
                }, Re = {}, Be = {}, xe = U.some(function(he) {
                  var be = he[0].trace;
                  return "marker" in be && be.marker.cornerradius;
                });
                for (J = 0; J < U.length; J++) {
                  ae = U[J], ae[0].t.extents = me;
                  var Me = ae[0].t.poffset, De = p(Me);
                  for (W = 0; W < ae.length; W++) {
                    var Z = ae[W], ee = Z[se] - Z.w / 2;
                    if (a(ee)) {
                      var ie = Z[se] + Z.w / 2, G = Ce(Z.p);
                      me[G] ? me[G] = [Math.min(ee, me[G][0]), Math.max(ie, me[G][1])] : me[G] = [ee, ie];
                    }
                    if (Z.p0 = Z.p + (De ? Me[W] : Me), Z.p1 = Z.p0 + Z.w, Z.s0 = Z.b, Z.s1 = Z.s0 + Z.s, xe) {
                      var H = Math.min(Z.s0, Z.s1) || 0, ce = Math.max(Z.s0, Z.s1) || 0, j = Z[se];
                      Re[j] = j in Re ? Math.min(Re[j], H) : H, Be[j] = j in Be ? Math.max(Be[j], ce) : ce;
                    }
                  }
                }
                xe && q(U, Re, Be, te);
              }
              function X(U) {
                return U._id.charAt(0);
              }
              M.exports = {
                crossTraceCalc: h,
                setGroupPositions: i
              };
            }
          ),
          /***/
          1508: (
            /***/
            function(M, L, r) {
              var a = r(8248), p = r(3400), l = r(6308), f = r(4040), u = r(3980), c = r(1147), d = r(5592), h = r(11), i = r(832), b = p.coerceFont;
              function x(S, T, k, A) {
                function R(Y, ne) {
                  return p.coerce(S, T, i, Y, ne);
                }
                var g = u(S, T, A, R);
                if (!g) {
                  T.visible = !1;
                  return;
                }
                c(S, T, A, R), R("xhoverformat"), R("yhoverformat"), R("zorder"), R("orientation", T.x && !T.y ? "h" : "v"), R("base"), R("offset"), R("width"), R("text"), R("hovertext"), R("hovertemplate");
                var I = R("textposition");
                w(S, T, A, R, I, {
                  moduleHasSelected: !0,
                  moduleHasUnselected: !0,
                  moduleHasConstrain: !0,
                  moduleHasCliponaxis: !0,
                  moduleHasTextangle: !0,
                  moduleHasInsideanchor: !0
                }), d(S, T, R, k, A);
                var O = (T.marker.line || {}).color, $ = f.getComponentMethod("errorbars", "supplyDefaults");
                $(S, T, O || l.defaultLine, {
                  axis: "y"
                }), $(S, T, O || l.defaultLine, {
                  axis: "x",
                  inherit: "y"
                }), p.coerceSelectionMarkerOpacity(T, R);
              }
              function D(S, T) {
                var k, A;
                function R(O, $) {
                  return p.coerce(A._input, A, i, O, $);
                }
                for (var g = 0; g < S.length; g++)
                  if (A = S[g], A.type === "bar") {
                    k = A._input;
                    var I = R("marker.cornerradius", T.barcornerradius);
                    A.marker && (A.marker.cornerradius = C(I)), T.barmode === "group" && h(k, A, T, R);
                  }
              }
              function C(S) {
                if (a(S)) {
                  if (S = +S, S >= 0)
                    return S;
                } else if (typeof S == "string" && (S = S.trim(), S.slice(-1) === "%" && a(S.slice(0, -1)) && (S = +S.slice(0, -1), S >= 0)))
                  return S + "%";
              }
              function w(S, T, k, A, R, g) {
                g = g || {};
                var I = g.moduleHasSelected !== !1, O = g.moduleHasUnselected !== !1, $ = g.moduleHasConstrain !== !1, Y = g.moduleHasCliponaxis !== !1, ne = g.moduleHasTextangle !== !1, q = g.moduleHasInsideanchor !== !1, B = !!g.hasPathbar, X = Array.isArray(R) || R === "auto", U = X || R === "inside", te = X || R === "outside";
                if (U || te) {
                  var se = b(A, "textfont", k.font), me = p.extendFlat({}, se), J = S.textfont && S.textfont.color, W = !J;
                  if (W && delete me.color, b(A, "insidetextfont", me), B) {
                    var ae = p.extendFlat({}, se);
                    W && delete ae.color, b(A, "pathbar.textfont", ae);
                  }
                  te && b(A, "outsidetextfont", se), I && A("selected.textfont.color"), O && A("unselected.textfont.color"), $ && A("constraintext"), Y && A("cliponaxis"), ne && A("textangle"), A("texttemplate");
                }
                U && q && A("insidetextanchor");
              }
              M.exports = {
                supplyDefaults: x,
                crossTraceDefaults: D,
                handleText: w,
                validateCornerradius: C
              };
            }
          ),
          /***/
          2160: (
            /***/
            function(M) {
              M.exports = function(r, a, p) {
                return r.x = "xVal" in a ? a.xVal : a.x, r.y = "yVal" in a ? a.yVal : a.y, a.xa && (r.xaxis = a.xa), a.ya && (r.yaxis = a.ya), p.orientation === "h" ? (r.label = r.y, r.value = r.x) : (r.label = r.x, r.value = r.y), r;
              };
            }
          ),
          /***/
          444: (
            /***/
            function(M, L, r) {
              var a = r(8248), p = r(9760), l = r(3400).isArrayOrTypedArray;
              L.coerceString = function(f, u, c) {
                if (typeof u == "string") {
                  if (u || !f.noBlank)
                    return u;
                } else if ((typeof u == "number" || u === !0) && !f.strict)
                  return String(u);
                return c !== void 0 ? c : f.dflt;
              }, L.coerceNumber = function(f, u, c) {
                if (a(u)) {
                  u = +u;
                  var d = f.min, h = f.max, i = d !== void 0 && u < d || h !== void 0 && u > h;
                  if (!i)
                    return u;
                }
                return c !== void 0 ? c : f.dflt;
              }, L.coerceColor = function(f, u, c) {
                return p(u).isValid() ? u : c !== void 0 ? c : f.dflt;
              }, L.coerceEnumerated = function(f, u, c) {
                return f.coerceNumber && (u = +u), f.values.indexOf(u) !== -1 ? u : c !== void 0 ? c : f.dflt;
              }, L.getValue = function(f, u) {
                var c;
                return l(f) ? u < f.length && (c = f[u]) : c = f, c;
              }, L.getLineWidth = function(f, u) {
                var c = 0 < u.mlw ? u.mlw : l(f.marker.line.width) ? 0 : f.marker.line.width;
                return c;
              };
            }
          ),
          /***/
          1020: (
            /***/
            function(M, L, r) {
              var a = r(3024), p = r(4040), l = r(6308), f = r(3400).fillText, u = r(444).getLineWidth, c = r(4460).hoverLabelText, d = r(9032).BADNUM;
              function h(x, D, C, w, S) {
                var T = i(x, D, C, w, S);
                if (T) {
                  var k = T.cd, A = k[0].trace, R = k[T.index];
                  return T.color = b(A, R), p.getComponentMethod("errorbars", "hoverInfo")(R, A, T), [T];
                }
              }
              function i(x, D, C, w, S) {
                var T = x.cd, k = T[0].trace, A = T[0].t, R = w === "closest", g = k.type === "waterfall", I = x.maxHoverDistance, O = x.maxSpikeDistance, $, Y, ne, q, B, X, U;
                k.orientation === "h" ? ($ = C, Y = D, ne = "y", q = "x", B = Be, X = ye) : ($ = D, Y = C, ne = "x", q = "y", X = Be, B = ye);
                var te = k[ne + "period"], se = R || te;
                function me(he) {
                  return W(he, -1);
                }
                function J(he) {
                  return W(he, 1);
                }
                function W(he, be) {
                  var we = he.w;
                  return he[ne] + be * we / 2;
                }
                function ae(he) {
                  return he[ne + "End"] - he[ne + "Start"];
                }
                var oe = R ? me : te ? function(he) {
                  return he.p - ae(he) / 2;
                } : function(he) {
                  return Math.min(me(he), he.p - A.bardelta / 2);
                }, ve = R ? J : te ? function(he) {
                  return he.p + ae(he) / 2;
                } : function(he) {
                  return Math.max(J(he), he.p + A.bardelta / 2);
                };
                function fe(he, be, we) {
                  return S.finiteRange && (we = 0), a.inbox(he - $, be - $, we + Math.min(1, Math.abs(be - he) / U) - 1);
                }
                function ye(he) {
                  return fe(oe(he), ve(he), I);
                }
                function Ce(he) {
                  return fe(me(he), J(he), O);
                }
                function Re(he) {
                  var be = he[q];
                  if (g) {
                    var we = Math.abs(he.rawS) || 0;
                    Y > 0 ? be += we : Y < 0 && (be -= we);
                  }
                  return be;
                }
                function Be(he) {
                  var be = Y, we = he.b, Ie = Re(he);
                  return a.inbox(we - be, Ie - be, I + (Ie - be) / (Ie - we) - 1);
                }
                function xe(he) {
                  var be = Y, we = he.b, Ie = Re(he);
                  return a.inbox(we - be, Ie - be, O + (Ie - be) / (Ie - we) - 1);
                }
                var Me = x[ne + "a"], De = x[q + "a"];
                U = Math.abs(Me.r2c(Me.range[1]) - Me.r2c(Me.range[0]));
                function Z(he) {
                  return (B(he) + X(he)) / 2;
                }
                var ee = a.getDistanceFunction(w, B, X, Z);
                if (a.getClosest(T, ee, x), x.index !== !1 && T[x.index].p !== d) {
                  se || (oe = function(he) {
                    return Math.min(me(he), he.p - A.bargroupwidth / 2);
                  }, ve = function(he) {
                    return Math.max(J(he), he.p + A.bargroupwidth / 2);
                  });
                  var ie = x.index, G = T[ie], H = k.base ? G.b + G.s : G.s;
                  x[q + "0"] = x[q + "1"] = De.c2p(G[q], !0), x[q + "LabelVal"] = H;
                  var ce = A.extents[A.extents.round(G.p)];
                  x[ne + "0"] = Me.c2p(R ? oe(G) : ce[0], !0), x[ne + "1"] = Me.c2p(R ? ve(G) : ce[1], !0);
                  var j = G.orig_p !== void 0;
                  return x[ne + "LabelVal"] = j ? G.orig_p : G.p, x.labelLabel = c(Me, x[ne + "LabelVal"], k[ne + "hoverformat"]), x.valueLabel = c(De, x[q + "LabelVal"], k[q + "hoverformat"]), x.baseLabel = c(De, G.b, k[q + "hoverformat"]), x.spikeDistance = (xe(G) + Ce(G)) / 2, x[ne + "Spike"] = Me.c2p(G.p, !0), f(G, k, x), x.hovertemplate = k.hovertemplate, x;
                }
              }
              function b(x, D) {
                var C = D.mcc || x.marker.color, w = D.mlcc || x.marker.line.color, S = u(x, D);
                if (l.opacity(C))
                  return C;
                if (l.opacity(w) && S)
                  return w;
              }
              M.exports = {
                hoverPoints: h,
                hoverOnBars: i,
                getTraceColor: b
              };
            }
          ),
          /***/
          1132: (
            /***/
            function(M, L, r) {
              M.exports = {
                attributes: r(832),
                layoutAttributes: r(9324),
                supplyDefaults: r(1508).supplyDefaults,
                crossTraceDefaults: r(1508).crossTraceDefaults,
                supplyLayoutDefaults: r(7156),
                calc: r(9439),
                crossTraceCalc: r(6376).crossTraceCalc,
                colorbar: r(5528),
                arraysToCalcdata: r(4664),
                plot: r(8184).plot,
                style: r(100).style,
                styleOnSelect: r(100).styleOnSelect,
                hoverPoints: r(1020).hoverPoints,
                eventData: r(2160),
                selectPoints: r(5784),
                moduleType: "trace",
                name: "bar",
                basePlotModule: r(7952),
                categories: ["bar-like", "cartesian", "svg", "bar", "oriented", "errorBarsOK", "showLegend", "zoomScale"],
                animatable: !0,
                meta: {}
              };
            }
          ),
          /***/
          9324: (
            /***/
            function(M) {
              M.exports = {
                barmode: {
                  valType: "enumerated",
                  values: ["stack", "group", "overlay", "relative"],
                  dflt: "group",
                  editType: "calc"
                },
                barnorm: {
                  valType: "enumerated",
                  values: ["", "fraction", "percent"],
                  dflt: "",
                  editType: "calc"
                },
                bargap: {
                  valType: "number",
                  min: 0,
                  max: 1,
                  editType: "calc"
                },
                bargroupgap: {
                  valType: "number",
                  min: 0,
                  max: 1,
                  dflt: 0,
                  editType: "calc"
                },
                barcornerradius: {
                  valType: "any",
                  editType: "calc"
                }
              };
            }
          ),
          /***/
          7156: (
            /***/
            function(M, L, r) {
              var a = r(4040), p = r(4460), l = r(3400), f = r(9324), u = r(1508).validateCornerradius;
              M.exports = function(c, d, h) {
                function i(g, I) {
                  return l.coerce(c, d, f, g, I);
                }
                for (var b = !1, x = !1, D = !1, C = {}, w = i("barmode"), S = 0; S < h.length; S++) {
                  var T = h[S];
                  if (a.traceIs(T, "bar") && T.visible)
                    b = !0;
                  else
                    continue;
                  if (w === "group") {
                    var k = T.xaxis + T.yaxis;
                    C[k] && (D = !0), C[k] = !0;
                  }
                  if (T.visible && T.type === "histogram") {
                    var A = p.getFromId({
                      _fullLayout: d
                    }, T[T.orientation === "v" ? "xaxis" : "yaxis"]);
                    A.type !== "category" && (x = !0);
                  }
                }
                if (!b) {
                  delete d.barmode;
                  return;
                }
                w !== "overlay" && i("barnorm"), i("bargap", x && !D ? 0 : 0.2), i("bargroupgap");
                var R = i("barcornerradius");
                d.barcornerradius = u(R);
              };
            }
          ),
          /***/
          8184: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(8248), l = r(3400), f = r(2736), u = r(6308), c = r(3616), d = r(4040), h = r(4460).tickText, i = r(2744), b = i.recordMinTextSize, x = i.clearMinTextSize, D = r(100), C = r(444), w = r(8048), S = r(832), T = S.text, k = S.textposition, A = r(624).appendArrayPointValue, R = w.TEXTPAD;
              function g(ye) {
                return ye.id;
              }
              function I(ye) {
                if (ye.ids)
                  return g;
              }
              function O(ye) {
                return (ye > 0) - (ye < 0);
              }
              function $(ye, Ce) {
                return ye < Ce ? 1 : -1;
              }
              function Y(ye, Ce, Re, Be) {
                var xe = [], Me = [], De = Be ? Ce : Re, Z = Be ? Re : Ce;
                return xe[0] = De.c2p(ye.s0, !0), Me[0] = Z.c2p(ye.p0, !0), xe[1] = De.c2p(ye.s1, !0), Me[1] = Z.c2p(ye.p1, !0), Be ? [xe, Me] : [Me, xe];
              }
              function ne(ye, Ce, Re, Be) {
                if (!Ce.uniformtext.mode && q(Re)) {
                  var xe;
                  return Be && (xe = Be()), ye.transition().duration(Re.duration).ease(Re.easing).each("end", function() {
                    xe && xe();
                  }).each("interrupt", function() {
                    xe && xe();
                  });
                } else
                  return ye;
              }
              function q(ye) {
                return ye && ye.duration > 0;
              }
              function B(ye, Ce, Re, Be, xe, Me) {
                var De = Ce.xaxis, Z = Ce.yaxis, ee = ye._fullLayout, ie = ye._context.staticPlot;
                xe || (xe = {
                  mode: ee.barmode,
                  norm: ee.barmode,
                  gap: ee.bargap,
                  groupgap: ee.bargroupgap
                }, x("bar", ee));
                var G = l.makeTraceGroups(Be, Re, "trace bars").each(function(H) {
                  var ce = a.select(this), j = H[0].trace, he = H[0].t, be = j.type === "waterfall", we = j.type === "funnel", Ie = j.type === "histogram", Ge = j.type === "bar", Ve = Ge || we, Je = 0;
                  be && j.connector.visible && j.connector.mode === "between" && (Je = j.connector.line.width / 2);
                  var et = j.orientation === "h", at = q(xe), Le = l.ensureSingle(ce, "g", "points"), ze = I(j), Oe = Le.selectAll("g.point").data(l.identity, ze);
                  Oe.enter().append("g").classed("point", !0), Oe.exit().remove(), Oe.each(function(it, ut) {
                    var wt = a.select(this), kt = Y(it, De, Z, et), Ot = kt[0][0], Lt = kt[0][1], Mt = kt[1][0], Ut = kt[1][1], Ct = (et ? Lt - Ot : Ut - Mt) === 0;
                    Ct && Ve && C.getLineWidth(j, it) && (Ct = !1), Ct || (Ct = !p(Ot) || !p(Lt) || !p(Mt) || !p(Ut)), it.isBlank = Ct, Ct && (et ? Lt = Ot : Ut = Mt), Je && !Ct && (et ? (Ot -= $(Ot, Lt) * Je, Lt += $(Ot, Lt) * Je) : (Mt -= $(Mt, Ut) * Je, Ut += $(Mt, Ut) * Je));
                    var jt, nr;
                    if (j.type === "waterfall") {
                      if (!Ct) {
                        var Jt = j[it.dir].marker;
                        jt = Jt.line.width, nr = Jt.color;
                      }
                    } else
                      jt = C.getLineWidth(j, it), nr = it.mc || j.marker.color;
                    function Wt(lr) {
                      var Tr = a.round(jt / 2 % 1, 2);
                      return xe.gap === 0 && xe.groupgap === 0 ? a.round(Math.round(lr) - Tr, 2) : lr;
                    }
                    function qe(lr, Tr, Gr) {
                      return Gr && lr === Tr ? lr : Math.abs(lr - Tr) >= 2 ? Wt(lr) : (
                        // but if it's very thin, expand it so it's
                        // necessarily visible, even if it might overlap
                        // its neighbor
                        lr > Tr ? Math.ceil(lr) : Math.floor(lr)
                      );
                    }
                    var Ue = u.opacity(nr), We = Ue < 1 || jt > 0.01 ? Wt : qe;
                    ye._context.staticPlot || (Ot = We(Ot, Lt, et), Lt = We(Lt, Ot, et), Mt = We(Mt, Ut, !et), Ut = We(Ut, Mt, !et));
                    var je = et ? De.c2p : Z.c2p, lt;
                    it.s0 > 0 ? lt = it._sMax : it.s0 < 0 ? lt = it._sMin : lt = it.s1 > 0 ? it._sMax : it._sMin;
                    function Se(lr, Tr) {
                      if (!lr)
                        return 0;
                      var Gr = Math.abs(et ? Ut - Mt : Lt - Ot), Dr = Math.abs(et ? Lt - Ot : Ut - Mt), gr = We(Math.abs(je(lt, !0) - je(0, !0))), Er = it.hasB ? Math.min(Gr / 2, Dr / 2) : Math.min(Gr / 2, gr), Cr;
                      if (Tr === "%") {
                        var zr = Math.min(50, lr);
                        Cr = Gr * (zr / 100);
                      } else
                        Cr = lr;
                      return We(Math.max(Math.min(Cr, Er), 0));
                    }
                    var Pe = Ge || Ie ? Se(he.cornerradiusvalue, he.cornerradiusform) : 0, Ye, Ze, rt = "M" + Ot + "," + Mt + "V" + Ut + "H" + Lt + "V" + Mt + "Z", tt = 0;
                    if (Pe && it.s) {
                      var Ft = O(it.s0) === 0 || O(it.s) === O(it.s0) ? it.s1 : it.s0;
                      if (tt = We(it.hasB ? 0 : Math.abs(je(lt, !0) - je(Ft, !0))), tt < Pe) {
                        var Dt = $(Ot, Lt), dt = $(Mt, Ut), st = Dt === -dt ? 1 : 0;
                        if (et)
                          if (it.hasB)
                            Ye = "M" + (Ot + Pe * Dt) + "," + Mt + "A " + Pe + "," + Pe + " 0 0 " + st + " " + Ot + "," + (Mt + Pe * dt) + "V" + (Ut - Pe * dt) + "A " + Pe + "," + Pe + " 0 0 " + st + " " + (Ot + Pe * Dt) + "," + Ut + "H" + (Lt - Pe * Dt) + "A " + Pe + "," + Pe + " 0 0 " + st + " " + Lt + "," + (Ut - Pe * dt) + "V" + (Mt + Pe * dt) + "A " + Pe + "," + Pe + " 0 0 " + st + " " + (Lt - Pe * Dt) + "," + Mt + "Z";
                          else {
                            Ze = Math.abs(Lt - Ot) + tt;
                            var Nt = Ze < Pe ? Pe - Math.sqrt(Ze * (2 * Pe - Ze)) : 0, ar = tt > 0 ? Math.sqrt(tt * (2 * Pe - tt)) : 0, ur = Dt > 0 ? Math.max : Math.min;
                            Ye = "M" + Ot + "," + Mt + "V" + (Ut - Nt * dt) + "H" + ur(Lt - (Pe - tt) * Dt, Ot) + "A " + Pe + "," + Pe + " 0 0 " + st + " " + Lt + "," + (Ut - Pe * dt - ar) + "V" + (Mt + Pe * dt + ar) + "A " + Pe + "," + Pe + " 0 0 " + st + " " + ur(Lt - (Pe - tt) * Dt, Ot) + "," + (Mt + Nt * dt) + "Z";
                          }
                        else if (it.hasB)
                          Ye = "M" + (Ot + Pe * Dt) + "," + Mt + "A " + Pe + "," + Pe + " 0 0 " + st + " " + Ot + "," + (Mt + Pe * dt) + "V" + (Ut - Pe * dt) + "A " + Pe + "," + Pe + " 0 0 " + st + " " + (Ot + Pe * Dt) + "," + Ut + "H" + (Lt - Pe * Dt) + "A " + Pe + "," + Pe + " 0 0 " + st + " " + Lt + "," + (Ut - Pe * dt) + "V" + (Mt + Pe * dt) + "A " + Pe + "," + Pe + " 0 0 " + st + " " + (Lt - Pe * Dt) + "," + Mt + "Z";
                        else {
                          Ze = Math.abs(Ut - Mt) + tt;
                          var Or = Ze < Pe ? Pe - Math.sqrt(Ze * (2 * Pe - Ze)) : 0, Fr = tt > 0 ? Math.sqrt(tt * (2 * Pe - tt)) : 0, br = dt > 0 ? Math.max : Math.min;
                          Ye = "M" + (Ot + Or * Dt) + "," + Mt + "V" + br(Ut - (Pe - tt) * dt, Mt) + "A " + Pe + "," + Pe + " 0 0 " + st + " " + (Ot + Pe * Dt - Fr) + "," + Ut + "H" + (Lt - Pe * Dt + Fr) + "A " + Pe + "," + Pe + " 0 0 " + st + " " + (Lt - Or * Dt) + "," + br(Ut - (Pe - tt) * dt, Mt) + "V" + Mt + "Z";
                        }
                      } else
                        Ye = rt;
                    } else
                      Ye = rt;
                    var or = ne(l.ensureSingle(wt, "path"), ee, xe, Me);
                    if (or.style("vector-effect", ie ? "none" : "non-scaling-stroke").attr("d", isNaN((Lt - Ot) * (Ut - Mt)) || Ct && ye._context.staticPlot ? "M0,0Z" : Ye).call(c.setClipUrl, Ce.layerClipId, ye), !ee.uniformtext.mode && at) {
                      var Rr = c.makePointStyleFns(j);
                      c.singlePointStyle(it, or, j, Rr, ye);
                    }
                    X(ye, Ce, wt, H, ut, Ot, Lt, Mt, Ut, Pe, tt, xe, Me), Ce.layerClipId && c.hideOutsideRangePoint(it, wt.select("text"), De, Z, j.xcalendar, j.ycalendar);
                  });
                  var Xe = j.cliponaxis === !1;
                  c.setClipUrl(ce, Xe ? null : Ce.layerClipId, ye);
                });
                d.getComponentMethod("errorbars", "plot")(ye, G, Ce, xe);
              }
              function X(ye, Ce, Re, Be, xe, Me, De, Z, ee, ie, G, H, ce) {
                var j = Ce.xaxis, he = Ce.yaxis, be = ye._fullLayout, we;
                function Ie(Ze, rt, tt) {
                  var Ft = l.ensureSingle(Ze, "text").text(rt).attr({
                    class: "bartext bartext-" + we,
                    "text-anchor": "middle",
                    // prohibit tex interpretation until we can handle
                    // tex and regular text together
                    "data-notex": 1
                  }).call(c.font, tt).call(f.convertToTspans, ye);
                  return Ft;
                }
                var Ge = Be[0].trace, Ve = Ge.orientation === "h", Je = ae(be, Be, xe, j, he);
                we = oe(Ge, xe);
                var et = H.mode === "stack" || H.mode === "relative", at = Be[xe], Le = !et || at._outmost, ze = at.hasB, Oe = ie && ie - G > R;
                if (!Je || we === "none" || (at.isBlank || Me === De || Z === ee) && (we === "auto" || we === "inside")) {
                  Re.select("text").remove();
                  return;
                }
                var Xe = be.font, it = D.getBarColor(Be[xe], Ge), ut = D.getInsideTextFont(Ge, xe, Xe, it), wt = D.getOutsideTextFont(Ge, xe, Xe), kt = Ge.insidetextanchor || "end", Ot = Re.datum();
                Ve ? j.type === "log" && Ot.s0 <= 0 && (j.range[0] < j.range[1] ? Me = 0 : Me = j._length) : he.type === "log" && Ot.s0 <= 0 && (he.range[0] < he.range[1] ? Z = he._length : Z = 0);
                var Lt = Math.abs(De - Me), Mt = Math.abs(ee - Z), Ut = Lt - 2 * R, Ct = Mt - 2 * R, jt, nr, Jt, Wt, qe;
                if (we === "outside" && !Le && !at.hasB && (we = "inside"), we === "auto")
                  if (Le) {
                    we = "inside", qe = l.ensureUniformFontSize(ye, ut), jt = Ie(Re, Je, qe), nr = c.bBox(jt.node()), Jt = nr.width, Wt = nr.height;
                    var Ue = Jt > 0 && Wt > 0, We;
                    Oe ? ze ? We = U(Ut - 2 * ie, Ct, Jt, Wt, Ve) || U(Ut, Ct - 2 * ie, Jt, Wt, Ve) : Ve ? We = U(Ut - (ie - G), Ct, Jt, Wt, Ve) || U(Ut, Ct - 2 * (ie - G), Jt, Wt, Ve) : We = U(Ut, Ct - (ie - G), Jt, Wt, Ve) || U(Ut - 2 * (ie - G), Ct, Jt, Wt, Ve) : We = U(Ut, Ct, Jt, Wt, Ve), Ue && We ? we = "inside" : (we = "outside", jt.remove(), jt = null);
                  } else
                    we = "inside";
                if (!jt) {
                  qe = l.ensureUniformFontSize(ye, we === "outside" ? wt : ut), jt = Ie(Re, Je, qe);
                  var je = jt.attr("transform");
                  if (jt.attr("transform", ""), nr = c.bBox(jt.node()), Jt = nr.width, Wt = nr.height, jt.attr("transform", je), Jt <= 0 || Wt <= 0) {
                    jt.remove();
                    return;
                  }
                }
                var lt = Ge.textangle, Se, Pe;
                we === "outside" ? (Pe = Ge.constraintext === "both" || Ge.constraintext === "outside", Se = W(Me, De, Z, ee, nr, {
                  isHorizontal: Ve,
                  constrained: Pe,
                  angle: lt
                })) : (Pe = Ge.constraintext === "both" || Ge.constraintext === "inside", Se = me(Me, De, Z, ee, nr, {
                  isHorizontal: Ve,
                  constrained: Pe,
                  angle: lt,
                  anchor: kt,
                  hasB: ze,
                  r: ie,
                  overhead: G
                })), Se.fontSize = qe.size, b(Ge.type === "histogram" ? "bar" : Ge.type, Se, be), at.transform = Se;
                var Ye = ne(jt, be, H, ce);
                l.setTransormAndDisplay(Ye, Se);
              }
              function U(ye, Ce, Re, Be, xe) {
                if (ye < 0 || Ce < 0)
                  return !1;
                var Me = Re <= ye && Be <= Ce, De = Re <= Ce && Be <= ye, Z = xe ? ye >= Re * (Ce / Be) : Ce >= Be * (ye / Re);
                return Me || De || Z;
              }
              function te(ye) {
                return ye === "auto" ? 0 : ye;
              }
              function se(ye, Ce) {
                var Re = Math.PI / 180 * Ce, Be = Math.abs(Math.sin(Re)), xe = Math.abs(Math.cos(Re));
                return {
                  x: ye.width * xe + ye.height * Be,
                  y: ye.width * Be + ye.height * xe
                };
              }
              function me(ye, Ce, Re, Be, xe, Me) {
                var De = !!Me.isHorizontal, Z = !!Me.constrained, ee = Me.angle || 0, ie = Me.anchor, G = ie === "end", H = ie === "start", ce = Me.leftToRight || 0, j = (ce + 1) / 2, he = 1 - j, be = Me.hasB, we = Me.r, Ie = Me.overhead, Ge = xe.width, Ve = xe.height, Je = Math.abs(Ce - ye), et = Math.abs(Be - Re), at = Je > 2 * R && et > 2 * R ? R : 0;
                Je -= 2 * at, et -= 2 * at;
                var Le = te(ee);
                ee === "auto" && !(Ge <= Je && Ve <= et) && (Ge > Je || Ve > et) && (!(Ge > et || Ve > Je) || Ge < Ve != Je < et) && (Le += 90);
                var ze = se(xe, Le), Oe, Xe;
                if (we && we - Ie > R) {
                  var it = J(ye, Ce, Re, Be, ze, we, Ie, De, be);
                  Oe = it.scale, Xe = it.pad;
                } else
                  Oe = 1, Z && (Oe = Math.min(1, Je / ze.x, et / ze.y)), Xe = 0;
                var ut = xe.left * he + xe.right * j, wt = (xe.top + xe.bottom) / 2, kt = (ye + R) * he + (Ce - R) * j, Ot = (Re + Be) / 2, Lt = 0, Mt = 0;
                if (H || G) {
                  var Ut = (De ? ze.x : ze.y) / 2;
                  we && (G || be) && (at += Xe);
                  var Ct = De ? $(ye, Ce) : $(Re, Be);
                  De ? H ? (kt = ye + Ct * at, Lt = -Ct * Ut) : (kt = Ce - Ct * at, Lt = Ct * Ut) : H ? (Ot = Re + Ct * at, Mt = -Ct * Ut) : (Ot = Be - Ct * at, Mt = Ct * Ut);
                }
                return {
                  textX: ut,
                  textY: wt,
                  targetX: kt,
                  targetY: Ot,
                  anchorX: Lt,
                  anchorY: Mt,
                  scale: Oe,
                  rotate: Le
                };
              }
              function J(ye, Ce, Re, Be, xe, Me, De, Z, ee) {
                var ie = Math.max(0, Math.abs(Ce - ye) - 2 * R), G = Math.max(0, Math.abs(Be - Re) - 2 * R), H = Me - R, ce = De ? H - Math.sqrt(H * H - (H - De) * (H - De)) : H, j = ee ? H * 2 : Z ? H - De : 2 * ce, he = ee ? H * 2 : Z ? 2 * ce : H - De, be, we, Ie, Ge, Ve;
                return xe.y / xe.x >= G / (ie - j) ? Ge = G / xe.y : xe.y / xe.x <= (G - he) / ie ? Ge = ie / xe.x : !ee && Z ? (be = xe.x * xe.x + xe.y * xe.y / 4, we = -2 * xe.x * (ie - H) - xe.y * (G / 2 - H), Ie = (ie - H) * (ie - H) + (G / 2 - H) * (G / 2 - H) - H * H, Ge = (-we + Math.sqrt(we * we - 4 * be * Ie)) / (2 * be)) : ee ? (be = (xe.x * xe.x + xe.y * xe.y) / 4, we = -xe.x * (ie / 2 - H) - xe.y * (G / 2 - H), Ie = (ie / 2 - H) * (ie / 2 - H) + (G / 2 - H) * (G / 2 - H) - H * H, Ge = (-we + Math.sqrt(we * we - 4 * be * Ie)) / (2 * be)) : (be = xe.x * xe.x / 4 + xe.y * xe.y, we = -xe.x * (ie / 2 - H) - 2 * xe.y * (G - H), Ie = (ie / 2 - H) * (ie / 2 - H) + (G - H) * (G - H) - H * H, Ge = (-we + Math.sqrt(we * we - 4 * be * Ie)) / (2 * be)), Ge = Math.min(1, Ge), Z ? Ve = Math.max(0, H - Math.sqrt(Math.max(0, H * H - (H - (G - xe.y * Ge) / 2) * (H - (G - xe.y * Ge) / 2))) - De) : Ve = Math.max(0, H - Math.sqrt(Math.max(0, H * H - (H - (ie - xe.x * Ge) / 2) * (H - (ie - xe.x * Ge) / 2))) - De), {
                  scale: Ge,
                  pad: Ve
                };
              }
              function W(ye, Ce, Re, Be, xe, Me) {
                var De = !!Me.isHorizontal, Z = !!Me.constrained, ee = Me.angle || 0, ie = xe.width, G = xe.height, H = Math.abs(Ce - ye), ce = Math.abs(Be - Re), j;
                De ? j = ce > 2 * R ? R : 0 : j = H > 2 * R ? R : 0;
                var he = 1;
                Z && (he = De ? Math.min(1, ce / G) : Math.min(1, H / ie));
                var be = te(ee), we = se(xe, be), Ie = (De ? we.x : we.y) / 2, Ge = (xe.left + xe.right) / 2, Ve = (xe.top + xe.bottom) / 2, Je = (ye + Ce) / 2, et = (Re + Be) / 2, at = 0, Le = 0, ze = De ? $(Ce, ye) : $(Re, Be);
                return De ? (Je = Ce - ze * j, at = ze * Ie) : (et = Be + ze * j, Le = -ze * Ie), {
                  textX: Ge,
                  textY: Ve,
                  targetX: Je,
                  targetY: et,
                  anchorX: at,
                  anchorY: Le,
                  scale: he,
                  rotate: be
                };
              }
              function ae(ye, Ce, Re, Be, xe) {
                var Me = Ce[0].trace, De = Me.texttemplate, Z;
                return De ? Z = ve(ye, Ce, Re, Be, xe) : Me.textinfo ? Z = fe(Ce, Re, Be, xe) : Z = C.getValue(Me.text, Re), C.coerceString(T, Z);
              }
              function oe(ye, Ce) {
                var Re = C.getValue(ye.textposition, Ce);
                return C.coerceEnumerated(k, Re);
              }
              function ve(ye, Ce, Re, Be, xe) {
                var Me = Ce[0].trace, De = l.castOption(Me, Re, "texttemplate");
                if (!De)
                  return "";
                var Z = Me.type === "histogram", ee = Me.type === "waterfall", ie = Me.type === "funnel", G = Me.orientation === "h", H, ce, j, he;
                G ? (H = "y", ce = xe, j = "x", he = Be) : (H = "x", ce = Be, j = "y", he = xe);
                function be(at) {
                  return h(ce, ce.c2l(at), !0).text;
                }
                function we(at) {
                  return h(he, he.c2l(at), !0).text;
                }
                var Ie = Ce[Re], Ge = {};
                Ge.label = Ie.p, Ge.labelLabel = Ge[H + "Label"] = be(Ie.p);
                var Ve = l.castOption(Me, Ie.i, "text");
                (Ve === 0 || Ve) && (Ge.text = Ve), Ge.value = Ie.s, Ge.valueLabel = Ge[j + "Label"] = we(Ie.s);
                var Je = {};
                A(Je, Me, Ie.i), (Z || Je.x === void 0) && (Je.x = G ? Ge.value : Ge.label), (Z || Je.y === void 0) && (Je.y = G ? Ge.label : Ge.value), (Z || Je.xLabel === void 0) && (Je.xLabel = G ? Ge.valueLabel : Ge.labelLabel), (Z || Je.yLabel === void 0) && (Je.yLabel = G ? Ge.labelLabel : Ge.valueLabel), ee && (Ge.delta = +Ie.rawS || Ie.s, Ge.deltaLabel = we(Ge.delta), Ge.final = Ie.v, Ge.finalLabel = we(Ge.final), Ge.initial = Ge.final - Ge.delta, Ge.initialLabel = we(Ge.initial)), ie && (Ge.value = Ie.s, Ge.valueLabel = we(Ge.value), Ge.percentInitial = Ie.begR, Ge.percentInitialLabel = l.formatPercent(Ie.begR), Ge.percentPrevious = Ie.difR, Ge.percentPreviousLabel = l.formatPercent(Ie.difR), Ge.percentTotal = Ie.sumR, Ge.percenTotalLabel = l.formatPercent(Ie.sumR));
                var et = l.castOption(Me, Ie.i, "customdata");
                return et && (Ge.customdata = et), l.texttemplateString(De, Ge, ye._d3locale, Je, Ge, Me._meta || {});
              }
              function fe(ye, Ce, Re, Be) {
                var xe = ye[0].trace, Me = xe.orientation === "h", De = xe.type === "waterfall", Z = xe.type === "funnel";
                function ee(et) {
                  var at = Me ? Be : Re;
                  return h(at, et, !0).text;
                }
                function ie(et) {
                  var at = Me ? Re : Be;
                  return h(at, +et, !0).text;
                }
                var G = xe.textinfo, H = ye[Ce], ce = G.split("+"), j = [], he, be = function(et) {
                  return ce.indexOf(et) !== -1;
                };
                if (be("label") && j.push(ee(ye[Ce].p)), be("text") && (he = l.castOption(xe, H.i, "text"), (he === 0 || he) && j.push(he)), De) {
                  var we = +H.rawS || H.s, Ie = H.v, Ge = Ie - we;
                  be("initial") && j.push(ie(Ge)), be("delta") && j.push(ie(we)), be("final") && j.push(ie(Ie));
                }
                if (Z) {
                  be("value") && j.push(ie(H.s));
                  var Ve = 0;
                  be("percent initial") && Ve++, be("percent previous") && Ve++, be("percent total") && Ve++;
                  var Je = Ve > 1;
                  be("percent initial") && (he = l.formatPercent(H.begR), Je && (he += " of initial"), j.push(he)), be("percent previous") && (he = l.formatPercent(H.difR), Je && (he += " of previous"), j.push(he)), be("percent total") && (he = l.formatPercent(H.sumR), Je && (he += " of total"), j.push(he));
                }
                return j.join("<br>");
              }
              M.exports = {
                plot: B,
                toMoveInsideBar: me
              };
            }
          ),
          /***/
          5784: (
            /***/
            function(M) {
              M.exports = function(a, p) {
                var l = a.cd, f = a.xaxis, u = a.yaxis, c = l[0].trace, d = c.type === "funnel", h = c.orientation === "h", i = [], b;
                if (p === !1)
                  for (b = 0; b < l.length; b++)
                    l[b].selected = 0;
                else
                  for (b = 0; b < l.length; b++) {
                    var x = l[b], D = "ct" in x ? x.ct : L(x, f, u, h, d);
                    p.contains(D, !1, b, a) ? (i.push({
                      pointNumber: b,
                      x: f.c2d(x.x),
                      y: u.c2d(x.y)
                    }), x.selected = 1) : x.selected = 0;
                  }
                return i;
              };
              function L(r, a, p, l, f) {
                var u = a.c2p(l ? r.s0 : r.p0, !0), c = a.c2p(l ? r.s1 : r.p1, !0), d = p.c2p(l ? r.p0 : r.s0, !0), h = p.c2p(l ? r.p1 : r.s1, !0);
                return f ? [(u + c) / 2, (d + h) / 2] : l ? [c, (d + h) / 2] : [(u + c) / 2, h];
              }
            }
          ),
          /***/
          2592: (
            /***/
            function(M, L, r) {
              M.exports = p;
              var a = r(3400).distinctVals;
              function p(l, f) {
                this.traces = l, this.sepNegVal = f.sepNegVal, this.overlapNoMerge = f.overlapNoMerge;
                for (var u = 1 / 0, c = f.posAxis._id.charAt(0), d = [], h = 0; h < l.length; h++) {
                  for (var i = l[h], b = 0; b < i.length; b++) {
                    var x = i[b], D = x.p;
                    D === void 0 && (D = x[c]), D !== void 0 && d.push(D);
                  }
                  i[0] && i[0].width1 && (u = Math.min(i[0].width1, u));
                }
                this.positions = d;
                var C = a(d);
                this.distinctPositions = C.vals, C.vals.length === 1 && u !== 1 / 0 ? this.minDiff = u : this.minDiff = Math.min(C.minDiff, u);
                var w = (f.posAxis || {}).type;
                (w === "category" || w === "multicategory") && (this.minDiff = 1), this.binWidth = this.minDiff, this.bins = {};
              }
              p.prototype.put = function(f, u) {
                var c = this.getLabel(f, u), d = this.bins[c] || 0;
                return this.bins[c] = d + u, d;
              }, p.prototype.get = function(f, u) {
                var c = this.getLabel(f, u);
                return this.bins[c] || 0;
              }, p.prototype.getLabel = function(f, u) {
                var c = u < 0 && this.sepNegVal ? "v" : "^", d = this.overlapNoMerge ? f : Math.round(f / this.binWidth);
                return c + d;
              };
            }
          ),
          /***/
          100: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(6308), l = r(3616), f = r(3400), u = r(4040), c = r(2744).resizeText, d = r(832), h = d.textfont, i = d.insidetextfont, b = d.outsidetextfont, x = r(444);
              function D(Y) {
                var ne = a.select(Y).selectAll('g[class^="barlayer"]').selectAll("g.trace");
                c(Y, ne, "bar");
                var q = ne.size(), B = Y._fullLayout;
                ne.style("opacity", function(X) {
                  return X[0].trace.opacity;
                }).each(function(X) {
                  (B.barmode === "stack" && q > 1 || B.bargap === 0 && B.bargroupgap === 0 && !X[0].trace.marker.line.width) && a.select(this).attr("shape-rendering", "crispEdges");
                }), ne.selectAll("g.points").each(function(X) {
                  var U = a.select(this), te = X[0].trace;
                  C(U, te, Y);
                }), u.getComponentMethod("errorbars", "style")(ne);
              }
              function C(Y, ne, q) {
                l.pointStyle(Y.selectAll("path"), ne, q), w(Y, ne, q);
              }
              function w(Y, ne, q) {
                Y.selectAll("text").each(function(B) {
                  var X = a.select(this), U = f.ensureUniformFontSize(q, A(X, B, ne, q));
                  l.font(X, U);
                });
              }
              function S(Y, ne, q) {
                var B = ne[0].trace;
                B.selectedpoints ? T(q, B, Y) : (C(q, B, Y), u.getComponentMethod("errorbars", "style")(q));
              }
              function T(Y, ne, q) {
                l.selectedPointStyle(Y.selectAll("path"), ne), k(Y.selectAll("text"), ne, q);
              }
              function k(Y, ne, q) {
                Y.each(function(B) {
                  var X = a.select(this), U;
                  if (B.selected) {
                    U = f.ensureUniformFontSize(q, A(X, B, ne, q));
                    var te = ne.selected.textfont && ne.selected.textfont.color;
                    te && (U.color = te), l.font(X, U);
                  } else
                    l.selectedTextStyle(X, ne);
                });
              }
              function A(Y, ne, q, B) {
                var X = B._fullLayout.font, U = q.textfont;
                if (Y.classed("bartext-inside")) {
                  var te = $(ne, q);
                  U = g(q, ne.i, X, te);
                } else
                  Y.classed("bartext-outside") && (U = I(q, ne.i, X));
                return U;
              }
              function R(Y, ne, q) {
                return O(h, Y.textfont, ne, q);
              }
              function g(Y, ne, q, B) {
                var X = R(Y, ne, q), U = Y._input.textfont === void 0 || Y._input.textfont.color === void 0 || Array.isArray(Y.textfont.color) && Y.textfont.color[ne] === void 0;
                return U && (X = {
                  color: p.contrast(B),
                  family: X.family,
                  size: X.size,
                  weight: X.weight,
                  style: X.style,
                  variant: X.variant,
                  textcase: X.textcase,
                  lineposition: X.lineposition,
                  shadow: X.shadow
                }), O(i, Y.insidetextfont, ne, X);
              }
              function I(Y, ne, q) {
                var B = R(Y, ne, q);
                return O(b, Y.outsidetextfont, ne, B);
              }
              function O(Y, ne, q, B) {
                ne = ne || {};
                var X = x.getValue(ne.family, q), U = x.getValue(ne.size, q), te = x.getValue(ne.color, q), se = x.getValue(ne.weight, q), me = x.getValue(ne.style, q), J = x.getValue(ne.variant, q), W = x.getValue(ne.textcase, q), ae = x.getValue(ne.lineposition, q), oe = x.getValue(ne.shadow, q);
                return {
                  family: x.coerceString(Y.family, X, B.family),
                  size: x.coerceNumber(Y.size, U, B.size),
                  color: x.coerceColor(Y.color, te, B.color),
                  weight: x.coerceString(Y.weight, se, B.weight),
                  style: x.coerceString(Y.style, me, B.style),
                  variant: x.coerceString(Y.variant, J, B.variant),
                  textcase: x.coerceString(Y.variant, W, B.textcase),
                  lineposition: x.coerceString(Y.variant, ae, B.lineposition),
                  shadow: x.coerceString(Y.variant, oe, B.shadow)
                };
              }
              function $(Y, ne) {
                return ne.type === "waterfall" ? ne[Y.dir].marker.color : Y.mcc || Y.mc || ne.marker.color;
              }
              M.exports = {
                style: D,
                styleTextPoints: w,
                styleOnSelect: S,
                getInsideTextFont: g,
                getOutsideTextFont: I,
                getBarColor: $,
                resizeText: c
              };
            }
          ),
          /***/
          5592: (
            /***/
            function(M, L, r) {
              var a = r(6308), p = r(4288).hasColorscale, l = r(7260), f = r(3400).coercePattern;
              M.exports = function(c, d, h, i, b) {
                var x = h("marker.color", i), D = p(c, "marker");
                D && l(c, d, b, h, {
                  prefix: "marker.",
                  cLetter: "c"
                }), h("marker.line.color", a.defaultLine), p(c, "marker.line") && l(c, d, b, h, {
                  prefix: "marker.line.",
                  cLetter: "c"
                }), h("marker.line.width"), h("marker.opacity"), f(h, "marker.pattern", x, D), h("selected.marker.color"), h("unselected.marker.color");
              };
            }
          ),
          /***/
          2744: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(3400);
              function l(d, h, i) {
                var b = d._fullLayout, x = b["_" + i + "Text_minsize"];
                if (x) {
                  var D = b.uniformtext.mode === "hide", C;
                  switch (i) {
                    case "funnelarea":
                    case "pie":
                    case "sunburst":
                      C = "g.slice";
                      break;
                    case "treemap":
                    case "icicle":
                      C = "g.slice, g.pathbar";
                      break;
                    default:
                      C = "g.points > g.point";
                  }
                  h.selectAll(C).each(function(w) {
                    var S = w.transform;
                    if (S) {
                      S.scale = D && S.hide ? 0 : x / S.fontSize;
                      var T = a.select(this).select("text");
                      p.setTransormAndDisplay(T, S);
                    }
                  });
                }
              }
              function f(d, h, i) {
                if (i.uniformtext.mode) {
                  var b = c(d), x = i.uniformtext.minsize, D = h.scale * h.fontSize;
                  h.hide = D < x, i[b] = i[b] || 1 / 0, h.hide || (i[b] = Math.min(i[b], Math.max(D, x)));
                }
              }
              function u(d, h) {
                var i = c(d);
                h[i] = void 0;
              }
              function c(d) {
                return "_" + d + "Text_minsize";
              }
              M.exports = {
                recordMinTextSize: f,
                clearMinTextSize: u,
                resizeText: l
              };
            }
          ),
          /***/
          4996: (
            /***/
            function(M, L, r) {
              var a = r(5464), p = r(6968).u, l = r(5376), f = r(2548), u = r(1776).Ks, c = r(1776).Gw, d = r(2880).extendFlat, h = r(8192).c, i = l({
                editType: "plot",
                arrayOk: !0,
                colorEditType: "plot"
              });
              M.exports = {
                labels: {
                  valType: "data_array",
                  editType: "calc"
                },
                // equivalent of x0 and dx, if label is missing
                label0: {
                  valType: "number",
                  dflt: 0,
                  editType: "calc"
                },
                dlabel: {
                  valType: "number",
                  dflt: 1,
                  editType: "calc"
                },
                values: {
                  valType: "data_array",
                  editType: "calc"
                },
                marker: {
                  colors: {
                    valType: "data_array",
                    // TODO 'color_array' ?
                    editType: "calc"
                  },
                  line: {
                    color: {
                      valType: "color",
                      dflt: f.defaultLine,
                      arrayOk: !0,
                      editType: "style"
                    },
                    width: {
                      valType: "number",
                      min: 0,
                      dflt: 0,
                      arrayOk: !0,
                      editType: "style"
                    },
                    editType: "calc"
                  },
                  pattern: h,
                  editType: "calc"
                },
                text: {
                  valType: "data_array",
                  editType: "plot"
                },
                hovertext: {
                  valType: "string",
                  dflt: "",
                  arrayOk: !0,
                  editType: "style"
                },
                // 'see eg:'
                // 'https://www.e-education.psu.edu/natureofgeoinfo/sites/www.e-education.psu.edu.natureofgeoinfo/files/image/hisp_pies.gif',
                // '(this example involves a map too - may someday be a whole trace type',
                // 'of its own. but the point is the size of the whole pie is important.)'
                scalegroup: {
                  valType: "string",
                  dflt: "",
                  editType: "calc"
                },
                // labels (legend is handled by plots.attributes.showlegend and layout.hiddenlabels)
                textinfo: {
                  valType: "flaglist",
                  flags: ["label", "text", "value", "percent"],
                  extras: ["none"],
                  editType: "calc"
                },
                hoverinfo: d({}, a.hoverinfo, {
                  flags: ["label", "text", "value", "percent", "name"]
                }),
                hovertemplate: u({}, {
                  keys: ["label", "color", "value", "percent", "text"]
                }),
                texttemplate: c({
                  editType: "plot"
                }, {
                  keys: ["label", "color", "value", "percent", "text"]
                }),
                textposition: {
                  valType: "enumerated",
                  values: ["inside", "outside", "auto", "none"],
                  dflt: "auto",
                  arrayOk: !0,
                  editType: "plot"
                },
                textfont: d({}, i, {}),
                insidetextorientation: {
                  valType: "enumerated",
                  values: ["horizontal", "radial", "tangential", "auto"],
                  dflt: "auto",
                  editType: "plot"
                },
                insidetextfont: d({}, i, {}),
                outsidetextfont: d({}, i, {}),
                automargin: {
                  valType: "boolean",
                  dflt: !1,
                  editType: "plot"
                },
                title: {
                  text: {
                    valType: "string",
                    dflt: "",
                    editType: "plot"
                  },
                  font: d({}, i, {}),
                  position: {
                    valType: "enumerated",
                    values: ["top left", "top center", "top right", "middle center", "bottom left", "bottom center", "bottom right"],
                    editType: "plot"
                  },
                  editType: "plot"
                },
                // position and shape
                domain: p({
                  name: "pie",
                  trace: !0,
                  editType: "calc"
                }),
                hole: {
                  valType: "number",
                  min: 0,
                  max: 1,
                  dflt: 0,
                  editType: "calc"
                },
                // ordering and direction
                sort: {
                  valType: "boolean",
                  dflt: !0,
                  editType: "calc"
                },
                direction: {
                  /**
                   * there are two common conventions, both of which place the first
                   * (largest, if sorted) slice with its left edge at 12 o'clock but
                   * succeeding slices follow either cw or ccw from there.
                   *
                   * see http://visage.co/data-visualization-101-pie-charts/
                   */
                  valType: "enumerated",
                  values: ["clockwise", "counterclockwise"],
                  dflt: "counterclockwise",
                  editType: "calc"
                },
                rotation: {
                  valType: "angle",
                  dflt: 0,
                  editType: "calc"
                },
                pull: {
                  valType: "number",
                  min: 0,
                  max: 1,
                  dflt: 0,
                  arrayOk: !0,
                  editType: "calc"
                },
                _deprecated: {
                  title: {
                    valType: "string",
                    dflt: "",
                    editType: "calc"
                  },
                  titlefont: d({}, i, {}),
                  titleposition: {
                    valType: "enumerated",
                    values: ["top left", "top center", "top right", "middle center", "bottom left", "bottom center", "bottom right"],
                    editType: "calc"
                  }
                }
              };
            }
          ),
          /***/
          36: (
            /***/
            function(M, L, r) {
              var a = r(7316);
              L.name = "pie", L.plot = function(p, l, f, u) {
                a.plotBasePlot(L.name, p, l, f, u);
              }, L.clean = function(p, l, f, u) {
                a.cleanBasePlot(L.name, p, l, f, u);
              };
            }
          ),
          /***/
          5768: (
            /***/
            function(M, L, r) {
              var a = r(8248), p = r(9760), l = r(6308), f = {};
              function u(i, b) {
                var x = [], D = i._fullLayout, C = D.hiddenlabels || [], w = b.labels, S = b.marker.colors || [], T = b.values, k = b._length, A = b._hasValues && k, R, g;
                if (b.dlabel)
                  for (w = new Array(k), R = 0; R < k; R++)
                    w[R] = String(b.label0 + R * b.dlabel);
                var I = {}, O = c(D["_" + b.type + "colormap"]), $ = 0, Y = !1;
                for (R = 0; R < k; R++) {
                  var ne, q, B;
                  if (A) {
                    if (ne = T[R], !a(ne))
                      continue;
                    ne = +ne;
                  } else
                    ne = 1;
                  q = w[R], (q === void 0 || q === "") && (q = R), q = String(q);
                  var X = I[q];
                  X === void 0 ? (I[q] = x.length, B = C.indexOf(q) !== -1, B || ($ += ne), x.push({
                    v: ne,
                    label: q,
                    color: O(S[R], q),
                    i: R,
                    pts: [R],
                    hidden: B
                  })) : (Y = !0, g = x[X], g.v += ne, g.pts.push(R), g.hidden || ($ += ne), g.color === !1 && S[R] && (g.color = O(S[R], q)));
                }
                x = x.filter(function(te) {
                  return te.v >= 0;
                });
                var U = b.type === "funnelarea" ? Y : b.sort;
                return U && x.sort(function(te, se) {
                  return se.v - te.v;
                }), x[0] && (x[0].vTotal = $), x;
              }
              function c(i) {
                return function(x, D) {
                  return !x || (x = p(x), !x.isValid()) ? !1 : (x = l.addOpacity(x, x.getAlpha()), i[D] || (i[D] = x), x);
                };
              }
              function d(i, b) {
                var x = (b || {}).type;
                x || (x = "pie");
                var D = i._fullLayout, C = i.calcdata, w = D[x + "colorway"], S = D["_" + x + "colormap"];
                D["extend" + x + "colors"] && (w = h(w, f));
                for (var T = 0, k = 0; k < C.length; k++) {
                  var A = C[k], R = A[0].trace.type;
                  if (R === x)
                    for (var g = 0; g < A.length; g++) {
                      var I = A[g];
                      I.color === !1 && (S[I.label] ? I.color = S[I.label] : (S[I.label] = I.color = w[T % w.length], T++));
                    }
                }
              }
              function h(i, b) {
                var x, D = JSON.stringify(i), C = b[D];
                if (!C) {
                  for (C = i.slice(), x = 0; x < i.length; x++)
                    C.push(p(i[x]).lighten(20).toHexString());
                  for (x = 0; x < i.length; x++)
                    C.push(p(i[x]).darken(20).toHexString());
                  b[D] = C;
                }
                return C;
              }
              M.exports = {
                calc: u,
                crossTraceCalc: d,
                makePullColorFn: c,
                generateExtendedColors: h
              };
            }
          ),
          /***/
          4174: (
            /***/
            function(M, L, r) {
              var a = r(8248), p = r(3400), l = r(4996), f = r(6968).Q, u = r(1508).handleText, c = r(3400).coercePattern;
              function d(b, x) {
                var D = p.isArrayOrTypedArray(b), C = p.isArrayOrTypedArray(x), w = Math.min(D ? b.length : 1 / 0, C ? x.length : 1 / 0);
                if (isFinite(w) || (w = 0), w && C) {
                  for (var S, T = 0; T < w; T++) {
                    var k = x[T];
                    if (a(k) && k > 0) {
                      S = !0;
                      break;
                    }
                  }
                  S || (w = 0);
                }
                return {
                  hasLabels: D,
                  hasValues: C,
                  len: w
                };
              }
              function h(b, x, D, C, w) {
                var S = C("marker.line.width");
                S && C(
                  "marker.line.color",
                  w ? void 0 : D.paper_bgcolor
                  // case of funnelarea, sunburst, icicle, treemap
                );
                var T = C("marker.colors");
                c(C, "marker.pattern", T), b.marker && !x.marker.pattern.fgcolor && (x.marker.pattern.fgcolor = b.marker.colors), x.marker.pattern.bgcolor || (x.marker.pattern.bgcolor = D.paper_bgcolor);
              }
              function i(b, x, D, C) {
                function w(X, U) {
                  return p.coerce(b, x, l, X, U);
                }
                var S = w("labels"), T = w("values"), k = d(S, T), A = k.len;
                if (x._hasLabels = k.hasLabels, x._hasValues = k.hasValues, !x._hasLabels && x._hasValues && (w("label0"), w("dlabel")), !A) {
                  x.visible = !1;
                  return;
                }
                x._length = A, h(b, x, C, w, !0), w("scalegroup");
                var R = w("text"), g = w("texttemplate"), I;
                if (g || (I = w("textinfo", p.isArrayOrTypedArray(R) ? "text+percent" : "percent")), w("hovertext"), w("hovertemplate"), g || I && I !== "none") {
                  var O = w("textposition");
                  u(b, x, C, w, O, {
                    moduleHasSelected: !1,
                    moduleHasUnselected: !1,
                    moduleHasConstrain: !1,
                    moduleHasCliponaxis: !1,
                    moduleHasTextangle: !1,
                    moduleHasInsideanchor: !1
                  });
                  var $ = Array.isArray(O) || O === "auto", Y = $ || O === "outside";
                  Y && w("automargin"), (O === "inside" || O === "auto" || Array.isArray(O)) && w("insidetextorientation");
                } else
                  I === "none" && w("textposition", "none");
                f(x, C, w);
                var ne = w("hole"), q = w("title.text");
                if (q) {
                  var B = w("title.position", ne ? "middle center" : "top center");
                  !ne && B === "middle center" && (x.title.position = "top center"), p.coerceFont(w, "title.font", C.font);
                }
                w("sort"), w("direction"), w("rotation"), w("pull");
              }
              M.exports = {
                handleLabelsAndValues: d,
                handleMarkerDefaults: h,
                supplyDefaults: i
              };
            }
          ),
          /***/
          3644: (
            /***/
            function(M, L, r) {
              var a = r(624).appendArrayMultiPointValues;
              M.exports = function(l, f) {
                var u = {
                  curveNumber: f.index,
                  pointNumbers: l.pts,
                  data: f._input,
                  fullData: f,
                  label: l.label,
                  color: l.color,
                  value: l.v,
                  percent: l.percent,
                  text: l.text,
                  bbox: l.bbox,
                  // pt.v (and pt.i below) for backward compatibility
                  v: l.v
                };
                return l.pts.length === 1 && (u.pointNumber = u.i = l.pts[0]), a(u, f, l.pts), f.type === "funnelarea" && (delete u.v, delete u.i), u;
              };
            }
          ),
          /***/
          1552: (
            /***/
            function(M, L, r) {
              var a = r(3616), p = r(6308);
              M.exports = function(f, u, c, d) {
                var h = c.marker.pattern;
                h && h.shape ? a.pointStyle(f, c, d, u) : p.fill(f, u.color);
              };
            }
          ),
          /***/
          9656: (
            /***/
            function(M, L, r) {
              var a = r(3400);
              function p(l) {
                return l.indexOf("e") !== -1 ? l.replace(/[.]?0+e/, "e") : l.indexOf(".") !== -1 ? l.replace(/[.]?0+$/, "") : l;
              }
              L.formatPiePercent = function(f, u) {
                var c = p((f * 100).toPrecision(3));
                return a.numSeparate(c, u) + "%";
              }, L.formatPieValue = function(f, u) {
                var c = p(f.toPrecision(10));
                return a.numSeparate(c, u);
              }, L.getFirstFilled = function(f, u) {
                if (a.isArrayOrTypedArray(f))
                  for (var c = 0; c < u.length; c++) {
                    var d = f[u[c]];
                    if (d || d === 0 || d === "")
                      return d;
                  }
              }, L.castOption = function(f, u) {
                if (a.isArrayOrTypedArray(f))
                  return L.getFirstFilled(f, u);
                if (f)
                  return f;
              }, L.getRotationAngle = function(l) {
                return (l === "auto" ? 0 : l) * Math.PI / 180;
              };
            }
          ),
          /***/
          5792: (
            /***/
            function(M, L, r) {
              M.exports = {
                attributes: r(4996),
                supplyDefaults: r(4174).supplyDefaults,
                supplyLayoutDefaults: r(248),
                layoutAttributes: r(5204),
                calc: r(5768).calc,
                crossTraceCalc: r(5768).crossTraceCalc,
                plot: r(7820).plot,
                style: r(2152),
                styleOne: r(528),
                moduleType: "trace",
                name: "pie",
                basePlotModule: r(36),
                categories: ["pie-like", "pie", "showLegend"],
                meta: {}
              };
            }
          ),
          /***/
          5204: (
            /***/
            function(M) {
              M.exports = {
                hiddenlabels: {
                  valType: "data_array",
                  editType: "calc"
                },
                piecolorway: {
                  valType: "colorlist",
                  editType: "calc"
                },
                extendpiecolors: {
                  valType: "boolean",
                  dflt: !0,
                  editType: "calc"
                }
              };
            }
          ),
          /***/
          248: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(5204);
              M.exports = function(f, u) {
                function c(d, h) {
                  return a.coerce(f, u, p, d, h);
                }
                c("hiddenlabels"), c("piecolorway", u.colorway), c("extendpiecolors");
              };
            }
          ),
          /***/
          7820: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(7316), l = r(3024), f = r(6308), u = r(3616), c = r(3400), d = c.strScale, h = c.strTranslate, i = r(2736), b = r(2744), x = b.recordMinTextSize, D = b.clearMinTextSize, C = r(8048).TEXTPAD, w = r(9656), S = r(3644), T = r(3400).isValidTextValue;
              function k(Me, De) {
                var Z = Me._context.staticPlot, ee = Me._fullLayout, ie = ee._size;
                D("pie", ee), O(De, Me), fe(De, ie);
                var G = c.makeTraceGroups(ee._pielayer, De, "trace").each(function(H) {
                  var ce = a.select(this), j = H[0], he = j.trace;
                  Ce(H), ce.attr("stroke-linejoin", "round"), ce.each(function() {
                    var be = a.select(this).selectAll("g.slice").data(H);
                    be.enter().append("g").classed("slice", !0), be.exit().remove();
                    var we = [
                      [[], []],
                      // y<0: x<0, x>=0
                      [[], []]
                      // y>=0: x<0, x>=0
                    ], Ie = !1;
                    be.each(function(Oe, Xe) {
                      if (Oe.hidden) {
                        a.select(this).selectAll("path,g").remove();
                        return;
                      }
                      Oe.pointNumber = Oe.i, Oe.curveNumber = he.index, we[Oe.pxmid[1] < 0 ? 0 : 1][Oe.pxmid[0] < 0 ? 0 : 1].push(Oe);
                      var it = j.cx, ut = j.cy, wt = a.select(this), kt = wt.selectAll("path.surface").data([Oe]);
                      if (kt.enter().append("path").classed("surface", !0).style({
                        "pointer-events": Z ? "none" : "all"
                      }), wt.call(R, Me, H), he.pull) {
                        var Ot = +w.castOption(he.pull, Oe.pts) || 0;
                        Ot > 0 && (it += Ot * Oe.pxmid[0], ut += Ot * Oe.pxmid[1]);
                      }
                      Oe.cxFinal = it, Oe.cyFinal = ut;
                      function Lt(Wt, qe, Ue, We) {
                        var je = We * (qe[0] - Wt[0]), lt = We * (qe[1] - Wt[1]);
                        return "a" + We * j.r + "," + We * j.r + " 0 " + Oe.largeArc + (Ue ? " 1 " : " 0 ") + je + "," + lt;
                      }
                      var Mt = he.hole;
                      if (Oe.v === j.vTotal) {
                        var Ut = "M" + (it + Oe.px0[0]) + "," + (ut + Oe.px0[1]) + Lt(Oe.px0, Oe.pxmid, !0, 1) + Lt(Oe.pxmid, Oe.px0, !0, 1) + "Z";
                        Mt ? kt.attr("d", "M" + (it + Mt * Oe.px0[0]) + "," + (ut + Mt * Oe.px0[1]) + Lt(Oe.px0, Oe.pxmid, !1, Mt) + Lt(Oe.pxmid, Oe.px0, !1, Mt) + "Z" + Ut) : kt.attr("d", Ut);
                      } else {
                        var Ct = Lt(Oe.px0, Oe.px1, !0, 1);
                        if (Mt) {
                          var jt = 1 - Mt;
                          kt.attr("d", "M" + (it + Mt * Oe.px1[0]) + "," + (ut + Mt * Oe.px1[1]) + Lt(Oe.px1, Oe.px0, !1, Mt) + "l" + jt * Oe.px0[0] + "," + jt * Oe.px0[1] + Ct + "Z");
                        } else
                          kt.attr("d", "M" + it + "," + ut + "l" + Oe.px0[0] + "," + Oe.px0[1] + Ct + "Z");
                      }
                      Be(Me, Oe, j);
                      var nr = w.castOption(he.textposition, Oe.pts), Jt = wt.selectAll("g.slicetext").data(Oe.text && nr !== "none" ? [0] : []);
                      Jt.enter().append("g").classed("slicetext", !0), Jt.exit().remove(), Jt.each(function() {
                        var Wt = c.ensureSingle(a.select(this), "text", "", function(Ye) {
                          Ye.attr("data-notex", 1);
                        }), qe = c.ensureUniformFontSize(Me, nr === "outside" ? g(he, Oe, ee.font) : I(he, Oe, ee.font));
                        Wt.text(Oe.text).attr({
                          class: "slicetext",
                          transform: "",
                          "text-anchor": "middle"
                        }).call(u.font, qe).call(i.convertToTspans, Me);
                        var Ue = u.bBox(Wt.node()), We;
                        if (nr === "outside")
                          We = se(Ue, Oe);
                        else if (We = $(Ue, Oe, j), nr === "auto" && We.scale < 1) {
                          var je = c.ensureUniformFontSize(Me, he.outsidetextfont);
                          Wt.call(u.font, je), Ue = u.bBox(Wt.node()), We = se(Ue, Oe);
                        }
                        var lt = We.textPosAngle, Se = lt === void 0 ? Oe.pxmid : Re(j.r, lt);
                        if (We.targetX = it + Se[0] * We.rCenter + (We.x || 0), We.targetY = ut + Se[1] * We.rCenter + (We.y || 0), xe(We, Ue), We.outside) {
                          var Pe = We.targetY;
                          Oe.yLabelMin = Pe - Ue.height / 2, Oe.yLabelMid = Pe, Oe.yLabelMax = Pe + Ue.height / 2, Oe.labelExtraX = 0, Oe.labelExtraY = 0, Ie = !0;
                        }
                        We.fontSize = qe.size, x(he.type, We, ee), H[Xe].transform = We, c.setTransormAndDisplay(Wt, We);
                      });
                    });
                    var Ge = a.select(this).selectAll("g.titletext").data(he.title.text ? [0] : []);
                    if (Ge.enter().append("g").classed("titletext", !0), Ge.exit().remove(), Ge.each(function() {
                      var Oe = c.ensureSingle(a.select(this), "text", "", function(ut) {
                        ut.attr("data-notex", 1);
                      }), Xe = he.title.text;
                      he._meta && (Xe = c.templateString(Xe, he._meta)), Oe.text(Xe).attr({
                        class: "titletext",
                        transform: "",
                        "text-anchor": "middle"
                      }).call(u.font, he.title.font).call(i.convertToTspans, Me);
                      var it;
                      he.title.position === "middle center" ? it = me(j) : it = J(j, ie), Oe.attr("transform", h(it.x, it.y) + d(Math.min(1, it.scale)) + h(it.tx, it.ty));
                    }), Ie && ve(we, he), A(be, he), Ie && he.automargin) {
                      var Ve = u.bBox(ce.node()), Je = he.domain, et = ie.w * (Je.x[1] - Je.x[0]), at = ie.h * (Je.y[1] - Je.y[0]), Le = (0.5 * et - j.r) / ie.w, ze = (0.5 * at - j.r) / ie.h;
                      p.autoMargin(Me, "pie." + he.uid + ".automargin", {
                        xl: Je.x[0] - Le,
                        xr: Je.x[1] + Le,
                        yb: Je.y[0] - ze,
                        yt: Je.y[1] + ze,
                        l: Math.max(j.cx - j.r - Ve.left, 0),
                        r: Math.max(Ve.right - (j.cx + j.r), 0),
                        b: Math.max(Ve.bottom - (j.cy + j.r), 0),
                        t: Math.max(j.cy - j.r - Ve.top, 0),
                        pad: 5
                      });
                    }
                  });
                });
                setTimeout(function() {
                  G.selectAll("tspan").each(function() {
                    var H = a.select(this);
                    H.attr("dy") && H.attr("dy", H.attr("dy"));
                  });
                }, 0);
              }
              function A(Me, De) {
                Me.each(function(Z) {
                  var ee = a.select(this);
                  if (!Z.labelExtraX && !Z.labelExtraY) {
                    ee.select("path.textline").remove();
                    return;
                  }
                  var ie = ee.select("g.slicetext text");
                  Z.transform.targetX += Z.labelExtraX, Z.transform.targetY += Z.labelExtraY, c.setTransormAndDisplay(ie, Z.transform);
                  var G = Z.cxFinal + Z.pxmid[0], H = Z.cyFinal + Z.pxmid[1], ce = "M" + G + "," + H, j = (Z.yLabelMax - Z.yLabelMin) * (Z.pxmid[0] < 0 ? -1 : 1) / 4;
                  if (Z.labelExtraX) {
                    var he = Z.labelExtraX * Z.pxmid[1] / Z.pxmid[0], be = Z.yLabelMid + Z.labelExtraY - (Z.cyFinal + Z.pxmid[1]);
                    Math.abs(he) > Math.abs(be) ? ce += "l" + be * Z.pxmid[0] / Z.pxmid[1] + "," + be + "H" + (G + Z.labelExtraX + j) : ce += "l" + Z.labelExtraX + "," + he + "v" + (be - he) + "h" + j;
                  } else
                    ce += "V" + (Z.yLabelMid + Z.labelExtraY) + "h" + j;
                  c.ensureSingle(ee, "path", "textline").call(f.stroke, De.outsidetextfont.color).attr({
                    "stroke-width": Math.min(2, De.outsidetextfont.size / 8),
                    d: ce,
                    fill: "none"
                  });
                });
              }
              function R(Me, De, Z) {
                var ee = Z[0], ie = ee.cx, G = ee.cy, H = ee.trace, ce = H.type === "funnelarea";
                "_hasHoverLabel" in H || (H._hasHoverLabel = !1), "_hasHoverEvent" in H || (H._hasHoverEvent = !1), Me.on("mouseover", function(j) {
                  var he = De._fullLayout, be = De._fullData[H.index];
                  if (!(De._dragging || he.hovermode === !1)) {
                    var we = be.hoverinfo;
                    if (Array.isArray(we) && (we = l.castHoverinfo({
                      hoverinfo: [w.castOption(we, j.pts)],
                      _module: H._module
                    }, he, 0)), we === "all" && (we = "label+text+value+percent+name"), be.hovertemplate || we !== "none" && we !== "skip" && we) {
                      var Ie = j.rInscribed || 0, Ge = ie + j.pxmid[0] * (1 - Ie), Ve = G + j.pxmid[1] * (1 - Ie), Je = he.separators, et = [];
                      if (we && we.indexOf("label") !== -1 && et.push(j.label), j.text = w.castOption(be.hovertext || be.text, j.pts), we && we.indexOf("text") !== -1) {
                        var at = j.text;
                        c.isValidTextValue(at) && et.push(at);
                      }
                      j.value = j.v, j.valueLabel = w.formatPieValue(j.v, Je), we && we.indexOf("value") !== -1 && et.push(j.valueLabel), j.percent = j.v / ee.vTotal, j.percentLabel = w.formatPiePercent(j.percent, Je), we && we.indexOf("percent") !== -1 && et.push(j.percentLabel);
                      var Le = be.hoverlabel, ze = Le.font, Oe = [];
                      l.loneHover({
                        trace: H,
                        x0: Ge - Ie * ee.r,
                        x1: Ge + Ie * ee.r,
                        y: Ve,
                        _x0: ce ? ie + j.TL[0] : Ge - Ie * ee.r,
                        _x1: ce ? ie + j.TR[0] : Ge + Ie * ee.r,
                        _y0: ce ? G + j.TL[1] : Ve - Ie * ee.r,
                        _y1: ce ? G + j.BL[1] : Ve + Ie * ee.r,
                        text: et.join("<br>"),
                        name: be.hovertemplate || we.indexOf("name") !== -1 ? be.name : void 0,
                        idealAlign: j.pxmid[0] < 0 ? "left" : "right",
                        color: w.castOption(Le.bgcolor, j.pts) || j.color,
                        borderColor: w.castOption(Le.bordercolor, j.pts),
                        fontFamily: w.castOption(ze.family, j.pts),
                        fontSize: w.castOption(ze.size, j.pts),
                        fontColor: w.castOption(ze.color, j.pts),
                        nameLength: w.castOption(Le.namelength, j.pts),
                        textAlign: w.castOption(Le.align, j.pts),
                        hovertemplate: w.castOption(be.hovertemplate, j.pts),
                        hovertemplateLabels: j,
                        eventData: [S(j, be)]
                      }, {
                        container: he._hoverlayer.node(),
                        outerContainer: he._paper.node(),
                        gd: De,
                        inOut_bbox: Oe
                      }), j.bbox = Oe[0], H._hasHoverLabel = !0;
                    }
                    H._hasHoverEvent = !0, De.emit("plotly_hover", {
                      points: [S(j, be)],
                      event: a.event
                    });
                  }
                }), Me.on("mouseout", function(j) {
                  var he = De._fullLayout, be = De._fullData[H.index], we = a.select(this).datum();
                  H._hasHoverEvent && (j.originalEvent = a.event, De.emit("plotly_unhover", {
                    points: [S(we, be)],
                    event: a.event
                  }), H._hasHoverEvent = !1), H._hasHoverLabel && (l.loneUnhover(he._hoverlayer.node()), H._hasHoverLabel = !1);
                }), Me.on("click", function(j) {
                  var he = De._fullLayout, be = De._fullData[H.index];
                  De._dragging || he.hovermode === !1 || (De._hoverdata = [S(j, be)], l.click(De, a.event));
                });
              }
              function g(Me, De, Z) {
                var ee = w.castOption(Me.outsidetextfont.color, De.pts) || w.castOption(Me.textfont.color, De.pts) || Z.color, ie = w.castOption(Me.outsidetextfont.family, De.pts) || w.castOption(Me.textfont.family, De.pts) || Z.family, G = w.castOption(Me.outsidetextfont.size, De.pts) || w.castOption(Me.textfont.size, De.pts) || Z.size, H = w.castOption(Me.outsidetextfont.weight, De.pts) || w.castOption(Me.textfont.weight, De.pts) || Z.weight, ce = w.castOption(Me.outsidetextfont.style, De.pts) || w.castOption(Me.textfont.style, De.pts) || Z.style, j = w.castOption(Me.outsidetextfont.variant, De.pts) || w.castOption(Me.textfont.variant, De.pts) || Z.variant, he = w.castOption(Me.outsidetextfont.textcase, De.pts) || w.castOption(Me.textfont.textcase, De.pts) || Z.textcase, be = w.castOption(Me.outsidetextfont.lineposition, De.pts) || w.castOption(Me.textfont.lineposition, De.pts) || Z.lineposition, we = w.castOption(Me.outsidetextfont.shadow, De.pts) || w.castOption(Me.textfont.shadow, De.pts) || Z.shadow;
                return {
                  color: ee,
                  family: ie,
                  size: G,
                  weight: H,
                  style: ce,
                  variant: j,
                  textcase: he,
                  lineposition: be,
                  shadow: we
                };
              }
              function I(Me, De, Z) {
                var ee = w.castOption(Me.insidetextfont.color, De.pts);
                !ee && Me._input.textfont && (ee = w.castOption(Me._input.textfont.color, De.pts));
                var ie = w.castOption(Me.insidetextfont.family, De.pts) || w.castOption(Me.textfont.family, De.pts) || Z.family, G = w.castOption(Me.insidetextfont.size, De.pts) || w.castOption(Me.textfont.size, De.pts) || Z.size, H = w.castOption(Me.insidetextfont.weight, De.pts) || w.castOption(Me.textfont.weight, De.pts) || Z.weight, ce = w.castOption(Me.insidetextfont.style, De.pts) || w.castOption(Me.textfont.style, De.pts) || Z.style, j = w.castOption(Me.insidetextfont.variant, De.pts) || w.castOption(Me.textfont.variant, De.pts) || Z.variant, he = w.castOption(Me.insidetextfont.textcase, De.pts) || w.castOption(Me.textfont.textcase, De.pts) || Z.textcase, be = w.castOption(Me.insidetextfont.lineposition, De.pts) || w.castOption(Me.textfont.lineposition, De.pts) || Z.lineposition, we = w.castOption(Me.insidetextfont.shadow, De.pts) || w.castOption(Me.textfont.shadow, De.pts) || Z.shadow;
                return {
                  color: ee || f.contrast(De.color),
                  family: ie,
                  size: G,
                  weight: H,
                  style: ce,
                  variant: j,
                  textcase: he,
                  lineposition: be,
                  shadow: we
                };
              }
              function O(Me, De) {
                for (var Z, ee, ie = 0; ie < Me.length; ie++)
                  if (Z = Me[ie][0], ee = Z.trace, ee.title.text) {
                    var G = ee.title.text;
                    ee._meta && (G = c.templateString(G, ee._meta));
                    var H = u.tester.append("text").attr("data-notex", 1).text(G).call(u.font, ee.title.font).call(i.convertToTspans, De), ce = u.bBox(H.node(), !0);
                    Z.titleBox = {
                      width: ce.width,
                      height: ce.height
                    }, H.remove();
                  }
              }
              function $(Me, De, Z) {
                var ee = Z.r || De.rpx1, ie = De.rInscribed, G = De.startangle === De.stopangle;
                if (G)
                  return {
                    rCenter: 1 - ie,
                    scale: 0,
                    rotate: 0,
                    textPosAngle: 0
                  };
                var H = De.ring, ce = H === 1 && Math.abs(De.startangle - De.stopangle) === Math.PI * 2, j = De.halfangle, he = De.midangle, be = Z.trace.insidetextorientation, we = be === "horizontal", Ie = be === "tangential", Ge = be === "radial", Ve = be === "auto", Je = [], et;
                if (!Ve) {
                  var at = function(wt, kt) {
                    if (Y(De, wt)) {
                      var Ot = Math.abs(wt - De.startangle), Lt = Math.abs(wt - De.stopangle), Mt = Ot < Lt ? Ot : Lt;
                      kt === "tan" ? et = q(Me, ee, H, Mt, 0) : et = ne(Me, ee, H, Mt, Math.PI / 2), et.textPosAngle = wt, Je.push(et);
                    }
                  }, Le;
                  if (we || Ie) {
                    for (Le = 4; Le >= -4; Le -= 2)
                      at(Math.PI * Le, "tan");
                    for (Le = 4; Le >= -4; Le -= 2)
                      at(Math.PI * (Le + 1), "tan");
                  }
                  if (we || Ge) {
                    for (Le = 4; Le >= -4; Le -= 2)
                      at(Math.PI * (Le + 1.5), "rad");
                    for (Le = 4; Le >= -4; Le -= 2)
                      at(Math.PI * (Le + 0.5), "rad");
                  }
                }
                if (ce || Ve || we) {
                  var ze = Math.sqrt(Me.width * Me.width + Me.height * Me.height);
                  if (et = {
                    scale: ie * ee * 2 / ze,
                    // and the center position and rotation in this case
                    rCenter: 1 - ie,
                    rotate: 0
                  }, et.textPosAngle = (De.startangle + De.stopangle) / 2, et.scale >= 1)
                    return et;
                  Je.push(et);
                }
                (Ve || Ge) && (et = ne(Me, ee, H, j, he), et.textPosAngle = (De.startangle + De.stopangle) / 2, Je.push(et)), (Ve || Ie) && (et = q(Me, ee, H, j, he), et.textPosAngle = (De.startangle + De.stopangle) / 2, Je.push(et));
                for (var Oe = 0, Xe = 0, it = 0; it < Je.length; it++) {
                  var ut = Je[it].scale;
                  if (Xe < ut && (Xe = ut, Oe = it), !Ve && Xe >= 1)
                    break;
                }
                return Je[Oe];
              }
              function Y(Me, De) {
                var Z = Me.startangle, ee = Me.stopangle;
                return Z > De && De > ee || Z < De && De < ee;
              }
              function ne(Me, De, Z, ee, ie) {
                De = Math.max(0, De - 2 * C);
                var G = Me.width / Me.height, H = U(G, ee, De, Z);
                return {
                  scale: H * 2 / Me.height,
                  rCenter: B(G, H / De),
                  rotate: X(ie)
                };
              }
              function q(Me, De, Z, ee, ie) {
                De = Math.max(0, De - 2 * C);
                var G = Me.height / Me.width, H = U(G, ee, De, Z);
                return {
                  scale: H * 2 / Me.width,
                  rCenter: B(G, H / De),
                  rotate: X(ie + Math.PI / 2)
                };
              }
              function B(Me, De) {
                return Math.cos(De) - Me * De;
              }
              function X(Me) {
                return (180 / Math.PI * Me + 720) % 180 - 90;
              }
              function U(Me, De, Z, ee) {
                var ie = Me + 1 / (2 * Math.tan(De));
                return Z * Math.min(1 / (Math.sqrt(ie * ie + 0.5) + ie), ee / (Math.sqrt(Me * Me + ee / 2) + Me));
              }
              function te(Me, De) {
                return Me.v === De.vTotal && !De.trace.hole ? 1 : Math.min(1 / (1 + 1 / Math.sin(Me.halfangle)), Me.ring / 2);
              }
              function se(Me, De) {
                var Z = De.pxmid[0], ee = De.pxmid[1], ie = Me.width / 2, G = Me.height / 2;
                return Z < 0 && (ie *= -1), ee < 0 && (G *= -1), {
                  scale: 1,
                  rCenter: 1,
                  rotate: 0,
                  x: ie + Math.abs(G) * (ie > 0 ? 1 : -1) / 2,
                  y: G / (1 + Z * Z / (ee * ee)),
                  outside: !0
                };
              }
              function me(Me) {
                var De = Math.sqrt(Me.titleBox.width * Me.titleBox.width + Me.titleBox.height * Me.titleBox.height);
                return {
                  x: Me.cx,
                  y: Me.cy,
                  scale: Me.trace.hole * Me.r * 2 / De,
                  tx: 0,
                  ty: -Me.titleBox.height / 2 + Me.trace.title.font.size
                };
              }
              function J(Me, De) {
                var Z = 1, ee = 1, ie, G = Me.trace, H = {
                  x: Me.cx,
                  y: Me.cy
                }, ce = {
                  tx: 0,
                  ty: 0
                };
                ce.ty += G.title.font.size, ie = oe(G), G.title.position.indexOf("top") !== -1 ? (H.y -= (1 + ie) * Me.r, ce.ty -= Me.titleBox.height) : G.title.position.indexOf("bottom") !== -1 && (H.y += (1 + ie) * Me.r);
                var j = W(Me.r, Me.trace.aspectratio), he = De.w * (G.domain.x[1] - G.domain.x[0]) / 2;
                return G.title.position.indexOf("left") !== -1 ? (he = he + j, H.x -= (1 + ie) * j, ce.tx += Me.titleBox.width / 2) : G.title.position.indexOf("center") !== -1 ? he *= 2 : G.title.position.indexOf("right") !== -1 && (he = he + j, H.x += (1 + ie) * j, ce.tx -= Me.titleBox.width / 2), Z = he / Me.titleBox.width, ee = ae(Me, De) / Me.titleBox.height, {
                  x: H.x,
                  y: H.y,
                  scale: Math.min(Z, ee),
                  tx: ce.tx,
                  ty: ce.ty
                };
              }
              function W(Me, De) {
                return Me / (De === void 0 ? 1 : De);
              }
              function ae(Me, De) {
                var Z = Me.trace, ee = De.h * (Z.domain.y[1] - Z.domain.y[0]);
                return Math.min(Me.titleBox.height, ee / 2);
              }
              function oe(Me) {
                var De = Me.pull;
                if (!De)
                  return 0;
                var Z;
                if (c.isArrayOrTypedArray(De))
                  for (De = 0, Z = 0; Z < Me.pull.length; Z++)
                    Me.pull[Z] > De && (De = Me.pull[Z]);
                return De;
              }
              function ve(Me, De) {
                var Z, ee, ie, G, H, ce, j, he, be, we, Ie, Ge, Ve;
                function Je(ze, Oe) {
                  return ze.pxmid[1] - Oe.pxmid[1];
                }
                function et(ze, Oe) {
                  return Oe.pxmid[1] - ze.pxmid[1];
                }
                function at(ze, Oe) {
                  Oe || (Oe = {});
                  var Xe = Oe.labelExtraY + (ee ? Oe.yLabelMax : Oe.yLabelMin), it = ee ? ze.yLabelMin : ze.yLabelMax, ut = ee ? ze.yLabelMax : ze.yLabelMin, wt = ze.cyFinal + H(ze.px0[1], ze.px1[1]), kt = Xe - it, Ot, Lt, Mt, Ut, Ct, jt;
                  if (kt * j > 0 && (ze.labelExtraY = kt), !!c.isArrayOrTypedArray(De.pull))
                    for (Lt = 0; Lt < we.length; Lt++)
                      Mt = we[Lt], !(Mt === ze || (w.castOption(De.pull, ze.pts) || 0) >= (w.castOption(De.pull, Mt.pts) || 0)) && ((ze.pxmid[1] - Mt.pxmid[1]) * j > 0 ? (Ut = Mt.cyFinal + H(Mt.px0[1], Mt.px1[1]), kt = Ut - it - ze.labelExtraY, kt * j > 0 && (ze.labelExtraY += kt)) : (ut + ze.labelExtraY - wt) * j > 0 && (Ot = 3 * ce * Math.abs(Lt - we.indexOf(ze)), Ct = Mt.cxFinal + G(Mt.px0[0], Mt.px1[0]), jt = Ct + Ot - (ze.cxFinal + ze.pxmid[0]) - ze.labelExtraX, jt * ce > 0 && (ze.labelExtraX += jt)));
                }
                for (ee = 0; ee < 2; ee++)
                  for (ie = ee ? Je : et, H = ee ? Math.max : Math.min, j = ee ? 1 : -1, Z = 0; Z < 2; Z++) {
                    for (G = Z ? Math.max : Math.min, ce = Z ? 1 : -1, he = Me[ee][Z], he.sort(ie), be = Me[1 - ee][Z], we = be.concat(he), Ge = [], Ie = 0; Ie < he.length; Ie++)
                      he[Ie].yLabelMid !== void 0 && Ge.push(he[Ie]);
                    for (Ve = !1, Ie = 0; ee && Ie < be.length; Ie++)
                      if (be[Ie].yLabelMid !== void 0) {
                        Ve = be[Ie];
                        break;
                      }
                    for (Ie = 0; Ie < Ge.length; Ie++) {
                      var Le = Ie && Ge[Ie - 1];
                      Ve && !Ie && (Le = Ve), at(Ge[Ie], Le);
                    }
                  }
              }
              function fe(Me, De) {
                for (var Z = [], ee = 0; ee < Me.length; ee++) {
                  var ie = Me[ee][0], G = ie.trace, H = G.domain, ce = De.w * (H.x[1] - H.x[0]), j = De.h * (H.y[1] - H.y[0]);
                  G.title.text && G.title.position !== "middle center" && (j -= ae(ie, De));
                  var he = ce / 2, be = j / 2;
                  G.type === "funnelarea" && !G.scalegroup && (be /= G.aspectratio), ie.r = Math.min(he, be) / (1 + oe(G)), ie.cx = De.l + De.w * (G.domain.x[1] + G.domain.x[0]) / 2, ie.cy = De.t + De.h * (1 - G.domain.y[0]) - j / 2, G.title.text && G.title.position.indexOf("bottom") !== -1 && (ie.cy -= ae(ie, De)), G.scalegroup && Z.indexOf(G.scalegroup) === -1 && Z.push(G.scalegroup);
                }
                ye(Me, Z);
              }
              function ye(Me, De) {
                for (var Z, ee, ie, G = 0; G < De.length; G++) {
                  var H = 1 / 0, ce = De[G];
                  for (ee = 0; ee < Me.length; ee++)
                    if (Z = Me[ee][0], ie = Z.trace, ie.scalegroup === ce) {
                      var j;
                      if (ie.type === "pie")
                        j = Z.r * Z.r;
                      else if (ie.type === "funnelarea") {
                        var he, be;
                        ie.aspectratio > 1 ? (he = Z.r, be = he / ie.aspectratio) : (be = Z.r, he = be * ie.aspectratio), he *= (1 + ie.baseratio) / 2, j = he * be;
                      }
                      H = Math.min(H, j / Z.vTotal);
                    }
                  for (ee = 0; ee < Me.length; ee++)
                    if (Z = Me[ee][0], ie = Z.trace, ie.scalegroup === ce) {
                      var we = H * Z.vTotal;
                      ie.type === "funnelarea" && (we /= (1 + ie.baseratio) / 2, we /= ie.aspectratio), Z.r = Math.sqrt(we);
                    }
                }
              }
              function Ce(Me) {
                var De = Me[0], Z = De.r, ee = De.trace, ie = w.getRotationAngle(ee.rotation), G = 2 * Math.PI / De.vTotal, H = "px0", ce = "px1", j, he, be;
                if (ee.direction === "counterclockwise") {
                  for (j = 0; j < Me.length && Me[j].hidden; j++)
                    ;
                  if (j === Me.length)
                    return;
                  ie += G * Me[j].v, G *= -1, H = "px1", ce = "px0";
                }
                for (be = Re(Z, ie), j = 0; j < Me.length; j++)
                  he = Me[j], !he.hidden && (he[H] = be, he.startangle = ie, ie += G * he.v / 2, he.pxmid = Re(Z, ie), he.midangle = ie, ie += G * he.v / 2, be = Re(Z, ie), he.stopangle = ie, he[ce] = be, he.largeArc = he.v > De.vTotal / 2 ? 1 : 0, he.halfangle = Math.PI * Math.min(he.v / De.vTotal, 0.5), he.ring = 1 - ee.hole, he.rInscribed = te(he, De));
              }
              function Re(Me, De) {
                return [Me * Math.sin(De), -Me * Math.cos(De)];
              }
              function Be(Me, De, Z) {
                var ee = Me._fullLayout, ie = Z.trace, G = ie.texttemplate, H = ie.textinfo;
                if (!G && H && H !== "none") {
                  var ce = H.split("+"), j = function(Oe) {
                    return ce.indexOf(Oe) !== -1;
                  }, he = j("label"), be = j("text"), we = j("value"), Ie = j("percent"), Ge = ee.separators, Ve;
                  if (Ve = he ? [De.label] : [], be) {
                    var Je = w.getFirstFilled(ie.text, De.pts);
                    T(Je) && Ve.push(Je);
                  }
                  we && Ve.push(w.formatPieValue(De.v, Ge)), Ie && Ve.push(w.formatPiePercent(De.v / Z.vTotal, Ge)), De.text = Ve.join("<br>");
                }
                function et(Oe) {
                  return {
                    label: Oe.label,
                    value: Oe.v,
                    valueLabel: w.formatPieValue(Oe.v, ee.separators),
                    percent: Oe.v / Z.vTotal,
                    percentLabel: w.formatPiePercent(Oe.v / Z.vTotal, ee.separators),
                    color: Oe.color,
                    text: Oe.text,
                    customdata: c.castOption(ie, Oe.i, "customdata")
                  };
                }
                if (G) {
                  var at = c.castOption(ie, De.i, "texttemplate");
                  if (!at)
                    De.text = "";
                  else {
                    var Le = et(De), ze = w.getFirstFilled(ie.text, De.pts);
                    (T(ze) || ze === "") && (Le.text = ze), De.text = c.texttemplateString(at, Le, Me._fullLayout._d3locale, Le, ie._meta || {});
                  }
                }
              }
              function xe(Me, De) {
                var Z = Me.rotate * Math.PI / 180, ee = Math.cos(Z), ie = Math.sin(Z), G = (De.left + De.right) / 2, H = (De.top + De.bottom) / 2;
                Me.textX = G * ee - H * ie, Me.textY = G * ie + H * ee, Me.noCenter = !0;
              }
              M.exports = {
                plot: k,
                formatSliceLabel: Be,
                transformInsideText: $,
                determineInsideTextFont: I,
                positionTitleOutside: J,
                prerenderTitles: O,
                layoutAreas: fe,
                attachFxHandlers: R,
                computeTransform: xe
              };
            }
          ),
          /***/
          2152: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(528), l = r(2744).resizeText;
              M.exports = function(u) {
                var c = u._fullLayout._pielayer.selectAll(".trace");
                l(u, c, "pie"), c.each(function(d) {
                  var h = d[0], i = h.trace, b = a.select(this);
                  b.style({
                    opacity: i.opacity
                  }), b.selectAll("path.surface").each(function(x) {
                    a.select(this).call(p, x, i, u);
                  });
                });
              };
            }
          ),
          /***/
          528: (
            /***/
            function(M, L, r) {
              var a = r(6308), p = r(9656).castOption, l = r(1552);
              M.exports = function(u, c, d, h) {
                var i = d.marker.line, b = p(i.color, c.pts) || a.defaultLine, x = p(i.width, c.pts) || 0;
                u.call(l, c, d, h).style("stroke-width", x).call(a.stroke, b);
              };
            }
          ),
          /***/
          148: (
            /***/
            function(M, L, r) {
              var a = r(3400);
              M.exports = function(l, f) {
                for (var u = 0; u < l.length; u++)
                  l[u].i = u;
                a.mergeArray(f.text, l, "tx"), a.mergeArray(f.texttemplate, l, "txt"), a.mergeArray(f.hovertext, l, "htx"), a.mergeArray(f.customdata, l, "data"), a.mergeArray(f.textposition, l, "tp"), f.textfont && (a.mergeArrayCastPositive(f.textfont.size, l, "ts"), a.mergeArray(f.textfont.color, l, "tc"), a.mergeArray(f.textfont.family, l, "tf"), a.mergeArray(f.textfont.weight, l, "tw"), a.mergeArray(f.textfont.style, l, "ty"), a.mergeArray(f.textfont.variant, l, "tv"), a.mergeArray(f.textfont.textcase, l, "tC"), a.mergeArray(f.textfont.lineposition, l, "tE"), a.mergeArray(f.textfont.shadow, l, "tS"));
                var c = f.marker;
                if (c) {
                  a.mergeArrayCastPositive(c.size, l, "ms"), a.mergeArrayCastPositive(c.opacity, l, "mo"), a.mergeArray(c.symbol, l, "mx"), a.mergeArray(c.angle, l, "ma"), a.mergeArray(c.standoff, l, "mf"), a.mergeArray(c.color, l, "mc");
                  var d = c.line;
                  c.line && (a.mergeArray(d.color, l, "mlc"), a.mergeArrayCastPositive(d.width, l, "mlw"));
                  var h = c.gradient;
                  h && h.type !== "none" && (a.mergeArray(h.type, l, "mgt"), a.mergeArray(h.color, l, "mgc"));
                }
              };
            }
          ),
          /***/
          2904: (
            /***/
            function(M, L, r) {
              var a = r(9736).axisHoverFormat, p = r(1776).Gw, l = r(1776).Ks, f = r(9084), u = r(5376), c = r(8192).u, d = r(8192).c, h = r(3616), i = r(8200), b = r(2880).extendFlat, x = r(3544);
              function D(S) {
                return {
                  valType: "any",
                  dflt: 0,
                  editType: "calc"
                };
              }
              function C(S) {
                return {
                  valType: "any",
                  editType: "calc"
                };
              }
              function w(S) {
                return {
                  valType: "enumerated",
                  values: ["start", "middle", "end"],
                  dflt: "middle",
                  editType: "calc"
                };
              }
              M.exports = {
                x: {
                  valType: "data_array",
                  editType: "calc+clearAxisTypes",
                  anim: !0
                },
                x0: {
                  valType: "any",
                  dflt: 0,
                  editType: "calc+clearAxisTypes",
                  anim: !0
                },
                dx: {
                  valType: "number",
                  dflt: 1,
                  editType: "calc",
                  anim: !0
                },
                y: {
                  valType: "data_array",
                  editType: "calc+clearAxisTypes",
                  anim: !0
                },
                y0: {
                  valType: "any",
                  dflt: 0,
                  editType: "calc+clearAxisTypes",
                  anim: !0
                },
                dy: {
                  valType: "number",
                  dflt: 1,
                  editType: "calc",
                  anim: !0
                },
                xperiod: D(),
                yperiod: D(),
                xperiod0: C(),
                yperiod0: C(),
                xperiodalignment: w(),
                yperiodalignment: w(),
                xhoverformat: a("x"),
                yhoverformat: a("y"),
                offsetgroup: {
                  valType: "string",
                  dflt: "",
                  editType: "calc"
                },
                alignmentgroup: {
                  valType: "string",
                  dflt: "",
                  editType: "calc"
                },
                stackgroup: {
                  valType: "string",
                  dflt: "",
                  editType: "calc"
                },
                orientation: {
                  valType: "enumerated",
                  values: ["v", "h"],
                  editType: "calc"
                },
                groupnorm: {
                  valType: "enumerated",
                  values: ["", "fraction", "percent"],
                  dflt: "",
                  editType: "calc"
                },
                stackgaps: {
                  valType: "enumerated",
                  values: ["infer zero", "interpolate"],
                  dflt: "infer zero",
                  editType: "calc"
                },
                text: {
                  valType: "string",
                  dflt: "",
                  arrayOk: !0,
                  editType: "calc"
                },
                texttemplate: p({}, {}),
                hovertext: {
                  valType: "string",
                  dflt: "",
                  arrayOk: !0,
                  editType: "style"
                },
                mode: {
                  valType: "flaglist",
                  flags: ["lines", "markers", "text"],
                  extras: ["none"],
                  editType: "calc"
                },
                hoveron: {
                  valType: "flaglist",
                  flags: ["points", "fills"],
                  editType: "style"
                },
                hovertemplate: l({}, {
                  keys: i.eventDataKeys
                }),
                line: {
                  color: {
                    valType: "color",
                    editType: "style",
                    anim: !0
                  },
                  width: {
                    valType: "number",
                    min: 0,
                    dflt: 2,
                    editType: "style",
                    anim: !0
                  },
                  shape: {
                    valType: "enumerated",
                    values: ["linear", "spline", "hv", "vh", "hvh", "vhv"],
                    dflt: "linear",
                    editType: "plot"
                  },
                  smoothing: {
                    valType: "number",
                    min: 0,
                    max: 1.3,
                    dflt: 1,
                    editType: "plot"
                  },
                  dash: b({}, c, {
                    editType: "style"
                  }),
                  backoff: {
                    // we want to have a similar option for the start of the line
                    valType: "number",
                    min: 0,
                    dflt: "auto",
                    arrayOk: !0,
                    editType: "plot"
                  },
                  simplify: {
                    valType: "boolean",
                    dflt: !0,
                    editType: "plot"
                  },
                  editType: "plot"
                },
                connectgaps: {
                  valType: "boolean",
                  dflt: !1,
                  editType: "calc"
                },
                cliponaxis: {
                  valType: "boolean",
                  dflt: !0,
                  editType: "plot"
                },
                fill: {
                  valType: "enumerated",
                  values: ["none", "tozeroy", "tozerox", "tonexty", "tonextx", "toself", "tonext"],
                  editType: "calc"
                },
                fillcolor: x(!0),
                fillgradient: b({
                  type: {
                    valType: "enumerated",
                    values: ["radial", "horizontal", "vertical", "none"],
                    dflt: "none",
                    editType: "calc"
                  },
                  start: {
                    valType: "number",
                    editType: "calc"
                  },
                  stop: {
                    valType: "number",
                    editType: "calc"
                  },
                  colorscale: {
                    valType: "colorscale",
                    editType: "style"
                  },
                  editType: "calc"
                }),
                fillpattern: d,
                marker: b({
                  symbol: {
                    valType: "enumerated",
                    values: h.symbolList,
                    dflt: "circle",
                    arrayOk: !0,
                    editType: "style"
                  },
                  opacity: {
                    valType: "number",
                    min: 0,
                    max: 1,
                    arrayOk: !0,
                    editType: "style",
                    anim: !0
                  },
                  angle: {
                    valType: "angle",
                    dflt: 0,
                    arrayOk: !0,
                    editType: "plot",
                    anim: !1
                    // TODO: possibly set to true in future
                  },
                  angleref: {
                    valType: "enumerated",
                    values: ["previous", "up"],
                    dflt: "up",
                    editType: "plot",
                    anim: !1
                  },
                  standoff: {
                    valType: "number",
                    min: 0,
                    dflt: 0,
                    arrayOk: !0,
                    editType: "plot",
                    anim: !0
                  },
                  size: {
                    valType: "number",
                    min: 0,
                    dflt: 6,
                    arrayOk: !0,
                    editType: "calc",
                    anim: !0
                  },
                  maxdisplayed: {
                    valType: "number",
                    min: 0,
                    dflt: 0,
                    editType: "plot"
                  },
                  sizeref: {
                    valType: "number",
                    dflt: 1,
                    editType: "calc"
                  },
                  sizemin: {
                    valType: "number",
                    min: 0,
                    dflt: 0,
                    editType: "calc"
                  },
                  sizemode: {
                    valType: "enumerated",
                    values: ["diameter", "area"],
                    dflt: "diameter",
                    editType: "calc"
                  },
                  line: b({
                    width: {
                      valType: "number",
                      min: 0,
                      arrayOk: !0,
                      editType: "style",
                      anim: !0
                    },
                    editType: "calc"
                  }, f("marker.line", {
                    anim: !0
                  })),
                  gradient: {
                    type: {
                      valType: "enumerated",
                      values: ["radial", "horizontal", "vertical", "none"],
                      arrayOk: !0,
                      dflt: "none",
                      editType: "calc"
                    },
                    color: {
                      valType: "color",
                      arrayOk: !0,
                      editType: "calc"
                    },
                    editType: "calc"
                  },
                  editType: "calc"
                }, f("marker", {
                  anim: !0
                })),
                selected: {
                  marker: {
                    opacity: {
                      valType: "number",
                      min: 0,
                      max: 1,
                      editType: "style"
                    },
                    color: {
                      valType: "color",
                      editType: "style"
                    },
                    size: {
                      valType: "number",
                      min: 0,
                      editType: "style"
                    },
                    editType: "style"
                  },
                  textfont: {
                    color: {
                      valType: "color",
                      editType: "style"
                    },
                    editType: "style"
                  },
                  editType: "style"
                },
                unselected: {
                  marker: {
                    opacity: {
                      valType: "number",
                      min: 0,
                      max: 1,
                      editType: "style"
                    },
                    color: {
                      valType: "color",
                      editType: "style"
                    },
                    size: {
                      valType: "number",
                      min: 0,
                      editType: "style"
                    },
                    editType: "style"
                  },
                  textfont: {
                    color: {
                      valType: "color",
                      editType: "style"
                    },
                    editType: "style"
                  },
                  editType: "style"
                },
                textposition: {
                  valType: "enumerated",
                  values: ["top left", "top center", "top right", "middle left", "middle center", "middle right", "bottom left", "bottom center", "bottom right"],
                  dflt: "middle center",
                  arrayOk: !0,
                  editType: "calc"
                },
                textfont: u({
                  editType: "calc",
                  colorEditType: "style",
                  arrayOk: !0
                }),
                zorder: {
                  valType: "integer",
                  dflt: 0,
                  editType: "plot"
                }
              };
            }
          ),
          /***/
          6356: (
            /***/
            function(M, L, r) {
              var a = r(8248), p = r(3400), l = r(4460), f = r(1220), u = r(9032).BADNUM, c = r(3028), d = r(136), h = r(148), i = r(4500);
              function b(T, k) {
                var A = T._fullLayout, R = k._xA = l.getFromId(T, k.xaxis || "x", "x"), g = k._yA = l.getFromId(T, k.yaxis || "y", "y"), I = R.makeCalcdata(k, "x"), O = g.makeCalcdata(k, "y"), $ = f(k, R, "x", I), Y = f(k, g, "y", O), ne = $.vals, q = Y.vals, B = k._length, X = new Array(B), U = k.ids, te = S(k, A, R, g), se = !1, me, J, W, ae, oe, ve;
                C(A, k);
                var fe = "x", ye = "y", Ce;
                if (te)
                  p.pushUnique(te.traceIndices, k._expandedIndex), me = te.orientation === "v", me ? (ye = "s", Ce = "x") : (fe = "s", Ce = "y"), oe = te.stackgaps === "interpolate";
                else {
                  var Re = D(k, B);
                  x(T, k, R, g, ne, q, Re);
                }
                var Be = !!k.xperiodalignment, xe = !!k.yperiodalignment;
                for (J = 0; J < B; J++) {
                  var Me = X[J] = {}, De = a(ne[J]), Z = a(q[J]);
                  De && Z ? (Me[fe] = ne[J], Me[ye] = q[J], Be && (Me.orig_x = I[J], Me.xEnd = $.ends[J], Me.xStart = $.starts[J]), xe && (Me.orig_y = O[J], Me.yEnd = Y.ends[J], Me.yStart = Y.starts[J])) : te && (me ? De : Z) ? (Me[Ce] = me ? ne[J] : q[J], Me.gap = !0, oe ? (Me.s = u, se = !0) : Me.s = 0) : Me[fe] = Me[ye] = u, U && (Me.id = String(U[J]));
                }
                if (h(X, k), d(T, k), i(X, k), te) {
                  for (J = 0; J < X.length; )
                    X[J][Ce] === u ? X.splice(J, 1) : J++;
                  if (p.sort(X, function(H, ce) {
                    return H[Ce] - ce[Ce] || H.i - ce.i;
                  }), se) {
                    for (J = 0; J < X.length - 1 && X[J].gap; )
                      J++;
                    for (ve = X[J].s, ve || (ve = X[J].s = 0), W = 0; W < J; W++)
                      X[W].s = ve;
                    for (ae = X.length - 1; ae > J && X[ae].gap; )
                      ae--;
                    for (ve = X[ae].s, W = X.length - 1; W > ae; W--)
                      X[W].s = ve;
                    for (; J < ae; )
                      if (J++, X[J].gap) {
                        for (W = J + 1; X[W].gap; )
                          W++;
                        for (var ee = X[J - 1][Ce], ie = X[J - 1].s, G = (X[W].s - ie) / (X[W][Ce] - ee); J < W; )
                          X[J].s = ie + (X[J][Ce] - ee) * G, J++;
                      }
                  }
                }
                return X;
              }
              function x(T, k, A, R, g, I, O) {
                var $ = k._length, Y = T._fullLayout, ne = A._id, q = R._id, B = Y._firstScatter[w(k)] === k.uid, X = (S(k, Y, A, R) || {}).orientation, U = k.fill;
                A._minDtick = 0, R._minDtick = 0;
                var te = {
                  padded: !0
                }, se = {
                  padded: !0
                };
                O && (te.ppad = se.ppad = O);
                var me = $ < 2 || g[0] !== g[$ - 1] || I[0] !== I[$ - 1];
                me && (U === "tozerox" || U === "tonextx" && (B || X === "h")) ? te.tozero = !0 : !(k.error_y || {}).visible && // if no error bars, markers or text, or fill to y=0 remove x padding
                (U === "tonexty" || U === "tozeroy" || !c.hasMarkers(k) && !c.hasText(k)) && (te.padded = !1, te.ppad = 0), me && (U === "tozeroy" || U === "tonexty" && (B || X === "v")) ? se.tozero = !0 : (U === "tonextx" || U === "tozerox") && (se.padded = !1), ne && (k._extremes[ne] = l.findExtremes(A, g, te)), q && (k._extremes[q] = l.findExtremes(R, I, se));
              }
              function D(T, k) {
                if (c.hasMarkers(T)) {
                  var A = T.marker, R = 1.6 * (T.marker.sizeref || 1), g;
                  if (T.marker.sizemode === "area" ? g = function(ne) {
                    return Math.max(Math.sqrt((ne || 0) / R), 3);
                  } : g = function(ne) {
                    return Math.max((ne || 0) / R, 3);
                  }, p.isArrayOrTypedArray(A.size)) {
                    var I = {
                      type: "linear"
                    };
                    l.setConvert(I);
                    for (var O = I.makeCalcdata(T.marker, "size"), $ = new Array(k), Y = 0; Y < k; Y++)
                      $[Y] = g(O[Y]);
                    return $;
                  } else
                    return g(A.size);
                }
              }
              function C(T, k) {
                var A = w(k), R = T._firstScatter;
                R[A] || (R[A] = k.uid);
              }
              function w(T) {
                var k = T.stackgroup;
                return T.xaxis + T.yaxis + T.type + (k ? "-" + k : "");
              }
              function S(T, k, A, R) {
                var g = T.stackgroup;
                if (g) {
                  var I = k._scatterStackOpts[A._id + R._id][g], O = I.orientation === "v" ? R : A;
                  if (O.type === "linear" || O.type === "log")
                    return I;
                }
              }
              M.exports = {
                calc: b,
                calcMarkerSize: D,
                calcAxisExpansion: x,
                setFirstScatter: C,
                getStackOpts: S
              };
            }
          ),
          /***/
          4500: (
            /***/
            function(M, L, r) {
              var a = r(3400);
              M.exports = function(l, f) {
                a.isArrayOrTypedArray(f.selectedpoints) && a.tagSelected(l, f);
              };
            }
          ),
          /***/
          136: (
            /***/
            function(M, L, r) {
              var a = r(4288).hasColorscale, p = r(7128), l = r(3028);
              M.exports = function(u, c) {
                l.hasLines(c) && a(c, "line") && p(u, c, {
                  vals: c.line.color,
                  containerStr: "line",
                  cLetter: "c"
                }), l.hasMarkers(c) && (a(c, "marker") && p(u, c, {
                  vals: c.marker.color,
                  containerStr: "marker",
                  cLetter: "c"
                }), a(c, "marker.line") && p(u, c, {
                  vals: c.marker.line.color,
                  containerStr: "marker.line",
                  cLetter: "c"
                }));
              };
            }
          ),
          /***/
          8200: (
            /***/
            function(M) {
              M.exports = {
                PTS_LINESONLY: 20,
                // fixed parameters of clustering and clipping algorithms
                // fraction of clustering tolerance "so close we don't even consider it a new point"
                minTolerance: 0.2,
                // how fast does clustering tolerance increase as you get away from the visible region
                toleranceGrowth: 10,
                // number of viewport sizes away from the visible region
                // at which we clip all lines to the perimeter
                maxScreensAway: 20,
                eventDataKeys: []
              };
            }
          ),
          /***/
          6664: (
            /***/
            function(M, L, r) {
              var a = r(6356), p = r(6376).setGroupPositions;
              function l(c, d) {
                for (var h = d.xaxis, i = d.yaxis, b = c._fullLayout, x = c._fullData, D = c.calcdata, C = [], w = [], S = 0; S < x.length; S++) {
                  var T = x[S];
                  T.visible === !0 && T.type === "scatter" && T.xaxis === h._id && T.yaxis === i._id && (T.orientation === "h" ? C.push(D[S]) : T.orientation === "v" && w.push(D[S]));
                }
                var k = {
                  mode: b.scattermode,
                  gap: b.scattergap
                };
                p(c, h, i, w, k), p(c, i, h, C, k);
              }
              M.exports = function(d, h) {
                d._fullLayout.scattermode === "group" && l(d, h);
                var i = h.xaxis, b = h.yaxis, x = i._id + b._id, D = d._fullLayout._scatterStackOpts[x];
                if (D) {
                  var C = d.calcdata, w, S, T, k, A, R, g, I, O, $, Y, ne, q, B, X;
                  for (var U in D) {
                    $ = D[U];
                    var te = $.traceIndices;
                    if (te.length) {
                      for (Y = $.stackgaps === "interpolate", ne = $.groupnorm, $.orientation === "v" ? (q = "x", B = "y") : (q = "y", B = "x"), X = new Array(te.length), w = 0; w < X.length; w++)
                        X[w] = !1;
                      R = C[te[0]];
                      var se = new Array(R.length);
                      for (w = 0; w < R.length; w++)
                        se[w] = R[w][q];
                      for (w = 1; w < te.length; w++) {
                        for (A = C[te[w]], S = T = 0; S < A.length; S++) {
                          for (g = A[S][q]; g > se[T] && T < se.length; T++)
                            f(A, S, se[T], w, X, Y, q), S++;
                          if (g !== se[T]) {
                            for (k = 0; k < w; k++)
                              f(C[te[k]], T, g, k, X, Y, q);
                            se.splice(T, 0, g);
                          }
                          T++;
                        }
                        for (; T < se.length; T++)
                          f(A, S, se[T], w, X, Y, q), S++;
                      }
                      var me = se.length;
                      for (S = 0; S < R.length; S++) {
                        for (I = R[S][B] = R[S].s, w = 1; w < te.length; w++)
                          A = C[te[w]], A[0].trace._rawLength = A[0].trace._length, A[0].trace._length = me, I += A[S].s, A[S][B] = I;
                        if (ne)
                          for (O = (ne === "fraction" ? I : I / 100) || 1, w = 0; w < te.length; w++) {
                            var J = C[te[w]][S];
                            J[B] /= O, J.sNorm = J.s / O;
                          }
                      }
                      for (w = 0; w < te.length; w++) {
                        A = C[te[w]];
                        var W = A[0].trace, ae = a.calcMarkerSize(W, W._rawLength), oe = Array.isArray(ae);
                        if (ae && X[w] || oe) {
                          var ve = ae;
                          for (ae = new Array(me), S = 0; S < me; S++)
                            ae[S] = A[S].gap ? 0 : oe ? ve[A[S].i] : ve;
                        }
                        var fe = new Array(me), ye = new Array(me);
                        for (S = 0; S < me; S++)
                          fe[S] = A[S].x, ye[S] = A[S].y;
                        a.calcAxisExpansion(d, W, i, b, fe, ye, ae), A[0].t.orientation = $.orientation;
                      }
                    }
                  }
                }
              };
              function f(c, d, h, i, b, x, D) {
                b[i] = !0;
                var C = {
                  i: null,
                  gap: !0,
                  s: 0
                };
                if (C[D] = h, c.splice(d, 0, C), d && h === c[d - 1][D]) {
                  var w = c[d - 1];
                  C.s = w.s, C.i = w.i, C.gap = w.gap;
                } else
                  x && (C.s = u(c, d, h, D));
                d || (c[0].t = c[1].t, c[0].trace = c[1].trace, delete c[1].t, delete c[1].trace);
              }
              function u(c, d, h, i) {
                var b = c[d - 1], x = c[d + 1];
                return x ? b ? b.s + (x.s - b.s) * (h - b[i]) / (x[i] - b[i]) : x.s : b.s;
              }
            }
          ),
          /***/
          5036: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(11), l = r(2904);
              M.exports = function(u, c) {
                var d, h, i;
                function b(S) {
                  return a.coerce(h._input, h, l, S);
                }
                if (c.scattermode === "group")
                  for (i = 0; i < u.length; i++)
                    h = u[i], h.type === "scatter" && (d = h._input, p(d, h, c, b));
                for (i = 0; i < u.length; i++) {
                  var x = u[i];
                  if (x.type === "scatter") {
                    var D = x.fill;
                    if (!(D === "none" || D === "toself") && (x.opacity = void 0, D === "tonexty" || D === "tonextx"))
                      for (var C = i - 1; C >= 0; C--) {
                        var w = u[C];
                        if (w.type === "scatter" && w.xaxis === x.xaxis && w.yaxis === x.yaxis) {
                          w.opacity = void 0;
                          break;
                        }
                      }
                  }
                }
              };
            }
          ),
          /***/
          8800: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(4040), l = r(2904), f = r(8200), u = r(3028), c = r(3980), d = r(1147), h = r(3912), i = r(4428), b = r(6828), x = r(1731), D = r(124), C = r(840), w = r(3400).coercePattern;
              M.exports = function(T, k, A, R) {
                function g(X, U) {
                  return a.coerce(T, k, l, X, U);
                }
                var I = c(T, k, R, g);
                if (I || (k.visible = !1), !!k.visible) {
                  d(T, k, R, g), g("xhoverformat"), g("yhoverformat"), g("zorder");
                  var O = h(T, k, R, g);
                  R.scattermode === "group" && k.orientation === void 0 && g("orientation", "v");
                  var $ = !O && I < f.PTS_LINESONLY ? "lines+markers" : "lines";
                  g("text"), g("hovertext"), g("mode", $), u.hasMarkers(k) && i(T, k, A, R, g, {
                    gradient: !0
                  }), u.hasLines(k) && (b(T, k, A, R, g, {
                    backoff: !0
                  }), x(T, k, g), g("connectgaps"), g("line.simplify")), u.hasText(k) && (g("texttemplate"), D(T, k, R, g));
                  var Y = [];
                  (u.hasMarkers(k) || u.hasText(k)) && (g("cliponaxis"), g("marker.maxdisplayed"), Y.push("points")), g("fill", O ? O.fillDflt : "none"), k.fill !== "none" && (C(T, k, A, g, {
                    moduleHasFillgradient: !0
                  }), u.hasLines(k) || x(T, k, g), w(g, "fillpattern", k.fillcolor, !1));
                  var ne = (k.line || {}).color, q = (k.marker || {}).color;
                  (k.fill === "tonext" || k.fill === "toself") && Y.push("fills"), g("hoveron", Y.join("+") || "points"), k.hoveron !== "fills" && g("hovertemplate");
                  var B = p.getComponentMethod("errorbars", "supplyDefaults");
                  B(T, k, ne || q || A, {
                    axis: "y"
                  }), B(T, k, ne || q || A, {
                    axis: "x",
                    inherit: "y"
                  }), a.coerceSelectionMarkerOpacity(k, g);
                }
              };
            }
          ),
          /***/
          3544: (
            /***/
            function(M) {
              M.exports = function(r) {
                return {
                  valType: "color",
                  editType: "style",
                  anim: !0
                };
              };
            }
          ),
          /***/
          840: (
            /***/
            function(M, L, r) {
              var a = r(6308), p = r(3400).isArrayOrTypedArray;
              function l(f) {
                for (var u = a.interpolate(f[0][1], f[1][1], 0.5), c = 2; c < f.length; c++) {
                  var d = a.interpolate(f[c - 1][1], f[c][1], 0.5);
                  u = a.interpolate(u, d, f[c - 1][0] / f[c][0]);
                }
                return u;
              }
              M.exports = function(u, c, d, h, i) {
                i || (i = {});
                var b = !1;
                if (c.marker) {
                  var x = c.marker.color, D = (c.marker.line || {}).color;
                  x && !p(x) ? b = x : D && !p(D) && (b = D);
                }
                var C;
                if (i.moduleHasFillgradient) {
                  var w = h("fillgradient.type");
                  if (w !== "none") {
                    h("fillgradient.start"), h("fillgradient.stop");
                    var S = h("fillgradient.colorscale");
                    S && (C = l(S));
                  }
                }
                h("fillcolor", a.addOpacity((c.line || {}).color || b || C || d, 0.5));
              };
            }
          ),
          /***/
          6688: (
            /***/
            function(M, L, r) {
              var a = r(4460);
              M.exports = function(l, f, u) {
                var c = {}, d = {
                  _fullLayout: u
                }, h = a.getFromTrace(d, f, "x"), i = a.getFromTrace(d, f, "y"), b = l.orig_x;
                b === void 0 && (b = l.x);
                var x = l.orig_y;
                return x === void 0 && (x = l.y), c.xLabel = a.tickText(h, h.c2l(b), !0).text, c.yLabel = a.tickText(i, i.c2l(x), !0).text, c;
              };
            }
          ),
          /***/
          4928: (
            /***/
            function(M, L, r) {
              var a = r(6308), p = r(3028);
              M.exports = function(f, u) {
                var c, d;
                if (f.mode === "lines")
                  return c = f.line.color, c && a.opacity(c) ? c : f.fillcolor;
                if (f.mode === "none")
                  return f.fill ? f.fillcolor : "";
                var h = u.mcc || (f.marker || {}).color, i = u.mlcc || ((f.marker || {}).line || {}).color;
                return d = h && a.opacity(h) ? h : i && a.opacity(i) && (u.mlw || ((f.marker || {}).line || {}).width) ? i : "", d ? a.opacity(d) < 0.3 ? a.addOpacity(d, 0.3) : d : (c = (f.line || {}).color, c && a.opacity(c) && p.hasLines(f) && f.line.width ? c : f.fillcolor);
              };
            }
          ),
          /***/
          11: (
            /***/
            function(M, L, r) {
              var a = r(1888).getAxisGroup;
              M.exports = function(l, f, u, c) {
                var d = f.orientation, h = f[{
                  v: "x",
                  h: "y"
                }[d] + "axis"], i = a(u, h) + d, b = u._alignmentOpts || {}, x = c("alignmentgroup"), D = b[i];
                D || (D = b[i] = {});
                var C = D[x];
                C ? C.traces.push(f) : C = D[x] = {
                  traces: [f],
                  alignmentIndex: Object.keys(D).length,
                  offsetGroups: {}
                };
                var w = c("offsetgroup"), S = C.offsetGroups, T = S[w];
                w && (T || (T = S[w] = {
                  offsetIndex: Object.keys(S).length
                }), f._offsetIndex = T.offsetIndex);
              };
            }
          ),
          /***/
          8723: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(3024), l = r(4040), f = r(4928), u = r(6308), c = a.fillText;
              M.exports = function(h, i, b, x) {
                var D = h.cd, C = D[0].trace, w = h.xa, S = h.ya, T = w.c2p(i), k = S.c2p(b), A = [T, k], R = C.hoveron || "", g = C.mode.indexOf("markers") !== -1 ? 3 : 0.5, I = !!C.xperiodalignment, O = !!C.yperiodalignment;
                if (R.indexOf("points") !== -1) {
                  var $ = function(Ce) {
                    if (I) {
                      var Re = w.c2p(Ce.xStart), Be = w.c2p(Ce.xEnd);
                      return T >= Math.min(Re, Be) && T <= Math.max(Re, Be) ? 0 : 1 / 0;
                    }
                    var xe = Math.max(3, Ce.mrc || 0), Me = 1 - 1 / xe, De = Math.abs(w.c2p(Ce.x) - T);
                    return De < xe ? Me * De / xe : De - xe + Me;
                  }, Y = function(Ce) {
                    if (O) {
                      var Re = S.c2p(Ce.yStart), Be = S.c2p(Ce.yEnd);
                      return k >= Math.min(Re, Be) && k <= Math.max(Re, Be) ? 0 : 1 / 0;
                    }
                    var xe = Math.max(3, Ce.mrc || 0), Me = 1 - 1 / xe, De = Math.abs(S.c2p(Ce.y) - k);
                    return De < xe ? Me * De / xe : De - xe + Me;
                  }, ne = function(Ce) {
                    var Re = Math.max(g, Ce.mrc || 0), Be = w.c2p(Ce.x) - T, xe = S.c2p(Ce.y) - k;
                    return Math.max(Math.sqrt(Be * Be + xe * xe) - Re, 1 - g / Re);
                  }, q = p.getDistanceFunction(x, $, Y, ne);
                  if (p.getClosest(D, q, h), h.index !== !1) {
                    var B = D[h.index], X = w.c2p(B.x, !0), U = S.c2p(B.y, !0), te = B.mrc || 1;
                    h.index = B.i;
                    var se = D[0].t.orientation, me = se && (B.sNorm || B.s), J = se === "h" ? me : B.orig_x !== void 0 ? B.orig_x : B.x, W = se === "v" ? me : B.orig_y !== void 0 ? B.orig_y : B.y;
                    return a.extendFlat(h, {
                      color: f(C, B),
                      x0: X - te,
                      x1: X + te,
                      xLabelVal: J,
                      y0: U - te,
                      y1: U + te,
                      yLabelVal: W,
                      spikeDistance: ne(B),
                      hovertemplate: C.hovertemplate
                    }), c(B, C, h), l.getComponentMethod("errorbars", "hoverInfo")(B, C, h), [h];
                  }
                }
                function ae(Ce) {
                  if (!Ce)
                    return !1;
                  var Re = Ce.node();
                  try {
                    var Be = new DOMPoint(A[0], A[1]);
                    return Re.isPointInFill(Be);
                  } catch {
                    var xe = Re.ownerSVGElement.createSVGPoint();
                    return xe.x = A[0], xe.y = A[1], Re.isPointInFill(xe);
                  }
                }
                function oe(Ce) {
                  var Re, Be = [], xe = 1 / 0, Me = -1 / 0, De = 1 / 0, Z = -1 / 0, ee;
                  for (Re = 0; Re < Ce.length; Re++) {
                    var ie = Ce[Re];
                    ie.contains(A) && (Be.push(ie), De = Math.min(De, ie.ymin), Z = Math.max(Z, ie.ymax));
                  }
                  if (Be.length === 0)
                    return null;
                  De = Math.max(De, 0), Z = Math.min(Z, S._length), ee = (De + Z) / 2;
                  var G, H, ce, j, he, be, we;
                  for (Re = 0; Re < Be.length; Re++)
                    for (H = Be[Re].pts, G = 1; G < H.length; G++)
                      be = H[G - 1][1], we = H[G][1], be > ee != we >= ee && (j = H[G - 1][0], he = H[G][0], we - be && (ce = j + (he - j) * (ee - be) / (we - be), xe = Math.min(xe, ce), Me = Math.max(Me, ce)));
                  return xe = Math.max(xe, 0), Me = Math.min(Me, w._length), {
                    x0: xe,
                    x1: Me,
                    y0: ee,
                    y1: ee
                  };
                }
                if (R.indexOf("fills") !== -1 && C._fillElement) {
                  var ve = ae(C._fillElement) && !ae(C._fillExclusionElement);
                  if (ve) {
                    var fe = oe(C._polygons);
                    fe === null && (fe = {
                      x0: A[0],
                      x1: A[0],
                      y0: A[1],
                      y1: A[1]
                    });
                    var ye = u.defaultLine;
                    return u.opacity(C.fillcolor) ? ye = C.fillcolor : u.opacity((C.line || {}).color) && (ye = C.line.color), a.extendFlat(h, {
                      // never let a 2D override 1D type as closest point
                      // also: no spikeDistance, it's not allowed for fills
                      distance: h.maxHoverDistance,
                      x0: fe.x0,
                      x1: fe.x1,
                      y0: fe.y0,
                      y1: fe.y1,
                      color: ye,
                      hovertemplate: !1
                    }), delete h.index, C.text && !a.isArrayOrTypedArray(C.text) ? h.text = String(C.text) : h.text = C.name, [h];
                  }
                }
              };
            }
          ),
          /***/
          5875: (
            /***/
            function(M, L, r) {
              var a = r(3028);
              M.exports = {
                hasLines: a.hasLines,
                hasMarkers: a.hasMarkers,
                hasText: a.hasText,
                isBubble: a.isBubble,
                attributes: r(2904),
                layoutAttributes: r(5308),
                supplyDefaults: r(8800),
                crossTraceDefaults: r(5036),
                supplyLayoutDefaults: r(9748),
                calc: r(6356).calc,
                crossTraceCalc: r(6664),
                arraysToCalcdata: r(148),
                plot: r(6504),
                colorbar: r(5528),
                formatLabels: r(6688),
                style: r(6844).style,
                styleOnSelect: r(6844).styleOnSelect,
                hoverPoints: r(8723),
                selectPoints: r(1560),
                animatable: !0,
                moduleType: "trace",
                name: "scatter",
                basePlotModule: r(7952),
                categories: ["cartesian", "svg", "symbols", "errorBarsOK", "showLegend", "scatter-like", "zoomScale"],
                meta: {}
              };
            }
          ),
          /***/
          5308: (
            /***/
            function(M) {
              M.exports = {
                scattermode: {
                  valType: "enumerated",
                  values: ["group", "overlay"],
                  dflt: "overlay",
                  editType: "calc"
                },
                scattergap: {
                  valType: "number",
                  min: 0,
                  max: 1,
                  editType: "calc"
                }
              };
            }
          ),
          /***/
          9748: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(5308);
              M.exports = function(l, f) {
                function u(d, h) {
                  return a.coerce(l, f, p, d, h);
                }
                var c = f.barmode === "group";
                f.scattermode === "group" && u("scattergap", c ? f.bargap : 0.2);
              };
            }
          ),
          /***/
          6828: (
            /***/
            function(M, L, r) {
              var a = r(3400).isArrayOrTypedArray, p = r(4288).hasColorscale, l = r(7260);
              M.exports = function(u, c, d, h, i, b) {
                b || (b = {});
                var x = (u.marker || {}).color;
                if (x && x._inputArray && (x = x._inputArray), i("line.color", d), p(u, "line"))
                  l(u, c, h, i, {
                    prefix: "line.",
                    cLetter: "c"
                  });
                else {
                  var D = (a(x) ? !1 : x) || d;
                  i("line.color", D);
                }
                i("line.width"), b.noDash || i("line.dash"), b.backoff && i("line.backoff");
              };
            }
          ),
          /***/
          2340: (
            /***/
            function(M, L, r) {
              var a = r(3616), p = r(9032), l = p.BADNUM, f = p.LOG_CLIP, u = f + 0.5, c = f - 0.5, d = r(3400), h = d.segmentsIntersect, i = d.constrain, b = r(8200);
              M.exports = function(D, C) {
                var w = C.trace || {}, S = C.xaxis, T = C.yaxis, k = S.type === "log", A = T.type === "log", R = S._length, g = T._length, I = C.backoff, O = w.marker, $ = C.connectGaps, Y = C.baseTolerance, ne = C.shape, q = ne === "linear", B = w.fill && w.fill !== "none", X = [], U = b.minTolerance, te = D.length, se = new Array(te), me = 0, J, W, ae, oe, ve, fe, ye, Ce, Re, Be, xe, Me, De, Z, ee, ie;
                function G(rt) {
                  var tt = D[rt];
                  if (!tt)
                    return !1;
                  var Ft = C.linearized ? S.l2p(tt.x) : S.c2p(tt.x), Dt = C.linearized ? T.l2p(tt.y) : T.c2p(tt.y);
                  if (Ft === l) {
                    if (k && (Ft = S.c2p(tt.x, !0)), Ft === l)
                      return !1;
                    A && Dt === l && (Ft *= Math.abs(S._m * g * (S._m > 0 ? u : c) / (T._m * R * (T._m > 0 ? u : c)))), Ft *= 1e3;
                  }
                  if (Dt === l) {
                    if (A && (Dt = T.c2p(tt.y, !0)), Dt === l)
                      return !1;
                    Dt *= 1e3;
                  }
                  return [Ft, Dt];
                }
                function H(rt, tt, Ft, Dt) {
                  var dt = Ft - rt, st = Dt - tt, Nt = 0.5 - rt, ar = 0.5 - tt, ur = dt * dt + st * st, Or = dt * Nt + st * ar;
                  if (Or > 0 && Or < ur) {
                    var Fr = Nt * st - ar * dt;
                    if (Fr * Fr < ur)
                      return !0;
                  }
                }
                var ce, j;
                function he(rt, tt) {
                  var Ft = rt[0] / R, Dt = rt[1] / g, dt = Math.max(0, -Ft, Ft - 1, -Dt, Dt - 1);
                  return dt && ce !== void 0 && H(Ft, Dt, ce, j) && (dt = 0), dt && tt && H(Ft, Dt, tt[0] / R, tt[1] / g) && (dt = 0), (1 + b.toleranceGrowth * dt) * Y;
                }
                function be(rt, tt) {
                  var Ft = rt[0] - tt[0], Dt = rt[1] - tt[1];
                  return Math.sqrt(Ft * Ft + Dt * Dt);
                }
                var we = b.maxScreensAway, Ie = -R * we, Ge = R * (1 + we), Ve = -g * we, Je = g * (1 + we), et = [[Ie, Ve, Ge, Ve], [Ge, Ve, Ge, Je], [Ge, Je, Ie, Je], [Ie, Je, Ie, Ve]], at, Le, ze, Oe, Xe, it;
                function ut(rt, tt) {
                  for (var Ft = [], Dt = 0, dt = 0; dt < 4; dt++) {
                    var st = et[dt], Nt = h(rt[0], rt[1], tt[0], tt[1], st[0], st[1], st[2], st[3]);
                    Nt && (!Dt || Math.abs(Nt.x - Ft[0][0]) > 1 || Math.abs(Nt.y - Ft[0][1]) > 1) && (Nt = [Nt.x, Nt.y], Dt && be(Nt, rt) < be(Ft[0], rt) ? Ft.unshift(Nt) : Ft.push(Nt), Dt++);
                  }
                  return Ft;
                }
                function wt(rt) {
                  if (rt[0] < Ie || rt[0] > Ge || rt[1] < Ve || rt[1] > Je)
                    return [i(rt[0], Ie, Ge), i(rt[1], Ve, Je)];
                }
                function kt(rt, tt) {
                  if (rt[0] === tt[0] && (rt[0] === Ie || rt[0] === Ge) || rt[1] === tt[1] && (rt[1] === Ve || rt[1] === Je))
                    return !0;
                }
                function Ot(rt, tt) {
                  var Ft = [], Dt = wt(rt), dt = wt(tt);
                  return Dt && dt && kt(Dt, dt) || (Dt && Ft.push(Dt), dt && Ft.push(dt)), Ft;
                }
                function Lt(rt, tt, Ft) {
                  return function(Dt, dt) {
                    var st = wt(Dt), Nt = wt(dt), ar = [];
                    if (st && Nt && kt(st, Nt))
                      return ar;
                    st && ar.push(st), Nt && ar.push(Nt);
                    var ur = 2 * d.constrain((Dt[rt] + dt[rt]) / 2, tt, Ft) - ((st || Dt)[rt] + (Nt || dt)[rt]);
                    if (ur) {
                      var Or;
                      st && Nt ? Or = ur > 0 == st[rt] > Nt[rt] ? st : Nt : Or = st || Nt, Or[rt] += ur;
                    }
                    return ar;
                  };
                }
                var Mt;
                ne === "linear" || ne === "spline" ? Mt = ut : ne === "hv" || ne === "vh" ? Mt = Ot : ne === "hvh" ? Mt = Lt(0, Ie, Ge) : ne === "vhv" && (Mt = Lt(1, Ve, Je));
                function Ut(rt, tt) {
                  var Ft = tt[0] - rt[0], Dt = (tt[1] - rt[1]) / Ft, dt = (rt[1] * tt[0] - tt[1] * rt[0]) / Ft;
                  return dt > 0 ? [Dt > 0 ? Ie : Ge, Je] : [Dt > 0 ? Ge : Ie, Ve];
                }
                function Ct(rt) {
                  var tt = rt[0], Ft = rt[1], Dt = tt === se[me - 1][0], dt = Ft === se[me - 1][1];
                  if (!(Dt && dt))
                    if (me > 1) {
                      var st = tt === se[me - 2][0], Nt = Ft === se[me - 2][1];
                      Dt && (tt === Ie || tt === Ge) && st ? Nt ? me-- : se[me - 1] = rt : dt && (Ft === Ve || Ft === Je) && Nt ? st ? me-- : se[me - 1] = rt : se[me++] = rt;
                    } else
                      se[me++] = rt;
                }
                function jt(rt) {
                  se[me - 1][0] !== rt[0] && se[me - 1][1] !== rt[1] && Ct([ze, Oe]), Ct(rt), Xe = null, ze = Oe = 0;
                }
                var nr = d.isArrayOrTypedArray(O);
                function Jt(rt) {
                  if (rt && I && (rt.i = J, rt.d = D, rt.trace = w, rt.marker = nr ? O[rt.i] : O, rt.backoff = I), ce = rt[0] / R, j = rt[1] / g, at = rt[0] < Ie ? Ie : rt[0] > Ge ? Ge : 0, Le = rt[1] < Ve ? Ve : rt[1] > Je ? Je : 0, at || Le) {
                    if (!me)
                      se[me++] = [at || rt[0], Le || rt[1]];
                    else if (Xe) {
                      var tt = Mt(Xe, rt);
                      tt.length > 1 && (jt(tt[0]), se[me++] = tt[1]);
                    } else
                      it = Mt(se[me - 1], rt)[0], se[me++] = it;
                    var Ft = se[me - 1];
                    at && Le && (Ft[0] !== at || Ft[1] !== Le) ? (Xe && (ze !== at && Oe !== Le ? Ct(ze && Oe ? Ut(Xe, rt) : [ze || at, Oe || Le]) : ze && Oe && Ct([ze, Oe])), Ct([at, Le])) : ze - at && Oe - Le && Ct([at || ze, Le || Oe]), Xe = rt, ze = at, Oe = Le;
                  } else
                    Xe && jt(Mt(Xe, rt)[0]), se[me++] = rt;
                }
                for (J = 0; J < te; J++)
                  if (W = G(J), !!W) {
                    for (me = 0, Xe = null, Jt(W), J++; J < te; J++) {
                      if (oe = G(J), !oe) {
                        if ($)
                          continue;
                        break;
                      }
                      if (!q || !C.simplify) {
                        Jt(oe);
                        continue;
                      }
                      var Wt = G(J + 1);
                      if (Be = be(oe, W), !(!(B && (me === 0 || me === te - 1)) && Be < he(oe, Wt) * U)) {
                        for (Ce = [(oe[0] - W[0]) / Be, (oe[1] - W[1]) / Be], ve = W, xe = Be, Me = Z = ee = 0, ye = !1, ae = oe, J++; J < D.length; J++) {
                          if (fe = Wt, Wt = G(J + 1), !fe) {
                            if ($)
                              continue;
                            break;
                          }
                          if (Re = [fe[0] - W[0], fe[1] - W[1]], ie = Re[0] * Ce[1] - Re[1] * Ce[0], Z = Math.min(Z, ie), ee = Math.max(ee, ie), ee - Z > he(fe, Wt))
                            break;
                          ae = fe, De = Re[0] * Ce[0] + Re[1] * Ce[1], De > xe ? (xe = De, oe = fe, ye = !1) : De < Me && (Me = De, ve = fe, ye = !0);
                        }
                        if (ye ? (Jt(oe), ae !== ve && Jt(ve)) : (ve !== W && Jt(ve), ae !== oe && Jt(oe)), Jt(ae), J >= D.length || !fe)
                          break;
                        Jt(fe), W = fe;
                      }
                    }
                    Xe && Ct([ze || Xe[0], Oe || Xe[1]]), X.push(se.slice(0, me));
                  }
                var qe = ne.slice(ne.length - 1);
                if (I && qe !== "h" && qe !== "v") {
                  for (var Ue = !1, We = -1, je = [], lt = 0; lt < X.length; lt++)
                    for (var Se = 0; Se < X[lt].length - 1; Se++) {
                      var Pe = X[lt][Se], Ye = X[lt][Se + 1], Ze = a.applyBackoff(Ye, Pe);
                      (Ze[0] !== Ye[0] || Ze[1] !== Ye[1]) && (Ue = !0), je[We + 1] || (We++, je[We] = [Pe, [Ze[0], Ze[1]]]);
                    }
                  return Ue ? je : X;
                }
                return X;
              };
            }
          ),
          /***/
          1731: (
            /***/
            function(M) {
              M.exports = function(r, a, p) {
                var l = p("line.shape");
                l === "spline" && p("line.smoothing");
              };
            }
          ),
          /***/
          4328: (
            /***/
            function(M) {
              var L = {
                tonextx: 1,
                tonexty: 1,
                tonext: 1
              };
              M.exports = function(a, p, l) {
                var f, u, c, d, h, i = {}, b = !1, x = -1, D = 0, C = -1;
                for (u = 0; u < l.length; u++)
                  f = l[u][0].trace, c = f.stackgroup || "", c ? c in i ? h = i[c] : (h = i[c] = D, D++) : f.fill in L && C >= 0 ? h = C : (h = C = D, D++), h < x && (b = !0), f._groupIndex = x = h;
                var w = l.slice();
                b && w.sort(function(T, k) {
                  var A = T[0].trace, R = k[0].trace;
                  return A._groupIndex - R._groupIndex || A.index - R.index;
                });
                var S = {};
                for (u = 0; u < w.length; u++)
                  f = w[u][0].trace, c = f.stackgroup || "", f.visible === !0 ? (f._nexttrace = null, f.fill in L && (d = S[c], f._prevtrace = d || null, d && (d._nexttrace = f)), f._ownfill = f.fill && (f.fill.substr(0, 6) === "tozero" || f.fill === "toself" || f.fill.substr(0, 2) === "to" && !f._prevtrace), S[c] = f) : f._prevtrace = f._nexttrace = f._ownfill = null;
                return w;
              };
            }
          ),
          /***/
          7152: (
            /***/
            function(M, L, r) {
              var a = r(8248);
              M.exports = function(l, f) {
                f || (f = 2);
                var u = l.marker, c = u.sizeref || 1, d = u.sizemin || 0, h = u.sizemode === "area" ? function(i) {
                  return Math.sqrt(i / c);
                } : function(i) {
                  return i / c;
                };
                return function(i) {
                  var b = h(i / f);
                  return a(b) && b > 0 ? Math.max(b, d) : 0;
                };
              };
            }
          ),
          /***/
          5528: (
            /***/
            function(M) {
              M.exports = {
                container: "marker",
                min: "cmin",
                max: "cmax"
              };
            }
          ),
          /***/
          4428: (
            /***/
            function(M, L, r) {
              var a = r(6308), p = r(4288).hasColorscale, l = r(7260), f = r(3028);
              M.exports = function(c, d, h, i, b, x) {
                var D = f.isBubble(c), C = (c.line || {}).color, w;
                if (x = x || {}, C && (h = C), b("marker.symbol"), b("marker.opacity", D ? 0.7 : 1), b("marker.size"), x.noAngle || (b("marker.angle"), x.noAngleRef || b("marker.angleref"), x.noStandOff || b("marker.standoff")), b("marker.color", h), p(c, "marker") && l(c, d, i, b, {
                  prefix: "marker.",
                  cLetter: "c"
                }), x.noSelect || (b("selected.marker.color"), b("unselected.marker.color"), b("selected.marker.size"), b("unselected.marker.size")), x.noLine || (C && !Array.isArray(C) && d.marker.color !== C ? w = C : D ? w = a.background : w = a.defaultLine, b("marker.line.color", w), p(c, "marker.line") && l(c, d, i, b, {
                  prefix: "marker.line.",
                  cLetter: "c"
                }), b("marker.line.width", D ? 1 : 0)), D && (b("marker.sizeref"), b("marker.sizemin"), b("marker.sizemode")), x.gradient) {
                  var S = b("marker.gradient.type");
                  S !== "none" && b("marker.gradient.color");
                }
              };
            }
          ),
          /***/
          1147: (
            /***/
            function(M, L, r) {
              var a = r(3400).dateTick0, p = r(9032), l = p.ONEWEEK;
              function f(u, c) {
                return u % l === 0 ? a(c, 1) : a(c, 0);
              }
              M.exports = function(c, d, h, i, b) {
                if (b || (b = {
                  x: !0,
                  y: !0
                }), b.x) {
                  var x = i("xperiod");
                  x && (i("xperiod0", f(x, d.xcalendar)), i("xperiodalignment"));
                }
                if (b.y) {
                  var D = i("yperiod");
                  D && (i("yperiod0", f(D, d.ycalendar)), i("yperiodalignment"));
                }
              };
            }
          ),
          /***/
          6504: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(4040), l = r(3400), f = l.ensureSingle, u = l.identity, c = r(3616), d = r(3028), h = r(2340), i = r(4328), b = r(2065).tester;
              M.exports = function(S, T, k, A, R, g) {
                var I, O, $ = !R, Y = !!R && R.duration > 0, ne = i(S, T, k);
                if (I = A.selectAll("g.trace").data(ne, function(B) {
                  return B[0].trace.uid;
                }), I.enter().append("g").attr("class", function(B) {
                  return "trace scatter trace" + B[0].trace.uid;
                }).style("stroke-miterlimit", 2), I.order(), x(S, I, T), Y) {
                  g && (O = g());
                  var q = a.transition().duration(R.duration).ease(R.easing).each("end", function() {
                    O && O();
                  }).each("interrupt", function() {
                    O && O();
                  });
                  q.each(function() {
                    A.selectAll("g.trace").each(function(B, X) {
                      D(S, X, T, B, ne, this, R);
                    });
                  });
                } else
                  I.each(function(B, X) {
                    D(S, X, T, B, ne, this, R);
                  });
                $ && I.exit().remove(), A.selectAll("path:not([d])").remove();
              };
              function x(w, S, T) {
                S.each(function(k) {
                  var A = f(a.select(this), "g", "fills");
                  c.setClipUrl(A, T.layerClipId, w);
                  var R = k[0].trace, g = [];
                  R._ownfill && g.push("_ownFill"), R._nexttrace && g.push("_nextFill");
                  var I = A.selectAll("g").data(g, u);
                  I.enter().append("g"), I.exit().each(function(O) {
                    R[O] = null;
                  }).remove(), I.order().each(function(O) {
                    R[O] = f(a.select(this), "path", "js-fill");
                  });
                });
              }
              function D(w, S, T, k, A, R, g) {
                var I = w._context.staticPlot, O;
                C(w, S, T, k, A);
                var $ = !!g && g.duration > 0;
                function Y(Ct) {
                  return $ ? Ct.transition() : Ct;
                }
                var ne = T.xaxis, q = T.yaxis, B = k[0].trace, X = B.line, U = a.select(R), te = f(U, "g", "errorbars"), se = f(U, "g", "lines"), me = f(U, "g", "points"), J = f(U, "g", "text");
                if (p.getComponentMethod("errorbars", "plot")(w, te, T, g), B.visible !== !0)
                  return;
                Y(U).style("opacity", B.opacity);
                var W, ae, oe = B.fill.charAt(B.fill.length - 1);
                oe !== "x" && oe !== "y" && (oe = "");
                var ve, fe;
                oe === "y" ? (ve = 1, fe = q.c2p(0, !0)) : oe === "x" && (ve = 0, fe = ne.c2p(0, !0)), k[0][T.isRangePlot ? "nodeRangePlot3" : "node3"] = U;
                var ye = "", Ce = [], Re = B._prevtrace, Be = null, xe = null;
                Re && (ye = Re._prevRevpath || "", ae = Re._nextFill, Ce = Re._ownPolygons, Be = Re._fillsegments, xe = Re._fillElement);
                var Me, De, Z = "", ee = "", ie, G, H, ce, j, he, be = [];
                B._polygons = [];
                var we = [], Ie = [], Ge = l.noop;
                if (W = B._ownFill, d.hasLines(B) || B.fill !== "none") {
                  ae && ae.datum(k), ["hv", "vh", "hvh", "vhv"].indexOf(X.shape) !== -1 ? (ie = c.steps(X.shape), G = c.steps(X.shape.split("").reverse().join(""))) : X.shape === "spline" ? ie = G = function(Ct) {
                    var jt = Ct[Ct.length - 1];
                    return Ct.length > 1 && Ct[0][0] === jt[0] && Ct[0][1] === jt[1] ? c.smoothclosed(Ct.slice(1), X.smoothing) : c.smoothopen(Ct, X.smoothing);
                  } : ie = G = function(Ct) {
                    return "M" + Ct.join("L");
                  }, H = function(Ct) {
                    return G(Ct.reverse());
                  }, Ie = h(k, {
                    xaxis: ne,
                    yaxis: q,
                    trace: B,
                    connectGaps: B.connectgaps,
                    baseTolerance: Math.max(X.width || 1, 3) / 4,
                    shape: X.shape,
                    backoff: X.backoff,
                    simplify: X.simplify,
                    fill: B.fill
                  }), we = new Array(Ie.length);
                  var Ve = 0;
                  for (O = 0; O < Ie.length; O++) {
                    var Je, et = Ie[O];
                    !Je || !oe ? (Je = et.slice(), we[Ve] = Je, Ve++) : Je.push.apply(Je, et);
                  }
                  B._fillElement = null, B._fillExclusionElement = xe, B._fillsegments = we.slice(0, Ve), we = B._fillsegments, Ie.length && (ce = Ie[0][0].slice(), j = Ie[Ie.length - 1], he = j[j.length - 1].slice()), Ge = function(Ct) {
                    return function(jt) {
                      if (Me = ie(jt), De = H(jt), Z ? oe ? (Z += "L" + Me.substr(1), ee = De + ("L" + ee.substr(1))) : (Z += "Z" + Me, ee = De + "Z" + ee) : (Z = Me, ee = De), d.hasLines(B)) {
                        var nr = a.select(this);
                        if (nr.datum(k), Ct)
                          Y(nr.style("opacity", 0).attr("d", Me).call(c.lineGroupStyle)).style("opacity", 1);
                        else {
                          var Jt = Y(nr);
                          Jt.attr("d", Me), c.singleLineStyle(k, Jt);
                        }
                      }
                    };
                  };
                }
                var at = se.selectAll(".js-line").data(Ie);
                Y(at.exit()).style("opacity", 0).remove(), at.each(Ge(!1)), at.enter().append("path").classed("js-line", !0).style("vector-effect", I ? "none" : "non-scaling-stroke").call(c.lineGroupStyle).each(Ge(!0)), c.setClipUrl(at, T.layerClipId, w);
                function Le(Ct) {
                  Y(Ct).attr("d", "M0,0Z");
                }
                var ze = function() {
                  var Ct = new Array(we.length);
                  for (O = 0; O < we.length; O++)
                    Ct[O] = b(we[O]);
                  return Ct;
                }, Oe = function(Ct) {
                  var jt, nr;
                  if (!Ct || Ct.length === 0)
                    for (jt = new Array(we.length), nr = 0; nr < we.length; nr++) {
                      var Jt = we[nr][0].slice(), Wt = we[nr][we[nr].length - 1].slice();
                      Jt[ve] = Wt[ve] = fe;
                      var qe = [Wt, Jt], Ue = qe.concat(we[nr]);
                      jt[nr] = b(Ue);
                    }
                  else {
                    for (jt = new Array(Ct.length - 1 + we.length), nr = 0; nr < Ct.length - 1; nr++)
                      jt[nr] = b(Ct[nr]);
                    var We = Ct[Ct.length - 1].slice();
                    for (We.reverse(), nr = 0; nr < we.length; nr++)
                      jt[Ct.length - 1 + nr] = b(we[nr].concat(We));
                  }
                  return jt;
                };
                Ie.length ? (W ? (W.datum(k), ce && he && (oe ? (ce[ve] = he[ve] = fe, Y(W).attr("d", "M" + he + "L" + ce + "L" + Z.substr(1)).call(c.singleFillStyle, w), be = Oe(null)) : (Y(W).attr("d", Z + "Z").call(c.singleFillStyle, w), be = ze())), B._polygons = be, B._fillElement = W) : ae && (B.fill.substr(0, 6) === "tonext" && Z && ye ? (B.fill === "tonext" ? (Y(ae).attr("d", Z + "Z" + ye + "Z").call(c.singleFillStyle, w), be = ze(), B._polygons = be.concat(Ce)) : (Y(ae).attr("d", Z + "L" + ye.substr(1) + "Z").call(c.singleFillStyle, w), be = Oe(Be), B._polygons = be), B._fillElement = ae) : Le(ae)), B._prevRevpath = ee) : (W ? Le(W) : ae && Le(ae), B._prevRevpath = null), B._ownPolygons = be;
                function Xe(Ct) {
                  return Ct.filter(function(jt) {
                    return !jt.gap && jt.vis;
                  });
                }
                function it(Ct) {
                  return Ct.filter(function(jt) {
                    return jt.vis;
                  });
                }
                function ut(Ct) {
                  return Ct.filter(function(jt) {
                    return !jt.gap;
                  });
                }
                function wt(Ct) {
                  return Ct.id;
                }
                function kt(Ct) {
                  if (Ct.ids)
                    return wt;
                }
                function Ot() {
                  return !1;
                }
                function Lt(Ct, jt, nr) {
                  var Jt, Wt, qe, Ue = nr[0].trace, We = d.hasMarkers(Ue), je = d.hasText(Ue), lt = kt(Ue), Se = Ot, Pe = Ot;
                  if (We || je) {
                    var Ye = u, Ze = Ue.stackgroup, rt = Ze && w._fullLayout._scatterStackOpts[ne._id + q._id][Ze].stackgaps === "infer zero";
                    Ue.marker.maxdisplayed || Ue._needsCull ? Ye = rt ? it : Xe : Ze && !rt && (Ye = ut), We && (Se = Ye), je && (Pe = Ye);
                  }
                  Wt = Ct.selectAll("path.point"), Jt = Wt.data(Se, lt);
                  var tt = Jt.enter().append("path").classed("point", !0);
                  $ && tt.call(c.pointStyle, Ue, w).call(c.translatePoints, ne, q).style("opacity", 0).transition().style("opacity", 1), Jt.order();
                  var Ft;
                  We && (Ft = c.makePointStyleFns(Ue)), Jt.each(function(Dt) {
                    var dt = a.select(this), st = Y(dt);
                    qe = c.translatePoint(Dt, st, ne, q), qe ? (c.singlePointStyle(Dt, st, Ue, Ft, w), T.layerClipId && c.hideOutsideRangePoint(Dt, st, ne, q, Ue.xcalendar, Ue.ycalendar), Ue.customdata && dt.classed("plotly-customdata", Dt.data !== null && Dt.data !== void 0)) : st.remove();
                  }), $ ? Jt.exit().transition().style("opacity", 0).remove() : Jt.exit().remove(), Wt = jt.selectAll("g"), Jt = Wt.data(Pe, lt), Jt.enter().append("g").classed("textpoint", !0).append("text"), Jt.order(), Jt.each(function(Dt) {
                    var dt = a.select(this), st = Y(dt.select("text"));
                    qe = c.translatePoint(Dt, st, ne, q), qe ? T.layerClipId && c.hideOutsideRangePoint(Dt, dt, ne, q, Ue.xcalendar, Ue.ycalendar) : dt.remove();
                  }), Jt.selectAll("text").call(c.textPointStyle, Ue, w).each(function(Dt) {
                    var dt = ne.c2p(Dt.x), st = q.c2p(Dt.y);
                    a.select(this).selectAll("tspan.line").each(function() {
                      Y(a.select(this)).attr({
                        x: dt,
                        y: st
                      });
                    });
                  }), Jt.exit().remove();
                }
                me.datum(k), J.datum(k), Lt(me, J, k);
                var Mt = B.cliponaxis === !1, Ut = Mt ? null : T.layerClipId;
                c.setClipUrl(me, Ut, w), c.setClipUrl(J, Ut, w);
              }
              function C(w, S, T, k, A) {
                var R = T.xaxis, g = T.yaxis, I = a.extent(l.simpleMap(R.range, R.r2c)), O = a.extent(l.simpleMap(g.range, g.r2c)), $ = k[0].trace;
                if (d.hasMarkers($)) {
                  var Y = $.marker.maxdisplayed;
                  if (Y !== 0) {
                    var ne = k.filter(function(U) {
                      return U.x >= I[0] && U.x <= I[1] && U.y >= O[0] && U.y <= O[1];
                    }), q = Math.ceil(ne.length / Y), B = 0;
                    A.forEach(function(U, te) {
                      var se = U[0].trace;
                      d.hasMarkers(se) && se.marker.maxdisplayed > 0 && te < S && B++;
                    });
                    var X = Math.round(B * q / 3 + Math.floor(B / 3) * q / 7.1);
                    k.forEach(function(U) {
                      delete U.vis;
                    }), ne.forEach(function(U, te) {
                      Math.round((te + X) % q) === 0 && (U.vis = !0);
                    });
                  }
                }
              }
            }
          ),
          /***/
          1560: (
            /***/
            function(M, L, r) {
              var a = r(3028);
              M.exports = function(l, f) {
                var u = l.cd, c = l.xaxis, d = l.yaxis, h = [], i = u[0].trace, b, x, D, C, w = !a.hasMarkers(i) && !a.hasText(i);
                if (w)
                  return [];
                if (f === !1)
                  for (b = 0; b < u.length; b++)
                    u[b].selected = 0;
                else
                  for (b = 0; b < u.length; b++)
                    x = u[b], D = c.c2p(x.x), C = d.c2p(x.y), x.i !== null && f.contains([D, C], !1, b, l) ? (h.push({
                      pointNumber: x.i,
                      x: c.c2d(x.x),
                      y: d.c2d(x.y)
                    }), x.selected = 1) : x.selected = 0;
                return h;
              };
            }
          ),
          /***/
          3912: (
            /***/
            function(M) {
              var L = ["orientation", "groupnorm", "stackgaps"];
              M.exports = function(a, p, l, f) {
                var u = l._scatterStackOpts, c = f("stackgroup");
                if (c) {
                  var d = p.xaxis + p.yaxis, h = u[d];
                  h || (h = u[d] = {});
                  var i = h[c], b = !1;
                  i ? i.traces.push(p) : (i = h[c] = {
                    // keep track of trace indices for use during stacking calculations
                    // this will be filled in during `calc` and used during `crossTraceCalc`
                    // so it's OK if we don't recreate it during a non-calc edit
                    traceIndices: [],
                    // Hold on to the whole set of prior traces
                    // First one is most important, so we can clear defaults
                    // there if we find explicit values only in later traces.
                    // We're only going to *use* the values stored in groupOpts,
                    // but for the editor and validate we want things self-consistent
                    // The full set of traces is used only to fix `fill` default if
                    // we find `orientation: 'h'` beyond the first trace
                    traces: [p]
                  }, b = !0);
                  for (var x = {
                    orientation: p.x && !p.y ? "h" : "v"
                  }, D = 0; D < L.length; D++) {
                    var C = L[D], w = C + "Found";
                    if (!i[w]) {
                      var S = a[C] !== void 0, T = C === "orientation";
                      if ((S || b) && (i[C] = f(C, x[C]), T && (i.fillDflt = i[C] === "h" ? "tonextx" : "tonexty"), S && (i[w] = !0, !b && (delete i.traces[0][C], T))))
                        for (var k = 0; k < i.traces.length - 1; k++) {
                          var A = i.traces[k];
                          A._input.fill !== A.fill && (A.fill = i.fillDflt);
                        }
                    }
                  }
                  return i;
                }
              };
            }
          ),
          /***/
          6844: (
            /***/
            function(M, L, r) {
              var a = r(3428), p = r(3616), l = r(4040);
              function f(h) {
                var i = a.select(h).selectAll("g.trace.scatter");
                i.style("opacity", function(b) {
                  return b[0].trace.opacity;
                }), i.selectAll("g.points").each(function(b) {
                  var x = a.select(this), D = b.trace || b[0].trace;
                  u(x, D, h);
                }), i.selectAll("g.text").each(function(b) {
                  var x = a.select(this), D = b.trace || b[0].trace;
                  c(x, D, h);
                }), i.selectAll("g.trace path.js-line").call(p.lineGroupStyle), i.selectAll("g.trace path.js-fill").call(p.fillGroupStyle, h, !1), l.getComponentMethod("errorbars", "style")(i);
              }
              function u(h, i, b) {
                p.pointStyle(h.selectAll("path.point"), i, b);
              }
              function c(h, i, b) {
                p.textPointStyle(h.selectAll("text"), i, b);
              }
              function d(h, i, b) {
                var x = i[0].trace;
                x.selectedpoints ? (p.selectedPointStyle(b.selectAll("path.point"), x), p.selectedTextStyle(b.selectAll("text"), x)) : (u(b, x, h), c(b, x, h));
              }
              M.exports = {
                style: f,
                stylePoints: u,
                styleText: c,
                styleOnSelect: d
              };
            }
          ),
          /***/
          3028: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(8116).isTypedArraySpec;
              M.exports = {
                hasLines: function(l) {
                  return l.visible && l.mode && l.mode.indexOf("lines") !== -1;
                },
                hasMarkers: function(l) {
                  return l.visible && (l.mode && l.mode.indexOf("markers") !== -1 || // until splom implements 'mode'
                  l.type === "splom");
                },
                hasText: function(l) {
                  return l.visible && l.mode && l.mode.indexOf("text") !== -1;
                },
                isBubble: function(l) {
                  var f = l.marker;
                  return a.isPlainObject(f) && (a.isArrayOrTypedArray(f.size) || p(f.size));
                }
              };
            }
          ),
          /***/
          124: (
            /***/
            function(M, L, r) {
              var a = r(3400);
              M.exports = function(p, l, f, u, c) {
                c = c || {}, u("textposition"), a.coerceFont(u, "textfont", c.font || f.font, c), c.noSelect || (u("selected.textfont.color"), u("unselected.textfont.color"));
              };
            }
          ),
          /***/
          3980: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(4040);
              M.exports = function(f, u, c, d) {
                var h = d("x"), i = d("y"), b, x = p.getComponentMethod("calendars", "handleTraceDefaults");
                if (x(f, u, ["x", "y"], c), h) {
                  var D = a.minRowLength(h);
                  i ? b = Math.min(D, a.minRowLength(i)) : (b = D, d("y0"), d("dy"));
                } else {
                  if (!i)
                    return 0;
                  b = a.minRowLength(i), d("x0"), d("dx");
                }
                return u._length = b, b;
              };
            }
          ),
          /***/
          1843: (
            /***/
            function(M, L, r) {
              var a = r(4460), p = r(3400), l = r(3060), f = r(468).W, u = r(9032).BADNUM;
              L.moduleType = "transform", L.name = "aggregate";
              var c = L.attributes = {
                enabled: {
                  valType: "boolean",
                  dflt: !0,
                  editType: "calc"
                },
                groups: {
                  // TODO: groupby should support string or array grouping this way too
                  // currently groupby only allows a grouping array
                  valType: "string",
                  strict: !0,
                  noBlank: !0,
                  arrayOk: !0,
                  dflt: "x",
                  editType: "calc"
                },
                aggregations: {
                  _isLinkedToArray: "aggregation",
                  target: {
                    valType: "string",
                    editType: "calc"
                  },
                  func: {
                    valType: "enumerated",
                    values: ["count", "sum", "avg", "median", "mode", "rms", "stddev", "min", "max", "first", "last", "change", "range"],
                    dflt: "first",
                    editType: "calc"
                  },
                  funcmode: {
                    valType: "enumerated",
                    values: ["sample", "population"],
                    dflt: "sample",
                    editType: "calc"
                  },
                  enabled: {
                    valType: "boolean",
                    dflt: !0,
                    editType: "calc"
                  },
                  editType: "calc"
                },
                editType: "calc"
              }, d = c.aggregations;
              L.supplyDefaults = function(C, w) {
                var S = {}, T;
                function k(U, te) {
                  return p.coerce(C, S, c, U, te);
                }
                var A = k("enabled");
                if (!A)
                  return S;
                var R = l.findArrayAttributes(w), g = {};
                for (T = 0; T < R.length; T++)
                  g[R[T]] = 1;
                var I = k("groups");
                if (!Array.isArray(I)) {
                  if (!g[I])
                    return S.enabled = !1, S;
                  g[I] = 0;
                }
                var O = C.aggregations || [], $ = S.aggregations = new Array(O.length), Y;
                function ne(U, te) {
                  return p.coerce(O[T], Y, d, U, te);
                }
                for (T = 0; T < O.length; T++) {
                  Y = {
                    _index: T
                  };
                  var q = ne("target"), B = ne("func"), X = ne("enabled");
                  X && q && (g[q] || B === "count" && g[q] === void 0) ? (B === "stddev" && ne("funcmode"), g[q] = 0, $[T] = Y) : $[T] = {
                    enabled: !1,
                    _index: T
                  };
                }
                for (T = 0; T < R.length; T++)
                  g[R[T]] && $.push({
                    target: R[T],
                    func: d.func.dflt,
                    enabled: !0,
                    _index: -1
                  });
                return S;
              }, L.calcTransform = function(C, w, S) {
                if (S.enabled) {
                  var T = S.groups, k = p.getTargetArray(w, {
                    target: T
                  });
                  if (k) {
                    var A, R, g, I, O = {}, $ = {}, Y = [], ne = f(w.transforms, S), q = k.length;
                    for (w._length && (q = Math.min(q, w._length)), A = 0; A < q; A++)
                      R = k[A], g = O[R], g === void 0 ? (O[R] = Y.length, I = [A], Y.push(I), $[O[R]] = ne(A)) : (Y[g].push(A), $[O[R]] = ($[O[R]] || []).concat(ne(A)));
                    S._indexToPoints = $;
                    var B = S.aggregations;
                    for (A = 0; A < B.length; A++)
                      h(C, w, Y, B[A]);
                    typeof T == "string" && h(C, w, Y, {
                      target: T,
                      func: "first",
                      enabled: !0
                    }), w._length = Y.length;
                  }
                }
              };
              function h(C, w, S, T) {
                if (T.enabled) {
                  for (var k = T.target, A = p.nestedProperty(w, k), R = A.get(), g = a.getDataConversions(C, w, k, R), I = i(T, g), O = new Array(S.length), $ = 0; $ < S.length; $++)
                    O[$] = I(R, S[$]);
                  A.set(O), T.func === "count" && p.pushUnique(w._arrayAttrs, k);
                }
              }
              function i(C, w) {
                var S = C.func, T = w.d2c, k = w.c2d;
                switch (S) {
                  case "count":
                    return b;
                  case "first":
                    return x;
                  case "last":
                    return D;
                  case "sum":
                    return function(A, R) {
                      for (var g = 0, I = 0; I < R.length; I++) {
                        var O = T(A[R[I]]);
                        O !== u && (g += O);
                      }
                      return k(g);
                    };
                  case "avg":
                    return function(A, R) {
                      for (var g = 0, I = 0, O = 0; O < R.length; O++) {
                        var $ = T(A[R[O]]);
                        $ !== u && (g += $, I++);
                      }
                      return I ? k(g / I) : u;
                    };
                  case "min":
                    return function(A, R) {
                      for (var g = 1 / 0, I = 0; I < R.length; I++) {
                        var O = T(A[R[I]]);
                        O !== u && (g = Math.min(g, O));
                      }
                      return g === 1 / 0 ? u : k(g);
                    };
                  case "max":
                    return function(A, R) {
                      for (var g = -1 / 0, I = 0; I < R.length; I++) {
                        var O = T(A[R[I]]);
                        O !== u && (g = Math.max(g, O));
                      }
                      return g === -1 / 0 ? u : k(g);
                    };
                  case "range":
                    return function(A, R) {
                      for (var g = 1 / 0, I = -1 / 0, O = 0; O < R.length; O++) {
                        var $ = T(A[R[O]]);
                        $ !== u && (g = Math.min(g, $), I = Math.max(I, $));
                      }
                      return I === -1 / 0 || g === 1 / 0 ? u : k(I - g);
                    };
                  case "change":
                    return function(A, R) {
                      var g = T(A[R[0]]), I = T(A[R[R.length - 1]]);
                      return g === u || I === u ? u : k(I - g);
                    };
                  case "median":
                    return function(A, R) {
                      for (var g = [], I = 0; I < R.length; I++) {
                        var O = T(A[R[I]]);
                        O !== u && g.push(O);
                      }
                      if (!g.length)
                        return u;
                      g.sort(p.sorterAsc);
                      var $ = (g.length - 1) / 2;
                      return k((g[Math.floor($)] + g[Math.ceil($)]) / 2);
                    };
                  case "mode":
                    return function(A, R) {
                      for (var g = {}, I = 0, O = u, $ = 0; $ < R.length; $++) {
                        var Y = T(A[R[$]]);
                        if (Y !== u) {
                          var ne = g[Y] = (g[Y] || 0) + 1;
                          ne > I && (I = ne, O = Y);
                        }
                      }
                      return I ? k(O) : u;
                    };
                  case "rms":
                    return function(A, R) {
                      for (var g = 0, I = 0, O = 0; O < R.length; O++) {
                        var $ = T(A[R[O]]);
                        $ !== u && (g += $ * $, I++);
                      }
                      return I ? k(Math.sqrt(g / I)) : u;
                    };
                  case "stddev":
                    return function(A, R) {
                      var g = 0, I = 0, O = 1, $ = u, Y;
                      for (Y = 0; Y < R.length && $ === u; Y++)
                        $ = T(A[R[Y]]);
                      if ($ === u)
                        return u;
                      for (; Y < R.length; Y++) {
                        var ne = T(A[R[Y]]);
                        if (ne !== u) {
                          var q = ne - $;
                          g += q, I += q * q, O++;
                        }
                      }
                      var B = C.funcmode === "sample" ? O - 1 : O;
                      return B ? Math.sqrt((I - g * g / O) / B) : 0;
                    };
                }
              }
              function b(C, w) {
                return w.length;
              }
              function x(C, w) {
                return C[w[0]];
              }
              function D(C, w) {
                return C[w[w.length - 1]];
              }
            }
          ),
          /***/
          6744: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(4040), l = r(4460), f = r(468).W, u = r(9104), c = u.COMPARISON_OPS, d = u.INTERVAL_OPS, h = u.SET_OPS;
              L.moduleType = "transform", L.name = "filter", L.attributes = {
                enabled: {
                  valType: "boolean",
                  dflt: !0,
                  editType: "calc"
                },
                target: {
                  valType: "string",
                  strict: !0,
                  noBlank: !0,
                  arrayOk: !0,
                  dflt: "x",
                  editType: "calc"
                },
                operation: {
                  valType: "enumerated",
                  values: [].concat(c).concat(d).concat(h),
                  dflt: "=",
                  editType: "calc"
                },
                value: {
                  valType: "any",
                  dflt: 0,
                  editType: "calc"
                },
                preservegaps: {
                  valType: "boolean",
                  dflt: !1,
                  editType: "calc"
                },
                editType: "calc"
              }, L.supplyDefaults = function(b) {
                var x = {};
                function D(T, k) {
                  return a.coerce(b, x, L.attributes, T, k);
                }
                var C = D("enabled");
                if (C) {
                  var w = D("target");
                  if (a.isArrayOrTypedArray(w) && w.length === 0)
                    return x.enabled = !1, x;
                  D("preservegaps"), D("operation"), D("value");
                  var S = p.getComponentMethod("calendars", "handleDefaults");
                  S(b, x, "valuecalendar", null), S(b, x, "targetcalendar", null);
                }
                return x;
              }, L.calcTransform = function(b, x, D) {
                if (!D.enabled)
                  return;
                var C = a.getTargetArray(x, D);
                if (!C)
                  return;
                var w = D.target, S = C.length;
                x._length && (S = Math.min(S, x._length));
                var T = D.targetcalendar, k = x._arrayAttrs, A = D.preservegaps;
                if (typeof w == "string") {
                  var R = a.nestedProperty(x, w + "calendar").get();
                  R && (T = R);
                }
                var g = l.getDataToCoordFunc(b, x, w, C), I = i(D, g, T), O = {}, $ = {}, Y = 0;
                function ne(se, me) {
                  for (var J = 0; J < k.length; J++) {
                    var W = a.nestedProperty(x, k[J]);
                    se(W, me);
                  }
                }
                var q, B;
                A ? (q = function(se) {
                  O[se.astr] = a.extendDeep([], se.get()), se.set(new Array(S));
                }, B = function(se, me) {
                  var J = O[se.astr][me];
                  se.get()[me] = J;
                }) : (q = function(se) {
                  O[se.astr] = a.extendDeep([], se.get()), se.set([]);
                }, B = function(se, me) {
                  var J = O[se.astr][me];
                  se.get().push(J);
                }), ne(q);
                for (var X = f(x.transforms, D), U = 0; U < S; U++) {
                  var te = I(C[U]);
                  te ? (ne(B, U), $[Y++] = X(U)) : A && Y++;
                }
                D._indexToPoints = $, x._length = Y;
              };
              function i(b, x, D) {
                var C = b.operation, w = b.value, S = a.isArrayOrTypedArray(w);
                function T(g) {
                  return g.indexOf(C) !== -1;
                }
                var k = function(g) {
                  return x(g, 0, b.valuecalendar);
                }, A = function(g) {
                  return x(g, 0, D);
                }, R;
                switch (T(c) ? R = k(S ? w[0] : w) : T(d) ? R = S ? [k(w[0]), k(w[1])] : [k(w), k(w)] : T(h) && (R = S ? w.map(k) : [k(w)]), C) {
                  case "=":
                    return function(g) {
                      return A(g) === R;
                    };
                  case "!=":
                    return function(g) {
                      return A(g) !== R;
                    };
                  case "<":
                    return function(g) {
                      return A(g) < R;
                    };
                  case "<=":
                    return function(g) {
                      return A(g) <= R;
                    };
                  case ">":
                    return function(g) {
                      return A(g) > R;
                    };
                  case ">=":
                    return function(g) {
                      return A(g) >= R;
                    };
                  case "[]":
                    return function(g) {
                      var I = A(g);
                      return I >= R[0] && I <= R[1];
                    };
                  case "()":
                    return function(g) {
                      var I = A(g);
                      return I > R[0] && I < R[1];
                    };
                  case "[)":
                    return function(g) {
                      var I = A(g);
                      return I >= R[0] && I < R[1];
                    };
                  case "(]":
                    return function(g) {
                      var I = A(g);
                      return I > R[0] && I <= R[1];
                    };
                  case "][":
                    return function(g) {
                      var I = A(g);
                      return I <= R[0] || I >= R[1];
                    };
                  case ")(":
                    return function(g) {
                      var I = A(g);
                      return I < R[0] || I > R[1];
                    };
                  case "](":
                    return function(g) {
                      var I = A(g);
                      return I <= R[0] || I > R[1];
                    };
                  case ")[":
                    return function(g) {
                      var I = A(g);
                      return I < R[0] || I >= R[1];
                    };
                  case "{}":
                    return function(g) {
                      return R.indexOf(A(g)) !== -1;
                    };
                  case "}{":
                    return function(g) {
                      return R.indexOf(A(g)) === -1;
                    };
                }
              }
            }
          ),
          /***/
          2028: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(3060), l = r(7316), f = r(468).W;
              L.moduleType = "transform", L.name = "groupby", L.attributes = {
                enabled: {
                  valType: "boolean",
                  dflt: !0,
                  editType: "calc"
                },
                groups: {
                  valType: "data_array",
                  dflt: [],
                  editType: "calc"
                },
                nameformat: {
                  valType: "string",
                  editType: "calc"
                },
                styles: {
                  _isLinkedToArray: "style",
                  target: {
                    valType: "string",
                    editType: "calc"
                  },
                  value: {
                    valType: "any",
                    dflt: {},
                    editType: "calc",
                    _compareAsJSON: !0
                  },
                  editType: "calc"
                },
                editType: "calc"
              }, L.supplyDefaults = function(c, d, h) {
                var i, b = {};
                function x(k, A) {
                  return a.coerce(c, b, L.attributes, k, A);
                }
                var D = x("enabled");
                if (!D)
                  return b;
                x("groups"), x("nameformat", h._dataLength > 1 ? "%{group} (%{trace})" : "%{group}");
                var C = c.styles, w = b.styles = [];
                if (C)
                  for (i = 0; i < C.length; i++) {
                    var S = w[i] = {};
                    a.coerce(C[i], w[i], L.attributes.styles, "target");
                    var T = a.coerce(C[i], w[i], L.attributes.styles, "value");
                    a.isPlainObject(T) ? S.value = a.extendDeep({}, T) : T && delete S.value;
                  }
                return b;
              }, L.transform = function(c, d) {
                var h, i, b, x = [];
                for (i = 0; i < c.length; i++)
                  for (h = u(c[i], d), b = 0; b < h.length; b++)
                    x.push(h[b]);
                return x;
              };
              function u(c, d) {
                var h, i, b, x, D, C, w, S, T, k, A = d.transform, R = d.transformIndex, g = c.transforms[R].groups, I = f(c.transforms, A);
                if (!a.isArrayOrTypedArray(g) || g.length === 0)
                  return [c];
                var O = a.filterUnique(g), $ = new Array(O.length), Y = g.length, ne = p.findArrayAttributes(c), q = A.styles || [], B = {};
                for (h = 0; h < q.length; h++)
                  B[q[h].target] = q[h].value;
                A.styles && (k = a.keyedContainer(A, "styles", "target", "value.name"));
                var X = {}, U = {};
                for (h = 0; h < O.length; h++) {
                  C = O[h], X[C] = h, U[C] = 0, w = $[h] = a.extendDeepNoArrays({}, c), w._group = C, w.transforms[R]._indexToPoints = {};
                  var te = null;
                  for (k && (te = k.get(C)), te || te === "" ? w.name = te : w.name = a.templateString(A.nameformat, {
                    trace: c.name,
                    group: C
                  }), S = w.transforms, w.transforms = [], i = 0; i < S.length; i++)
                    w.transforms[i] = a.extendDeepNoArrays({}, S[i]);
                  for (i = 0; i < ne.length; i++)
                    a.nestedProperty(w, ne[i]).set([]);
                }
                for (b = 0; b < ne.length; b++) {
                  for (x = ne[b], i = 0, T = []; i < O.length; i++)
                    T[i] = a.nestedProperty($[i], x).get();
                  for (D = a.nestedProperty(c, x).get(), i = 0; i < Y; i++)
                    T[X[g[i]]].push(D[i]);
                }
                for (i = 0; i < Y; i++) {
                  w = $[X[g[i]]];
                  var se = w.transforms[R]._indexToPoints;
                  se[U[g[i]]] = I(i), U[g[i]]++;
                }
                for (h = 0; h < O.length; h++)
                  C = O[h], w = $[h], l.clearExpandedTraceDefaultColors(w), w = a.extendDeepNoArrays(w, B[C] || {});
                return $;
              }
            }
          ),
          /***/
          468: (
            /***/
            function(M, L) {
              L.W = function(r, a) {
                for (var p, l, f = 0; f < r.length && (p = r[f], p !== a); f++)
                  !p._indexToPoints || p.enabled === !1 || (l = p._indexToPoints);
                var u = l ? function(c) {
                  return l[c];
                } : function(c) {
                  return [c];
                };
                return u;
              };
            }
          ),
          /***/
          6272: (
            /***/
            function(M, L, r) {
              var a = r(3400), p = r(4460), l = r(468).W, f = r(9032).BADNUM;
              L.moduleType = "transform", L.name = "sort", L.attributes = {
                enabled: {
                  valType: "boolean",
                  dflt: !0,
                  editType: "calc"
                },
                target: {
                  valType: "string",
                  strict: !0,
                  noBlank: !0,
                  arrayOk: !0,
                  dflt: "x",
                  editType: "calc"
                },
                order: {
                  valType: "enumerated",
                  values: ["ascending", "descending"],
                  dflt: "ascending",
                  editType: "calc"
                },
                editType: "calc"
              }, L.supplyDefaults = function(d) {
                var h = {};
                function i(x, D) {
                  return a.coerce(d, h, L.attributes, x, D);
                }
                var b = i("enabled");
                return b && (i("target"), i("order")), h;
              }, L.calcTransform = function(d, h, i) {
                if (i.enabled) {
                  var b = a.getTargetArray(h, i);
                  if (b) {
                    var x = i.target, D = b.length;
                    h._length && (D = Math.min(D, h._length));
                    var C = h._arrayAttrs, w = p.getDataToCoordFunc(d, h, x, b), S = u(i, b, w, D), T = l(h.transforms, i), k = {}, A, R;
                    for (A = 0; A < C.length; A++) {
                      var g = a.nestedProperty(h, C[A]), I = g.get(), O = new Array(D);
                      for (R = 0; R < D; R++)
                        O[R] = I[S[R]];
                      g.set(O);
                    }
                    for (R = 0; R < D; R++)
                      k[R] = T(S[R]);
                    i._indexToPoints = k, h._length = D;
                  }
                }
              };
              function u(d, h, i, b) {
                var x = new Array(b), D = new Array(b), C;
                for (C = 0; C < b; C++)
                  x[C] = {
                    v: h[C],
                    i: C
                  };
                for (x.sort(c(d, i)), C = 0; C < b; C++)
                  D[C] = x[C].i;
                return D;
              }
              function c(d, h) {
                switch (d.order) {
                  case "ascending":
                    return function(i, b) {
                      var x = h(i.v), D = h(b.v);
                      return x === f ? 1 : D === f ? -1 : x - D;
                    };
                  case "descending":
                    return function(i, b) {
                      var x = h(i.v), D = h(b.v);
                      return x === f ? 1 : D === f ? -1 : D - x;
                    };
                }
              }
            }
          ),
          /***/
          5788: (
            /***/
            function(M, L) {
              L.version = "2.33.0";
            }
          ),
          /***/
          5928: (
            /***/
            function(M) {
              M.exports = p, M.exports.isMobile = p, M.exports.default = p;
              var L = /(android|bb\d+|meego).+mobile|armv7l|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|samsungbrowser.*mobile|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i, r = /CrOS/, a = /android|ipad|playbook|silk/i;
              function p(l) {
                l || (l = {});
                var f = l.ua;
                if (!f && typeof navigator < "u" && (f = navigator.userAgent), f && f.headers && typeof f.headers["user-agent"] == "string" && (f = f.headers["user-agent"]), typeof f != "string")
                  return !1;
                var u = L.test(f) && !r.test(f) || !!l.tablet && a.test(f);
                return !u && l.tablet && l.featureDetect && navigator && navigator.maxTouchPoints > 1 && f.indexOf("Macintosh") !== -1 && f.indexOf("Safari") !== -1 && (u = !0), u;
              }
            }
          ),
          /***/
          3428: (
            /***/
            function(M, L, r) {
              var a, p;
              (function() {
                var l = {
                  version: "3.8.2"
                }, f = [].slice, u = function(y) {
                  return f.call(y);
                }, c = self.document;
                function d(y) {
                  return y && (y.ownerDocument || y.document || y).documentElement;
                }
                function h(y) {
                  return y && (y.ownerDocument && y.ownerDocument.defaultView || y.document && y || y.defaultView);
                }
                if (c)
                  try {
                    u(c.documentElement.childNodes)[0].nodeType;
                  } catch {
                    u = function(_) {
                      for (var Q = _.length, le = new Array(Q); Q--; )
                        le[Q] = _[Q];
                      return le;
                    };
                  }
                if (Date.now || (Date.now = function() {
                  return +/* @__PURE__ */ new Date();
                }), c)
                  try {
                    c.createElement("DIV").style.setProperty("opacity", 0, "");
                  } catch {
                    var i = this.Element.prototype, b = i.setAttribute, x = i.setAttributeNS, D = this.CSSStyleDeclaration.prototype, C = D.setProperty;
                    i.setAttribute = function(_, Q) {
                      b.call(this, _, Q + "");
                    }, i.setAttributeNS = function(_, Q, le) {
                      x.call(this, _, Q, le + "");
                    }, D.setProperty = function(_, Q, le) {
                      C.call(this, _, Q + "", le);
                    };
                  }
                l.ascending = w;
                function w(y, _) {
                  return y < _ ? -1 : y > _ ? 1 : y >= _ ? 0 : NaN;
                }
                l.descending = function(y, _) {
                  return _ < y ? -1 : _ > y ? 1 : _ >= y ? 0 : NaN;
                }, l.min = function(y, _) {
                  var Q = -1, le = y.length, pe, ge;
                  if (arguments.length === 1) {
                    for (; ++Q < le; )
                      if ((ge = y[Q]) != null && ge >= ge) {
                        pe = ge;
                        break;
                      }
                    for (; ++Q < le; )
                      (ge = y[Q]) != null && pe > ge && (pe = ge);
                  } else {
                    for (; ++Q < le; )
                      if ((ge = _.call(y, y[Q], Q)) != null && ge >= ge) {
                        pe = ge;
                        break;
                      }
                    for (; ++Q < le; )
                      (ge = _.call(y, y[Q], Q)) != null && pe > ge && (pe = ge);
                  }
                  return pe;
                }, l.max = function(y, _) {
                  var Q = -1, le = y.length, pe, ge;
                  if (arguments.length === 1) {
                    for (; ++Q < le; )
                      if ((ge = y[Q]) != null && ge >= ge) {
                        pe = ge;
                        break;
                      }
                    for (; ++Q < le; )
                      (ge = y[Q]) != null && ge > pe && (pe = ge);
                  } else {
                    for (; ++Q < le; )
                      if ((ge = _.call(y, y[Q], Q)) != null && ge >= ge) {
                        pe = ge;
                        break;
                      }
                    for (; ++Q < le; )
                      (ge = _.call(y, y[Q], Q)) != null && ge > pe && (pe = ge);
                  }
                  return pe;
                }, l.extent = function(y, _) {
                  var Q = -1, le = y.length, pe, ge, Fe;
                  if (arguments.length === 1) {
                    for (; ++Q < le; )
                      if ((ge = y[Q]) != null && ge >= ge) {
                        pe = Fe = ge;
                        break;
                      }
                    for (; ++Q < le; )
                      (ge = y[Q]) != null && (pe > ge && (pe = ge), Fe < ge && (Fe = ge));
                  } else {
                    for (; ++Q < le; )
                      if ((ge = _.call(y, y[Q], Q)) != null && ge >= ge) {
                        pe = Fe = ge;
                        break;
                      }
                    for (; ++Q < le; )
                      (ge = _.call(y, y[Q], Q)) != null && (pe > ge && (pe = ge), Fe < ge && (Fe = ge));
                  }
                  return [pe, Fe];
                };
                function S(y) {
                  return y === null ? NaN : +y;
                }
                function T(y) {
                  return !isNaN(y);
                }
                l.sum = function(y, _) {
                  var Q = 0, le = y.length, pe, ge = -1;
                  if (arguments.length === 1)
                    for (; ++ge < le; )
                      T(pe = +y[ge]) && (Q += pe);
                  else
                    for (; ++ge < le; )
                      T(pe = +_.call(y, y[ge], ge)) && (Q += pe);
                  return Q;
                }, l.mean = function(y, _) {
                  var Q = 0, le = y.length, pe, ge = -1, Fe = le;
                  if (arguments.length === 1)
                    for (; ++ge < le; )
                      T(pe = S(y[ge])) ? Q += pe : --Fe;
                  else
                    for (; ++ge < le; )
                      T(pe = S(_.call(y, y[ge], ge))) ? Q += pe : --Fe;
                  if (Fe)
                    return Q / Fe;
                }, l.quantile = function(y, _) {
                  var Q = (y.length - 1) * _ + 1, le = Math.floor(Q), pe = +y[le - 1], ge = Q - le;
                  return ge ? pe + ge * (y[le] - pe) : pe;
                }, l.median = function(y, _) {
                  var Q = [], le = y.length, pe, ge = -1;
                  if (arguments.length === 1)
                    for (; ++ge < le; )
                      T(pe = S(y[ge])) && Q.push(pe);
                  else
                    for (; ++ge < le; )
                      T(pe = S(_.call(y, y[ge], ge))) && Q.push(pe);
                  if (Q.length)
                    return l.quantile(Q.sort(w), 0.5);
                }, l.variance = function(y, _) {
                  var Q = y.length, le = 0, pe, ge, Fe = 0, ke = -1, _e = 0;
                  if (arguments.length === 1)
                    for (; ++ke < Q; )
                      T(pe = S(y[ke])) && (ge = pe - le, le += ge / ++_e, Fe += ge * (pe - le));
                  else
                    for (; ++ke < Q; )
                      T(pe = S(_.call(y, y[ke], ke))) && (ge = pe - le, le += ge / ++_e, Fe += ge * (pe - le));
                  if (_e > 1)
                    return Fe / (_e - 1);
                }, l.deviation = function() {
                  var y = l.variance.apply(this, arguments);
                  return y && Math.sqrt(y);
                };
                function k(y) {
                  return {
                    left: function(_, Q, le, pe) {
                      for (arguments.length < 3 && (le = 0), arguments.length < 4 && (pe = _.length); le < pe; ) {
                        var ge = le + pe >>> 1;
                        y(_[ge], Q) < 0 ? le = ge + 1 : pe = ge;
                      }
                      return le;
                    },
                    right: function(_, Q, le, pe) {
                      for (arguments.length < 3 && (le = 0), arguments.length < 4 && (pe = _.length); le < pe; ) {
                        var ge = le + pe >>> 1;
                        y(_[ge], Q) > 0 ? pe = ge : le = ge + 1;
                      }
                      return le;
                    }
                  };
                }
                var A = k(w);
                l.bisectLeft = A.left, l.bisect = l.bisectRight = A.right, l.bisector = function(y) {
                  return k(y.length === 1 ? function(_, Q) {
                    return w(y(_), Q);
                  } : y);
                }, l.shuffle = function(y, _, Q) {
                  (le = arguments.length) < 3 && (Q = y.length, le < 2 && (_ = 0));
                  for (var le = Q - _, pe, ge; le; )
                    ge = Math.random() * le-- | 0, pe = y[le + _], y[le + _] = y[ge + _], y[ge + _] = pe;
                  return y;
                }, l.permute = function(y, _) {
                  for (var Q = _.length, le = new Array(Q); Q--; )
                    le[Q] = y[_[Q]];
                  return le;
                }, l.pairs = function(y) {
                  for (var _ = 0, Q = y.length - 1, le = y[0], pe = new Array(Q < 0 ? 0 : Q); _ < Q; )
                    pe[_] = [le, le = y[++_]];
                  return pe;
                }, l.transpose = function(y) {
                  if (!(ge = y.length))
                    return [];
                  for (var _ = -1, Q = l.min(y, R), le = new Array(Q); ++_ < Q; )
                    for (var pe = -1, ge, Fe = le[_] = new Array(ge); ++pe < ge; )
                      Fe[pe] = y[pe][_];
                  return le;
                };
                function R(y) {
                  return y.length;
                }
                l.zip = function() {
                  return l.transpose(arguments);
                }, l.keys = function(y) {
                  var _ = [];
                  for (var Q in y)
                    _.push(Q);
                  return _;
                }, l.values = function(y) {
                  var _ = [];
                  for (var Q in y)
                    _.push(y[Q]);
                  return _;
                }, l.entries = function(y) {
                  var _ = [];
                  for (var Q in y)
                    _.push({
                      key: Q,
                      value: y[Q]
                    });
                  return _;
                }, l.merge = function(y) {
                  for (var _ = y.length, Q, le = -1, pe = 0, ge, Fe; ++le < _; )
                    pe += y[le].length;
                  for (ge = new Array(pe); --_ >= 0; )
                    for (Fe = y[_], Q = Fe.length; --Q >= 0; )
                      ge[--pe] = Fe[Q];
                  return ge;
                };
                var g = Math.abs;
                l.range = function(y, _, Q) {
                  if (arguments.length < 3 && (Q = 1, arguments.length < 2 && (_ = y, y = 0)), (_ - y) / Q === 1 / 0)
                    throw new Error("infinite range");
                  var le = [], pe = I(g(Q)), ge = -1, Fe;
                  if (y *= pe, _ *= pe, Q *= pe, Q < 0)
                    for (; (Fe = y + Q * ++ge) > _; )
                      le.push(Fe / pe);
                  else
                    for (; (Fe = y + Q * ++ge) < _; )
                      le.push(Fe / pe);
                  return le;
                };
                function I(y) {
                  for (var _ = 1; y * _ % 1; )
                    _ *= 10;
                  return _;
                }
                function O(y, _) {
                  for (var Q in _)
                    Object.defineProperty(y.prototype, Q, {
                      value: _[Q],
                      enumerable: !1
                    });
                }
                l.map = function(y, _) {
                  var Q = new $();
                  if (y instanceof $)
                    y.forEach(function(ke, _e) {
                      Q.set(ke, _e);
                    });
                  else if (Array.isArray(y)) {
                    var le = -1, pe = y.length, ge;
                    if (arguments.length === 1)
                      for (; ++le < pe; )
                        Q.set(le, y[le]);
                    else
                      for (; ++le < pe; )
                        Q.set(_.call(y, ge = y[le], le), ge);
                  } else
                    for (var Fe in y)
                      Q.set(Fe, y[Fe]);
                  return Q;
                };
                function $() {
                  this._ = /* @__PURE__ */ Object.create(null);
                }
                var Y = "__proto__", ne = "\0";
                O($, {
                  has: X,
                  get: function(y) {
                    return this._[q(y)];
                  },
                  set: function(y, _) {
                    return this._[q(y)] = _;
                  },
                  remove: U,
                  keys: te,
                  values: function() {
                    var y = [];
                    for (var _ in this._)
                      y.push(this._[_]);
                    return y;
                  },
                  entries: function() {
                    var y = [];
                    for (var _ in this._)
                      y.push({
                        key: B(_),
                        value: this._[_]
                      });
                    return y;
                  },
                  size: se,
                  empty: me,
                  forEach: function(y) {
                    for (var _ in this._)
                      y.call(this, B(_), this._[_]);
                  }
                });
                function q(y) {
                  return (y += "") === Y || y[0] === ne ? ne + y : y;
                }
                function B(y) {
                  return (y += "")[0] === ne ? y.slice(1) : y;
                }
                function X(y) {
                  return q(y) in this._;
                }
                function U(y) {
                  return (y = q(y)) in this._ && delete this._[y];
                }
                function te() {
                  var y = [];
                  for (var _ in this._)
                    y.push(B(_));
                  return y;
                }
                function se() {
                  var y = 0;
                  for (var _ in this._)
                    ++y;
                  return y;
                }
                function me() {
                  for (var y in this._)
                    return !1;
                  return !0;
                }
                l.nest = function() {
                  var y = {}, _ = [], Q = [], le, pe;
                  function ge(ke, _e, Qe) {
                    if (Qe >= _.length)
                      return pe ? pe.call(y, _e) : le ? _e.sort(le) : _e;
                    for (var Ke = -1, yt = _e.length, gt = _[Qe++], Vt, Pt, ct, xt = new $(), Rt; ++Ke < yt; )
                      (Rt = xt.get(Vt = gt(Pt = _e[Ke]))) ? Rt.push(Pt) : xt.set(Vt, [Pt]);
                    return ke ? (Pt = ke(), ct = function(Xt, Kt) {
                      Pt.set(Xt, ge(ke, Kt, Qe));
                    }) : (Pt = {}, ct = function(Xt, Kt) {
                      Pt[Xt] = ge(ke, Kt, Qe);
                    }), xt.forEach(ct), Pt;
                  }
                  function Fe(ke, _e) {
                    if (_e >= _.length)
                      return ke;
                    var Qe = [], Ke = Q[_e++];
                    return ke.forEach(function(yt, gt) {
                      Qe.push({
                        key: yt,
                        values: Fe(gt, _e)
                      });
                    }), Ke ? Qe.sort(function(yt, gt) {
                      return Ke(yt.key, gt.key);
                    }) : Qe;
                  }
                  return y.map = function(ke, _e) {
                    return ge(_e, ke, 0);
                  }, y.entries = function(ke) {
                    return Fe(ge(l.map, ke, 0), 0);
                  }, y.key = function(ke) {
                    return _.push(ke), y;
                  }, y.sortKeys = function(ke) {
                    return Q[_.length - 1] = ke, y;
                  }, y.sortValues = function(ke) {
                    return le = ke, y;
                  }, y.rollup = function(ke) {
                    return pe = ke, y;
                  }, y;
                }, l.set = function(y) {
                  var _ = new J();
                  if (y)
                    for (var Q = 0, le = y.length; Q < le; ++Q)
                      _.add(y[Q]);
                  return _;
                };
                function J() {
                  this._ = /* @__PURE__ */ Object.create(null);
                }
                O(J, {
                  has: X,
                  add: function(y) {
                    return this._[q(y += "")] = !0, y;
                  },
                  remove: U,
                  values: te,
                  size: se,
                  empty: me,
                  forEach: function(y) {
                    for (var _ in this._)
                      y.call(this, B(_));
                  }
                }), l.behavior = {};
                function W(y) {
                  return y;
                }
                l.rebind = function(y, _) {
                  for (var Q = 1, le = arguments.length, pe; ++Q < le; )
                    y[pe = arguments[Q]] = ae(y, _, _[pe]);
                  return y;
                };
                function ae(y, _, Q) {
                  return function() {
                    var le = Q.apply(_, arguments);
                    return le === _ ? y : le;
                  };
                }
                function oe(y, _) {
                  if (_ in y)
                    return _;
                  _ = _.charAt(0).toUpperCase() + _.slice(1);
                  for (var Q = 0, le = ve.length; Q < le; ++Q) {
                    var pe = ve[Q] + _;
                    if (pe in y)
                      return pe;
                  }
                }
                var ve = ["webkit", "ms", "moz", "Moz", "o", "O"];
                function fe() {
                }
                l.dispatch = function() {
                  for (var y = new ye(), _ = -1, Q = arguments.length; ++_ < Q; )
                    y[arguments[_]] = Ce(y);
                  return y;
                };
                function ye() {
                }
                ye.prototype.on = function(y, _) {
                  var Q = y.indexOf("."), le = "";
                  if (Q >= 0 && (le = y.slice(Q + 1), y = y.slice(0, Q)), y)
                    return arguments.length < 2 ? this[y].on(le) : this[y].on(le, _);
                  if (arguments.length === 2) {
                    if (_ == null)
                      for (y in this)
                        this.hasOwnProperty(y) && this[y].on(le, null);
                    return this;
                  }
                };
                function Ce(y) {
                  var _ = [], Q = new $();
                  function le() {
                    for (var pe = _, ge = -1, Fe = pe.length, ke; ++ge < Fe; )
                      (ke = pe[ge].on) && ke.apply(this, arguments);
                    return y;
                  }
                  return le.on = function(pe, ge) {
                    var Fe = Q.get(pe), ke;
                    return arguments.length < 2 ? Fe && Fe.on : (Fe && (Fe.on = null, _ = _.slice(0, ke = _.indexOf(Fe)).concat(_.slice(ke + 1)), Q.remove(pe)), ge && _.push(Q.set(pe, {
                      on: ge
                    })), y);
                  }, le;
                }
                l.event = null;
                function Re() {
                  l.event.preventDefault();
                }
                function Be() {
                  for (var y = l.event, _; _ = y.sourceEvent; )
                    y = _;
                  return y;
                }
                function xe(y) {
                  for (var _ = new ye(), Q = 0, le = arguments.length; ++Q < le; )
                    _[arguments[Q]] = Ce(_);
                  return _.of = function(pe, ge) {
                    return function(Fe) {
                      try {
                        var ke = Fe.sourceEvent = l.event;
                        Fe.target = y, l.event = Fe, _[Fe.type].apply(pe, ge);
                      } finally {
                        l.event = ke;
                      }
                    };
                  }, _;
                }
                l.requote = function(y) {
                  return y.replace(Me, "\\$&");
                };
                var Me = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g, De = {}.__proto__ ? function(y, _) {
                  y.__proto__ = _;
                } : function(y, _) {
                  for (var Q in _)
                    y[Q] = _[Q];
                };
                function Z(y) {
                  return De(y, H), y;
                }
                var ee = function(y, _) {
                  return _.querySelector(y);
                }, ie = function(y, _) {
                  return _.querySelectorAll(y);
                }, G = function(y, _) {
                  var Q = y.matches || y[oe(y, "matchesSelector")];
                  return G = function(le, pe) {
                    return Q.call(le, pe);
                  }, G(y, _);
                };
                typeof Sizzle == "function" && (ee = function(y, _) {
                  return Sizzle(y, _)[0] || null;
                }, ie = Sizzle, G = Sizzle.matchesSelector), l.selection = function() {
                  return l.select(c.documentElement);
                };
                var H = l.selection.prototype = [];
                H.select = function(y) {
                  var _ = [], Q, le, pe, ge;
                  y = ce(y);
                  for (var Fe = -1, ke = this.length; ++Fe < ke; ) {
                    _.push(Q = []), Q.parentNode = (pe = this[Fe]).parentNode;
                    for (var _e = -1, Qe = pe.length; ++_e < Qe; )
                      (ge = pe[_e]) ? (Q.push(le = y.call(ge, ge.__data__, _e, Fe)), le && "__data__" in ge && (le.__data__ = ge.__data__)) : Q.push(null);
                  }
                  return Z(_);
                };
                function ce(y) {
                  return typeof y == "function" ? y : function() {
                    return ee(y, this);
                  };
                }
                H.selectAll = function(y) {
                  var _ = [], Q, le;
                  y = j(y);
                  for (var pe = -1, ge = this.length; ++pe < ge; )
                    for (var Fe = this[pe], ke = -1, _e = Fe.length; ++ke < _e; )
                      (le = Fe[ke]) && (_.push(Q = u(y.call(le, le.__data__, ke, pe))), Q.parentNode = le);
                  return Z(_);
                };
                function j(y) {
                  return typeof y == "function" ? y : function() {
                    return ie(y, this);
                  };
                }
                var he = "http://www.w3.org/1999/xhtml", be = {
                  svg: "http://www.w3.org/2000/svg",
                  xhtml: he,
                  xlink: "http://www.w3.org/1999/xlink",
                  xml: "http://www.w3.org/XML/1998/namespace",
                  xmlns: "http://www.w3.org/2000/xmlns/"
                };
                l.ns = {
                  prefix: be,
                  qualify: function(y) {
                    var _ = y.indexOf(":"), Q = y;
                    return _ >= 0 && (Q = y.slice(0, _)) !== "xmlns" && (y = y.slice(_ + 1)), be.hasOwnProperty(Q) ? {
                      space: be[Q],
                      local: y
                    } : y;
                  }
                }, H.attr = function(y, _) {
                  if (arguments.length < 2) {
                    if (typeof y == "string") {
                      var Q = this.node();
                      return y = l.ns.qualify(y), y.local ? Q.getAttributeNS(y.space, y.local) : Q.getAttribute(y);
                    }
                    for (_ in y)
                      this.each(we(_, y[_]));
                    return this;
                  }
                  return this.each(we(y, _));
                };
                function we(y, _) {
                  y = l.ns.qualify(y);
                  function Q() {
                    this.removeAttribute(y);
                  }
                  function le() {
                    this.removeAttributeNS(y.space, y.local);
                  }
                  function pe() {
                    this.setAttribute(y, _);
                  }
                  function ge() {
                    this.setAttributeNS(y.space, y.local, _);
                  }
                  function Fe() {
                    var _e = _.apply(this, arguments);
                    _e == null ? this.removeAttribute(y) : this.setAttribute(y, _e);
                  }
                  function ke() {
                    var _e = _.apply(this, arguments);
                    _e == null ? this.removeAttributeNS(y.space, y.local) : this.setAttributeNS(y.space, y.local, _e);
                  }
                  return _ == null ? y.local ? le : Q : typeof _ == "function" ? y.local ? ke : Fe : y.local ? ge : pe;
                }
                function Ie(y) {
                  return y.trim().replace(/\s+/g, " ");
                }
                H.classed = function(y, _) {
                  if (arguments.length < 2) {
                    if (typeof y == "string") {
                      var Q = this.node(), le = (y = Ve(y)).length, pe = -1;
                      if (_ = Q.classList) {
                        for (; ++pe < le; )
                          if (!_.contains(y[pe]))
                            return !1;
                      } else
                        for (_ = Q.getAttribute("class"); ++pe < le; )
                          if (!Ge(y[pe]).test(_))
                            return !1;
                      return !0;
                    }
                    for (_ in y)
                      this.each(Je(_, y[_]));
                    return this;
                  }
                  return this.each(Je(y, _));
                };
                function Ge(y) {
                  return new RegExp("(?:^|\\s+)" + l.requote(y) + "(?:\\s+|$)", "g");
                }
                function Ve(y) {
                  return (y + "").trim().split(/^|\s+/);
                }
                function Je(y, _) {
                  y = Ve(y).map(et);
                  var Q = y.length;
                  function le() {
                    for (var ge = -1; ++ge < Q; )
                      y[ge](this, _);
                  }
                  function pe() {
                    for (var ge = -1, Fe = _.apply(this, arguments); ++ge < Q; )
                      y[ge](this, Fe);
                  }
                  return typeof _ == "function" ? pe : le;
                }
                function et(y) {
                  var _ = Ge(y);
                  return function(Q, le) {
                    if (pe = Q.classList)
                      return le ? pe.add(y) : pe.remove(y);
                    var pe = Q.getAttribute("class") || "";
                    le ? (_.lastIndex = 0, _.test(pe) || Q.setAttribute("class", Ie(pe + " " + y))) : Q.setAttribute("class", Ie(pe.replace(_, " ")));
                  };
                }
                H.style = function(y, _, Q) {
                  var le = arguments.length;
                  if (le < 3) {
                    if (typeof y != "string") {
                      le < 2 && (_ = "");
                      for (Q in y)
                        this.each(at(Q, y[Q], _));
                      return this;
                    }
                    if (le < 2) {
                      var pe = this.node();
                      return h(pe).getComputedStyle(pe, null).getPropertyValue(y);
                    }
                    Q = "";
                  }
                  return this.each(at(y, _, Q));
                };
                function at(y, _, Q) {
                  function le() {
                    this.style.removeProperty(y);
                  }
                  function pe() {
                    this.style.setProperty(y, _, Q);
                  }
                  function ge() {
                    var Fe = _.apply(this, arguments);
                    Fe == null ? this.style.removeProperty(y) : this.style.setProperty(y, Fe, Q);
                  }
                  return _ == null ? le : typeof _ == "function" ? ge : pe;
                }
                H.property = function(y, _) {
                  if (arguments.length < 2) {
                    if (typeof y == "string")
                      return this.node()[y];
                    for (_ in y)
                      this.each(Le(_, y[_]));
                    return this;
                  }
                  return this.each(Le(y, _));
                };
                function Le(y, _) {
                  function Q() {
                    delete this[y];
                  }
                  function le() {
                    this[y] = _;
                  }
                  function pe() {
                    var ge = _.apply(this, arguments);
                    ge == null ? delete this[y] : this[y] = ge;
                  }
                  return _ == null ? Q : typeof _ == "function" ? pe : le;
                }
                H.text = function(y) {
                  return arguments.length ? this.each(typeof y == "function" ? function() {
                    var _ = y.apply(this, arguments);
                    this.textContent = _ ?? "";
                  } : y == null ? function() {
                    this.textContent = "";
                  } : function() {
                    this.textContent = y;
                  }) : this.node().textContent;
                }, H.html = function(y) {
                  return arguments.length ? this.each(typeof y == "function" ? function() {
                    var _ = y.apply(this, arguments);
                    this.innerHTML = _ ?? "";
                  } : y == null ? function() {
                    this.innerHTML = "";
                  } : function() {
                    this.innerHTML = y;
                  }) : this.node().innerHTML;
                }, H.append = function(y) {
                  return y = ze(y), this.select(function() {
                    return this.appendChild(y.apply(this, arguments));
                  });
                };
                function ze(y) {
                  function _() {
                    var le = this.ownerDocument, pe = this.namespaceURI;
                    return pe === he && le.documentElement.namespaceURI === he ? le.createElement(y) : le.createElementNS(pe, y);
                  }
                  function Q() {
                    return this.ownerDocument.createElementNS(y.space, y.local);
                  }
                  return typeof y == "function" ? y : (y = l.ns.qualify(y)).local ? Q : _;
                }
                H.insert = function(y, _) {
                  return y = ze(y), _ = ce(_), this.select(function() {
                    return this.insertBefore(y.apply(this, arguments), _.apply(this, arguments) || null);
                  });
                }, H.remove = function() {
                  return this.each(Oe);
                };
                function Oe() {
                  var y = this.parentNode;
                  y && y.removeChild(this);
                }
                H.data = function(y, _) {
                  var Q = -1, le = this.length, pe, ge;
                  if (!arguments.length) {
                    for (y = new Array(le = (pe = this[0]).length); ++Q < le; )
                      (ge = pe[Q]) && (y[Q] = ge.__data__);
                    return y;
                  }
                  function Fe(Ke, yt) {
                    var gt, Vt = Ke.length, Pt = yt.length, ct = Math.min(Vt, Pt), xt = new Array(Pt), Rt = new Array(Pt), Xt = new Array(Vt), Kt, Bt;
                    if (_) {
                      var Ar = new $(), Nr = new Array(Vt), Ur;
                      for (gt = -1; ++gt < Vt; )
                        (Kt = Ke[gt]) && (Ar.has(Ur = _.call(Kt, Kt.__data__, gt)) ? Xt[gt] = Kt : Ar.set(Ur, Kt), Nr[gt] = Ur);
                      for (gt = -1; ++gt < Pt; )
                        (Kt = Ar.get(Ur = _.call(yt, Bt = yt[gt], gt))) ? Kt !== !0 && (xt[gt] = Kt, Kt.__data__ = Bt) : Rt[gt] = Xe(Bt), Ar.set(Ur, !0);
                      for (gt = -1; ++gt < Vt; )
                        gt in Nr && Ar.get(Nr[gt]) !== !0 && (Xt[gt] = Ke[gt]);
                    } else {
                      for (gt = -1; ++gt < ct; )
                        Kt = Ke[gt], Bt = yt[gt], Kt ? (Kt.__data__ = Bt, xt[gt] = Kt) : Rt[gt] = Xe(Bt);
                      for (; gt < Pt; ++gt)
                        Rt[gt] = Xe(yt[gt]);
                      for (; gt < Vt; ++gt)
                        Xt[gt] = Ke[gt];
                    }
                    Rt.update = xt, Rt.parentNode = xt.parentNode = Xt.parentNode = Ke.parentNode, ke.push(Rt), _e.push(xt), Qe.push(Xt);
                  }
                  var ke = kt([]), _e = Z([]), Qe = Z([]);
                  if (typeof y == "function")
                    for (; ++Q < le; )
                      Fe(pe = this[Q], y.call(pe, pe.parentNode.__data__, Q));
                  else
                    for (; ++Q < le; )
                      Fe(pe = this[Q], y);
                  return _e.enter = function() {
                    return ke;
                  }, _e.exit = function() {
                    return Qe;
                  }, _e;
                };
                function Xe(y) {
                  return {
                    __data__: y
                  };
                }
                H.datum = function(y) {
                  return arguments.length ? this.property("__data__", y) : this.property("__data__");
                }, H.filter = function(y) {
                  var _ = [], Q, le, pe;
                  typeof y != "function" && (y = it(y));
                  for (var ge = 0, Fe = this.length; ge < Fe; ge++) {
                    _.push(Q = []), Q.parentNode = (le = this[ge]).parentNode;
                    for (var ke = 0, _e = le.length; ke < _e; ke++)
                      (pe = le[ke]) && y.call(pe, pe.__data__, ke, ge) && Q.push(pe);
                  }
                  return Z(_);
                };
                function it(y) {
                  return function() {
                    return G(this, y);
                  };
                }
                H.order = function() {
                  for (var y = -1, _ = this.length; ++y < _; )
                    for (var Q = this[y], le = Q.length - 1, pe = Q[le], ge; --le >= 0; )
                      (ge = Q[le]) && (pe && pe !== ge.nextSibling && pe.parentNode.insertBefore(ge, pe), pe = ge);
                  return this;
                }, H.sort = function(y) {
                  y = ut.apply(this, arguments);
                  for (var _ = -1, Q = this.length; ++_ < Q; )
                    this[_].sort(y);
                  return this.order();
                };
                function ut(y) {
                  return arguments.length || (y = w), function(_, Q) {
                    return _ && Q ? y(_.__data__, Q.__data__) : !_ - !Q;
                  };
                }
                H.each = function(y) {
                  return wt(this, function(_, Q, le) {
                    y.call(_, _.__data__, Q, le);
                  });
                };
                function wt(y, _) {
                  for (var Q = 0, le = y.length; Q < le; Q++)
                    for (var pe = y[Q], ge = 0, Fe = pe.length, ke; ge < Fe; ge++)
                      (ke = pe[ge]) && _(ke, ge, Q);
                  return y;
                }
                H.call = function(y) {
                  var _ = u(arguments);
                  return y.apply(_[0] = this, _), this;
                }, H.empty = function() {
                  return !this.node();
                }, H.node = function() {
                  for (var y = 0, _ = this.length; y < _; y++)
                    for (var Q = this[y], le = 0, pe = Q.length; le < pe; le++) {
                      var ge = Q[le];
                      if (ge)
                        return ge;
                    }
                  return null;
                }, H.size = function() {
                  var y = 0;
                  return wt(this, function() {
                    ++y;
                  }), y;
                };
                function kt(y) {
                  return De(y, Ot), y;
                }
                var Ot = [];
                l.selection.enter = kt, l.selection.enter.prototype = Ot, Ot.append = H.append, Ot.empty = H.empty, Ot.node = H.node, Ot.call = H.call, Ot.size = H.size, Ot.select = function(y) {
                  for (var _ = [], Q, le, pe, ge, Fe, ke = -1, _e = this.length; ++ke < _e; ) {
                    pe = (ge = this[ke]).update, _.push(Q = []), Q.parentNode = ge.parentNode;
                    for (var Qe = -1, Ke = ge.length; ++Qe < Ke; )
                      (Fe = ge[Qe]) ? (Q.push(pe[Qe] = le = y.call(ge.parentNode, Fe.__data__, Qe, ke)), le.__data__ = Fe.__data__) : Q.push(null);
                  }
                  return Z(_);
                }, Ot.insert = function(y, _) {
                  return arguments.length < 2 && (_ = Lt(this)), H.insert.call(this, y, _);
                };
                function Lt(y) {
                  var _, Q;
                  return function(le, pe, ge) {
                    var Fe = y[ge].update, ke = Fe.length, _e;
                    for (ge != Q && (Q = ge, _ = 0), pe >= _ && (_ = pe + 1); !(_e = Fe[_]) && ++_ < ke; )
                      ;
                    return _e;
                  };
                }
                l.select = function(y) {
                  var _;
                  return typeof y == "string" ? (_ = [ee(y, c)], _.parentNode = c.documentElement) : (_ = [y], _.parentNode = d(y)), Z([_]);
                }, l.selectAll = function(y) {
                  var _;
                  return typeof y == "string" ? (_ = u(ie(y, c)), _.parentNode = c.documentElement) : (_ = u(y), _.parentNode = null), Z([_]);
                }, H.on = function(y, _, Q) {
                  var le = arguments.length;
                  if (le < 3) {
                    if (typeof y != "string") {
                      le < 2 && (_ = !1);
                      for (Q in y)
                        this.each(Mt(Q, y[Q], _));
                      return this;
                    }
                    if (le < 2)
                      return (le = this.node()["__on" + y]) && le._;
                    Q = !1;
                  }
                  return this.each(Mt(y, _, Q));
                };
                function Mt(y, _, Q) {
                  var le = "__on" + y, pe = y.indexOf("."), ge = Ct;
                  pe > 0 && (y = y.slice(0, pe));
                  var Fe = Ut.get(y);
                  Fe && (y = Fe, ge = jt);
                  function ke() {
                    var Ke = this[le];
                    Ke && (this.removeEventListener(y, Ke, Ke.$), delete this[le]);
                  }
                  function _e() {
                    var Ke = ge(_, u(arguments));
                    ke.call(this), this.addEventListener(y, this[le] = Ke, Ke.$ = Q), Ke._ = _;
                  }
                  function Qe() {
                    var Ke = new RegExp("^__on([^.]+)" + l.requote(y) + "$"), yt;
                    for (var gt in this)
                      if (yt = gt.match(Ke)) {
                        var Vt = this[gt];
                        this.removeEventListener(yt[1], Vt, Vt.$), delete this[gt];
                      }
                  }
                  return pe ? _ ? _e : ke : _ ? fe : Qe;
                }
                var Ut = l.map({
                  mouseenter: "mouseover",
                  mouseleave: "mouseout"
                });
                c && Ut.forEach(function(y) {
                  "on" + y in c && Ut.remove(y);
                });
                function Ct(y, _) {
                  return function(Q) {
                    var le = l.event;
                    l.event = Q, _[0] = this.__data__;
                    try {
                      y.apply(this, _);
                    } finally {
                      l.event = le;
                    }
                  };
                }
                function jt(y, _) {
                  var Q = Ct(y, _);
                  return function(le) {
                    var pe = this, ge = le.relatedTarget;
                    (!ge || ge !== pe && !(ge.compareDocumentPosition(pe) & 8)) && Q.call(pe, le);
                  };
                }
                var nr, Jt = 0;
                function Wt(y) {
                  var _ = ".dragsuppress-" + ++Jt, Q = "click" + _, le = l.select(h(y)).on("touchmove" + _, Re).on("dragstart" + _, Re).on("selectstart" + _, Re);
                  if (nr == null && (nr = "onselectstart" in y ? !1 : oe(y.style, "userSelect")), nr) {
                    var pe = d(y).style, ge = pe[nr];
                    pe[nr] = "none";
                  }
                  return function(Fe) {
                    if (le.on(_, null), nr && (pe[nr] = ge), Fe) {
                      var ke = function() {
                        le.on(Q, null);
                      };
                      le.on(Q, function() {
                        Re(), ke();
                      }, !0), setTimeout(ke, 0);
                    }
                  };
                }
                l.mouse = function(y) {
                  return Ue(y, Be());
                };
                var qe = this.navigator && /WebKit/.test(this.navigator.userAgent) ? -1 : 0;
                function Ue(y, _) {
                  _.changedTouches && (_ = _.changedTouches[0]);
                  var Q = y.ownerSVGElement || y;
                  if (Q.createSVGPoint) {
                    var le = Q.createSVGPoint();
                    if (qe < 0) {
                      var pe = h(y);
                      if (pe.scrollX || pe.scrollY) {
                        Q = l.select("body").append("svg").style({
                          position: "absolute",
                          top: 0,
                          left: 0,
                          margin: 0,
                          padding: 0,
                          border: "none"
                        }, "important");
                        var ge = Q[0][0].getScreenCTM();
                        qe = !(ge.f || ge.e), Q.remove();
                      }
                    }
                    return qe ? (le.x = _.pageX, le.y = _.pageY) : (le.x = _.clientX, le.y = _.clientY), le = le.matrixTransform(y.getScreenCTM().inverse()), [le.x, le.y];
                  }
                  var Fe = y.getBoundingClientRect();
                  return [_.clientX - Fe.left - y.clientLeft, _.clientY - Fe.top - y.clientTop];
                }
                l.touch = function(y, _, Q) {
                  if (arguments.length < 3 && (Q = _, _ = Be().changedTouches), _) {
                    for (var le = 0, pe = _.length, ge; le < pe; ++le)
                      if ((ge = _[le]).identifier === Q)
                        return Ue(y, ge);
                  }
                }, l.behavior.drag = function() {
                  var y = xe(pe, "drag", "dragstart", "dragend"), _ = null, Q = ge(fe, l.mouse, h, "mousemove", "mouseup"), le = ge(We, l.touch, W, "touchmove", "touchend");
                  function pe() {
                    this.on("mousedown.drag", Q).on("touchstart.drag", le);
                  }
                  function ge(Fe, ke, _e, Qe, Ke) {
                    return function() {
                      var yt = this, gt = l.event.target.correspondingElement || l.event.target, Vt = yt.parentNode, Pt = y.of(yt, arguments), ct = 0, xt = Fe(), Rt = ".drag" + (xt == null ? "" : "-" + xt), Xt, Kt = l.select(_e(gt)).on(Qe + Rt, Nr).on(Ke + Rt, Ur), Bt = Wt(gt), Ar = ke(Vt, xt);
                      _ ? (Xt = _.apply(yt, arguments), Xt = [Xt.x - Ar[0], Xt.y - Ar[1]]) : Xt = [0, 0], Pt({
                        type: "dragstart"
                      });
                      function Nr() {
                        var qt = ke(Vt, xt), Br, xr;
                        qt && (Br = qt[0] - Ar[0], xr = qt[1] - Ar[1], ct |= Br | xr, Ar = qt, Pt({
                          type: "drag",
                          x: qt[0] + Xt[0],
                          y: qt[1] + Xt[1],
                          dx: Br,
                          dy: xr
                        }));
                      }
                      function Ur() {
                        ke(Vt, xt) && (Kt.on(Qe + Rt, null).on(Ke + Rt, null), Bt(ct), Pt({
                          type: "dragend"
                        }));
                      }
                    };
                  }
                  return pe.origin = function(Fe) {
                    return arguments.length ? (_ = Fe, pe) : _;
                  }, l.rebind(pe, y, "on");
                };
                function We() {
                  return l.event.changedTouches[0].identifier;
                }
                l.touches = function(y, _) {
                  return arguments.length < 2 && (_ = Be().touches), _ ? u(_).map(function(Q) {
                    var le = Ue(y, Q);
                    return le.identifier = Q.identifier, le;
                  }) : [];
                };
                var je = 1e-6, lt = je * je, Se = Math.PI, Pe = 2 * Se, Ye = Pe - je, Ze = Se / 2, rt = Se / 180, tt = 180 / Se;
                function Ft(y, _, Q) {
                  return (_[0] - y[0]) * (Q[1] - y[1]) - (_[1] - y[1]) * (Q[0] - y[0]);
                }
                function Dt(y) {
                  return y > 1 ? Ze : y < -1 ? -Ze : Math.asin(y);
                }
                function dt(y) {
                  return ((y = Math.exp(y)) - 1 / y) / 2;
                }
                function st(y) {
                  return ((y = Math.exp(y)) + 1 / y) / 2;
                }
                function Nt(y) {
                  return ((y = Math.exp(2 * y)) - 1) / (y + 1);
                }
                var ar = Math.SQRT2, ur = 2, Or = 4;
                l.interpolateZoom = function(y, _) {
                  var Q = y[0], le = y[1], pe = y[2], ge = _[0], Fe = _[1], ke = _[2], _e = ge - Q, Qe = Fe - le, Ke = _e * _e + Qe * Qe, yt, gt;
                  if (Ke < lt)
                    gt = Math.log(ke / pe) / ar, yt = function(Xt) {
                      return [Q + Xt * _e, le + Xt * Qe, pe * Math.exp(ar * Xt * gt)];
                    };
                  else {
                    var Vt = Math.sqrt(Ke), Pt = (ke * ke - pe * pe + Or * Ke) / (2 * pe * ur * Vt), ct = (ke * ke - pe * pe - Or * Ke) / (2 * ke * ur * Vt), xt = Math.log(Math.sqrt(Pt * Pt + 1) - Pt), Rt = Math.log(Math.sqrt(ct * ct + 1) - ct);
                    gt = (Rt - xt) / ar, yt = function(Xt) {
                      var Kt = Xt * gt, Bt = st(xt), Ar = pe / (ur * Vt) * (Bt * Nt(ar * Kt + xt) - dt(xt));
                      return [Q + Ar * _e, le + Ar * Qe, pe * Bt / st(ar * Kt + xt)];
                    };
                  }
                  return yt.duration = gt * 1e3, yt;
                }, l.behavior.zoom = function() {
                  var y = {
                    x: 0,
                    y: 0,
                    k: 1
                  }, _, Q, le, pe = [960, 500], ge = Fr, Fe = 250, ke = 0, _e = "mousedown.zoom", Qe = "mousemove.zoom", Ke = "mouseup.zoom", yt, gt = "touchstart.zoom", Vt, Pt = xe(Kt, "zoomstart", "zoom", "zoomend"), ct, xt, Rt, Xt;
                  or || (or = "onwheel" in c ? (br = function() {
                    return -l.event.deltaY * (l.event.deltaMode ? 120 : 1);
                  }, "wheel") : "onmousewheel" in c ? (br = function() {
                    return l.event.wheelDelta;
                  }, "mousewheel") : (br = function() {
                    return -l.event.detail;
                  }, "MozMousePixelScroll"));
                  function Kt(_r) {
                    _r.on(_e, fn).on(or + ".zoom", wa).on("dblclick.zoom", Jn).on(gt, Bn);
                  }
                  Kt.event = function(_r) {
                    _r.each(function() {
                      var Tn = Pt.of(this, arguments), En = y;
                      Ao ? l.select(this).transition().each("start.zoom", function() {
                        y = this.__chart__ || {
                          x: 0,
                          y: 0,
                          k: 1
                        }, xr(Tn);
                      }).tween("zoom:zoom", function() {
                        var Qn = pe[0], Sa = pe[1], Va = Q ? Q[0] : Qn / 2, Ga = Q ? Q[1] : Sa / 2, ui = l.interpolateZoom([(Va - y.x) / y.k, (Ga - y.y) / y.k, Qn / y.k], [(Va - En.x) / En.k, (Ga - En.y) / En.k, Qn / En.k]);
                        return function(ai) {
                          var Ka = ui(ai), Ei = Qn / Ka[2];
                          this.__chart__ = y = {
                            x: Va - Ka[0] * Ei,
                            y: Ga - Ka[1] * Ei,
                            k: Ei
                          }, nn(Tn);
                        };
                      }).each("interrupt.zoom", function() {
                        jr(Tn);
                      }).each("end.zoom", function() {
                        jr(Tn);
                      }) : (this.__chart__ = y, xr(Tn), nn(Tn), jr(Tn));
                    });
                  }, Kt.translate = function(_r) {
                    return arguments.length ? (y = {
                      x: +_r[0],
                      y: +_r[1],
                      k: y.k
                    }, Br(), Kt) : [y.x, y.y];
                  }, Kt.scale = function(_r) {
                    return arguments.length ? (y = {
                      x: y.x,
                      y: y.y,
                      k: null
                    }, Nr(+_r), Br(), Kt) : y.k;
                  }, Kt.scaleExtent = function(_r) {
                    return arguments.length ? (ge = _r == null ? Fr : [+_r[0], +_r[1]], Kt) : ge;
                  }, Kt.center = function(_r) {
                    return arguments.length ? (le = _r && [+_r[0], +_r[1]], Kt) : le;
                  }, Kt.size = function(_r) {
                    return arguments.length ? (pe = _r && [+_r[0], +_r[1]], Kt) : pe;
                  }, Kt.duration = function(_r) {
                    return arguments.length ? (Fe = +_r, Kt) : Fe;
                  }, Kt.x = function(_r) {
                    return arguments.length ? (xt = _r, ct = _r.copy(), y = {
                      x: 0,
                      y: 0,
                      k: 1
                    }, Kt) : xt;
                  }, Kt.y = function(_r) {
                    return arguments.length ? (Xt = _r, Rt = _r.copy(), y = {
                      x: 0,
                      y: 0,
                      k: 1
                    }, Kt) : Xt;
                  };
                  function Bt(_r) {
                    return [(_r[0] - y.x) / y.k, (_r[1] - y.y) / y.k];
                  }
                  function Ar(_r) {
                    return [_r[0] * y.k + y.x, _r[1] * y.k + y.y];
                  }
                  function Nr(_r) {
                    y.k = Math.max(ge[0], Math.min(ge[1], _r));
                  }
                  function Ur(_r, Tn) {
                    Tn = Ar(Tn), y.x += _r[0] - Tn[0], y.y += _r[1] - Tn[1];
                  }
                  function qt(_r, Tn, En, Qn) {
                    _r.__chart__ = {
                      x: y.x,
                      y: y.y,
                      k: y.k
                    }, Nr(Math.pow(2, Qn)), Ur(Q = Tn, En), _r = l.select(_r), Fe > 0 && (_r = _r.transition().duration(Fe)), _r.call(Kt.event);
                  }
                  function Br() {
                    xt && xt.domain(ct.range().map(function(_r) {
                      return (_r - y.x) / y.k;
                    }).map(ct.invert)), Xt && Xt.domain(Rt.range().map(function(_r) {
                      return (_r - y.y) / y.k;
                    }).map(Rt.invert));
                  }
                  function xr(_r) {
                    ke++ || _r({
                      type: "zoomstart"
                    });
                  }
                  function nn(_r) {
                    Br(), _r({
                      type: "zoom",
                      scale: y.k,
                      translate: [y.x, y.y]
                    });
                  }
                  function jr(_r) {
                    --ke || (_r({
                      type: "zoomend"
                    }), Q = null);
                  }
                  function fn() {
                    var _r = this, Tn = Pt.of(_r, arguments), En = 0, Qn = l.select(h(_r)).on(Qe, Ga).on(Ke, ui), Sa = Bt(l.mouse(_r)), Va = Wt(_r);
                    Bi.call(_r), xr(Tn);
                    function Ga() {
                      En = 1, Ur(l.mouse(_r), Sa), nn(Tn);
                    }
                    function ui() {
                      Qn.on(Qe, null).on(Ke, null), Va(En), jr(Tn);
                    }
                  }
                  function Bn() {
                    var _r = this, Tn = Pt.of(_r, arguments), En = {}, Qn = 0, Sa, Va = ".zoom-" + l.event.changedTouches[0].identifier, Ga = "touchmove" + Va, ui = "touchend" + Va, ai = [], Ka = l.select(_r), Ei = Wt(_r);
                    Di(), xr(Tn), Ka.on(_e, null).on(gt, Di);
                    function qa() {
                      var ho = l.touches(_r);
                      return Sa = y.k, ho.forEach(function(Za) {
                        Za.identifier in En && (En[Za.identifier] = Bt(Za));
                      }), ho;
                    }
                    function Di() {
                      var ho = l.event.target;
                      l.select(ho).on(Ga, ml).on(ui, vc), ai.push(ho);
                      for (var Za = l.event.changedTouches, xi = 0, wo = Za.length; xi < wo; ++xi)
                        En[Za[xi].identifier] = null;
                      var Ji = qa(), fs = Date.now();
                      if (Ji.length === 1) {
                        if (fs - Vt < 500) {
                          var yl = Ji[0];
                          qt(_r, yl, En[yl.identifier], Math.floor(Math.log(y.k) / Math.LN2) + 1), Re();
                        }
                        Vt = fs;
                      } else if (Ji.length > 1) {
                        var yl = Ji[0], Xl = Ji[1], cs = yl[0] - Xl[0], hc = yl[1] - Xl[1];
                        Qn = cs * cs + hc * hc;
                      }
                    }
                    function ml() {
                      var ho = l.touches(_r), Za, xi, wo, Ji;
                      Bi.call(_r);
                      for (var fs = 0, yl = ho.length; fs < yl; ++fs, Ji = null)
                        if (wo = ho[fs], Ji = En[wo.identifier]) {
                          if (xi)
                            break;
                          Za = wo, xi = Ji;
                        }
                      if (Ji) {
                        var Xl = (Xl = wo[0] - Za[0]) * Xl + (Xl = wo[1] - Za[1]) * Xl, cs = Qn && Math.sqrt(Xl / Qn);
                        Za = [(Za[0] + wo[0]) / 2, (Za[1] + wo[1]) / 2], xi = [(xi[0] + Ji[0]) / 2, (xi[1] + Ji[1]) / 2], Nr(cs * Sa);
                      }
                      Vt = null, Ur(Za, xi), nn(Tn);
                    }
                    function vc() {
                      if (l.event.touches.length) {
                        for (var ho = l.event.changedTouches, Za = 0, xi = ho.length; Za < xi; ++Za)
                          delete En[ho[Za].identifier];
                        for (var wo in En)
                          return void qa();
                      }
                      l.selectAll(ai).on(Va, null), Ka.on(_e, fn).on(gt, Bn), Ei(), jr(Tn);
                    }
                  }
                  function wa() {
                    var _r = Pt.of(this, arguments);
                    yt ? clearTimeout(yt) : (Bi.call(this), _ = Bt(Q = le || l.mouse(this)), xr(_r)), yt = setTimeout(function() {
                      yt = null, jr(_r);
                    }, 50), Re(), Nr(Math.pow(2, br() * 2e-3) * y.k), Ur(Q, _), nn(_r);
                  }
                  function Jn() {
                    var _r = l.mouse(this), Tn = Math.log(y.k) / Math.LN2;
                    qt(this, _r, Bt(_r), l.event.shiftKey ? Math.ceil(Tn) - 1 : Math.floor(Tn) + 1);
                  }
                  return l.rebind(Kt, Pt, "on");
                };
                var Fr = [0, 1 / 0], br, or;
                l.color = Rr;
                function Rr() {
                }
                Rr.prototype.toString = function() {
                  return this.rgb() + "";
                }, l.hsl = lr;
                function lr(y, _, Q) {
                  return this instanceof lr ? (this.h = +y, this.s = +_, void (this.l = +Q)) : arguments.length < 2 ? y instanceof lr ? new lr(y.h, y.s, y.l) : Ht("" + y, Et, lr) : new lr(y, _, Q);
                }
                var Tr = lr.prototype = new Rr();
                Tr.brighter = function(y) {
                  return y = Math.pow(0.7, arguments.length ? y : 1), new lr(this.h, this.s, this.l / y);
                }, Tr.darker = function(y) {
                  return y = Math.pow(0.7, arguments.length ? y : 1), new lr(this.h, this.s, y * this.l);
                }, Tr.rgb = function() {
                  return Gr(this.h, this.s, this.l);
                };
                function Gr(y, _, Q) {
                  var le, pe;
                  y = isNaN(y) ? 0 : (y %= 360) < 0 ? y + 360 : y, _ = isNaN(_) || _ < 0 ? 0 : _ > 1 ? 1 : _, Q = Q < 0 ? 0 : Q > 1 ? 1 : Q, pe = Q <= 0.5 ? Q * (1 + _) : Q + _ - Q * _, le = 2 * Q - pe;
                  function ge(ke) {
                    return ke > 360 ? ke -= 360 : ke < 0 && (ke += 360), ke < 60 ? le + (pe - le) * ke / 60 : ke < 180 ? pe : ke < 240 ? le + (pe - le) * (240 - ke) / 60 : le;
                  }
                  function Fe(ke) {
                    return Math.round(ge(ke) * 255);
                  }
                  return new bt(Fe(y + 120), Fe(y), Fe(y - 120));
                }
                l.hcl = Dr;
                function Dr(y, _, Q) {
                  return this instanceof Dr ? (this.h = +y, this.c = +_, void (this.l = +Q)) : arguments.length < 2 ? y instanceof Dr ? new Dr(y.h, y.c, y.l) : y instanceof Cr ? ft(y.l, y.a, y.b) : ft((y = Zt((y = l.rgb(y)).r, y.g, y.b)).l, y.a, y.b) : new Dr(y, _, Q);
                }
                var gr = Dr.prototype = new Rr();
                gr.brighter = function(y) {
                  return new Dr(this.h, this.c, Math.min(100, this.l + zr * (arguments.length ? y : 1)));
                }, gr.darker = function(y) {
                  return new Dr(this.h, this.c, Math.max(0, this.l - zr * (arguments.length ? y : 1)));
                }, gr.rgb = function() {
                  return Er(this.h, this.c, this.l).rgb();
                };
                function Er(y, _, Q) {
                  return isNaN(y) && (y = 0), isNaN(_) && (_ = 0), new Cr(Q, Math.cos(y *= rt) * _, Math.sin(y) * _);
                }
                l.lab = Cr;
                function Cr(y, _, Q) {
                  return this instanceof Cr ? (this.l = +y, this.a = +_, void (this.b = +Q)) : arguments.length < 2 ? y instanceof Cr ? new Cr(y.l, y.a, y.b) : y instanceof Dr ? Er(y.h, y.c, y.l) : Zt((y = bt(y)).r, y.g, y.b) : new Cr(y, _, Q);
                }
                var zr = 18, en = 0.95047, on = 1, Ir = 1.08883, Ae = Cr.prototype = new Rr();
                Ae.brighter = function(y) {
                  return new Cr(Math.min(100, this.l + zr * (arguments.length ? y : 1)), this.a, this.b);
                }, Ae.darker = function(y) {
                  return new Cr(Math.max(0, this.l - zr * (arguments.length ? y : 1)), this.a, this.b);
                }, Ae.rgb = function() {
                  return ue(this.l, this.a, this.b);
                };
                function ue(y, _, Q) {
                  var le = (y + 16) / 116, pe = le + _ / 500, ge = le - Q / 200;
                  return pe = nt(pe) * en, le = nt(le) * on, ge = nt(ge) * Ir, new bt(Tt(3.2404542 * pe - 1.5371385 * le - 0.4985314 * ge), Tt(-0.969266 * pe + 1.8760108 * le + 0.041556 * ge), Tt(0.0556434 * pe - 0.2040259 * le + 1.0572252 * ge));
                }
                function ft(y, _, Q) {
                  return y > 0 ? new Dr(Math.atan2(Q, _) * tt, Math.sqrt(_ * _ + Q * Q), y) : new Dr(NaN, NaN, y);
                }
                function nt(y) {
                  return y > 0.206893034 ? y * y * y : (y - 0.13793103448275862) / 7.787037;
                }
                function mt(y) {
                  return y > 8856e-6 ? Math.pow(y, 0.3333333333333333) : 7.787037 * y + 0.13793103448275862;
                }
                function Tt(y) {
                  return Math.round(255 * (y <= 304e-5 ? 12.92 * y : 1.055 * Math.pow(y, 0.4166666666666667) - 0.055));
                }
                l.rgb = bt;
                function bt(y, _, Q) {
                  return this instanceof bt ? (this.r = ~~y, this.g = ~~_, void (this.b = ~~Q)) : arguments.length < 2 ? y instanceof bt ? new bt(y.r, y.g, y.b) : Ht("" + y, bt, Gr) : new bt(y, _, Q);
                }
                function vt(y) {
                  return new bt(y >> 16, y >> 8 & 255, y & 255);
                }
                function ht(y) {
                  return vt(y) + "";
                }
                var St = bt.prototype = new Rr();
                St.brighter = function(y) {
                  y = Math.pow(0.7, arguments.length ? y : 1);
                  var _ = this.r, Q = this.g, le = this.b, pe = 30;
                  return !_ && !Q && !le ? new bt(pe, pe, pe) : (_ && _ < pe && (_ = pe), Q && Q < pe && (Q = pe), le && le < pe && (le = pe), new bt(Math.min(255, _ / y), Math.min(255, Q / y), Math.min(255, le / y)));
                }, St.darker = function(y) {
                  return y = Math.pow(0.7, arguments.length ? y : 1), new bt(y * this.r, y * this.g, y * this.b);
                }, St.hsl = function() {
                  return Et(this.r, this.g, this.b);
                }, St.toString = function() {
                  return "#" + It(this.r) + It(this.g) + It(this.b);
                };
                function It(y) {
                  return y < 16 ? "0" + Math.max(0, y).toString(16) : Math.min(255, y).toString(16);
                }
                function Ht(y, _, Q) {
                  var le = 0, pe = 0, ge = 0, Fe, ke, _e;
                  if (Fe = /([a-z]+)\((.*)\)/.exec(y = y.toLowerCase()), Fe)
                    switch (ke = Fe[2].split(","), Fe[1]) {
                      case "hsl":
                        return Q(parseFloat(ke[0]), parseFloat(ke[1]) / 100, parseFloat(ke[2]) / 100);
                      case "rgb":
                        return _(Gt(ke[0]), Gt(ke[1]), Gt(ke[2]));
                    }
                  return (_e = $t.get(y)) ? _(_e.r, _e.g, _e.b) : (y != null && y.charAt(0) === "#" && !isNaN(_e = parseInt(y.slice(1), 16)) && (y.length === 4 ? (le = (_e & 3840) >> 4, le = le >> 4 | le, pe = _e & 240, pe = pe >> 4 | pe, ge = _e & 15, ge = ge << 4 | ge) : y.length === 7 && (le = (_e & 16711680) >> 16, pe = (_e & 65280) >> 8, ge = _e & 255)), _(le, pe, ge));
                }
                function Et(y, _, Q) {
                  var le = Math.min(y /= 255, _ /= 255, Q /= 255), pe = Math.max(y, _, Q), ge = pe - le, Fe, ke, _e = (pe + le) / 2;
                  return ge ? (ke = _e < 0.5 ? ge / (pe + le) : ge / (2 - pe - le), y == pe ? Fe = (_ - Q) / ge + (_ < Q ? 6 : 0) : _ == pe ? Fe = (Q - y) / ge + 2 : Fe = (y - _) / ge + 4, Fe *= 60) : (Fe = NaN, ke = _e > 0 && _e < 1 ? 0 : Fe), new lr(Fe, ke, _e);
                }
                function Zt(y, _, Q) {
                  y = Yt(y), _ = Yt(_), Q = Yt(Q);
                  var le = mt((0.4124564 * y + 0.3575761 * _ + 0.1804375 * Q) / en), pe = mt((0.2126729 * y + 0.7151522 * _ + 0.072175 * Q) / on), ge = mt((0.0193339 * y + 0.119192 * _ + 0.9503041 * Q) / Ir);
                  return Cr(116 * pe - 16, 500 * (le - pe), 200 * (pe - ge));
                }
                function Yt(y) {
                  return (y /= 255) <= 0.04045 ? y / 12.92 : Math.pow((y + 0.055) / 1.055, 2.4);
                }
                function Gt(y) {
                  var _ = parseFloat(y);
                  return y.charAt(y.length - 1) === "%" ? Math.round(_ * 2.55) : _;
                }
                var $t = l.map({
                  aliceblue: 15792383,
                  antiquewhite: 16444375,
                  aqua: 65535,
                  aquamarine: 8388564,
                  azure: 15794175,
                  beige: 16119260,
                  bisque: 16770244,
                  black: 0,
                  blanchedalmond: 16772045,
                  blue: 255,
                  blueviolet: 9055202,
                  brown: 10824234,
                  burlywood: 14596231,
                  cadetblue: 6266528,
                  chartreuse: 8388352,
                  chocolate: 13789470,
                  coral: 16744272,
                  cornflowerblue: 6591981,
                  cornsilk: 16775388,
                  crimson: 14423100,
                  cyan: 65535,
                  darkblue: 139,
                  darkcyan: 35723,
                  darkgoldenrod: 12092939,
                  darkgray: 11119017,
                  darkgreen: 25600,
                  darkgrey: 11119017,
                  darkkhaki: 12433259,
                  darkmagenta: 9109643,
                  darkolivegreen: 5597999,
                  darkorange: 16747520,
                  darkorchid: 10040012,
                  darkred: 9109504,
                  darksalmon: 15308410,
                  darkseagreen: 9419919,
                  darkslateblue: 4734347,
                  darkslategray: 3100495,
                  darkslategrey: 3100495,
                  darkturquoise: 52945,
                  darkviolet: 9699539,
                  deeppink: 16716947,
                  deepskyblue: 49151,
                  dimgray: 6908265,
                  dimgrey: 6908265,
                  dodgerblue: 2003199,
                  firebrick: 11674146,
                  floralwhite: 16775920,
                  forestgreen: 2263842,
                  fuchsia: 16711935,
                  gainsboro: 14474460,
                  ghostwhite: 16316671,
                  gold: 16766720,
                  goldenrod: 14329120,
                  gray: 8421504,
                  green: 32768,
                  greenyellow: 11403055,
                  grey: 8421504,
                  honeydew: 15794160,
                  hotpink: 16738740,
                  indianred: 13458524,
                  indigo: 4915330,
                  ivory: 16777200,
                  khaki: 15787660,
                  lavender: 15132410,
                  lavenderblush: 16773365,
                  lawngreen: 8190976,
                  lemonchiffon: 16775885,
                  lightblue: 11393254,
                  lightcoral: 15761536,
                  lightcyan: 14745599,
                  lightgoldenrodyellow: 16448210,
                  lightgray: 13882323,
                  lightgreen: 9498256,
                  lightgrey: 13882323,
                  lightpink: 16758465,
                  lightsalmon: 16752762,
                  lightseagreen: 2142890,
                  lightskyblue: 8900346,
                  lightslategray: 7833753,
                  lightslategrey: 7833753,
                  lightsteelblue: 11584734,
                  lightyellow: 16777184,
                  lime: 65280,
                  limegreen: 3329330,
                  linen: 16445670,
                  magenta: 16711935,
                  maroon: 8388608,
                  mediumaquamarine: 6737322,
                  mediumblue: 205,
                  mediumorchid: 12211667,
                  mediumpurple: 9662683,
                  mediumseagreen: 3978097,
                  mediumslateblue: 8087790,
                  mediumspringgreen: 64154,
                  mediumturquoise: 4772300,
                  mediumvioletred: 13047173,
                  midnightblue: 1644912,
                  mintcream: 16121850,
                  mistyrose: 16770273,
                  moccasin: 16770229,
                  navajowhite: 16768685,
                  navy: 128,
                  oldlace: 16643558,
                  olive: 8421376,
                  olivedrab: 7048739,
                  orange: 16753920,
                  orangered: 16729344,
                  orchid: 14315734,
                  palegoldenrod: 15657130,
                  palegreen: 10025880,
                  paleturquoise: 11529966,
                  palevioletred: 14381203,
                  papayawhip: 16773077,
                  peachpuff: 16767673,
                  peru: 13468991,
                  pink: 16761035,
                  plum: 14524637,
                  powderblue: 11591910,
                  purple: 8388736,
                  rebeccapurple: 6697881,
                  red: 16711680,
                  rosybrown: 12357519,
                  royalblue: 4286945,
                  saddlebrown: 9127187,
                  salmon: 16416882,
                  sandybrown: 16032864,
                  seagreen: 3050327,
                  seashell: 16774638,
                  sienna: 10506797,
                  silver: 12632256,
                  skyblue: 8900331,
                  slateblue: 6970061,
                  slategray: 7372944,
                  slategrey: 7372944,
                  snow: 16775930,
                  springgreen: 65407,
                  steelblue: 4620980,
                  tan: 13808780,
                  teal: 32896,
                  thistle: 14204888,
                  tomato: 16737095,
                  turquoise: 4251856,
                  violet: 15631086,
                  wheat: 16113331,
                  white: 16777215,
                  whitesmoke: 16119285,
                  yellow: 16776960,
                  yellowgreen: 10145074
                });
                $t.forEach(function(y, _) {
                  $t.set(y, vt(_));
                });
                function ir(y) {
                  return typeof y == "function" ? y : function() {
                    return y;
                  };
                }
                l.functor = ir, l.xhr = wr(W);
                function wr(y) {
                  return function(_, Q, le) {
                    return arguments.length === 2 && typeof Q == "function" && (le = Q, Q = null), sr(_, Q, y, le);
                  };
                }
                function sr(y, _, Q, le) {
                  var pe = {}, ge = l.dispatch("beforesend", "progress", "load", "error"), Fe = {}, ke = new XMLHttpRequest(), _e = null;
                  self.XDomainRequest && !("withCredentials" in ke) && /^(http(s)?:)?\/\//.test(y) && (ke = new XDomainRequest()), "onload" in ke ? ke.onload = ke.onerror = Qe : ke.onreadystatechange = function() {
                    ke.readyState > 3 && Qe();
                  };
                  function Qe() {
                    var Ke = ke.status, yt;
                    if (!Ke && Lr(ke) || Ke >= 200 && Ke < 300 || Ke === 304) {
                      try {
                        yt = Q.call(pe, ke);
                      } catch (gt) {
                        ge.error.call(pe, gt);
                        return;
                      }
                      ge.load.call(pe, yt);
                    } else
                      ge.error.call(pe, ke);
                  }
                  return ke.onprogress = function(Ke) {
                    var yt = l.event;
                    l.event = Ke;
                    try {
                      ge.progress.call(pe, ke);
                    } finally {
                      l.event = yt;
                    }
                  }, pe.header = function(Ke, yt) {
                    return Ke = (Ke + "").toLowerCase(), arguments.length < 2 ? Fe[Ke] : (yt == null ? delete Fe[Ke] : Fe[Ke] = yt + "", pe);
                  }, pe.mimeType = function(Ke) {
                    return arguments.length ? (_ = Ke == null ? null : Ke + "", pe) : _;
                  }, pe.responseType = function(Ke) {
                    return arguments.length ? (_e = Ke, pe) : _e;
                  }, pe.response = function(Ke) {
                    return Q = Ke, pe;
                  }, ["get", "post"].forEach(function(Ke) {
                    pe[Ke] = function() {
                      return pe.send.apply(pe, [Ke].concat(u(arguments)));
                    };
                  }), pe.send = function(Ke, yt, gt) {
                    if (arguments.length === 2 && typeof yt == "function" && (gt = yt, yt = null), ke.open(Ke, y, !0), _ != null && !("accept" in Fe) && (Fe.accept = _ + ",*/*"), ke.setRequestHeader)
                      for (var Vt in Fe)
                        ke.setRequestHeader(Vt, Fe[Vt]);
                    return _ != null && ke.overrideMimeType && ke.overrideMimeType(_), _e != null && (ke.responseType = _e), gt != null && pe.on("error", gt).on("load", function(Pt) {
                      gt(null, Pt);
                    }), ge.beforesend.call(pe, ke), ke.send(yt ?? null), pe;
                  }, pe.abort = function() {
                    return ke.abort(), pe;
                  }, l.rebind(pe, ge, "on"), le == null ? pe : pe.get(Xr(le));
                }
                function Xr(y) {
                  return y.length === 1 ? function(_, Q) {
                    y(_ == null ? Q : null);
                  } : y;
                }
                function Lr(y) {
                  var _ = y.responseType;
                  return _ && _ !== "text" ? y.response : y.responseText;
                }
                l.dsv = function(y, _) {
                  var Q = new RegExp('["' + y + `
]`), le = y.charCodeAt(0);
                  function pe(Qe, Ke, yt) {
                    arguments.length < 3 && (yt = Ke, Ke = null);
                    var gt = sr(Qe, _, Ke == null ? ge : Fe(Ke), yt);
                    return gt.row = function(Vt) {
                      return arguments.length ? gt.response((Ke = Vt) == null ? ge : Fe(Vt)) : Ke;
                    }, gt;
                  }
                  function ge(Qe) {
                    return pe.parse(Qe.responseText);
                  }
                  function Fe(Qe) {
                    return function(Ke) {
                      return pe.parse(Ke.responseText, Qe);
                    };
                  }
                  pe.parse = function(Qe, Ke) {
                    var yt;
                    return pe.parseRows(Qe, function(gt, Vt) {
                      if (yt)
                        return yt(gt, Vt - 1);
                      var Pt = function(ct) {
                        for (var xt = {}, Rt = gt.length, Xt = 0; Xt < Rt; ++Xt)
                          xt[gt[Xt]] = ct[Xt];
                        return xt;
                      };
                      yt = Ke ? function(ct, xt) {
                        return Ke(Pt(ct), xt);
                      } : Pt;
                    });
                  }, pe.parseRows = function(Qe, Ke) {
                    var yt = {}, gt = {}, Vt = [], Pt = Qe.length, ct = 0, xt = 0, Rt, Xt;
                    function Kt() {
                      if (ct >= Pt)
                        return gt;
                      if (Xt)
                        return Xt = !1, yt;
                      var Ar = ct;
                      if (Qe.charCodeAt(Ar) === 34) {
                        for (var Nr = Ar; Nr++ < Pt; )
                          if (Qe.charCodeAt(Nr) === 34) {
                            if (Qe.charCodeAt(Nr + 1) !== 34)
                              break;
                            ++Nr;
                          }
                        ct = Nr + 2;
                        var Ur = Qe.charCodeAt(Nr + 1);
                        return Ur === 13 ? (Xt = !0, Qe.charCodeAt(Nr + 2) === 10 && ++ct) : Ur === 10 && (Xt = !0), Qe.slice(Ar + 1, Nr).replace(/""/g, '"');
                      }
                      for (; ct < Pt; ) {
                        var Ur = Qe.charCodeAt(ct++), qt = 1;
                        if (Ur === 10)
                          Xt = !0;
                        else if (Ur === 13)
                          Xt = !0, Qe.charCodeAt(ct) === 10 && (++ct, ++qt);
                        else if (Ur !== le)
                          continue;
                        return Qe.slice(Ar, ct - qt);
                      }
                      return Qe.slice(Ar);
                    }
                    for (; (Rt = Kt()) !== gt; ) {
                      for (var Bt = []; Rt !== yt && Rt !== gt; )
                        Bt.push(Rt), Rt = Kt();
                      Ke && (Bt = Ke(Bt, xt++)) == null || Vt.push(Bt);
                    }
                    return Vt;
                  }, pe.format = function(Qe) {
                    if (Array.isArray(Qe[0]))
                      return pe.formatRows(Qe);
                    var Ke = new J(), yt = [];
                    return Qe.forEach(function(gt) {
                      for (var Vt in gt)
                        Ke.has(Vt) || yt.push(Ke.add(Vt));
                    }), [yt.map(_e).join(y)].concat(Qe.map(function(gt) {
                      return yt.map(function(Vt) {
                        return _e(gt[Vt]);
                      }).join(y);
                    })).join(`
`);
                  }, pe.formatRows = function(Qe) {
                    return Qe.map(ke).join(`
`);
                  };
                  function ke(Qe) {
                    return Qe.map(_e).join(y);
                  }
                  function _e(Qe) {
                    return Q.test(Qe) ? '"' + Qe.replace(/\"/g, '""') + '"' : Qe;
                  }
                  return pe;
                }, l.csv = l.dsv(",", "text/csv"), l.tsv = l.dsv("	", "text/tab-separated-values");
                var Pr, $r, Jr, Qr, vn = this[oe(this, "requestAnimationFrame")] || function(y) {
                  setTimeout(y, 17);
                };
                l.timer = function() {
                  An.apply(this, arguments);
                };
                function An(y, _, Q) {
                  var le = arguments.length;
                  le < 2 && (_ = 0), le < 3 && (Q = Date.now());
                  var pe = Q + _, ge = {
                    c: y,
                    t: pe,
                    n: null
                  };
                  return $r ? $r.n = ge : Pr = ge, $r = ge, Jr || (Qr = clearTimeout(Qr), Jr = 1, vn(hn)), ge;
                }
                function hn() {
                  var y = Pn(), _ = sa() - y;
                  _ > 24 ? (isFinite(_) && (clearTimeout(Qr), Qr = setTimeout(hn, _)), Jr = 0) : (Jr = 1, vn(hn));
                }
                l.timer.flush = function() {
                  Pn(), sa();
                };
                function Pn() {
                  for (var y = Date.now(), _ = Pr; _; )
                    y >= _.t && _.c(y - _.t) && (_.c = null), _ = _.n;
                  return y;
                }
                function sa() {
                  for (var y, _ = Pr, Q = 1 / 0; _; )
                    _.c ? (_.t < Q && (Q = _.t), _ = (y = _).n) : _ = y ? y.n = _.n : Pr = _.n;
                  return $r = y, Q;
                }
                l.round = function(y, _) {
                  return _ ? Math.round(y * (_ = Math.pow(10, _))) / _ : Math.round(y);
                }, l.geom = {};
                function Ra(y) {
                  return y[0];
                }
                function rn(y) {
                  return y[1];
                }
                l.geom.hull = function(y) {
                  var _ = Ra, Q = rn;
                  if (arguments.length)
                    return le(y);
                  function le(pe) {
                    if (pe.length < 3)
                      return [];
                    var ge = ir(_), Fe = ir(Q), ke, _e = pe.length, Qe = [], Ke = [];
                    for (ke = 0; ke < _e; ke++)
                      Qe.push([+ge.call(this, pe[ke], ke), +Fe.call(this, pe[ke], ke), ke]);
                    for (Qe.sort(dn), ke = 0; ke < _e; ke++)
                      Ke.push([Qe[ke][0], -Qe[ke][1]]);
                    var yt = ua(Qe), gt = ua(Ke), Vt = gt[0] === yt[0], Pt = gt[gt.length - 1] === yt[yt.length - 1], ct = [];
                    for (ke = yt.length - 1; ke >= 0; --ke)
                      ct.push(pe[Qe[yt[ke]][2]]);
                    for (ke = +Vt; ke < gt.length - Pt; ++ke)
                      ct.push(pe[Qe[gt[ke]][2]]);
                    return ct;
                  }
                  return le.x = function(pe) {
                    return arguments.length ? (_ = pe, le) : _;
                  }, le.y = function(pe) {
                    return arguments.length ? (Q = pe, le) : Q;
                  }, le;
                };
                function ua(y) {
                  for (var _ = y.length, Q = [0, 1], le = 2, pe = 2; pe < _; pe++) {
                    for (; le > 1 && Ft(y[Q[le - 2]], y[Q[le - 1]], y[pe]) <= 0; )
                      --le;
                    Q[le++] = pe;
                  }
                  return Q.slice(0, le);
                }
                function dn(y, _) {
                  return y[0] - _[0] || y[1] - _[1];
                }
                l.geom.polygon = function(y) {
                  return De(y, Dn), y;
                };
                var Dn = l.geom.polygon.prototype = [];
                Dn.area = function() {
                  for (var y = -1, _ = this.length, Q, le = this[_ - 1], pe = 0; ++y < _; )
                    Q = le, le = this[y], pe += Q[1] * le[0] - Q[0] * le[1];
                  return pe * 0.5;
                }, Dn.centroid = function(y) {
                  var _ = -1, Q = this.length, le = 0, pe = 0, ge, Fe = this[Q - 1], ke;
                  for (arguments.length || (y = -1 / (6 * this.area())); ++_ < Q; )
                    ge = Fe, Fe = this[_], ke = ge[0] * Fe[1] - Fe[0] * ge[1], le += (ge[0] + Fe[0]) * ke, pe += (ge[1] + Fe[1]) * ke;
                  return [le * y, pe * y];
                }, Dn.clip = function(y) {
                  for (var _, Q = Mn(y), le = -1, pe = this.length - Mn(this), ge, Fe, ke = this[pe - 1], _e, Qe, Ke; ++le < pe; ) {
                    for (_ = y.slice(), y.length = 0, _e = this[le], Qe = _[(Fe = _.length - Q) - 1], ge = -1; ++ge < Fe; )
                      Ke = _[ge], Sn(Ke, ke, _e) ? (Sn(Qe, ke, _e) || y.push(Fn(Qe, Ke, ke, _e)), y.push(Ke)) : Sn(Qe, ke, _e) && y.push(Fn(Qe, Ke, ke, _e)), Qe = Ke;
                    Q && y.push(y[0]), ke = _e;
                  }
                  return y;
                };
                function Sn(y, _, Q) {
                  return (Q[0] - _[0]) * (y[1] - _[1]) < (Q[1] - _[1]) * (y[0] - _[0]);
                }
                function Fn(y, _, Q, le) {
                  var pe = y[0], ge = Q[0], Fe = _[0] - pe, ke = le[0] - ge, _e = y[1], Qe = Q[1], Ke = _[1] - _e, yt = le[1] - Qe, gt = (ke * (_e - Qe) - yt * (pe - ge)) / (yt * Fe - ke * Ke);
                  return [pe + gt * Fe, _e + gt * Ke];
                }
                function Mn(y) {
                  var _ = y[0], Q = y[y.length - 1];
                  return !(_[0] - Q[0] || _[1] - Q[1]);
                }
                var qn, Rn, ea, ga = [], oa, Kn, ba = [];
                function Fa() {
                  Es(this), this.edge = this.site = this.circle = null;
                }
                function xa(y) {
                  var _ = ga.pop() || new Fa();
                  return _.site = y, _;
                }
                function _a(y) {
                  wi(y), ea.remove(y), ga.push(y), Es(y);
                }
                function si(y) {
                  var _ = y.circle, Q = _.x, le = _.cy, pe = {
                    x: Q,
                    y: le
                  }, ge = y.P, Fe = y.N, ke = [y];
                  _a(y);
                  for (var _e = ge; _e.circle && g(Q - _e.circle.x) < je && g(le - _e.circle.cy) < je; )
                    ge = _e.P, ke.unshift(_e), _a(_e), _e = ge;
                  ke.unshift(_e), wi(_e);
                  for (var Qe = Fe; Qe.circle && g(Q - Qe.circle.x) < je && g(le - Qe.circle.cy) < je; )
                    Fe = Qe.N, ke.push(Qe), _a(Qe), Qe = Fe;
                  ke.push(Qe), wi(Qe);
                  var Ke = ke.length, yt;
                  for (yt = 1; yt < Ke; ++yt)
                    Qe = ke[yt], _e = ke[yt - 1], Si(Qe.edge, _e.site, Qe.site, pe);
                  _e = ke[0], Qe = ke[Ke - 1], Qe.edge = Pl(_e.site, Qe.site, null, pe), mi(_e), mi(Qe);
                }
                function pi(y) {
                  for (var _ = y.x, Q = y.y, le, pe, ge, Fe, ke = ea._; ke; )
                    if (ge = ri(ke, Q) - _, ge > je)
                      ke = ke.L;
                    else if (Fe = _ - da(ke, Q), Fe > je) {
                      if (!ke.R) {
                        le = ke;
                        break;
                      }
                      ke = ke.R;
                    } else {
                      ge > -je ? (le = ke.P, pe = ke) : Fe > -je ? (le = ke, pe = ke.N) : le = pe = ke;
                      break;
                    }
                  var _e = xa(y);
                  if (ea.insert(le, _e), !(!le && !pe)) {
                    if (le === pe) {
                      wi(le), pe = xa(le.site), ea.insert(_e, pe), _e.edge = pe.edge = Pl(le.site, _e.site), mi(le), mi(pe);
                      return;
                    }
                    if (!pe) {
                      _e.edge = Pl(le.site, _e.site);
                      return;
                    }
                    wi(le), wi(pe);
                    var Qe = le.site, Ke = Qe.x, yt = Qe.y, gt = y.x - Ke, Vt = y.y - yt, Pt = pe.site, ct = Pt.x - Ke, xt = Pt.y - yt, Rt = 2 * (gt * xt - Vt * ct), Xt = gt * gt + Vt * Vt, Kt = ct * ct + xt * xt, Bt = {
                      x: (xt * Xt - Vt * Kt) / Rt + Ke,
                      y: (gt * Kt - ct * Xt) / Rt + yt
                    };
                    Si(pe.edge, Qe, Pt, Bt), _e.edge = Pl(Qe, y, null, Bt), pe.edge = Pl(y, Pt, null, Bt), mi(le), mi(pe);
                  }
                }
                function ri(y, _) {
                  var Q = y.site, le = Q.x, pe = Q.y, ge = pe - _;
                  if (!ge)
                    return le;
                  var Fe = y.P;
                  if (!Fe)
                    return -1 / 0;
                  Q = Fe.site;
                  var ke = Q.x, _e = Q.y, Qe = _e - _;
                  if (!Qe)
                    return ke;
                  var Ke = ke - le, yt = 1 / ge - 1 / Qe, gt = Ke / Qe;
                  return yt ? (-gt + Math.sqrt(gt * gt - 2 * yt * (Ke * Ke / (-2 * Qe) - _e + Qe / 2 + pe - ge / 2))) / yt + le : (le + ke) / 2;
                }
                function da(y, _) {
                  var Q = y.N;
                  if (Q)
                    return ri(Q, _);
                  var le = y.site;
                  return le.y === _ ? le.x : 1 / 0;
                }
                function Fi(y) {
                  this.site = y, this.edges = [];
                }
                Fi.prototype.prepare = function() {
                  for (var y = this.edges, _ = y.length, Q; _--; )
                    Q = y[_].edge, (!Q.b || !Q.a) && y.splice(_, 1);
                  return y.sort(Ta), y.length;
                };
                function sl(y) {
                  for (var _ = y[0][0], Q = y[1][0], le = y[0][1], pe = y[1][1], ge, Fe, ke, _e, Qe = Rn, Ke = Qe.length, yt, gt, Vt, Pt, ct, xt; Ke--; )
                    if (yt = Qe[Ke], !(!yt || !yt.prepare()))
                      for (Vt = yt.edges, Pt = Vt.length, gt = 0; gt < Pt; )
                        xt = Vt[gt].end(), ke = xt.x, _e = xt.y, ct = Vt[++gt % Pt].start(), ge = ct.x, Fe = ct.y, (g(ke - ge) > je || g(_e - Fe) > je) && (Vt.splice(gt, 0, new Fl(Yu(yt.site, xt, g(ke - _) < je && pe - _e > je ? {
                          x: _,
                          y: g(ge - _) < je ? Fe : pe
                        } : g(_e - pe) < je && Q - ke > je ? {
                          x: g(Fe - pe) < je ? ge : Q,
                          y: pe
                        } : g(ke - Q) < je && _e - le > je ? {
                          x: Q,
                          y: g(ge - Q) < je ? Fe : le
                        } : g(_e - le) < je && ke - _ > je ? {
                          x: g(Fe - le) < je ? ge : _,
                          y: le
                        } : null), yt.site, null)), ++Pt);
                }
                function Ta(y, _) {
                  return _.angle - y.angle;
                }
                function oo() {
                  Es(this), this.x = this.y = this.arc = this.site = this.cy = null;
                }
                function mi(y) {
                  var _ = y.P, Q = y.N;
                  if (!(!_ || !Q)) {
                    var le = _.site, pe = y.site, ge = Q.site;
                    if (le !== ge) {
                      var Fe = pe.x, ke = pe.y, _e = le.x - Fe, Qe = le.y - ke, Ke = ge.x - Fe, xt = ge.y - ke, yt = 2 * (_e * xt - Qe * Ke);
                      if (!(yt >= -lt)) {
                        var gt = _e * _e + Qe * Qe, Vt = Ke * Ke + xt * xt, Pt = (xt * gt - Qe * Vt) / yt, ct = (_e * Vt - Ke * gt) / yt, xt = ct + ke, Rt = ba.pop() || new oo();
                        Rt.arc = y, Rt.site = pe, Rt.x = Pt + Fe, Rt.y = xt + Math.sqrt(Pt * Pt + ct * ct), Rt.cy = xt, y.circle = Rt;
                        for (var Xt = null, Kt = Kn._; Kt; )
                          if (Rt.y < Kt.y || Rt.y === Kt.y && Rt.x <= Kt.x)
                            if (Kt.L)
                              Kt = Kt.L;
                            else {
                              Xt = Kt.P;
                              break;
                            }
                          else if (Kt.R)
                            Kt = Kt.R;
                          else {
                            Xt = Kt;
                            break;
                          }
                        Kn.insert(Xt, Rt), Xt || (oa = Rt);
                      }
                    }
                  }
                }
                function wi(y) {
                  var _ = y.circle;
                  _ && (_.P || (oa = _.N), Kn.remove(_), ba.push(_), Es(_), y.circle = null);
                }
                function ta(y, _, Q, le) {
                  return function(pe) {
                    var ge = pe.a, Fe = pe.b, ke = ge.x, _e = ge.y, Qe = Fe.x, Ke = Fe.y, yt = 0, gt = 1, Vt = Qe - ke, Pt = Ke - _e, ct;
                    if (ct = y - ke, !(!Vt && ct > 0)) {
                      if (ct /= Vt, Vt < 0) {
                        if (ct < yt)
                          return;
                        ct < gt && (gt = ct);
                      } else if (Vt > 0) {
                        if (ct > gt)
                          return;
                        ct > yt && (yt = ct);
                      }
                      if (ct = Q - ke, !(!Vt && ct < 0)) {
                        if (ct /= Vt, Vt < 0) {
                          if (ct > gt)
                            return;
                          ct > yt && (yt = ct);
                        } else if (Vt > 0) {
                          if (ct < yt)
                            return;
                          ct < gt && (gt = ct);
                        }
                        if (ct = _ - _e, !(!Pt && ct > 0)) {
                          if (ct /= Pt, Pt < 0) {
                            if (ct < yt)
                              return;
                            ct < gt && (gt = ct);
                          } else if (Pt > 0) {
                            if (ct > gt)
                              return;
                            ct > yt && (yt = ct);
                          }
                          if (ct = le - _e, !(!Pt && ct < 0)) {
                            if (ct /= Pt, Pt < 0) {
                              if (ct > gt)
                                return;
                              ct > yt && (yt = ct);
                            } else if (Pt > 0) {
                              if (ct < yt)
                                return;
                              ct < gt && (gt = ct);
                            }
                            return yt > 0 && (pe.a = {
                              x: ke + yt * Vt,
                              y: _e + yt * Pt
                            }), gt < 1 && (pe.b = {
                              x: ke + gt * Vt,
                              y: _e + gt * Pt
                            }), pe;
                          }
                        }
                      }
                    }
                  };
                }
                function Zn(y) {
                  for (var _ = qn, Q = ta(y[0][0], y[0][1], y[1][0], y[1][1]), le = _.length, pe; le--; )
                    pe = _[le], (!ji(pe, y) || !Q(pe) || g(pe.a.x - pe.b.x) < je && g(pe.a.y - pe.b.y) < je) && (pe.a = pe.b = null, _.splice(le, 1));
                }
                function ji(y, _) {
                  var Q = y.b;
                  if (Q)
                    return !0;
                  var le = y.a, pe = _[0][0], ge = _[1][0], Fe = _[0][1], ke = _[1][1], _e = y.l, Qe = y.r, Ke = _e.x, yt = _e.y, gt = Qe.x, Vt = Qe.y, Pt = (Ke + gt) / 2, ct = (yt + Vt) / 2, xt, Rt;
                  if (Vt === yt) {
                    if (Pt < pe || Pt >= ge)
                      return;
                    if (Ke > gt) {
                      if (!le)
                        le = {
                          x: Pt,
                          y: Fe
                        };
                      else if (le.y >= ke)
                        return;
                      Q = {
                        x: Pt,
                        y: ke
                      };
                    } else {
                      if (!le)
                        le = {
                          x: Pt,
                          y: ke
                        };
                      else if (le.y < Fe)
                        return;
                      Q = {
                        x: Pt,
                        y: Fe
                      };
                    }
                  } else if (xt = (Ke - gt) / (Vt - yt), Rt = ct - xt * Pt, xt < -1 || xt > 1)
                    if (Ke > gt) {
                      if (!le)
                        le = {
                          x: (Fe - Rt) / xt,
                          y: Fe
                        };
                      else if (le.y >= ke)
                        return;
                      Q = {
                        x: (ke - Rt) / xt,
                        y: ke
                      };
                    } else {
                      if (!le)
                        le = {
                          x: (ke - Rt) / xt,
                          y: ke
                        };
                      else if (le.y < Fe)
                        return;
                      Q = {
                        x: (Fe - Rt) / xt,
                        y: Fe
                      };
                    }
                  else if (yt < Vt) {
                    if (!le)
                      le = {
                        x: pe,
                        y: xt * pe + Rt
                      };
                    else if (le.x >= ge)
                      return;
                    Q = {
                      x: ge,
                      y: xt * ge + Rt
                    };
                  } else {
                    if (!le)
                      le = {
                        x: ge,
                        y: xt * ge + Rt
                      };
                    else if (le.x < pe)
                      return;
                    Q = {
                      x: pe,
                      y: xt * pe + Rt
                    };
                  }
                  return y.a = le, y.b = Q, !0;
                }
                function ul(y, _) {
                  this.l = y, this.r = _, this.a = this.b = null;
                }
                function Pl(y, _, Q, le) {
                  var pe = new ul(y, _);
                  return qn.push(pe), Q && Si(pe, y, _, Q), le && Si(pe, _, y, le), Rn[y.i].edges.push(new Fl(pe, y, _)), Rn[_.i].edges.push(new Fl(pe, _, y)), pe;
                }
                function Yu(y, _, Q) {
                  var le = new ul(y, null);
                  return le.a = _, le.b = Q, qn.push(le), le;
                }
                function Si(y, _, Q, le) {
                  !y.a && !y.b ? (y.a = le, y.l = _, y.r = Q) : y.l === Q ? y.b = le : y.a = le;
                }
                function Fl(y, _, Q) {
                  var le = y.a, pe = y.b;
                  this.edge = y, this.site = _, this.angle = Q ? Math.atan2(Q.y - _.y, Q.x - _.x) : y.l === _ ? Math.atan2(pe.x - le.x, le.y - pe.y) : Math.atan2(le.x - pe.x, pe.y - le.y);
                }
                Fl.prototype = {
                  start: function() {
                    return this.edge.l === this.site ? this.edge.a : this.edge.b;
                  },
                  end: function() {
                    return this.edge.l === this.site ? this.edge.b : this.edge.a;
                  }
                };
                function Ms() {
                  this._ = null;
                }
                function Es(y) {
                  y.U = y.C = y.L = y.R = y.P = y.N = null;
                }
                Ms.prototype = {
                  insert: function(y, _) {
                    var Q, le, pe;
                    if (y) {
                      if (_.P = y, _.N = y.N, y.N && (y.N.P = _), y.N = _, y.R) {
                        for (y = y.R; y.L; )
                          y = y.L;
                        y.L = _;
                      } else
                        y.R = _;
                      Q = y;
                    } else
                      this._ ? (y = Uf(this._), _.P = null, _.N = y, y.P = y.L = _, Q = y) : (_.P = _.N = null, this._ = _, Q = null);
                    for (_.L = _.R = null, _.U = Q, _.C = !0, y = _; Q && Q.C; )
                      le = Q.U, Q === le.L ? (pe = le.R, pe && pe.C ? (Q.C = pe.C = !1, le.C = !0, y = le) : (y === Q.R && (ts(this, Q), y = Q, Q = y.U), Q.C = !1, le.C = !0, rs(this, le))) : (pe = le.L, pe && pe.C ? (Q.C = pe.C = !1, le.C = !0, y = le) : (y === Q.L && (rs(this, Q), y = Q, Q = y.U), Q.C = !1, le.C = !0, ts(this, le))), Q = y.U;
                    this._.C = !1;
                  },
                  remove: function(y) {
                    y.N && (y.N.P = y.P), y.P && (y.P.N = y.N), y.N = y.P = null;
                    var _ = y.U, Q, le = y.L, pe = y.R, ge, Fe;
                    if (le ? pe ? ge = Uf(pe) : ge = le : ge = pe, _ ? _.L === y ? _.L = ge : _.R = ge : this._ = ge, le && pe ? (Fe = ge.C, ge.C = y.C, ge.L = le, le.U = ge, ge !== pe ? (_ = ge.U, ge.U = y.U, y = ge.R, _.L = y, ge.R = pe, pe.U = ge) : (ge.U = _, _ = ge, y = ge.R)) : (Fe = y.C, y = ge), y && (y.U = _), !Fe) {
                      if (y && y.C) {
                        y.C = !1;
                        return;
                      }
                      do {
                        if (y === this._)
                          break;
                        if (y === _.L) {
                          if (Q = _.R, Q.C && (Q.C = !1, _.C = !0, ts(this, _), Q = _.R), Q.L && Q.L.C || Q.R && Q.R.C) {
                            (!Q.R || !Q.R.C) && (Q.L.C = !1, Q.C = !0, rs(this, Q), Q = _.R), Q.C = _.C, _.C = Q.R.C = !1, ts(this, _), y = this._;
                            break;
                          }
                        } else if (Q = _.L, Q.C && (Q.C = !1, _.C = !0, rs(this, _), Q = _.L), Q.L && Q.L.C || Q.R && Q.R.C) {
                          (!Q.L || !Q.L.C) && (Q.R.C = !1, Q.C = !0, ts(this, Q), Q = _.L), Q.C = _.C, _.C = Q.L.C = !1, rs(this, _), y = this._;
                          break;
                        }
                        Q.C = !0, y = _, _ = _.U;
                      } while (!y.C);
                      y && (y.C = !1);
                    }
                  }
                };
                function ts(y, _) {
                  var Q = _, le = _.R, pe = Q.U;
                  pe ? pe.L === Q ? pe.L = le : pe.R = le : y._ = le, le.U = pe, Q.U = le, Q.R = le.L, Q.R && (Q.R.U = Q), le.L = Q;
                }
                function rs(y, _) {
                  var Q = _, le = _.L, pe = Q.U;
                  pe ? pe.L === Q ? pe.L = le : pe.R = le : y._ = le, le.U = pe, Q.U = le, Q.L = le.R, Q.L && (Q.L.U = Q), le.R = Q;
                }
                function Uf(y) {
                  for (; y.L; )
                    y = y.L;
                  return y;
                }
                function Xu(y, _) {
                  var Q = y.sort(sv).pop(), le, pe, ge;
                  for (qn = [], Rn = new Array(y.length), ea = new Ms(), Kn = new Ms(); ; )
                    if (ge = oa, Q && (!ge || Q.y < ge.y || Q.y === ge.y && Q.x < ge.x))
                      (Q.x !== le || Q.y !== pe) && (Rn[Q.i] = new Fi(Q), pi(Q), le = Q.x, pe = Q.y), Q = y.pop();
                    else if (ge)
                      si(ge.arc);
                    else
                      break;
                  _ && (Zn(_), sl(_));
                  var Fe = {
                    cells: Rn,
                    edges: qn
                  };
                  return ea = Kn = qn = Rn = null, Fe;
                }
                function sv(y, _) {
                  return _.y - y.y || _.x - y.x;
                }
                l.geom.voronoi = function(y) {
                  var _ = Ra, Q = rn, le = _, pe = Q, ge = ju;
                  if (y)
                    return Fe(y);
                  function Fe(_e) {
                    var Qe = new Array(_e.length), Ke = ge[0][0], yt = ge[0][1], gt = ge[1][0], Vt = ge[1][1];
                    return Xu(ke(_e), ge).cells.forEach(function(Pt, ct) {
                      var xt = Pt.edges, Rt = Pt.site, Xt = Qe[ct] = xt.length ? xt.map(function(Kt) {
                        var Bt = Kt.start();
                        return [Bt.x, Bt.y];
                      }) : Rt.x >= Ke && Rt.x <= gt && Rt.y >= yt && Rt.y <= Vt ? [[Ke, Vt], [gt, Vt], [gt, yt], [Ke, yt]] : [];
                      Xt.point = _e[ct];
                    }), Qe;
                  }
                  function ke(_e) {
                    return _e.map(function(Qe, Ke) {
                      return {
                        x: Math.round(le(Qe, Ke) / je) * je,
                        y: Math.round(pe(Qe, Ke) / je) * je,
                        i: Ke
                      };
                    });
                  }
                  return Fe.links = function(_e) {
                    return Xu(ke(_e)).edges.filter(function(Qe) {
                      return Qe.l && Qe.r;
                    }).map(function(Qe) {
                      return {
                        source: _e[Qe.l.i],
                        target: _e[Qe.r.i]
                      };
                    });
                  }, Fe.triangles = function(_e) {
                    var Qe = [];
                    return Xu(ke(_e)).cells.forEach(function(Ke, yt) {
                      for (var gt = Ke.site, Vt = Ke.edges.sort(Ta), Pt = -1, ct = Vt.length, xt, Rt = Vt[ct - 1].edge, Xt = Rt.l === gt ? Rt.r : Rt.l; ++Pt < ct; )
                        xt = Xt, Rt = Vt[Pt].edge, Xt = Rt.l === gt ? Rt.r : Rt.l, yt < xt.i && yt < Xt.i && uv(gt, xt, Xt) < 0 && Qe.push([_e[yt], _e[xt.i], _e[Xt.i]]);
                    }), Qe;
                  }, Fe.x = function(_e) {
                    return arguments.length ? (le = ir(_ = _e), Fe) : _;
                  }, Fe.y = function(_e) {
                    return arguments.length ? (pe = ir(Q = _e), Fe) : Q;
                  }, Fe.clipExtent = function(_e) {
                    return arguments.length ? (ge = _e ?? ju, Fe) : ge === ju ? null : ge;
                  }, Fe.size = function(_e) {
                    return arguments.length ? Fe.clipExtent(_e && [[0, 0], _e]) : ge === ju ? null : ge && ge[1];
                  }, Fe;
                };
                var ju = [[-1e6, -1e6], [1e6, 1e6]];
                function uv(y, _, Q) {
                  return (y.x - Q.x) * (_.y - y.y) - (y.x - _.x) * (Q.y - y.y);
                }
                l.geom.delaunay = function(y) {
                  return l.geom.voronoi().triangles(y);
                }, l.geom.quadtree = function(y, _, Q, le, pe) {
                  var ge = Ra, Fe = rn, ke;
                  if (ke = arguments.length)
                    return ge = nd, Fe = zl, ke === 3 && (pe = Q, le = _, Q = _ = 0), _e(y);
                  function _e(Qe) {
                    var Ke, yt = ir(ge), gt = ir(Fe), Vt, Pt, ct, xt, Rt, Xt, Kt, Bt;
                    if (_ != null)
                      Rt = _, Xt = Q, Kt = le, Bt = pe;
                    else if (Kt = Bt = -(Rt = Xt = 1 / 0), Vt = [], Pt = [], xt = Qe.length, ke)
                      for (ct = 0; ct < xt; ++ct)
                        Ke = Qe[ct], Ke.x < Rt && (Rt = Ke.x), Ke.y < Xt && (Xt = Ke.y), Ke.x > Kt && (Kt = Ke.x), Ke.y > Bt && (Bt = Ke.y), Vt.push(Ke.x), Pt.push(Ke.y);
                    else
                      for (ct = 0; ct < xt; ++ct) {
                        var Ar = +yt(Ke = Qe[ct], ct), Nr = +gt(Ke, ct);
                        Ar < Rt && (Rt = Ar), Nr < Xt && (Xt = Nr), Ar > Kt && (Kt = Ar), Nr > Bt && (Bt = Nr), Vt.push(Ar), Pt.push(Nr);
                      }
                    var Ur = Kt - Rt, qt = Bt - Xt;
                    Ur > qt ? Bt = Xt + Ur : Kt = Rt + qt;
                    function Br(jr, fn, Bn, wa, Jn, _r, Tn, En) {
                      if (!(isNaN(Bn) || isNaN(wa)))
                        if (jr.leaf) {
                          var Qn = jr.x, Sa = jr.y;
                          if (Qn != null)
                            if (g(Qn - Bn) + g(Sa - wa) < 0.01)
                              xr(jr, fn, Bn, wa, Jn, _r, Tn, En);
                            else {
                              var Va = jr.point;
                              jr.x = jr.y = jr.point = null, xr(jr, Va, Qn, Sa, Jn, _r, Tn, En), xr(jr, fn, Bn, wa, Jn, _r, Tn, En);
                            }
                          else
                            jr.x = Bn, jr.y = wa, jr.point = fn;
                        } else
                          xr(jr, fn, Bn, wa, Jn, _r, Tn, En);
                    }
                    function xr(jr, fn, Bn, wa, Jn, _r, Tn, En) {
                      var Qn = (Jn + Tn) * 0.5, Sa = (_r + En) * 0.5, Va = Bn >= Qn, Ga = wa >= Sa, ui = Ga << 1 | Va;
                      jr.leaf = !1, jr = jr.nodes[ui] || (jr.nodes[ui] = fv()), Va ? Jn = Qn : Tn = Qn, Ga ? _r = Sa : En = Sa, Br(jr, fn, Bn, wa, Jn, _r, Tn, En);
                    }
                    var nn = fv();
                    if (nn.add = function(jr) {
                      Br(nn, jr, +yt(jr, ++ct), +gt(jr, ct), Rt, Xt, Kt, Bt);
                    }, nn.visit = function(jr) {
                      Ds(jr, nn, Rt, Xt, Kt, Bt);
                    }, nn.find = function(jr) {
                      return Wf(nn, jr[0], jr[1], Rt, Xt, Kt, Bt);
                    }, ct = -1, _ == null) {
                      for (; ++ct < xt; )
                        Br(nn, Qe[ct], Vt[ct], Pt[ct], Rt, Xt, Kt, Bt);
                      --ct;
                    } else
                      Qe.forEach(nn.add);
                    return Vt = Pt = Qe = Ke = null, nn;
                  }
                  return _e.x = function(Qe) {
                    return arguments.length ? (ge = Qe, _e) : ge;
                  }, _e.y = function(Qe) {
                    return arguments.length ? (Fe = Qe, _e) : Fe;
                  }, _e.extent = function(Qe) {
                    return arguments.length ? (Qe == null ? _ = Q = le = pe = null : (_ = +Qe[0][0], Q = +Qe[0][1], le = +Qe[1][0], pe = +Qe[1][1]), _e) : _ == null ? null : [[_, Q], [le, pe]];
                  }, _e.size = function(Qe) {
                    return arguments.length ? (Qe == null ? _ = Q = le = pe = null : (_ = Q = 0, le = +Qe[0], pe = +Qe[1]), _e) : _ == null ? null : [le - _, pe - Q];
                  }, _e;
                };
                function nd(y) {
                  return y.x;
                }
                function zl(y) {
                  return y.y;
                }
                function fv() {
                  return {
                    leaf: !0,
                    nodes: [],
                    point: null,
                    x: null,
                    y: null
                  };
                }
                function Ds(y, _, Q, le, pe, ge) {
                  if (!y(_, Q, le, pe, ge)) {
                    var Fe = (Q + pe) * 0.5, ke = (le + ge) * 0.5, _e = _.nodes;
                    _e[0] && Ds(y, _e[0], Q, le, Fe, ke), _e[1] && Ds(y, _e[1], Fe, le, pe, ke), _e[2] && Ds(y, _e[2], Q, ke, Fe, ge), _e[3] && Ds(y, _e[3], Fe, ke, pe, ge);
                  }
                }
                function Wf(y, _, Q, le, pe, ge, Fe) {
                  var ke = 1 / 0, _e;
                  return function Qe(Ke, yt, gt, Vt, Pt) {
                    if (!(yt > ge || gt > Fe || Vt < le || Pt < pe)) {
                      if (ct = Ke.point) {
                        var ct, xt = _ - Ke.x, Rt = Q - Ke.y, Xt = xt * xt + Rt * Rt;
                        if (Xt < ke) {
                          var Kt = Math.sqrt(ke = Xt);
                          le = _ - Kt, pe = Q - Kt, ge = _ + Kt, Fe = Q + Kt, _e = ct;
                        }
                      }
                      for (var Bt = Ke.nodes, Ar = (yt + Vt) * 0.5, Nr = (gt + Pt) * 0.5, Ur = _ >= Ar, qt = Q >= Nr, Br = qt << 1 | Ur, xr = Br + 4; Br < xr; ++Br)
                        if (Ke = Bt[Br & 3])
                          switch (Br & 3) {
                            case 0:
                              Qe(Ke, yt, gt, Ar, Nr);
                              break;
                            case 1:
                              Qe(Ke, Ar, gt, Vt, Nr);
                              break;
                            case 2:
                              Qe(Ke, yt, Nr, Ar, Pt);
                              break;
                            case 3:
                              Qe(Ke, Ar, Nr, Vt, Pt);
                              break;
                          }
                    }
                  }(y, le, pe, ge, Fe), _e;
                }
                l.interpolateRgb = Zu;
                function Zu(y, _) {
                  y = l.rgb(y), _ = l.rgb(_);
                  var Q = y.r, le = y.g, pe = y.b, ge = _.r - Q, Fe = _.g - le, ke = _.b - pe;
                  return function(_e) {
                    return "#" + It(Math.round(Q + ge * _e)) + It(Math.round(le + Fe * _e)) + It(Math.round(pe + ke * _e));
                  };
                }
                l.interpolateObject = cv;
                function cv(y, _) {
                  var Q = {}, le = {}, pe;
                  for (pe in y)
                    pe in _ ? Q[pe] = La(y[pe], _[pe]) : le[pe] = y[pe];
                  for (pe in _)
                    pe in y || (le[pe] = _[pe]);
                  return function(ge) {
                    for (pe in Q)
                      le[pe] = Q[pe](ge);
                    return le;
                  };
                }
                l.interpolateNumber = Fo;
                function Fo(y, _) {
                  return y = +y, _ = +_, function(Q) {
                    return y * (1 - Q) + _ * Q;
                  };
                }
                l.interpolateString = ad;
                function ad(y, _) {
                  var Q = zi.lastIndex = Qo.lastIndex = 0, le, pe, ge, Fe = -1, ke = [], _e = [];
                  for (y = y + "", _ = _ + ""; (le = zi.exec(y)) && (pe = Qo.exec(_)); )
                    (ge = pe.index) > Q && (ge = _.slice(Q, ge), ke[Fe] ? ke[Fe] += ge : ke[++Fe] = ge), (le = le[0]) === (pe = pe[0]) ? ke[Fe] ? ke[Fe] += pe : ke[++Fe] = pe : (ke[++Fe] = null, _e.push({
                      i: Fe,
                      x: Fo(le, pe)
                    })), Q = Qo.lastIndex;
                  return Q < _.length && (ge = _.slice(Q), ke[Fe] ? ke[Fe] += ge : ke[++Fe] = ge), ke.length < 2 ? _e[0] ? (_ = _e[0].x, function(Qe) {
                    return _(Qe) + "";
                  }) : function() {
                    return _;
                  } : (_ = _e.length, function(Qe) {
                    for (var Ke = 0, yt; Ke < _; ++Ke)
                      ke[(yt = _e[Ke]).i] = yt.x(Qe);
                    return ke.join("");
                  });
                }
                var zi = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, Qo = new RegExp(zi.source, "g");
                l.interpolate = La;
                function La(y, _) {
                  for (var Q = l.interpolators.length, le; --Q >= 0 && !(le = l.interpolators[Q](y, _)); )
                    ;
                  return le;
                }
                l.interpolators = [function(y, _) {
                  var Q = typeof _;
                  return (Q === "string" ? $t.has(_.toLowerCase()) || /^(#|rgb\(|hsl\()/i.test(_) ? Zu : ad : _ instanceof Rr ? Zu : Array.isArray(_) ? lo : Q === "object" && isNaN(_) ? cv : Fo)(y, _);
                }], l.interpolateArray = lo;
                function lo(y, _) {
                  var Q = [], le = [], pe = y.length, ge = _.length, Fe = Math.min(y.length, _.length), ke;
                  for (ke = 0; ke < Fe; ++ke)
                    Q.push(La(y[ke], _[ke]));
                  for (; ke < pe; ++ke)
                    le[ke] = y[ke];
                  for (; ke < ge; ++ke)
                    le[ke] = _[ke];
                  return function(_e) {
                    for (ke = 0; ke < Fe; ++ke)
                      le[ke] = Q[ke](_e);
                    return le;
                  };
                }
                var ns = function() {
                  return W;
                }, Yf = l.map({
                  linear: ns,
                  poly: op,
                  quad: function() {
                    return Xf;
                  },
                  cubic: function() {
                    return ou;
                  },
                  sin: function() {
                    return vv;
                  },
                  exp: function() {
                    return hv;
                  },
                  circle: function() {
                    return pv;
                  },
                  elastic: $u,
                  back: lu,
                  bounce: function() {
                    return su;
                  }
                }), dv = l.map({
                  in: W,
                  out: id,
                  "in-out": od,
                  "out-in": function(y) {
                    return od(id(y));
                  }
                });
                l.ease = function(y) {
                  var _ = y.indexOf("-"), Q = _ >= 0 ? y.slice(0, _) : y, le = _ >= 0 ? y.slice(_ + 1) : "in";
                  return Q = Yf.get(Q) || ns, le = dv.get(le) || W, iu(le(Q.apply(null, f.call(arguments, 1))));
                };
                function iu(y) {
                  return function(_) {
                    return _ <= 0 ? 0 : _ >= 1 ? 1 : y(_);
                  };
                }
                function id(y) {
                  return function(_) {
                    return 1 - y(1 - _);
                  };
                }
                function od(y) {
                  return function(_) {
                    return 0.5 * (_ < 0.5 ? y(2 * _) : 2 - y(2 - 2 * _));
                  };
                }
                function Xf(y) {
                  return y * y;
                }
                function ou(y) {
                  return y * y * y;
                }
                function ip(y) {
                  if (y <= 0)
                    return 0;
                  if (y >= 1)
                    return 1;
                  var _ = y * y, Q = _ * y;
                  return 4 * (y < 0.5 ? Q : 3 * (y - _) + Q - 0.75);
                }
                function op(y) {
                  return function(_) {
                    return Math.pow(_, y);
                  };
                }
                function vv(y) {
                  return 1 - Math.cos(y * Ze);
                }
                function hv(y) {
                  return Math.pow(2, 10 * (y - 1));
                }
                function pv(y) {
                  return 1 - Math.sqrt(1 - y * y);
                }
                function $u(y, _) {
                  var Q;
                  return arguments.length < 2 && (_ = 0.45), arguments.length ? Q = _ / Pe * Math.asin(1 / y) : (y = 1, Q = _ / 4), function(le) {
                    return 1 + y * Math.pow(2, -10 * le) * Math.sin((le - Q) * Pe / _);
                  };
                }
                function lu(y) {
                  return y || (y = 1.70158), function(_) {
                    return _ * _ * ((y + 1) * _ - y);
                  };
                }
                function su(y) {
                  return y < 0.36363636363636365 ? 7.5625 * y * y : y < 0.7272727272727273 ? 7.5625 * (y -= 0.5454545454545454) * y + 0.75 : y < 0.9090909090909091 ? 7.5625 * (y -= 0.8181818181818182) * y + 0.9375 : 7.5625 * (y -= 0.9545454545454546) * y + 0.984375;
                }
                l.interpolateHcl = uu;
                function uu(y, _) {
                  y = l.hcl(y), _ = l.hcl(_);
                  var Q = y.h, le = y.c, pe = y.l, ge = _.h - Q, Fe = _.c - le, ke = _.l - pe;
                  return isNaN(Fe) && (Fe = 0, le = isNaN(le) ? _.c : le), isNaN(ge) ? (ge = 0, Q = isNaN(Q) ? _.h : Q) : ge > 180 ? ge -= 360 : ge < -180 && (ge += 360), function(_e) {
                    return Er(Q + ge * _e, le + Fe * _e, pe + ke * _e) + "";
                  };
                }
                l.interpolateHsl = mv;
                function mv(y, _) {
                  y = l.hsl(y), _ = l.hsl(_);
                  var Q = y.h, le = y.s, pe = y.l, ge = _.h - Q, Fe = _.s - le, ke = _.l - pe;
                  return isNaN(Fe) && (Fe = 0, le = isNaN(le) ? _.s : le), isNaN(ge) ? (ge = 0, Q = isNaN(Q) ? _.h : Q) : ge > 180 ? ge -= 360 : ge < -180 && (ge += 360), function(_e) {
                    return Gr(Q + ge * _e, le + Fe * _e, pe + ke * _e) + "";
                  };
                }
                l.interpolateLab = ld;
                function ld(y, _) {
                  y = l.lab(y), _ = l.lab(_);
                  var Q = y.l, le = y.a, pe = y.b, ge = _.l - Q, Fe = _.a - le, ke = _.b - pe;
                  return function(_e) {
                    return ue(Q + ge * _e, le + Fe * _e, pe + ke * _e) + "";
                  };
                }
                l.interpolateRound = jf;
                function jf(y, _) {
                  return _ -= y, function(Q) {
                    return Math.round(y + _ * Q);
                  };
                }
                l.transform = function(y) {
                  var _ = c.createElementNS(l.ns.prefix.svg, "g");
                  return (l.transform = function(Q) {
                    if (Q != null) {
                      _.setAttribute("transform", Q);
                      var le = _.transform.baseVal.consolidate();
                    }
                    return new Zf(le ? le.matrix : lp);
                  })(y);
                };
                function Zf(y) {
                  var _ = [y.a, y.b], Q = [y.c, y.d], le = ud(_), pe = sd(_, Q), ge = ud(yv(Q, _, -pe)) || 0;
                  _[0] * Q[1] < Q[0] * _[1] && (_[0] *= -1, _[1] *= -1, le *= -1, pe *= -1), this.rotate = (le ? Math.atan2(_[1], _[0]) : Math.atan2(-Q[0], Q[1])) * tt, this.translate = [y.e, y.f], this.scale = [le, ge], this.skew = ge ? Math.atan2(pe, ge) * tt : 0;
                }
                Zf.prototype.toString = function() {
                  return "translate(" + this.translate + ")rotate(" + this.rotate + ")skewX(" + this.skew + ")scale(" + this.scale + ")";
                };
                function sd(y, _) {
                  return y[0] * _[0] + y[1] * _[1];
                }
                function ud(y) {
                  var _ = Math.sqrt(sd(y, y));
                  return _ && (y[0] /= _, y[1] /= _), _;
                }
                function yv(y, _, Q) {
                  return y[0] += Q * _[0], y[1] += Q * _[1], y;
                }
                var lp = {
                  a: 1,
                  b: 0,
                  c: 0,
                  d: 1,
                  e: 0,
                  f: 0
                };
                l.interpolateTransform = cu;
                function fu(y) {
                  return y.length ? y.pop() + "," : "";
                }
                function sp(y, _, Q, le) {
                  if (y[0] !== _[0] || y[1] !== _[1]) {
                    var pe = Q.push("translate(", null, ",", null, ")");
                    le.push({
                      i: pe - 4,
                      x: Fo(y[0], _[0])
                    }, {
                      i: pe - 2,
                      x: Fo(y[1], _[1])
                    });
                  } else
                    (_[0] || _[1]) && Q.push("translate(" + _ + ")");
                }
                function gv(y, _, Q, le) {
                  y !== _ ? (y - _ > 180 ? _ += 360 : _ - y > 180 && (y += 360), le.push({
                    i: Q.push(fu(Q) + "rotate(", null, ")") - 2,
                    x: Fo(y, _)
                  })) : _ && Q.push(fu(Q) + "rotate(" + _ + ")");
                }
                function up(y, _, Q, le) {
                  y !== _ ? le.push({
                    i: Q.push(fu(Q) + "skewX(", null, ")") - 2,
                    x: Fo(y, _)
                  }) : _ && Q.push(fu(Q) + "skewX(" + _ + ")");
                }
                function zo(y, _, Q, le) {
                  if (y[0] !== _[0] || y[1] !== _[1]) {
                    var pe = Q.push(fu(Q) + "scale(", null, ",", null, ")");
                    le.push({
                      i: pe - 4,
                      x: Fo(y[0], _[0])
                    }, {
                      i: pe - 2,
                      x: Fo(y[1], _[1])
                    });
                  } else
                    (_[0] !== 1 || _[1] !== 1) && Q.push(fu(Q) + "scale(" + _ + ")");
                }
                function cu(y, _) {
                  var Q = [], le = [];
                  return y = l.transform(y), _ = l.transform(_), sp(y.translate, _.translate, Q, le), gv(y.rotate, _.rotate, Q, le), up(y.skew, _.skew, Q, le), zo(y.scale, _.scale, Q, le), y = _ = null, function(pe) {
                    for (var ge = -1, Fe = le.length, ke; ++ge < Fe; )
                      Q[(ke = le[ge]).i] = ke.x(pe);
                    return Q.join("");
                  };
                }
                function bv(y, _) {
                  return _ = (_ -= y = +y) || 1 / _, function(Q) {
                    return (Q - y) / _;
                  };
                }
                function xv(y, _) {
                  return _ = (_ -= y = +y) || 1 / _, function(Q) {
                    return Math.max(0, Math.min(1, (Q - y) / _));
                  };
                }
                l.layout = {}, l.layout.bundle = function() {
                  return function(y) {
                    for (var _ = [], Q = -1, le = y.length; ++Q < le; )
                      _.push(Tv(y[Q]));
                    return _;
                  };
                };
                function Tv(y) {
                  for (var _ = y.source, Q = y.target, le = _l(_, Q), pe = [_]; _ !== le; )
                    _ = _.parent, pe.push(_);
                  for (var ge = pe.length; Q !== le; )
                    pe.splice(ge, 0, Q), Q = Q.parent;
                  return pe;
                }
                function Ju(y) {
                  for (var _ = [], Q = y.parent; Q != null; )
                    _.push(y), y = Q, Q = Q.parent;
                  return _.push(y), _;
                }
                function _l(y, _) {
                  if (y === _)
                    return y;
                  for (var Q = Ju(y), le = Ju(_), pe = Q.pop(), ge = le.pop(), Fe = null; pe === ge; )
                    Fe = pe, pe = Q.pop(), ge = le.pop();
                  return Fe;
                }
                l.layout.chord = function() {
                  var y = {}, _, Q, le, pe, ge = 0, Fe, ke, _e;
                  function Qe() {
                    var yt = {}, gt = [], Vt = l.range(pe), Pt = [], ct, xt, Rt, Xt, Kt;
                    for (_ = [], Q = [], ct = 0, Xt = -1; ++Xt < pe; ) {
                      for (xt = 0, Kt = -1; ++Kt < pe; )
                        xt += le[Xt][Kt];
                      gt.push(xt), Pt.push(l.range(pe)), ct += xt;
                    }
                    for (Fe && Vt.sort(function(nn, jr) {
                      return Fe(gt[nn], gt[jr]);
                    }), ke && Pt.forEach(function(nn, jr) {
                      nn.sort(function(fn, Bn) {
                        return ke(le[jr][fn], le[jr][Bn]);
                      });
                    }), ct = (Pe - ge * pe) / ct, xt = 0, Xt = -1; ++Xt < pe; ) {
                      for (Rt = xt, Kt = -1; ++Kt < pe; ) {
                        var Bt = Vt[Xt], Ar = Pt[Bt][Kt], Nr = le[Bt][Ar], Ur = xt, qt = xt += Nr * ct;
                        yt[Bt + "-" + Ar] = {
                          index: Bt,
                          subindex: Ar,
                          startAngle: Ur,
                          endAngle: qt,
                          value: Nr
                        };
                      }
                      Q[Bt] = {
                        index: Bt,
                        startAngle: Rt,
                        endAngle: xt,
                        value: gt[Bt]
                      }, xt += ge;
                    }
                    for (Xt = -1; ++Xt < pe; )
                      for (Kt = Xt - 1; ++Kt < pe; ) {
                        var Br = yt[Xt + "-" + Kt], xr = yt[Kt + "-" + Xt];
                        (Br.value || xr.value) && _.push(Br.value < xr.value ? {
                          source: xr,
                          target: Br
                        } : {
                          source: Br,
                          target: xr
                        });
                      }
                    _e && Ke();
                  }
                  function Ke() {
                    _.sort(function(yt, gt) {
                      return _e((yt.source.value + yt.target.value) / 2, (gt.source.value + gt.target.value) / 2);
                    });
                  }
                  return y.matrix = function(yt) {
                    return arguments.length ? (pe = (le = yt) && le.length, _ = Q = null, y) : le;
                  }, y.padding = function(yt) {
                    return arguments.length ? (ge = yt, _ = Q = null, y) : ge;
                  }, y.sortGroups = function(yt) {
                    return arguments.length ? (Fe = yt, _ = Q = null, y) : Fe;
                  }, y.sortSubgroups = function(yt) {
                    return arguments.length ? (ke = yt, _ = null, y) : ke;
                  }, y.sortChords = function(yt) {
                    return arguments.length ? (_e = yt, _ && Ke(), y) : _e;
                  }, y.chords = function() {
                    return _ || Qe(), _;
                  }, y.groups = function() {
                    return Q || Qe(), Q;
                  }, y;
                }, l.layout.force = function() {
                  var y = {}, _ = l.dispatch("start", "tick", "end"), Q, le = [1, 1], pe, ge, Fe = 0.9, ke = cd, _e = Av, Qe = -30, Ke = Jf, yt = 0.1, gt = 0.64, Vt = [], Pt = [], ct, xt, Rt;
                  function Xt(Bt) {
                    return function(Ar, Nr, Ur, qt) {
                      if (Ar.point !== Bt) {
                        var Br = Ar.cx - Bt.x, xr = Ar.cy - Bt.y, nn = qt - Nr, jr = Br * Br + xr * xr;
                        if (nn * nn / gt < jr) {
                          if (jr < Ke) {
                            var fn = Ar.charge / jr;
                            Bt.px -= Br * fn, Bt.py -= xr * fn;
                          }
                          return !0;
                        }
                        if (Ar.point && jr && jr < Ke) {
                          var fn = Ar.pointCharge / jr;
                          Bt.px -= Br * fn, Bt.py -= xr * fn;
                        }
                      }
                      return !Ar.charge;
                    };
                  }
                  y.tick = function() {
                    if ((ge *= 0.99) < 5e-3)
                      return Q = null, _.end({
                        type: "end",
                        alpha: ge = 0
                      }), !0;
                    var Bt = Vt.length, Ar = Pt.length, Nr, Ur, qt, Br, xr, nn, jr, fn, Bn;
                    for (Ur = 0; Ur < Ar; ++Ur)
                      qt = Pt[Ur], Br = qt.source, xr = qt.target, fn = xr.x - Br.x, Bn = xr.y - Br.y, (nn = fn * fn + Bn * Bn) && (nn = ge * xt[Ur] * ((nn = Math.sqrt(nn)) - ct[Ur]) / nn, fn *= nn, Bn *= nn, xr.x -= fn * (jr = Br.weight + xr.weight ? Br.weight / (Br.weight + xr.weight) : 0.5), xr.y -= Bn * jr, Br.x += fn * (jr = 1 - jr), Br.y += Bn * jr);
                    if ((jr = ge * yt) && (fn = le[0] / 2, Bn = le[1] / 2, Ur = -1, jr))
                      for (; ++Ur < Bt; )
                        qt = Vt[Ur], qt.x += (fn - qt.x) * jr, qt.y += (Bn - qt.y) * jr;
                    if (Qe)
                      for (du(Nr = l.geom.quadtree(Vt), ge, Rt), Ur = -1; ++Ur < Bt; )
                        (qt = Vt[Ur]).fixed || Nr.visit(Xt(qt));
                    for (Ur = -1; ++Ur < Bt; )
                      qt = Vt[Ur], qt.fixed ? (qt.x = qt.px, qt.y = qt.py) : (qt.x -= (qt.px - (qt.px = qt.x)) * Fe, qt.y -= (qt.py - (qt.py = qt.y)) * Fe);
                    _.tick({
                      type: "tick",
                      alpha: ge
                    });
                  }, y.nodes = function(Bt) {
                    return arguments.length ? (Vt = Bt, y) : Vt;
                  }, y.links = function(Bt) {
                    return arguments.length ? (Pt = Bt, y) : Pt;
                  }, y.size = function(Bt) {
                    return arguments.length ? (le = Bt, y) : le;
                  }, y.linkDistance = function(Bt) {
                    return arguments.length ? (ke = typeof Bt == "function" ? Bt : +Bt, y) : ke;
                  }, y.distance = y.linkDistance, y.linkStrength = function(Bt) {
                    return arguments.length ? (_e = typeof Bt == "function" ? Bt : +Bt, y) : _e;
                  }, y.friction = function(Bt) {
                    return arguments.length ? (Fe = +Bt, y) : Fe;
                  }, y.charge = function(Bt) {
                    return arguments.length ? (Qe = typeof Bt == "function" ? Bt : +Bt, y) : Qe;
                  }, y.chargeDistance = function(Bt) {
                    return arguments.length ? (Ke = Bt * Bt, y) : Math.sqrt(Ke);
                  }, y.gravity = function(Bt) {
                    return arguments.length ? (yt = +Bt, y) : yt;
                  }, y.theta = function(Bt) {
                    return arguments.length ? (gt = Bt * Bt, y) : Math.sqrt(gt);
                  }, y.alpha = function(Bt) {
                    return arguments.length ? (Bt = +Bt, ge ? Bt > 0 ? ge = Bt : (Q.c = null, Q.t = NaN, Q = null, _.end({
                      type: "end",
                      alpha: ge = 0
                    })) : Bt > 0 && (_.start({
                      type: "start",
                      alpha: ge = Bt
                    }), Q = An(y.tick)), y) : ge;
                  }, y.start = function() {
                    var Bt, Ar = Vt.length, Nr = Pt.length, Ur = le[0], qt = le[1], Br, xr;
                    for (Bt = 0; Bt < Ar; ++Bt)
                      (xr = Vt[Bt]).index = Bt, xr.weight = 0;
                    for (Bt = 0; Bt < Nr; ++Bt)
                      xr = Pt[Bt], typeof xr.source == "number" && (xr.source = Vt[xr.source]), typeof xr.target == "number" && (xr.target = Vt[xr.target]), ++xr.source.weight, ++xr.target.weight;
                    for (Bt = 0; Bt < Ar; ++Bt)
                      xr = Vt[Bt], isNaN(xr.x) && (xr.x = nn("x", Ur)), isNaN(xr.y) && (xr.y = nn("y", qt)), isNaN(xr.px) && (xr.px = xr.x), isNaN(xr.py) && (xr.py = xr.y);
                    if (ct = [], typeof ke == "function")
                      for (Bt = 0; Bt < Nr; ++Bt)
                        ct[Bt] = +ke.call(this, Pt[Bt], Bt);
                    else
                      for (Bt = 0; Bt < Nr; ++Bt)
                        ct[Bt] = ke;
                    if (xt = [], typeof _e == "function")
                      for (Bt = 0; Bt < Nr; ++Bt)
                        xt[Bt] = +_e.call(this, Pt[Bt], Bt);
                    else
                      for (Bt = 0; Bt < Nr; ++Bt)
                        xt[Bt] = _e;
                    if (Rt = [], typeof Qe == "function")
                      for (Bt = 0; Bt < Ar; ++Bt)
                        Rt[Bt] = +Qe.call(this, Vt[Bt], Bt);
                    else
                      for (Bt = 0; Bt < Ar; ++Bt)
                        Rt[Bt] = Qe;
                    function nn(jr, fn) {
                      if (!Br) {
                        for (Br = new Array(Ar), Jn = 0; Jn < Ar; ++Jn)
                          Br[Jn] = [];
                        for (Jn = 0; Jn < Nr; ++Jn) {
                          var Bn = Pt[Jn];
                          Br[Bn.source.index].push(Bn.target), Br[Bn.target.index].push(Bn.source);
                        }
                      }
                      for (var wa = Br[Bt], Jn = -1, _r = wa.length, Tn; ++Jn < _r; )
                        if (!isNaN(Tn = wa[Jn][jr]))
                          return Tn;
                      return Math.random() * fn;
                    }
                    return y.resume();
                  }, y.resume = function() {
                    return y.alpha(0.1);
                  }, y.stop = function() {
                    return y.alpha(0);
                  }, y.drag = function() {
                    if (pe || (pe = l.behavior.drag().origin(W).on("dragstart.force", $f).on("drag.force", Kt).on("dragend.force", Cv)), !arguments.length)
                      return pe;
                    this.on("mouseover.force", Ko).on("mouseout.force", fd).call(pe);
                  };
                  function Kt(Bt) {
                    Bt.px = l.event.x, Bt.py = l.event.y, y.resume();
                  }
                  return l.rebind(y, _, "on");
                };
                function $f(y) {
                  y.fixed |= 2;
                }
                function Cv(y) {
                  y.fixed &= -7;
                }
                function Ko(y) {
                  y.fixed |= 4, y.px = y.x, y.py = y.y;
                }
                function fd(y) {
                  y.fixed &= -5;
                }
                function du(y, _, Q) {
                  var le = 0, pe = 0;
                  if (y.charge = 0, !y.leaf)
                    for (var ge = y.nodes, Fe = ge.length, ke = -1, _e; ++ke < Fe; )
                      _e = ge[ke], _e != null && (du(_e, _, Q), y.charge += _e.charge, le += _e.charge * _e.cx, pe += _e.charge * _e.cy);
                  if (y.point) {
                    y.leaf || (y.point.x += Math.random() - 0.5, y.point.y += Math.random() - 0.5);
                    var Qe = _ * Q[y.point.index];
                    y.charge += y.pointCharge = Qe, le += Qe * y.point.x, pe += Qe * y.point.y;
                  }
                  y.cx = le / y.charge, y.cy = pe / y.charge;
                }
                var cd = 20, Av = 1, Jf = 1 / 0;
                l.layout.hierarchy = function() {
                  var y = wv, _ = yi, Q = dd;
                  function le(pe) {
                    var ge = [pe], Fe = [], ke;
                    for (pe.depth = 0; (ke = ge.pop()) != null; )
                      if (Fe.push(ke), (Qe = _.call(le, ke, ke.depth)) && (_e = Qe.length)) {
                        for (var _e, Qe, Ke; --_e >= 0; )
                          ge.push(Ke = Qe[_e]), Ke.parent = ke, Ke.depth = ke.depth + 1;
                        Q && (ke.value = 0), ke.children = Qe;
                      } else
                        Q && (ke.value = +Q.call(le, ke, ke.depth) || 0), delete ke.children;
                    return _o(pe, function(yt) {
                      var gt, Vt;
                      y && (gt = yt.children) && gt.sort(y), Q && (Vt = yt.parent) && (Vt.value += yt.value);
                    }), Fe;
                  }
                  return le.sort = function(pe) {
                    return arguments.length ? (y = pe, le) : y;
                  }, le.children = function(pe) {
                    return arguments.length ? (_ = pe, le) : _;
                  }, le.value = function(pe) {
                    return arguments.length ? (Q = pe, le) : Q;
                  }, le.revalue = function(pe) {
                    return Q && (Rs(pe, function(ge) {
                      ge.children && (ge.value = 0);
                    }), _o(pe, function(ge) {
                      var Fe;
                      ge.children || (ge.value = +Q.call(le, ge, ge.depth) || 0), (Fe = ge.parent) && (Fe.value += ge.value);
                    })), pe;
                  }, le;
                };
                function qo(y, _) {
                  return l.rebind(y, _, "sort", "children", "value"), y.nodes = y, y.links = Sv, y;
                }
                function Rs(y, _) {
                  for (var Q = [y]; (y = Q.pop()) != null; )
                    if (_(y), (pe = y.children) && (le = pe.length))
                      for (var le, pe; --le >= 0; )
                        Q.push(pe[le]);
                }
                function _o(y, _) {
                  for (var Q = [y], le = []; (y = Q.pop()) != null; )
                    if (le.push(y), (Fe = y.children) && (ge = Fe.length))
                      for (var pe = -1, ge, Fe; ++pe < ge; )
                        Q.push(Fe[pe]);
                  for (; (y = le.pop()) != null; )
                    _(y);
                }
                function yi(y) {
                  return y.children;
                }
                function dd(y) {
                  return y.value;
                }
                function wv(y, _) {
                  return _.value - y.value;
                }
                function Sv(y) {
                  return l.merge(y.map(function(_) {
                    return (_.children || []).map(function(Q) {
                      return {
                        source: _,
                        target: Q
                      };
                    });
                  }));
                }
                l.layout.partition = function() {
                  var y = l.layout.hierarchy(), _ = [1, 1];
                  function Q(ge, Fe, ke, _e) {
                    var Qe = ge.children;
                    if (ge.x = Fe, ge.y = ge.depth * _e, ge.dx = ke, ge.dy = _e, Qe && (yt = Qe.length)) {
                      var Ke = -1, yt, gt, Vt;
                      for (ke = ge.value ? ke / ge.value : 0; ++Ke < yt; )
                        Q(gt = Qe[Ke], Fe, Vt = gt.value * ke, _e), Fe += Vt;
                    }
                  }
                  function le(ge) {
                    var Fe = ge.children, ke = 0;
                    if (Fe && (Qe = Fe.length))
                      for (var _e = -1, Qe; ++_e < Qe; )
                        ke = Math.max(ke, le(Fe[_e]));
                    return 1 + ke;
                  }
                  function pe(ge, Fe) {
                    var ke = y.call(this, ge, Fe);
                    return Q(ke[0], 0, _[0], _[1] / le(ke[0])), ke;
                  }
                  return pe.size = function(ge) {
                    return arguments.length ? (_ = ge, pe) : _;
                  }, qo(pe, y);
                }, l.layout.pie = function() {
                  var y = Number, _ = vd, Q = 0, le = Pe, pe = 0;
                  function ge(Fe) {
                    var ke = Fe.length, _e = Fe.map(function(Xt, Kt) {
                      return +y.call(ge, Xt, Kt);
                    }), Qe = +(typeof Q == "function" ? Q.apply(this, arguments) : Q), Ke = (typeof le == "function" ? le.apply(this, arguments) : le) - Qe, yt = Math.min(Math.abs(Ke) / ke, +(typeof pe == "function" ? pe.apply(this, arguments) : pe)), gt = yt * (Ke < 0 ? -1 : 1), Vt = l.sum(_e), Pt = Vt ? (Ke - ke * gt) / Vt : 0, ct = l.range(ke), xt = [], Rt;
                    return _ != null && ct.sort(_ === vd ? function(Xt, Kt) {
                      return _e[Kt] - _e[Xt];
                    } : function(Xt, Kt) {
                      return _(Fe[Xt], Fe[Kt]);
                    }), ct.forEach(function(Xt) {
                      xt[Xt] = {
                        data: Fe[Xt],
                        value: Rt = _e[Xt],
                        startAngle: Qe,
                        endAngle: Qe += Rt * Pt + gt,
                        padAngle: yt
                      };
                    }), xt;
                  }
                  return ge.value = function(Fe) {
                    return arguments.length ? (y = Fe, ge) : y;
                  }, ge.sort = function(Fe) {
                    return arguments.length ? (_ = Fe, ge) : _;
                  }, ge.startAngle = function(Fe) {
                    return arguments.length ? (Q = Fe, ge) : Q;
                  }, ge.endAngle = function(Fe) {
                    return arguments.length ? (le = Fe, ge) : le;
                  }, ge.padAngle = function(Fe) {
                    return arguments.length ? (pe = Fe, ge) : pe;
                  }, ge;
                };
                var vd = {};
                l.layout.stack = function() {
                  var y = W, _ = hd, Q = ks, le = Hl, pe = Mv, ge = Ev;
                  function Fe(ke, _e) {
                    if (!(Pt = ke.length))
                      return ke;
                    var Qe = ke.map(function(Xt, Kt) {
                      return y.call(Fe, Xt, Kt);
                    }), Ke = Qe.map(function(Xt) {
                      return Xt.map(function(Kt, Bt) {
                        return [pe.call(Fe, Kt, Bt), ge.call(Fe, Kt, Bt)];
                      });
                    }), yt = _.call(Fe, Ke, _e);
                    Qe = l.permute(Qe, yt), Ke = l.permute(Ke, yt);
                    var gt = Q.call(Fe, Ke, _e), Vt = Qe[0].length, Pt, ct, xt, Rt;
                    for (xt = 0; xt < Vt; ++xt)
                      for (le.call(Fe, Qe[0][xt], Rt = gt[xt], Ke[0][xt][1]), ct = 1; ct < Pt; ++ct)
                        le.call(Fe, Qe[ct][xt], Rt += Ke[ct - 1][xt][1], Ke[ct][xt][1]);
                    return ke;
                  }
                  return Fe.values = function(ke) {
                    return arguments.length ? (y = ke, Fe) : y;
                  }, Fe.order = function(ke) {
                    return arguments.length ? (_ = typeof ke == "function" ? ke : Qu.get(ke) || hd, Fe) : _;
                  }, Fe.offset = function(ke) {
                    return arguments.length ? (Q = typeof ke == "function" ? ke : Ls.get(ke) || ks, Fe) : Q;
                  }, Fe.x = function(ke) {
                    return arguments.length ? (pe = ke, Fe) : pe;
                  }, Fe.y = function(ke) {
                    return arguments.length ? (ge = ke, Fe) : ge;
                  }, Fe.out = function(ke) {
                    return arguments.length ? (le = ke, Fe) : le;
                  }, Fe;
                };
                function Mv(y) {
                  return y.x;
                }
                function Ev(y) {
                  return y.y;
                }
                function Hl(y, _, Q) {
                  y.y0 = _, y.y = Q;
                }
                var Qu = l.map({
                  "inside-out": function(y) {
                    var _ = y.length, Q, le, pe = y.map(Ku), ge = y.map(fp), Fe = l.range(_).sort(function(yt, gt) {
                      return pe[yt] - pe[gt];
                    }), ke = 0, _e = 0, Qe = [], Ke = [];
                    for (Q = 0; Q < _; ++Q)
                      le = Fe[Q], ke < _e ? (ke += ge[le], Qe.push(le)) : (_e += ge[le], Ke.push(le));
                    return Ke.reverse().concat(Qe);
                  },
                  reverse: function(y) {
                    return l.range(y.length).reverse();
                  },
                  default: hd
                }), Ls = l.map({
                  silhouette: function(y) {
                    var _ = y.length, Q = y[0].length, le = [], pe = 0, ge, Fe, ke, _e = [];
                    for (Fe = 0; Fe < Q; ++Fe) {
                      for (ge = 0, ke = 0; ge < _; ge++)
                        ke += y[ge][Fe][1];
                      ke > pe && (pe = ke), le.push(ke);
                    }
                    for (Fe = 0; Fe < Q; ++Fe)
                      _e[Fe] = (pe - le[Fe]) / 2;
                    return _e;
                  },
                  wiggle: function(y) {
                    var _ = y.length, Q = y[0], le = Q.length, pe, ge, Fe, ke, _e, Qe, Ke, yt, gt, Vt = [];
                    for (Vt[0] = yt = gt = 0, ge = 1; ge < le; ++ge) {
                      for (pe = 0, ke = 0; pe < _; ++pe)
                        ke += y[pe][ge][1];
                      for (pe = 0, _e = 0, Ke = Q[ge][0] - Q[ge - 1][0]; pe < _; ++pe) {
                        for (Fe = 0, Qe = (y[pe][ge][1] - y[pe][ge - 1][1]) / (2 * Ke); Fe < pe; ++Fe)
                          Qe += (y[Fe][ge][1] - y[Fe][ge - 1][1]) / Ke;
                        _e += Qe * y[pe][ge][1];
                      }
                      Vt[ge] = yt -= ke ? _e / ke * Ke : 0, yt < gt && (gt = yt);
                    }
                    for (ge = 0; ge < le; ++ge)
                      Vt[ge] -= gt;
                    return Vt;
                  },
                  expand: function(y) {
                    var _ = y.length, Q = y[0].length, le = 1 / _, pe, ge, Fe, ke = [];
                    for (ge = 0; ge < Q; ++ge) {
                      for (pe = 0, Fe = 0; pe < _; pe++)
                        Fe += y[pe][ge][1];
                      if (Fe)
                        for (pe = 0; pe < _; pe++)
                          y[pe][ge][1] /= Fe;
                      else
                        for (pe = 0; pe < _; pe++)
                          y[pe][ge][1] = le;
                    }
                    for (ge = 0; ge < Q; ++ge)
                      ke[ge] = 0;
                    return ke;
                  },
                  zero: ks
                });
                function hd(y) {
                  return l.range(y.length);
                }
                function ks(y) {
                  for (var _ = -1, Q = y[0].length, le = []; ++_ < Q; )
                    le[_] = 0;
                  return le;
                }
                function Ku(y) {
                  for (var _ = 1, Q = 0, le = y[0][1], pe, ge = y.length; _ < ge; ++_)
                    (pe = y[_][1]) > le && (Q = _, le = pe);
                  return Q;
                }
                function fp(y) {
                  return y.reduce(Dv, 0);
                }
                function Dv(y, _) {
                  return y + _[1];
                }
                l.layout.histogram = function() {
                  var y = !0, _ = Number, Q = as, le = Qf;
                  function pe(ge, gt) {
                    for (var ke = [], _e = ge.map(_, this), Qe = Q.call(this, _e, gt), Ke = le.call(this, Qe, _e, gt), yt, gt = -1, Vt = _e.length, Pt = Ke.length - 1, ct = y ? 1 : 1 / Vt, xt; ++gt < Pt; )
                      yt = ke[gt] = [], yt.dx = Ke[gt + 1] - (yt.x = Ke[gt]), yt.y = 0;
                    if (Pt > 0)
                      for (gt = -1; ++gt < Vt; )
                        xt = _e[gt], xt >= Qe[0] && xt <= Qe[1] && (yt = ke[l.bisect(Ke, xt, 1, Pt) - 1], yt.y += ct, yt.push(ge[gt]));
                    return ke;
                  }
                  return pe.value = function(ge) {
                    return arguments.length ? (_ = ge, pe) : _;
                  }, pe.range = function(ge) {
                    return arguments.length ? (Q = ir(ge), pe) : Q;
                  }, pe.bins = function(ge) {
                    return arguments.length ? (le = typeof ge == "number" ? function(Fe) {
                      return Ca(Fe, ge);
                    } : ir(ge), pe) : le;
                  }, pe.frequency = function(ge) {
                    return arguments.length ? (y = !!ge, pe) : y;
                  }, pe;
                };
                function Qf(y, _) {
                  return Ca(y, Math.ceil(Math.log(_.length) / Math.LN2 + 1));
                }
                function Ca(y, _) {
                  for (var Q = -1, le = +y[0], pe = (y[1] - le) / _, ge = []; ++Q <= _; )
                    ge[Q] = pe * Q + le;
                  return ge;
                }
                function as(y) {
                  return [l.min(y), l.max(y)];
                }
                l.layout.pack = function() {
                  var y = l.layout.hierarchy().sort(Bl), _ = 0, Q = [1, 1], le;
                  function pe(ge, Fe) {
                    var ke = y.call(this, ge, Fe), _e = ke[0], Qe = Q[0], Ke = Q[1], yt = le == null ? Math.sqrt : typeof le == "function" ? le : function() {
                      return le;
                    };
                    if (_e.x = _e.y = 0, _o(_e, function(Vt) {
                      Vt.r = +yt(Vt.value);
                    }), _o(_e, vu), _) {
                      var gt = _ * (le ? 1 : Math.max(2 * _e.r / Qe, 2 * _e.r / Ke)) / 2;
                      _o(_e, function(Vt) {
                        Vt.r += gt;
                      }), _o(_e, vu), _o(_e, function(Vt) {
                        Vt.r -= gt;
                      });
                    }
                    return Kf(_e, Qe / 2, Ke / 2, le ? 1 : 1 / Math.max(2 * _e.r / Qe, 2 * _e.r / Ke)), ke;
                  }
                  return pe.size = function(ge) {
                    return arguments.length ? (Q = ge, pe) : Q;
                  }, pe.radius = function(ge) {
                    return arguments.length ? (le = ge == null || typeof ge == "function" ? ge : +ge, pe) : le;
                  }, pe.padding = function(ge) {
                    return arguments.length ? (_ = +ge, pe) : _;
                  }, qo(pe, y);
                };
                function Bl(y, _) {
                  return y.value - _.value;
                }
                function is(y, _) {
                  var Q = y._pack_next;
                  y._pack_next = _, _._pack_prev = y, _._pack_next = Q, Q._pack_prev = _;
                }
                function pd(y, _) {
                  y._pack_next = _, _._pack_prev = y;
                }
                function qu(y, _) {
                  var Q = _.x - y.x, le = _.y - y.y, pe = y.r + _.r;
                  return 0.999 * pe * pe > Q * Q + le * le;
                }
                function vu(y) {
                  if (!(_ = y.children) || !(gt = _.length))
                    return;
                  var _, Q = 1 / 0, le = -1 / 0, pe = 1 / 0, ge = -1 / 0, Fe, ke, _e, Qe, Ke, yt, gt;
                  function Vt(Bt) {
                    Q = Math.min(Bt.x - Bt.r, Q), le = Math.max(Bt.x + Bt.r, le), pe = Math.min(Bt.y - Bt.r, pe), ge = Math.max(Bt.y + Bt.r, ge);
                  }
                  if (_.forEach(ef), Fe = _[0], Fe.x = -Fe.r, Fe.y = 0, Vt(Fe), gt > 1 && (ke = _[1], ke.x = ke.r, ke.y = 0, Vt(ke), gt > 2))
                    for (_e = _[2], qf(Fe, ke, _e), Vt(_e), is(Fe, _e), Fe._pack_prev = _e, is(_e, ke), ke = Fe._pack_next, Qe = 3; Qe < gt; Qe++) {
                      qf(Fe, ke, _e = _[Qe]);
                      var Pt = 0, ct = 1, xt = 1;
                      for (Ke = ke._pack_next; Ke !== ke; Ke = Ke._pack_next, ct++)
                        if (qu(Ke, _e)) {
                          Pt = 1;
                          break;
                        }
                      if (Pt == 1)
                        for (yt = Fe._pack_prev; yt !== Ke._pack_prev && !qu(yt, _e); yt = yt._pack_prev, xt++)
                          ;
                      Pt ? (ct < xt || ct == xt && ke.r < Fe.r ? pd(Fe, ke = Ke) : pd(Fe = yt, ke), Qe--) : (is(Fe, _e), ke = _e, Vt(_e));
                    }
                  var Rt = (Q + le) / 2, Xt = (pe + ge) / 2, Kt = 0;
                  for (Qe = 0; Qe < gt; Qe++)
                    _e = _[Qe], _e.x -= Rt, _e.y -= Xt, Kt = Math.max(Kt, _e.r + Math.sqrt(_e.x * _e.x + _e.y * _e.y));
                  y.r = Kt, _.forEach(Is);
                }
                function ef(y) {
                  y._pack_next = y._pack_prev = y;
                }
                function Is(y) {
                  delete y._pack_next, delete y._pack_prev;
                }
                function Kf(y, _, Q, le) {
                  var pe = y.children;
                  if (y.x = _ += le * y.x, y.y = Q += le * y.y, y.r *= le, pe)
                    for (var ge = -1, Fe = pe.length; ++ge < Fe; )
                      Kf(pe[ge], _, Q, le);
                }
                function qf(y, _, Q) {
                  var le = y.r + Q.r, pe = _.x - y.x, ge = _.y - y.y;
                  if (le && (pe || ge)) {
                    var Fe = _.r + Q.r, ke = pe * pe + ge * ge;
                    Fe *= Fe, le *= le;
                    var _e = 0.5 + (le - Fe) / (2 * ke), Qe = Math.sqrt(Math.max(0, 2 * Fe * (le + ke) - (le -= ke) * le - Fe * Fe)) / (2 * ke);
                    Q.x = y.x + _e * pe + Qe * ge, Q.y = y.y + _e * ge - Qe * pe;
                  } else
                    Q.x = y.x + le, Q.y = y.y;
                }
                l.layout.tree = function() {
                  var y = l.layout.hierarchy().sort(null).value(null), _ = Rv, Q = [1, 1], le = null;
                  function pe(Ke, yt) {
                    var gt = y.call(this, Ke, yt), Vt = gt[0], Pt = ge(Vt);
                    if (_o(Pt, Fe), Pt.parent.m = -Pt.z, Rs(Pt, ke), le)
                      Rs(Vt, Qe);
                    else {
                      var ct = Vt, xt = Vt, Rt = Vt;
                      Rs(Vt, function(Ar) {
                        Ar.x < ct.x && (ct = Ar), Ar.x > xt.x && (xt = Ar), Ar.depth > Rt.depth && (Rt = Ar);
                      });
                      var Xt = _(ct, xt) / 2 - ct.x, Kt = Q[0] / (xt.x + _(xt, ct) / 2 + Xt), Bt = Q[1] / (Rt.depth || 1);
                      Rs(Vt, function(Ar) {
                        Ar.x = (Ar.x + Xt) * Kt, Ar.y = Ar.depth * Bt;
                      });
                    }
                    return gt;
                  }
                  function ge(Ke) {
                    for (var yt = {
                      A: null,
                      children: [Ke]
                    }, gt = [yt], Vt; (Vt = gt.pop()) != null; )
                      for (var Pt = Vt.children, ct, xt = 0, Rt = Pt.length; xt < Rt; ++xt)
                        gt.push((Pt[xt] = ct = {
                          _: Pt[xt],
                          parent: Vt,
                          children: (ct = Pt[xt].children) && ct.slice() || [],
                          A: null,
                          a: null,
                          z: 0,
                          m: 0,
                          c: 0,
                          s: 0,
                          t: null,
                          i: xt
                        }).a = ct);
                    return yt.children[0];
                  }
                  function Fe(Ke) {
                    var yt = Ke.children, gt = Ke.parent.children, Vt = Ke.i ? gt[Ke.i - 1] : null;
                    if (yt.length) {
                      md(Ke);
                      var Pt = (yt[0].z + yt[yt.length - 1].z) / 2;
                      Vt ? (Ke.z = Vt.z + _(Ke._, Vt._), Ke.m = Ke.z - Pt) : Ke.z = Pt;
                    } else
                      Vt && (Ke.z = Vt.z + _(Ke._, Vt._));
                    Ke.parent.A = _e(Ke, Vt, Ke.parent.A || gt[0]);
                  }
                  function ke(Ke) {
                    Ke._.x = Ke.z + Ke.parent.m, Ke.m += Ke.parent.m;
                  }
                  function _e(Ke, yt, gt) {
                    if (yt) {
                      for (var Vt = Ke, Pt = Ke, ct = yt, xt = Vt.parent.children[0], Rt = Vt.m, Xt = Pt.m, Kt = ct.m, Bt = xt.m, Ar; ct = hu(ct), Vt = tf(Vt), ct && Vt; )
                        xt = tf(xt), Pt = hu(Pt), Pt.a = Ke, Ar = ct.z + Kt - Vt.z - Rt + _(ct._, Vt._), Ar > 0 && (ec(Ns(ct, Ke, gt), Ke, Ar), Rt += Ar, Xt += Ar), Kt += ct.m, Rt += Vt.m, Bt += xt.m, Xt += Pt.m;
                      ct && !hu(Pt) && (Pt.t = ct, Pt.m += Kt - Xt), Vt && !tf(xt) && (xt.t = Vt, xt.m += Rt - Bt, gt = Ke);
                    }
                    return gt;
                  }
                  function Qe(Ke) {
                    Ke.x *= Q[0], Ke.y = Ke.depth * Q[1];
                  }
                  return pe.separation = function(Ke) {
                    return arguments.length ? (_ = Ke, pe) : _;
                  }, pe.size = function(Ke) {
                    return arguments.length ? (le = (Q = Ke) == null ? Qe : null, pe) : le ? null : Q;
                  }, pe.nodeSize = function(Ke) {
                    return arguments.length ? (le = (Q = Ke) == null ? null : Qe, pe) : le ? Q : null;
                  }, qo(pe, y);
                };
                function Rv(y, _) {
                  return y.parent == _.parent ? 1 : 2;
                }
                function tf(y) {
                  var _ = y.children;
                  return _.length ? _[0] : y.t;
                }
                function hu(y) {
                  var _ = y.children, Q;
                  return (Q = _.length) ? _[Q - 1] : y.t;
                }
                function ec(y, _, Q) {
                  var le = Q / (_.i - y.i);
                  _.c -= le, _.s += Q, y.c += le, _.z += Q, _.m += Q;
                }
                function md(y) {
                  for (var _ = 0, Q = 0, le = y.children, pe = le.length, ge; --pe >= 0; )
                    ge = le[pe], ge.z += _, ge.m += _, _ += ge.s + (Q += ge.c);
                }
                function Ns(y, _, Q) {
                  return y.a.parent === _.parent ? y.a : Q;
                }
                l.layout.cluster = function() {
                  var y = l.layout.hierarchy().sort(null).value(null), _ = Rv, Q = [1, 1], le = !1;
                  function pe(ge, Fe) {
                    var ke = y.call(this, ge, Fe), _e = ke[0], Qe, Ke = 0;
                    _o(_e, function(ct) {
                      var xt = ct.children;
                      xt && xt.length ? (ct.x = Os(xt), ct.y = rf(xt)) : (ct.x = Qe ? Ke += _(ct, Qe) : 0, ct.y = 0, Qe = ct);
                    });
                    var yt = yd(_e), gt = tc(_e), Vt = yt.x - _(yt, gt) / 2, Pt = gt.x + _(gt, yt) / 2;
                    return _o(_e, le ? function(ct) {
                      ct.x = (ct.x - _e.x) * Q[0], ct.y = (_e.y - ct.y) * Q[1];
                    } : function(ct) {
                      ct.x = (ct.x - Vt) / (Pt - Vt) * Q[0], ct.y = (1 - (_e.y ? ct.y / _e.y : 1)) * Q[1];
                    }), ke;
                  }
                  return pe.separation = function(ge) {
                    return arguments.length ? (_ = ge, pe) : _;
                  }, pe.size = function(ge) {
                    return arguments.length ? (le = (Q = ge) == null, pe) : le ? null : Q;
                  }, pe.nodeSize = function(ge) {
                    return arguments.length ? (le = (Q = ge) != null, pe) : le ? Q : null;
                  }, qo(pe, y);
                };
                function rf(y) {
                  return 1 + l.max(y, function(_) {
                    return _.y;
                  });
                }
                function Os(y) {
                  return y.reduce(function(_, Q) {
                    return _ + Q.x;
                  }, 0) / y.length;
                }
                function yd(y) {
                  var _ = y.children;
                  return _ && _.length ? yd(_[0]) : y;
                }
                function tc(y) {
                  var _ = y.children, Q;
                  return _ && (Q = _.length) ? tc(_[Q - 1]) : y;
                }
                l.layout.treemap = function() {
                  var y = l.layout.hierarchy(), _ = Math.round, Q = [1, 1], le = null, pe = nf, ge = !1, Fe, ke = "squarify", _e = 0.5 * (1 + Math.sqrt(5));
                  function Qe(ct, xt) {
                    for (var Rt = -1, Xt = ct.length, Kt, Bt; ++Rt < Xt; )
                      Bt = (Kt = ct[Rt]).value * (xt < 0 ? 0 : xt), Kt.area = isNaN(Bt) || Bt <= 0 ? 0 : Bt;
                  }
                  function Ke(ct) {
                    var xt = ct.children;
                    if (xt && xt.length) {
                      var Rt = pe(ct), Xt = [], Kt = xt.slice(), Bt, Ar = 1 / 0, Nr, Ur = ke === "slice" ? Rt.dx : ke === "dice" ? Rt.dy : ke === "slice-dice" ? ct.depth & 1 ? Rt.dy : Rt.dx : Math.min(Rt.dx, Rt.dy), qt;
                      for (Qe(Kt, Rt.dx * Rt.dy / ct.value), Xt.area = 0; (qt = Kt.length) > 0; )
                        Xt.push(Bt = Kt[qt - 1]), Xt.area += Bt.area, ke !== "squarify" || (Nr = gt(Xt, Ur)) <= Ar ? (Kt.pop(), Ar = Nr) : (Xt.area -= Xt.pop().area, Vt(Xt, Ur, Rt, !1), Ur = Math.min(Rt.dx, Rt.dy), Xt.length = Xt.area = 0, Ar = 1 / 0);
                      Xt.length && (Vt(Xt, Ur, Rt, !0), Xt.length = Xt.area = 0), xt.forEach(Ke);
                    }
                  }
                  function yt(ct) {
                    var xt = ct.children;
                    if (xt && xt.length) {
                      var Rt = pe(ct), Xt = xt.slice(), Kt, Bt = [];
                      for (Qe(Xt, Rt.dx * Rt.dy / ct.value), Bt.area = 0; Kt = Xt.pop(); )
                        Bt.push(Kt), Bt.area += Kt.area, Kt.z != null && (Vt(Bt, Kt.z ? Rt.dx : Rt.dy, Rt, !Xt.length), Bt.length = Bt.area = 0);
                      xt.forEach(yt);
                    }
                  }
                  function gt(ct, xt) {
                    for (var Rt = ct.area, Xt, Kt = 0, Bt = 1 / 0, Ar = -1, Nr = ct.length; ++Ar < Nr; )
                      (Xt = ct[Ar].area) && (Xt < Bt && (Bt = Xt), Xt > Kt && (Kt = Xt));
                    return Rt *= Rt, xt *= xt, Rt ? Math.max(xt * Kt * _e / Rt, Rt / (xt * Bt * _e)) : 1 / 0;
                  }
                  function Vt(ct, xt, Rt, Xt) {
                    var Kt = -1, Bt = ct.length, Ar = Rt.x, Nr = Rt.y, Ur = xt ? _(ct.area / xt) : 0, qt;
                    if (xt == Rt.dx) {
                      for ((Xt || Ur > Rt.dy) && (Ur = Rt.dy); ++Kt < Bt; )
                        qt = ct[Kt], qt.x = Ar, qt.y = Nr, qt.dy = Ur, Ar += qt.dx = Math.min(Rt.x + Rt.dx - Ar, Ur ? _(qt.area / Ur) : 0);
                      qt.z = !0, qt.dx += Rt.x + Rt.dx - Ar, Rt.y += Ur, Rt.dy -= Ur;
                    } else {
                      for ((Xt || Ur > Rt.dx) && (Ur = Rt.dx); ++Kt < Bt; )
                        qt = ct[Kt], qt.x = Ar, qt.y = Nr, qt.dx = Ur, Nr += qt.dy = Math.min(Rt.y + Rt.dy - Nr, Ur ? _(qt.area / Ur) : 0);
                      qt.z = !1, qt.dy += Rt.y + Rt.dy - Nr, Rt.x += Ur, Rt.dx -= Ur;
                    }
                  }
                  function Pt(ct) {
                    var xt = Fe || y(ct), Rt = xt[0];
                    return Rt.x = Rt.y = 0, Rt.value ? (Rt.dx = Q[0], Rt.dy = Q[1]) : Rt.dx = Rt.dy = 0, Fe && y.revalue(Rt), Qe([Rt], Rt.dx * Rt.dy / Rt.value), (Fe ? yt : Ke)(Rt), ge && (Fe = xt), xt;
                  }
                  return Pt.size = function(ct) {
                    return arguments.length ? (Q = ct, Pt) : Q;
                  }, Pt.padding = function(ct) {
                    if (!arguments.length)
                      return le;
                    function xt(Kt) {
                      var Bt = ct.call(Pt, Kt, Kt.depth);
                      return Bt == null ? nf(Kt) : Lv(Kt, typeof Bt == "number" ? [Bt, Bt, Bt, Bt] : Bt);
                    }
                    function Rt(Kt) {
                      return Lv(Kt, ct);
                    }
                    var Xt;
                    return pe = (le = ct) == null ? nf : (Xt = typeof ct) == "function" ? xt : (Xt === "number" && (ct = [ct, ct, ct, ct]), Rt), Pt;
                  }, Pt.round = function(ct) {
                    return arguments.length ? (_ = ct ? Math.round : Number, Pt) : _ != Number;
                  }, Pt.sticky = function(ct) {
                    return arguments.length ? (ge = ct, Fe = null, Pt) : ge;
                  }, Pt.ratio = function(ct) {
                    return arguments.length ? (_e = ct, Pt) : _e;
                  }, Pt.mode = function(ct) {
                    return arguments.length ? (ke = ct + "", Pt) : ke;
                  }, qo(Pt, y);
                };
                function nf(y) {
                  return {
                    x: y.x,
                    y: y.y,
                    dx: y.dx,
                    dy: y.dy
                  };
                }
                function Lv(y, _) {
                  var Q = y.x + _[3], le = y.y + _[0], pe = y.dx - _[1] - _[3], ge = y.dy - _[0] - _[2];
                  return pe < 0 && (Q += pe / 2, pe = 0), ge < 0 && (le += ge / 2, ge = 0), {
                    x: Q,
                    y: le,
                    dx: pe,
                    dy: ge
                  };
                }
                l.random = {
                  normal: function(y, _) {
                    var Q = arguments.length;
                    return Q < 2 && (_ = 1), Q < 1 && (y = 0), function() {
                      var le, pe, ge;
                      do
                        le = Math.random() * 2 - 1, pe = Math.random() * 2 - 1, ge = le * le + pe * pe;
                      while (!ge || ge > 1);
                      return y + _ * le * Math.sqrt(-2 * Math.log(ge) / ge);
                    };
                  },
                  logNormal: function() {
                    var y = l.random.normal.apply(l, arguments);
                    return function() {
                      return Math.exp(y());
                    };
                  },
                  bates: function(y) {
                    var _ = l.random.irwinHall(y);
                    return function() {
                      return _() / y;
                    };
                  },
                  irwinHall: function(y) {
                    return function() {
                      for (var _ = 0, Q = 0; Q < y; Q++)
                        _ += Math.random();
                      return _;
                    };
                  }
                }, l.scale = {};
                function el(y) {
                  var _ = y[0], Q = y[y.length - 1];
                  return _ < Q ? [_, Q] : [Q, _];
                }
                function so(y) {
                  return y.rangeExtent ? y.rangeExtent() : el(y.range());
                }
                function af(y, _, Q, le) {
                  var pe = Q(y[0], y[1]), ge = le(_[0], _[1]);
                  return function(Fe) {
                    return ge(pe(Fe));
                  };
                }
                function fl(y, _) {
                  var Q = 0, le = y.length - 1, pe = y[Q], ge = y[le], Fe;
                  return ge < pe && (Fe = Q, Q = le, le = Fe, Fe = pe, pe = ge, ge = Fe), y[Q] = _.floor(pe), y[le] = _.ceil(ge), y;
                }
                function tl(y) {
                  return y ? {
                    floor: function(_) {
                      return Math.floor(_ / y) * y;
                    },
                    ceil: function(_) {
                      return Math.ceil(_ / y) * y;
                    }
                  } : Ps;
                }
                var Ps = {
                  floor: W,
                  ceil: W
                };
                function Vl(y, _, Q, le) {
                  var pe = [], ge = [], Fe = 0, ke = Math.min(y.length, _.length) - 1;
                  for (y[ke] < y[0] && (y = y.slice().reverse(), _ = _.slice().reverse()); ++Fe <= ke; )
                    pe.push(Q(y[Fe - 1], y[Fe])), ge.push(le(_[Fe - 1], _[Fe]));
                  return function(_e) {
                    var Qe = l.bisect(y, _e, 1, ke) - 1;
                    return ge[Qe](pe[Qe](_e));
                  };
                }
                l.scale.linear = function() {
                  return rc([0, 1], [0, 1], La, !1);
                };
                function rc(y, _, Q, le) {
                  var pe, ge;
                  function Fe() {
                    var _e = Math.min(y.length, _.length) > 2 ? Vl : af, Qe = le ? xv : bv;
                    return pe = _e(y, _, Qe, Q), ge = _e(_, y, Qe, La), ke;
                  }
                  function ke(_e) {
                    return pe(_e);
                  }
                  return ke.invert = function(_e) {
                    return ge(_e);
                  }, ke.domain = function(_e) {
                    return arguments.length ? (y = _e.map(Number), Fe()) : y;
                  }, ke.range = function(_e) {
                    return arguments.length ? (_ = _e, Fe()) : _;
                  }, ke.rangeRound = function(_e) {
                    return ke.range(_e).interpolate(jf);
                  }, ke.clamp = function(_e) {
                    return arguments.length ? (le = _e, Fe()) : le;
                  }, ke.interpolate = function(_e) {
                    return arguments.length ? (Q = _e, Fe()) : Q;
                  }, ke.ticks = function(_e) {
                    return Fs(y, _e);
                  }, ke.tickFormat = function(_e, Qe) {
                    return d3_scale_linearTickFormat(y, _e, Qe);
                  }, ke.nice = function(_e) {
                    return nc(y, _e), Fe();
                  }, ke.copy = function() {
                    return rc(y, _, Q, le);
                  }, Fe();
                }
                function kv(y, _) {
                  return l.rebind(y, _, "range", "rangeRound", "interpolate", "clamp");
                }
                function nc(y, _) {
                  return fl(y, tl(uo(y, _)[2])), fl(y, tl(uo(y, _)[2])), y;
                }
                function uo(y, _) {
                  _ == null && (_ = 10);
                  var Q = el(y), le = Q[1] - Q[0], pe = Math.pow(10, Math.floor(Math.log(le / _) / Math.LN10)), ge = _ / le * pe;
                  return ge <= 0.15 ? pe *= 10 : ge <= 0.35 ? pe *= 5 : ge <= 0.75 && (pe *= 2), Q[0] = Math.ceil(Q[0] / pe) * pe, Q[1] = Math.floor(Q[1] / pe) * pe + pe * 0.5, Q[2] = pe, Q;
                }
                function Fs(y, _) {
                  return l.range.apply(l, uo(y, _));
                }
                l.scale.log = function() {
                  return zs(l.scale.linear().domain([0, 1]), 10, !0, [1, 10]);
                };
                function zs(y, _, Q, le) {
                  function pe(ke) {
                    return (Q ? Math.log(ke < 0 ? 0 : ke) : -Math.log(ke > 0 ? 0 : -ke)) / Math.log(_);
                  }
                  function ge(ke) {
                    return Q ? Math.pow(_, ke) : -Math.pow(_, -ke);
                  }
                  function Fe(ke) {
                    return y(pe(ke));
                  }
                  return Fe.invert = function(ke) {
                    return ge(y.invert(ke));
                  }, Fe.domain = function(ke) {
                    return arguments.length ? (Q = ke[0] >= 0, y.domain((le = ke.map(Number)).map(pe)), Fe) : le;
                  }, Fe.base = function(ke) {
                    return arguments.length ? (_ = +ke, y.domain(le.map(pe)), Fe) : _;
                  }, Fe.nice = function() {
                    var ke = fl(le.map(pe), Q ? Math : wn);
                    return y.domain(ke), le = ke.map(ge), Fe;
                  }, Fe.ticks = function() {
                    var ke = el(le), _e = [], Qe = ke[0], Ke = ke[1], yt = Math.floor(pe(Qe)), gt = Math.ceil(pe(Ke)), Vt = _ % 1 ? 2 : _;
                    if (isFinite(gt - yt)) {
                      if (Q) {
                        for (; yt < gt; yt++)
                          for (var Pt = 1; Pt < Vt; Pt++)
                            _e.push(ge(yt) * Pt);
                        _e.push(ge(yt));
                      } else
                        for (_e.push(ge(yt)); yt++ < gt; )
                          for (var Pt = Vt - 1; Pt > 0; Pt--)
                            _e.push(ge(yt) * Pt);
                      for (yt = 0; _e[yt] < Qe; yt++)
                        ;
                      for (gt = _e.length; _e[gt - 1] > Ke; gt--)
                        ;
                      _e = _e.slice(yt, gt);
                    }
                    return _e;
                  }, Fe.copy = function() {
                    return zs(y.copy(), _, Q, le);
                  }, kv(Fe, y);
                }
                var wn = {
                  floor: function(y) {
                    return -Math.ceil(-y);
                  },
                  ceil: function(y) {
                    return -Math.floor(-y);
                  }
                };
                l.scale.pow = function() {
                  return Gl(l.scale.linear(), 1, [0, 1]);
                };
                function Gl(y, _, Q) {
                  var le = Aa(_), pe = Aa(1 / _);
                  function ge(Fe) {
                    return y(le(Fe));
                  }
                  return ge.invert = function(Fe) {
                    return pe(y.invert(Fe));
                  }, ge.domain = function(Fe) {
                    return arguments.length ? (y.domain((Q = Fe.map(Number)).map(le)), ge) : Q;
                  }, ge.ticks = function(Fe) {
                    return Fs(Q, Fe);
                  }, ge.tickFormat = function(Fe, ke) {
                    return d3_scale_linearTickFormat(Q, Fe, ke);
                  }, ge.nice = function(Fe) {
                    return ge.domain(nc(Q, Fe));
                  }, ge.exponent = function(Fe) {
                    return arguments.length ? (le = Aa(_ = Fe), pe = Aa(1 / _), y.domain(Q.map(le)), ge) : _;
                  }, ge.copy = function() {
                    return Gl(y.copy(), _, Q);
                  }, kv(ge, y);
                }
                function Aa(y) {
                  return function(_) {
                    return _ < 0 ? -Math.pow(-_, y) : Math.pow(_, y);
                  };
                }
                l.scale.sqrt = function() {
                  return l.scale.pow().exponent(0.5);
                }, l.scale.ordinal = function() {
                  return Wn([], {
                    t: "range",
                    a: [[]]
                  });
                };
                function Wn(y, _) {
                  var Q, le, pe;
                  function ge(ke) {
                    return le[((Q.get(ke) || (_.t === "range" ? Q.set(ke, y.push(ke)) : NaN)) - 1) % le.length];
                  }
                  function Fe(ke, _e) {
                    return l.range(y.length).map(function(Qe) {
                      return ke + _e * Qe;
                    });
                  }
                  return ge.domain = function(ke) {
                    if (!arguments.length)
                      return y;
                    y = [], Q = new $();
                    for (var _e = -1, Qe = ke.length, Ke; ++_e < Qe; )
                      Q.has(Ke = ke[_e]) || Q.set(Ke, y.push(Ke));
                    return ge[_.t].apply(ge, _.a);
                  }, ge.range = function(ke) {
                    return arguments.length ? (le = ke, pe = 0, _ = {
                      t: "range",
                      a: arguments
                    }, ge) : le;
                  }, ge.rangePoints = function(ke, _e) {
                    arguments.length < 2 && (_e = 0);
                    var Qe = ke[0], Ke = ke[1], yt = y.length < 2 ? (Qe = (Qe + Ke) / 2, 0) : (Ke - Qe) / (y.length - 1 + _e);
                    return le = Fe(Qe + yt * _e / 2, yt), pe = 0, _ = {
                      t: "rangePoints",
                      a: arguments
                    }, ge;
                  }, ge.rangeRoundPoints = function(ke, _e) {
                    arguments.length < 2 && (_e = 0);
                    var Qe = ke[0], Ke = ke[1], yt = y.length < 2 ? (Qe = Ke = Math.round((Qe + Ke) / 2), 0) : (Ke - Qe) / (y.length - 1 + _e) | 0;
                    return le = Fe(Qe + Math.round(yt * _e / 2 + (Ke - Qe - (y.length - 1 + _e) * yt) / 2), yt), pe = 0, _ = {
                      t: "rangeRoundPoints",
                      a: arguments
                    }, ge;
                  }, ge.rangeBands = function(ke, _e, Qe) {
                    arguments.length < 2 && (_e = 0), arguments.length < 3 && (Qe = _e);
                    var Ke = ke[1] < ke[0], yt = ke[Ke - 0], gt = ke[1 - Ke], Vt = (gt - yt) / (y.length - _e + 2 * Qe);
                    return le = Fe(yt + Vt * Qe, Vt), Ke && le.reverse(), pe = Vt * (1 - _e), _ = {
                      t: "rangeBands",
                      a: arguments
                    }, ge;
                  }, ge.rangeRoundBands = function(ke, _e, Qe) {
                    arguments.length < 2 && (_e = 0), arguments.length < 3 && (Qe = _e);
                    var Ke = ke[1] < ke[0], yt = ke[Ke - 0], gt = ke[1 - Ke], Vt = Math.floor((gt - yt) / (y.length - _e + 2 * Qe));
                    return le = Fe(yt + Math.round((gt - yt - (y.length - _e) * Vt) / 2), Vt), Ke && le.reverse(), pe = Math.round(Vt * (1 - _e)), _ = {
                      t: "rangeRoundBands",
                      a: arguments
                    }, ge;
                  }, ge.rangeBand = function() {
                    return pe;
                  }, ge.rangeExtent = function() {
                    return el(_.a[0]);
                  }, ge.copy = function() {
                    return Wn(y, _);
                  }, ge.domain(y);
                }
                l.scale.category10 = function() {
                  return l.scale.ordinal().range(va);
                }, l.scale.category20 = function() {
                  return l.scale.ordinal().range(ha);
                }, l.scale.category20b = function() {
                  return l.scale.ordinal().range(cl);
                }, l.scale.category20c = function() {
                  return l.scale.ordinal().range(Hn);
                };
                var va = [2062260, 16744206, 2924588, 14034728, 9725885, 9197131, 14907330, 8355711, 12369186, 1556175].map(ht), ha = [2062260, 11454440, 16744206, 16759672, 2924588, 10018698, 14034728, 16750742, 9725885, 12955861, 9197131, 12885140, 14907330, 16234194, 8355711, 13092807, 12369186, 14408589, 1556175, 10410725].map(ht), cl = [3750777, 5395619, 7040719, 10264286, 6519097, 9216594, 11915115, 13556636, 9202993, 12426809, 15186514, 15190932, 8666169, 11356490, 14049643, 15177372, 8077683, 10834324, 13528509, 14589654].map(ht), Hn = [3244733, 7057110, 10406625, 13032431, 15095053, 16616764, 16625259, 16634018, 3253076, 7652470, 10607003, 13101504, 7695281, 10394312, 12369372, 14342891, 6513507, 9868950, 12434877, 14277081].map(ht);
                l.scale.quantile = function() {
                  return Xa([], []);
                };
                function Xa(y, _) {
                  var Q;
                  function le() {
                    var ge = 0, Fe = _.length;
                    for (Q = []; ++ge < Fe; )
                      Q[ge - 1] = l.quantile(y, ge / Fe);
                    return pe;
                  }
                  function pe(ge) {
                    if (!isNaN(ge = +ge))
                      return _[l.bisect(Q, ge)];
                  }
                  return pe.domain = function(ge) {
                    return arguments.length ? (y = ge.map(S).filter(T).sort(w), le()) : y;
                  }, pe.range = function(ge) {
                    return arguments.length ? (_ = ge, le()) : _;
                  }, pe.quantiles = function() {
                    return Q;
                  }, pe.invertExtent = function(ge) {
                    return ge = _.indexOf(ge), ge < 0 ? [NaN, NaN] : [ge > 0 ? Q[ge - 1] : y[0], ge < Q.length ? Q[ge] : y[y.length - 1]];
                  }, pe.copy = function() {
                    return Xa(y, _);
                  }, le();
                }
                l.scale.quantize = function() {
                  return Zi(0, 1, [0, 1]);
                };
                function Zi(y, _, Q) {
                  var le, pe;
                  function ge(ke) {
                    return Q[Math.max(0, Math.min(pe, Math.floor(le * (ke - y))))];
                  }
                  function Fe() {
                    return le = Q.length / (_ - y), pe = Q.length - 1, ge;
                  }
                  return ge.domain = function(ke) {
                    return arguments.length ? (y = +ke[0], _ = +ke[ke.length - 1], Fe()) : [y, _];
                  }, ge.range = function(ke) {
                    return arguments.length ? (Q = ke, Fe()) : Q;
                  }, ge.invertExtent = function(ke) {
                    return ke = Q.indexOf(ke), ke = ke < 0 ? NaN : ke / le + y, [ke, ke + 1 / le];
                  }, ge.copy = function() {
                    return Zi(y, _, Q);
                  }, Fe();
                }
                l.scale.threshold = function() {
                  return go([0.5], [0, 1]);
                };
                function go(y, _) {
                  function Q(le) {
                    if (le <= le)
                      return _[l.bisect(y, le)];
                  }
                  return Q.domain = function(le) {
                    return arguments.length ? (y = le, Q) : y;
                  }, Q.range = function(le) {
                    return arguments.length ? (_ = le, Q) : _;
                  }, Q.invertExtent = function(le) {
                    return le = _.indexOf(le), [y[le - 1], y[le]];
                  }, Q.copy = function() {
                    return go(y, _);
                  }, Q;
                }
                l.scale.identity = function() {
                  return za([0, 1]);
                };
                function za(y) {
                  function _(Q) {
                    return +Q;
                  }
                  return _.invert = _, _.domain = _.range = function(Q) {
                    return arguments.length ? (y = Q.map(_), _) : y;
                  }, _.ticks = function(Q) {
                    return Fs(y, Q);
                  }, _.tickFormat = function(Q, le) {
                    return d3_scale_linearTickFormat(y, Q, le);
                  }, _.copy = function() {
                    return za(y);
                  }, _;
                }
                l.svg = {};
                function Ho() {
                  return 0;
                }
                l.svg.arc = function() {
                  var y = of, _ = ac, Q = Ho, le = rl, pe = gd, ge = fo, Fe = gi;
                  function ke() {
                    var Qe = Math.max(0, +y.apply(this, arguments)), Ke = Math.max(0, +_.apply(this, arguments)), yt = pe.apply(this, arguments) - Ze, gt = ge.apply(this, arguments) - Ze, Vt = Math.abs(gt - yt), Pt = yt > gt ? 0 : 1;
                    if (Ke < Qe && (ct = Ke, Ke = Qe, Qe = ct), Vt >= Ye)
                      return _e(Ke, Pt) + (Qe ? _e(Qe, 1 - Pt) : "") + "Z";
                    var ct, xt, Rt, Xt, Kt = 0, Bt = 0, Ar, Nr, Ur, qt, Br, xr, nn, jr, fn = [];
                    if ((Xt = (+Fe.apply(this, arguments) || 0) / 2) && (Rt = le === rl ? Math.sqrt(Qe * Qe + Ke * Ke) : +le.apply(this, arguments), Pt || (Bt *= -1), Ke && (Bt = Dt(Rt / Ke * Math.sin(Xt))), Qe && (Kt = Dt(Rt / Qe * Math.sin(Xt)))), Ke) {
                      Ar = Ke * Math.cos(yt + Bt), Nr = Ke * Math.sin(yt + Bt), Ur = Ke * Math.cos(gt - Bt), qt = Ke * Math.sin(gt - Bt);
                      var Bn = Math.abs(gt - yt - 2 * Bt) <= Se ? 0 : 1;
                      if (Bt && os(Ar, Nr, Ur, qt) === Pt ^ Bn) {
                        var wa = (yt + gt) / 2;
                        Ar = Ke * Math.cos(wa), Nr = Ke * Math.sin(wa), Ur = qt = null;
                      }
                    } else
                      Ar = Nr = 0;
                    if (Qe) {
                      Br = Qe * Math.cos(gt - Kt), xr = Qe * Math.sin(gt - Kt), nn = Qe * Math.cos(yt + Kt), jr = Qe * Math.sin(yt + Kt);
                      var Jn = Math.abs(yt - gt + 2 * Kt) <= Se ? 0 : 1;
                      if (Kt && os(Br, xr, nn, jr) === 1 - Pt ^ Jn) {
                        var _r = (yt + gt) / 2;
                        Br = Qe * Math.cos(_r), xr = Qe * Math.sin(_r), nn = jr = null;
                      }
                    } else
                      Br = xr = 0;
                    if (Vt > je && (ct = Math.min(Math.abs(Ke - Qe) / 2, +Q.apply(this, arguments))) > 1e-3) {
                      xt = Qe < Ke ^ Pt ? 0 : 1;
                      var Tn = ct, En = ct;
                      if (Vt < Se) {
                        var Qn = nn == null ? [Br, xr] : Ur == null ? [Ar, Nr] : Fn([Ar, Nr], [nn, jr], [Ur, qt], [Br, xr]), Sa = Ar - Qn[0], Va = Nr - Qn[1], Ga = Ur - Qn[0], ui = qt - Qn[1], ai = 1 / Math.sin(Math.acos((Sa * Ga + Va * ui) / (Math.sqrt(Sa * Sa + Va * Va) * Math.sqrt(Ga * Ga + ui * ui))) / 2), Ka = Math.sqrt(Qn[0] * Qn[0] + Qn[1] * Qn[1]);
                        En = Math.min(ct, (Qe - Ka) / (ai - 1)), Tn = Math.min(ct, (Ke - Ka) / (ai + 1));
                      }
                      if (Ur != null) {
                        var Ei = pu(nn == null ? [Br, xr] : [nn, jr], [Ar, Nr], Ke, Tn, Pt), qa = pu([Ur, qt], [Br, xr], Ke, Tn, Pt);
                        ct === Tn ? fn.push("M", Ei[0], "A", Tn, ",", Tn, " 0 0,", xt, " ", Ei[1], "A", Ke, ",", Ke, " 0 ", 1 - Pt ^ os(Ei[1][0], Ei[1][1], qa[1][0], qa[1][1]), ",", Pt, " ", qa[1], "A", Tn, ",", Tn, " 0 0,", xt, " ", qa[0]) : fn.push("M", Ei[0], "A", Tn, ",", Tn, " 0 1,", xt, " ", qa[0]);
                      } else
                        fn.push("M", Ar, ",", Nr);
                      if (nn != null) {
                        var Di = pu([Ar, Nr], [nn, jr], Qe, -En, Pt), ml = pu([Br, xr], Ur == null ? [Ar, Nr] : [Ur, qt], Qe, -En, Pt);
                        ct === En ? fn.push("L", ml[0], "A", En, ",", En, " 0 0,", xt, " ", ml[1], "A", Qe, ",", Qe, " 0 ", Pt ^ os(ml[1][0], ml[1][1], Di[1][0], Di[1][1]), ",", 1 - Pt, " ", Di[1], "A", En, ",", En, " 0 0,", xt, " ", Di[0]) : fn.push("L", ml[0], "A", En, ",", En, " 0 0,", xt, " ", Di[0]);
                      } else
                        fn.push("L", Br, ",", xr);
                    } else
                      fn.push("M", Ar, ",", Nr), Ur != null && fn.push("A", Ke, ",", Ke, " 0 ", Bn, ",", Pt, " ", Ur, ",", qt), fn.push("L", Br, ",", xr), nn != null && fn.push("A", Qe, ",", Qe, " 0 ", Jn, ",", 1 - Pt, " ", nn, ",", jr);
                    return fn.push("Z"), fn.join("");
                  }
                  function _e(Qe, Ke) {
                    return "M0," + Qe + "A" + Qe + "," + Qe + " 0 1," + Ke + " 0," + -Qe + "A" + Qe + "," + Qe + " 0 1," + Ke + " 0," + Qe;
                  }
                  return ke.innerRadius = function(Qe) {
                    return arguments.length ? (y = ir(Qe), ke) : y;
                  }, ke.outerRadius = function(Qe) {
                    return arguments.length ? (_ = ir(Qe), ke) : _;
                  }, ke.cornerRadius = function(Qe) {
                    return arguments.length ? (Q = ir(Qe), ke) : Q;
                  }, ke.padRadius = function(Qe) {
                    return arguments.length ? (le = Qe == rl ? rl : ir(Qe), ke) : le;
                  }, ke.startAngle = function(Qe) {
                    return arguments.length ? (pe = ir(Qe), ke) : pe;
                  }, ke.endAngle = function(Qe) {
                    return arguments.length ? (ge = ir(Qe), ke) : ge;
                  }, ke.padAngle = function(Qe) {
                    return arguments.length ? (Fe = ir(Qe), ke) : Fe;
                  }, ke.centroid = function() {
                    var Qe = (+y.apply(this, arguments) + +_.apply(this, arguments)) / 2, Ke = (+pe.apply(this, arguments) + +ge.apply(this, arguments)) / 2 - Ze;
                    return [Math.cos(Ke) * Qe, Math.sin(Ke) * Qe];
                  }, ke;
                };
                var rl = "auto";
                function of(y) {
                  return y.innerRadius;
                }
                function ac(y) {
                  return y.outerRadius;
                }
                function gd(y) {
                  return y.startAngle;
                }
                function fo(y) {
                  return y.endAngle;
                }
                function gi(y) {
                  return y && y.padAngle;
                }
                function os(y, _, Q, le) {
                  return (y - Q) * _ - (_ - le) * y > 0 ? 0 : 1;
                }
                function pu(y, _, Q, le, pe) {
                  var ge = y[0] - _[0], Fe = y[1] - _[1], ke = (pe ? le : -le) / Math.sqrt(ge * ge + Fe * Fe), _e = ke * Fe, Qe = -ke * ge, Ke = y[0] + _e, yt = y[1] + Qe, gt = _[0] + _e, Vt = _[1] + Qe, Pt = (Ke + gt) / 2, ct = (yt + Vt) / 2, xt = gt - Ke, Rt = Vt - yt, Xt = xt * xt + Rt * Rt, Kt = Q - le, Bt = Ke * Vt - gt * yt, Ar = (Rt < 0 ? -1 : 1) * Math.sqrt(Math.max(0, Kt * Kt * Xt - Bt * Bt)), Nr = (Bt * Rt - xt * Ar) / Xt, Ur = (-Bt * xt - Rt * Ar) / Xt, qt = (Bt * Rt + xt * Ar) / Xt, Br = (-Bt * xt + Rt * Ar) / Xt, xr = Nr - Pt, nn = Ur - ct, jr = qt - Pt, fn = Br - ct;
                  return xr * xr + nn * nn > jr * jr + fn * fn && (Nr = qt, Ur = Br), [[Nr - _e, Ur - Qe], [Nr * Q / Kt, Ur * Q / Kt]];
                }
                function ic() {
                  return !0;
                }
                function $i(y) {
                  var _ = Ra, Q = rn, le = ic, pe = Ha, ge = pe.key, Fe = 0.7;
                  function ke(_e) {
                    var Qe = [], Ke = [], yt = -1, gt = _e.length, Vt, Pt = ir(_), ct = ir(Q);
                    function xt() {
                      Qe.push("M", pe(y(Ke), Fe));
                    }
                    for (; ++yt < gt; )
                      le.call(this, Vt = _e[yt], yt) ? Ke.push([+Pt.call(this, Vt, yt), +ct.call(this, Vt, yt)]) : Ke.length && (xt(), Ke = []);
                    return Ke.length && xt(), Qe.length ? Qe.join("") : null;
                  }
                  return ke.x = function(_e) {
                    return arguments.length ? (_ = _e, ke) : _;
                  }, ke.y = function(_e) {
                    return arguments.length ? (Q = _e, ke) : Q;
                  }, ke.defined = function(_e) {
                    return arguments.length ? (le = _e, ke) : le;
                  }, ke.interpolate = function(_e) {
                    return arguments.length ? (typeof _e == "function" ? ge = pe = _e : ge = (pe = dl.get(_e) || Ha).key, ke) : ge;
                  }, ke.tension = function(_e) {
                    return arguments.length ? (Fe = _e, ke) : Fe;
                  }, ke;
                }
                l.svg.line = function() {
                  return $i(W);
                };
                var dl = l.map({
                  linear: Ha,
                  "linear-closed": ls,
                  step: mu,
                  "step-before": _i,
                  "step-after": bi,
                  basis: sf,
                  "basis-open": bd,
                  "basis-closed": bo,
                  bundle: co,
                  cardinal: Ul,
                  "cardinal-open": Bo,
                  "cardinal-closed": Mi,
                  monotone: Nv
                });
                dl.forEach(function(y, _) {
                  _.key = y, _.closed = /-closed$/.test(y);
                });
                function Ha(y) {
                  return y.length > 1 ? y.join("L") : y + "Z";
                }
                function ls(y) {
                  return y.join("L") + "Z";
                }
                function mu(y) {
                  for (var _ = 0, Q = y.length, le = y[0], pe = [le[0], ",", le[1]]; ++_ < Q; )
                    pe.push("H", (le[0] + (le = y[_])[0]) / 2, "V", le[1]);
                  return Q > 1 && pe.push("H", le[0]), pe.join("");
                }
                function _i(y) {
                  for (var _ = 0, Q = y.length, le = y[0], pe = [le[0], ",", le[1]]; ++_ < Q; )
                    pe.push("V", (le = y[_])[1], "H", le[0]);
                  return pe.join("");
                }
                function bi(y) {
                  for (var _ = 0, Q = y.length, le = y[0], pe = [le[0], ",", le[1]]; ++_ < Q; )
                    pe.push("H", (le = y[_])[0], "V", le[1]);
                  return pe.join("");
                }
                function Bo(y, _) {
                  return y.length < 4 ? Ha(y) : y[1] + Hi(y.slice(1, -1), lf(y, _));
                }
                function Mi(y, _) {
                  return y.length < 3 ? ls(y) : y[0] + Hi((y.push(y[0]), y), lf([y[y.length - 2]].concat(y, [y[1]]), _));
                }
                function Ul(y, _) {
                  return y.length < 3 ? Ha(y) : y[0] + Hi(y, lf(y, _));
                }
                function Hi(y, _) {
                  if (_.length < 1 || y.length != _.length && y.length != _.length + 2)
                    return Ha(y);
                  var Q = y.length != _.length, le = "", pe = y[0], ge = y[1], Fe = _[0], ke = Fe, _e = 1;
                  if (Q && (le += "Q" + (ge[0] - Fe[0] * 2 / 3) + "," + (ge[1] - Fe[1] * 2 / 3) + "," + ge[0] + "," + ge[1], pe = y[1], _e = 2), _.length > 1) {
                    ke = _[1], ge = y[_e], _e++, le += "C" + (pe[0] + Fe[0]) + "," + (pe[1] + Fe[1]) + "," + (ge[0] - ke[0]) + "," + (ge[1] - ke[1]) + "," + ge[0] + "," + ge[1];
                    for (var Qe = 2; Qe < _.length; Qe++, _e++)
                      ge = y[_e], ke = _[Qe], le += "S" + (ge[0] - ke[0]) + "," + (ge[1] - ke[1]) + "," + ge[0] + "," + ge[1];
                  }
                  if (Q) {
                    var Ke = y[_e];
                    le += "Q" + (ge[0] + ke[0] * 2 / 3) + "," + (ge[1] + ke[1] * 2 / 3) + "," + Ke[0] + "," + Ke[1];
                  }
                  return le;
                }
                function lf(y, _) {
                  for (var Q = [], le = (1 - _) / 2, pe, ge = y[0], Fe = y[1], ke = 1, _e = y.length; ++ke < _e; )
                    pe = ge, ge = Fe, Fe = y[ke], Q.push([le * (Fe[0] - pe[0]), le * (Fe[1] - pe[1])]);
                  return Q;
                }
                function sf(y) {
                  if (y.length < 3)
                    return Ha(y);
                  var _ = 1, Q = y.length, le = y[0], pe = le[0], ge = le[1], Fe = [pe, pe, pe, (le = y[1])[0]], ke = [ge, ge, ge, le[1]], _e = [pe, ",", ge, "L", ra(Wl, Fe), ",", ra(Wl, ke)];
                  for (y.push(y[Q - 1]); ++_ <= Q; )
                    le = y[_], Fe.shift(), Fe.push(le[0]), ke.shift(), ke.push(le[1]), yu(_e, Fe, ke);
                  return y.pop(), _e.push("L", le), _e.join("");
                }
                function bd(y) {
                  if (y.length < 4)
                    return Ha(y);
                  for (var _ = [], Q = -1, le = y.length, pe, ge = [0], Fe = [0]; ++Q < 3; )
                    pe = y[Q], ge.push(pe[0]), Fe.push(pe[1]);
                  for (_.push(ra(Wl, ge) + "," + ra(Wl, Fe)), --Q; ++Q < le; )
                    pe = y[Q], ge.shift(), ge.push(pe[0]), Fe.shift(), Fe.push(pe[1]), yu(_, ge, Fe);
                  return _.join("");
                }
                function bo(y) {
                  for (var _, Q = -1, le = y.length, pe = le + 4, ge, Fe = [], ke = []; ++Q < 4; )
                    ge = y[Q % le], Fe.push(ge[0]), ke.push(ge[1]);
                  for (_ = [ra(Wl, Fe), ",", ra(Wl, ke)], --Q; ++Q < pe; )
                    ge = y[Q % le], Fe.shift(), Fe.push(ge[0]), ke.shift(), ke.push(ge[1]), yu(_, Fe, ke);
                  return _.join("");
                }
                function co(y, _) {
                  var Q = y.length - 1;
                  if (Q)
                    for (var le = y[0][0], pe = y[0][1], ge = y[Q][0] - le, Fe = y[Q][1] - pe, ke = -1, _e, Qe; ++ke <= Q; )
                      _e = y[ke], Qe = ke / Q, _e[0] = _ * _e[0] + (1 - _) * (le + Qe * ge), _e[1] = _ * _e[1] + (1 - _) * (pe + Qe * Fe);
                  return sf(y);
                }
                function ra(y, _) {
                  return y[0] * _[0] + y[1] * _[1] + y[2] * _[2] + y[3] * _[3];
                }
                var xo = [0, 2 / 3, 1 / 3, 0], oc = [0, 1 / 3, 2 / 3, 0], Wl = [0, 1 / 6, 2 / 3, 1 / 6];
                function yu(y, _, Q) {
                  y.push("C", ra(xo, _), ",", ra(xo, Q), ",", ra(oc, _), ",", ra(oc, Q), ",", ra(Wl, _), ",", ra(Wl, Q));
                }
                function gu(y, _) {
                  return (_[1] - y[1]) / (_[0] - y[0]);
                }
                function Iv(y) {
                  for (var _ = 0, Q = y.length - 1, le = [], pe = y[0], ge = y[1], Fe = le[0] = gu(pe, ge); ++_ < Q; )
                    le[_] = (Fe + (Fe = gu(pe = ge, ge = y[_ + 1]))) / 2;
                  return le[_] = Fe, le;
                }
                function lc(y) {
                  for (var _ = [], Q, le, pe, ge, Fe = Iv(y), ke = -1, _e = y.length - 1; ++ke < _e; )
                    Q = gu(y[ke], y[ke + 1]), g(Q) < je ? Fe[ke] = Fe[ke + 1] = 0 : (le = Fe[ke] / Q, pe = Fe[ke + 1] / Q, ge = le * le + pe * pe, ge > 9 && (ge = Q * 3 / Math.sqrt(ge), Fe[ke] = ge * le, Fe[ke + 1] = ge * pe));
                  for (ke = -1; ++ke <= _e; )
                    ge = (y[Math.min(_e, ke + 1)][0] - y[Math.max(0, ke - 1)][0]) / (6 * (1 + Fe[ke] * Fe[ke])), _.push([ge || 0, Fe[ke] * ge || 0]);
                  return _;
                }
                function Nv(y) {
                  return y.length < 3 ? Ha(y) : y[0] + Hi(y, lc(y));
                }
                l.svg.line.radial = function() {
                  var y = $i(Ba);
                  return y.radius = y.x, delete y.x, y.angle = y.y, delete y.y, y;
                };
                function Ba(y) {
                  for (var _, Q = -1, le = y.length, pe, ge; ++Q < le; )
                    _ = y[Q], pe = _[0], ge = _[1] - Ze, _[0] = pe * Math.cos(ge), _[1] = pe * Math.sin(ge);
                  return y;
                }
                function sc(y) {
                  var _ = Ra, Q = Ra, le = 0, pe = rn, ge = ic, Fe = Ha, ke = Fe.key, _e = Fe, Qe = "L", Ke = 0.7;
                  function yt(gt) {
                    var Vt = [], Pt = [], ct = [], xt = -1, Rt = gt.length, Xt, Kt = ir(_), Bt = ir(le), Ar = _ === Q ? function() {
                      return Ur;
                    } : ir(Q), Nr = le === pe ? function() {
                      return qt;
                    } : ir(pe), Ur, qt;
                    function Br() {
                      Vt.push("M", Fe(y(ct), Ke), Qe, _e(y(Pt.reverse()), Ke), "Z");
                    }
                    for (; ++xt < Rt; )
                      ge.call(this, Xt = gt[xt], xt) ? (Pt.push([Ur = +Kt.call(this, Xt, xt), qt = +Bt.call(this, Xt, xt)]), ct.push([+Ar.call(this, Xt, xt), +Nr.call(this, Xt, xt)])) : Pt.length && (Br(), Pt = [], ct = []);
                    return Pt.length && Br(), Vt.length ? Vt.join("") : null;
                  }
                  return yt.x = function(gt) {
                    return arguments.length ? (_ = Q = gt, yt) : Q;
                  }, yt.x0 = function(gt) {
                    return arguments.length ? (_ = gt, yt) : _;
                  }, yt.x1 = function(gt) {
                    return arguments.length ? (Q = gt, yt) : Q;
                  }, yt.y = function(gt) {
                    return arguments.length ? (le = pe = gt, yt) : pe;
                  }, yt.y0 = function(gt) {
                    return arguments.length ? (le = gt, yt) : le;
                  }, yt.y1 = function(gt) {
                    return arguments.length ? (pe = gt, yt) : pe;
                  }, yt.defined = function(gt) {
                    return arguments.length ? (ge = gt, yt) : ge;
                  }, yt.interpolate = function(gt) {
                    return arguments.length ? (typeof gt == "function" ? ke = Fe = gt : ke = (Fe = dl.get(gt) || Ha).key, _e = Fe.reverse || Fe, Qe = Fe.closed ? "M" : "L", yt) : ke;
                  }, yt.tension = function(gt) {
                    return arguments.length ? (Ke = gt, yt) : Ke;
                  }, yt;
                }
                _i.reverse = bi, bi.reverse = _i, l.svg.area = function() {
                  return sc(W);
                }, l.svg.area.radial = function() {
                  var y = sc(Ba);
                  return y.radius = y.x, delete y.x, y.innerRadius = y.x0, delete y.x0, y.outerRadius = y.x1, delete y.x1, y.angle = y.y, delete y.y, y.startAngle = y.y0, delete y.y0, y.endAngle = y.y1, delete y.y1, y;
                };
                function uf(y) {
                  return y.source;
                }
                function ss(y) {
                  return y.target;
                }
                l.svg.chord = function() {
                  var y = uf, _ = ss, Q = vl, le = gd, pe = fo;
                  function ge(Ke, yt) {
                    var gt = Fe(this, y, Ke, yt), Vt = Fe(this, _, Ke, yt);
                    return "M" + gt.p0 + _e(gt.r, gt.p1, gt.a1 - gt.a0) + (ke(gt, Vt) ? Qe(gt.r, gt.p1, gt.r, gt.p0) : Qe(gt.r, gt.p1, Vt.r, Vt.p0) + _e(Vt.r, Vt.p1, Vt.a1 - Vt.a0) + Qe(Vt.r, Vt.p1, gt.r, gt.p0)) + "Z";
                  }
                  function Fe(Ke, yt, gt, Vt) {
                    var Pt = yt.call(Ke, gt, Vt), ct = Q.call(Ke, Pt, Vt), xt = le.call(Ke, Pt, Vt) - Ze, Rt = pe.call(Ke, Pt, Vt) - Ze;
                    return {
                      r: ct,
                      a0: xt,
                      a1: Rt,
                      p0: [ct * Math.cos(xt), ct * Math.sin(xt)],
                      p1: [ct * Math.cos(Rt), ct * Math.sin(Rt)]
                    };
                  }
                  function ke(Ke, yt) {
                    return Ke.a0 == yt.a0 && Ke.a1 == yt.a1;
                  }
                  function _e(Ke, yt, gt) {
                    return "A" + Ke + "," + Ke + " 0 " + +(gt > Se) + ",1 " + yt;
                  }
                  function Qe(Ke, yt, gt, Vt) {
                    return "Q 0,0 " + Vt;
                  }
                  return ge.radius = function(Ke) {
                    return arguments.length ? (Q = ir(Ke), ge) : Q;
                  }, ge.source = function(Ke) {
                    return arguments.length ? (y = ir(Ke), ge) : y;
                  }, ge.target = function(Ke) {
                    return arguments.length ? (_ = ir(Ke), ge) : _;
                  }, ge.startAngle = function(Ke) {
                    return arguments.length ? (le = ir(Ke), ge) : le;
                  }, ge.endAngle = function(Ke) {
                    return arguments.length ? (pe = ir(Ke), ge) : pe;
                  }, ge;
                };
                function vl(y) {
                  return y.radius;
                }
                l.svg.diagonal = function() {
                  var y = uf, _ = ss, Q = xd;
                  function le(pe, ge) {
                    var Fe = y.call(this, pe, ge), ke = _.call(this, pe, ge), _e = (Fe.y + ke.y) / 2, Qe = [Fe, {
                      x: Fe.x,
                      y: _e
                    }, {
                      x: ke.x,
                      y: _e
                    }, ke];
                    return Qe = Qe.map(Q), "M" + Qe[0] + "C" + Qe[1] + " " + Qe[2] + " " + Qe[3];
                  }
                  return le.source = function(pe) {
                    return arguments.length ? (y = ir(pe), le) : y;
                  }, le.target = function(pe) {
                    return arguments.length ? (_ = ir(pe), le) : _;
                  }, le.projection = function(pe) {
                    return arguments.length ? (Q = pe, le) : Q;
                  }, le;
                };
                function xd(y) {
                  return [y.x, y.y];
                }
                l.svg.diagonal.radial = function() {
                  var y = l.svg.diagonal(), _ = xd, Q = y.projection;
                  return y.projection = function(le) {
                    return arguments.length ? Q(uc(_ = le)) : _;
                  }, y;
                };
                function uc(y) {
                  return function() {
                    var _ = y.apply(this, arguments), Q = _[0], le = _[1] - Ze;
                    return [Q * Math.cos(le), Q * Math.sin(le)];
                  };
                }
                l.svg.symbol = function() {
                  var y = Ov, _ = bu;
                  function Q(le, pe) {
                    return (ni.get(y.call(this, le, pe)) || hl)(_.call(this, le, pe));
                  }
                  return Q.type = function(le) {
                    return arguments.length ? (y = ir(le), Q) : y;
                  }, Q.size = function(le) {
                    return arguments.length ? (_ = ir(le), Q) : _;
                  }, Q;
                };
                function bu() {
                  return 64;
                }
                function Ov() {
                  return "circle";
                }
                function hl(y) {
                  var _ = Math.sqrt(y / Se);
                  return "M0," + _ + "A" + _ + "," + _ + " 0 1,1 0," + -_ + "A" + _ + "," + _ + " 0 1,1 0," + _ + "Z";
                }
                var ni = l.map({
                  circle: hl,
                  cross: function(y) {
                    var _ = Math.sqrt(y / 5) / 2;
                    return "M" + -3 * _ + "," + -_ + "H" + -_ + "V" + -3 * _ + "H" + _ + "V" + -_ + "H" + 3 * _ + "V" + _ + "H" + _ + "V" + 3 * _ + "H" + -_ + "V" + _ + "H" + -3 * _ + "Z";
                  },
                  diamond: function(y) {
                    var _ = Math.sqrt(y / (2 * To)), Q = _ * To;
                    return "M0," + -_ + "L" + Q + ",0 0," + _ + " " + -Q + ",0Z";
                  },
                  square: function(y) {
                    var _ = Math.sqrt(y) / 2;
                    return "M" + -_ + "," + -_ + "L" + _ + "," + -_ + " " + _ + "," + _ + " " + -_ + "," + _ + "Z";
                  },
                  "triangle-down": function(y) {
                    var _ = Math.sqrt(y / Kr), Q = _ * Kr / 2;
                    return "M0," + Q + "L" + _ + "," + -Q + " " + -_ + "," + -Q + "Z";
                  },
                  "triangle-up": function(y) {
                    var _ = Math.sqrt(y / Kr), Q = _ * Kr / 2;
                    return "M0," + -Q + "L" + _ + "," + Q + " " + -_ + "," + Q + "Z";
                  }
                });
                l.svg.symbolTypes = ni.keys();
                var Kr = Math.sqrt(3), To = Math.tan(30 * rt);
                H.transition = function(y) {
                  for (var _ = Ao || ++Co, Q = pl(y), le = [], pe, ge, Fe = ja || {
                    time: Date.now(),
                    ease: ip,
                    delay: 0,
                    duration: 250
                  }, ke = -1, _e = this.length; ++ke < _e; ) {
                    le.push(pe = []);
                    for (var Qe = this[ke], Ke = -1, yt = Qe.length; ++Ke < yt; )
                      (ge = Qe[Ke]) && Hs(ge, Ke, Q, _, Fe), pe.push(ge);
                  }
                  return _s(le, Q, _);
                }, H.interrupt = function(y) {
                  return this.each(y == null ? Bi : fc(pl(y)));
                };
                var Bi = fc(pl());
                function fc(y) {
                  return function() {
                    var _, Q, le;
                    (_ = this[y]) && (le = _[Q = _.active]) && (le.timer.c = null, le.timer.t = NaN, --_.count ? delete _[Q] : delete this[y], _.active += 0.5, le.event && le.event.interrupt.call(this, this.__data__, le.index));
                  };
                }
                function _s(y, _, Q) {
                  return De(y, ka), y.namespace = _, y.id = Q, y;
                }
                var ka = [], Co = 0, Ao, ja;
                ka.call = H.call, ka.empty = H.empty, ka.node = H.node, ka.size = H.size, l.transition = function(y, _) {
                  return y && y.transition ? Ao ? y.transition(_) : y : l.selection().transition(y);
                }, l.transition.prototype = ka, ka.select = function(y) {
                  var _ = this.id, Q = this.namespace, le = [], pe, ge, Fe;
                  y = ce(y);
                  for (var ke = -1, _e = this.length; ++ke < _e; ) {
                    le.push(pe = []);
                    for (var Qe = this[ke], Ke = -1, yt = Qe.length; ++Ke < yt; )
                      (Fe = Qe[Ke]) && (ge = y.call(Fe, Fe.__data__, Ke, ke)) ? ("__data__" in Fe && (ge.__data__ = Fe.__data__), Hs(ge, Ke, Q, _, Fe[Q][_]), pe.push(ge)) : pe.push(null);
                  }
                  return _s(le, Q, _);
                }, ka.selectAll = function(y) {
                  var _ = this.id, Q = this.namespace, le = [], pe, ge, Fe, ke, _e;
                  y = j(y);
                  for (var Qe = -1, Ke = this.length; ++Qe < Ke; )
                    for (var yt = this[Qe], gt = -1, Vt = yt.length; ++gt < Vt; )
                      if (Fe = yt[gt]) {
                        _e = Fe[Q][_], ge = y.call(Fe, Fe.__data__, gt, Qe), le.push(pe = []);
                        for (var Pt = -1, ct = ge.length; ++Pt < ct; )
                          (ke = ge[Pt]) && Hs(ke, Pt, Q, _, _e), pe.push(ke);
                      }
                  return _s(le, Q, _);
                }, ka.filter = function(y) {
                  var _ = [], Q, le, pe;
                  typeof y != "function" && (y = it(y));
                  for (var ge = 0, Fe = this.length; ge < Fe; ge++) {
                    _.push(Q = []);
                    for (var le = this[ge], ke = 0, _e = le.length; ke < _e; ke++)
                      (pe = le[ke]) && y.call(pe, pe.__data__, ke, ge) && Q.push(pe);
                  }
                  return _s(_, this.namespace, this.id);
                }, ka.tween = function(y, _) {
                  var Q = this.id, le = this.namespace;
                  return arguments.length < 2 ? this.node()[le][Q].tween.get(y) : wt(this, _ == null ? function(pe) {
                    pe[le][Q].tween.remove(y);
                  } : function(pe) {
                    pe[le][Q].tween.set(y, _);
                  });
                };
                function cc(y, _, Q, le) {
                  var pe = y.id, ge = y.namespace;
                  return wt(y, typeof Q == "function" ? function(Fe, ke, _e) {
                    Fe[ge][pe].tween.set(_, le(Q.call(Fe, Fe.__data__, ke, _e)));
                  } : (Q = le(Q), function(Fe) {
                    Fe[ge][pe].tween.set(_, Q);
                  }));
                }
                ka.attr = function(y, _) {
                  if (arguments.length < 2) {
                    for (_ in y)
                      this.attr(_, y[_]);
                    return this;
                  }
                  var Q = y == "transform" ? cu : La, le = l.ns.qualify(y);
                  function pe() {
                    this.removeAttribute(le);
                  }
                  function ge() {
                    this.removeAttributeNS(le.space, le.local);
                  }
                  function Fe(_e) {
                    return _e == null ? pe : (_e += "", function() {
                      var Qe = this.getAttribute(le), Ke;
                      return Qe !== _e && (Ke = Q(Qe, _e), function(yt) {
                        this.setAttribute(le, Ke(yt));
                      });
                    });
                  }
                  function ke(_e) {
                    return _e == null ? ge : (_e += "", function() {
                      var Qe = this.getAttributeNS(le.space, le.local), Ke;
                      return Qe !== _e && (Ke = Q(Qe, _e), function(yt) {
                        this.setAttributeNS(le.space, le.local, Ke(yt));
                      });
                    });
                  }
                  return cc(this, "attr." + y, _, le.local ? ke : Fe);
                }, ka.attrTween = function(y, _) {
                  var Q = l.ns.qualify(y);
                  function le(ge, Fe) {
                    var ke = _.call(this, ge, Fe, this.getAttribute(Q));
                    return ke && function(_e) {
                      this.setAttribute(Q, ke(_e));
                    };
                  }
                  function pe(ge, Fe) {
                    var ke = _.call(this, ge, Fe, this.getAttributeNS(Q.space, Q.local));
                    return ke && function(_e) {
                      this.setAttributeNS(Q.space, Q.local, ke(_e));
                    };
                  }
                  return this.tween("attr." + y, Q.local ? pe : le);
                }, ka.style = function(y, _, Q) {
                  var le = arguments.length;
                  if (le < 3) {
                    if (typeof y != "string") {
                      le < 2 && (_ = "");
                      for (Q in y)
                        this.style(Q, y[Q], _);
                      return this;
                    }
                    Q = "";
                  }
                  function pe() {
                    this.style.removeProperty(y);
                  }
                  function ge(Fe) {
                    return Fe == null ? pe : (Fe += "", function() {
                      var ke = h(this).getComputedStyle(this, null).getPropertyValue(y), _e;
                      return ke !== Fe && (_e = La(ke, Fe), function(Qe) {
                        this.style.setProperty(y, _e(Qe), Q);
                      });
                    });
                  }
                  return cc(this, "style." + y, _, ge);
                }, ka.styleTween = function(y, _, Q) {
                  arguments.length < 3 && (Q = "");
                  function le(pe, ge) {
                    var Fe = _.call(this, pe, ge, h(this).getComputedStyle(this, null).getPropertyValue(y));
                    return Fe && function(ke) {
                      this.style.setProperty(y, Fe(ke), Q);
                    };
                  }
                  return this.tween("style." + y, le);
                }, ka.text = function(y) {
                  return cc(this, "text", y, Yl);
                };
                function Yl(y) {
                  return y == null && (y = ""), function() {
                    this.textContent = y;
                  };
                }
                ka.remove = function() {
                  var y = this.namespace;
                  return this.each("end.transition", function() {
                    var _;
                    this[y].count < 2 && (_ = this.parentNode) && _.removeChild(this);
                  });
                }, ka.ease = function(y) {
                  var _ = this.id, Q = this.namespace;
                  return arguments.length < 1 ? this.node()[Q][_].ease : (typeof y != "function" && (y = l.ease.apply(l, arguments)), wt(this, function(le) {
                    le[Q][_].ease = y;
                  }));
                }, ka.delay = function(y) {
                  var _ = this.id, Q = this.namespace;
                  return arguments.length < 1 ? this.node()[Q][_].delay : wt(this, typeof y == "function" ? function(le, pe, ge) {
                    le[Q][_].delay = +y.call(le, le.__data__, pe, ge);
                  } : (y = +y, function(le) {
                    le[Q][_].delay = y;
                  }));
                }, ka.duration = function(y) {
                  var _ = this.id, Q = this.namespace;
                  return arguments.length < 1 ? this.node()[Q][_].duration : wt(this, typeof y == "function" ? function(le, pe, ge) {
                    le[Q][_].duration = Math.max(1, y.call(le, le.__data__, pe, ge));
                  } : (y = Math.max(1, y), function(le) {
                    le[Q][_].duration = y;
                  }));
                }, ka.each = function(y, _) {
                  var Q = this.id, le = this.namespace;
                  if (arguments.length < 2) {
                    var pe = ja, ge = Ao;
                    try {
                      Ao = Q, wt(this, function(Fe, ke, _e) {
                        ja = Fe[le][Q], y.call(Fe, Fe.__data__, ke, _e);
                      });
                    } finally {
                      ja = pe, Ao = ge;
                    }
                  } else
                    wt(this, function(Fe) {
                      var ke = Fe[le][Q];
                      (ke.event || (ke.event = l.dispatch("start", "end", "interrupt"))).on(y, _);
                    });
                  return this;
                }, ka.transition = function() {
                  for (var y = this.id, _ = ++Co, Q = this.namespace, le = [], pe, ge, Fe, ke, _e = 0, Qe = this.length; _e < Qe; _e++) {
                    le.push(pe = []);
                    for (var ge = this[_e], Ke = 0, yt = ge.length; Ke < yt; Ke++)
                      (Fe = ge[Ke]) && (ke = Fe[Q][y], Hs(Fe, Ke, Q, _, {
                        time: ke.time,
                        ease: ke.ease,
                        delay: ke.delay + ke.duration,
                        duration: ke.duration
                      })), pe.push(Fe);
                  }
                  return _s(le, Q, _);
                };
                function pl(y) {
                  return y == null ? "__transition__" : "__transition_" + y + "__";
                }
                function Hs(y, _, Q, le, pe) {
                  var ge = y[Q] || (y[Q] = {
                    active: 0,
                    count: 0
                  }), Fe = ge[le], ke, _e, Qe, Ke, yt;
                  function gt(ct) {
                    var xt = Fe.delay;
                    if (_e.t = xt + ke, xt <= ct)
                      return Vt(ct - xt);
                    _e.c = Vt;
                  }
                  function Vt(ct) {
                    var xt = ge.active, Rt = ge[xt];
                    Rt && (Rt.timer.c = null, Rt.timer.t = NaN, --ge.count, delete ge[xt], Rt.event && Rt.event.interrupt.call(y, y.__data__, Rt.index));
                    for (var Xt in ge)
                      if (+Xt < le) {
                        var Kt = ge[Xt];
                        Kt.timer.c = null, Kt.timer.t = NaN, --ge.count, delete ge[Xt];
                      }
                    _e.c = Pt, An(function() {
                      return _e.c && Pt(ct || 1) && (_e.c = null, _e.t = NaN), 1;
                    }, 0, ke), ge.active = le, Fe.event && Fe.event.start.call(y, y.__data__, _), yt = [], Fe.tween.forEach(function(Bt, Ar) {
                      (Ar = Ar.call(y, y.__data__, _)) && yt.push(Ar);
                    }), Ke = Fe.ease, Qe = Fe.duration;
                  }
                  function Pt(ct) {
                    for (var xt = ct / Qe, Rt = Ke(xt), Xt = yt.length; Xt > 0; )
                      yt[--Xt].call(y, Rt);
                    if (xt >= 1)
                      return Fe.event && Fe.event.end.call(y, y.__data__, _), --ge.count ? delete ge[le] : delete y[Q], 1;
                  }
                  Fe || (ke = pe.time, _e = An(gt, 0, ke), Fe = ge[le] = {
                    tween: new $(),
                    time: ke,
                    timer: _e,
                    delay: pe.delay,
                    duration: pe.duration,
                    ease: pe.ease,
                    index: _
                  }, pe = null, ++ge.count);
                }
                l.svg.axis = function() {
                  var y = l.scale.linear(), _ = Bs, Q = 6, le = 6, pe = 3, ge = [10], Fe = null, ke;
                  function _e(Qe) {
                    Qe.each(function() {
                      var Ke = l.select(this), yt = this.__chart__ || y, gt = this.__chart__ = y.copy(), Vt = Fe ?? (gt.ticks ? gt.ticks.apply(gt, ge) : gt.domain()), Pt = ke ?? (gt.tickFormat ? gt.tickFormat.apply(gt, ge) : W), ct = Ke.selectAll(".tick").data(Vt, gt), xt = ct.enter().insert("g", ".domain").attr("class", "tick").style("opacity", je), Rt = l.transition(ct.exit()).style("opacity", je).remove(), Xt = l.transition(ct.order()).style("opacity", 1), Kt = Math.max(Q, 0) + pe, Bt, Ar = so(gt), Nr = Ke.selectAll(".domain").data([0]), Ur = (Nr.enter().append("path").attr("class", "domain"), l.transition(Nr));
                      xt.append("line"), xt.append("text");
                      var qt = xt.select("line"), Br = Xt.select("line"), xr = ct.select("text").text(Pt), nn = xt.select("text"), jr = Xt.select("text"), fn = _ === "top" || _ === "left" ? -1 : 1, Bn, wa, Jn, _r;
                      if (_ === "bottom" || _ === "top" ? (Bt = us, Bn = "x", Jn = "y", wa = "x2", _r = "y2", xr.attr("dy", fn < 0 ? "0em" : ".71em").style("text-anchor", "middle"), Ur.attr("d", "M" + Ar[0] + "," + fn * le + "V0H" + Ar[1] + "V" + fn * le)) : (Bt = dc, Bn = "y", Jn = "x", wa = "y2", _r = "x2", xr.attr("dy", ".32em").style("text-anchor", fn < 0 ? "end" : "start"), Ur.attr("d", "M" + fn * le + "," + Ar[0] + "H0V" + Ar[1] + "H" + fn * le)), qt.attr(_r, fn * Q), nn.attr(Jn, fn * Kt), Br.attr(wa, 0).attr(_r, fn * Q), jr.attr(Bn, 0).attr(Jn, fn * Kt), gt.rangeBand) {
                        var Tn = gt, En = Tn.rangeBand() / 2;
                        yt = gt = function(Qn) {
                          return Tn(Qn) + En;
                        };
                      } else
                        yt.rangeBand ? yt = gt : Rt.call(Bt, gt, yt);
                      xt.call(Bt, yt, gt), Xt.call(Bt, gt, gt);
                    });
                  }
                  return _e.scale = function(Qe) {
                    return arguments.length ? (y = Qe, _e) : y;
                  }, _e.orient = function(Qe) {
                    return arguments.length ? (_ = Qe in vo ? Qe + "" : Bs, _e) : _;
                  }, _e.ticks = function() {
                    return arguments.length ? (ge = u(arguments), _e) : ge;
                  }, _e.tickValues = function(Qe) {
                    return arguments.length ? (Fe = Qe, _e) : Fe;
                  }, _e.tickFormat = function(Qe) {
                    return arguments.length ? (ke = Qe, _e) : ke;
                  }, _e.tickSize = function(Qe) {
                    var Ke = arguments.length;
                    return Ke ? (Q = +Qe, le = +arguments[Ke - 1], _e) : Q;
                  }, _e.innerTickSize = function(Qe) {
                    return arguments.length ? (Q = +Qe, _e) : Q;
                  }, _e.outerTickSize = function(Qe) {
                    return arguments.length ? (le = +Qe, _e) : le;
                  }, _e.tickPadding = function(Qe) {
                    return arguments.length ? (pe = +Qe, _e) : pe;
                  }, _e.tickSubdivide = function() {
                    return arguments.length && _e;
                  }, _e;
                };
                var Bs = "bottom", vo = {
                  top: 1,
                  right: 1,
                  bottom: 1,
                  left: 1
                };
                function us(y, _, Q) {
                  y.attr("transform", function(le) {
                    var pe = _(le);
                    return "translate(" + (isFinite(pe) ? pe : Q(le)) + ",0)";
                  });
                }
                function dc(y, _, Q) {
                  y.attr("transform", function(le) {
                    var pe = _(le);
                    return "translate(0," + (isFinite(pe) ? pe : Q(le)) + ")";
                  });
                }
                l.svg.brush = function() {
                  var y = xe(Ke, "brushstart", "brush", "brushend"), _ = null, Q = null, le = [0, 0], pe = [0, 0], ge, Fe, ke = !0, _e = !0, Qe = xu[0];
                  function Ke(ct) {
                    ct.each(function() {
                      var xt = l.select(this).style("pointer-events", "all").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)").on("mousedown.brush", Pt).on("touchstart.brush", Pt), Rt = xt.selectAll(".background").data([0]);
                      Rt.enter().append("rect").attr("class", "background").style("visibility", "hidden").style("cursor", "crosshair"), xt.selectAll(".extent").data([0]).enter().append("rect").attr("class", "extent").style("cursor", "move");
                      var Xt = xt.selectAll(".resize").data(Qe, W);
                      Xt.exit().remove(), Xt.enter().append("g").attr("class", function(Nr) {
                        return "resize " + Nr;
                      }).style("cursor", function(Nr) {
                        return Pv[Nr];
                      }).append("rect").attr("x", function(Nr) {
                        return /[ew]$/.test(Nr) ? -3 : null;
                      }).attr("y", function(Nr) {
                        return /^[ns]/.test(Nr) ? -3 : null;
                      }).attr("width", 6).attr("height", 6).style("visibility", "hidden"), Xt.style("display", Ke.empty() ? "none" : null);
                      var Kt = l.transition(xt), Bt = l.transition(Rt), Ar;
                      _ && (Ar = so(_), Bt.attr("x", Ar[0]).attr("width", Ar[1] - Ar[0]), gt(Kt)), Q && (Ar = so(Q), Bt.attr("y", Ar[0]).attr("height", Ar[1] - Ar[0]), Vt(Kt)), yt(Kt);
                    });
                  }
                  Ke.event = function(ct) {
                    ct.each(function() {
                      var xt = y.of(this, arguments), Rt = {
                        x: le,
                        y: pe,
                        i: ge,
                        j: Fe
                      }, Xt = this.__chart__ || Rt;
                      this.__chart__ = Rt, Ao ? l.select(this).transition().each("start.brush", function() {
                        ge = Xt.i, Fe = Xt.j, le = Xt.x, pe = Xt.y, xt({
                          type: "brushstart"
                        });
                      }).tween("brush:brush", function() {
                        var Kt = lo(le, Rt.x), Bt = lo(pe, Rt.y);
                        return ge = Fe = null, function(Ar) {
                          le = Rt.x = Kt(Ar), pe = Rt.y = Bt(Ar), xt({
                            type: "brush",
                            mode: "resize"
                          });
                        };
                      }).each("end.brush", function() {
                        ge = Rt.i, Fe = Rt.j, xt({
                          type: "brush",
                          mode: "resize"
                        }), xt({
                          type: "brushend"
                        });
                      }) : (xt({
                        type: "brushstart"
                      }), xt({
                        type: "brush",
                        mode: "resize"
                      }), xt({
                        type: "brushend"
                      }));
                    });
                  };
                  function yt(ct) {
                    ct.selectAll(".resize").attr("transform", function(xt) {
                      return "translate(" + le[+/e$/.test(xt)] + "," + pe[+/^s/.test(xt)] + ")";
                    });
                  }
                  function gt(ct) {
                    ct.select(".extent").attr("x", le[0]), ct.selectAll(".extent,.n>rect,.s>rect").attr("width", le[1] - le[0]);
                  }
                  function Vt(ct) {
                    ct.select(".extent").attr("y", pe[0]), ct.selectAll(".extent,.e>rect,.w>rect").attr("height", pe[1] - pe[0]);
                  }
                  function Pt() {
                    var ct = this, xt = l.select(l.event.target), Rt = y.of(ct, arguments), Xt = l.select(ct), Kt = xt.datum(), Bt = !/^(n|s)$/.test(Kt) && _, Ar = !/^(e|w)$/.test(Kt) && Q, Nr = xt.classed("extent"), Ur = Wt(ct), qt, Br = l.mouse(ct), xr, nn = l.select(h(ct)).on("keydown.brush", Bn).on("keyup.brush", wa);
                    if (l.event.changedTouches ? nn.on("touchmove.brush", Jn).on("touchend.brush", Tn) : nn.on("mousemove.brush", Jn).on("mouseup.brush", Tn), Xt.interrupt().selectAll("*").interrupt(), Nr)
                      Br[0] = le[0] - Br[0], Br[1] = pe[0] - Br[1];
                    else if (Kt) {
                      var jr = +/w$/.test(Kt), fn = +/^n/.test(Kt);
                      xr = [le[1 - jr] - Br[0], pe[1 - fn] - Br[1]], Br[0] = le[jr], Br[1] = pe[fn];
                    } else
                      l.event.altKey && (qt = Br.slice());
                    Xt.style("pointer-events", "none").selectAll(".resize").style("display", null), l.select("body").style("cursor", xt.style("cursor")), Rt({
                      type: "brushstart"
                    }), Jn();
                    function Bn() {
                      l.event.keyCode == 32 && (Nr || (qt = null, Br[0] -= le[1], Br[1] -= pe[1], Nr = 2), Re());
                    }
                    function wa() {
                      l.event.keyCode == 32 && Nr == 2 && (Br[0] += le[1], Br[1] += pe[1], Nr = 0, Re());
                    }
                    function Jn() {
                      var En = l.mouse(ct), Qn = !1;
                      xr && (En[0] += xr[0], En[1] += xr[1]), Nr || (l.event.altKey ? (qt || (qt = [(le[0] + le[1]) / 2, (pe[0] + pe[1]) / 2]), Br[0] = le[+(En[0] < qt[0])], Br[1] = pe[+(En[1] < qt[1])]) : qt = null), Bt && _r(En, _, 0) && (gt(Xt), Qn = !0), Ar && _r(En, Q, 1) && (Vt(Xt), Qn = !0), Qn && (yt(Xt), Rt({
                        type: "brush",
                        mode: Nr ? "move" : "resize"
                      }));
                    }
                    function _r(En, Qn, Sa) {
                      var Va = so(Qn), Ga = Va[0], ui = Va[1], ai = Br[Sa], Ka = Sa ? pe : le, Ei = Ka[1] - Ka[0], qa, Di;
                      if (Nr && (Ga -= ai, ui -= Ei + ai), qa = (Sa ? _e : ke) ? Math.max(Ga, Math.min(ui, En[Sa])) : En[Sa], Nr ? Di = (qa += ai) + Ei : (qt && (ai = Math.max(Ga, Math.min(ui, 2 * qt[Sa] - qa))), ai < qa ? (Di = qa, qa = ai) : Di = ai), Ka[0] != qa || Ka[1] != Di)
                        return Sa ? Fe = null : ge = null, Ka[0] = qa, Ka[1] = Di, !0;
                    }
                    function Tn() {
                      Jn(), Xt.style("pointer-events", "all").selectAll(".resize").style("display", Ke.empty() ? "none" : null), l.select("body").style("cursor", null), nn.on("mousemove.brush", null).on("mouseup.brush", null).on("touchmove.brush", null).on("touchend.brush", null).on("keydown.brush", null).on("keyup.brush", null), Ur(), Rt({
                        type: "brushend"
                      });
                    }
                  }
                  return Ke.x = function(ct) {
                    return arguments.length ? (_ = ct, Qe = xu[!_ << 1 | !Q], Ke) : _;
                  }, Ke.y = function(ct) {
                    return arguments.length ? (Q = ct, Qe = xu[!_ << 1 | !Q], Ke) : Q;
                  }, Ke.clamp = function(ct) {
                    return arguments.length ? (_ && Q ? (ke = !!ct[0], _e = !!ct[1]) : _ ? ke = !!ct : Q && (_e = !!ct), Ke) : _ && Q ? [ke, _e] : _ ? ke : Q ? _e : null;
                  }, Ke.extent = function(ct) {
                    var xt, Rt, Xt, Kt, Bt;
                    return arguments.length ? (_ && (xt = ct[0], Rt = ct[1], Q && (xt = xt[0], Rt = Rt[0]), ge = [xt, Rt], _.invert && (xt = _(xt), Rt = _(Rt)), Rt < xt && (Bt = xt, xt = Rt, Rt = Bt), (xt != le[0] || Rt != le[1]) && (le = [xt, Rt])), Q && (Xt = ct[0], Kt = ct[1], _ && (Xt = Xt[1], Kt = Kt[1]), Fe = [Xt, Kt], Q.invert && (Xt = Q(Xt), Kt = Q(Kt)), Kt < Xt && (Bt = Xt, Xt = Kt, Kt = Bt), (Xt != pe[0] || Kt != pe[1]) && (pe = [Xt, Kt])), Ke) : (_ && (ge ? (xt = ge[0], Rt = ge[1]) : (xt = le[0], Rt = le[1], _.invert && (xt = _.invert(xt), Rt = _.invert(Rt)), Rt < xt && (Bt = xt, xt = Rt, Rt = Bt))), Q && (Fe ? (Xt = Fe[0], Kt = Fe[1]) : (Xt = pe[0], Kt = pe[1], Q.invert && (Xt = Q.invert(Xt), Kt = Q.invert(Kt)), Kt < Xt && (Bt = Xt, Xt = Kt, Kt = Bt))), _ && Q ? [[xt, Xt], [Rt, Kt]] : _ ? [xt, Rt] : Q && [Xt, Kt]);
                  }, Ke.clear = function() {
                    return Ke.empty() || (le = [0, 0], pe = [0, 0], ge = Fe = null), Ke;
                  }, Ke.empty = function() {
                    return !!_ && le[0] == le[1] || !!Q && pe[0] == pe[1];
                  }, l.rebind(Ke, y, "on");
                };
                var Pv = {
                  n: "ns-resize",
                  e: "ew-resize",
                  s: "ns-resize",
                  w: "ew-resize",
                  nw: "nwse-resize",
                  ne: "nesw-resize",
                  se: "nwse-resize",
                  sw: "nesw-resize"
                }, xu = [["n", "e", "s", "w", "nw", "ne", "se", "sw"], ["e", "w"], ["n", "s"], []];
                l.text = wr(function(y) {
                  return y.responseText;
                }), l.json = function(y, _) {
                  return sr(y, "application/json", Fv, _);
                };
                function Fv(y) {
                  return JSON.parse(y.responseText);
                }
                l.html = function(y, _) {
                  return sr(y, "text/html", ff, _);
                };
                function ff(y) {
                  var _ = c.createRange();
                  return _.selectNode(c.body), _.createContextualFragment(y.responseText);
                }
                l.xml = wr(function(y) {
                  return y.responseXML;
                }), a = l, p = typeof a == "function" ? a.call(L, r, L, M) : a, p !== void 0 && (M.exports = p);
              }).apply(self);
            }
          ),
          /***/
          3160: (
            /***/
            function(M, L, r) {
              r.r(L), r.d(L, {
                /* harmony export */
                decode: function() {
                  return (
                    /* binding */
                    u
                  );
                },
                /* harmony export */
                encode: function() {
                  return (
                    /* binding */
                    f
                  );
                }
                /* harmony export */
              });
              for (var a = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", p = typeof Uint8Array > "u" ? [] : new Uint8Array(256), l = 0; l < a.length; l++)
                p[a.charCodeAt(l)] = l;
              var f = function(c) {
                var d = new Uint8Array(c), h, i = d.length, b = "";
                for (h = 0; h < i; h += 3)
                  b += a[d[h] >> 2], b += a[(d[h] & 3) << 4 | d[h + 1] >> 4], b += a[(d[h + 1] & 15) << 2 | d[h + 2] >> 6], b += a[d[h + 2] & 63];
                return i % 3 === 2 ? b = b.substring(0, b.length - 1) + "=" : i % 3 === 1 && (b = b.substring(0, b.length - 2) + "=="), b;
              }, u = function(c) {
                var d = c.length * 0.75, h = c.length, i, b = 0, x, D, C, w;
                c[c.length - 1] === "=" && (d--, c[c.length - 2] === "=" && d--);
                var S = new ArrayBuffer(d), T = new Uint8Array(S);
                for (i = 0; i < h; i += 4)
                  x = p[c.charCodeAt(i)], D = p[c.charCodeAt(i + 1)], C = p[c.charCodeAt(i + 2)], w = p[c.charCodeAt(i + 3)], T[b++] = x << 2 | D >> 4, T[b++] = (D & 15) << 4 | C >> 2, T[b++] = (C & 3) << 6 | w & 63;
                return S;
              };
            }
          ),
          /***/
          7624: (
            /***/
            function(M, L, r) {
              r.d(L, {
                E9: function() {
                  return (
                    /* reexport */
                    R
                  );
                },
                SO: function() {
                  return (
                    /* reexport */
                    k
                  );
                }
              });
              function a(I) {
                return Math.abs(I = Math.round(I)) >= 1e21 ? I.toLocaleString("en").replace(/,/g, "") : I.toString(10);
              }
              function p(I, O) {
                if (($ = (I = O ? I.toExponential(O - 1) : I.toExponential()).indexOf("e")) < 0)
                  return null;
                var $, Y = I.slice(0, $);
                return [
                  Y.length > 1 ? Y[0] + Y.slice(2) : Y,
                  +I.slice($ + 1)
                ];
              }
              function l(I) {
                return I = p(Math.abs(I)), I ? I[1] : NaN;
              }
              function f(I, O) {
                return function($, Y) {
                  for (var ne = $.length, q = [], B = 0, X = I[0], U = 0; ne > 0 && X > 0 && (U + X + 1 > Y && (X = Math.max(1, Y - U)), q.push($.substring(ne -= X, ne + X)), !((U += X + 1) > Y)); )
                    X = I[B = (B + 1) % I.length];
                  return q.reverse().join(O);
                };
              }
              function u(I) {
                return function(O) {
                  return O.replace(/[0-9]/g, function($) {
                    return I[+$];
                  });
                };
              }
              var c = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;
              function d(I) {
                if (!(O = c.exec(I)))
                  throw new Error("invalid format: " + I);
                var O;
                return new h({
                  fill: O[1],
                  align: O[2],
                  sign: O[3],
                  symbol: O[4],
                  zero: O[5],
                  width: O[6],
                  comma: O[7],
                  precision: O[8] && O[8].slice(1),
                  trim: O[9],
                  type: O[10]
                });
              }
              d.prototype = h.prototype;
              function h(I) {
                this.fill = I.fill === void 0 ? " " : I.fill + "", this.align = I.align === void 0 ? ">" : I.align + "", this.sign = I.sign === void 0 ? "-" : I.sign + "", this.symbol = I.symbol === void 0 ? "" : I.symbol + "", this.zero = !!I.zero, this.width = I.width === void 0 ? void 0 : +I.width, this.comma = !!I.comma, this.precision = I.precision === void 0 ? void 0 : +I.precision, this.trim = !!I.trim, this.type = I.type === void 0 ? "" : I.type + "";
              }
              h.prototype.toString = function() {
                return this.fill + this.align + this.sign + this.symbol + (this.zero ? "0" : "") + (this.width === void 0 ? "" : Math.max(1, this.width | 0)) + (this.comma ? "," : "") + (this.precision === void 0 ? "" : "." + Math.max(0, this.precision | 0)) + (this.trim ? "~" : "") + this.type;
              };
              function i(I) {
                e:
                  for (var O = I.length, $ = 1, Y = -1, ne; $ < O; ++$)
                    switch (I[$]) {
                      case ".":
                        Y = ne = $;
                        break;
                      case "0":
                        Y === 0 && (Y = $), ne = $;
                        break;
                      default:
                        if (!+I[$])
                          break e;
                        Y > 0 && (Y = 0);
                        break;
                    }
                return Y > 0 ? I.slice(0, Y) + I.slice(ne + 1) : I;
              }
              var b;
              function x(I, O) {
                var $ = p(I, O);
                if (!$)
                  return I + "";
                var Y = $[0], ne = $[1], q = ne - (b = Math.max(-8, Math.min(8, Math.floor(ne / 3))) * 3) + 1, B = Y.length;
                return q === B ? Y : q > B ? Y + new Array(q - B + 1).join("0") : q > 0 ? Y.slice(0, q) + "." + Y.slice(q) : "0." + new Array(1 - q).join("0") + p(I, Math.max(0, O + q - 1))[0];
              }
              function D(I, O) {
                var $ = p(I, O);
                if (!$)
                  return I + "";
                var Y = $[0], ne = $[1];
                return ne < 0 ? "0." + new Array(-ne).join("0") + Y : Y.length > ne + 1 ? Y.slice(0, ne + 1) + "." + Y.slice(ne + 1) : Y + new Array(ne - Y.length + 2).join("0");
              }
              var C = {
                "%": function(I, O) {
                  return (I * 100).toFixed(O);
                },
                b: function(I) {
                  return Math.round(I).toString(2);
                },
                c: function(I) {
                  return I + "";
                },
                d: a,
                e: function(I, O) {
                  return I.toExponential(O);
                },
                f: function(I, O) {
                  return I.toFixed(O);
                },
                g: function(I, O) {
                  return I.toPrecision(O);
                },
                o: function(I) {
                  return Math.round(I).toString(8);
                },
                p: function(I, O) {
                  return D(I * 100, O);
                },
                r: D,
                s: x,
                X: function(I) {
                  return Math.round(I).toString(16).toUpperCase();
                },
                x: function(I) {
                  return Math.round(I).toString(16);
                }
              };
              function w(I) {
                return I;
              }
              var S = Array.prototype.map, T = ["y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y"];
              function k(I) {
                var O = I.grouping === void 0 || I.thousands === void 0 ? w : f(S.call(I.grouping, Number), I.thousands + ""), $ = I.currency === void 0 ? "" : I.currency[0] + "", Y = I.currency === void 0 ? "" : I.currency[1] + "", ne = I.decimal === void 0 ? "." : I.decimal + "", q = I.numerals === void 0 ? w : u(S.call(I.numerals, String)), B = I.percent === void 0 ? "%" : I.percent + "", X = I.minus === void 0 ? "-" : I.minus + "", U = I.nan === void 0 ? "NaN" : I.nan + "";
                function te(me) {
                  me = d(me);
                  var J = me.fill, W = me.align, ae = me.sign, oe = me.symbol, ve = me.zero, fe = me.width, ye = me.comma, Ce = me.precision, Re = me.trim, Be = me.type;
                  Be === "n" ? (ye = !0, Be = "g") : C[Be] || (Ce === void 0 && (Ce = 12), Re = !0, Be = "g"), (ve || J === "0" && W === "=") && (ve = !0, J = "0", W = "=");
                  var xe = oe === "$" ? $ : oe === "#" && /[boxX]/.test(Be) ? "0" + Be.toLowerCase() : "", Me = oe === "$" ? Y : /[%p]/.test(Be) ? B : "", De = C[Be], Z = /[defgprs%]/.test(Be);
                  Ce = Ce === void 0 ? 6 : /[gprs]/.test(Be) ? Math.max(1, Math.min(21, Ce)) : Math.max(0, Math.min(20, Ce));
                  function ee(ie) {
                    var G = xe, H = Me, ce, j, he;
                    if (Be === "c")
                      H = De(ie) + H, ie = "";
                    else {
                      ie = +ie;
                      var be = ie < 0 || 1 / ie < 0;
                      if (ie = isNaN(ie) ? U : De(Math.abs(ie), Ce), Re && (ie = i(ie)), be && +ie == 0 && ae !== "+" && (be = !1), G = (be ? ae === "(" ? ae : X : ae === "-" || ae === "(" ? "" : ae) + G, H = (Be === "s" ? T[8 + b / 3] : "") + H + (be && ae === "(" ? ")" : ""), Z) {
                        for (ce = -1, j = ie.length; ++ce < j; )
                          if (he = ie.charCodeAt(ce), 48 > he || he > 57) {
                            H = (he === 46 ? ne + ie.slice(ce + 1) : ie.slice(ce)) + H, ie = ie.slice(0, ce);
                            break;
                          }
                      }
                    }
                    ye && !ve && (ie = O(ie, 1 / 0));
                    var we = G.length + ie.length + H.length, Ie = we < fe ? new Array(fe - we + 1).join(J) : "";
                    switch (ye && ve && (ie = O(Ie + ie, Ie.length ? fe - H.length : 1 / 0), Ie = ""), W) {
                      case "<":
                        ie = G + ie + H + Ie;
                        break;
                      case "=":
                        ie = G + Ie + ie + H;
                        break;
                      case "^":
                        ie = Ie.slice(0, we = Ie.length >> 1) + G + ie + H + Ie.slice(we);
                        break;
                      default:
                        ie = Ie + G + ie + H;
                        break;
                    }
                    return q(ie);
                  }
                  return ee.toString = function() {
                    return me + "";
                  }, ee;
                }
                function se(me, J) {
                  var W = te((me = d(me), me.type = "f", me)), ae = Math.max(-8, Math.min(8, Math.floor(l(J) / 3))) * 3, oe = Math.pow(10, -ae), ve = T[8 + ae / 3];
                  return function(fe) {
                    return W(oe * fe) + ve;
                  };
                }
                return {
                  format: te,
                  formatPrefix: se
                };
              }
              var A, R;
              g({
                decimal: ".",
                thousands: ",",
                grouping: [3],
                currency: ["$", ""],
                minus: "-"
              });
              function g(I) {
                return A = k(I), R = A.format, A.formatPrefix, A;
              }
            }
          ),
          /***/
          4336: (
            /***/
            function(M, L, r) {
              r.d(L, {
                Yn: function() {
                  return (
                    /* reexport */
                    Jt
                  );
                },
                m_: function() {
                  return (
                    /* reexport */
                    b
                  );
                },
                E9: function() {
                  return (
                    /* reexport */
                    Wt
                  );
                }
              });
              var a = r(8208), p = r(8931), l = r(6192), f = r(8936), u = r(2171), c = r(3528);
              function d(Ue) {
                if (0 <= Ue.y && Ue.y < 100) {
                  var We = new Date(-1, Ue.m, Ue.d, Ue.H, Ue.M, Ue.S, Ue.L);
                  return We.setFullYear(Ue.y), We;
                }
                return new Date(Ue.y, Ue.m, Ue.d, Ue.H, Ue.M, Ue.S, Ue.L);
              }
              function h(Ue) {
                if (0 <= Ue.y && Ue.y < 100) {
                  var We = new Date(Date.UTC(-1, Ue.m, Ue.d, Ue.H, Ue.M, Ue.S, Ue.L));
                  return We.setUTCFullYear(Ue.y), We;
                }
                return new Date(Date.UTC(Ue.y, Ue.m, Ue.d, Ue.H, Ue.M, Ue.S, Ue.L));
              }
              function i(Ue, We, je) {
                return { y: Ue, m: We, d: je, H: 0, M: 0, S: 0, L: 0 };
              }
              function b(Ue) {
                var We = Ue.dateTime, je = Ue.date, lt = Ue.time, Se = Ue.periods, Pe = Ue.days, Ye = Ue.shortDays, Ze = Ue.months, rt = Ue.shortMonths, tt = k(Se), Ft = A(Se), Dt = k(Pe), dt = A(Pe), st = k(Ye), Nt = A(Ye), ar = k(Ze), ur = A(Ze), Or = k(rt), Fr = A(rt), br = {
                  a: Ae,
                  A: ue,
                  b: ft,
                  B: nt,
                  c: null,
                  d: ye,
                  e: ye,
                  f: Me,
                  H: Ce,
                  I: Re,
                  j: Be,
                  L: xe,
                  m: De,
                  M: Z,
                  p: mt,
                  q: Tt,
                  Q: Ct,
                  s: jt,
                  S: ee,
                  u: ie,
                  U: G,
                  V: H,
                  w: ce,
                  W: j,
                  x: null,
                  X: null,
                  y: he,
                  Y: be,
                  Z: we,
                  "%": Ut
                }, or = {
                  a: bt,
                  A: vt,
                  b: ht,
                  B: St,
                  c: null,
                  d: Ie,
                  e: Ie,
                  f: at,
                  H: Ge,
                  I: Ve,
                  j: Je,
                  L: et,
                  m: Le,
                  M: ze,
                  p: It,
                  q: Ht,
                  Q: Ct,
                  s: jt,
                  S: Oe,
                  u: Xe,
                  U: it,
                  V: ut,
                  w: wt,
                  W: kt,
                  x: null,
                  X: null,
                  y: Ot,
                  Y: Lt,
                  Z: Mt,
                  "%": Ut
                }, Rr = {
                  a: gr,
                  A: Er,
                  b: Cr,
                  B: zr,
                  c: en,
                  d: U,
                  e: U,
                  f: ae,
                  H: se,
                  I: se,
                  j: te,
                  L: W,
                  m: X,
                  M: me,
                  p: Dr,
                  q: B,
                  Q: ve,
                  s: fe,
                  S: J,
                  u: g,
                  U: I,
                  V: O,
                  w: R,
                  W: $,
                  x: on,
                  X: Ir,
                  y: ne,
                  Y,
                  Z: q,
                  "%": oe
                };
                br.x = lr(je, br), br.X = lr(lt, br), br.c = lr(We, br), or.x = lr(je, or), or.X = lr(lt, or), or.c = lr(We, or);
                function lr(Et, Zt) {
                  return function(Yt) {
                    var Gt = [], $t = -1, ir = 0, wr = Et.length, sr, Xr, Lr;
                    for (Yt instanceof Date || (Yt = /* @__PURE__ */ new Date(+Yt)); ++$t < wr; )
                      Et.charCodeAt($t) === 37 && (Gt.push(Et.slice(ir, $t)), (Xr = x[sr = Et.charAt(++$t)]) != null ? sr = Et.charAt(++$t) : Xr = sr === "e" ? " " : "0", (Lr = Zt[sr]) && (sr = Lr(Yt, Xr)), Gt.push(sr), ir = $t + 1);
                    return Gt.push(Et.slice(ir, $t)), Gt.join("");
                  };
                }
                function Tr(Et, Zt) {
                  return function(Yt) {
                    var Gt = i(1900, void 0, 1), $t = Gr(Gt, Et, Yt += "", 0), ir, wr;
                    if ($t != Yt.length)
                      return null;
                    if ("Q" in Gt)
                      return new Date(Gt.Q);
                    if ("s" in Gt)
                      return new Date(Gt.s * 1e3 + ("L" in Gt ? Gt.L : 0));
                    if (Zt && !("Z" in Gt) && (Gt.Z = 0), "p" in Gt && (Gt.H = Gt.H % 12 + Gt.p * 12), Gt.m === void 0 && (Gt.m = "q" in Gt ? Gt.q : 0), "V" in Gt) {
                      if (Gt.V < 1 || Gt.V > 53)
                        return null;
                      "w" in Gt || (Gt.w = 1), "Z" in Gt ? (ir = h(i(Gt.y, 0, 1)), wr = ir.getUTCDay(), ir = wr > 4 || wr === 0 ? a.ot.ceil(ir) : (0, a.ot)(ir), ir = p.c.offset(ir, (Gt.V - 1) * 7), Gt.y = ir.getUTCFullYear(), Gt.m = ir.getUTCMonth(), Gt.d = ir.getUTCDate() + (Gt.w + 6) % 7) : (ir = d(i(Gt.y, 0, 1)), wr = ir.getDay(), ir = wr > 4 || wr === 0 ? l.qT.ceil(ir) : (0, l.qT)(ir), ir = f.c.offset(ir, (Gt.V - 1) * 7), Gt.y = ir.getFullYear(), Gt.m = ir.getMonth(), Gt.d = ir.getDate() + (Gt.w + 6) % 7);
                    } else
                      ("W" in Gt || "U" in Gt) && ("w" in Gt || (Gt.w = "u" in Gt ? Gt.u % 7 : "W" in Gt ? 1 : 0), wr = "Z" in Gt ? h(i(Gt.y, 0, 1)).getUTCDay() : d(i(Gt.y, 0, 1)).getDay(), Gt.m = 0, Gt.d = "W" in Gt ? (Gt.w + 6) % 7 + Gt.W * 7 - (wr + 5) % 7 : Gt.w + Gt.U * 7 - (wr + 6) % 7);
                    return "Z" in Gt ? (Gt.H += Gt.Z / 100 | 0, Gt.M += Gt.Z % 100, h(Gt)) : d(Gt);
                  };
                }
                function Gr(Et, Zt, Yt, Gt) {
                  for (var $t = 0, ir = Zt.length, wr = Yt.length, sr, Xr; $t < ir; ) {
                    if (Gt >= wr)
                      return -1;
                    if (sr = Zt.charCodeAt($t++), sr === 37) {
                      if (sr = Zt.charAt($t++), Xr = Rr[sr in x ? Zt.charAt($t++) : sr], !Xr || (Gt = Xr(Et, Yt, Gt)) < 0)
                        return -1;
                    } else if (sr != Yt.charCodeAt(Gt++))
                      return -1;
                  }
                  return Gt;
                }
                function Dr(Et, Zt, Yt) {
                  var Gt = tt.exec(Zt.slice(Yt));
                  return Gt ? (Et.p = Ft[Gt[0].toLowerCase()], Yt + Gt[0].length) : -1;
                }
                function gr(Et, Zt, Yt) {
                  var Gt = st.exec(Zt.slice(Yt));
                  return Gt ? (Et.w = Nt[Gt[0].toLowerCase()], Yt + Gt[0].length) : -1;
                }
                function Er(Et, Zt, Yt) {
                  var Gt = Dt.exec(Zt.slice(Yt));
                  return Gt ? (Et.w = dt[Gt[0].toLowerCase()], Yt + Gt[0].length) : -1;
                }
                function Cr(Et, Zt, Yt) {
                  var Gt = Or.exec(Zt.slice(Yt));
                  return Gt ? (Et.m = Fr[Gt[0].toLowerCase()], Yt + Gt[0].length) : -1;
                }
                function zr(Et, Zt, Yt) {
                  var Gt = ar.exec(Zt.slice(Yt));
                  return Gt ? (Et.m = ur[Gt[0].toLowerCase()], Yt + Gt[0].length) : -1;
                }
                function en(Et, Zt, Yt) {
                  return Gr(Et, We, Zt, Yt);
                }
                function on(Et, Zt, Yt) {
                  return Gr(Et, je, Zt, Yt);
                }
                function Ir(Et, Zt, Yt) {
                  return Gr(Et, lt, Zt, Yt);
                }
                function Ae(Et) {
                  return Ye[Et.getDay()];
                }
                function ue(Et) {
                  return Pe[Et.getDay()];
                }
                function ft(Et) {
                  return rt[Et.getMonth()];
                }
                function nt(Et) {
                  return Ze[Et.getMonth()];
                }
                function mt(Et) {
                  return Se[+(Et.getHours() >= 12)];
                }
                function Tt(Et) {
                  return 1 + ~~(Et.getMonth() / 3);
                }
                function bt(Et) {
                  return Ye[Et.getUTCDay()];
                }
                function vt(Et) {
                  return Pe[Et.getUTCDay()];
                }
                function ht(Et) {
                  return rt[Et.getUTCMonth()];
                }
                function St(Et) {
                  return Ze[Et.getUTCMonth()];
                }
                function It(Et) {
                  return Se[+(Et.getUTCHours() >= 12)];
                }
                function Ht(Et) {
                  return 1 + ~~(Et.getUTCMonth() / 3);
                }
                return {
                  format: function(Et) {
                    var Zt = lr(Et += "", br);
                    return Zt.toString = function() {
                      return Et;
                    }, Zt;
                  },
                  parse: function(Et) {
                    var Zt = Tr(Et += "", !1);
                    return Zt.toString = function() {
                      return Et;
                    }, Zt;
                  },
                  utcFormat: function(Et) {
                    var Zt = lr(Et += "", or);
                    return Zt.toString = function() {
                      return Et;
                    }, Zt;
                  },
                  utcParse: function(Et) {
                    var Zt = Tr(Et += "", !0);
                    return Zt.toString = function() {
                      return Et;
                    }, Zt;
                  }
                };
              }
              var x = { "-": "", _: " ", 0: "0" }, D = /^\s*\d+/, C = /^%/, w = /[\\^$*+?|[\]().{}]/g;
              function S(Ue, We, je) {
                var lt = Ue < 0 ? "-" : "", Se = (lt ? -Ue : Ue) + "", Pe = Se.length;
                return lt + (Pe < je ? new Array(je - Pe + 1).join(We) + Se : Se);
              }
              function T(Ue) {
                return Ue.replace(w, "\\$&");
              }
              function k(Ue) {
                return new RegExp("^(?:" + Ue.map(T).join("|") + ")", "i");
              }
              function A(Ue) {
                for (var We = {}, je = -1, lt = Ue.length; ++je < lt; )
                  We[Ue[je].toLowerCase()] = je;
                return We;
              }
              function R(Ue, We, je) {
                var lt = D.exec(We.slice(je, je + 1));
                return lt ? (Ue.w = +lt[0], je + lt[0].length) : -1;
              }
              function g(Ue, We, je) {
                var lt = D.exec(We.slice(je, je + 1));
                return lt ? (Ue.u = +lt[0], je + lt[0].length) : -1;
              }
              function I(Ue, We, je) {
                var lt = D.exec(We.slice(je, je + 2));
                return lt ? (Ue.U = +lt[0], je + lt[0].length) : -1;
              }
              function O(Ue, We, je) {
                var lt = D.exec(We.slice(je, je + 2));
                return lt ? (Ue.V = +lt[0], je + lt[0].length) : -1;
              }
              function $(Ue, We, je) {
                var lt = D.exec(We.slice(je, je + 2));
                return lt ? (Ue.W = +lt[0], je + lt[0].length) : -1;
              }
              function Y(Ue, We, je) {
                var lt = D.exec(We.slice(je, je + 4));
                return lt ? (Ue.y = +lt[0], je + lt[0].length) : -1;
              }
              function ne(Ue, We, je) {
                var lt = D.exec(We.slice(je, je + 2));
                return lt ? (Ue.y = +lt[0] + (+lt[0] > 68 ? 1900 : 2e3), je + lt[0].length) : -1;
              }
              function q(Ue, We, je) {
                var lt = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(We.slice(je, je + 6));
                return lt ? (Ue.Z = lt[1] ? 0 : -(lt[2] + (lt[3] || "00")), je + lt[0].length) : -1;
              }
              function B(Ue, We, je) {
                var lt = D.exec(We.slice(je, je + 1));
                return lt ? (Ue.q = lt[0] * 3 - 3, je + lt[0].length) : -1;
              }
              function X(Ue, We, je) {
                var lt = D.exec(We.slice(je, je + 2));
                return lt ? (Ue.m = lt[0] - 1, je + lt[0].length) : -1;
              }
              function U(Ue, We, je) {
                var lt = D.exec(We.slice(je, je + 2));
                return lt ? (Ue.d = +lt[0], je + lt[0].length) : -1;
              }
              function te(Ue, We, je) {
                var lt = D.exec(We.slice(je, je + 3));
                return lt ? (Ue.m = 0, Ue.d = +lt[0], je + lt[0].length) : -1;
              }
              function se(Ue, We, je) {
                var lt = D.exec(We.slice(je, je + 2));
                return lt ? (Ue.H = +lt[0], je + lt[0].length) : -1;
              }
              function me(Ue, We, je) {
                var lt = D.exec(We.slice(je, je + 2));
                return lt ? (Ue.M = +lt[0], je + lt[0].length) : -1;
              }
              function J(Ue, We, je) {
                var lt = D.exec(We.slice(je, je + 2));
                return lt ? (Ue.S = +lt[0], je + lt[0].length) : -1;
              }
              function W(Ue, We, je) {
                var lt = D.exec(We.slice(je, je + 3));
                return lt ? (Ue.L = +lt[0], je + lt[0].length) : -1;
              }
              function ae(Ue, We, je) {
                var lt = D.exec(We.slice(je, je + 6));
                return lt ? (Ue.L = Math.floor(lt[0] / 1e3), je + lt[0].length) : -1;
              }
              function oe(Ue, We, je) {
                var lt = C.exec(We.slice(je, je + 1));
                return lt ? je + lt[0].length : -1;
              }
              function ve(Ue, We, je) {
                var lt = D.exec(We.slice(je));
                return lt ? (Ue.Q = +lt[0], je + lt[0].length) : -1;
              }
              function fe(Ue, We, je) {
                var lt = D.exec(We.slice(je));
                return lt ? (Ue.s = +lt[0], je + lt[0].length) : -1;
              }
              function ye(Ue, We) {
                return S(Ue.getDate(), We, 2);
              }
              function Ce(Ue, We) {
                return S(Ue.getHours(), We, 2);
              }
              function Re(Ue, We) {
                return S(Ue.getHours() % 12 || 12, We, 2);
              }
              function Be(Ue, We) {
                return S(1 + f.c.count((0, u.c)(Ue), Ue), We, 3);
              }
              function xe(Ue, We) {
                return S(Ue.getMilliseconds(), We, 3);
              }
              function Me(Ue, We) {
                return xe(Ue, We) + "000";
              }
              function De(Ue, We) {
                return S(Ue.getMonth() + 1, We, 2);
              }
              function Z(Ue, We) {
                return S(Ue.getMinutes(), We, 2);
              }
              function ee(Ue, We) {
                return S(Ue.getSeconds(), We, 2);
              }
              function ie(Ue) {
                var We = Ue.getDay();
                return We === 0 ? 7 : We;
              }
              function G(Ue, We) {
                return S(l.uU.count((0, u.c)(Ue) - 1, Ue), We, 2);
              }
              function H(Ue, We) {
                var je = Ue.getDay();
                return Ue = je >= 4 || je === 0 ? (0, l.kD)(Ue) : l.kD.ceil(Ue), S(l.kD.count((0, u.c)(Ue), Ue) + ((0, u.c)(Ue).getDay() === 4), We, 2);
              }
              function ce(Ue) {
                return Ue.getDay();
              }
              function j(Ue, We) {
                return S(l.qT.count((0, u.c)(Ue) - 1, Ue), We, 2);
              }
              function he(Ue, We) {
                return S(Ue.getFullYear() % 100, We, 2);
              }
              function be(Ue, We) {
                return S(Ue.getFullYear() % 1e4, We, 4);
              }
              function we(Ue) {
                var We = Ue.getTimezoneOffset();
                return (We > 0 ? "-" : (We *= -1, "+")) + S(We / 60 | 0, "0", 2) + S(We % 60, "0", 2);
              }
              function Ie(Ue, We) {
                return S(Ue.getUTCDate(), We, 2);
              }
              function Ge(Ue, We) {
                return S(Ue.getUTCHours(), We, 2);
              }
              function Ve(Ue, We) {
                return S(Ue.getUTCHours() % 12 || 12, We, 2);
              }
              function Je(Ue, We) {
                return S(1 + p.c.count((0, c.c)(Ue), Ue), We, 3);
              }
              function et(Ue, We) {
                return S(Ue.getUTCMilliseconds(), We, 3);
              }
              function at(Ue, We) {
                return et(Ue, We) + "000";
              }
              function Le(Ue, We) {
                return S(Ue.getUTCMonth() + 1, We, 2);
              }
              function ze(Ue, We) {
                return S(Ue.getUTCMinutes(), We, 2);
              }
              function Oe(Ue, We) {
                return S(Ue.getUTCSeconds(), We, 2);
              }
              function Xe(Ue) {
                var We = Ue.getUTCDay();
                return We === 0 ? 7 : We;
              }
              function it(Ue, We) {
                return S(a.EV.count((0, c.c)(Ue) - 1, Ue), We, 2);
              }
              function ut(Ue, We) {
                var je = Ue.getUTCDay();
                return Ue = je >= 4 || je === 0 ? (0, a.yA)(Ue) : a.yA.ceil(Ue), S(a.yA.count((0, c.c)(Ue), Ue) + ((0, c.c)(Ue).getUTCDay() === 4), We, 2);
              }
              function wt(Ue) {
                return Ue.getUTCDay();
              }
              function kt(Ue, We) {
                return S(a.ot.count((0, c.c)(Ue) - 1, Ue), We, 2);
              }
              function Ot(Ue, We) {
                return S(Ue.getUTCFullYear() % 100, We, 2);
              }
              function Lt(Ue, We) {
                return S(Ue.getUTCFullYear() % 1e4, We, 4);
              }
              function Mt() {
                return "+0000";
              }
              function Ut() {
                return "%";
              }
              function Ct(Ue) {
                return +Ue;
              }
              function jt(Ue) {
                return Math.floor(+Ue / 1e3);
              }
              var nr, Jt, Wt;
              qe({
                dateTime: "%x, %X",
                date: "%-m/%-d/%Y",
                time: "%-I:%M:%S %p",
                periods: ["AM", "PM"],
                days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
                shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
                months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
                shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
              });
              function qe(Ue) {
                return nr = b(Ue), Jt = nr.format, nr.parse, Wt = nr.utcFormat, nr.utcParse, nr;
              }
            }
          ),
          /***/
          8936: (
            /***/
            function(M, L, r) {
              r.d(L, {
                /* harmony export */
                m: function() {
                  return (
                    /* binding */
                    f
                  );
                }
                /* harmony export */
              });
              var a = r(1628), p = r(9792), l = (0, a.c)(function(u) {
                u.setHours(0, 0, 0, 0);
              }, function(u, c) {
                u.setDate(u.getDate() + c);
              }, function(u, c) {
                return (c - u - (c.getTimezoneOffset() - u.getTimezoneOffset()) * p.iy) / p.SK;
              }, function(u) {
                return u.getDate() - 1;
              });
              L.c = l;
              var f = l.range;
            }
          ),
          /***/
          9792: (
            /***/
            function(M, L, r) {
              r.d(L, {
                /* harmony export */
                KK: function() {
                  return (
                    /* binding */
                    u
                  );
                },
                /* harmony export */
                SK: function() {
                  return (
                    /* binding */
                    f
                  );
                },
                /* harmony export */
                cg: function() {
                  return (
                    /* binding */
                    l
                  );
                },
                /* harmony export */
                iy: function() {
                  return (
                    /* binding */
                    p
                  );
                },
                /* harmony export */
                yc: function() {
                  return (
                    /* binding */
                    a
                  );
                }
                /* harmony export */
              });
              var a = 1e3, p = 6e4, l = 36e5, f = 864e5, u = 6048e5;
            }
          ),
          /***/
          3220: (
            /***/
            function(M, L, r) {
              r.r(L), r.d(L, {
                timeDay: function() {
                  return (
                    /* reexport */
                    S.c
                  );
                },
                timeDays: function() {
                  return (
                    /* reexport */
                    S.m
                  );
                },
                timeFriday: function() {
                  return (
                    /* reexport */
                    T.iB
                  );
                },
                timeFridays: function() {
                  return (
                    /* reexport */
                    T.sJ
                  );
                },
                timeHour: function() {
                  return (
                    /* reexport */
                    C
                  );
                },
                timeHours: function() {
                  return (
                    /* reexport */
                    w
                  );
                },
                timeInterval: function() {
                  return (
                    /* reexport */
                    a.c
                  );
                },
                timeMillisecond: function() {
                  return (
                    /* reexport */
                    l
                  );
                },
                timeMilliseconds: function() {
                  return (
                    /* reexport */
                    f
                  );
                },
                timeMinute: function() {
                  return (
                    /* reexport */
                    b
                  );
                },
                timeMinutes: function() {
                  return (
                    /* reexport */
                    x
                  );
                },
                timeMonday: function() {
                  return (
                    /* reexport */
                    T.qT
                  );
                },
                timeMondays: function() {
                  return (
                    /* reexport */
                    T.QP
                  );
                },
                timeMonth: function() {
                  return (
                    /* reexport */
                    A
                  );
                },
                timeMonths: function() {
                  return (
                    /* reexport */
                    R
                  );
                },
                timeSaturday: function() {
                  return (
                    /* reexport */
                    T.Wc
                  );
                },
                timeSaturdays: function() {
                  return (
                    /* reexport */
                    T.aI
                  );
                },
                timeSecond: function() {
                  return (
                    /* reexport */
                    d
                  );
                },
                timeSeconds: function() {
                  return (
                    /* reexport */
                    h
                  );
                },
                timeSunday: function() {
                  return (
                    /* reexport */
                    T.uU
                  );
                },
                timeSundays: function() {
                  return (
                    /* reexport */
                    T.Ab
                  );
                },
                timeThursday: function() {
                  return (
                    /* reexport */
                    T.kD
                  );
                },
                timeThursdays: function() {
                  return (
                    /* reexport */
                    T.eC
                  );
                },
                timeTuesday: function() {
                  return (
                    /* reexport */
                    T.Mf
                  );
                },
                timeTuesdays: function() {
                  return (
                    /* reexport */
                    T.Oc
                  );
                },
                timeWednesday: function() {
                  return (
                    /* reexport */
                    T.eg
                  );
                },
                timeWednesdays: function() {
                  return (
                    /* reexport */
                    T.sn
                  );
                },
                timeWeek: function() {
                  return (
                    /* reexport */
                    T.uU
                  );
                },
                timeWeeks: function() {
                  return (
                    /* reexport */
                    T.Ab
                  );
                },
                timeYear: function() {
                  return (
                    /* reexport */
                    g.c
                  );
                },
                timeYears: function() {
                  return (
                    /* reexport */
                    g.Q
                  );
                },
                utcDay: function() {
                  return (
                    /* reexport */
                    B.c
                  );
                },
                utcDays: function() {
                  return (
                    /* reexport */
                    B.o
                  );
                },
                utcFriday: function() {
                  return (
                    /* reexport */
                    X.od
                  );
                },
                utcFridays: function() {
                  return (
                    /* reexport */
                    X.iG
                  );
                },
                utcHour: function() {
                  return (
                    /* reexport */
                    ne
                  );
                },
                utcHours: function() {
                  return (
                    /* reexport */
                    q
                  );
                },
                utcMillisecond: function() {
                  return (
                    /* reexport */
                    l
                  );
                },
                utcMilliseconds: function() {
                  return (
                    /* reexport */
                    f
                  );
                },
                utcMinute: function() {
                  return (
                    /* reexport */
                    O
                  );
                },
                utcMinutes: function() {
                  return (
                    /* reexport */
                    $
                  );
                },
                utcMonday: function() {
                  return (
                    /* reexport */
                    X.ot
                  );
                },
                utcMondays: function() {
                  return (
                    /* reexport */
                    X.iO
                  );
                },
                utcMonth: function() {
                  return (
                    /* reexport */
                    te
                  );
                },
                utcMonths: function() {
                  return (
                    /* reexport */
                    se
                  );
                },
                utcSaturday: function() {
                  return (
                    /* reexport */
                    X.Ad
                  );
                },
                utcSaturdays: function() {
                  return (
                    /* reexport */
                    X.K8
                  );
                },
                utcSecond: function() {
                  return (
                    /* reexport */
                    d
                  );
                },
                utcSeconds: function() {
                  return (
                    /* reexport */
                    h
                  );
                },
                utcSunday: function() {
                  return (
                    /* reexport */
                    X.EV
                  );
                },
                utcSundays: function() {
                  return (
                    /* reexport */
                    X.Wq
                  );
                },
                utcThursday: function() {
                  return (
                    /* reexport */
                    X.yA
                  );
                },
                utcThursdays: function() {
                  return (
                    /* reexport */
                    X.ob
                  );
                },
                utcTuesday: function() {
                  return (
                    /* reexport */
                    X.sG
                  );
                },
                utcTuesdays: function() {
                  return (
                    /* reexport */
                    X.kl
                  );
                },
                utcWednesday: function() {
                  return (
                    /* reexport */
                    X._6
                  );
                },
                utcWednesdays: function() {
                  return (
                    /* reexport */
                    X.W_
                  );
                },
                utcWeek: function() {
                  return (
                    /* reexport */
                    X.EV
                  );
                },
                utcWeeks: function() {
                  return (
                    /* reexport */
                    X.Wq
                  );
                },
                utcYear: function() {
                  return (
                    /* reexport */
                    me.c
                  );
                },
                utcYears: function() {
                  return (
                    /* reexport */
                    me.i
                  );
                }
              });
              var a = r(1628), p = (0, a.c)(function() {
              }, function(J, W) {
                J.setTime(+J + W);
              }, function(J, W) {
                return W - J;
              });
              p.every = function(J) {
                return J = Math.floor(J), !isFinite(J) || !(J > 0) ? null : J > 1 ? (0, a.c)(function(W) {
                  W.setTime(Math.floor(W / J) * J);
                }, function(W, ae) {
                  W.setTime(+W + ae * J);
                }, function(W, ae) {
                  return (ae - W) / J;
                }) : p;
              };
              var l = p, f = p.range, u = r(9792), c = (0, a.c)(function(J) {
                J.setTime(J - J.getMilliseconds());
              }, function(J, W) {
                J.setTime(+J + W * u.yc);
              }, function(J, W) {
                return (W - J) / u.yc;
              }, function(J) {
                return J.getUTCSeconds();
              }), d = c, h = c.range, i = (0, a.c)(function(J) {
                J.setTime(J - J.getMilliseconds() - J.getSeconds() * u.yc);
              }, function(J, W) {
                J.setTime(+J + W * u.iy);
              }, function(J, W) {
                return (W - J) / u.iy;
              }, function(J) {
                return J.getMinutes();
              }), b = i, x = i.range, D = (0, a.c)(function(J) {
                J.setTime(J - J.getMilliseconds() - J.getSeconds() * u.yc - J.getMinutes() * u.iy);
              }, function(J, W) {
                J.setTime(+J + W * u.cg);
              }, function(J, W) {
                return (W - J) / u.cg;
              }, function(J) {
                return J.getHours();
              }), C = D, w = D.range, S = r(8936), T = r(6192), k = (0, a.c)(function(J) {
                J.setDate(1), J.setHours(0, 0, 0, 0);
              }, function(J, W) {
                J.setMonth(J.getMonth() + W);
              }, function(J, W) {
                return W.getMonth() - J.getMonth() + (W.getFullYear() - J.getFullYear()) * 12;
              }, function(J) {
                return J.getMonth();
              }), A = k, R = k.range, g = r(2171), I = (0, a.c)(function(J) {
                J.setUTCSeconds(0, 0);
              }, function(J, W) {
                J.setTime(+J + W * u.iy);
              }, function(J, W) {
                return (W - J) / u.iy;
              }, function(J) {
                return J.getUTCMinutes();
              }), O = I, $ = I.range, Y = (0, a.c)(function(J) {
                J.setUTCMinutes(0, 0, 0);
              }, function(J, W) {
                J.setTime(+J + W * u.cg);
              }, function(J, W) {
                return (W - J) / u.cg;
              }, function(J) {
                return J.getUTCHours();
              }), ne = Y, q = Y.range, B = r(8931), X = r(8208), U = (0, a.c)(function(J) {
                J.setUTCDate(1), J.setUTCHours(0, 0, 0, 0);
              }, function(J, W) {
                J.setUTCMonth(J.getUTCMonth() + W);
              }, function(J, W) {
                return W.getUTCMonth() - J.getUTCMonth() + (W.getUTCFullYear() - J.getUTCFullYear()) * 12;
              }, function(J) {
                return J.getUTCMonth();
              }), te = U, se = U.range, me = r(3528);
            }
          ),
          /***/
          1628: (
            /***/
            function(M, L, r) {
              r.d(L, {
                /* harmony export */
                c: function() {
                  return (
                    /* binding */
                    l
                  );
                }
                /* harmony export */
              });
              var a = /* @__PURE__ */ new Date(), p = /* @__PURE__ */ new Date();
              function l(f, u, c, d) {
                function h(i) {
                  return f(i = arguments.length === 0 ? /* @__PURE__ */ new Date() : /* @__PURE__ */ new Date(+i)), i;
                }
                return h.floor = function(i) {
                  return f(i = /* @__PURE__ */ new Date(+i)), i;
                }, h.ceil = function(i) {
                  return f(i = new Date(i - 1)), u(i, 1), f(i), i;
                }, h.round = function(i) {
                  var b = h(i), x = h.ceil(i);
                  return i - b < x - i ? b : x;
                }, h.offset = function(i, b) {
                  return u(i = /* @__PURE__ */ new Date(+i), b == null ? 1 : Math.floor(b)), i;
                }, h.range = function(i, b, x) {
                  var D = [], C;
                  if (i = h.ceil(i), x = x == null ? 1 : Math.floor(x), !(i < b) || !(x > 0))
                    return D;
                  do
                    D.push(C = /* @__PURE__ */ new Date(+i)), u(i, x), f(i);
                  while (C < i && i < b);
                  return D;
                }, h.filter = function(i) {
                  return l(function(b) {
                    if (b >= b)
                      for (; f(b), !i(b); )
                        b.setTime(b - 1);
                  }, function(b, x) {
                    if (b >= b)
                      if (x < 0)
                        for (; ++x <= 0; )
                          for (; u(b, -1), !i(b); )
                            ;
                      else
                        for (; --x >= 0; )
                          for (; u(b, 1), !i(b); )
                            ;
                  });
                }, c && (h.count = function(i, b) {
                  return a.setTime(+i), p.setTime(+b), f(a), f(p), Math.floor(c(a, p));
                }, h.every = function(i) {
                  return i = Math.floor(i), !isFinite(i) || !(i > 0) ? null : i > 1 ? h.filter(d ? function(b) {
                    return d(b) % i === 0;
                  } : function(b) {
                    return h.count(0, b) % i === 0;
                  }) : h;
                }), h;
              }
            }
          ),
          /***/
          8931: (
            /***/
            function(M, L, r) {
              r.d(L, {
                /* harmony export */
                o: function() {
                  return (
                    /* binding */
                    f
                  );
                }
                /* harmony export */
              });
              var a = r(1628), p = r(9792), l = (0, a.c)(function(u) {
                u.setUTCHours(0, 0, 0, 0);
              }, function(u, c) {
                u.setUTCDate(u.getUTCDate() + c);
              }, function(u, c) {
                return (c - u) / p.SK;
              }, function(u) {
                return u.getUTCDate() - 1;
              });
              L.c = l;
              var f = l.range;
            }
          ),
          /***/
          8208: (
            /***/
            function(M, L, r) {
              r.d(L, {
                /* harmony export */
                Ad: function() {
                  return (
                    /* binding */
                    b
                  );
                },
                /* harmony export */
                EV: function() {
                  return (
                    /* binding */
                    f
                  );
                },
                /* harmony export */
                K8: function() {
                  return (
                    /* binding */
                    k
                  );
                },
                /* harmony export */
                W_: function() {
                  return (
                    /* binding */
                    w
                  );
                },
                /* harmony export */
                Wq: function() {
                  return (
                    /* binding */
                    x
                  );
                },
                /* harmony export */
                _6: function() {
                  return (
                    /* binding */
                    d
                  );
                },
                /* harmony export */
                iG: function() {
                  return (
                    /* binding */
                    T
                  );
                },
                /* harmony export */
                iO: function() {
                  return (
                    /* binding */
                    D
                  );
                },
                /* harmony export */
                kl: function() {
                  return (
                    /* binding */
                    C
                  );
                },
                /* harmony export */
                ob: function() {
                  return (
                    /* binding */
                    S
                  );
                },
                /* harmony export */
                od: function() {
                  return (
                    /* binding */
                    i
                  );
                },
                /* harmony export */
                ot: function() {
                  return (
                    /* binding */
                    u
                  );
                },
                /* harmony export */
                sG: function() {
                  return (
                    /* binding */
                    c
                  );
                },
                /* harmony export */
                yA: function() {
                  return (
                    /* binding */
                    h
                  );
                }
                /* harmony export */
              });
              var a = r(1628), p = r(9792);
              function l(A) {
                return (0, a.c)(function(R) {
                  R.setUTCDate(R.getUTCDate() - (R.getUTCDay() + 7 - A) % 7), R.setUTCHours(0, 0, 0, 0);
                }, function(R, g) {
                  R.setUTCDate(R.getUTCDate() + g * 7);
                }, function(R, g) {
                  return (g - R) / p.KK;
                });
              }
              var f = l(0), u = l(1), c = l(2), d = l(3), h = l(4), i = l(5), b = l(6), x = f.range, D = u.range, C = c.range, w = d.range, S = h.range, T = i.range, k = b.range;
            }
          ),
          /***/
          3528: (
            /***/
            function(M, L, r) {
              r.d(L, {
                /* harmony export */
                i: function() {
                  return (
                    /* binding */
                    l
                  );
                }
                /* harmony export */
              });
              var a = r(1628), p = (0, a.c)(function(f) {
                f.setUTCMonth(0, 1), f.setUTCHours(0, 0, 0, 0);
              }, function(f, u) {
                f.setUTCFullYear(f.getUTCFullYear() + u);
              }, function(f, u) {
                return u.getUTCFullYear() - f.getUTCFullYear();
              }, function(f) {
                return f.getUTCFullYear();
              });
              p.every = function(f) {
                return !isFinite(f = Math.floor(f)) || !(f > 0) ? null : (0, a.c)(function(u) {
                  u.setUTCFullYear(Math.floor(u.getUTCFullYear() / f) * f), u.setUTCMonth(0, 1), u.setUTCHours(0, 0, 0, 0);
                }, function(u, c) {
                  u.setUTCFullYear(u.getUTCFullYear() + c * f);
                });
              }, L.c = p;
              var l = p.range;
            }
          ),
          /***/
          6192: (
            /***/
            function(M, L, r) {
              r.d(L, {
                /* harmony export */
                Ab: function() {
                  return (
                    /* binding */
                    x
                  );
                },
                /* harmony export */
                Mf: function() {
                  return (
                    /* binding */
                    c
                  );
                },
                /* harmony export */
                Oc: function() {
                  return (
                    /* binding */
                    C
                  );
                },
                /* harmony export */
                QP: function() {
                  return (
                    /* binding */
                    D
                  );
                },
                /* harmony export */
                Wc: function() {
                  return (
                    /* binding */
                    b
                  );
                },
                /* harmony export */
                aI: function() {
                  return (
                    /* binding */
                    k
                  );
                },
                /* harmony export */
                eC: function() {
                  return (
                    /* binding */
                    S
                  );
                },
                /* harmony export */
                eg: function() {
                  return (
                    /* binding */
                    d
                  );
                },
                /* harmony export */
                iB: function() {
                  return (
                    /* binding */
                    i
                  );
                },
                /* harmony export */
                kD: function() {
                  return (
                    /* binding */
                    h
                  );
                },
                /* harmony export */
                qT: function() {
                  return (
                    /* binding */
                    u
                  );
                },
                /* harmony export */
                sJ: function() {
                  return (
                    /* binding */
                    T
                  );
                },
                /* harmony export */
                sn: function() {
                  return (
                    /* binding */
                    w
                  );
                },
                /* harmony export */
                uU: function() {
                  return (
                    /* binding */
                    f
                  );
                }
                /* harmony export */
              });
              var a = r(1628), p = r(9792);
              function l(A) {
                return (0, a.c)(function(R) {
                  R.setDate(R.getDate() - (R.getDay() + 7 - A) % 7), R.setHours(0, 0, 0, 0);
                }, function(R, g) {
                  R.setDate(R.getDate() + g * 7);
                }, function(R, g) {
                  return (g - R - (g.getTimezoneOffset() - R.getTimezoneOffset()) * p.iy) / p.KK;
                });
              }
              var f = l(0), u = l(1), c = l(2), d = l(3), h = l(4), i = l(5), b = l(6), x = f.range, D = u.range, C = c.range, w = d.range, S = h.range, T = i.range, k = b.range;
            }
          ),
          /***/
          2171: (
            /***/
            function(M, L, r) {
              r.d(L, {
                /* harmony export */
                Q: function() {
                  return (
                    /* binding */
                    l
                  );
                }
                /* harmony export */
              });
              var a = r(1628), p = (0, a.c)(function(f) {
                f.setMonth(0, 1), f.setHours(0, 0, 0, 0);
              }, function(f, u) {
                f.setFullYear(f.getFullYear() + u);
              }, function(f, u) {
                return u.getFullYear() - f.getFullYear();
              }, function(f) {
                return f.getFullYear();
              });
              p.every = function(f) {
                return !isFinite(f = Math.floor(f)) || !(f > 0) ? null : (0, a.c)(function(u) {
                  u.setFullYear(Math.floor(u.getFullYear() / f) * f), u.setMonth(0, 1), u.setHours(0, 0, 0, 0);
                }, function(u, c) {
                  u.setFullYear(u.getFullYear() + c * f);
                });
              }, L.c = p;
              var l = p.range;
            }
          ),
          /***/
          1252: (
            /***/
            function(M) {
              var L = typeof Reflect == "object" ? Reflect : null, r = L && typeof L.apply == "function" ? L.apply : function(g, I, O) {
                return Function.prototype.apply.call(g, I, O);
              }, a;
              L && typeof L.ownKeys == "function" ? a = L.ownKeys : Object.getOwnPropertySymbols ? a = function(g) {
                return Object.getOwnPropertyNames(g).concat(Object.getOwnPropertySymbols(g));
              } : a = function(g) {
                return Object.getOwnPropertyNames(g);
              };
              function p(R) {
                console && console.warn && console.warn(R);
              }
              var l = Number.isNaN || function(g) {
                return g !== g;
              };
              function f() {
                f.init.call(this);
              }
              M.exports = f, M.exports.once = T, f.EventEmitter = f, f.prototype._events = void 0, f.prototype._eventsCount = 0, f.prototype._maxListeners = void 0;
              var u = 10;
              function c(R) {
                if (typeof R != "function")
                  throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof R);
              }
              Object.defineProperty(f, "defaultMaxListeners", {
                enumerable: !0,
                get: function() {
                  return u;
                },
                set: function(R) {
                  if (typeof R != "number" || R < 0 || l(R))
                    throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + R + ".");
                  u = R;
                }
              }), f.init = function() {
                (this._events === void 0 || this._events === Object.getPrototypeOf(this)._events) && (this._events = /* @__PURE__ */ Object.create(null), this._eventsCount = 0), this._maxListeners = this._maxListeners || void 0;
              }, f.prototype.setMaxListeners = function(g) {
                if (typeof g != "number" || g < 0 || l(g))
                  throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + g + ".");
                return this._maxListeners = g, this;
              };
              function d(R) {
                return R._maxListeners === void 0 ? f.defaultMaxListeners : R._maxListeners;
              }
              f.prototype.getMaxListeners = function() {
                return d(this);
              }, f.prototype.emit = function(g) {
                for (var I = [], O = 1; O < arguments.length; O++)
                  I.push(arguments[O]);
                var $ = g === "error", Y = this._events;
                if (Y !== void 0)
                  $ = $ && Y.error === void 0;
                else if (!$)
                  return !1;
                if ($) {
                  var ne;
                  if (I.length > 0 && (ne = I[0]), ne instanceof Error)
                    throw ne;
                  var q = new Error("Unhandled error." + (ne ? " (" + ne.message + ")" : ""));
                  throw q.context = ne, q;
                }
                var B = Y[g];
                if (B === void 0)
                  return !1;
                if (typeof B == "function")
                  r(B, this, I);
                else
                  for (var X = B.length, U = C(B, X), O = 0; O < X; ++O)
                    r(U[O], this, I);
                return !0;
              };
              function h(R, g, I, O) {
                var $, Y, ne;
                if (c(I), Y = R._events, Y === void 0 ? (Y = R._events = /* @__PURE__ */ Object.create(null), R._eventsCount = 0) : (Y.newListener !== void 0 && (R.emit(
                  "newListener",
                  g,
                  I.listener ? I.listener : I
                ), Y = R._events), ne = Y[g]), ne === void 0)
                  ne = Y[g] = I, ++R._eventsCount;
                else if (typeof ne == "function" ? ne = Y[g] = O ? [I, ne] : [ne, I] : O ? ne.unshift(I) : ne.push(I), $ = d(R), $ > 0 && ne.length > $ && !ne.warned) {
                  ne.warned = !0;
                  var q = new Error("Possible EventEmitter memory leak detected. " + ne.length + " " + String(g) + " listeners added. Use emitter.setMaxListeners() to increase limit");
                  q.name = "MaxListenersExceededWarning", q.emitter = R, q.type = g, q.count = ne.length, p(q);
                }
                return R;
              }
              f.prototype.addListener = function(g, I) {
                return h(this, g, I, !1);
              }, f.prototype.on = f.prototype.addListener, f.prototype.prependListener = function(g, I) {
                return h(this, g, I, !0);
              };
              function i() {
                if (!this.fired)
                  return this.target.removeListener(this.type, this.wrapFn), this.fired = !0, arguments.length === 0 ? this.listener.call(this.target) : this.listener.apply(this.target, arguments);
              }
              function b(R, g, I) {
                var O = { fired: !1, wrapFn: void 0, target: R, type: g, listener: I }, $ = i.bind(O);
                return $.listener = I, O.wrapFn = $, $;
              }
              f.prototype.once = function(g, I) {
                return c(I), this.on(g, b(this, g, I)), this;
              }, f.prototype.prependOnceListener = function(g, I) {
                return c(I), this.prependListener(g, b(this, g, I)), this;
              }, f.prototype.removeListener = function(g, I) {
                var O, $, Y, ne, q;
                if (c(I), $ = this._events, $ === void 0)
                  return this;
                if (O = $[g], O === void 0)
                  return this;
                if (O === I || O.listener === I)
                  --this._eventsCount === 0 ? this._events = /* @__PURE__ */ Object.create(null) : (delete $[g], $.removeListener && this.emit("removeListener", g, O.listener || I));
                else if (typeof O != "function") {
                  for (Y = -1, ne = O.length - 1; ne >= 0; ne--)
                    if (O[ne] === I || O[ne].listener === I) {
                      q = O[ne].listener, Y = ne;
                      break;
                    }
                  if (Y < 0)
                    return this;
                  Y === 0 ? O.shift() : w(O, Y), O.length === 1 && ($[g] = O[0]), $.removeListener !== void 0 && this.emit("removeListener", g, q || I);
                }
                return this;
              }, f.prototype.off = f.prototype.removeListener, f.prototype.removeAllListeners = function(g) {
                var I, O, $;
                if (O = this._events, O === void 0)
                  return this;
                if (O.removeListener === void 0)
                  return arguments.length === 0 ? (this._events = /* @__PURE__ */ Object.create(null), this._eventsCount = 0) : O[g] !== void 0 && (--this._eventsCount === 0 ? this._events = /* @__PURE__ */ Object.create(null) : delete O[g]), this;
                if (arguments.length === 0) {
                  var Y = Object.keys(O), ne;
                  for ($ = 0; $ < Y.length; ++$)
                    ne = Y[$], ne !== "removeListener" && this.removeAllListeners(ne);
                  return this.removeAllListeners("removeListener"), this._events = /* @__PURE__ */ Object.create(null), this._eventsCount = 0, this;
                }
                if (I = O[g], typeof I == "function")
                  this.removeListener(g, I);
                else if (I !== void 0)
                  for ($ = I.length - 1; $ >= 0; $--)
                    this.removeListener(g, I[$]);
                return this;
              };
              function x(R, g, I) {
                var O = R._events;
                if (O === void 0)
                  return [];
                var $ = O[g];
                return $ === void 0 ? [] : typeof $ == "function" ? I ? [$.listener || $] : [$] : I ? S($) : C($, $.length);
              }
              f.prototype.listeners = function(g) {
                return x(this, g, !0);
              }, f.prototype.rawListeners = function(g) {
                return x(this, g, !1);
              }, f.listenerCount = function(R, g) {
                return typeof R.listenerCount == "function" ? R.listenerCount(g) : D.call(R, g);
              }, f.prototype.listenerCount = D;
              function D(R) {
                var g = this._events;
                if (g !== void 0) {
                  var I = g[R];
                  if (typeof I == "function")
                    return 1;
                  if (I !== void 0)
                    return I.length;
                }
                return 0;
              }
              f.prototype.eventNames = function() {
                return this._eventsCount > 0 ? a(this._events) : [];
              };
              function C(R, g) {
                for (var I = new Array(g), O = 0; O < g; ++O)
                  I[O] = R[O];
                return I;
              }
              function w(R, g) {
                for (; g + 1 < R.length; g++)
                  R[g] = R[g + 1];
                R.pop();
              }
              function S(R) {
                for (var g = new Array(R.length), I = 0; I < g.length; ++I)
                  g[I] = R[I].listener || R[I];
                return g;
              }
              function T(R, g) {
                return new Promise(function(I, O) {
                  function $(ne) {
                    R.removeListener(g, Y), O(ne);
                  }
                  function Y() {
                    typeof R.removeListener == "function" && R.removeListener("error", $), I([].slice.call(arguments));
                  }
                  A(R, g, Y, { once: !0 }), g !== "error" && k(R, $, { once: !0 });
                });
              }
              function k(R, g, I) {
                typeof R.on == "function" && A(R, "error", g, I);
              }
              function A(R, g, I, O) {
                if (typeof R.on == "function")
                  O.once ? R.once(g, I) : R.on(g, I);
                else if (typeof R.addEventListener == "function")
                  R.addEventListener(g, function $(Y) {
                    O.once && R.removeEventListener(g, $), I(Y);
                  });
                else
                  throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type ' + typeof R);
              }
            }
          ),
          /***/
          8248: (
            /***/
            function(M, L, r) {
              var a = r(4576);
              M.exports = function(p) {
                var l = typeof p;
                if (l === "string") {
                  var f = p;
                  if (p = +p, p === 0 && a(f))
                    return !1;
                } else if (l !== "number")
                  return !1;
                return p - p < 1;
              };
            }
          ),
          /***/
          2408: (
            /***/
            function(M) {
              M.exports = L;
              function L(r, a) {
                var p = a[0], l = a[1], f = a[2], u = a[3], c = a[4], d = a[5], h = a[6], i = a[7], b = a[8], x = a[9], D = a[10], C = a[11], w = a[12], S = a[13], T = a[14], k = a[15];
                return r[0] = d * (D * k - C * T) - x * (h * k - i * T) + S * (h * C - i * D), r[1] = -(l * (D * k - C * T) - x * (f * k - u * T) + S * (f * C - u * D)), r[2] = l * (h * k - i * T) - d * (f * k - u * T) + S * (f * i - u * h), r[3] = -(l * (h * C - i * D) - d * (f * C - u * D) + x * (f * i - u * h)), r[4] = -(c * (D * k - C * T) - b * (h * k - i * T) + w * (h * C - i * D)), r[5] = p * (D * k - C * T) - b * (f * k - u * T) + w * (f * C - u * D), r[6] = -(p * (h * k - i * T) - c * (f * k - u * T) + w * (f * i - u * h)), r[7] = p * (h * C - i * D) - c * (f * C - u * D) + b * (f * i - u * h), r[8] = c * (x * k - C * S) - b * (d * k - i * S) + w * (d * C - i * x), r[9] = -(p * (x * k - C * S) - b * (l * k - u * S) + w * (l * C - u * x)), r[10] = p * (d * k - i * S) - c * (l * k - u * S) + w * (l * i - u * d), r[11] = -(p * (d * C - i * x) - c * (l * C - u * x) + b * (l * i - u * d)), r[12] = -(c * (x * T - D * S) - b * (d * T - h * S) + w * (d * D - h * x)), r[13] = p * (x * T - D * S) - b * (l * T - f * S) + w * (l * D - f * x), r[14] = -(p * (d * T - h * S) - c * (l * T - f * S) + w * (l * h - f * d)), r[15] = p * (d * D - h * x) - c * (l * D - f * x) + b * (l * h - f * d), r;
              }
            }
          ),
          /***/
          6860: (
            /***/
            function(M) {
              M.exports = L;
              function L(r) {
                var a = new Float32Array(16);
                return a[0] = r[0], a[1] = r[1], a[2] = r[2], a[3] = r[3], a[4] = r[4], a[5] = r[5], a[6] = r[6], a[7] = r[7], a[8] = r[8], a[9] = r[9], a[10] = r[10], a[11] = r[11], a[12] = r[12], a[13] = r[13], a[14] = r[14], a[15] = r[15], a;
              }
            }
          ),
          /***/
          4492: (
            /***/
            function(M) {
              M.exports = L;
              function L(r, a) {
                return r[0] = a[0], r[1] = a[1], r[2] = a[2], r[3] = a[3], r[4] = a[4], r[5] = a[5], r[6] = a[6], r[7] = a[7], r[8] = a[8], r[9] = a[9], r[10] = a[10], r[11] = a[11], r[12] = a[12], r[13] = a[13], r[14] = a[14], r[15] = a[15], r;
              }
            }
          ),
          /***/
          4212: (
            /***/
            function(M) {
              M.exports = L;
              function L() {
                var r = new Float32Array(16);
                return r[0] = 1, r[1] = 0, r[2] = 0, r[3] = 0, r[4] = 0, r[5] = 1, r[6] = 0, r[7] = 0, r[8] = 0, r[9] = 0, r[10] = 1, r[11] = 0, r[12] = 0, r[13] = 0, r[14] = 0, r[15] = 1, r;
              }
            }
          ),
          /***/
          800: (
            /***/
            function(M) {
              M.exports = L;
              function L(r) {
                var a = r[0], p = r[1], l = r[2], f = r[3], u = r[4], c = r[5], d = r[6], h = r[7], i = r[8], b = r[9], x = r[10], D = r[11], C = r[12], w = r[13], S = r[14], T = r[15], k = a * c - p * u, A = a * d - l * u, R = a * h - f * u, g = p * d - l * c, I = p * h - f * c, O = l * h - f * d, $ = i * w - b * C, Y = i * S - x * C, ne = i * T - D * C, q = b * S - x * w, B = b * T - D * w, X = x * T - D * S;
                return k * X - A * B + R * q + g * ne - I * Y + O * $;
              }
            }
          ),
          /***/
          1784: (
            /***/
            function(M) {
              M.exports = L;
              function L(r, a) {
                var p = a[0], l = a[1], f = a[2], u = a[3], c = p + p, d = l + l, h = f + f, i = p * c, b = l * c, x = l * d, D = f * c, C = f * d, w = f * h, S = u * c, T = u * d, k = u * h;
                return r[0] = 1 - x - w, r[1] = b + k, r[2] = D - T, r[3] = 0, r[4] = b - k, r[5] = 1 - i - w, r[6] = C + S, r[7] = 0, r[8] = D + T, r[9] = C - S, r[10] = 1 - i - x, r[11] = 0, r[12] = 0, r[13] = 0, r[14] = 0, r[15] = 1, r;
              }
            }
          ),
          /***/
          1616: (
            /***/
            function(M) {
              M.exports = L;
              function L(r, a, p) {
                var l, f, u, c = p[0], d = p[1], h = p[2], i = Math.sqrt(c * c + d * d + h * h);
                return Math.abs(i) < 1e-6 ? null : (i = 1 / i, c *= i, d *= i, h *= i, l = Math.sin(a), f = Math.cos(a), u = 1 - f, r[0] = c * c * u + f, r[1] = d * c * u + h * l, r[2] = h * c * u - d * l, r[3] = 0, r[4] = c * d * u - h * l, r[5] = d * d * u + f, r[6] = h * d * u + c * l, r[7] = 0, r[8] = c * h * u + d * l, r[9] = d * h * u - c * l, r[10] = h * h * u + f, r[11] = 0, r[12] = 0, r[13] = 0, r[14] = 0, r[15] = 1, r);
              }
            }
          ),
          /***/
          1944: (
            /***/
            function(M) {
              M.exports = L;
              function L(r, a, p) {
                var l = a[0], f = a[1], u = a[2], c = a[3], d = l + l, h = f + f, i = u + u, b = l * d, x = l * h, D = l * i, C = f * h, w = f * i, S = u * i, T = c * d, k = c * h, A = c * i;
                return r[0] = 1 - (C + S), r[1] = x + A, r[2] = D - k, r[3] = 0, r[4] = x - A, r[5] = 1 - (b + S), r[6] = w + T, r[7] = 0, r[8] = D + k, r[9] = w - T, r[10] = 1 - (b + C), r[11] = 0, r[12] = p[0], r[13] = p[1], r[14] = p[2], r[15] = 1, r;
              }
            }
          ),
          /***/
          9444: (
            /***/
            function(M) {
              M.exports = L;
              function L(r, a) {
                return r[0] = a[0], r[1] = 0, r[2] = 0, r[3] = 0, r[4] = 0, r[5] = a[1], r[6] = 0, r[7] = 0, r[8] = 0, r[9] = 0, r[10] = a[2], r[11] = 0, r[12] = 0, r[13] = 0, r[14] = 0, r[15] = 1, r;
              }
            }
          ),
          /***/
          8268: (
            /***/
            function(M) {
              M.exports = L;
              function L(r, a) {
                return r[0] = 1, r[1] = 0, r[2] = 0, r[3] = 0, r[4] = 0, r[5] = 1, r[6] = 0, r[7] = 0, r[8] = 0, r[9] = 0, r[10] = 1, r[11] = 0, r[12] = a[0], r[13] = a[1], r[14] = a[2], r[15] = 1, r;
              }
            }
          ),
          /***/
          1856: (
            /***/
            function(M) {
              M.exports = L;
              function L(r, a) {
                var p = Math.sin(a), l = Math.cos(a);
                return r[0] = 1, r[1] = 0, r[2] = 0, r[3] = 0, r[4] = 0, r[5] = l, r[6] = p, r[7] = 0, r[8] = 0, r[9] = -p, r[10] = l, r[11] = 0, r[12] = 0, r[13] = 0, r[14] = 0, r[15] = 1, r;
              }
            }
          ),
          /***/
          9216: (
            /***/
            function(M) {
              M.exports = L;
              function L(r, a) {
                var p = Math.sin(a), l = Math.cos(a);
                return r[0] = l, r[1] = 0, r[2] = -p, r[3] = 0, r[4] = 0, r[5] = 1, r[6] = 0, r[7] = 0, r[8] = p, r[9] = 0, r[10] = l, r[11] = 0, r[12] = 0, r[13] = 0, r[14] = 0, r[15] = 1, r;
              }
            }
          ),
          /***/
          7736: (
            /***/
            function(M) {
              M.exports = L;
              function L(r, a) {
                var p = Math.sin(a), l = Math.cos(a);
                return r[0] = l, r[1] = p, r[2] = 0, r[3] = 0, r[4] = -p, r[5] = l, r[6] = 0, r[7] = 0, r[8] = 0, r[9] = 0, r[10] = 1, r[11] = 0, r[12] = 0, r[13] = 0, r[14] = 0, r[15] = 1, r;
              }
            }
          ),
          /***/
          8848: (
            /***/
            function(M) {
              M.exports = L;
              function L(r, a, p, l, f, u, c) {
                var d = 1 / (p - a), h = 1 / (f - l), i = 1 / (u - c);
                return r[0] = u * 2 * d, r[1] = 0, r[2] = 0, r[3] = 0, r[4] = 0, r[5] = u * 2 * h, r[6] = 0, r[7] = 0, r[8] = (p + a) * d, r[9] = (f + l) * h, r[10] = (c + u) * i, r[11] = -1, r[12] = 0, r[13] = 0, r[14] = c * u * 2 * i, r[15] = 0, r;
              }
            }
          ),
          /***/
          6635: (
            /***/
            function(M) {
              M.exports = L;
              function L(r) {
                return r[0] = 1, r[1] = 0, r[2] = 0, r[3] = 0, r[4] = 0, r[5] = 1, r[6] = 0, r[7] = 0, r[8] = 0, r[9] = 0, r[10] = 1, r[11] = 0, r[12] = 0, r[13] = 0, r[14] = 0, r[15] = 1, r;
              }
            }
          ),
          /***/
          6524: (
            /***/
            function(M, L, r) {
              M.exports = {
                create: r(4212),
                clone: r(6860),
                copy: r(4492),
                identity: r(6635),
                transpose: r(6520),
                invert: r(4308),
                adjoint: r(2408),
                determinant: r(800),
                multiply: r(944),
                translate: r(5176),
                scale: r(8152),
                rotate: r(16),
                rotateX: r(5456),
                rotateY: r(4840),
                rotateZ: r(4192),
                fromRotation: r(1616),
                fromRotationTranslation: r(1944),
                fromScaling: r(9444),
                fromTranslation: r(8268),
                fromXRotation: r(1856),
                fromYRotation: r(9216),
                fromZRotation: r(7736),
                fromQuat: r(1784),
                frustum: r(8848),
                perspective: r(1296),
                perspectiveFromFieldOfView: r(3688),
                ortho: r(7688),
                lookAt: r(6508),
                str: r(9412)
              };
            }
          ),
          /***/
          4308: (
            /***/
            function(M) {
              M.exports = L;
              function L(r, a) {
                var p = a[0], l = a[1], f = a[2], u = a[3], c = a[4], d = a[5], h = a[6], i = a[7], b = a[8], x = a[9], D = a[10], C = a[11], w = a[12], S = a[13], T = a[14], k = a[15], A = p * d - l * c, R = p * h - f * c, g = p * i - u * c, I = l * h - f * d, O = l * i - u * d, $ = f * i - u * h, Y = b * S - x * w, ne = b * T - D * w, q = b * k - C * w, B = x * T - D * S, X = x * k - C * S, U = D * k - C * T, te = A * U - R * X + g * B + I * q - O * ne + $ * Y;
                return te ? (te = 1 / te, r[0] = (d * U - h * X + i * B) * te, r[1] = (f * X - l * U - u * B) * te, r[2] = (S * $ - T * O + k * I) * te, r[3] = (D * O - x * $ - C * I) * te, r[4] = (h * q - c * U - i * ne) * te, r[5] = (p * U - f * q + u * ne) * te, r[6] = (T * g - w * $ - k * R) * te, r[7] = (b * $ - D * g + C * R) * te, r[8] = (c * X - d * q + i * Y) * te, r[9] = (l * q - p * X - u * Y) * te, r[10] = (w * O - S * g + k * A) * te, r[11] = (x * g - b * O - C * A) * te, r[12] = (d * ne - c * B - h * Y) * te, r[13] = (p * B - l * ne + f * Y) * te, r[14] = (S * R - w * I - T * A) * te, r[15] = (b * I - x * R + D * A) * te, r) : null;
              }
            }
          ),
          /***/
          6508: (
            /***/
            function(M, L, r) {
              var a = r(6635);
              M.exports = p;
              function p(l, f, u, c) {
                var d, h, i, b, x, D, C, w, S, T, k = f[0], A = f[1], R = f[2], g = c[0], I = c[1], O = c[2], $ = u[0], Y = u[1], ne = u[2];
                return Math.abs(k - $) < 1e-6 && Math.abs(A - Y) < 1e-6 && Math.abs(R - ne) < 1e-6 ? a(l) : (C = k - $, w = A - Y, S = R - ne, T = 1 / Math.sqrt(C * C + w * w + S * S), C *= T, w *= T, S *= T, d = I * S - O * w, h = O * C - g * S, i = g * w - I * C, T = Math.sqrt(d * d + h * h + i * i), T ? (T = 1 / T, d *= T, h *= T, i *= T) : (d = 0, h = 0, i = 0), b = w * i - S * h, x = S * d - C * i, D = C * h - w * d, T = Math.sqrt(b * b + x * x + D * D), T ? (T = 1 / T, b *= T, x *= T, D *= T) : (b = 0, x = 0, D = 0), l[0] = d, l[1] = b, l[2] = C, l[3] = 0, l[4] = h, l[5] = x, l[6] = w, l[7] = 0, l[8] = i, l[9] = D, l[10] = S, l[11] = 0, l[12] = -(d * k + h * A + i * R), l[13] = -(b * k + x * A + D * R), l[14] = -(C * k + w * A + S * R), l[15] = 1, l);
              }
            }
          ),
          /***/
          944: (
            /***/
            function(M) {
              M.exports = L;
              function L(r, a, p) {
                var l = a[0], f = a[1], u = a[2], c = a[3], d = a[4], h = a[5], i = a[6], b = a[7], x = a[8], D = a[9], C = a[10], w = a[11], S = a[12], T = a[13], k = a[14], A = a[15], R = p[0], g = p[1], I = p[2], O = p[3];
                return r[0] = R * l + g * d + I * x + O * S, r[1] = R * f + g * h + I * D + O * T, r[2] = R * u + g * i + I * C + O * k, r[3] = R * c + g * b + I * w + O * A, R = p[4], g = p[5], I = p[6], O = p[7], r[4] = R * l + g * d + I * x + O * S, r[5] = R * f + g * h + I * D + O * T, r[6] = R * u + g * i + I * C + O * k, r[7] = R * c + g * b + I * w + O * A, R = p[8], g = p[9], I = p[10], O = p[11], r[8] = R * l + g * d + I * x + O * S, r[9] = R * f + g * h + I * D + O * T, r[10] = R * u + g * i + I * C + O * k, r[11] = R * c + g * b + I * w + O * A, R = p[12], g = p[13], I = p[14], O = p[15], r[12] = R * l + g * d + I * x + O * S, r[13] = R * f + g * h + I * D + O * T, r[14] = R * u + g * i + I * C + O * k, r[15] = R * c + g * b + I * w + O * A, r;
              }
            }
          ),
          /***/
          7688: (
            /***/
            function(M) {
              M.exports = L;
              function L(r, a, p, l, f, u, c) {
                var d = 1 / (a - p), h = 1 / (l - f), i = 1 / (u - c);
                return r[0] = -2 * d, r[1] = 0, r[2] = 0, r[3] = 0, r[4] = 0, r[5] = -2 * h, r[6] = 0, r[7] = 0, r[8] = 0, r[9] = 0, r[10] = 2 * i, r[11] = 0, r[12] = (a + p) * d, r[13] = (f + l) * h, r[14] = (c + u) * i, r[15] = 1, r;
              }
            }
          ),
          /***/
          1296: (
            /***/
            function(M) {
              M.exports = L;
              function L(r, a, p, l, f) {
                var u = 1 / Math.tan(a / 2), c = 1 / (l - f);
                return r[0] = u / p, r[1] = 0, r[2] = 0, r[3] = 0, r[4] = 0, r[5] = u, r[6] = 0, r[7] = 0, r[8] = 0, r[9] = 0, r[10] = (f + l) * c, r[11] = -1, r[12] = 0, r[13] = 0, r[14] = 2 * f * l * c, r[15] = 0, r;
              }
            }
          ),
          /***/
          3688: (
            /***/
            function(M) {
              M.exports = L;
              function L(r, a, p, l) {
                var f = Math.tan(a.upDegrees * Math.PI / 180), u = Math.tan(a.downDegrees * Math.PI / 180), c = Math.tan(a.leftDegrees * Math.PI / 180), d = Math.tan(a.rightDegrees * Math.PI / 180), h = 2 / (c + d), i = 2 / (f + u);
                return r[0] = h, r[1] = 0, r[2] = 0, r[3] = 0, r[4] = 0, r[5] = i, r[6] = 0, r[7] = 0, r[8] = -((c - d) * h * 0.5), r[9] = (f - u) * i * 0.5, r[10] = l / (p - l), r[11] = -1, r[12] = 0, r[13] = 0, r[14] = l * p / (p - l), r[15] = 0, r;
              }
            }
          ),
          /***/
          16: (
            /***/
            function(M) {
              M.exports = L;
              function L(r, a, p, l) {
                var f = l[0], u = l[1], c = l[2], d = Math.sqrt(f * f + u * u + c * c), h, i, b, x, D, C, w, S, T, k, A, R, g, I, O, $, Y, ne, q, B, X, U, te, se;
                return Math.abs(d) < 1e-6 ? null : (d = 1 / d, f *= d, u *= d, c *= d, h = Math.sin(p), i = Math.cos(p), b = 1 - i, x = a[0], D = a[1], C = a[2], w = a[3], S = a[4], T = a[5], k = a[6], A = a[7], R = a[8], g = a[9], I = a[10], O = a[11], $ = f * f * b + i, Y = u * f * b + c * h, ne = c * f * b - u * h, q = f * u * b - c * h, B = u * u * b + i, X = c * u * b + f * h, U = f * c * b + u * h, te = u * c * b - f * h, se = c * c * b + i, r[0] = x * $ + S * Y + R * ne, r[1] = D * $ + T * Y + g * ne, r[2] = C * $ + k * Y + I * ne, r[3] = w * $ + A * Y + O * ne, r[4] = x * q + S * B + R * X, r[5] = D * q + T * B + g * X, r[6] = C * q + k * B + I * X, r[7] = w * q + A * B + O * X, r[8] = x * U + S * te + R * se, r[9] = D * U + T * te + g * se, r[10] = C * U + k * te + I * se, r[11] = w * U + A * te + O * se, a !== r && (r[12] = a[12], r[13] = a[13], r[14] = a[14], r[15] = a[15]), r);
              }
            }
          ),
          /***/
          5456: (
            /***/
            function(M) {
              M.exports = L;
              function L(r, a, p) {
                var l = Math.sin(p), f = Math.cos(p), u = a[4], c = a[5], d = a[6], h = a[7], i = a[8], b = a[9], x = a[10], D = a[11];
                return a !== r && (r[0] = a[0], r[1] = a[1], r[2] = a[2], r[3] = a[3], r[12] = a[12], r[13] = a[13], r[14] = a[14], r[15] = a[15]), r[4] = u * f + i * l, r[5] = c * f + b * l, r[6] = d * f + x * l, r[7] = h * f + D * l, r[8] = i * f - u * l, r[9] = b * f - c * l, r[10] = x * f - d * l, r[11] = D * f - h * l, r;
              }
            }
          ),
          /***/
          4840: (
            /***/
            function(M) {
              M.exports = L;
              function L(r, a, p) {
                var l = Math.sin(p), f = Math.cos(p), u = a[0], c = a[1], d = a[2], h = a[3], i = a[8], b = a[9], x = a[10], D = a[11];
                return a !== r && (r[4] = a[4], r[5] = a[5], r[6] = a[6], r[7] = a[7], r[12] = a[12], r[13] = a[13], r[14] = a[14], r[15] = a[15]), r[0] = u * f - i * l, r[1] = c * f - b * l, r[2] = d * f - x * l, r[3] = h * f - D * l, r[8] = u * l + i * f, r[9] = c * l + b * f, r[10] = d * l + x * f, r[11] = h * l + D * f, r;
              }
            }
          ),
          /***/
          4192: (
            /***/
            function(M) {
              M.exports = L;
              function L(r, a, p) {
                var l = Math.sin(p), f = Math.cos(p), u = a[0], c = a[1], d = a[2], h = a[3], i = a[4], b = a[5], x = a[6], D = a[7];
                return a !== r && (r[8] = a[8], r[9] = a[9], r[10] = a[10], r[11] = a[11], r[12] = a[12], r[13] = a[13], r[14] = a[14], r[15] = a[15]), r[0] = u * f + i * l, r[1] = c * f + b * l, r[2] = d * f + x * l, r[3] = h * f + D * l, r[4] = i * f - u * l, r[5] = b * f - c * l, r[6] = x * f - d * l, r[7] = D * f - h * l, r;
              }
            }
          ),
          /***/
          8152: (
            /***/
            function(M) {
              M.exports = L;
              function L(r, a, p) {
                var l = p[0], f = p[1], u = p[2];
                return r[0] = a[0] * l, r[1] = a[1] * l, r[2] = a[2] * l, r[3] = a[3] * l, r[4] = a[4] * f, r[5] = a[5] * f, r[6] = a[6] * f, r[7] = a[7] * f, r[8] = a[8] * u, r[9] = a[9] * u, r[10] = a[10] * u, r[11] = a[11] * u, r[12] = a[12], r[13] = a[13], r[14] = a[14], r[15] = a[15], r;
              }
            }
          ),
          /***/
          9412: (
            /***/
            function(M) {
              M.exports = L;
              function L(r) {
                return "mat4(" + r[0] + ", " + r[1] + ", " + r[2] + ", " + r[3] + ", " + r[4] + ", " + r[5] + ", " + r[6] + ", " + r[7] + ", " + r[8] + ", " + r[9] + ", " + r[10] + ", " + r[11] + ", " + r[12] + ", " + r[13] + ", " + r[14] + ", " + r[15] + ")";
              }
            }
          ),
          /***/
          5176: (
            /***/
            function(M) {
              M.exports = L;
              function L(r, a, p) {
                var l = p[0], f = p[1], u = p[2], c, d, h, i, b, x, D, C, w, S, T, k;
                return a === r ? (r[12] = a[0] * l + a[4] * f + a[8] * u + a[12], r[13] = a[1] * l + a[5] * f + a[9] * u + a[13], r[14] = a[2] * l + a[6] * f + a[10] * u + a[14], r[15] = a[3] * l + a[7] * f + a[11] * u + a[15]) : (c = a[0], d = a[1], h = a[2], i = a[3], b = a[4], x = a[5], D = a[6], C = a[7], w = a[8], S = a[9], T = a[10], k = a[11], r[0] = c, r[1] = d, r[2] = h, r[3] = i, r[4] = b, r[5] = x, r[6] = D, r[7] = C, r[8] = w, r[9] = S, r[10] = T, r[11] = k, r[12] = c * l + b * f + w * u + a[12], r[13] = d * l + x * f + S * u + a[13], r[14] = h * l + D * f + T * u + a[14], r[15] = i * l + C * f + k * u + a[15]), r;
              }
            }
          ),
          /***/
          6520: (
            /***/
            function(M) {
              M.exports = L;
              function L(r, a) {
                if (r === a) {
                  var p = a[1], l = a[2], f = a[3], u = a[6], c = a[7], d = a[11];
                  r[1] = a[4], r[2] = a[8], r[3] = a[12], r[4] = p, r[6] = a[9], r[7] = a[13], r[8] = l, r[9] = u, r[11] = a[14], r[12] = f, r[13] = c, r[14] = d;
                } else
                  r[0] = a[0], r[1] = a[4], r[2] = a[8], r[3] = a[12], r[4] = a[1], r[5] = a[5], r[6] = a[9], r[7] = a[13], r[8] = a[2], r[9] = a[6], r[10] = a[10], r[11] = a[14], r[12] = a[3], r[13] = a[7], r[14] = a[11], r[15] = a[15];
                return r;
              }
            }
          ),
          /***/
          2264: (
            /***/
            function(M, L, r) {
              var a = r(1820), p;
              typeof r.g.matchMedia == "function" ? p = !r.g.matchMedia("(hover: none)").matches : p = a, M.exports = p;
            }
          ),
          /***/
          9184: (
            /***/
            function(M, L, r) {
              var a = r(1820);
              function p() {
                var l = !1;
                try {
                  var f = Object.defineProperty({}, "passive", {
                    get: function() {
                      l = !0;
                    }
                  });
                  window.addEventListener("test", null, f), window.removeEventListener("test", null, f);
                } catch {
                  l = !1;
                }
                return l;
              }
              M.exports = a && p();
            }
          ),
          /***/
          1820: (
            /***/
            function(M) {
              M.exports = !0;
            }
          ),
          /***/
          4576: (
            /***/
            function(M) {
              M.exports = function(L) {
                for (var r = L.length, a, p = 0; p < r; p++)
                  if (a = L.charCodeAt(p), (a < 9 || a > 13) && a !== 32 && a !== 133 && a !== 160 && a !== 5760 && a !== 6158 && (a < 8192 || a > 8205) && a !== 8232 && a !== 8233 && a !== 8239 && a !== 8287 && a !== 8288 && a !== 12288 && a !== 65279)
                    return !1;
                return !0;
              };
            }
          ),
          /***/
          9128: (
            /***/
            function(M) {
              var L = { left: 0, top: 0 };
              M.exports = r;
              function r(p, l, f) {
                l = l || p.currentTarget || p.srcElement, Array.isArray(f) || (f = [0, 0]);
                var u = p.clientX || 0, c = p.clientY || 0, d = a(l);
                return f[0] = u - d.left, f[1] = c - d.top, f;
              }
              function a(p) {
                return p === window || p === document || p === document.body ? L : p.getBoundingClientRect();
              }
            }
          ),
          /***/
          8324: (
            /***/
            function(M, L, r) {
              var a;
              /*! Native Promise Only
                  v0.8.1 (c) Kyle Simpson
                  MIT License: http://getify.mit-license.org
              */
              (function(l, f, u) {
                f[l] = f[l] || u(), M.exports ? M.exports = f[l] : (a = (function() {
                  return f[l];
                }).call(L, r, L, M), a !== void 0 && (M.exports = a));
              })("Promise", typeof r.g < "u" ? r.g : this, function() {
                var l, f, u, c = Object.prototype.toString, d = typeof setImmediate < "u" ? function(g) {
                  return setImmediate(g);
                } : setTimeout;
                try {
                  Object.defineProperty({}, "x", {}), l = function(g, I, O, $) {
                    return Object.defineProperty(g, I, {
                      value: O,
                      writable: !0,
                      configurable: $ !== !1
                    });
                  };
                } catch {
                  l = function(I, O, $) {
                    return I[O] = $, I;
                  };
                }
                u = /* @__PURE__ */ function() {
                  var g, I, O;
                  function $(Y, ne) {
                    this.fn = Y, this.self = ne, this.next = void 0;
                  }
                  return {
                    add: function(ne, q) {
                      O = new $(ne, q), I ? I.next = O : g = O, I = O, O = void 0;
                    },
                    drain: function() {
                      var ne = g;
                      for (g = I = f = void 0; ne; )
                        ne.fn.call(ne.self), ne = ne.next;
                    }
                  };
                }();
                function h(R, g) {
                  u.add(R, g), f || (f = d(u.drain));
                }
                function i(R) {
                  var g, I = typeof R;
                  return R != null && (I == "object" || I == "function") && (g = R.then), typeof g == "function" ? g : !1;
                }
                function b() {
                  for (var R = 0; R < this.chain.length; R++)
                    x(
                      this,
                      this.state === 1 ? this.chain[R].success : this.chain[R].failure,
                      this.chain[R]
                    );
                  this.chain.length = 0;
                }
                function x(R, g, I) {
                  var O, $;
                  try {
                    g === !1 ? I.reject(R.msg) : (g === !0 ? O = R.msg : O = g.call(void 0, R.msg), O === I.promise ? I.reject(TypeError("Promise-chain cycle")) : ($ = i(O)) ? $.call(O, I.resolve, I.reject) : I.resolve(O));
                  } catch (Y) {
                    I.reject(Y);
                  }
                }
                function D(R) {
                  var g, I = this;
                  if (!I.triggered) {
                    I.triggered = !0, I.def && (I = I.def);
                    try {
                      (g = i(R)) ? h(function() {
                        var O = new S(I);
                        try {
                          g.call(
                            R,
                            function() {
                              D.apply(O, arguments);
                            },
                            function() {
                              C.apply(O, arguments);
                            }
                          );
                        } catch ($) {
                          C.call(O, $);
                        }
                      }) : (I.msg = R, I.state = 1, I.chain.length > 0 && h(b, I));
                    } catch (O) {
                      C.call(new S(I), O);
                    }
                  }
                }
                function C(R) {
                  var g = this;
                  g.triggered || (g.triggered = !0, g.def && (g = g.def), g.msg = R, g.state = 2, g.chain.length > 0 && h(b, g));
                }
                function w(R, g, I, O) {
                  for (var $ = 0; $ < g.length; $++)
                    (function(ne) {
                      R.resolve(g[ne]).then(
                        function(B) {
                          I(ne, B);
                        },
                        O
                      );
                    })($);
                }
                function S(R) {
                  this.def = R, this.triggered = !1;
                }
                function T(R) {
                  this.promise = R, this.state = 0, this.triggered = !1, this.chain = [], this.msg = void 0;
                }
                function k(R) {
                  if (typeof R != "function")
                    throw TypeError("Not a function");
                  if (this.__NPO__ !== 0)
                    throw TypeError("Not a promise");
                  this.__NPO__ = 1;
                  var g = new T(this);
                  this.then = function(O, $) {
                    var Y = {
                      success: typeof O == "function" ? O : !0,
                      failure: typeof $ == "function" ? $ : !1
                    };
                    return Y.promise = new this.constructor(function(q, B) {
                      if (typeof q != "function" || typeof B != "function")
                        throw TypeError("Not a function");
                      Y.resolve = q, Y.reject = B;
                    }), g.chain.push(Y), g.state !== 0 && h(b, g), Y.promise;
                  }, this.catch = function(O) {
                    return this.then(void 0, O);
                  };
                  try {
                    R.call(
                      void 0,
                      function(O) {
                        D.call(g, O);
                      },
                      function(O) {
                        C.call(g, O);
                      }
                    );
                  } catch (I) {
                    C.call(g, I);
                  }
                }
                var A = l(
                  {},
                  "constructor",
                  k,
                  /*configurable=*/
                  !1
                );
                return k.prototype = A, l(
                  A,
                  "__NPO__",
                  0,
                  /*configurable=*/
                  !1
                ), l(k, "resolve", function(g) {
                  var I = this;
                  return g && typeof g == "object" && g.__NPO__ === 1 ? g : new I(function($, Y) {
                    if (typeof $ != "function" || typeof Y != "function")
                      throw TypeError("Not a function");
                    $(g);
                  });
                }), l(k, "reject", function(g) {
                  return new this(function(O, $) {
                    if (typeof O != "function" || typeof $ != "function")
                      throw TypeError("Not a function");
                    $(g);
                  });
                }), l(k, "all", function(g) {
                  var I = this;
                  return c.call(g) != "[object Array]" ? I.reject(TypeError("Not an array")) : g.length === 0 ? I.resolve([]) : new I(function($, Y) {
                    if (typeof $ != "function" || typeof Y != "function")
                      throw TypeError("Not a function");
                    var ne = g.length, q = Array(ne), B = 0;
                    w(I, g, function(U, te) {
                      q[U] = te, ++B === ne && $(q);
                    }, Y);
                  });
                }), l(k, "race", function(g) {
                  var I = this;
                  return c.call(g) != "[object Array]" ? I.reject(TypeError("Not an array")) : new I(function($, Y) {
                    if (typeof $ != "function" || typeof Y != "function")
                      throw TypeError("Not a function");
                    w(I, g, function(q, B) {
                      $(B);
                    }, Y);
                  });
                }), k;
              });
            }
          ),
          /***/
          896: (
            /***/
            function(M) {
              /*
              object-assign
              (c) Sindre Sorhus
              @license MIT
              */
              var L = Object.getOwnPropertySymbols, r = Object.prototype.hasOwnProperty, a = Object.prototype.propertyIsEnumerable;
              function p(f) {
                if (f == null)
                  throw new TypeError("Object.assign cannot be called with null or undefined");
                return Object(f);
              }
              function l() {
                try {
                  if (!Object.assign)
                    return !1;
                  var f = new String("abc");
                  if (f[5] = "de", Object.getOwnPropertyNames(f)[0] === "5")
                    return !1;
                  for (var u = {}, c = 0; c < 10; c++)
                    u["_" + String.fromCharCode(c)] = c;
                  var d = Object.getOwnPropertyNames(u).map(function(i) {
                    return u[i];
                  });
                  if (d.join("") !== "0123456789")
                    return !1;
                  var h = {};
                  return "abcdefghijklmnopqrst".split("").forEach(function(i) {
                    h[i] = i;
                  }), Object.keys(Object.assign({}, h)).join("") === "abcdefghijklmnopqrst";
                } catch {
                  return !1;
                }
              }
              M.exports = l() ? Object.assign : function(f, u) {
                for (var c, d = p(f), h, i = 1; i < arguments.length; i++) {
                  c = Object(arguments[i]);
                  for (var b in c)
                    r.call(c, b) && (d[b] = c[b]);
                  if (L) {
                    h = L(c);
                    for (var x = 0; x < h.length; x++)
                      a.call(c, h[x]) && (d[h[x]] = c[h[x]]);
                  }
                }
                return d;
              };
            }
          ),
          /***/
          9604: (
            /***/
            function(M) {
              M.exports = a;
              var L = { a: 7, c: 6, h: 1, l: 2, m: 2, q: 4, s: 4, t: 2, v: 1, z: 0 }, r = /([astvzqmhlc])([^astvzqmhlc]*)/ig;
              function a(f) {
                var u = [];
                return f.replace(r, function(c, d, h) {
                  var i = d.toLowerCase();
                  for (h = l(h), i == "m" && h.length > 2 && (u.push([d].concat(h.splice(0, 2))), i = "l", d = d == "m" ? "l" : "L"); ; ) {
                    if (h.length == L[i])
                      return h.unshift(d), u.push(h);
                    if (h.length < L[i])
                      throw new Error("malformed path data");
                    u.push([d].concat(h.splice(0, L[i])));
                  }
                }), u;
              }
              var p = /-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/ig;
              function l(f) {
                var u = f.match(p);
                return u ? u.map(Number) : [];
              }
            }
          ),
          /***/
          1456: (
            /***/
            function(M) {
              M.exports = function(r, a, p, l) {
                var f = r[0], u = r[1], c = !1;
                p === void 0 && (p = 0), l === void 0 && (l = a.length);
                for (var d = l - p, h = 0, i = d - 1; h < d; i = h++) {
                  var b = a[h + p][0], x = a[h + p][1], D = a[i + p][0], C = a[i + p][1], w = x > u != C > u && f < (D - b) * (u - x) / (C - x) + b;
                  w && (c = !c);
                }
                return c;
              };
            }
          ),
          /***/
          4756: (
            /***/
            function(M, L, r) {
              /*
               * @copyright 2016 Sean Connelly (@voidqk), http://syntheti.cc
               * @license MIT
               * @preserve Project Home: https://github.com/voidqk/polybooljs
               */
              var a = r(2928), p = r(8648), l = r(9819), f = r(1403), u = r(2368), c = r(7792), d = !1, h = p(), i;
              i = {
                // getter/setter for buildLog
                buildLog: function(x) {
                  return x === !0 ? d = a() : x === !1 && (d = !1), d === !1 ? !1 : d.list;
                },
                // getter/setter for epsilon
                epsilon: function(x) {
                  return h.epsilon(x);
                },
                // core API
                segments: function(x) {
                  var D = l(!0, h, d);
                  return x.regions.forEach(D.addRegion), {
                    segments: D.calculate(x.inverted),
                    inverted: x.inverted
                  };
                },
                combine: function(x, D) {
                  var C = l(!1, h, d);
                  return {
                    combined: C.calculate(
                      x.segments,
                      x.inverted,
                      D.segments,
                      D.inverted
                    ),
                    inverted1: x.inverted,
                    inverted2: D.inverted
                  };
                },
                selectUnion: function(x) {
                  return {
                    segments: u.union(x.combined, d),
                    inverted: x.inverted1 || x.inverted2
                  };
                },
                selectIntersect: function(x) {
                  return {
                    segments: u.intersect(x.combined, d),
                    inverted: x.inverted1 && x.inverted2
                  };
                },
                selectDifference: function(x) {
                  return {
                    segments: u.difference(x.combined, d),
                    inverted: x.inverted1 && !x.inverted2
                  };
                },
                selectDifferenceRev: function(x) {
                  return {
                    segments: u.differenceRev(x.combined, d),
                    inverted: !x.inverted1 && x.inverted2
                  };
                },
                selectXor: function(x) {
                  return {
                    segments: u.xor(x.combined, d),
                    inverted: x.inverted1 !== x.inverted2
                  };
                },
                polygon: function(x) {
                  return {
                    regions: f(x.segments, h, d),
                    inverted: x.inverted
                  };
                },
                // GeoJSON converters
                polygonFromGeoJSON: function(x) {
                  return c.toPolygon(i, x);
                },
                polygonToGeoJSON: function(x) {
                  return c.fromPolygon(i, h, x);
                },
                // helper functions for common operations
                union: function(x, D) {
                  return b(x, D, i.selectUnion);
                },
                intersect: function(x, D) {
                  return b(x, D, i.selectIntersect);
                },
                difference: function(x, D) {
                  return b(x, D, i.selectDifference);
                },
                differenceRev: function(x, D) {
                  return b(x, D, i.selectDifferenceRev);
                },
                xor: function(x, D) {
                  return b(x, D, i.selectXor);
                }
              };
              function b(x, D, C) {
                var w = i.segments(x), S = i.segments(D), T = i.combine(w, S), k = C(T);
                return i.polygon(k);
              }
              typeof window == "object" && (window.PolyBool = i), M.exports = i;
            }
          ),
          /***/
          2928: (
            /***/
            function(M) {
              function L() {
                var r, a = 0, p = !1;
                function l(f, u) {
                  return r.list.push({
                    type: f,
                    data: u ? JSON.parse(JSON.stringify(u)) : void 0
                  }), r;
                }
                return r = {
                  list: [],
                  segmentId: function() {
                    return a++;
                  },
                  checkIntersection: function(f, u) {
                    return l("check", { seg1: f, seg2: u });
                  },
                  segmentChop: function(f, u) {
                    return l("div_seg", { seg: f, pt: u }), l("chop", { seg: f, pt: u });
                  },
                  statusRemove: function(f) {
                    return l("pop_seg", { seg: f });
                  },
                  segmentUpdate: function(f) {
                    return l("seg_update", { seg: f });
                  },
                  segmentNew: function(f, u) {
                    return l("new_seg", { seg: f, primary: u });
                  },
                  segmentRemove: function(f) {
                    return l("rem_seg", { seg: f });
                  },
                  tempStatus: function(f, u, c) {
                    return l("temp_status", { seg: f, above: u, below: c });
                  },
                  rewind: function(f) {
                    return l("rewind", { seg: f });
                  },
                  status: function(f, u, c) {
                    return l("status", { seg: f, above: u, below: c });
                  },
                  vert: function(f) {
                    return f === p ? r : (p = f, l("vert", { x: f }));
                  },
                  log: function(f) {
                    return typeof f != "string" && (f = JSON.stringify(f, !1, "  ")), l("log", { txt: f });
                  },
                  reset: function() {
                    return l("reset");
                  },
                  selected: function(f) {
                    return l("selected", { segs: f });
                  },
                  chainStart: function(f) {
                    return l("chain_start", { seg: f });
                  },
                  chainRemoveHead: function(f, u) {
                    return l("chain_rem_head", { index: f, pt: u });
                  },
                  chainRemoveTail: function(f, u) {
                    return l("chain_rem_tail", { index: f, pt: u });
                  },
                  chainNew: function(f, u) {
                    return l("chain_new", { pt1: f, pt2: u });
                  },
                  chainMatch: function(f) {
                    return l("chain_match", { index: f });
                  },
                  chainClose: function(f) {
                    return l("chain_close", { index: f });
                  },
                  chainAddHead: function(f, u) {
                    return l("chain_add_head", { index: f, pt: u });
                  },
                  chainAddTail: function(f, u) {
                    return l("chain_add_tail", { index: f, pt: u });
                  },
                  chainConnect: function(f, u) {
                    return l("chain_con", { index1: f, index2: u });
                  },
                  chainReverse: function(f) {
                    return l("chain_rev", { index: f });
                  },
                  chainJoin: function(f, u) {
                    return l("chain_join", { index1: f, index2: u });
                  },
                  done: function() {
                    return l("done");
                  }
                }, r;
              }
              M.exports = L;
            }
          ),
          /***/
          8648: (
            /***/
            function(M) {
              function L(r) {
                typeof r != "number" && (r = 1e-10);
                var a = {
                  epsilon: function(p) {
                    return typeof p == "number" && (r = p), r;
                  },
                  pointAboveOrOnLine: function(p, l, f) {
                    var u = l[0], c = l[1], d = f[0], h = f[1], i = p[0], b = p[1];
                    return (d - u) * (b - c) - (h - c) * (i - u) >= -r;
                  },
                  pointBetween: function(p, l, f) {
                    var u = p[1] - l[1], c = f[0] - l[0], d = p[0] - l[0], h = f[1] - l[1], i = d * c + u * h;
                    if (i < r)
                      return !1;
                    var b = c * c + h * h;
                    return !(i - b > -r);
                  },
                  pointsSameX: function(p, l) {
                    return Math.abs(p[0] - l[0]) < r;
                  },
                  pointsSameY: function(p, l) {
                    return Math.abs(p[1] - l[1]) < r;
                  },
                  pointsSame: function(p, l) {
                    return a.pointsSameX(p, l) && a.pointsSameY(p, l);
                  },
                  pointsCompare: function(p, l) {
                    return a.pointsSameX(p, l) ? a.pointsSameY(p, l) ? 0 : p[1] < l[1] ? -1 : 1 : p[0] < l[0] ? -1 : 1;
                  },
                  pointsCollinear: function(p, l, f) {
                    var u = p[0] - l[0], c = p[1] - l[1], d = l[0] - f[0], h = l[1] - f[1];
                    return Math.abs(u * h - d * c) < r;
                  },
                  linesIntersect: function(p, l, f, u) {
                    var c = l[0] - p[0], d = l[1] - p[1], h = u[0] - f[0], i = u[1] - f[1], b = c * i - d * h;
                    if (Math.abs(b) < r)
                      return !1;
                    var x = p[0] - f[0], D = p[1] - f[1], C = (h * D - i * x) / b, w = (c * D - d * x) / b, S = {
                      alongA: 0,
                      alongB: 0,
                      pt: [
                        p[0] + C * c,
                        p[1] + C * d
                      ]
                    };
                    return C <= -r ? S.alongA = -2 : C < r ? S.alongA = -1 : C - 1 <= -r ? S.alongA = 0 : C - 1 < r ? S.alongA = 1 : S.alongA = 2, w <= -r ? S.alongB = -2 : w < r ? S.alongB = -1 : w - 1 <= -r ? S.alongB = 0 : w - 1 < r ? S.alongB = 1 : S.alongB = 2, S;
                  },
                  pointInsideRegion: function(p, l) {
                    for (var f = p[0], u = p[1], c = l[l.length - 1][0], d = l[l.length - 1][1], h = !1, i = 0; i < l.length; i++) {
                      var b = l[i][0], x = l[i][1];
                      x - u > r != d - u > r && (c - b) * (u - x) / (d - x) + b - f > r && (h = !h), c = b, d = x;
                    }
                    return h;
                  }
                };
                return a;
              }
              M.exports = L;
            }
          ),
          /***/
          7792: (
            /***/
            function(M) {
              var L = {
                // convert a GeoJSON object to a PolyBool polygon
                toPolygon: function(r, a) {
                  function p(u) {
                    if (u.length <= 0)
                      return r.segments({ inverted: !1, regions: [] });
                    function c(i) {
                      var b = i.slice(0, i.length - 1);
                      return r.segments({ inverted: !1, regions: [b] });
                    }
                    for (var d = c(u[0]), h = 1; h < u.length; h++)
                      d = r.selectDifference(r.combine(d, c(u[h])));
                    return d;
                  }
                  if (a.type === "Polygon")
                    return r.polygon(p(a.coordinates));
                  if (a.type === "MultiPolygon") {
                    for (var l = r.segments({ inverted: !1, regions: [] }), f = 0; f < a.coordinates.length; f++)
                      l = r.selectUnion(r.combine(l, p(a.coordinates[f])));
                    return r.polygon(l);
                  }
                  throw new Error("PolyBool: Cannot convert GeoJSON object to PolyBool polygon");
                },
                // convert a PolyBool polygon to a GeoJSON object
                fromPolygon: function(r, a, p) {
                  p = r.polygon(r.segments(p));
                  function l(C, w) {
                    return a.pointInsideRegion([
                      (C[0][0] + C[1][0]) * 0.5,
                      (C[0][1] + C[1][1]) * 0.5
                    ], w);
                  }
                  function f(C) {
                    return {
                      region: C,
                      children: []
                    };
                  }
                  var u = f(null);
                  function c(C, w) {
                    for (var S = 0; S < C.children.length; S++) {
                      var T = C.children[S];
                      if (l(w, T.region)) {
                        c(T, w);
                        return;
                      }
                    }
                    for (var k = f(w), S = 0; S < C.children.length; S++) {
                      var T = C.children[S];
                      l(T.region, w) && (k.children.push(T), C.children.splice(S, 1), S--);
                    }
                    C.children.push(k);
                  }
                  for (var d = 0; d < p.regions.length; d++) {
                    var h = p.regions[d];
                    h.length < 3 || c(u, h);
                  }
                  function i(C, w) {
                    for (var S = 0, T = C[C.length - 1][0], k = C[C.length - 1][1], A = [], R = 0; R < C.length; R++) {
                      var g = C[R][0], I = C[R][1];
                      A.push([g, I]), S += I * T - g * k, T = g, k = I;
                    }
                    var O = S < 0;
                    return O !== w && A.reverse(), A.push([A[0][0], A[0][1]]), A;
                  }
                  var b = [];
                  function x(C) {
                    var w = [i(C.region, !1)];
                    b.push(w);
                    for (var S = 0; S < C.children.length; S++)
                      w.push(D(C.children[S]));
                  }
                  function D(C) {
                    for (var w = 0; w < C.children.length; w++)
                      x(C.children[w]);
                    return i(C.region, !0);
                  }
                  for (var d = 0; d < u.children.length; d++)
                    x(u.children[d]);
                  return b.length <= 0 ? { type: "Polygon", coordinates: [] } : b.length == 1 ? { type: "Polygon", coordinates: b[0] } : {
                    // otherwise, use a GeoJSON MultiPolygon
                    type: "MultiPolygon",
                    coordinates: b
                  };
                }
              };
              M.exports = L;
            }
          ),
          /***/
          9819: (
            /***/
            function(M, L, r) {
              var a = r(8088);
              function p(l, f, u) {
                function c(k, A) {
                  return {
                    id: u ? u.segmentId() : -1,
                    start: k,
                    end: A,
                    myFill: {
                      above: null,
                      // is there fill above us?
                      below: null
                      // is there fill below us?
                    },
                    otherFill: null
                  };
                }
                function d(k, A, R) {
                  return {
                    id: u ? u.segmentId() : -1,
                    start: k,
                    end: A,
                    myFill: {
                      above: R.myFill.above,
                      below: R.myFill.below
                    },
                    otherFill: null
                  };
                }
                var h = a.create();
                function i(k, A, R, g, I, O) {
                  var $ = f.pointsCompare(A, I);
                  return $ !== 0 ? $ : f.pointsSame(R, O) ? 0 : k !== g ? k ? 1 : -1 : f.pointAboveOrOnLine(
                    R,
                    g ? I : O,
                    // order matters
                    g ? O : I
                  ) ? 1 : -1;
                }
                function b(k, A) {
                  h.insertBefore(k, function(R) {
                    var g = i(
                      k.isStart,
                      k.pt,
                      A,
                      R.isStart,
                      R.pt,
                      R.other.pt
                    );
                    return g < 0;
                  });
                }
                function x(k, A) {
                  var R = a.node({
                    isStart: !0,
                    pt: k.start,
                    seg: k,
                    primary: A,
                    other: null,
                    status: null
                  });
                  return b(R, k.end), R;
                }
                function D(k, A, R) {
                  var g = a.node({
                    isStart: !1,
                    pt: A.end,
                    seg: A,
                    primary: R,
                    other: k,
                    status: null
                  });
                  k.other = g, b(g, k.pt);
                }
                function C(k, A) {
                  var R = x(k, A);
                  return D(R, k, A), R;
                }
                function w(k, A) {
                  u && u.segmentChop(k.seg, A), k.other.remove(), k.seg.end = A, k.other.pt = A, b(k.other, k.pt);
                }
                function S(k, A) {
                  var R = d(A, k.seg.end, k.seg);
                  return w(k, A), C(R, k.primary);
                }
                function T(k, A) {
                  var R = a.create();
                  function g(J, W) {
                    var ae = J.seg.start, oe = J.seg.end, ve = W.seg.start, fe = W.seg.end;
                    return f.pointsCollinear(ae, ve, fe) ? f.pointsCollinear(oe, ve, fe) || f.pointAboveOrOnLine(oe, ve, fe) ? 1 : -1 : f.pointAboveOrOnLine(ae, ve, fe) ? 1 : -1;
                  }
                  function I(J) {
                    return R.findTransition(function(W) {
                      var ae = g(J, W.ev);
                      return ae > 0;
                    });
                  }
                  function O(J, W) {
                    var ae = J.seg, oe = W.seg, ve = ae.start, fe = ae.end, ye = oe.start, Ce = oe.end;
                    u && u.checkIntersection(ae, oe);
                    var Re = f.linesIntersect(ve, fe, ye, Ce);
                    if (Re === !1) {
                      if (!f.pointsCollinear(ve, fe, ye) || f.pointsSame(ve, Ce) || f.pointsSame(fe, ye))
                        return !1;
                      var Be = f.pointsSame(ve, ye), xe = f.pointsSame(fe, Ce);
                      if (Be && xe)
                        return W;
                      var Me = !Be && f.pointBetween(ve, ye, Ce), De = !xe && f.pointBetween(fe, ye, Ce);
                      if (Be)
                        return De ? S(W, fe) : S(J, Ce), W;
                      Me && (xe || (De ? S(W, fe) : S(J, Ce)), S(W, ve));
                    } else
                      Re.alongA === 0 && (Re.alongB === -1 ? S(J, ye) : Re.alongB === 0 ? S(J, Re.pt) : Re.alongB === 1 && S(J, Ce)), Re.alongB === 0 && (Re.alongA === -1 ? S(W, ve) : Re.alongA === 0 ? S(W, Re.pt) : Re.alongA === 1 && S(W, fe));
                    return !1;
                  }
                  for (var $ = []; !h.isEmpty(); ) {
                    var Y = h.getHead();
                    if (u && u.vert(Y.pt[0]), Y.isStart) {
                      let J = function() {
                        if (q) {
                          var W = O(Y, q);
                          if (W)
                            return W;
                        }
                        return B ? O(Y, B) : !1;
                      };
                      u && u.segmentNew(Y.seg, Y.primary);
                      var ne = I(Y), q = ne.before ? ne.before.ev : null, B = ne.after ? ne.after.ev : null;
                      u && u.tempStatus(
                        Y.seg,
                        q ? q.seg : !1,
                        B ? B.seg : !1
                      );
                      var X = J();
                      if (X) {
                        if (l) {
                          var U;
                          Y.seg.myFill.below === null ? U = !0 : U = Y.seg.myFill.above !== Y.seg.myFill.below, U && (X.seg.myFill.above = !X.seg.myFill.above);
                        } else
                          X.seg.otherFill = Y.seg.myFill;
                        u && u.segmentUpdate(X.seg), Y.other.remove(), Y.remove();
                      }
                      if (h.getHead() !== Y) {
                        u && u.rewind(Y.seg);
                        continue;
                      }
                      if (l) {
                        var U;
                        Y.seg.myFill.below === null ? U = !0 : U = Y.seg.myFill.above !== Y.seg.myFill.below, B ? Y.seg.myFill.below = B.seg.myFill.above : Y.seg.myFill.below = k, U ? Y.seg.myFill.above = !Y.seg.myFill.below : Y.seg.myFill.above = Y.seg.myFill.below;
                      } else if (Y.seg.otherFill === null) {
                        var te;
                        B ? Y.primary === B.primary ? te = B.seg.otherFill.above : te = B.seg.myFill.above : te = Y.primary ? A : k, Y.seg.otherFill = {
                          above: te,
                          below: te
                        };
                      }
                      u && u.status(
                        Y.seg,
                        q ? q.seg : !1,
                        B ? B.seg : !1
                      ), Y.other.status = ne.insert(a.node({ ev: Y }));
                    } else {
                      var se = Y.status;
                      if (se === null)
                        throw new Error("PolyBool: Zero-length segment detected; your epsilon is probably too small or too large");
                      if (R.exists(se.prev) && R.exists(se.next) && O(se.prev.ev, se.next.ev), u && u.statusRemove(se.ev.seg), se.remove(), !Y.primary) {
                        var me = Y.seg.myFill;
                        Y.seg.myFill = Y.seg.otherFill, Y.seg.otherFill = me;
                      }
                      $.push(Y.seg);
                    }
                    h.getHead().remove();
                  }
                  return u && u.done(), $;
                }
                return l ? {
                  addRegion: function(k) {
                    for (var A, R = k[k.length - 1], g = 0; g < k.length; g++) {
                      A = R, R = k[g];
                      var I = f.pointsCompare(A, R);
                      I !== 0 && C(
                        c(
                          I < 0 ? A : R,
                          I < 0 ? R : A
                        ),
                        !0
                      );
                    }
                  },
                  calculate: function(k) {
                    return T(k, !1);
                  }
                } : {
                  calculate: function(k, A, R, g) {
                    return k.forEach(function(I) {
                      C(d(I.start, I.end, I), !0);
                    }), R.forEach(function(I) {
                      C(d(I.start, I.end, I), !1);
                    }), T(A, g);
                  }
                };
              }
              M.exports = p;
            }
          ),
          /***/
          8088: (
            /***/
            function(M) {
              var L = {
                create: function() {
                  var r = {
                    root: { root: !0, next: null },
                    exists: function(a) {
                      return !(a === null || a === r.root);
                    },
                    isEmpty: function() {
                      return r.root.next === null;
                    },
                    getHead: function() {
                      return r.root.next;
                    },
                    insertBefore: function(a, p) {
                      for (var l = r.root, f = r.root.next; f !== null; ) {
                        if (p(f)) {
                          a.prev = f.prev, a.next = f, f.prev.next = a, f.prev = a;
                          return;
                        }
                        l = f, f = f.next;
                      }
                      l.next = a, a.prev = l, a.next = null;
                    },
                    findTransition: function(a) {
                      for (var p = r.root, l = r.root.next; l !== null && !a(l); )
                        p = l, l = l.next;
                      return {
                        before: p === r.root ? null : p,
                        after: l,
                        insert: function(f) {
                          return f.prev = p, f.next = l, p.next = f, l !== null && (l.prev = f), f;
                        }
                      };
                    }
                  };
                  return r;
                },
                node: function(r) {
                  return r.prev = null, r.next = null, r.remove = function() {
                    r.prev.next = r.next, r.next && (r.next.prev = r.prev), r.prev = null, r.next = null;
                  }, r;
                }
              };
              M.exports = L;
            }
          ),
          /***/
          1403: (
            /***/
            function(M) {
              function L(r, a, p) {
                var l = [], f = [];
                return r.forEach(function(u) {
                  var c = u.start, d = u.end;
                  if (a.pointsSame(c, d)) {
                    console.warn("PolyBool: Warning: Zero-length segment detected; your epsilon is probably too small or too large");
                    return;
                  }
                  p && p.chainStart(u);
                  var h = {
                    index: 0,
                    matches_head: !1,
                    matches_pt1: !1
                  }, i = {
                    index: 0,
                    matches_head: !1,
                    matches_pt1: !1
                  }, b = h;
                  function x(X, U, te) {
                    return b.index = X, b.matches_head = U, b.matches_pt1 = te, b === h ? (b = i, !1) : (b = null, !0);
                  }
                  for (var D = 0; D < l.length; D++) {
                    var C = l[D], w = C[0];
                    C[1];
                    var S = C[C.length - 1];
                    if (C[C.length - 2], a.pointsSame(w, c)) {
                      if (x(D, !0, !0))
                        break;
                    } else if (a.pointsSame(w, d)) {
                      if (x(D, !0, !1))
                        break;
                    } else if (a.pointsSame(S, c)) {
                      if (x(D, !1, !0))
                        break;
                    } else if (a.pointsSame(S, d) && x(D, !1, !1))
                      break;
                  }
                  if (b === h) {
                    l.push([c, d]), p && p.chainNew(c, d);
                    return;
                  }
                  if (b === i) {
                    p && p.chainMatch(h.index);
                    var T = h.index, k = h.matches_pt1 ? d : c, A = h.matches_head, C = l[T], R = A ? C[0] : C[C.length - 1], g = A ? C[1] : C[C.length - 2], I = A ? C[C.length - 1] : C[0], O = A ? C[C.length - 2] : C[1];
                    if (a.pointsCollinear(g, R, k) && (A ? (p && p.chainRemoveHead(h.index, k), C.shift()) : (p && p.chainRemoveTail(h.index, k), C.pop()), R = g), a.pointsSame(I, k)) {
                      l.splice(T, 1), a.pointsCollinear(O, I, R) && (A ? (p && p.chainRemoveTail(h.index, R), C.pop()) : (p && p.chainRemoveHead(h.index, R), C.shift())), p && p.chainClose(h.index), f.push(C);
                      return;
                    }
                    A ? (p && p.chainAddHead(h.index, k), C.unshift(k)) : (p && p.chainAddTail(h.index, k), C.push(k));
                    return;
                  }
                  function $(X) {
                    p && p.chainReverse(X), l[X].reverse();
                  }
                  function Y(X, U) {
                    var te = l[X], se = l[U], me = te[te.length - 1], J = te[te.length - 2], W = se[0], ae = se[1];
                    a.pointsCollinear(J, me, W) && (p && p.chainRemoveTail(X, me), te.pop(), me = J), a.pointsCollinear(me, W, ae) && (p && p.chainRemoveHead(U, W), se.shift()), p && p.chainJoin(X, U), l[X] = te.concat(se), l.splice(U, 1);
                  }
                  var ne = h.index, q = i.index;
                  p && p.chainConnect(ne, q);
                  var B = l[ne].length < l[q].length;
                  h.matches_head ? i.matches_head ? B ? ($(ne), Y(ne, q)) : ($(q), Y(q, ne)) : Y(q, ne) : i.matches_head ? Y(ne, q) : B ? ($(ne), Y(q, ne)) : ($(q), Y(ne, q));
                }), f;
              }
              M.exports = L;
            }
          ),
          /***/
          2368: (
            /***/
            function(M) {
              function L(a, p, l) {
                var f = [];
                return a.forEach(function(u) {
                  var c = (u.myFill.above ? 8 : 0) + (u.myFill.below ? 4 : 0) + (u.otherFill && u.otherFill.above ? 2 : 0) + (u.otherFill && u.otherFill.below ? 1 : 0);
                  p[c] !== 0 && f.push({
                    id: l ? l.segmentId() : -1,
                    start: u.start,
                    end: u.end,
                    myFill: {
                      above: p[c] === 1,
                      // 1 if filled above
                      below: p[c] === 2
                      // 2 if filled below
                    },
                    otherFill: null
                  });
                }), l && l.selected(f), f;
              }
              var r = {
                union: function(a, p) {
                  return L(a, [
                    0,
                    2,
                    1,
                    0,
                    2,
                    2,
                    0,
                    0,
                    1,
                    0,
                    1,
                    0,
                    0,
                    0,
                    0,
                    0
                  ], p);
                },
                intersect: function(a, p) {
                  return L(a, [
                    0,
                    0,
                    0,
                    0,
                    0,
                    2,
                    0,
                    2,
                    0,
                    0,
                    1,
                    1,
                    0,
                    2,
                    1,
                    0
                  ], p);
                },
                difference: function(a, p) {
                  return L(a, [
                    0,
                    0,
                    0,
                    0,
                    2,
                    0,
                    2,
                    0,
                    1,
                    1,
                    0,
                    0,
                    0,
                    1,
                    2,
                    0
                  ], p);
                },
                differenceRev: function(a, p) {
                  return L(a, [
                    0,
                    2,
                    1,
                    0,
                    0,
                    0,
                    1,
                    1,
                    0,
                    2,
                    0,
                    2,
                    0,
                    0,
                    0,
                    0
                  ], p);
                },
                xor: function(a, p) {
                  return L(a, [
                    0,
                    2,
                    1,
                    0,
                    2,
                    0,
                    0,
                    1,
                    1,
                    0,
                    0,
                    2,
                    0,
                    1,
                    2,
                    0
                  ], p);
                }
              };
              M.exports = r;
            }
          ),
          /***/
          9760: (
            /***/
            function(M, L, r) {
              var a;
              (function(p) {
                var l = /^\s+/, f = /\s+$/, u = 0, c = p.round, d = p.min, h = p.max, i = p.random;
                function b(H, ce) {
                  if (H = H || "", ce = ce || {}, H instanceof b)
                    return H;
                  if (!(this instanceof b))
                    return new b(H, ce);
                  var j = x(H);
                  this._originalInput = H, this._r = j.r, this._g = j.g, this._b = j.b, this._a = j.a, this._roundA = c(100 * this._a) / 100, this._format = ce.format || j.format, this._gradientType = ce.gradientType, this._r < 1 && (this._r = c(this._r)), this._g < 1 && (this._g = c(this._g)), this._b < 1 && (this._b = c(this._b)), this._ok = j.ok, this._tc_id = u++;
                }
                b.prototype = {
                  isDark: function() {
                    return this.getBrightness() < 128;
                  },
                  isLight: function() {
                    return !this.isDark();
                  },
                  isValid: function() {
                    return this._ok;
                  },
                  getOriginalInput: function() {
                    return this._originalInput;
                  },
                  getFormat: function() {
                    return this._format;
                  },
                  getAlpha: function() {
                    return this._a;
                  },
                  getBrightness: function() {
                    var H = this.toRgb();
                    return (H.r * 299 + H.g * 587 + H.b * 114) / 1e3;
                  },
                  getLuminance: function() {
                    var H = this.toRgb(), ce, j, he, be, we, Ie;
                    return ce = H.r / 255, j = H.g / 255, he = H.b / 255, ce <= 0.03928 ? be = ce / 12.92 : be = p.pow((ce + 0.055) / 1.055, 2.4), j <= 0.03928 ? we = j / 12.92 : we = p.pow((j + 0.055) / 1.055, 2.4), he <= 0.03928 ? Ie = he / 12.92 : Ie = p.pow((he + 0.055) / 1.055, 2.4), 0.2126 * be + 0.7152 * we + 0.0722 * Ie;
                  },
                  setAlpha: function(H) {
                    return this._a = oe(H), this._roundA = c(100 * this._a) / 100, this;
                  },
                  toHsv: function() {
                    var H = S(this._r, this._g, this._b);
                    return { h: H.h * 360, s: H.s, v: H.v, a: this._a };
                  },
                  toHsvString: function() {
                    var H = S(this._r, this._g, this._b), ce = c(H.h * 360), j = c(H.s * 100), he = c(H.v * 100);
                    return this._a == 1 ? "hsv(" + ce + ", " + j + "%, " + he + "%)" : "hsva(" + ce + ", " + j + "%, " + he + "%, " + this._roundA + ")";
                  },
                  toHsl: function() {
                    var H = C(this._r, this._g, this._b);
                    return { h: H.h * 360, s: H.s, l: H.l, a: this._a };
                  },
                  toHslString: function() {
                    var H = C(this._r, this._g, this._b), ce = c(H.h * 360), j = c(H.s * 100), he = c(H.l * 100);
                    return this._a == 1 ? "hsl(" + ce + ", " + j + "%, " + he + "%)" : "hsla(" + ce + ", " + j + "%, " + he + "%, " + this._roundA + ")";
                  },
                  toHex: function(H) {
                    return k(this._r, this._g, this._b, H);
                  },
                  toHexString: function(H) {
                    return "#" + this.toHex(H);
                  },
                  toHex8: function(H) {
                    return A(this._r, this._g, this._b, this._a, H);
                  },
                  toHex8String: function(H) {
                    return "#" + this.toHex8(H);
                  },
                  toRgb: function() {
                    return { r: c(this._r), g: c(this._g), b: c(this._b), a: this._a };
                  },
                  toRgbString: function() {
                    return this._a == 1 ? "rgb(" + c(this._r) + ", " + c(this._g) + ", " + c(this._b) + ")" : "rgba(" + c(this._r) + ", " + c(this._g) + ", " + c(this._b) + ", " + this._roundA + ")";
                  },
                  toPercentageRgb: function() {
                    return { r: c(ve(this._r, 255) * 100) + "%", g: c(ve(this._g, 255) * 100) + "%", b: c(ve(this._b, 255) * 100) + "%", a: this._a };
                  },
                  toPercentageRgbString: function() {
                    return this._a == 1 ? "rgb(" + c(ve(this._r, 255) * 100) + "%, " + c(ve(this._g, 255) * 100) + "%, " + c(ve(this._b, 255) * 100) + "%)" : "rgba(" + c(ve(this._r, 255) * 100) + "%, " + c(ve(this._g, 255) * 100) + "%, " + c(ve(this._b, 255) * 100) + "%, " + this._roundA + ")";
                  },
                  toName: function() {
                    return this._a === 0 ? "transparent" : this._a < 1 ? !1 : W[k(this._r, this._g, this._b, !0)] || !1;
                  },
                  toFilter: function(H) {
                    var ce = "#" + R(this._r, this._g, this._b, this._a), j = ce, he = this._gradientType ? "GradientType = 1, " : "";
                    if (H) {
                      var be = b(H);
                      j = "#" + R(be._r, be._g, be._b, be._a);
                    }
                    return "progid:DXImageTransform.Microsoft.gradient(" + he + "startColorstr=" + ce + ",endColorstr=" + j + ")";
                  },
                  toString: function(H) {
                    var ce = !!H;
                    H = H || this._format;
                    var j = !1, he = this._a < 1 && this._a >= 0, be = !ce && he && (H === "hex" || H === "hex6" || H === "hex3" || H === "hex4" || H === "hex8" || H === "name");
                    return be ? H === "name" && this._a === 0 ? this.toName() : this.toRgbString() : (H === "rgb" && (j = this.toRgbString()), H === "prgb" && (j = this.toPercentageRgbString()), (H === "hex" || H === "hex6") && (j = this.toHexString()), H === "hex3" && (j = this.toHexString(!0)), H === "hex4" && (j = this.toHex8String(!0)), H === "hex8" && (j = this.toHex8String()), H === "name" && (j = this.toName()), H === "hsl" && (j = this.toHslString()), H === "hsv" && (j = this.toHsvString()), j || this.toHexString());
                  },
                  clone: function() {
                    return b(this.toString());
                  },
                  _applyModification: function(H, ce) {
                    var j = H.apply(null, [this].concat([].slice.call(ce)));
                    return this._r = j._r, this._g = j._g, this._b = j._b, this.setAlpha(j._a), this;
                  },
                  lighten: function() {
                    return this._applyModification($, arguments);
                  },
                  brighten: function() {
                    return this._applyModification(Y, arguments);
                  },
                  darken: function() {
                    return this._applyModification(ne, arguments);
                  },
                  desaturate: function() {
                    return this._applyModification(g, arguments);
                  },
                  saturate: function() {
                    return this._applyModification(I, arguments);
                  },
                  greyscale: function() {
                    return this._applyModification(O, arguments);
                  },
                  spin: function() {
                    return this._applyModification(q, arguments);
                  },
                  _applyCombination: function(H, ce) {
                    return H.apply(null, [this].concat([].slice.call(ce)));
                  },
                  analogous: function() {
                    return this._applyCombination(se, arguments);
                  },
                  complement: function() {
                    return this._applyCombination(B, arguments);
                  },
                  monochromatic: function() {
                    return this._applyCombination(me, arguments);
                  },
                  splitcomplement: function() {
                    return this._applyCombination(te, arguments);
                  },
                  triad: function() {
                    return this._applyCombination(X, arguments);
                  },
                  tetrad: function() {
                    return this._applyCombination(U, arguments);
                  }
                }, b.fromRatio = function(H, ce) {
                  if (typeof H == "object") {
                    var j = {};
                    for (var he in H)
                      H.hasOwnProperty(he) && (he === "a" ? j[he] = H[he] : j[he] = xe(H[he]));
                    H = j;
                  }
                  return b(H, ce);
                };
                function x(H) {
                  var ce = { r: 0, g: 0, b: 0 }, j = 1, he = null, be = null, we = null, Ie = !1, Ge = !1;
                  return typeof H == "string" && (H = ie(H)), typeof H == "object" && (ee(H.r) && ee(H.g) && ee(H.b) ? (ce = D(H.r, H.g, H.b), Ie = !0, Ge = String(H.r).substr(-1) === "%" ? "prgb" : "rgb") : ee(H.h) && ee(H.s) && ee(H.v) ? (he = xe(H.s), be = xe(H.v), ce = T(H.h, he, be), Ie = !0, Ge = "hsv") : ee(H.h) && ee(H.s) && ee(H.l) && (he = xe(H.s), we = xe(H.l), ce = w(H.h, he, we), Ie = !0, Ge = "hsl"), H.hasOwnProperty("a") && (j = H.a)), j = oe(j), {
                    ok: Ie,
                    format: H.format || Ge,
                    r: d(255, h(ce.r, 0)),
                    g: d(255, h(ce.g, 0)),
                    b: d(255, h(ce.b, 0)),
                    a: j
                  };
                }
                function D(H, ce, j) {
                  return {
                    r: ve(H, 255) * 255,
                    g: ve(ce, 255) * 255,
                    b: ve(j, 255) * 255
                  };
                }
                function C(H, ce, j) {
                  H = ve(H, 255), ce = ve(ce, 255), j = ve(j, 255);
                  var he = h(H, ce, j), be = d(H, ce, j), we, Ie, Ge = (he + be) / 2;
                  if (he == be)
                    we = Ie = 0;
                  else {
                    var Ve = he - be;
                    switch (Ie = Ge > 0.5 ? Ve / (2 - he - be) : Ve / (he + be), he) {
                      case H:
                        we = (ce - j) / Ve + (ce < j ? 6 : 0);
                        break;
                      case ce:
                        we = (j - H) / Ve + 2;
                        break;
                      case j:
                        we = (H - ce) / Ve + 4;
                        break;
                    }
                    we /= 6;
                  }
                  return { h: we, s: Ie, l: Ge };
                }
                function w(H, ce, j) {
                  var he, be, we;
                  H = ve(H, 360), ce = ve(ce, 100), j = ve(j, 100);
                  function Ie(Je, et, at) {
                    return at < 0 && (at += 1), at > 1 && (at -= 1), at < 0.16666666666666666 ? Je + (et - Je) * 6 * at : at < 0.5 ? et : at < 0.6666666666666666 ? Je + (et - Je) * (0.6666666666666666 - at) * 6 : Je;
                  }
                  if (ce === 0)
                    he = be = we = j;
                  else {
                    var Ge = j < 0.5 ? j * (1 + ce) : j + ce - j * ce, Ve = 2 * j - Ge;
                    he = Ie(Ve, Ge, H + 0.3333333333333333), be = Ie(Ve, Ge, H), we = Ie(Ve, Ge, H - 0.3333333333333333);
                  }
                  return { r: he * 255, g: be * 255, b: we * 255 };
                }
                function S(H, ce, j) {
                  H = ve(H, 255), ce = ve(ce, 255), j = ve(j, 255);
                  var he = h(H, ce, j), be = d(H, ce, j), we, Ie, Ge = he, Ve = he - be;
                  if (Ie = he === 0 ? 0 : Ve / he, he == be)
                    we = 0;
                  else {
                    switch (he) {
                      case H:
                        we = (ce - j) / Ve + (ce < j ? 6 : 0);
                        break;
                      case ce:
                        we = (j - H) / Ve + 2;
                        break;
                      case j:
                        we = (H - ce) / Ve + 4;
                        break;
                    }
                    we /= 6;
                  }
                  return { h: we, s: Ie, v: Ge };
                }
                function T(H, ce, j) {
                  H = ve(H, 360) * 6, ce = ve(ce, 100), j = ve(j, 100);
                  var he = p.floor(H), be = H - he, we = j * (1 - ce), Ie = j * (1 - be * ce), Ge = j * (1 - (1 - be) * ce), Ve = he % 6, Je = [j, Ie, we, we, Ge, j][Ve], et = [Ge, j, j, Ie, we, we][Ve], at = [we, we, Ge, j, j, Ie][Ve];
                  return { r: Je * 255, g: et * 255, b: at * 255 };
                }
                function k(H, ce, j, he) {
                  var be = [
                    Be(c(H).toString(16)),
                    Be(c(ce).toString(16)),
                    Be(c(j).toString(16))
                  ];
                  return he && be[0].charAt(0) == be[0].charAt(1) && be[1].charAt(0) == be[1].charAt(1) && be[2].charAt(0) == be[2].charAt(1) ? be[0].charAt(0) + be[1].charAt(0) + be[2].charAt(0) : be.join("");
                }
                function A(H, ce, j, he, be) {
                  var we = [
                    Be(c(H).toString(16)),
                    Be(c(ce).toString(16)),
                    Be(c(j).toString(16)),
                    Be(Me(he))
                  ];
                  return be && we[0].charAt(0) == we[0].charAt(1) && we[1].charAt(0) == we[1].charAt(1) && we[2].charAt(0) == we[2].charAt(1) && we[3].charAt(0) == we[3].charAt(1) ? we[0].charAt(0) + we[1].charAt(0) + we[2].charAt(0) + we[3].charAt(0) : we.join("");
                }
                function R(H, ce, j, he) {
                  var be = [
                    Be(Me(he)),
                    Be(c(H).toString(16)),
                    Be(c(ce).toString(16)),
                    Be(c(j).toString(16))
                  ];
                  return be.join("");
                }
                b.equals = function(H, ce) {
                  return !H || !ce ? !1 : b(H).toRgbString() == b(ce).toRgbString();
                }, b.random = function() {
                  return b.fromRatio({
                    r: i(),
                    g: i(),
                    b: i()
                  });
                };
                function g(H, ce) {
                  ce = ce === 0 ? 0 : ce || 10;
                  var j = b(H).toHsl();
                  return j.s -= ce / 100, j.s = fe(j.s), b(j);
                }
                function I(H, ce) {
                  ce = ce === 0 ? 0 : ce || 10;
                  var j = b(H).toHsl();
                  return j.s += ce / 100, j.s = fe(j.s), b(j);
                }
                function O(H) {
                  return b(H).desaturate(100);
                }
                function $(H, ce) {
                  ce = ce === 0 ? 0 : ce || 10;
                  var j = b(H).toHsl();
                  return j.l += ce / 100, j.l = fe(j.l), b(j);
                }
                function Y(H, ce) {
                  ce = ce === 0 ? 0 : ce || 10;
                  var j = b(H).toRgb();
                  return j.r = h(0, d(255, j.r - c(255 * -(ce / 100)))), j.g = h(0, d(255, j.g - c(255 * -(ce / 100)))), j.b = h(0, d(255, j.b - c(255 * -(ce / 100)))), b(j);
                }
                function ne(H, ce) {
                  ce = ce === 0 ? 0 : ce || 10;
                  var j = b(H).toHsl();
                  return j.l -= ce / 100, j.l = fe(j.l), b(j);
                }
                function q(H, ce) {
                  var j = b(H).toHsl(), he = (j.h + ce) % 360;
                  return j.h = he < 0 ? 360 + he : he, b(j);
                }
                function B(H) {
                  var ce = b(H).toHsl();
                  return ce.h = (ce.h + 180) % 360, b(ce);
                }
                function X(H) {
                  var ce = b(H).toHsl(), j = ce.h;
                  return [
                    b(H),
                    b({ h: (j + 120) % 360, s: ce.s, l: ce.l }),
                    b({ h: (j + 240) % 360, s: ce.s, l: ce.l })
                  ];
                }
                function U(H) {
                  var ce = b(H).toHsl(), j = ce.h;
                  return [
                    b(H),
                    b({ h: (j + 90) % 360, s: ce.s, l: ce.l }),
                    b({ h: (j + 180) % 360, s: ce.s, l: ce.l }),
                    b({ h: (j + 270) % 360, s: ce.s, l: ce.l })
                  ];
                }
                function te(H) {
                  var ce = b(H).toHsl(), j = ce.h;
                  return [
                    b(H),
                    b({ h: (j + 72) % 360, s: ce.s, l: ce.l }),
                    b({ h: (j + 216) % 360, s: ce.s, l: ce.l })
                  ];
                }
                function se(H, ce, j) {
                  ce = ce || 6, j = j || 30;
                  var he = b(H).toHsl(), be = 360 / j, we = [b(H)];
                  for (he.h = (he.h - (be * ce >> 1) + 720) % 360; --ce; )
                    he.h = (he.h + be) % 360, we.push(b(he));
                  return we;
                }
                function me(H, ce) {
                  ce = ce || 6;
                  for (var j = b(H).toHsv(), he = j.h, be = j.s, we = j.v, Ie = [], Ge = 1 / ce; ce--; )
                    Ie.push(b({ h: he, s: be, v: we })), we = (we + Ge) % 1;
                  return Ie;
                }
                b.mix = function(H, ce, j) {
                  j = j === 0 ? 0 : j || 50;
                  var he = b(H).toRgb(), be = b(ce).toRgb(), we = j / 100, Ie = {
                    r: (be.r - he.r) * we + he.r,
                    g: (be.g - he.g) * we + he.g,
                    b: (be.b - he.b) * we + he.b,
                    a: (be.a - he.a) * we + he.a
                  };
                  return b(Ie);
                }, b.readability = function(H, ce) {
                  var j = b(H), he = b(ce);
                  return (p.max(j.getLuminance(), he.getLuminance()) + 0.05) / (p.min(j.getLuminance(), he.getLuminance()) + 0.05);
                }, b.isReadable = function(H, ce, j) {
                  var he = b.readability(H, ce), be, we;
                  switch (we = !1, be = G(j), be.level + be.size) {
                    case "AAsmall":
                    case "AAAlarge":
                      we = he >= 4.5;
                      break;
                    case "AAlarge":
                      we = he >= 3;
                      break;
                    case "AAAsmall":
                      we = he >= 7;
                      break;
                  }
                  return we;
                }, b.mostReadable = function(H, ce, j) {
                  var he = null, be = 0, we, Ie, Ge, Ve;
                  j = j || {}, Ie = j.includeFallbackColors, Ge = j.level, Ve = j.size;
                  for (var Je = 0; Je < ce.length; Je++)
                    we = b.readability(H, ce[Je]), we > be && (be = we, he = b(ce[Je]));
                  return b.isReadable(H, he, { level: Ge, size: Ve }) || !Ie ? he : (j.includeFallbackColors = !1, b.mostReadable(H, ["#fff", "#000"], j));
                };
                var J = b.names = {
                  aliceblue: "f0f8ff",
                  antiquewhite: "faebd7",
                  aqua: "0ff",
                  aquamarine: "7fffd4",
                  azure: "f0ffff",
                  beige: "f5f5dc",
                  bisque: "ffe4c4",
                  black: "000",
                  blanchedalmond: "ffebcd",
                  blue: "00f",
                  blueviolet: "8a2be2",
                  brown: "a52a2a",
                  burlywood: "deb887",
                  burntsienna: "ea7e5d",
                  cadetblue: "5f9ea0",
                  chartreuse: "7fff00",
                  chocolate: "d2691e",
                  coral: "ff7f50",
                  cornflowerblue: "6495ed",
                  cornsilk: "fff8dc",
                  crimson: "dc143c",
                  cyan: "0ff",
                  darkblue: "00008b",
                  darkcyan: "008b8b",
                  darkgoldenrod: "b8860b",
                  darkgray: "a9a9a9",
                  darkgreen: "006400",
                  darkgrey: "a9a9a9",
                  darkkhaki: "bdb76b",
                  darkmagenta: "8b008b",
                  darkolivegreen: "556b2f",
                  darkorange: "ff8c00",
                  darkorchid: "9932cc",
                  darkred: "8b0000",
                  darksalmon: "e9967a",
                  darkseagreen: "8fbc8f",
                  darkslateblue: "483d8b",
                  darkslategray: "2f4f4f",
                  darkslategrey: "2f4f4f",
                  darkturquoise: "00ced1",
                  darkviolet: "9400d3",
                  deeppink: "ff1493",
                  deepskyblue: "00bfff",
                  dimgray: "696969",
                  dimgrey: "696969",
                  dodgerblue: "1e90ff",
                  firebrick: "b22222",
                  floralwhite: "fffaf0",
                  forestgreen: "228b22",
                  fuchsia: "f0f",
                  gainsboro: "dcdcdc",
                  ghostwhite: "f8f8ff",
                  gold: "ffd700",
                  goldenrod: "daa520",
                  gray: "808080",
                  green: "008000",
                  greenyellow: "adff2f",
                  grey: "808080",
                  honeydew: "f0fff0",
                  hotpink: "ff69b4",
                  indianred: "cd5c5c",
                  indigo: "4b0082",
                  ivory: "fffff0",
                  khaki: "f0e68c",
                  lavender: "e6e6fa",
                  lavenderblush: "fff0f5",
                  lawngreen: "7cfc00",
                  lemonchiffon: "fffacd",
                  lightblue: "add8e6",
                  lightcoral: "f08080",
                  lightcyan: "e0ffff",
                  lightgoldenrodyellow: "fafad2",
                  lightgray: "d3d3d3",
                  lightgreen: "90ee90",
                  lightgrey: "d3d3d3",
                  lightpink: "ffb6c1",
                  lightsalmon: "ffa07a",
                  lightseagreen: "20b2aa",
                  lightskyblue: "87cefa",
                  lightslategray: "789",
                  lightslategrey: "789",
                  lightsteelblue: "b0c4de",
                  lightyellow: "ffffe0",
                  lime: "0f0",
                  limegreen: "32cd32",
                  linen: "faf0e6",
                  magenta: "f0f",
                  maroon: "800000",
                  mediumaquamarine: "66cdaa",
                  mediumblue: "0000cd",
                  mediumorchid: "ba55d3",
                  mediumpurple: "9370db",
                  mediumseagreen: "3cb371",
                  mediumslateblue: "7b68ee",
                  mediumspringgreen: "00fa9a",
                  mediumturquoise: "48d1cc",
                  mediumvioletred: "c71585",
                  midnightblue: "191970",
                  mintcream: "f5fffa",
                  mistyrose: "ffe4e1",
                  moccasin: "ffe4b5",
                  navajowhite: "ffdead",
                  navy: "000080",
                  oldlace: "fdf5e6",
                  olive: "808000",
                  olivedrab: "6b8e23",
                  orange: "ffa500",
                  orangered: "ff4500",
                  orchid: "da70d6",
                  palegoldenrod: "eee8aa",
                  palegreen: "98fb98",
                  paleturquoise: "afeeee",
                  palevioletred: "db7093",
                  papayawhip: "ffefd5",
                  peachpuff: "ffdab9",
                  peru: "cd853f",
                  pink: "ffc0cb",
                  plum: "dda0dd",
                  powderblue: "b0e0e6",
                  purple: "800080",
                  rebeccapurple: "663399",
                  red: "f00",
                  rosybrown: "bc8f8f",
                  royalblue: "4169e1",
                  saddlebrown: "8b4513",
                  salmon: "fa8072",
                  sandybrown: "f4a460",
                  seagreen: "2e8b57",
                  seashell: "fff5ee",
                  sienna: "a0522d",
                  silver: "c0c0c0",
                  skyblue: "87ceeb",
                  slateblue: "6a5acd",
                  slategray: "708090",
                  slategrey: "708090",
                  snow: "fffafa",
                  springgreen: "00ff7f",
                  steelblue: "4682b4",
                  tan: "d2b48c",
                  teal: "008080",
                  thistle: "d8bfd8",
                  tomato: "ff6347",
                  turquoise: "40e0d0",
                  violet: "ee82ee",
                  wheat: "f5deb3",
                  white: "fff",
                  whitesmoke: "f5f5f5",
                  yellow: "ff0",
                  yellowgreen: "9acd32"
                }, W = b.hexNames = ae(J);
                function ae(H) {
                  var ce = {};
                  for (var j in H)
                    H.hasOwnProperty(j) && (ce[H[j]] = j);
                  return ce;
                }
                function oe(H) {
                  return H = parseFloat(H), (isNaN(H) || H < 0 || H > 1) && (H = 1), H;
                }
                function ve(H, ce) {
                  Ce(H) && (H = "100%");
                  var j = Re(H);
                  return H = d(ce, h(0, parseFloat(H))), j && (H = parseInt(H * ce, 10) / 100), p.abs(H - ce) < 1e-6 ? 1 : H % ce / parseFloat(ce);
                }
                function fe(H) {
                  return d(1, h(0, H));
                }
                function ye(H) {
                  return parseInt(H, 16);
                }
                function Ce(H) {
                  return typeof H == "string" && H.indexOf(".") != -1 && parseFloat(H) === 1;
                }
                function Re(H) {
                  return typeof H == "string" && H.indexOf("%") != -1;
                }
                function Be(H) {
                  return H.length == 1 ? "0" + H : "" + H;
                }
                function xe(H) {
                  return H <= 1 && (H = H * 100 + "%"), H;
                }
                function Me(H) {
                  return p.round(parseFloat(H) * 255).toString(16);
                }
                function De(H) {
                  return ye(H) / 255;
                }
                var Z = function() {
                  var H = "[-\\+]?\\d+%?", ce = "[-\\+]?\\d*\\.\\d+%?", j = "(?:" + ce + ")|(?:" + H + ")", he = "[\\s|\\(]+(" + j + ")[,|\\s]+(" + j + ")[,|\\s]+(" + j + ")\\s*\\)?", be = "[\\s|\\(]+(" + j + ")[,|\\s]+(" + j + ")[,|\\s]+(" + j + ")[,|\\s]+(" + j + ")\\s*\\)?";
                  return {
                    CSS_UNIT: new RegExp(j),
                    rgb: new RegExp("rgb" + he),
                    rgba: new RegExp("rgba" + be),
                    hsl: new RegExp("hsl" + he),
                    hsla: new RegExp("hsla" + be),
                    hsv: new RegExp("hsv" + he),
                    hsva: new RegExp("hsva" + be),
                    hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
                    hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,
                    hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
                    hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/
                  };
                }();
                function ee(H) {
                  return !!Z.CSS_UNIT.exec(H);
                }
                function ie(H) {
                  H = H.replace(l, "").replace(f, "").toLowerCase();
                  var ce = !1;
                  if (J[H])
                    H = J[H], ce = !0;
                  else if (H == "transparent")
                    return { r: 0, g: 0, b: 0, a: 0, format: "name" };
                  var j;
                  return (j = Z.rgb.exec(H)) ? { r: j[1], g: j[2], b: j[3] } : (j = Z.rgba.exec(H)) ? { r: j[1], g: j[2], b: j[3], a: j[4] } : (j = Z.hsl.exec(H)) ? { h: j[1], s: j[2], l: j[3] } : (j = Z.hsla.exec(H)) ? { h: j[1], s: j[2], l: j[3], a: j[4] } : (j = Z.hsv.exec(H)) ? { h: j[1], s: j[2], v: j[3] } : (j = Z.hsva.exec(H)) ? { h: j[1], s: j[2], v: j[3], a: j[4] } : (j = Z.hex8.exec(H)) ? {
                    r: ye(j[1]),
                    g: ye(j[2]),
                    b: ye(j[3]),
                    a: De(j[4]),
                    format: ce ? "name" : "hex8"
                  } : (j = Z.hex6.exec(H)) ? {
                    r: ye(j[1]),
                    g: ye(j[2]),
                    b: ye(j[3]),
                    format: ce ? "name" : "hex"
                  } : (j = Z.hex4.exec(H)) ? {
                    r: ye(j[1] + "" + j[1]),
                    g: ye(j[2] + "" + j[2]),
                    b: ye(j[3] + "" + j[3]),
                    a: De(j[4] + "" + j[4]),
                    format: ce ? "name" : "hex8"
                  } : (j = Z.hex3.exec(H)) ? {
                    r: ye(j[1] + "" + j[1]),
                    g: ye(j[2] + "" + j[2]),
                    b: ye(j[3] + "" + j[3]),
                    format: ce ? "name" : "hex"
                  } : !1;
                }
                function G(H) {
                  var ce, j;
                  return H = H || { level: "AA", size: "small" }, ce = (H.level || "AA").toUpperCase(), j = (H.size || "small").toLowerCase(), ce !== "AA" && ce !== "AAA" && (ce = "AA"), j !== "small" && j !== "large" && (j = "small"), { level: ce, size: j };
                }
                M.exports ? M.exports = b : (a = (function() {
                  return b;
                }).call(L, r, L, M), a !== void 0 && (M.exports = a));
              })(Math);
            }
          ),
          /***/
          7020: (
            /***/
            function(M, L, r) {
              var a = r(8700), p = r(896), l = a.instance();
              function f(C) {
                this.local = this.regionalOptions[C || ""] || this.regionalOptions[""];
              }
              f.prototype = new a.baseCalendar(), p(f.prototype, {
                /** The calendar name.
                    @memberof ChineseCalendar */
                name: "Chinese",
                /** Julian date of start of Gregorian epoch: 1 January 0001 CE.
                   @memberof GregorianCalendar */
                jdEpoch: 17214255e-1,
                /** <code>true</code> if has a year zero, <code>false</code> if not.
                    @memberof ChineseCalendar */
                hasYearZero: !1,
                /** The minimum month number.
                    This calendar uses month indices to account for intercalary months. 
                    @memberof ChineseCalendar */
                minMonth: 0,
                /** The first month in the year.
                    This calendar uses month indices to account for intercalary months. 
                    @memberof ChineseCalendar */
                firstMonth: 0,
                /** The minimum day number.
                    @memberof ChineseCalendar */
                minDay: 1,
                /** Localisations for the plugin.
                    Entries are objects indexed by the language code ('' being the default US/English).
                    Each object has the following attributes.
                    @memberof ChineseCalendar
                    @property name {string} The calendar name.
                    @property epochs {string[]} The epoch names.
                    @property monthNames {string[]} The long names of the months of the year.
                    @property monthNamesShort {string[]} The short names of the months of the year.
                    @property dayNames {string[]} The long names of the days of the week.
                    @property dayNamesShort {string[]} The short names of the days of the week.
                    @property dayNamesMin {string[]} The minimal names of the days of the week.
                    @property dateFormat {string} The date format for this calendar.
                            See the options on <a href="BaseCalendar.html#formatDate"><code>formatDate</code></a> for details.
                    @property firstDay {number} The number of the first day of the week, starting at 0.
                    @property isRTL {number} <code>true</code> if this localisation reads right-to-left. */
                regionalOptions: {
                  // Localisations
                  "": {
                    name: "Chinese",
                    epochs: ["BEC", "EC"],
                    monthNumbers: function(C, w) {
                      if (typeof C == "string") {
                        var S = C.match(c);
                        return S ? S[0] : "";
                      }
                      var T = this._validateYear(C), k = C.month(), A = "" + this.toChineseMonth(T, k);
                      return w && A.length < 2 && (A = "0" + A), this.isIntercalaryMonth(T, k) && (A += "i"), A;
                    },
                    monthNames: function(C) {
                      if (typeof C == "string") {
                        var w = C.match(d);
                        return w ? w[0] : "";
                      }
                      var S = this._validateYear(C), T = C.month(), k = this.toChineseMonth(S, T), A = [
                        "一月",
                        "二月",
                        "三月",
                        "四月",
                        "五月",
                        "六月",
                        "七月",
                        "八月",
                        "九月",
                        "十月",
                        "十一月",
                        "十二月"
                      ][k - 1];
                      return this.isIntercalaryMonth(S, T) && (A = "闰" + A), A;
                    },
                    monthNamesShort: function(C) {
                      if (typeof C == "string") {
                        var w = C.match(h);
                        return w ? w[0] : "";
                      }
                      var S = this._validateYear(C), T = C.month(), k = this.toChineseMonth(S, T), A = [
                        "一",
                        "二",
                        "三",
                        "四",
                        "五",
                        "六",
                        "七",
                        "八",
                        "九",
                        "十",
                        "十一",
                        "十二"
                      ][k - 1];
                      return this.isIntercalaryMonth(S, T) && (A = "闰" + A), A;
                    },
                    parseMonth: function(C, w) {
                      C = this._validateYear(C);
                      var S = parseInt(w), T;
                      if (isNaN(S))
                        w[0] === "闰" && (T = !0, w = w.substring(1)), w[w.length - 1] === "月" && (w = w.substring(0, w.length - 1)), S = 1 + [
                          "一",
                          "二",
                          "三",
                          "四",
                          "五",
                          "六",
                          "七",
                          "八",
                          "九",
                          "十",
                          "十一",
                          "十二"
                        ].indexOf(w);
                      else {
                        var k = w[w.length - 1];
                        T = k === "i" || k === "I";
                      }
                      var A = this.toMonthIndex(C, S, T);
                      return A;
                    },
                    dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
                    dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
                    dayNamesMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
                    digits: null,
                    dateFormat: "yyyy/mm/dd",
                    firstDay: 1,
                    isRTL: !1
                  }
                },
                /** Check that a candidate date is from the same calendar and is valid.
                    @memberof BaseCalendar
                    @private
                    @param year {CDate|number} The date or the year to validate.
                    @param error {string} Error message if invalid.
                    @return {number} The year.
                    @throws Error if year out of range. */
                _validateYear: function(C, w) {
                  if (C.year && (C = C.year()), typeof C != "number" || C < 1888 || C > 2111)
                    throw w.replace(/\{0\}/, this.local.name);
                  return C;
                },
                /** Retrieve the month index (i.e. accounting for intercalary months).
                    @memberof ChineseCalendar
                    @param year {number} The year.
                    @param month {number} The month (1 for first month).
                    @param [isIntercalary=false] {boolean} If month is intercalary.
                    @return {number} The month index (0 for first month).
                    @throws Error if an invalid month/year or a different calendar used. */
                toMonthIndex: function(C, w, S) {
                  var T = this.intercalaryMonth(C), k = S && w !== T;
                  if (k || w < 1 || w > 12)
                    throw a.local.invalidMonth.replace(/\{0\}/, this.local.name);
                  var A;
                  return T ? !S && w <= T ? A = w - 1 : A = w : A = w - 1, A;
                },
                /** Retrieve the month (i.e. accounting for intercalary months).
                    @memberof ChineseCalendar
                    @param year {CDate|number} The date or the year to examine.
                    @param monthIndex {number} The month index (0 for first month).
                    @return {number} The month (1 for first month).
                    @throws Error if an invalid month/year or a different calendar used. */
                toChineseMonth: function(C, w) {
                  C.year && (C = C.year(), w = C.month());
                  var S = this.intercalaryMonth(C), T = S ? 12 : 11;
                  if (w < 0 || w > T)
                    throw a.local.invalidMonth.replace(/\{0\}/, this.local.name);
                  var k;
                  return S ? w < S ? k = w + 1 : k = w : k = w + 1, k;
                },
                /** Determine the intercalary month of a year (if any).
                    @memberof ChineseCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @return {number} The intercalary month number, or 0 if none.
                    @throws Error if an invalid year or a different calendar used. */
                intercalaryMonth: function(C) {
                  C = this._validateYear(C);
                  var w = i[C - i[0]], S = w >> 13;
                  return S;
                },
                /** Determine whether this date is an intercalary month.
                    @memberof ChineseCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [monthIndex] {number} The month index to examine.
                    @return {boolean} <code>true</code> if this is an intercalary month, <code>false</code> if not.
                    @throws Error if an invalid year or a different calendar used. */
                isIntercalaryMonth: function(C, w) {
                  C.year && (C = C.year(), w = C.month());
                  var S = this.intercalaryMonth(C);
                  return !!S && S === w;
                },
                /** Determine whether this date is in a leap year.
                    @memberof ChineseCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @return {boolean} <code>true</code> if this is a leap year, <code>false</code> if not.
                    @throws Error if an invalid year or a different calendar used. */
                leapYear: function(C) {
                  return this.intercalaryMonth(C) !== 0;
                },
                /** Determine the week of the year for a date - ISO 8601.
                    @memberof ChineseCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [monthIndex] {number} The month index to examine.
                    @param [day] {number} The day to examine.
                    @return {number} The week of the year.
                    @throws Error if an invalid date or a different calendar used. */
                weekOfYear: function(C, w, S) {
                  var T = this._validateYear(C, a.local.invalidyear), k = b[T - b[0]], A = k >> 9 & 4095, R = k >> 5 & 15, g = k & 31, I;
                  I = l.newDate(A, R, g), I.add(4 - (I.dayOfWeek() || 7), "d");
                  var O = this.toJD(C, w, S) - I.toJD();
                  return 1 + Math.floor(O / 7);
                },
                /** Retrieve the number of months in a year.
                    @memberof ChineseCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @return {number} The number of months.
                    @throws Error if an invalid year or a different calendar used. */
                monthsInYear: function(C) {
                  return this.leapYear(C) ? 13 : 12;
                },
                /** Retrieve the number of days in a month.
                    @memberof ChineseCalendar
                    @param year {CDate|number} The date to examine or the year of the month.
                    @param [monthIndex] {number} The month index.
                    @return {number} The number of days in this month.
                    @throws Error if an invalid month/year or a different calendar used. */
                daysInMonth: function(C, w) {
                  C.year && (w = C.month(), C = C.year()), C = this._validateYear(C);
                  var S = i[C - i[0]], T = S >> 13, k = T ? 12 : 11;
                  if (w > k)
                    throw a.local.invalidMonth.replace(/\{0\}/, this.local.name);
                  var A = S & 1 << 12 - w ? 30 : 29;
                  return A;
                },
                /** Determine whether this date is a week day.
                    @memberof ChineseCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [monthIndex] {number} The month index to examine.
                    @param [day] {number} The day to examine.
                    @return {boolean} <code>true</code> if a week day, <code>false</code> if not.
                    @throws Error if an invalid date or a different calendar used. */
                weekDay: function(C, w, S) {
                  return (this.dayOfWeek(C, w, S) || 7) < 6;
                },
                /** Retrieve the Julian date equivalent for this date,
                    i.e. days since January 1, 4713 BCE Greenwich noon.
                    @memberof ChineseCalendar
                    @param year {CDate|number} The date to convert or the year to convert.
                    @param [monthIndex] {number} The month index to convert.
                    @param [day] {number} The day to convert.
                    @return {number} The equivalent Julian date.
                    @throws Error if an invalid date or a different calendar used. */
                toJD: function(C, w, S) {
                  var T = this._validate(C, A, S, a.local.invalidDate);
                  C = this._validateYear(T.year()), w = T.month(), S = T.day();
                  var k = this.isIntercalaryMonth(C, w), A = this.toChineseMonth(C, w), R = D(C, A, S, k);
                  return l.toJD(R.year, R.month, R.day);
                },
                /** Create a new date from a Julian date.
                    @memberof ChineseCalendar
                    @param jd {number} The Julian date to convert.
                    @return {CDate} The equivalent date. */
                fromJD: function(C) {
                  var w = l.fromJD(C), S = x(w.year(), w.month(), w.day()), T = this.toMonthIndex(
                    S.year,
                    S.month,
                    S.isIntercalary
                  );
                  return this.newDate(S.year, T, S.day);
                },
                /** Create a new date from a string.
                    @memberof ChineseCalendar
                    @param dateString {string} String representing a Chinese date
                    @return {CDate} The new date.
                    @throws Error if an invalid date. */
                fromString: function(C) {
                  var w = C.match(u), S = this._validateYear(+w[1]), T = +w[2], k = !!w[3], A = this.toMonthIndex(S, T, k), R = +w[4];
                  return this.newDate(S, A, R);
                },
                /** Add period(s) to a date.
                    Cater for no year zero.
                    @memberof ChineseCalendar
                    @param date {CDate} The starting date.
                    @param offset {number} The number of periods to adjust by.
                    @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day.
                    @return {CDate} The updated date.
                    @throws Error if a different calendar used. */
                add: function(C, w, S) {
                  var T = C.year(), k = C.month(), A = this.isIntercalaryMonth(T, k), R = this.toChineseMonth(T, k), g = Object.getPrototypeOf(f.prototype).add.call(this, C, w, S);
                  if (S === "y") {
                    var I = g.year(), O = g.month(), $ = this.isIntercalaryMonth(I, R), Y = A && $ ? this.toMonthIndex(I, R, !0) : this.toMonthIndex(I, R, !1);
                    Y !== O && g.month(Y);
                  }
                  return g;
                }
              });
              var u = /^\s*(-?\d\d\d\d|\d\d)[-/](\d?\d)([iI]?)[-/](\d?\d)/m, c = /^\d?\d[iI]?/m, d = /^闰?十?[一二三四五六七八九]?月/m, h = /^闰?十?[一二三四五六七八九]?/m;
              a.calendars.chinese = f;
              var i = [
                1887,
                5780,
                5802,
                19157,
                2742,
                50359,
                1198,
                2646,
                46378,
                7466,
                3412,
                30122,
                5482,
                67949,
                2396,
                5294,
                43597,
                6732,
                6954,
                36181,
                2772,
                4954,
                18781,
                2396,
                54427,
                5274,
                6730,
                47781,
                5800,
                6868,
                21210,
                4790,
                59703,
                2350,
                5270,
                46667,
                3402,
                3496,
                38325,
                1388,
                4782,
                18735,
                2350,
                52374,
                6804,
                7498,
                44457,
                2906,
                1388,
                29294,
                4700,
                63789,
                6442,
                6804,
                56138,
                5802,
                2772,
                38235,
                1210,
                4698,
                22827,
                5418,
                63125,
                3476,
                5802,
                43701,
                2484,
                5302,
                27223,
                2646,
                70954,
                7466,
                3412,
                54698,
                5482,
                2412,
                38062,
                5294,
                2636,
                32038,
                6954,
                60245,
                2772,
                4826,
                43357,
                2394,
                5274,
                39501,
                6730,
                72357,
                5800,
                5844,
                53978,
                4790,
                2358,
                38039,
                5270,
                87627,
                3402,
                3496,
                54708,
                5484,
                4782,
                43311,
                2350,
                3222,
                27978,
                7498,
                68965,
                2904,
                5484,
                45677,
                4700,
                6444,
                39573,
                6804,
                6986,
                19285,
                2772,
                62811,
                1210,
                4698,
                47403,
                5418,
                5780,
                38570,
                5546,
                76469,
                2420,
                5302,
                51799,
                2646,
                5414,
                36501,
                3412,
                5546,
                18869,
                2412,
                54446,
                5276,
                6732,
                48422,
                6822,
                2900,
                28010,
                4826,
                92509,
                2394,
                5274,
                55883,
                6730,
                6820,
                47956,
                5812,
                2778,
                18779,
                2358,
                62615,
                5270,
                5450,
                46757,
                3492,
                5556,
                27318,
                4718,
                67887,
                2350,
                3222,
                52554,
                7498,
                3428,
                38252,
                5468,
                4700,
                31022,
                6444,
                64149,
                6804,
                6986,
                43861,
                2772,
                5338,
                35421,
                2650,
                70955,
                5418,
                5780,
                54954,
                5546,
                2740,
                38074,
                5302,
                2646,
                29991,
                3366,
                61011,
                3412,
                5546,
                43445,
                2412,
                5294,
                35406,
                6732,
                72998,
                6820,
                6996,
                52586,
                2778,
                2396,
                38045,
                5274,
                6698,
                23333,
                6820,
                64338,
                5812,
                2746,
                43355,
                2358,
                5270,
                39499,
                5450,
                79525,
                3492,
                5548
              ], b = [
                1887,
                966732,
                967231,
                967733,
                968265,
                968766,
                969297,
                969798,
                970298,
                970829,
                971330,
                971830,
                972362,
                972863,
                973395,
                973896,
                974397,
                974928,
                975428,
                975929,
                976461,
                976962,
                977462,
                977994,
                978494,
                979026,
                979526,
                980026,
                980558,
                981059,
                981559,
                982091,
                982593,
                983124,
                983624,
                984124,
                984656,
                985157,
                985656,
                986189,
                986690,
                987191,
                987722,
                988222,
                988753,
                989254,
                989754,
                990286,
                990788,
                991288,
                991819,
                992319,
                992851,
                993352,
                993851,
                994383,
                994885,
                995385,
                995917,
                996418,
                996918,
                997450,
                997949,
                998481,
                998982,
                999483,
                1000014,
                1000515,
                1001016,
                1001548,
                1002047,
                1002578,
                1003080,
                1003580,
                1004111,
                1004613,
                1005113,
                1005645,
                1006146,
                1006645,
                1007177,
                1007678,
                1008209,
                1008710,
                1009211,
                1009743,
                1010243,
                1010743,
                1011275,
                1011775,
                1012306,
                1012807,
                1013308,
                1013840,
                1014341,
                1014841,
                1015373,
                1015874,
                1016404,
                1016905,
                1017405,
                1017937,
                1018438,
                1018939,
                1019471,
                1019972,
                1020471,
                1021002,
                1021503,
                1022035,
                1022535,
                1023036,
                1023568,
                1024069,
                1024568,
                1025100,
                1025601,
                1026102,
                1026633,
                1027133,
                1027666,
                1028167,
                1028666,
                1029198,
                1029699,
                1030199,
                1030730,
                1031231,
                1031763,
                1032264,
                1032764,
                1033296,
                1033797,
                1034297,
                1034828,
                1035329,
                1035830,
                1036362,
                1036861,
                1037393,
                1037894,
                1038394,
                1038925,
                1039427,
                1039927,
                1040459,
                1040959,
                1041491,
                1041992,
                1042492,
                1043023,
                1043524,
                1044024,
                1044556,
                1045057,
                1045558,
                1046090,
                1046590,
                1047121,
                1047622,
                1048122,
                1048654,
                1049154,
                1049655,
                1050187,
                1050689,
                1051219,
                1051720,
                1052220,
                1052751,
                1053252,
                1053752,
                1054284,
                1054786,
                1055285,
                1055817,
                1056317,
                1056849,
                1057349,
                1057850,
                1058382,
                1058883,
                1059383,
                1059915,
                1060415,
                1060947,
                1061447,
                1061947,
                1062479,
                1062981,
                1063480,
                1064012,
                1064514,
                1065014,
                1065545,
                1066045,
                1066577,
                1067078,
                1067578,
                1068110,
                1068611,
                1069112,
                1069642,
                1070142,
                1070674,
                1071175,
                1071675,
                1072207,
                1072709,
                1073209,
                1073740,
                1074241,
                1074741,
                1075273,
                1075773,
                1076305,
                1076807,
                1077308,
                1077839,
                1078340,
                1078840,
                1079372,
                1079871,
                1080403,
                1080904
              ];
              function x(C, w, S, T) {
                var k, A;
                if (typeof C == "object")
                  k = C, A = w || {};
                else {
                  var R = typeof C == "number" && C >= 1888 && C <= 2111;
                  if (!R)
                    throw new Error("Solar year outside range 1888-2111");
                  var g = typeof w == "number" && w >= 1 && w <= 12;
                  if (!g)
                    throw new Error("Solar month outside range 1 - 12");
                  var I = typeof S == "number" && S >= 1 && S <= 31;
                  if (!I)
                    throw new Error("Solar day outside range 1 - 31");
                  k = {
                    year: C,
                    month: w,
                    day: S
                  }, A = {};
                }
                var O = b[k.year - b[0]], $ = k.year << 9 | k.month << 5 | k.day;
                A.year = $ >= O ? k.year : k.year - 1, O = b[A.year - b[0]];
                var Y = O >> 9 & 4095, ne = O >> 5 & 15, q = O & 31, B, X = new Date(Y, ne - 1, q), U = new Date(k.year, k.month - 1, k.day);
                B = Math.round(
                  (U - X) / 864e5
                );
                var te = i[A.year - i[0]], se;
                for (se = 0; se < 13; se++) {
                  var me = te & 1 << 12 - se ? 30 : 29;
                  if (B < me)
                    break;
                  B -= me;
                }
                var J = te >> 13;
                return !J || se < J ? (A.isIntercalary = !1, A.month = 1 + se) : se === J ? (A.isIntercalary = !0, A.month = se) : (A.isIntercalary = !1, A.month = se), A.day = 1 + B, A;
              }
              function D(C, w, S, T, k) {
                var A, R;
                if (typeof C == "object")
                  R = C, A = w || {};
                else {
                  var g = typeof C == "number" && C >= 1888 && C <= 2111;
                  if (!g)
                    throw new Error("Lunar year outside range 1888-2111");
                  var I = typeof w == "number" && w >= 1 && w <= 12;
                  if (!I)
                    throw new Error("Lunar month outside range 1 - 12");
                  var O = typeof S == "number" && S >= 1 && S <= 30;
                  if (!O)
                    throw new Error("Lunar day outside range 1 - 30");
                  var $;
                  typeof T == "object" ? ($ = !1, A = T) : ($ = !!T, A = {}), R = {
                    year: C,
                    month: w,
                    day: S,
                    isIntercalary: $
                  };
                }
                var Y;
                Y = R.day - 1;
                var ne = i[R.year - i[0]], q = ne >> 13, B;
                q && (R.month > q || R.isIntercalary) ? B = R.month : B = R.month - 1;
                for (var X = 0; X < B; X++) {
                  var U = ne & 1 << 12 - X ? 30 : 29;
                  Y += U;
                }
                var te = b[R.year - b[0]], se = te >> 9 & 4095, me = te >> 5 & 15, J = te & 31, W = new Date(se, me - 1, J + Y);
                return A.year = W.getFullYear(), A.month = 1 + W.getMonth(), A.day = W.getDate(), A;
              }
            }
          ),
          /***/
          7411: (
            /***/
            function(M, L, r) {
              var a = r(8700), p = r(896);
              function l(f) {
                this.local = this.regionalOptions[f || ""] || this.regionalOptions[""];
              }
              l.prototype = new a.baseCalendar(), p(l.prototype, {
                /** The calendar name.
                    @memberof CopticCalendar */
                name: "Coptic",
                /** Julian date of start of Coptic epoch: 29 August 284 CE (Gregorian).
                    @memberof CopticCalendar */
                jdEpoch: 18250295e-1,
                /** Days per month in a common year.
                    @memberof CopticCalendar */
                daysPerMonth: [30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 5],
                /** <code>true</code> if has a year zero, <code>false</code> if not.
                    @memberof CopticCalendar */
                hasYearZero: !1,
                /** The minimum month number.
                    @memberof CopticCalendar */
                minMonth: 1,
                /** The first month in the year.
                    @memberof CopticCalendar */
                firstMonth: 1,
                /** The minimum day number.
                    @memberof CopticCalendar */
                minDay: 1,
                /** Localisations for the plugin.
                    Entries are objects indexed by the language code ('' being the default US/English).
                    Each object has the following attributes.
                    @memberof CopticCalendar
                    @property name {string} The calendar name.
                    @property epochs {string[]} The epoch names.
                    @property monthNames {string[]} The long names of the months of the year.
                    @property monthNamesShort {string[]} The short names of the months of the year.
                    @property dayNames {string[]} The long names of the days of the week.
                    @property dayNamesShort {string[]} The short names of the days of the week.
                    @property dayNamesMin {string[]} The minimal names of the days of the week.
                    @property dateFormat {string} The date format for this calendar.
                            See the options on <a href="BaseCalendar.html#formatDate"><code>formatDate</code></a> for details.
                    @property firstDay {number} The number of the first day of the week, starting at 0.
                    @property isRTL {number} <code>true</code> if this localisation reads right-to-left. */
                regionalOptions: {
                  // Localisations
                  "": {
                    name: "Coptic",
                    epochs: ["BAM", "AM"],
                    monthNames: [
                      "Thout",
                      "Paopi",
                      "Hathor",
                      "Koiak",
                      "Tobi",
                      "Meshir",
                      "Paremhat",
                      "Paremoude",
                      "Pashons",
                      "Paoni",
                      "Epip",
                      "Mesori",
                      "Pi Kogi Enavot"
                    ],
                    monthNamesShort: [
                      "Tho",
                      "Pao",
                      "Hath",
                      "Koi",
                      "Tob",
                      "Mesh",
                      "Pat",
                      "Pad",
                      "Pash",
                      "Pao",
                      "Epi",
                      "Meso",
                      "PiK"
                    ],
                    dayNames: ["Tkyriaka", "Pesnau", "Pshoment", "Peftoou", "Ptiou", "Psoou", "Psabbaton"],
                    dayNamesShort: ["Tky", "Pes", "Psh", "Pef", "Pti", "Pso", "Psa"],
                    dayNamesMin: ["Tk", "Pes", "Psh", "Pef", "Pt", "Pso", "Psa"],
                    digits: null,
                    dateFormat: "dd/mm/yyyy",
                    firstDay: 0,
                    isRTL: !1
                  }
                },
                /** Determine whether this date is in a leap year.
                    @memberof CopticCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @return {boolean} <code>true</code> if this is a leap year, <code>false</code> if not.
                    @throws Error if an invalid year or a different calendar used. */
                leapYear: function(c) {
                  var u = this._validate(c, this.minMonth, this.minDay, a.local.invalidYear), c = u.year() + (u.year() < 0 ? 1 : 0);
                  return c % 4 === 3 || c % 4 === -1;
                },
                /** Retrieve the number of months in a year.
                    @memberof CopticCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @return {number} The number of months.
                    @throws Error if an invalid year or a different calendar used. */
                monthsInYear: function(f) {
                  return this._validate(
                    f,
                    this.minMonth,
                    this.minDay,
                    a.local.invalidYear || a.regionalOptions[""].invalidYear
                  ), 13;
                },
                /** Determine the week of the year for a date.
                    @memberof CopticCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number) the month to examine.
                    @param [day] {number} The day to examine.
                    @return {number} The week of the year.
                    @throws Error if an invalid date or a different calendar used. */
                weekOfYear: function(f, u, c) {
                  var d = this.newDate(f, u, c);
                  return d.add(-d.dayOfWeek(), "d"), Math.floor((d.dayOfYear() - 1) / 7) + 1;
                },
                /** Retrieve the number of days in a month.
                    @memberof CopticCalendar
                    @param year {CDate|number} The date to examine or the year of the month.
                    @param [month] {number} The month.
                    @return {number} The number of days in this month.
                    @throws Error if an invalid month/year or a different calendar used. */
                daysInMonth: function(f, u) {
                  var c = this._validate(f, u, this.minDay, a.local.invalidMonth);
                  return this.daysPerMonth[c.month() - 1] + (c.month() === 13 && this.leapYear(c.year()) ? 1 : 0);
                },
                /** Determine whether this date is a week day.
                    @memberof CopticCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param month {number} The month to examine.
                    @param day {number} The day to examine.
                    @return {boolean} <code>true</code> if a week day, <code>false</code> if not.
                    @throws Error if an invalid date or a different calendar used. */
                weekDay: function(f, u, c) {
                  return (this.dayOfWeek(f, u, c) || 7) < 6;
                },
                /** Retrieve the Julian date equivalent for this date,
                    i.e. days since January 1, 4713 BCE Greenwich noon.
                    @memberof CopticCalendar
                    @param year {CDate|number} The date to convert or the year to convert.
                    @param [month] {number) the month to convert.
                    @param [day] {number} The day to convert.
                    @return {number} The equivalent Julian date.
                    @throws Error if an invalid date or a different calendar used. */
                toJD: function(f, u, c) {
                  var d = this._validate(f, u, c, a.local.invalidDate);
                  return f = d.year(), f < 0 && f++, d.day() + (d.month() - 1) * 30 + (f - 1) * 365 + Math.floor(f / 4) + this.jdEpoch - 1;
                },
                /** Create a new date from a Julian date.
                    @memberof CopticCalendar
                    @param jd {number} The Julian date to convert.
                    @return {CDate} The equivalent date. */
                fromJD: function(f) {
                  var u = Math.floor(f) + 0.5 - this.jdEpoch, c = Math.floor((u - Math.floor((u + 366) / 1461)) / 365) + 1;
                  c <= 0 && c--, u = Math.floor(f) + 0.5 - this.newDate(c, 1, 1).toJD();
                  var d = Math.floor(u / 30) + 1, h = u - (d - 1) * 30 + 1;
                  return this.newDate(c, d, h);
                }
              }), a.calendars.coptic = l;
            }
          ),
          /***/
          5668: (
            /***/
            function(M, L, r) {
              var a = r(8700), p = r(896);
              function l(u) {
                this.local = this.regionalOptions[u || ""] || this.regionalOptions[""];
              }
              l.prototype = new a.baseCalendar(), p(l.prototype, {
                /** The calendar name.
                    @memberof DiscworldCalendar */
                name: "Discworld",
                /** Julian date of start of Discworld epoch: 1 January 0001 CE.
                    @memberof DiscworldCalendar */
                jdEpoch: 17214255e-1,
                /** Days per month in a common year.
                    @memberof DiscworldCalendar */
                daysPerMonth: [16, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32],
                /** <code>true</code> if has a year zero, <code>false</code> if not.
                    @memberof DiscworldCalendar */
                hasYearZero: !1,
                /** The minimum month number.
                    @memberof DiscworldCalendar */
                minMonth: 1,
                /** The first month in the year.
                    @memberof DiscworldCalendar */
                firstMonth: 1,
                /** The minimum day number.
                    @memberof DiscworldCalendar */
                minDay: 1,
                /** Localisations for the plugin.
                    Entries are objects indexed by the language code ('' being the default US/English).
                    Each object has the following attributes.
                    @memberof DiscworldCalendar
                    @property name {string} The calendar name.
                    @property epochs {string[]} The epoch names.
                    @property monthNames {string[]} The long names of the months of the year.
                    @property monthNamesShort {string[]} The short names of the months of the year.
                    @property dayNames {string[]} The long names of the days of the week.
                    @property dayNamesShort {string[]} The short names of the days of the week.
                    @property dayNamesMin {string[]} The minimal names of the days of the week.
                    @property dateFormat {string} The date format for this calendar.
                            See the options on <a href="BaseCalendar.html#formatDate"><code>formatDate</code></a> for details.
                    @property firstDay {number} The number of the first day of the week, starting at 0.
                    @property isRTL {number} <code>true</code> if this localisation reads right-to-left. */
                regionalOptions: {
                  // Localisations
                  "": {
                    name: "Discworld",
                    epochs: ["BUC", "UC"],
                    monthNames: [
                      "Ick",
                      "Offle",
                      "February",
                      "March",
                      "April",
                      "May",
                      "June",
                      "Grune",
                      "August",
                      "Spune",
                      "Sektober",
                      "Ember",
                      "December"
                    ],
                    monthNamesShort: ["Ick", "Off", "Feb", "Mar", "Apr", "May", "Jun", "Gru", "Aug", "Spu", "Sek", "Emb", "Dec"],
                    dayNames: ["Sunday", "Octeday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
                    dayNamesShort: ["Sun", "Oct", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
                    dayNamesMin: ["Su", "Oc", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
                    digits: null,
                    dateFormat: "yyyy/mm/dd",
                    firstDay: 2,
                    isRTL: !1
                  }
                },
                /** Determine whether this date is in a leap year.
                    @memberof DiscworldCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @return {boolean} <code>true</code> if this is a leap year, <code>false</code> if not.
                    @throws Error if an invalid year or a different calendar used. */
                leapYear: function(u) {
                  return this._validate(u, this.minMonth, this.minDay, a.local.invalidYear), !1;
                },
                /** Retrieve the number of months in a year.
                    @memberof DiscworldCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @return {number} The number of months.
                    @throws Error if an invalid year or a different calendar used. */
                monthsInYear: function(u) {
                  return this._validate(u, this.minMonth, this.minDay, a.local.invalidYear), 13;
                },
                /** Retrieve the number of days in a year.
                    @memberof DiscworldCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @return {number} The number of days.
                    @throws Error if an invalid year or a different calendar used. */
                daysInYear: function(u) {
                  return this._validate(u, this.minMonth, this.minDay, a.local.invalidYear), 400;
                },
                /** Determine the week of the year for a date.
                    @memberof DiscworldCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {number} The week of the year.
                    @throws Error if an invalid date or a different calendar used. */
                weekOfYear: function(u, c, d) {
                  var h = this.newDate(u, c, d);
                  return h.add(-h.dayOfWeek(), "d"), Math.floor((h.dayOfYear() - 1) / 8) + 1;
                },
                /** Retrieve the number of days in a month.
                    @memberof DiscworldCalendar
                    @param year {CDate|number} The date to examine or the year of the month.
                    @param [month] {number} The month.
                    @return {number} The number of days in this month.
                    @throws Error if an invalid month/year or a different calendar used. */
                daysInMonth: function(u, c) {
                  var d = this._validate(u, c, this.minDay, a.local.invalidMonth);
                  return this.daysPerMonth[d.month() - 1];
                },
                /** Retrieve the number of days in a week.
                    @memberof DiscworldCalendar
                    @return {number} The number of days. */
                daysInWeek: function() {
                  return 8;
                },
                /** Retrieve the day of the week for a date.
                    @memberof DiscworldCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {number} The day of the week: 0 to number of days - 1.
                    @throws Error if an invalid date or a different calendar used. */
                dayOfWeek: function(u, c, d) {
                  var h = this._validate(u, c, d, a.local.invalidDate);
                  return (h.day() + 1) % 8;
                },
                /** Determine whether this date is a week day.
                    @memberof DiscworldCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {boolean} <code>true</code> if a week day, <code>false</code> if not.
                    @throws Error if an invalid date or a different calendar used. */
                weekDay: function(u, c, d) {
                  var h = this.dayOfWeek(u, c, d);
                  return h >= 2 && h <= 6;
                },
                /** Retrieve additional information about a date.
                    @memberof DiscworldCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {object} Additional information - contents depends on calendar.
                    @throws Error if an invalid date or a different calendar used. */
                extraInfo: function(u, c, d) {
                  var h = this._validate(u, c, d, a.local.invalidDate);
                  return { century: f[Math.floor((h.year() - 1) / 100) + 1] || "" };
                },
                /** Retrieve the Julian date equivalent for this date,
                    i.e. days since January 1, 4713 BCE Greenwich noon.
                    @memberof DiscworldCalendar
                    @param year {CDate|number} The date to convert or the year to convert.
                    @param [month] {number} The month to convert.
                    @param [day] {number} The day to convert.
                    @return {number} The equivalent Julian date.
                    @throws Error if an invalid date or a different calendar used. */
                toJD: function(u, c, d) {
                  var h = this._validate(u, c, d, a.local.invalidDate);
                  return u = h.year() + (h.year() < 0 ? 1 : 0), c = h.month(), d = h.day(), d + (c > 1 ? 16 : 0) + (c > 2 ? (c - 2) * 32 : 0) + (u - 1) * 400 + this.jdEpoch - 1;
                },
                /** Create a new date from a Julian date.
                    @memberof DiscworldCalendar
                    @param jd {number} The Julian date to convert.
                    @return {CDate} The equivalent date. */
                fromJD: function(u) {
                  u = Math.floor(u + 0.5) - Math.floor(this.jdEpoch) - 1;
                  var c = Math.floor(u / 400) + 1;
                  u -= (c - 1) * 400, u += u > 15 ? 16 : 0;
                  var d = Math.floor(u / 32) + 1, h = u - (d - 1) * 32 + 1;
                  return this.newDate(c <= 0 ? c - 1 : c, d, h);
                }
              });
              var f = {
                20: "Fruitbat",
                21: "Anchovy"
              };
              a.calendars.discworld = l;
            }
          ),
          /***/
          2787: (
            /***/
            function(M, L, r) {
              var a = r(8700), p = r(896);
              function l(f) {
                this.local = this.regionalOptions[f || ""] || this.regionalOptions[""];
              }
              l.prototype = new a.baseCalendar(), p(l.prototype, {
                /** The calendar name.
                    @memberof EthiopianCalendar */
                name: "Ethiopian",
                /** Julian date of start of Ethiopian epoch: 27 August 8 CE (Gregorian).
                    @memberof EthiopianCalendar */
                jdEpoch: 17242205e-1,
                /** Days per month in a common year.
                    @memberof EthiopianCalendar */
                daysPerMonth: [30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 5],
                /** <code>true</code> if has a year zero, <code>false</code> if not.
                    @memberof EthiopianCalendar */
                hasYearZero: !1,
                /** The minimum month number.
                    @memberof EthiopianCalendar */
                minMonth: 1,
                /** The first month in the year.
                    @memberof EthiopianCalendar */
                firstMonth: 1,
                /** The minimum day number.
                    @memberof EthiopianCalendar */
                minDay: 1,
                /** Localisations for the plugin.
                    Entries are objects indexed by the language code ('' being the default US/English).
                    Each object has the following attributes.
                    @memberof EthiopianCalendar
                    @property name {string} The calendar name.
                    @property epochs {string[]} The epoch names.
                    @property monthNames {string[]} The long names of the months of the year.
                    @property monthNamesShort {string[]} The short names of the months of the year.
                    @property dayNames {string[]} The long names of the days of the week.
                    @property dayNamesShort {string[]} The short names of the days of the week.
                    @property dayNamesMin {string[]} The minimal names of the days of the week.
                    @property dateFormat {string} The date format for this calendar.
                            See the options on <a href="BaseCalendar.html#formatDate"><code>formatDate</code></a> for details.
                    @property firstDay {number} The number of the first day of the week, starting at 0.
                    @property isRTL {number} <code>true</code> if this localisation reads right-to-left. */
                regionalOptions: {
                  // Localisations
                  "": {
                    name: "Ethiopian",
                    epochs: ["BEE", "EE"],
                    monthNames: [
                      "Meskerem",
                      "Tikemet",
                      "Hidar",
                      "Tahesas",
                      "Tir",
                      "Yekatit",
                      "Megabit",
                      "Miazia",
                      "Genbot",
                      "Sene",
                      "Hamle",
                      "Nehase",
                      "Pagume"
                    ],
                    monthNamesShort: [
                      "Mes",
                      "Tik",
                      "Hid",
                      "Tah",
                      "Tir",
                      "Yek",
                      "Meg",
                      "Mia",
                      "Gen",
                      "Sen",
                      "Ham",
                      "Neh",
                      "Pag"
                    ],
                    dayNames: ["Ehud", "Segno", "Maksegno", "Irob", "Hamus", "Arb", "Kidame"],
                    dayNamesShort: ["Ehu", "Seg", "Mak", "Iro", "Ham", "Arb", "Kid"],
                    dayNamesMin: ["Eh", "Se", "Ma", "Ir", "Ha", "Ar", "Ki"],
                    digits: null,
                    dateFormat: "dd/mm/yyyy",
                    firstDay: 0,
                    isRTL: !1
                  }
                },
                /** Determine whether this date is in a leap year.
                    @memberof EthiopianCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @return {boolean} <code>true</code> if this is a leap year, <code>false</code> if not.
                    @throws Error if an invalid year or a different calendar used. */
                leapYear: function(c) {
                  var u = this._validate(c, this.minMonth, this.minDay, a.local.invalidYear), c = u.year() + (u.year() < 0 ? 1 : 0);
                  return c % 4 === 3 || c % 4 === -1;
                },
                /** Retrieve the number of months in a year.
                    @memberof EthiopianCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @return {number} The number of months.
                    @throws Error if an invalid year or a different calendar used. */
                monthsInYear: function(f) {
                  return this._validate(
                    f,
                    this.minMonth,
                    this.minDay,
                    a.local.invalidYear || a.regionalOptions[""].invalidYear
                  ), 13;
                },
                /** Determine the week of the year for a date.
                    @memberof EthiopianCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {number} The week of the year.
                    @throws Error if an invalid date or a different calendar used. */
                weekOfYear: function(f, u, c) {
                  var d = this.newDate(f, u, c);
                  return d.add(-d.dayOfWeek(), "d"), Math.floor((d.dayOfYear() - 1) / 7) + 1;
                },
                /** Retrieve the number of days in a month.
                    @memberof EthiopianCalendar
                    @param year {CDate|number} The date to examine or the year of the month.
                    @param [month] {number} The month.
                    @return {number} The number of days in this month.
                    @throws Error if an invalid month/year or a different calendar used. */
                daysInMonth: function(f, u) {
                  var c = this._validate(f, u, this.minDay, a.local.invalidMonth);
                  return this.daysPerMonth[c.month() - 1] + (c.month() === 13 && this.leapYear(c.year()) ? 1 : 0);
                },
                /** Determine whether this date is a week day.
                    @memberof EthiopianCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {boolean} <code>true</code> if a week day, <code>false</code> if not.
                    @throws Error if an invalid date or a different calendar used. */
                weekDay: function(f, u, c) {
                  return (this.dayOfWeek(f, u, c) || 7) < 6;
                },
                /** Retrieve the Julian date equivalent for this date,
                    i.e. days since January 1, 4713 BCE Greenwich noon.
                    @memberof EthiopianCalendar
                    @param year {CDate|number} The date to convert or the year to convert.
                    @param [month] {number} The month to convert.
                    @param [day] {number} The day to convert.
                    @return {number} The equivalent Julian date.
                    @throws Error if an invalid date or a different calendar used. */
                toJD: function(f, u, c) {
                  var d = this._validate(f, u, c, a.local.invalidDate);
                  return f = d.year(), f < 0 && f++, d.day() + (d.month() - 1) * 30 + (f - 1) * 365 + Math.floor(f / 4) + this.jdEpoch - 1;
                },
                /** Create a new date from a Julian date.
                    @memberof EthiopianCalendar
                    @param jd {number} the Julian date to convert.
                    @return {CDate} the equivalent date. */
                fromJD: function(f) {
                  var u = Math.floor(f) + 0.5 - this.jdEpoch, c = Math.floor((u - Math.floor((u + 366) / 1461)) / 365) + 1;
                  c <= 0 && c--, u = Math.floor(f) + 0.5 - this.newDate(c, 1, 1).toJD();
                  var d = Math.floor(u / 30) + 1, h = u - (d - 1) * 30 + 1;
                  return this.newDate(c, d, h);
                }
              }), a.calendars.ethiopian = l;
            }
          ),
          /***/
          2084: (
            /***/
            function(M, L, r) {
              var a = r(8700), p = r(896);
              function l(u) {
                this.local = this.regionalOptions[u || ""] || this.regionalOptions[""];
              }
              l.prototype = new a.baseCalendar(), p(l.prototype, {
                /** The calendar name.
                    @memberof HebrewCalendar */
                name: "Hebrew",
                /** Julian date of start of Hebrew epoch: 7 October 3761 BCE.
                    @memberof HebrewCalendar */
                jdEpoch: 347995.5,
                /** Days per month in a common year.
                    @memberof HebrewCalendar */
                daysPerMonth: [30, 29, 30, 29, 30, 29, 30, 29, 30, 29, 30, 29, 29],
                /** <code>true</code> if has a year zero, <code>false</code> if not.
                    @memberof HebrewCalendar */
                hasYearZero: !1,
                /** The minimum month number.
                    @memberof HebrewCalendar */
                minMonth: 1,
                /** The first month in the year.
                    @memberof HebrewCalendar */
                firstMonth: 7,
                /** The minimum day number.
                    @memberof HebrewCalendar */
                minDay: 1,
                /** Localisations for the plugin.
                    Entries are objects indexed by the language code ('' being the default US/English).
                    Each object has the following attributes.
                    @memberof HebrewCalendar
                    @property name {string} The calendar name.
                    @property epochs {string[]} The epoch names.
                    @property monthNames {string[]} The long names of the months of the year.
                    @property monthNamesShort {string[]} The short names of the months of the year.
                    @property dayNames {string[]} The long names of the days of the week.
                    @property dayNamesShort {string[]} The short names of the days of the week.
                    @property dayNamesMin {string[]} The minimal names of the days of the week.
                    @property dateFormat {string} The date format for this calendar.
                            See the options on <a href="BaseCalendar.html#formatDate"><code>formatDate</code></a> for details.
                    @property firstDay {number} The number of the first day of the week, starting at 0.
                    @property isRTL {number} <code>true</code> if this localisation reads right-to-left. */
                regionalOptions: {
                  // Localisations
                  "": {
                    name: "Hebrew",
                    epochs: ["BAM", "AM"],
                    monthNames: [
                      "Nisan",
                      "Iyar",
                      "Sivan",
                      "Tammuz",
                      "Av",
                      "Elul",
                      "Tishrei",
                      "Cheshvan",
                      "Kislev",
                      "Tevet",
                      "Shevat",
                      "Adar",
                      "Adar II"
                    ],
                    monthNamesShort: ["Nis", "Iya", "Siv", "Tam", "Av", "Elu", "Tis", "Che", "Kis", "Tev", "She", "Ada", "Ad2"],
                    dayNames: ["Yom Rishon", "Yom Sheni", "Yom Shlishi", "Yom Revi'i", "Yom Chamishi", "Yom Shishi", "Yom Shabbat"],
                    dayNamesShort: ["Ris", "She", "Shl", "Rev", "Cha", "Shi", "Sha"],
                    dayNamesMin: ["Ri", "She", "Shl", "Re", "Ch", "Shi", "Sha"],
                    digits: null,
                    dateFormat: "dd/mm/yyyy",
                    firstDay: 0,
                    isRTL: !1
                  }
                },
                /** Determine whether this date is in a leap year.
                    @memberof HebrewCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @return {boolean} <code>true</code> if this is a leap year, <code>false</code> if not.
                    @throws Error if an invalid year or a different calendar used. */
                leapYear: function(u) {
                  var c = this._validate(u, this.minMonth, this.minDay, a.local.invalidYear);
                  return this._leapYear(c.year());
                },
                /** Determine whether this date is in a leap year.
                    @memberof HebrewCalendar
                    @private
                    @param year {number} The year to examine.
                    @return {boolean} <code>true</code> if this is a leap year, <code>false</code> if not.
                    @throws Error if an invalid year or a different calendar used. */
                _leapYear: function(u) {
                  return u = u < 0 ? u + 1 : u, f(u * 7 + 1, 19) < 7;
                },
                /** Retrieve the number of months in a year.
                    @memberof HebrewCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @return {number} The number of months.
                    @throws Error if an invalid year or a different calendar used. */
                monthsInYear: function(u) {
                  return this._validate(u, this.minMonth, this.minDay, a.local.invalidYear), this._leapYear(u.year ? u.year() : u) ? 13 : 12;
                },
                /** Determine the week of the year for a date.
                    @memberof HebrewCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {number} The week of the year.
                    @throws Error if an invalid date or a different calendar used. */
                weekOfYear: function(u, c, d) {
                  var h = this.newDate(u, c, d);
                  return h.add(-h.dayOfWeek(), "d"), Math.floor((h.dayOfYear() - 1) / 7) + 1;
                },
                /** Retrieve the number of days in a year.
                    @memberof HebrewCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @return {number} The number of days.
                    @throws Error if an invalid year or a different calendar used. */
                daysInYear: function(u) {
                  var c = this._validate(u, this.minMonth, this.minDay, a.local.invalidYear);
                  return u = c.year(), this.toJD(u === -1 ? 1 : u + 1, 7, 1) - this.toJD(u, 7, 1);
                },
                /** Retrieve the number of days in a month.
                    @memberof HebrewCalendar
                    @param year {CDate|number} The date to examine or the year of the month.
                    @param [month] {number} The month.
                    @return {number} The number of days in this month.
                    @throws Error if an invalid month/year or a different calendar used. */
                daysInMonth: function(u, c) {
                  return u.year && (c = u.month(), u = u.year()), this._validate(u, c, this.minDay, a.local.invalidMonth), c === 12 && this.leapYear(u) || // Adar I
                  c === 8 && f(this.daysInYear(u), 10) === 5 ? 30 : (
                    // Cheshvan in shlemah year
                    c === 9 && f(this.daysInYear(u), 10) === 3 ? 29 : (
                      // Kislev in chaserah year
                      this.daysPerMonth[c - 1]
                    )
                  );
                },
                /** Determine whether this date is a week day.
                    @memberof HebrewCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {boolean} <code>true</code> if a week day, <code>false</code> if not.
                    @throws Error if an invalid date or a different calendar used. */
                weekDay: function(u, c, d) {
                  return this.dayOfWeek(u, c, d) !== 6;
                },
                /** Retrieve additional information about a date - year type.
                    @memberof HebrewCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {object} Additional information - contents depends on calendar.
                    @throws Error if an invalid date or a different calendar used. */
                extraInfo: function(u, c, d) {
                  var h = this._validate(u, c, d, a.local.invalidDate);
                  return { yearType: (this.leapYear(h) ? "embolismic" : "common") + " " + ["deficient", "regular", "complete"][this.daysInYear(h) % 10 - 3] };
                },
                /** Retrieve the Julian date equivalent for this date,
                    i.e. days since January 1, 4713 BCE Greenwich noon.
                    @memberof HebrewCalendar
                    @param year {CDate)|number} The date to convert or the year to convert.
                    @param [month] {number} The month to convert.
                    @param [day] {number} The day to convert.
                    @return {number} The equivalent Julian date.
                    @throws Error if an invalid date or a different calendar used. */
                toJD: function(u, c, d) {
                  var h = this._validate(u, c, d, a.local.invalidDate);
                  u = h.year(), c = h.month(), d = h.day();
                  var i = u <= 0 ? u + 1 : u, b = this.jdEpoch + this._delay1(i) + this._delay2(i) + d + 1;
                  if (c < 7) {
                    for (var x = 7; x <= this.monthsInYear(u); x++)
                      b += this.daysInMonth(u, x);
                    for (var x = 1; x < c; x++)
                      b += this.daysInMonth(u, x);
                  } else
                    for (var x = 7; x < c; x++)
                      b += this.daysInMonth(u, x);
                  return b;
                },
                /** Test for delay of start of new year and to avoid
                    Sunday, Wednesday, or Friday as start of the new year.
                    @memberof HebrewCalendar
                    @private
                    @param year {number} The year to examine.
                    @return {number} The days to offset by. */
                _delay1: function(u) {
                  var c = Math.floor((235 * u - 234) / 19), d = 12084 + 13753 * c, h = c * 29 + Math.floor(d / 25920);
                  return f(3 * (h + 1), 7) < 3 && h++, h;
                },
                /** Check for delay in start of new year due to length of adjacent years.
                    @memberof HebrewCalendar
                    @private
                    @param year {number} The year to examine.
                    @return {number} The days to offset by. */
                _delay2: function(u) {
                  var c = this._delay1(u - 1), d = this._delay1(u), h = this._delay1(u + 1);
                  return h - d === 356 ? 2 : d - c === 382 ? 1 : 0;
                },
                /** Create a new date from a Julian date.
                    @memberof HebrewCalendar
                    @param jd {number} The Julian date to convert.
                    @return {CDate} The equivalent date. */
                fromJD: function(u) {
                  u = Math.floor(u) + 0.5;
                  for (var c = Math.floor((u - this.jdEpoch) * 98496 / 35975351) - 1; u >= this.toJD(c === -1 ? 1 : c + 1, 7, 1); )
                    c++;
                  for (var d = u < this.toJD(c, 1, 1) ? 7 : 1; u > this.toJD(c, d, this.daysInMonth(c, d)); )
                    d++;
                  var h = u - this.toJD(c, d, 1) + 1;
                  return this.newDate(c, d, h);
                }
              });
              function f(u, c) {
                return u - c * Math.floor(u / c);
              }
              a.calendars.hebrew = l;
            }
          ),
          /***/
          6368: (
            /***/
            function(M, L, r) {
              var a = r(8700), p = r(896);
              function l(f) {
                this.local = this.regionalOptions[f || ""] || this.regionalOptions[""];
              }
              l.prototype = new a.baseCalendar(), p(l.prototype, {
                /** The calendar name.
                    @memberof IslamicCalendar */
                name: "Islamic",
                /** Julian date of start of Islamic epoch: 16 July 622 CE.
                    @memberof IslamicCalendar */
                jdEpoch: 19484395e-1,
                /** Days per month in a common year.
                    @memberof IslamicCalendar */
                daysPerMonth: [30, 29, 30, 29, 30, 29, 30, 29, 30, 29, 30, 29],
                /** <code>true</code> if has a year zero, <code>false</code> if not.
                    @memberof IslamicCalendar */
                hasYearZero: !1,
                /** The minimum month number.
                    @memberof IslamicCalendar */
                minMonth: 1,
                /** The first month in the year.
                    @memberof IslamicCalendar */
                firstMonth: 1,
                /** The minimum day number.
                    @memberof IslamicCalendar */
                minDay: 1,
                /** Localisations for the plugin.
                    Entries are objects indexed by the language code ('' being the default US/English).
                    Each object has the following attributes.
                    @memberof IslamicCalendar
                    @property name {string} The calendar name.
                    @property epochs {string[]} The epoch names.
                    @property monthNames {string[]} The long names of the months of the year.
                    @property monthNamesShort {string[]} The short names of the months of the year.
                    @property dayNames {string[]} The long names of the days of the week.
                    @property dayNamesShort {string[]} The short names of the days of the week.
                    @property dayNamesMin {string[]} The minimal names of the days of the week.
                    @property dateFormat {string} The date format for this calendar.
                            See the options on <a href="BaseCalendar.html#formatDate"><code>formatDate</code></a> for details.
                    @property firstDay {number} The number of the first day of the week, starting at 0.
                    @property isRTL {number} <code>true</code> if this localisation reads right-to-left. */
                regionalOptions: {
                  // Localisations
                  "": {
                    name: "Islamic",
                    epochs: ["BH", "AH"],
                    monthNames: [
                      "Muharram",
                      "Safar",
                      "Rabi' al-awwal",
                      "Rabi' al-thani",
                      "Jumada al-awwal",
                      "Jumada al-thani",
                      "Rajab",
                      "Sha'aban",
                      "Ramadan",
                      "Shawwal",
                      "Dhu al-Qi'dah",
                      "Dhu al-Hijjah"
                    ],
                    monthNamesShort: ["Muh", "Saf", "Rab1", "Rab2", "Jum1", "Jum2", "Raj", "Sha'", "Ram", "Shaw", "DhuQ", "DhuH"],
                    dayNames: [
                      "Yawm al-ahad",
                      "Yawm al-ithnayn",
                      "Yawm ath-thulaathaa'",
                      "Yawm al-arbi'aa'",
                      "Yawm al-khamīs",
                      "Yawm al-jum'a",
                      "Yawm as-sabt"
                    ],
                    dayNamesShort: ["Aha", "Ith", "Thu", "Arb", "Kha", "Jum", "Sab"],
                    dayNamesMin: ["Ah", "It", "Th", "Ar", "Kh", "Ju", "Sa"],
                    digits: null,
                    dateFormat: "yyyy/mm/dd",
                    firstDay: 6,
                    isRTL: !1
                  }
                },
                /** Determine whether this date is in a leap year.
                    @memberof IslamicCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @return {boolean} <code>true</code> if this is a leap year, <code>false</code> if not.
                    @throws Error if an invalid year or a different calendar used. */
                leapYear: function(f) {
                  var u = this._validate(f, this.minMonth, this.minDay, a.local.invalidYear);
                  return (u.year() * 11 + 14) % 30 < 11;
                },
                /** Determine the week of the year for a date.
                    @memberof IslamicCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {number} The week of the year.
                    @throws Error if an invalid date or a different calendar used. */
                weekOfYear: function(f, u, c) {
                  var d = this.newDate(f, u, c);
                  return d.add(-d.dayOfWeek(), "d"), Math.floor((d.dayOfYear() - 1) / 7) + 1;
                },
                /** Retrieve the number of days in a year.
                    @memberof IslamicCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @return {number} The number of days.
                    @throws Error if an invalid year or a different calendar used. */
                daysInYear: function(f) {
                  return this.leapYear(f) ? 355 : 354;
                },
                /** Retrieve the number of days in a month.
                    @memberof IslamicCalendar
                    @param year {CDate|number} The date to examine or the year of the month.
                    @param [month] {number} The month.
                    @return {number} The number of days in this month.
                    @throws Error if an invalid month/year or a different calendar used. */
                daysInMonth: function(f, u) {
                  var c = this._validate(f, u, this.minDay, a.local.invalidMonth);
                  return this.daysPerMonth[c.month() - 1] + (c.month() === 12 && this.leapYear(c.year()) ? 1 : 0);
                },
                /** Determine whether this date is a week day.
                    @memberof IslamicCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {boolean} <code>true</code> if a week day, <code>false</code> if not.
                    @throws Error if an invalid date or a different calendar used. */
                weekDay: function(f, u, c) {
                  return this.dayOfWeek(f, u, c) !== 5;
                },
                /** Retrieve the Julian date equivalent for this date,
                    i.e. days since January 1, 4713 BCE Greenwich noon.
                    @memberof IslamicCalendar
                    @param year {CDate|number} The date to convert or the year to convert.
                    @param [month] {number} The month to convert.
                    @param [day] {number} The day to convert.
                    @return {number} The equivalent Julian date.
                    @throws Error if an invalid date or a different calendar used. */
                toJD: function(f, u, c) {
                  var d = this._validate(f, u, c, a.local.invalidDate);
                  return f = d.year(), u = d.month(), c = d.day(), f = f <= 0 ? f + 1 : f, c + Math.ceil(29.5 * (u - 1)) + (f - 1) * 354 + Math.floor((3 + 11 * f) / 30) + this.jdEpoch - 1;
                },
                /** Create a new date from a Julian date.
                    @memberof IslamicCalendar
                    @param jd {number} The Julian date to convert.
                    @return {CDate} The equivalent date. */
                fromJD: function(f) {
                  f = Math.floor(f) + 0.5;
                  var u = Math.floor((30 * (f - this.jdEpoch) + 10646) / 10631);
                  u = u <= 0 ? u - 1 : u;
                  var c = Math.min(12, Math.ceil((f - 29 - this.toJD(u, 1, 1)) / 29.5) + 1), d = f - this.toJD(u, c, 1) + 1;
                  return this.newDate(u, c, d);
                }
              }), a.calendars.islamic = l;
            }
          ),
          /***/
          4747: (
            /***/
            function(M, L, r) {
              var a = r(8700), p = r(896);
              function l(f) {
                this.local = this.regionalOptions[f || ""] || this.regionalOptions[""];
              }
              l.prototype = new a.baseCalendar(), p(l.prototype, {
                /** The calendar name.
                    @memberof JulianCalendar */
                name: "Julian",
                /** Julian date of start of Julian epoch: 1 January 0001 AD = 30 December 0001 BCE.
                    @memberof JulianCalendar */
                jdEpoch: 17214235e-1,
                /** Days per month in a common year.
                    @memberof JulianCalendar */
                daysPerMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
                /** <code>true</code> if has a year zero, <code>false</code> if not.
                    @memberof JulianCalendar */
                hasYearZero: !1,
                /** The minimum month number.
                    @memberof JulianCalendar */
                minMonth: 1,
                /** The first month in the year.
                    @memberof JulianCalendar */
                firstMonth: 1,
                /** The minimum day number.
                    @memberof JulianCalendar */
                minDay: 1,
                /** Localisations for the plugin.
                    Entries are objects indexed by the language code ('' being the default US/English).
                    Each object has the following attributes.
                    @memberof JulianCalendar
                    @property name {string} The calendar name.
                    @property epochs {string[]} The epoch names.
                    @property monthNames {string[]} The long names of the months of the year.
                    @property monthNamesShort {string[]} The short names of the months of the year.
                    @property dayNames {string[]} The long names of the days of the week.
                    @property dayNamesShort {string[]} The short names of the days of the week.
                    @property dayNamesMin {string[]} The minimal names of the days of the week.
                    @property dateFormat {string} The date format for this calendar.
                            See the options on <a href="BaseCalendar.html#formatDate"><code>formatDate</code></a> for details.
                    @property firstDay {number} The number of the first day of the week, starting at 0.
                    @property isRTL {number} <code>true</code> if this localisation reads right-to-left. */
                regionalOptions: {
                  // Localisations
                  "": {
                    name: "Julian",
                    epochs: ["BC", "AD"],
                    monthNames: [
                      "January",
                      "February",
                      "March",
                      "April",
                      "May",
                      "June",
                      "July",
                      "August",
                      "September",
                      "October",
                      "November",
                      "December"
                    ],
                    monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
                    dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
                    dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
                    dayNamesMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
                    digits: null,
                    dateFormat: "mm/dd/yyyy",
                    firstDay: 0,
                    isRTL: !1
                  }
                },
                /** Determine whether this date is in a leap year.
                    @memberof JulianCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @return {boolean} <code>true</code> if this is a leap year, <code>false</code> if not.
                    @throws Error if an invalid year or a different calendar used. */
                leapYear: function(c) {
                  var u = this._validate(c, this.minMonth, this.minDay, a.local.invalidYear), c = u.year() < 0 ? u.year() + 1 : u.year();
                  return c % 4 === 0;
                },
                /** Determine the week of the year for a date - ISO 8601.
                    @memberof JulianCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {number} The week of the year.
                    @throws Error if an invalid date or a different calendar used. */
                weekOfYear: function(f, u, c) {
                  var d = this.newDate(f, u, c);
                  return d.add(4 - (d.dayOfWeek() || 7), "d"), Math.floor((d.dayOfYear() - 1) / 7) + 1;
                },
                /** Retrieve the number of days in a month.
                    @memberof JulianCalendar
                    @param year {CDate|number} The date to examine or the year of the month.
                    @param [month] {number} The month.
                    @return {number} The number of days in this month.
                    @throws Error if an invalid month/year or a different calendar used. */
                daysInMonth: function(f, u) {
                  var c = this._validate(f, u, this.minDay, a.local.invalidMonth);
                  return this.daysPerMonth[c.month() - 1] + (c.month() === 2 && this.leapYear(c.year()) ? 1 : 0);
                },
                /** Determine whether this date is a week day.
                    @memberof JulianCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {boolean} True if a week day, false if not.
                    @throws Error if an invalid date or a different calendar used. */
                weekDay: function(f, u, c) {
                  return (this.dayOfWeek(f, u, c) || 7) < 6;
                },
                /** Retrieve the Julian date equivalent for this date,
                    i.e. days since January 1, 4713 BCE Greenwich noon.
                    @memberof JulianCalendar
                    @param year {CDate|number} The date to convert or the year to convert.
                    @param [month] {number} The month to convert.
                    @param [day] {number} The day to convert.
                    @return {number} The equivalent Julian date.
                    @throws Error if an invalid date or a different calendar used. */
                toJD: function(f, u, c) {
                  var d = this._validate(f, u, c, a.local.invalidDate);
                  return f = d.year(), u = d.month(), c = d.day(), f < 0 && f++, u <= 2 && (f--, u += 12), Math.floor(365.25 * (f + 4716)) + Math.floor(30.6001 * (u + 1)) + c - 1524.5;
                },
                /** Create a new date from a Julian date.
                    @memberof JulianCalendar
                    @param jd {number} The Julian date to convert.
                    @return {CDate} The equivalent date. */
                fromJD: function(f) {
                  var u = Math.floor(f + 0.5), c = u + 1524, d = Math.floor((c - 122.1) / 365.25), h = Math.floor(365.25 * d), i = Math.floor((c - h) / 30.6001), b = i - Math.floor(i < 14 ? 1 : 13), x = d - Math.floor(b > 2 ? 4716 : 4715), D = c - h - Math.floor(30.6001 * i);
                  return x <= 0 && x--, this.newDate(x, b, D);
                }
              }), a.calendars.julian = l;
            }
          ),
          /***/
          5616: (
            /***/
            function(M, L, r) {
              var a = r(8700), p = r(896);
              function l(c) {
                this.local = this.regionalOptions[c || ""] || this.regionalOptions[""];
              }
              l.prototype = new a.baseCalendar(), p(l.prototype, {
                /** The calendar name.
                    @memberof MayanCalendar */
                name: "Mayan",
                /** Julian date of start of Mayan epoch: 11 August 3114 BCE.
                    @memberof MayanCalendar */
                jdEpoch: 584282.5,
                /** <code>true</code> if has a year zero, <code>false</code> if not.
                    @memberof MayanCalendar */
                hasYearZero: !0,
                /** The minimum month number.
                    @memberof MayanCalendar */
                minMonth: 0,
                /** The first month in the year.
                    @memberof MayanCalendar */
                firstMonth: 0,
                /** The minimum day number.
                    @memberof MayanCalendar */
                minDay: 0,
                /** Localisations for the plugin.
                    Entries are objects indexed by the language code ('' being the default US/English).
                    Each object has the following attributes.
                    @memberof MayanCalendar
                    @property name {string} The calendar name.
                    @property epochs {string[]} The epoch names.
                    @property monthNames {string[]} The long names of the months of the year.
                    @property monthNamesShort {string[]} The short names of the months of the year.
                    @property dayNames {string[]} The long names of the days of the week.
                    @property dayNamesShort {string[]} The short names of the days of the week.
                    @property dayNamesMin {string[]} The minimal names of the days of the week.
                    @property dateFormat {string} The date format for this calendar.
                            See the options on <a href="BaseCalendar.html#formatDate"><code>formatDate</code></a> for details.
                    @property firstDay {number} The number of the first day of the week, starting at 0.
                    @property isRTL {number} <code>true</code> if this localisation reads right-to-left.
                    @property haabMonths {string[]} The names of the Haab months.
                    @property tzolkinMonths {string[]} The names of the Tzolkin months. */
                regionalOptions: {
                  // Localisations
                  "": {
                    name: "Mayan",
                    epochs: ["", ""],
                    monthNames: [
                      "0",
                      "1",
                      "2",
                      "3",
                      "4",
                      "5",
                      "6",
                      "7",
                      "8",
                      "9",
                      "10",
                      "11",
                      "12",
                      "13",
                      "14",
                      "15",
                      "16",
                      "17"
                    ],
                    monthNamesShort: [
                      "0",
                      "1",
                      "2",
                      "3",
                      "4",
                      "5",
                      "6",
                      "7",
                      "8",
                      "9",
                      "10",
                      "11",
                      "12",
                      "13",
                      "14",
                      "15",
                      "16",
                      "17"
                    ],
                    dayNames: [
                      "0",
                      "1",
                      "2",
                      "3",
                      "4",
                      "5",
                      "6",
                      "7",
                      "8",
                      "9",
                      "10",
                      "11",
                      "12",
                      "13",
                      "14",
                      "15",
                      "16",
                      "17",
                      "18",
                      "19"
                    ],
                    dayNamesShort: [
                      "0",
                      "1",
                      "2",
                      "3",
                      "4",
                      "5",
                      "6",
                      "7",
                      "8",
                      "9",
                      "10",
                      "11",
                      "12",
                      "13",
                      "14",
                      "15",
                      "16",
                      "17",
                      "18",
                      "19"
                    ],
                    dayNamesMin: [
                      "0",
                      "1",
                      "2",
                      "3",
                      "4",
                      "5",
                      "6",
                      "7",
                      "8",
                      "9",
                      "10",
                      "11",
                      "12",
                      "13",
                      "14",
                      "15",
                      "16",
                      "17",
                      "18",
                      "19"
                    ],
                    digits: null,
                    dateFormat: "YYYY.m.d",
                    firstDay: 0,
                    isRTL: !1,
                    haabMonths: [
                      "Pop",
                      "Uo",
                      "Zip",
                      "Zotz",
                      "Tzec",
                      "Xul",
                      "Yaxkin",
                      "Mol",
                      "Chen",
                      "Yax",
                      "Zac",
                      "Ceh",
                      "Mac",
                      "Kankin",
                      "Muan",
                      "Pax",
                      "Kayab",
                      "Cumku",
                      "Uayeb"
                    ],
                    tzolkinMonths: [
                      "Imix",
                      "Ik",
                      "Akbal",
                      "Kan",
                      "Chicchan",
                      "Cimi",
                      "Manik",
                      "Lamat",
                      "Muluc",
                      "Oc",
                      "Chuen",
                      "Eb",
                      "Ben",
                      "Ix",
                      "Men",
                      "Cib",
                      "Caban",
                      "Etznab",
                      "Cauac",
                      "Ahau"
                    ]
                  }
                },
                /** Determine whether this date is in a leap year.
                    @memberof MayanCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @return {boolean} <code>true</code> if this is a leap year, <code>false</code> if not.
                    @throws Error if an invalid year or a different calendar used. */
                leapYear: function(c) {
                  return this._validate(c, this.minMonth, this.minDay, a.local.invalidYear), !1;
                },
                /** Format the year, if not a simple sequential number.
                    @memberof MayanCalendar
                    @param year {CDate|number} The date to format or the year to format.
                    @return {string} The formatted year.
                    @throws Error if an invalid year or a different calendar used. */
                formatYear: function(c) {
                  var d = this._validate(c, this.minMonth, this.minDay, a.local.invalidYear);
                  c = d.year();
                  var h = Math.floor(c / 400);
                  c = c % 400, c += c < 0 ? 400 : 0;
                  var i = Math.floor(c / 20);
                  return h + "." + i + "." + c % 20;
                },
                /** Convert from the formatted year back to a single number.
                    @memberof MayanCalendar
                    @param years {string} The year as n.n.n.
                    @return {number} The sequential year.
                    @throws Error if an invalid value is supplied. */
                forYear: function(c) {
                  if (c = c.split("."), c.length < 3)
                    throw "Invalid Mayan year";
                  for (var d = 0, h = 0; h < c.length; h++) {
                    var i = parseInt(c[h], 10);
                    if (Math.abs(i) > 19 || h > 0 && i < 0)
                      throw "Invalid Mayan year";
                    d = d * 20 + i;
                  }
                  return d;
                },
                /** Retrieve the number of months in a year.
                    @memberof MayanCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @return {number} The number of months.
                    @throws Error if an invalid year or a different calendar used. */
                monthsInYear: function(c) {
                  return this._validate(c, this.minMonth, this.minDay, a.local.invalidYear), 18;
                },
                /** Determine the week of the year for a date.
                    @memberof MayanCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {number} The week of the year.
                    @throws Error if an invalid date or a different calendar used. */
                weekOfYear: function(c, d, h) {
                  return this._validate(c, d, h, a.local.invalidDate), 0;
                },
                /** Retrieve the number of days in a year.
                    @memberof MayanCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @return {number} The number of days.
                    @throws Error if an invalid year or a different calendar used. */
                daysInYear: function(c) {
                  return this._validate(c, this.minMonth, this.minDay, a.local.invalidYear), 360;
                },
                /** Retrieve the number of days in a month.
                    @memberof MayanCalendar
                    @param year {CDate|number} The date to examine or the year of the month.
                    @param [month] {number} The month.
                    @return {number} The number of days in this month.
                    @throws Error if an invalid month/year or a different calendar used. */
                daysInMonth: function(c, d) {
                  return this._validate(c, d, this.minDay, a.local.invalidMonth), 20;
                },
                /** Retrieve the number of days in a week.
                    @memberof MayanCalendar
                    @return {number} The number of days. */
                daysInWeek: function() {
                  return 5;
                },
                /** Retrieve the day of the week for a date.
                    @memberof MayanCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {number} The day of the week: 0 to number of days - 1.
                    @throws Error if an invalid date or a different calendar used. */
                dayOfWeek: function(c, d, h) {
                  var i = this._validate(c, d, h, a.local.invalidDate);
                  return i.day();
                },
                /** Determine whether this date is a week day.
                    @memberof MayanCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {boolean} <code>true</code> if a week day, <code>false</code> if not.
                    @throws Error if an invalid date or a different calendar used. */
                weekDay: function(c, d, h) {
                  return this._validate(c, d, h, a.local.invalidDate), !0;
                },
                /** Retrieve additional information about a date - Haab and Tzolkin equivalents.
                    @memberof MayanCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {object} Additional information - contents depends on calendar.
                    @throws Error if an invalid date or a different calendar used. */
                extraInfo: function(c, d, h) {
                  var i = this._validate(c, d, h, a.local.invalidDate), b = i.toJD(), x = this._toHaab(b), D = this._toTzolkin(b);
                  return {
                    haabMonthName: this.local.haabMonths[x[0] - 1],
                    haabMonth: x[0],
                    haabDay: x[1],
                    tzolkinDayName: this.local.tzolkinMonths[D[0] - 1],
                    tzolkinDay: D[0],
                    tzolkinTrecena: D[1]
                  };
                },
                /** Retrieve Haab date from a Julian date.
                    @memberof MayanCalendar
                    @private
                    @param jd  {number} The Julian date.
                    @return {number[]} Corresponding Haab month and day. */
                _toHaab: function(c) {
                  c -= this.jdEpoch;
                  var d = f(c + 8 + 17 * 20, 365);
                  return [Math.floor(d / 20) + 1, f(d, 20)];
                },
                /** Retrieve Tzolkin date from a Julian date.
                    @memberof MayanCalendar
                    @private
                    @param jd {number} The Julian date.
                    @return {number[]} Corresponding Tzolkin day and trecena. */
                _toTzolkin: function(c) {
                  return c -= this.jdEpoch, [u(c + 20, 20), u(c + 4, 13)];
                },
                /** Retrieve the Julian date equivalent for this date,
                    i.e. days since January 1, 4713 BCE Greenwich noon.
                    @memberof MayanCalendar
                    @param year {CDate|number} The date to convert or the year to convert.
                    @param [month] {number} The month to convert.
                    @param [day] {number} The day to convert.
                    @return {number} The equivalent Julian date.
                    @throws Error if an invalid date or a different calendar used. */
                toJD: function(c, d, h) {
                  var i = this._validate(c, d, h, a.local.invalidDate);
                  return i.day() + i.month() * 20 + i.year() * 360 + this.jdEpoch;
                },
                /** Create a new date from a Julian date.
                    @memberof MayanCalendar
                    @param jd {number} The Julian date to convert.
                    @return {CDate} The equivalent date. */
                fromJD: function(c) {
                  c = Math.floor(c) + 0.5 - this.jdEpoch;
                  var d = Math.floor(c / 360);
                  c = c % 360, c += c < 0 ? 360 : 0;
                  var h = Math.floor(c / 20), i = c % 20;
                  return this.newDate(d, h, i);
                }
              });
              function f(c, d) {
                return c - d * Math.floor(c / d);
              }
              function u(c, d) {
                return f(c - 1, d) + 1;
              }
              a.calendars.mayan = l;
            }
          ),
          /***/
          632: (
            /***/
            function(M, L, r) {
              var a = r(8700), p = r(896);
              function l(u) {
                this.local = this.regionalOptions[u || ""] || this.regionalOptions[""];
              }
              l.prototype = new a.baseCalendar();
              var f = a.instance("gregorian");
              p(l.prototype, {
                /** The calendar name.
                    @memberof NanakshahiCalendar */
                name: "Nanakshahi",
                /** Julian date of start of Nanakshahi epoch: 14 March 1469 CE.
                    @memberof NanakshahiCalendar */
                jdEpoch: 22576735e-1,
                /** Days per month in a common year.
                    @memberof NanakshahiCalendar */
                daysPerMonth: [31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 30, 30],
                /** <code>true</code> if has a year zero, <code>false</code> if not.
                    @memberof NanakshahiCalendar */
                hasYearZero: !1,
                /** The minimum month number.
                    @memberof NanakshahiCalendar */
                minMonth: 1,
                /** The first month in the year.
                    @memberof NanakshahiCalendar */
                firstMonth: 1,
                /** The minimum day number.
                    @memberof NanakshahiCalendar */
                minDay: 1,
                /** Localisations for the plugin.
                    Entries are objects indexed by the language code ('' being the default US/English).
                    Each object has the following attributes.
                    @memberof NanakshahiCalendar
                    @property name {string} The calendar name.
                    @property epochs {string[]} The epoch names.
                    @property monthNames {string[]} The long names of the months of the year.
                    @property monthNamesShort {string[]} The short names of the months of the year.
                    @property dayNames {string[]} The long names of the days of the week.
                    @property dayNamesShort {string[]} The short names of the days of the week.
                    @property dayNamesMin {string[]} The minimal names of the days of the week.
                    @property dateFormat {string} The date format for this calendar.
                            See the options on <a href="BaseCalendar.html#formatDate"><code>formatDate</code></a> for details.
                    @property firstDay {number} The number of the first day of the week, starting at 0.
                    @property isRTL {number} <code>true</code> if this localisation reads right-to-left. */
                regionalOptions: {
                  // Localisations
                  "": {
                    name: "Nanakshahi",
                    epochs: ["BN", "AN"],
                    monthNames: [
                      "Chet",
                      "Vaisakh",
                      "Jeth",
                      "Harh",
                      "Sawan",
                      "Bhadon",
                      "Assu",
                      "Katak",
                      "Maghar",
                      "Poh",
                      "Magh",
                      "Phagun"
                    ],
                    monthNamesShort: ["Che", "Vai", "Jet", "Har", "Saw", "Bha", "Ass", "Kat", "Mgr", "Poh", "Mgh", "Pha"],
                    dayNames: ["Somvaar", "Mangalvar", "Budhvaar", "Veervaar", "Shukarvaar", "Sanicharvaar", "Etvaar"],
                    dayNamesShort: ["Som", "Mangal", "Budh", "Veer", "Shukar", "Sanichar", "Et"],
                    dayNamesMin: ["So", "Ma", "Bu", "Ve", "Sh", "Sa", "Et"],
                    digits: null,
                    dateFormat: "dd-mm-yyyy",
                    firstDay: 0,
                    isRTL: !1
                  }
                },
                /** Determine whether this date is in a leap year.
                    @memberof NanakshahiCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @return {boolean} <code>true</code> if this is a leap year, <code>false</code> if not.
                    @throws Error if an invalid year or a different calendar used. */
                leapYear: function(u) {
                  var c = this._validate(
                    u,
                    this.minMonth,
                    this.minDay,
                    a.local.invalidYear || a.regionalOptions[""].invalidYear
                  );
                  return f.leapYear(c.year() + (c.year() < 1 ? 1 : 0) + 1469);
                },
                /** Determine the week of the year for a date.
                    @memberof NanakshahiCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {number} The week of the year.
                    @throws Error if an invalid date or a different calendar used. */
                weekOfYear: function(u, c, d) {
                  var h = this.newDate(u, c, d);
                  return h.add(1 - (h.dayOfWeek() || 7), "d"), Math.floor((h.dayOfYear() - 1) / 7) + 1;
                },
                /** Retrieve the number of days in a month.
                    @memberof NanakshahiCalendar
                    @param year {CDate|number} The date to examine or the year of the month.
                    @param [month] {number} The month.
                    @return {number} The number of days in this month.
                    @throws Error if an invalid month/year or a different calendar used. */
                daysInMonth: function(u, c) {
                  var d = this._validate(u, c, this.minDay, a.local.invalidMonth);
                  return this.daysPerMonth[d.month() - 1] + (d.month() === 12 && this.leapYear(d.year()) ? 1 : 0);
                },
                /** Determine whether this date is a week day.
                    @memberof NanakshahiCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {boolean} <code>true</code> if a week day, <code>false</code> if not.
                    @throws Error if an invalid date or a different calendar used. */
                weekDay: function(u, c, d) {
                  return (this.dayOfWeek(u, c, d) || 7) < 6;
                },
                /** Retrieve the Julian date equivalent for this date,
                    i.e. days since January 1, 4713 BCE Greenwich noon.
                    @memberof NanakshahiCalendar
                    @param year {CDate|number} The date to convert or the year to convert.
                    @param [month] {number} The month to convert.
                    @param [day] {number} The day to convert.
                    @return {number} The equivalent Julian date.
                    @throws Error if an invalid date or a different calendar used. */
                toJD: function(i, c, d) {
                  var h = this._validate(i, c, d, a.local.invalidMonth), i = h.year();
                  i < 0 && i++;
                  for (var b = h.day(), x = 1; x < h.month(); x++)
                    b += this.daysPerMonth[x - 1];
                  return b + f.toJD(i + 1468, 3, 13);
                },
                /** Create a new date from a Julian date.
                    @memberof NanakshahiCalendar
                    @param jd {number} The Julian date to convert.
                    @return {CDate} The equivalent date. */
                fromJD: function(u) {
                  u = Math.floor(u + 0.5);
                  for (var c = Math.floor((u - (this.jdEpoch - 1)) / 366); u >= this.toJD(c + 1, 1, 1); )
                    c++;
                  for (var d = u - Math.floor(this.toJD(c, 1, 1) + 0.5) + 1, h = 1; d > this.daysInMonth(c, h); )
                    d -= this.daysInMonth(c, h), h++;
                  return this.newDate(c, h, d);
                }
              }), a.calendars.nanakshahi = l;
            }
          ),
          /***/
          3040: (
            /***/
            function(M, L, r) {
              var a = r(8700), p = r(896);
              function l(f) {
                this.local = this.regionalOptions[f || ""] || this.regionalOptions[""];
              }
              l.prototype = new a.baseCalendar(), p(l.prototype, {
                /** The calendar name.
                    @memberof NepaliCalendar */
                name: "Nepali",
                /** Julian date of start of Nepali epoch: 14 April 57 BCE.
                    @memberof NepaliCalendar */
                jdEpoch: 17007095e-1,
                /** Days per month in a common year.
                    @memberof NepaliCalendar */
                daysPerMonth: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],
                /** <code>true</code> if has a year zero, <code>false</code> if not.
                    @memberof NepaliCalendar */
                hasYearZero: !1,
                /** The minimum month number.
                    @memberof NepaliCalendar */
                minMonth: 1,
                /** The first month in the year.
                    @memberof NepaliCalendar */
                firstMonth: 1,
                /** The minimum day number.
                    @memberof NepaliCalendar */
                minDay: 1,
                /** The number of days in the year.
                    @memberof NepaliCalendar */
                daysPerYear: 365,
                /** Localisations for the plugin.
                    Entries are objects indexed by the language code ('' being the default US/English).
                    Each object has the following attributes.
                    @memberof NepaliCalendar
                    @property name {string} The calendar name.
                    @property epochs {string[]} The epoch names.
                    @property monthNames {string[]} The long names of the months of the year.
                    @property monthNamesShort {string[]} The short names of the months of the year.
                    @property dayNames {string[]} The long names of the days of the week.
                    @property dayNamesShort {string[]} The short names of the days of the week.
                    @property dayNamesMin {string[]} The minimal names of the days of the week.
                    @property dateFormat {string} The date format for this calendar.
                            See the options on <a href="BaseCalendar.html#formatDate"><code>formatDate</code></a> for details.
                    @property firstDay {number} The number of the first day of the week, starting at 0.
                    @property isRTL {number} <code>true</code> if this localisation reads right-to-left. */
                regionalOptions: {
                  // Localisations
                  "": {
                    name: "Nepali",
                    epochs: ["BBS", "ABS"],
                    monthNames: [
                      "Baisakh",
                      "Jestha",
                      "Ashadh",
                      "Shrawan",
                      "Bhadra",
                      "Ashwin",
                      "Kartik",
                      "Mangsir",
                      "Paush",
                      "Mangh",
                      "Falgun",
                      "Chaitra"
                    ],
                    monthNamesShort: ["Bai", "Je", "As", "Shra", "Bha", "Ash", "Kar", "Mang", "Pau", "Ma", "Fal", "Chai"],
                    dayNames: ["Aaitabaar", "Sombaar", "Manglbaar", "Budhabaar", "Bihibaar", "Shukrabaar", "Shanibaar"],
                    dayNamesShort: ["Aaita", "Som", "Mangl", "Budha", "Bihi", "Shukra", "Shani"],
                    dayNamesMin: ["Aai", "So", "Man", "Bu", "Bi", "Shu", "Sha"],
                    digits: null,
                    dateFormat: "dd/mm/yyyy",
                    firstDay: 1,
                    isRTL: !1
                  }
                },
                /** Determine whether this date is in a leap year.
                    @memberof NepaliCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @return {boolean} <code>true</code> if this is a leap year, <code>false</code> if not.
                    @throws Error if an invalid year or a different calendar used. */
                leapYear: function(f) {
                  return this.daysInYear(f) !== this.daysPerYear;
                },
                /** Determine the week of the year for a date.
                    @memberof NepaliCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {number} The week of the year.
                    @throws Error if an invalid date or a different calendar used. */
                weekOfYear: function(f, u, c) {
                  var d = this.newDate(f, u, c);
                  return d.add(-d.dayOfWeek(), "d"), Math.floor((d.dayOfYear() - 1) / 7) + 1;
                },
                /** Retrieve the number of days in a year.
                    @memberof NepaliCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @return {number} The number of days.
                    @throws Error if an invalid year or a different calendar used. */
                daysInYear: function(f) {
                  var u = this._validate(f, this.minMonth, this.minDay, a.local.invalidYear);
                  if (f = u.year(), typeof this.NEPALI_CALENDAR_DATA[f] > "u")
                    return this.daysPerYear;
                  for (var c = 0, d = this.minMonth; d <= 12; d++)
                    c += this.NEPALI_CALENDAR_DATA[f][d];
                  return c;
                },
                /** Retrieve the number of days in a month.
                    @memberof NepaliCalendar
                    @param year {CDate|number| The date to examine or the year of the month.
                    @param [month] {number} The month.
                    @return {number} The number of days in this month.
                    @throws Error if an invalid month/year or a different calendar used. */
                daysInMonth: function(f, u) {
                  return f.year && (u = f.month(), f = f.year()), this._validate(f, u, this.minDay, a.local.invalidMonth), typeof this.NEPALI_CALENDAR_DATA[f] > "u" ? this.daysPerMonth[u - 1] : this.NEPALI_CALENDAR_DATA[f][u];
                },
                /** Determine whether this date is a week day.
                    @memberof NepaliCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {boolean} <code>true</code> if a week day, <code>false</code> if not.
                    @throws Error if an invalid date or a different calendar used. */
                weekDay: function(f, u, c) {
                  return this.dayOfWeek(f, u, c) !== 6;
                },
                /** Retrieve the Julian date equivalent for this date,
                    i.e. days since January 1, 4713 BCE Greenwich noon.
                    @memberof NepaliCalendar
                    @param year {CDate|number} The date to convert or the year to convert.
                    @param [month] {number} The month to convert.
                    @param [day] {number} The day to convert.
                    @return {number} The equivalent Julian date.
                    @throws Error if an invalid date or a different calendar used. */
                toJD: function(f, u, c) {
                  var d = this._validate(f, u, c, a.local.invalidDate);
                  f = d.year(), u = d.month(), c = d.day();
                  var h = a.instance(), i = 0, b = u, x = f;
                  this._createMissingCalendarData(f);
                  var D = f - (b > 9 || b === 9 && c >= this.NEPALI_CALENDAR_DATA[x][0] ? 56 : 57);
                  for (u !== 9 && (i = c, b--); b !== 9; )
                    b <= 0 && (b = 12, x--), i += this.NEPALI_CALENDAR_DATA[x][b], b--;
                  return u === 9 ? (i += c - this.NEPALI_CALENDAR_DATA[x][0], i < 0 && (i += h.daysInYear(D))) : i += this.NEPALI_CALENDAR_DATA[x][9] - this.NEPALI_CALENDAR_DATA[x][0], h.newDate(D, 1, 1).add(i, "d").toJD();
                },
                /** Create a new date from a Julian date.
                    @memberof NepaliCalendar
                    @param jd {number} The Julian date to convert.
                    @return {CDate} The equivalent date. */
                fromJD: function(f) {
                  var u = a.instance(), c = u.fromJD(f), d = c.year(), h = c.dayOfYear(), i = d + 56;
                  this._createMissingCalendarData(i);
                  for (var b = 9, x = this.NEPALI_CALENDAR_DATA[i][0], D = this.NEPALI_CALENDAR_DATA[i][b] - x + 1; h > D; )
                    b++, b > 12 && (b = 1, i++), D += this.NEPALI_CALENDAR_DATA[i][b];
                  var C = this.NEPALI_CALENDAR_DATA[i][b] - (D - h);
                  return this.newDate(i, b, C);
                },
                /** Creates missing data in the NEPALI_CALENDAR_DATA table.
                    This data will not be correct but just give an estimated result. Mostly -/+ 1 day
                    @private
                    @param nepaliYear {number} The missing year number. */
                _createMissingCalendarData: function(f) {
                  var u = this.daysPerMonth.slice(0);
                  u.unshift(17);
                  for (var c = f - 1; c < f + 2; c++)
                    typeof this.NEPALI_CALENDAR_DATA[c] > "u" && (this.NEPALI_CALENDAR_DATA[c] = u);
                },
                NEPALI_CALENDAR_DATA: {
                  // These data are from http://www.ashesh.com.np
                  1970: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
                  1971: [18, 31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30],
                  1972: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],
                  1973: [19, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],
                  1974: [19, 31, 31, 32, 30, 31, 31, 30, 29, 30, 29, 30, 30],
                  1975: [18, 31, 31, 32, 32, 30, 31, 30, 29, 30, 29, 30, 30],
                  1976: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
                  1977: [18, 31, 32, 31, 32, 31, 31, 29, 30, 29, 30, 29, 31],
                  1978: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
                  1979: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],
                  1980: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
                  1981: [18, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],
                  1982: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
                  1983: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],
                  1984: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
                  1985: [18, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],
                  1986: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
                  1987: [18, 31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],
                  1988: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
                  1989: [18, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],
                  1990: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
                  1991: [18, 31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],
                  // These data are from http://nepalicalendar.rat32.com/index.php
                  1992: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],
                  1993: [18, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],
                  1994: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
                  1995: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],
                  1996: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],
                  1997: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
                  1998: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
                  1999: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
                  2e3: [17, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],
                  2001: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
                  2002: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],
                  2003: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
                  2004: [17, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],
                  2005: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
                  2006: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],
                  2007: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
                  2008: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31],
                  2009: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
                  2010: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],
                  2011: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
                  2012: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],
                  2013: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
                  2014: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],
                  2015: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
                  2016: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],
                  2017: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
                  2018: [18, 31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],
                  2019: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],
                  2020: [17, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],
                  2021: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
                  2022: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],
                  2023: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],
                  2024: [17, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],
                  2025: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
                  2026: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
                  2027: [17, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],
                  2028: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
                  2029: [18, 31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30],
                  2030: [17, 31, 32, 31, 32, 31, 30, 30, 30, 30, 30, 30, 31],
                  2031: [17, 31, 32, 31, 32, 31, 31, 31, 31, 31, 31, 31, 31],
                  2032: [17, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32],
                  2033: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],
                  2034: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
                  2035: [17, 30, 32, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31],
                  2036: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
                  2037: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],
                  2038: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
                  2039: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],
                  2040: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
                  2041: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],
                  2042: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
                  2043: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],
                  2044: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
                  2045: [18, 31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],
                  2046: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
                  2047: [17, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],
                  2048: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
                  2049: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],
                  2050: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],
                  2051: [17, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],
                  2052: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
                  2053: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],
                  2054: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],
                  2055: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 30, 29, 30],
                  2056: [17, 31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30],
                  2057: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
                  2058: [17, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],
                  2059: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
                  2060: [17, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],
                  2061: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
                  2062: [17, 30, 32, 31, 32, 31, 31, 29, 30, 29, 30, 29, 31],
                  2063: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
                  2064: [17, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],
                  2065: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
                  2066: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31],
                  2067: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
                  2068: [17, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],
                  2069: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
                  2070: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],
                  2071: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
                  2072: [17, 31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],
                  2073: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
                  2074: [17, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],
                  2075: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
                  2076: [16, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],
                  2077: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],
                  2078: [17, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],
                  2079: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
                  2080: [16, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],
                  // These data are from http://www.ashesh.com.np/nepali-calendar/
                  2081: [17, 31, 31, 32, 32, 31, 30, 30, 30, 29, 30, 30, 30],
                  2082: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],
                  2083: [17, 31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30],
                  2084: [17, 31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30],
                  2085: [17, 31, 32, 31, 32, 31, 31, 30, 30, 29, 30, 30, 30],
                  2086: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],
                  2087: [16, 31, 31, 32, 31, 31, 31, 30, 30, 29, 30, 30, 30],
                  2088: [16, 30, 31, 32, 32, 30, 31, 30, 30, 29, 30, 30, 30],
                  2089: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],
                  2090: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],
                  2091: [16, 31, 31, 32, 31, 31, 31, 30, 30, 29, 30, 30, 30],
                  2092: [16, 31, 31, 32, 32, 31, 30, 30, 30, 29, 30, 30, 30],
                  2093: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],
                  2094: [17, 31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30],
                  2095: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 30, 30, 30],
                  2096: [17, 30, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],
                  2097: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],
                  2098: [17, 31, 31, 32, 31, 31, 31, 29, 30, 29, 30, 30, 31],
                  2099: [17, 31, 31, 32, 31, 31, 31, 30, 29, 29, 30, 30, 30],
                  2100: [17, 31, 32, 31, 32, 30, 31, 30, 29, 30, 29, 30, 30]
                }
              }), a.calendars.nepali = l;
            }
          ),
          /***/
          1104: (
            /***/
            function(M, L, r) {
              var a = r(8700), p = r(896);
              function l(u) {
                this.local = this.regionalOptions[u || ""] || this.regionalOptions[""];
              }
              l.prototype = new a.baseCalendar(), p(l.prototype, {
                /** The calendar name.
                    @memberof PersianCalendar */
                name: "Persian",
                /** Julian date of start of Persian epoch: 19 March 622 CE.
                    @memberof PersianCalendar */
                jdEpoch: 19483205e-1,
                /** Days per month in a common year.
                    @memberof PersianCalendar */
                daysPerMonth: [31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29],
                /** <code>true</code> if has a year zero, <code>false</code> if not.
                    @memberof PersianCalendar */
                hasYearZero: !1,
                /** The minimum month number.
                    @memberof PersianCalendar */
                minMonth: 1,
                /** The first month in the year.
                    @memberof PersianCalendar */
                firstMonth: 1,
                /** The minimum day number.
                    @memberof PersianCalendar */
                minDay: 1,
                /** Localisations for the plugin.
                    Entries are objects indexed by the language code ('' being the default US/English).
                    Each object has the following attributes.
                    @memberof PersianCalendar
                    @property name {string} The calendar name.
                    @property epochs {string[]} The epoch names.
                    @property monthNames {string[]} The long names of the months of the year.
                    @property monthNamesShort {string[]} The short names of the months of the year.
                    @property dayNames {string[]} The long names of the days of the week.
                    @property dayNamesShort {string[]} The short names of the days of the week.
                    @property dayNamesMin {string[]} The minimal names of the days of the week.
                    @property dateFormat {string} The date format for this calendar.
                            See the options on <a href="BaseCalendar.html#formatDate"><code>formatDate</code></a> for details.
                    @property firstDay {number} The number of the first day of the week, starting at 0.
                    @property isRTL {number} <code>true</code> if this localisation reads right-to-left. */
                regionalOptions: {
                  // Localisations
                  "": {
                    name: "Persian",
                    epochs: ["BP", "AP"],
                    monthNames: [
                      "Farvardin",
                      "Ordibehesht",
                      "Khordad",
                      "Tir",
                      "Mordad",
                      "Shahrivar",
                      "Mehr",
                      "Aban",
                      "Azar",
                      "Day",
                      "Bahman",
                      "Esfand"
                    ],
                    monthNamesShort: ["Far", "Ord", "Kho", "Tir", "Mor", "Sha", "Meh", "Aba", "Aza", "Day", "Bah", "Esf"],
                    dayNames: ["Yekshambe", "Doshambe", "Seshambe", "Chæharshambe", "Panjshambe", "Jom'e", "Shambe"],
                    dayNamesShort: ["Yek", "Do", "Se", "Chæ", "Panj", "Jom", "Sha"],
                    dayNamesMin: ["Ye", "Do", "Se", "Ch", "Pa", "Jo", "Sh"],
                    digits: null,
                    dateFormat: "yyyy/mm/dd",
                    firstDay: 6,
                    isRTL: !1
                  }
                },
                /** Determine whether this date is in a leap year.
                    @memberof PersianCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @return {boolean} <code>true</code> if this is a leap year, <code>false</code> if not.
                    @throws Error if an invalid year or a different calendar used. */
                leapYear: function(u) {
                  var c = this._validate(u, this.minMonth, this.minDay, a.local.invalidYear);
                  return ((c.year() - (c.year() > 0 ? 474 : 473)) % 2820 + 474 + 38) * 682 % 2816 < 682;
                },
                /** Determine the week of the year for a date.
                    @memberof PersianCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {number} The week of the year.
                    @throws Error if an invalid date or a different calendar used. */
                weekOfYear: function(u, c, d) {
                  var h = this.newDate(u, c, d);
                  return h.add(-((h.dayOfWeek() + 1) % 7), "d"), Math.floor((h.dayOfYear() - 1) / 7) + 1;
                },
                /** Retrieve the number of days in a month.
                    @memberof PersianCalendar
                    @param year {CDate|number} The date to examine or the year of the month.
                    @param [month] {number} The month.
                    @return {number} The number of days in this month.
                    @throws Error if an invalid month/year or a different calendar used. */
                daysInMonth: function(u, c) {
                  var d = this._validate(u, c, this.minDay, a.local.invalidMonth);
                  return this.daysPerMonth[d.month() - 1] + (d.month() === 12 && this.leapYear(d.year()) ? 1 : 0);
                },
                /** Determine whether this date is a week day.
                    @memberof PersianCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {boolean} <code>true</code> if a week day, <code>false</code> if not.
                    @throws Error if an invalid date or a different calendar used. */
                weekDay: function(u, c, d) {
                  return this.dayOfWeek(u, c, d) !== 5;
                },
                /** Retrieve the Julian date equivalent for this date,
                    i.e. days since January 1, 4713 BCE Greenwich noon.
                    @memberof PersianCalendar
                    @param year {CDate|number} The date to convert or the year to convert.
                    @param [month] {number} The month to convert.
                    @param [day] {number} The day to convert.
                    @return {number} The equivalent Julian date.
                    @throws Error if an invalid date or a different calendar used. */
                toJD: function(u, c, d) {
                  var h = this._validate(u, c, d, a.local.invalidDate);
                  u = h.year(), c = h.month(), d = h.day();
                  var i = u - (u >= 0 ? 474 : 473), b = 474 + f(i, 2820);
                  return d + (c <= 7 ? (c - 1) * 31 : (c - 1) * 30 + 6) + Math.floor((b * 682 - 110) / 2816) + (b - 1) * 365 + Math.floor(i / 2820) * 1029983 + this.jdEpoch - 1;
                },
                /** Create a new date from a Julian date.
                    @memberof PersianCalendar
                    @param jd {number} The Julian date to convert.
                    @return {CDate} The equivalent date. */
                fromJD: function(u) {
                  u = Math.floor(u) + 0.5;
                  var c = u - this.toJD(475, 1, 1), d = Math.floor(c / 1029983), h = f(c, 1029983), i = 2820;
                  if (h !== 1029982) {
                    var b = Math.floor(h / 366), x = f(h, 366);
                    i = Math.floor((2134 * b + 2816 * x + 2815) / 1028522) + b + 1;
                  }
                  var D = i + 2820 * d + 474;
                  D = D <= 0 ? D - 1 : D;
                  var C = u - this.toJD(D, 1, 1) + 1, w = C <= 186 ? Math.ceil(C / 31) : Math.ceil((C - 6) / 30), S = u - this.toJD(D, w, 1) + 1;
                  return this.newDate(D, w, S);
                }
              });
              function f(u, c) {
                return u - c * Math.floor(u / c);
              }
              a.calendars.persian = l, a.calendars.jalali = l;
            }
          ),
          /***/
          9075: (
            /***/
            function(M, L, r) {
              var a = r(8700), p = r(896), l = a.instance();
              function f(u) {
                this.local = this.regionalOptions[u || ""] || this.regionalOptions[""];
              }
              f.prototype = new a.baseCalendar(), p(f.prototype, {
                /** The calendar name.
                    @memberof TaiwanCalendar */
                name: "Taiwan",
                /** Julian date of start of Taiwan epoch: 1 January 1912 CE (Gregorian).
                    @memberof TaiwanCalendar */
                jdEpoch: 24194025e-1,
                /** Difference in years between Taiwan and Gregorian calendars.
                    @memberof TaiwanCalendar */
                yearsOffset: 1911,
                /** Days per month in a common year.
                    @memberof TaiwanCalendar */
                daysPerMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
                /** <code>true</code> if has a year zero, <code>false</code> if not.
                    @memberof TaiwanCalendar */
                hasYearZero: !1,
                /** The minimum month number.
                    @memberof TaiwanCalendar */
                minMonth: 1,
                /** The first month in the year.
                    @memberof TaiwanCalendar */
                firstMonth: 1,
                /** The minimum day number.
                    @memberof TaiwanCalendar */
                minDay: 1,
                /** Localisations for the plugin.
                    Entries are objects indexed by the language code ('' being the default US/English).
                    Each object has the following attributes.
                    @memberof TaiwanCalendar
                    @property name {string} The calendar name.
                    @property epochs {string[]} The epoch names.
                    @property monthNames {string[]} The long names of the months of the year.
                    @property monthNamesShort {string[]} The short names of the months of the year.
                    @property dayNames {string[]} The long names of the days of the week.
                    @property dayNamesShort {string[]} The short names of the days of the week.
                    @property dayNamesMin {string[]} The minimal names of the days of the week.
                    @property dateFormat {string} The date format for this calendar.
                            See the options on <a href="BaseCalendar.html#formatDate"><code>formatDate</code></a> for details.
                    @property firstDay {number} The number of the first day of the week, starting at 0.
                    @property isRTL {number} <code>true</code> if this localisation reads right-to-left. */
                regionalOptions: {
                  // Localisations
                  "": {
                    name: "Taiwan",
                    epochs: ["BROC", "ROC"],
                    monthNames: [
                      "January",
                      "February",
                      "March",
                      "April",
                      "May",
                      "June",
                      "July",
                      "August",
                      "September",
                      "October",
                      "November",
                      "December"
                    ],
                    monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
                    dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
                    dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
                    dayNamesMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
                    digits: null,
                    dateFormat: "yyyy/mm/dd",
                    firstDay: 1,
                    isRTL: !1
                  }
                },
                /** Determine whether this date is in a leap year.
                    @memberof TaiwanCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @return {boolean} <code>true</code> if this is a leap year, <code>false</code> if not.
                    @throws Error if an invalid year or a different calendar used. */
                leapYear: function(d) {
                  var c = this._validate(d, this.minMonth, this.minDay, a.local.invalidYear), d = this._t2gYear(c.year());
                  return l.leapYear(d);
                },
                /** Determine the week of the year for a date - ISO 8601.
                    @memberof TaiwanCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {number} The week of the year.
                    @throws Error if an invalid date or a different calendar used. */
                weekOfYear: function(i, c, d) {
                  var h = this._validate(i, this.minMonth, this.minDay, a.local.invalidYear), i = this._t2gYear(h.year());
                  return l.weekOfYear(i, h.month(), h.day());
                },
                /** Retrieve the number of days in a month.
                    @memberof TaiwanCalendar
                    @param year {CDate|number} The date to examine or the year of the month.
                    @param [month] {number} The month.
                    @return {number} The number of days in this month.
                    @throws Error if an invalid month/year or a different calendar used. */
                daysInMonth: function(u, c) {
                  var d = this._validate(u, c, this.minDay, a.local.invalidMonth);
                  return this.daysPerMonth[d.month() - 1] + (d.month() === 2 && this.leapYear(d.year()) ? 1 : 0);
                },
                /** Determine whether this date is a week day.
                    @memberof TaiwanCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {boolean} <code>true</code> if a week day, <code>false</code> if not.
                    @throws Error if an invalid date or a different calendar used. */
                weekDay: function(u, c, d) {
                  return (this.dayOfWeek(u, c, d) || 7) < 6;
                },
                /** Retrieve the Julian date equivalent for this date,
                    i.e. days since January 1, 4713 BCE Greenwich noon.
                    @memberof TaiwanCalendar
                    @param year {CDate|number} The date to convert or the year to convert.
                    @param [month] {number} The month to convert.
                    @param [day] {number} The day to convert.
                    @return {number} The equivalent Julian date.
                    @throws Error if an invalid date or a different calendar used. */
                toJD: function(i, c, d) {
                  var h = this._validate(i, c, d, a.local.invalidDate), i = this._t2gYear(h.year());
                  return l.toJD(i, h.month(), h.day());
                },
                /** Create a new date from a Julian date.
                    @memberof TaiwanCalendar
                    @param jd {number} The Julian date to convert.
                    @return {CDate} The equivalent date. */
                fromJD: function(u) {
                  var c = l.fromJD(u), d = this._g2tYear(c.year());
                  return this.newDate(d, c.month(), c.day());
                },
                /** Convert Taiwanese to Gregorian year.
                    @memberof TaiwanCalendar
                    @private
                    @param year {number} The Taiwanese year.
                    @return {number} The corresponding Gregorian year. */
                _t2gYear: function(u) {
                  return u + this.yearsOffset + (u >= -this.yearsOffset && u <= -1 ? 1 : 0);
                },
                /** Convert Gregorian to Taiwanese year.
                    @memberof TaiwanCalendar
                    @private
                    @param year {number} The Gregorian year.
                    @return {number} The corresponding Taiwanese year. */
                _g2tYear: function(u) {
                  return u - this.yearsOffset - (u >= 1 && u <= this.yearsOffset ? 1 : 0);
                }
              }), a.calendars.taiwan = f;
            }
          ),
          /***/
          4592: (
            /***/
            function(M, L, r) {
              var a = r(8700), p = r(896), l = a.instance();
              function f(u) {
                this.local = this.regionalOptions[u || ""] || this.regionalOptions[""];
              }
              f.prototype = new a.baseCalendar(), p(f.prototype, {
                /** The calendar name.
                    @memberof ThaiCalendar */
                name: "Thai",
                /** Julian date of start of Thai epoch: 1 January 543 BCE (Gregorian).
                    @memberof ThaiCalendar */
                jdEpoch: 15230985e-1,
                /** Difference in years between Thai and Gregorian calendars.
                    @memberof ThaiCalendar */
                yearsOffset: 543,
                /** Days per month in a common year.
                    @memberof ThaiCalendar */
                daysPerMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
                /** <code>true</code> if has a year zero, <code>false</code> if not.
                    @memberof ThaiCalendar */
                hasYearZero: !1,
                /** The minimum month number.
                    @memberof ThaiCalendar */
                minMonth: 1,
                /** The first month in the year.
                    @memberof ThaiCalendar */
                firstMonth: 1,
                /** The minimum day number.
                    @memberof ThaiCalendar */
                minDay: 1,
                /** Localisations for the plugin.
                    Entries are objects indexed by the language code ('' being the default US/English).
                    Each object has the following attributes.
                    @memberof ThaiCalendar
                    @property name {string} The calendar name.
                    @property epochs {string[]} The epoch names.
                    @property monthNames {string[]} The long names of the months of the year.
                    @property monthNamesShort {string[]} The short names of the months of the year.
                    @property dayNames {string[]} The long names of the days of the week.
                    @property dayNamesShort {string[]} The short names of the days of the week.
                    @property dayNamesMin {string[]} The minimal names of the days of the week.
                    @property dateFormat {string} The date format for this calendar.
                            See the options on <a href="BaseCalendar.html#formatDate"><code>formatDate</code></a> for details.
                    @property firstDay {number} The number of the first day of the week, starting at 0.
                    @property isRTL {number} <code>true</code> if this localisation reads right-to-left. */
                regionalOptions: {
                  // Localisations
                  "": {
                    name: "Thai",
                    epochs: ["BBE", "BE"],
                    monthNames: [
                      "January",
                      "February",
                      "March",
                      "April",
                      "May",
                      "June",
                      "July",
                      "August",
                      "September",
                      "October",
                      "November",
                      "December"
                    ],
                    monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
                    dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
                    dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
                    dayNamesMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
                    digits: null,
                    dateFormat: "dd/mm/yyyy",
                    firstDay: 0,
                    isRTL: !1
                  }
                },
                /** Determine whether this date is in a leap year.
                    @memberof ThaiCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @return {boolean} <code>true</code> if this is a leap year, <code>false</code> if not.
                    @throws Error if an invalid year or a different calendar used. */
                leapYear: function(d) {
                  var c = this._validate(d, this.minMonth, this.minDay, a.local.invalidYear), d = this._t2gYear(c.year());
                  return l.leapYear(d);
                },
                /** Determine the week of the year for a date - ISO 8601.
                    @memberof ThaiCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {number} The week of the year.
                    @throws Error if an invalid date or a different calendar used. */
                weekOfYear: function(i, c, d) {
                  var h = this._validate(i, this.minMonth, this.minDay, a.local.invalidYear), i = this._t2gYear(h.year());
                  return l.weekOfYear(i, h.month(), h.day());
                },
                /** Retrieve the number of days in a month.
                    @memberof ThaiCalendar
                    @param year {CDate|number} The date to examine or the year of the month.
                    @param [month] {number} The month.
                    @return {number} The number of days in this month.
                    @throws Error if an invalid month/year or a different calendar used. */
                daysInMonth: function(u, c) {
                  var d = this._validate(u, c, this.minDay, a.local.invalidMonth);
                  return this.daysPerMonth[d.month() - 1] + (d.month() === 2 && this.leapYear(d.year()) ? 1 : 0);
                },
                /** Determine whether this date is a week day.
                    @memberof ThaiCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {boolean} <code>true</code> if a week day, <code>false</code> if not.
                    @throws Error if an invalid date or a different calendar used. */
                weekDay: function(u, c, d) {
                  return (this.dayOfWeek(u, c, d) || 7) < 6;
                },
                /** Retrieve the Julian date equivalent for this date,
                    i.e. days since January 1, 4713 BCE Greenwich noon.
                    @memberof ThaiCalendar
                    @param year {CDate|number} The date to convert or the year to convert.
                    @param [month] {number} The month to convert.
                    @param [day] {number} The day to convert.
                    @return {number} The equivalent Julian date.
                    @throws Error if an invalid date or a different calendar used. */
                toJD: function(i, c, d) {
                  var h = this._validate(i, c, d, a.local.invalidDate), i = this._t2gYear(h.year());
                  return l.toJD(i, h.month(), h.day());
                },
                /** Create a new date from a Julian date.
                    @memberof ThaiCalendar
                    @param jd {number} The Julian date to convert.
                    @return {CDate} The equivalent date. */
                fromJD: function(u) {
                  var c = l.fromJD(u), d = this._g2tYear(c.year());
                  return this.newDate(d, c.month(), c.day());
                },
                /** Convert Thai to Gregorian year.
                    @memberof ThaiCalendar
                    @private
                    @param year {number} The Thai year.
                    @return {number} The corresponding Gregorian year. */
                _t2gYear: function(u) {
                  return u - this.yearsOffset - (u >= 1 && u <= this.yearsOffset ? 1 : 0);
                },
                /** Convert Gregorian to Thai year.
                    @memberof ThaiCalendar
                    @private
                    @param year {number} The Gregorian year.
                    @return {number} The corresponding Thai year. */
                _g2tYear: function(u) {
                  return u + this.yearsOffset + (u >= -this.yearsOffset && u <= -1 ? 1 : 0);
                }
              }), a.calendars.thai = f;
            }
          ),
          /***/
          5348: (
            /***/
            function(M, L, r) {
              var a = r(8700), p = r(896);
              function l(u) {
                this.local = this.regionalOptions[u || ""] || this.regionalOptions[""];
              }
              l.prototype = new a.baseCalendar(), p(l.prototype, {
                /** The calendar name.
                    @memberof UmmAlQuraCalendar */
                name: "UmmAlQura",
                //jdEpoch: 1948440, // Julian date of start of UmmAlQura epoch: 14 March 1937 CE
                //daysPerMonth: // Days per month in a common year, replaced by a method.
                /** <code>true</code> if has a year zero, <code>false</code> if not.
                    @memberof UmmAlQuraCalendar */
                hasYearZero: !1,
                /** The minimum month number.
                    @memberof UmmAlQuraCalendar */
                minMonth: 1,
                /** The first month in the year.
                    @memberof UmmAlQuraCalendar */
                firstMonth: 1,
                /** The minimum day number.
                    @memberof UmmAlQuraCalendar */
                minDay: 1,
                /** Localisations for the plugin.
                    Entries are objects indexed by the language code ('' being the default US/English).
                    Each object has the following attributes.
                    @memberof UmmAlQuraCalendar
                    @property name {string} The calendar name.
                    @property epochs {string[]} The epoch names.
                    @property monthNames {string[]} The long names of the months of the year.
                    @property monthNamesShort {string[]} The short names of the months of the year.
                    @property dayNames {string[]} The long names of the days of the week.
                    @property dayNamesShort {string[]} The short names of the days of the week.
                    @property dayNamesMin {string[]} The minimal names of the days of the week.
                    @property dateFormat {string} The date format for this calendar.
                            See the options on <a href="BaseCalendar.html#formatDate"><code>formatDate</code></a> for details.
                    @property firstDay {number} The number of the first day of the week, starting at 0.
                    @property isRTL {number} <code>true</code> if this localisation reads right-to-left. */
                regionalOptions: {
                  // Localisations
                  "": {
                    name: "Umm al-Qura",
                    epochs: ["BH", "AH"],
                    monthNames: [
                      "Al-Muharram",
                      "Safar",
                      "Rabi' al-awwal",
                      "Rabi' Al-Thani",
                      "Jumada Al-Awwal",
                      "Jumada Al-Thani",
                      "Rajab",
                      "Sha'aban",
                      "Ramadan",
                      "Shawwal",
                      "Dhu al-Qi'dah",
                      "Dhu al-Hijjah"
                    ],
                    monthNamesShort: ["Muh", "Saf", "Rab1", "Rab2", "Jum1", "Jum2", "Raj", "Sha'", "Ram", "Shaw", "DhuQ", "DhuH"],
                    dayNames: ["Yawm al-Ahad", "Yawm al-Ithnain", "Yawm al-Thalāthā’", "Yawm al-Arba‘ā’", "Yawm al-Khamīs", "Yawm al-Jum‘a", "Yawm al-Sabt"],
                    dayNamesMin: ["Ah", "Ith", "Th", "Ar", "Kh", "Ju", "Sa"],
                    digits: null,
                    dateFormat: "yyyy/mm/dd",
                    firstDay: 6,
                    isRTL: !0
                  }
                },
                /** Determine whether this date is in a leap year.
                    @memberof UmmAlQuraCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @return {boolean} <code>true</code> if this is a leap year, <code>false</code> if not.
                    @throws Error if an invalid year or a different calendar used. */
                leapYear: function(u) {
                  var c = this._validate(u, this.minMonth, this.minDay, a.local.invalidYear);
                  return this.daysInYear(c.year()) === 355;
                },
                /** Determine the week of the year for a date.
                    @memberof UmmAlQuraCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {number} The week of the year.
                    @throws Error if an invalid date or a different calendar used. */
                weekOfYear: function(u, c, d) {
                  var h = this.newDate(u, c, d);
                  return h.add(-h.dayOfWeek(), "d"), Math.floor((h.dayOfYear() - 1) / 7) + 1;
                },
                /** Retrieve the number of days in a year.
                    @memberof UmmAlQuraCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @return {number} The number of days.
                    @throws Error if an invalid year or a different calendar used. */
                daysInYear: function(u) {
                  for (var c = 0, d = 1; d <= 12; d++)
                    c += this.daysInMonth(u, d);
                  return c;
                },
                /** Retrieve the number of days in a month.
                    @memberof UmmAlQuraCalendar
                    @param year {CDate|number} The date to examine or the year of the month.
                    @param [month] {number} The month.
                    @return {number} The number of days in this month.
                    @throws Error if an invalid month/year or a different calendar used. */
                daysInMonth: function(u, c) {
                  for (var d = this._validate(u, c, this.minDay, a.local.invalidMonth), h = d.toJD() - 24e5 + 0.5, i = 0, b = 0; b < f.length; b++) {
                    if (f[b] > h)
                      return f[i] - f[i - 1];
                    i++;
                  }
                  return 30;
                },
                /** Determine whether this date is a week day.
                    @memberof UmmAlQuraCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {boolean} <code>true</code> if a week day, <code>false</code> if not.
                    @throws Error if an invalid date or a different calendar used. */
                weekDay: function(u, c, d) {
                  return this.dayOfWeek(u, c, d) !== 5;
                },
                /** Retrieve the Julian date equivalent for this date,
                    i.e. days since January 1, 4713 BCE Greenwich noon.
                    @memberof UmmAlQuraCalendar
                    @param year {CDate|number} The date to convert or the year to convert.
                    @param [month] {number} The month to convert.
                    @param [day] {number} The day to convert.
                    @return {number} The equivalent Julian date.
                    @throws Error if an invalid date or a different calendar used. */
                toJD: function(u, c, d) {
                  var h = this._validate(u, c, d, a.local.invalidDate), i = 12 * (h.year() - 1) + h.month() - 15292, b = h.day() + f[i - 1] - 1;
                  return b + 24e5 - 0.5;
                },
                /** Create a new date from a Julian date.
                    @memberof UmmAlQuraCalendar
                    @param jd {number} The Julian date to convert.
                    @return {CDate} The equivalent date. */
                fromJD: function(u) {
                  for (var c = u - 24e5 + 0.5, d = 0, h = 0; h < f.length && !(f[h] > c); h++)
                    d++;
                  var i = d + 15292, b = Math.floor((i - 1) / 12), x = b + 1, D = i - 12 * b, C = c - f[d - 1] + 1;
                  return this.newDate(x, D, C);
                },
                /** Determine whether a date is valid for this calendar.
                    @memberof UmmAlQuraCalendar
                    @param year {number} The year to examine.
                    @param month {number} The month to examine.
                    @param day {number} The day to examine.
                    @return {boolean} <code>true</code> if a valid date, <code>false</code> if not. */
                isValid: function(u, c, d) {
                  var h = a.baseCalendar.prototype.isValid.apply(this, arguments);
                  return h && (u = u.year != null ? u.year : u, h = u >= 1276 && u <= 1500), h;
                },
                /** Check that a candidate date is from the same calendar and is valid.
                    @memberof UmmAlQuraCalendar
                    @private
                    @param year {CDate|number} The date to validate or the year to validate.
                    @param month {number} The month to validate.
                    @param day {number} The day to validate.
                    @param error {string} Error message if invalid.
                    @throws Error if different calendars used or invalid date. */
                _validate: function(u, c, d, h) {
                  var i = a.baseCalendar.prototype._validate.apply(this, arguments);
                  if (i.year < 1276 || i.year > 1500)
                    throw h.replace(/\{0\}/, this.local.name);
                  return i;
                }
              }), a.calendars.ummalqura = l;
              var f = [
                20,
                50,
                79,
                109,
                138,
                168,
                197,
                227,
                256,
                286,
                315,
                345,
                374,
                404,
                433,
                463,
                492,
                522,
                551,
                581,
                611,
                641,
                670,
                700,
                729,
                759,
                788,
                818,
                847,
                877,
                906,
                936,
                965,
                995,
                1024,
                1054,
                1083,
                1113,
                1142,
                1172,
                1201,
                1231,
                1260,
                1290,
                1320,
                1350,
                1379,
                1409,
                1438,
                1468,
                1497,
                1527,
                1556,
                1586,
                1615,
                1645,
                1674,
                1704,
                1733,
                1763,
                1792,
                1822,
                1851,
                1881,
                1910,
                1940,
                1969,
                1999,
                2028,
                2058,
                2087,
                2117,
                2146,
                2176,
                2205,
                2235,
                2264,
                2294,
                2323,
                2353,
                2383,
                2413,
                2442,
                2472,
                2501,
                2531,
                2560,
                2590,
                2619,
                2649,
                2678,
                2708,
                2737,
                2767,
                2796,
                2826,
                2855,
                2885,
                2914,
                2944,
                2973,
                3003,
                3032,
                3062,
                3091,
                3121,
                3150,
                3180,
                3209,
                3239,
                3268,
                3298,
                3327,
                3357,
                3386,
                3416,
                3446,
                3476,
                3505,
                3535,
                3564,
                3594,
                3623,
                3653,
                3682,
                3712,
                3741,
                3771,
                3800,
                3830,
                3859,
                3889,
                3918,
                3948,
                3977,
                4007,
                4036,
                4066,
                4095,
                4125,
                4155,
                4185,
                4214,
                4244,
                4273,
                4303,
                4332,
                4362,
                4391,
                4421,
                4450,
                4480,
                4509,
                4539,
                4568,
                4598,
                4627,
                4657,
                4686,
                4716,
                4745,
                4775,
                4804,
                4834,
                4863,
                4893,
                4922,
                4952,
                4981,
                5011,
                5040,
                5070,
                5099,
                5129,
                5158,
                5188,
                5218,
                5248,
                5277,
                5307,
                5336,
                5366,
                5395,
                5425,
                5454,
                5484,
                5513,
                5543,
                5572,
                5602,
                5631,
                5661,
                5690,
                5720,
                5749,
                5779,
                5808,
                5838,
                5867,
                5897,
                5926,
                5956,
                5985,
                6015,
                6044,
                6074,
                6103,
                6133,
                6162,
                6192,
                6221,
                6251,
                6281,
                6311,
                6340,
                6370,
                6399,
                6429,
                6458,
                6488,
                6517,
                6547,
                6576,
                6606,
                6635,
                6665,
                6694,
                6724,
                6753,
                6783,
                6812,
                6842,
                6871,
                6901,
                6930,
                6960,
                6989,
                7019,
                7048,
                7078,
                7107,
                7137,
                7166,
                7196,
                7225,
                7255,
                7284,
                7314,
                7344,
                7374,
                7403,
                7433,
                7462,
                7492,
                7521,
                7551,
                7580,
                7610,
                7639,
                7669,
                7698,
                7728,
                7757,
                7787,
                7816,
                7846,
                7875,
                7905,
                7934,
                7964,
                7993,
                8023,
                8053,
                8083,
                8112,
                8142,
                8171,
                8201,
                8230,
                8260,
                8289,
                8319,
                8348,
                8378,
                8407,
                8437,
                8466,
                8496,
                8525,
                8555,
                8584,
                8614,
                8643,
                8673,
                8702,
                8732,
                8761,
                8791,
                8821,
                8850,
                8880,
                8909,
                8938,
                8968,
                8997,
                9027,
                9056,
                9086,
                9115,
                9145,
                9175,
                9205,
                9234,
                9264,
                9293,
                9322,
                9352,
                9381,
                9410,
                9440,
                9470,
                9499,
                9529,
                9559,
                9589,
                9618,
                9648,
                9677,
                9706,
                9736,
                9765,
                9794,
                9824,
                9853,
                9883,
                9913,
                9943,
                9972,
                10002,
                10032,
                10061,
                10090,
                10120,
                10149,
                10178,
                10208,
                10237,
                10267,
                10297,
                10326,
                10356,
                10386,
                10415,
                10445,
                10474,
                10504,
                10533,
                10562,
                10592,
                10621,
                10651,
                10680,
                10710,
                10740,
                10770,
                10799,
                10829,
                10858,
                10888,
                10917,
                10947,
                10976,
                11005,
                11035,
                11064,
                11094,
                11124,
                11153,
                11183,
                11213,
                11242,
                11272,
                11301,
                11331,
                11360,
                11389,
                11419,
                11448,
                11478,
                11507,
                11537,
                11567,
                11596,
                11626,
                11655,
                11685,
                11715,
                11744,
                11774,
                11803,
                11832,
                11862,
                11891,
                11921,
                11950,
                11980,
                12010,
                12039,
                12069,
                12099,
                12128,
                12158,
                12187,
                12216,
                12246,
                12275,
                12304,
                12334,
                12364,
                12393,
                12423,
                12453,
                12483,
                12512,
                12542,
                12571,
                12600,
                12630,
                12659,
                12688,
                12718,
                12747,
                12777,
                12807,
                12837,
                12866,
                12896,
                12926,
                12955,
                12984,
                13014,
                13043,
                13072,
                13102,
                13131,
                13161,
                13191,
                13220,
                13250,
                13280,
                13310,
                13339,
                13368,
                13398,
                13427,
                13456,
                13486,
                13515,
                13545,
                13574,
                13604,
                13634,
                13664,
                13693,
                13723,
                13752,
                13782,
                13811,
                13840,
                13870,
                13899,
                13929,
                13958,
                13988,
                14018,
                14047,
                14077,
                14107,
                14136,
                14166,
                14195,
                14224,
                14254,
                14283,
                14313,
                14342,
                14372,
                14401,
                14431,
                14461,
                14490,
                14520,
                14550,
                14579,
                14609,
                14638,
                14667,
                14697,
                14726,
                14756,
                14785,
                14815,
                14844,
                14874,
                14904,
                14933,
                14963,
                14993,
                15021,
                15051,
                15081,
                15110,
                15140,
                15169,
                15199,
                15228,
                15258,
                15287,
                15317,
                15347,
                15377,
                15406,
                15436,
                15465,
                15494,
                15524,
                15553,
                15582,
                15612,
                15641,
                15671,
                15701,
                15731,
                15760,
                15790,
                15820,
                15849,
                15878,
                15908,
                15937,
                15966,
                15996,
                16025,
                16055,
                16085,
                16114,
                16144,
                16174,
                16204,
                16233,
                16262,
                16292,
                16321,
                16350,
                16380,
                16409,
                16439,
                16468,
                16498,
                16528,
                16558,
                16587,
                16617,
                16646,
                16676,
                16705,
                16734,
                16764,
                16793,
                16823,
                16852,
                16882,
                16912,
                16941,
                16971,
                17001,
                17030,
                17060,
                17089,
                17118,
                17148,
                17177,
                17207,
                17236,
                17266,
                17295,
                17325,
                17355,
                17384,
                17414,
                17444,
                17473,
                17502,
                17532,
                17561,
                17591,
                17620,
                17650,
                17679,
                17709,
                17738,
                17768,
                17798,
                17827,
                17857,
                17886,
                17916,
                17945,
                17975,
                18004,
                18034,
                18063,
                18093,
                18122,
                18152,
                18181,
                18211,
                18241,
                18270,
                18300,
                18330,
                18359,
                18388,
                18418,
                18447,
                18476,
                18506,
                18535,
                18565,
                18595,
                18625,
                18654,
                18684,
                18714,
                18743,
                18772,
                18802,
                18831,
                18860,
                18890,
                18919,
                18949,
                18979,
                19008,
                19038,
                19068,
                19098,
                19127,
                19156,
                19186,
                19215,
                19244,
                19274,
                19303,
                19333,
                19362,
                19392,
                19422,
                19452,
                19481,
                19511,
                19540,
                19570,
                19599,
                19628,
                19658,
                19687,
                19717,
                19746,
                19776,
                19806,
                19836,
                19865,
                19895,
                19924,
                19954,
                19983,
                20012,
                20042,
                20071,
                20101,
                20130,
                20160,
                20190,
                20219,
                20249,
                20279,
                20308,
                20338,
                20367,
                20396,
                20426,
                20455,
                20485,
                20514,
                20544,
                20573,
                20603,
                20633,
                20662,
                20692,
                20721,
                20751,
                20780,
                20810,
                20839,
                20869,
                20898,
                20928,
                20957,
                20987,
                21016,
                21046,
                21076,
                21105,
                21135,
                21164,
                21194,
                21223,
                21253,
                21282,
                21312,
                21341,
                21371,
                21400,
                21430,
                21459,
                21489,
                21519,
                21548,
                21578,
                21607,
                21637,
                21666,
                21696,
                21725,
                21754,
                21784,
                21813,
                21843,
                21873,
                21902,
                21932,
                21962,
                21991,
                22021,
                22050,
                22080,
                22109,
                22138,
                22168,
                22197,
                22227,
                22256,
                22286,
                22316,
                22346,
                22375,
                22405,
                22434,
                22464,
                22493,
                22522,
                22552,
                22581,
                22611,
                22640,
                22670,
                22700,
                22730,
                22759,
                22789,
                22818,
                22848,
                22877,
                22906,
                22936,
                22965,
                22994,
                23024,
                23054,
                23083,
                23113,
                23143,
                23173,
                23202,
                23232,
                23261,
                23290,
                23320,
                23349,
                23379,
                23408,
                23438,
                23467,
                23497,
                23527,
                23556,
                23586,
                23616,
                23645,
                23674,
                23704,
                23733,
                23763,
                23792,
                23822,
                23851,
                23881,
                23910,
                23940,
                23970,
                23999,
                24029,
                24058,
                24088,
                24117,
                24147,
                24176,
                24206,
                24235,
                24265,
                24294,
                24324,
                24353,
                24383,
                24413,
                24442,
                24472,
                24501,
                24531,
                24560,
                24590,
                24619,
                24648,
                24678,
                24707,
                24737,
                24767,
                24796,
                24826,
                24856,
                24885,
                24915,
                24944,
                24974,
                25003,
                25032,
                25062,
                25091,
                25121,
                25150,
                25180,
                25210,
                25240,
                25269,
                25299,
                25328,
                25358,
                25387,
                25416,
                25446,
                25475,
                25505,
                25534,
                25564,
                25594,
                25624,
                25653,
                25683,
                25712,
                25742,
                25771,
                25800,
                25830,
                25859,
                25888,
                25918,
                25948,
                25977,
                26007,
                26037,
                26067,
                26096,
                26126,
                26155,
                26184,
                26214,
                26243,
                26272,
                26302,
                26332,
                26361,
                26391,
                26421,
                26451,
                26480,
                26510,
                26539,
                26568,
                26598,
                26627,
                26656,
                26686,
                26715,
                26745,
                26775,
                26805,
                26834,
                26864,
                26893,
                26923,
                26952,
                26982,
                27011,
                27041,
                27070,
                27099,
                27129,
                27159,
                27188,
                27218,
                27248,
                27277,
                27307,
                27336,
                27366,
                27395,
                27425,
                27454,
                27484,
                27513,
                27542,
                27572,
                27602,
                27631,
                27661,
                27691,
                27720,
                27750,
                27779,
                27809,
                27838,
                27868,
                27897,
                27926,
                27956,
                27985,
                28015,
                28045,
                28074,
                28104,
                28134,
                28163,
                28193,
                28222,
                28252,
                28281,
                28310,
                28340,
                28369,
                28399,
                28428,
                28458,
                28488,
                28517,
                28547,
                28577,
                // From 1356
                28607,
                28636,
                28665,
                28695,
                28724,
                28754,
                28783,
                28813,
                28843,
                28872,
                28901,
                28931,
                28960,
                28990,
                29019,
                29049,
                29078,
                29108,
                29137,
                29167,
                29196,
                29226,
                29255,
                29285,
                29315,
                29345,
                29375,
                29404,
                29434,
                29463,
                29492,
                29522,
                29551,
                29580,
                29610,
                29640,
                29669,
                29699,
                29729,
                29759,
                29788,
                29818,
                29847,
                29876,
                29906,
                29935,
                29964,
                29994,
                30023,
                30053,
                30082,
                30112,
                30141,
                30171,
                30200,
                30230,
                30259,
                30289,
                30318,
                30348,
                30378,
                30408,
                30437,
                30467,
                30496,
                30526,
                30555,
                30585,
                30614,
                30644,
                30673,
                30703,
                30732,
                30762,
                30791,
                30821,
                30850,
                30880,
                30909,
                30939,
                30968,
                30998,
                31027,
                31057,
                31086,
                31116,
                31145,
                31175,
                31204,
                31234,
                31263,
                31293,
                31322,
                31352,
                31381,
                31411,
                31441,
                31471,
                31500,
                31530,
                31559,
                31589,
                31618,
                31648,
                31676,
                31706,
                31736,
                31766,
                31795,
                31825,
                31854,
                31884,
                31913,
                31943,
                31972,
                32002,
                32031,
                32061,
                32090,
                32120,
                32150,
                32180,
                32209,
                32239,
                32268,
                32298,
                32327,
                32357,
                32386,
                32416,
                32445,
                32475,
                32504,
                32534,
                32563,
                32593,
                32622,
                32652,
                32681,
                32711,
                32740,
                32770,
                32799,
                32829,
                32858,
                32888,
                32917,
                32947,
                32976,
                33006,
                33035,
                33065,
                33094,
                33124,
                33153,
                33183,
                33213,
                33243,
                33272,
                33302,
                33331,
                33361,
                33390,
                33420,
                33450,
                33479,
                33509,
                33539,
                33568,
                33598,
                33627,
                33657,
                33686,
                33716,
                33745,
                33775,
                33804,
                33834,
                33863,
                33893,
                33922,
                33952,
                33981,
                34011,
                34040,
                34069,
                34099,
                34128,
                34158,
                34187,
                34217,
                34247,
                34277,
                34306,
                34336,
                34365,
                34395,
                34424,
                34454,
                34483,
                34512,
                34542,
                34571,
                34601,
                34631,
                34660,
                34690,
                34719,
                34749,
                34778,
                34808,
                34837,
                34867,
                34896,
                34926,
                34955,
                34985,
                35015,
                35044,
                35074,
                35103,
                35133,
                35162,
                35192,
                35222,
                35251,
                35280,
                35310,
                35340,
                35370,
                35399,
                35429,
                35458,
                35488,
                35517,
                35547,
                35576,
                35605,
                35635,
                35665,
                35694,
                35723,
                35753,
                35782,
                35811,
                35841,
                35871,
                35901,
                35930,
                35960,
                35989,
                36019,
                36048,
                36078,
                36107,
                36136,
                36166,
                36195,
                36225,
                36254,
                36284,
                36314,
                36343,
                36373,
                36403,
                36433,
                36462,
                36492,
                36521,
                36551,
                36580,
                36610,
                36639,
                36669,
                36698,
                36728,
                36757,
                36786,
                36816,
                36845,
                36875,
                36904,
                36934,
                36963,
                36993,
                37022,
                37052,
                37081,
                37111,
                37141,
                37170,
                37200,
                37229,
                37259,
                37288,
                37318,
                37347,
                37377,
                37406,
                37436,
                37465,
                37495,
                37524,
                37554,
                37584,
                37613,
                37643,
                37672,
                37701,
                37731,
                37760,
                37790,
                37819,
                37849,
                37878,
                37908,
                37938,
                37967,
                37997,
                38027,
                38056,
                38085,
                38115,
                38144,
                38174,
                38203,
                38233,
                38262,
                38292,
                38322,
                38351,
                38381,
                38410,
                38440,
                38469,
                38499,
                38528,
                38558,
                38587,
                38617,
                38646,
                38676,
                38705,
                38735,
                38764,
                38794,
                38823,
                38853,
                38882,
                38912,
                38941,
                38971,
                39001,
                39030,
                39059,
                39089,
                39118,
                39148,
                39178,
                39208,
                39237,
                39267,
                39297,
                39326,
                39355,
                39385,
                39414,
                39444,
                39473,
                39503,
                39532,
                39562,
                39592,
                39621,
                39650,
                39680,
                39709,
                39739,
                39768,
                39798,
                39827,
                39857,
                39886,
                39916,
                39946,
                39975,
                40005,
                40035,
                40064,
                40094,
                40123,
                40153,
                40182,
                40212,
                40241,
                40271,
                40300,
                40330,
                40359,
                40389,
                40418,
                40448,
                40477,
                40507,
                40536,
                40566,
                40595,
                40625,
                40655,
                40685,
                40714,
                40744,
                40773,
                40803,
                40832,
                40862,
                40892,
                40921,
                40951,
                40980,
                41009,
                41039,
                41068,
                41098,
                41127,
                41157,
                41186,
                41216,
                41245,
                41275,
                41304,
                41334,
                41364,
                41393,
                41422,
                41452,
                41481,
                41511,
                41540,
                41570,
                41599,
                41629,
                41658,
                41688,
                41718,
                41748,
                41777,
                41807,
                41836,
                41865,
                41894,
                41924,
                41953,
                41983,
                42012,
                42042,
                42072,
                42102,
                42131,
                42161,
                42190,
                42220,
                42249,
                42279,
                42308,
                42337,
                42367,
                42397,
                42426,
                42456,
                42485,
                42515,
                42545,
                42574,
                42604,
                42633,
                42662,
                42692,
                42721,
                42751,
                42780,
                42810,
                42839,
                42869,
                42899,
                42929,
                42958,
                42988,
                43017,
                43046,
                43076,
                43105,
                43135,
                43164,
                43194,
                43223,
                43253,
                43283,
                43312,
                43342,
                43371,
                43401,
                43430,
                43460,
                43489,
                43519,
                43548,
                43578,
                43607,
                43637,
                43666,
                43696,
                43726,
                43755,
                43785,
                43814,
                43844,
                43873,
                43903,
                43932,
                43962,
                43991,
                44021,
                44050,
                44080,
                44109,
                44139,
                44169,
                44198,
                44228,
                44258,
                44287,
                44317,
                44346,
                44375,
                44405,
                44434,
                44464,
                44493,
                44523,
                44553,
                44582,
                44612,
                44641,
                44671,
                44700,
                44730,
                44759,
                44788,
                44818,
                44847,
                44877,
                44906,
                44936,
                44966,
                44996,
                45025,
                45055,
                45084,
                45114,
                45143,
                45172,
                45202,
                45231,
                45261,
                45290,
                45320,
                45350,
                45380,
                45409,
                45439,
                45468,
                45498,
                45527,
                45556,
                45586,
                45615,
                45644,
                45674,
                45704,
                45733,
                45763,
                45793,
                45823,
                45852,
                45882,
                45911,
                45940,
                45970,
                45999,
                46028,
                46058,
                46088,
                46117,
                46147,
                46177,
                46206,
                46236,
                46265,
                46295,
                46324,
                46354,
                46383,
                46413,
                46442,
                46472,
                46501,
                46531,
                46560,
                46590,
                46620,
                46649,
                46679,
                46708,
                46738,
                46767,
                46797,
                46826,
                46856,
                46885,
                46915,
                46944,
                46974,
                47003,
                47033,
                47063,
                47092,
                47122,
                47151,
                47181,
                47210,
                47240,
                47269,
                47298,
                47328,
                47357,
                47387,
                47417,
                47446,
                47476,
                47506,
                47535,
                47565,
                47594,
                47624,
                47653,
                47682,
                47712,
                47741,
                47771,
                47800,
                47830,
                47860,
                47890,
                47919,
                47949,
                47978,
                48008,
                48037,
                48066,
                48096,
                48125,
                48155,
                48184,
                48214,
                48244,
                48273,
                48303,
                48333,
                48362,
                48392,
                48421,
                48450,
                48480,
                48509,
                48538,
                48568,
                48598,
                48627,
                48657,
                48687,
                48717,
                48746,
                48776,
                48805,
                48834,
                48864,
                48893,
                48922,
                48952,
                48982,
                49011,
                49041,
                49071,
                49100,
                49130,
                49160,
                49189,
                49218,
                49248,
                49277,
                49306,
                49336,
                49365,
                49395,
                49425,
                49455,
                49484,
                49514,
                49543,
                49573,
                49602,
                49632,
                49661,
                49690,
                49720,
                49749,
                49779,
                49809,
                49838,
                49868,
                49898,
                49927,
                49957,
                49986,
                50016,
                50045,
                50075,
                50104,
                50133,
                50163,
                50192,
                50222,
                50252,
                50281,
                50311,
                50340,
                50370,
                50400,
                50429,
                50459,
                50488,
                50518,
                50547,
                50576,
                50606,
                50635,
                50665,
                50694,
                50724,
                50754,
                50784,
                50813,
                50843,
                50872,
                50902,
                50931,
                50960,
                50990,
                51019,
                51049,
                51078,
                51108,
                51138,
                51167,
                51197,
                51227,
                51256,
                51286,
                51315,
                51345,
                51374,
                51403,
                51433,
                51462,
                51492,
                51522,
                51552,
                51582,
                51611,
                51641,
                51670,
                51699,
                51729,
                51758,
                51787,
                51816,
                51846,
                51876,
                51906,
                51936,
                51965,
                51995,
                52025,
                52054,
                52083,
                52113,
                52142,
                52171,
                52200,
                52230,
                52260,
                52290,
                52319,
                52349,
                52379,
                52408,
                52438,
                52467,
                52497,
                52526,
                52555,
                52585,
                52614,
                52644,
                52673,
                52703,
                52733,
                52762,
                52792,
                52822,
                52851,
                52881,
                52910,
                52939,
                52969,
                52998,
                53028,
                53057,
                53087,
                53116,
                53146,
                53176,
                53205,
                53235,
                53264,
                53294,
                53324,
                53353,
                53383,
                53412,
                53441,
                53471,
                53500,
                53530,
                53559,
                53589,
                53619,
                53648,
                53678,
                53708,
                53737,
                53767,
                53796,
                53825,
                53855,
                53884,
                53913,
                53943,
                53973,
                54003,
                54032,
                54062,
                54092,
                54121,
                54151,
                54180,
                54209,
                54239,
                54268,
                54297,
                54327,
                54357,
                54387,
                54416,
                54446,
                54476,
                54505,
                54535,
                54564,
                54593,
                54623,
                54652,
                54681,
                54711,
                54741,
                54770,
                54800,
                54830,
                54859,
                54889,
                54919,
                54948,
                54977,
                55007,
                55036,
                55066,
                55095,
                55125,
                55154,
                55184,
                55213,
                55243,
                55273,
                55302,
                55332,
                55361,
                55391,
                55420,
                55450,
                55479,
                55508,
                55538,
                55567,
                55597,
                55627,
                55657,
                55686,
                55716,
                55745,
                55775,
                55804,
                55834,
                55863,
                55892,
                55922,
                55951,
                55981,
                56011,
                56040,
                56070,
                56100,
                56129,
                56159,
                56188,
                56218,
                56247,
                56276,
                56306,
                56335,
                56365,
                56394,
                56424,
                56454,
                56483,
                56513,
                56543,
                56572,
                56601,
                56631,
                56660,
                56690,
                56719,
                56749,
                56778,
                56808,
                56837,
                56867,
                56897,
                56926,
                56956,
                56985,
                57015,
                57044,
                57074,
                57103,
                57133,
                57162,
                57192,
                57221,
                57251,
                57280,
                57310,
                57340,
                57369,
                57399,
                57429,
                57458,
                57487,
                57517,
                57546,
                57576,
                57605,
                57634,
                57664,
                57694,
                57723,
                57753,
                57783,
                57813,
                57842,
                57871,
                57901,
                57930,
                57959,
                57989,
                58018,
                58048,
                58077,
                58107,
                58137,
                58167,
                58196,
                58226,
                58255,
                58285,
                58314,
                58343,
                58373,
                58402,
                58432,
                58461,
                58491,
                58521,
                58551,
                58580,
                58610,
                58639,
                58669,
                58698,
                58727,
                58757,
                58786,
                58816,
                58845,
                58875,
                58905,
                58934,
                58964,
                58994,
                59023,
                59053,
                59082,
                59111,
                59141,
                59170,
                59200,
                59229,
                59259,
                59288,
                59318,
                59348,
                59377,
                59407,
                59436,
                59466,
                59495,
                59525,
                59554,
                59584,
                59613,
                59643,
                59672,
                59702,
                59731,
                59761,
                59791,
                59820,
                59850,
                59879,
                59909,
                59939,
                59968,
                59997,
                60027,
                60056,
                60086,
                60115,
                60145,
                60174,
                60204,
                60234,
                60264,
                60293,
                60323,
                60352,
                60381,
                60411,
                60440,
                60469,
                60499,
                60528,
                60558,
                60588,
                60618,
                60648,
                60677,
                60707,
                60736,
                60765,
                60795,
                60824,
                60853,
                60883,
                60912,
                60942,
                60972,
                61002,
                61031,
                61061,
                61090,
                61120,
                61149,
                61179,
                61208,
                61237,
                61267,
                61296,
                61326,
                61356,
                61385,
                61415,
                61445,
                61474,
                61504,
                61533,
                61563,
                61592,
                61621,
                61651,
                61680,
                61710,
                61739,
                61769,
                61799,
                61828,
                61858,
                61888,
                61917,
                61947,
                61976,
                62006,
                62035,
                62064,
                62094,
                62123,
                62153,
                62182,
                62212,
                62242,
                62271,
                62301,
                62331,
                62360,
                62390,
                62419,
                62448,
                62478,
                62507,
                62537,
                62566,
                62596,
                62625,
                62655,
                62685,
                62715,
                62744,
                62774,
                62803,
                62832,
                62862,
                62891,
                62921,
                62950,
                62980,
                63009,
                63039,
                63069,
                63099,
                63128,
                63157,
                63187,
                63216,
                63246,
                63275,
                63305,
                63334,
                63363,
                63393,
                63423,
                63453,
                63482,
                63512,
                63541,
                63571,
                63600,
                63630,
                63659,
                63689,
                63718,
                63747,
                63777,
                63807,
                63836,
                63866,
                63895,
                63925,
                63955,
                63984,
                64014,
                64043,
                64073,
                64102,
                64131,
                64161,
                64190,
                64220,
                64249,
                64279,
                64309,
                64339,
                64368,
                64398,
                64427,
                64457,
                64486,
                64515,
                64545,
                64574,
                64603,
                64633,
                64663,
                64692,
                64722,
                64752,
                64782,
                64811,
                64841,
                64870,
                64899,
                64929,
                64958,
                64987,
                65017,
                65047,
                65076,
                65106,
                65136,
                65166,
                65195,
                65225,
                65254,
                65283,
                65313,
                65342,
                65371,
                65401,
                65431,
                65460,
                65490,
                65520,
                65549,
                65579,
                65608,
                65638,
                65667,
                65697,
                65726,
                65755,
                65785,
                65815,
                65844,
                65874,
                65903,
                65933,
                65963,
                65992,
                66022,
                66051,
                66081,
                66110,
                66140,
                66169,
                66199,
                66228,
                66258,
                66287,
                66317,
                66346,
                66376,
                66405,
                66435,
                66465,
                66494,
                66524,
                66553,
                66583,
                66612,
                66641,
                66671,
                66700,
                66730,
                66760,
                66789,
                66819,
                66849,
                66878,
                66908,
                66937,
                66967,
                66996,
                67025,
                67055,
                67084,
                67114,
                67143,
                67173,
                67203,
                67233,
                67262,
                67292,
                67321,
                67351,
                67380,
                67409,
                67439,
                67468,
                67497,
                67527,
                67557,
                67587,
                67617,
                67646,
                67676,
                67705,
                67735,
                67764,
                67793,
                67823,
                67852,
                67882,
                67911,
                67941,
                67971,
                68e3,
                68030,
                68060,
                68089,
                68119,
                68148,
                68177,
                68207,
                68236,
                68266,
                68295,
                68325,
                68354,
                68384,
                68414,
                68443,
                68473,
                68502,
                68532,
                68561,
                68591,
                68620,
                68650,
                68679,
                68708,
                68738,
                68768,
                68797,
                68827,
                68857,
                68886,
                68916,
                68946,
                68975,
                69004,
                69034,
                69063,
                69092,
                69122,
                69152,
                69181,
                69211,
                69240,
                69270,
                69300,
                69330,
                69359,
                69388,
                69418,
                69447,
                69476,
                69506,
                69535,
                69565,
                69595,
                69624,
                69654,
                69684,
                69713,
                69743,
                69772,
                69802,
                69831,
                69861,
                69890,
                69919,
                69949,
                69978,
                70008,
                70038,
                70067,
                70097,
                70126,
                70156,
                70186,
                70215,
                70245,
                70274,
                70303,
                70333,
                70362,
                70392,
                70421,
                70451,
                70481,
                70510,
                70540,
                70570,
                70599,
                70629,
                70658,
                70687,
                70717,
                70746,
                70776,
                70805,
                70835,
                70864,
                70894,
                70924,
                70954,
                70983,
                71013,
                71042,
                71071,
                71101,
                71130,
                71159,
                71189,
                71218,
                71248,
                71278,
                71308,
                71337,
                71367,
                71397,
                71426,
                71455,
                71485,
                71514,
                71543,
                71573,
                71602,
                71632,
                71662,
                71691,
                71721,
                71751,
                71781,
                71810,
                71839,
                71869,
                71898,
                71927,
                71957,
                71986,
                72016,
                72046,
                72075,
                72105,
                72135,
                72164,
                72194,
                72223,
                72253,
                72282,
                72311,
                72341,
                72370,
                72400,
                72429,
                72459,
                72489,
                72518,
                72548,
                72577,
                72607,
                72637,
                72666,
                72695,
                72725,
                72754,
                72784,
                72813,
                72843,
                72872,
                72902,
                72931,
                72961,
                72991,
                73020,
                73050,
                73080,
                73109,
                73139,
                73168,
                73197,
                73227,
                73256,
                73286,
                73315,
                73345,
                73375,
                73404,
                73434,
                73464,
                73493,
                73523,
                73552,
                73581,
                73611,
                73640,
                73669,
                73699,
                73729,
                73758,
                73788,
                73818,
                73848,
                73877,
                73907,
                73936,
                73965,
                73995,
                74024,
                74053,
                74083,
                74113,
                74142,
                74172,
                74202,
                74231,
                74261,
                74291,
                74320,
                74349,
                74379,
                74408,
                74437,
                74467,
                74497,
                74526,
                74556,
                74586,
                74615,
                74645,
                74675,
                74704,
                74733,
                74763,
                74792,
                74822,
                74851,
                74881,
                74910,
                74940,
                74969,
                74999,
                75029,
                75058,
                75088,
                75117,
                75147,
                75176,
                75206,
                75235,
                75264,
                75294,
                75323,
                75353,
                75383,
                75412,
                75442,
                75472,
                75501,
                75531,
                75560,
                75590,
                75619,
                75648,
                75678,
                75707,
                75737,
                75766,
                75796,
                75826,
                75856,
                75885,
                75915,
                75944,
                75974,
                76003,
                76032,
                76062,
                76091,
                76121,
                76150,
                76180,
                76210,
                76239,
                76269,
                76299,
                76328,
                76358,
                76387,
                76416,
                76446,
                76475,
                76505,
                76534,
                76564,
                76593,
                76623,
                76653,
                76682,
                76712,
                76741,
                76771,
                76801,
                76830,
                76859,
                76889,
                76918,
                76948,
                76977,
                77007,
                77036,
                77066,
                77096,
                77125,
                77155,
                77185,
                77214,
                77243,
                77273,
                77302,
                77332,
                77361,
                77390,
                77420,
                77450,
                77479,
                77509,
                77539,
                77569,
                77598,
                77627,
                77657,
                77686,
                77715,
                77745,
                77774,
                77804,
                77833,
                77863,
                77893,
                77923,
                77952,
                77982,
                78011,
                78041,
                78070,
                78099,
                78129,
                78158,
                78188,
                78217,
                78247,
                78277,
                78307,
                78336,
                78366,
                78395,
                78425,
                78454,
                78483,
                78513,
                78542,
                78572,
                78601,
                78631,
                78661,
                78690,
                78720,
                78750,
                78779,
                78808,
                78838,
                78867,
                78897,
                78926,
                78956,
                78985,
                79015,
                79044,
                79074,
                79104,
                79133,
                79163,
                79192,
                79222,
                79251,
                79281,
                79310,
                79340,
                79369,
                79399,
                79428,
                79458,
                79487,
                79517,
                79546,
                79576,
                79606,
                79635,
                79665,
                79695,
                79724,
                79753,
                79783,
                79812,
                79841,
                79871,
                79900,
                79930,
                79960,
                79990
              ];
            }
          ),
          /***/
          8700: (
            /***/
            function(M, L, r) {
              var a = r(896);
              function p() {
                this.regionalOptions = [], this.regionalOptions[""] = {
                  invalidCalendar: "Calendar {0} not found",
                  invalidDate: "Invalid {0} date",
                  invalidMonth: "Invalid {0} month",
                  invalidYear: "Invalid {0} year",
                  differentCalendars: "Cannot mix {0} and {1} dates"
                }, this.local = this.regionalOptions[""], this.calendars = {}, this._localCals = {};
              }
              a(p.prototype, {
                /** Obtain a calendar implementation and localisation.
                    @memberof Calendars
                    @param [name='gregorian'] {string} The name of the calendar, e.g. 'gregorian', 'persian', 'islamic'.
                    @param [language=''] {string} The language code to use for localisation (default is English).
                    @return {Calendar} The calendar and localisation.
                    @throws Error if calendar not found. */
                instance: function(h, i) {
                  h = (h || "gregorian").toLowerCase(), i = i || "";
                  var b = this._localCals[h + "-" + i];
                  if (!b && this.calendars[h] && (b = new this.calendars[h](i), this._localCals[h + "-" + i] = b), !b)
                    throw (this.local.invalidCalendar || this.regionalOptions[""].invalidCalendar).replace(/\{0\}/, h);
                  return b;
                },
                /** Create a new date - for today if no other parameters given.
                    @memberof Calendars
                    @param year {CDate|number} The date to copy or the year for the date.
                    @param [month] {number} The month for the date.
                    @param [day] {number} The day for the date.
                    @param [calendar='gregorian'] {BaseCalendar|string} The underlying calendar or the name of the calendar.
                    @param [language=''] {string} The language to use for localisation (default English).
                    @return {CDate} The new date.
                    @throws Error if an invalid date. */
                newDate: function(h, i, b, x, D) {
                  return x = (h != null && h.year ? h.calendar() : typeof x == "string" ? this.instance(x, D) : x) || this.instance(), x.newDate(h, i, b);
                },
                /** A simple digit substitution function for localising numbers via the Calendar digits option.
                    @member Calendars
                    @param digits {string[]} The substitute digits, for 0 through 9.
                    @return {function} The substitution function. */
                substituteDigits: function(h) {
                  return function(i) {
                    return (i + "").replace(/[0-9]/g, function(b) {
                      return h[b];
                    });
                  };
                },
                /** Digit substitution function for localising Chinese style numbers via the Calendar digits option.
                    @member Calendars
                    @param digits {string[]} The substitute digits, for 0 through 9.
                    @param powers {string[]} The characters denoting powers of 10, i.e. 1, 10, 100, 1000.
                    @return {function} The substitution function. */
                substituteChineseDigits: function(h, i) {
                  return function(b) {
                    for (var x = "", D = 0; b > 0; ) {
                      var C = b % 10;
                      x = (C === 0 ? "" : h[C] + i[D]) + x, D++, b = Math.floor(b / 10);
                    }
                    return x.indexOf(h[1] + i[1]) === 0 && (x = x.substr(1)), x || h[0];
                  };
                }
              });
              function l(h, i, b, x) {
                if (this._calendar = h, this._year = i, this._month = b, this._day = x, this._calendar._validateLevel === 0 && !this._calendar.isValid(this._year, this._month, this._day))
                  throw (d.local.invalidDate || d.regionalOptions[""].invalidDate).replace(/\{0\}/, this._calendar.local.name);
              }
              function f(h, i) {
                return h = "" + h, "000000".substring(0, i - h.length) + h;
              }
              a(l.prototype, {
                /** Create a new date.
                    @memberof CDate
                    @param [year] {CDate|number} The date to copy or the year for the date (default this date).
                    @param [month] {number} The month for the date.
                    @param [day] {number} The day for the date.
                    @return {CDate} The new date.
                    @throws Error if an invalid date. */
                newDate: function(h, i, b) {
                  return this._calendar.newDate(h ?? this, i, b);
                },
                /** Set or retrieve the year for this date.
                    @memberof CDate
                    @param [year] {number} The year for the date.
                    @return {number|CDate} The date's year (if no parameter) or the updated date.
                    @throws Error if an invalid date. */
                year: function(h) {
                  return arguments.length === 0 ? this._year : this.set(h, "y");
                },
                /** Set or retrieve the month for this date.
                    @memberof CDate
                    @param [month] {number} The month for the date.
                    @return {number|CDate} The date's month (if no parameter) or the updated date.
                    @throws Error if an invalid date. */
                month: function(h) {
                  return arguments.length === 0 ? this._month : this.set(h, "m");
                },
                /** Set or retrieve the day for this date.
                    @memberof CDate
                    @param [day] {number} The day for the date.
                    @return {number|CData} The date's day (if no parameter) or the updated date.
                    @throws Error if an invalid date. */
                day: function(h) {
                  return arguments.length === 0 ? this._day : this.set(h, "d");
                },
                /** Set new values for this date.
                    @memberof CDate
                    @param year {number} The year for the date.
                    @param month {number} The month for the date.
                    @param day {number} The day for the date.
                    @return {CDate} The updated date.
                    @throws Error if an invalid date. */
                date: function(h, i, b) {
                  if (!this._calendar.isValid(h, i, b))
                    throw (d.local.invalidDate || d.regionalOptions[""].invalidDate).replace(/\{0\}/, this._calendar.local.name);
                  return this._year = h, this._month = i, this._day = b, this;
                },
                /** Determine whether this date is in a leap year.
                    @memberof CDate
                    @return {boolean} <code>true</code> if this is a leap year, <code>false</code> if not. */
                leapYear: function() {
                  return this._calendar.leapYear(this);
                },
                /** Retrieve the epoch designator for this date, e.g. BCE or CE.
                    @memberof CDate
                    @return {string} The current epoch. */
                epoch: function() {
                  return this._calendar.epoch(this);
                },
                /** Format the year, if not a simple sequential number.
                    @memberof CDate
                    @return {string} The formatted year. */
                formatYear: function() {
                  return this._calendar.formatYear(this);
                },
                /** Retrieve the month of the year for this date,
                    i.e. the month's position within a numbered year.
                    @memberof CDate
                    @return {number} The month of the year: <code>minMonth</code> to months per year. */
                monthOfYear: function() {
                  return this._calendar.monthOfYear(this);
                },
                /** Retrieve the week of the year for this date.
                    @memberof CDate
                    @return {number} The week of the year: 1 to weeks per year. */
                weekOfYear: function() {
                  return this._calendar.weekOfYear(this);
                },
                /** Retrieve the number of days in the year for this date.
                    @memberof CDate
                    @return {number} The number of days in this year. */
                daysInYear: function() {
                  return this._calendar.daysInYear(this);
                },
                /** Retrieve the day of the year for this date.
                    @memberof CDate
                    @return {number} The day of the year: 1 to days per year. */
                dayOfYear: function() {
                  return this._calendar.dayOfYear(this);
                },
                /** Retrieve the number of days in the month for this date.
                    @memberof CDate
                    @return {number} The number of days. */
                daysInMonth: function() {
                  return this._calendar.daysInMonth(this);
                },
                /** Retrieve the day of the week for this date.
                    @memberof CDate
                    @return {number} The day of the week: 0 to number of days - 1. */
                dayOfWeek: function() {
                  return this._calendar.dayOfWeek(this);
                },
                /** Determine whether this date is a week day.
                    @memberof CDate
                    @return {boolean} <code>true</code> if a week day, <code>false</code> if not. */
                weekDay: function() {
                  return this._calendar.weekDay(this);
                },
                /** Retrieve additional information about this date.
                    @memberof CDate
                    @return {object} Additional information - contents depends on calendar. */
                extraInfo: function() {
                  return this._calendar.extraInfo(this);
                },
                /** Add period(s) to a date.
                    @memberof CDate
                    @param offset {number} The number of periods to adjust by.
                    @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day.
                    @return {CDate} The updated date. */
                add: function(h, i) {
                  return this._calendar.add(this, h, i);
                },
                /** Set a portion of the date.
                    @memberof CDate
                    @param value {number} The new value for the period.
                    @param period {string} One of 'y' for year, 'm' for month, 'd' for day.
                    @return {CDate} The updated date.
                    @throws Error if not a valid date. */
                set: function(h, i) {
                  return this._calendar.set(this, h, i);
                },
                /** Compare this date to another date.
                    @memberof CDate
                    @param date {CDate} The other date.
                    @return {number} -1 if this date is before the other date,
                            0 if they are equal, or +1 if this date is after the other date. */
                compareTo: function(h) {
                  if (this._calendar.name !== h._calendar.name)
                    throw (d.local.differentCalendars || d.regionalOptions[""].differentCalendars).replace(/\{0\}/, this._calendar.local.name).replace(/\{1\}/, h._calendar.local.name);
                  var i = this._year !== h._year ? this._year - h._year : this._month !== h._month ? this.monthOfYear() - h.monthOfYear() : this._day - h._day;
                  return i === 0 ? 0 : i < 0 ? -1 : 1;
                },
                /** Retrieve the calendar backing this date.
                    @memberof CDate
                    @return {BaseCalendar} The calendar implementation. */
                calendar: function() {
                  return this._calendar;
                },
                /** Retrieve the Julian date equivalent for this date,
                    i.e. days since January 1, 4713 BCE Greenwich noon.
                    @memberof CDate
                    @return {number} The equivalent Julian date. */
                toJD: function() {
                  return this._calendar.toJD(this);
                },
                /** Create a new date from a Julian date.
                    @memberof CDate
                    @param jd {number} The Julian date to convert.
                    @return {CDate} The equivalent date. */
                fromJD: function(h) {
                  return this._calendar.fromJD(h);
                },
                /** Convert this date to a standard (Gregorian) JavaScript Date.
                    @memberof CDate
                    @return {Date} The equivalent JavaScript date. */
                toJSDate: function() {
                  return this._calendar.toJSDate(this);
                },
                /** Create a new date from a standard (Gregorian) JavaScript Date.
                    @memberof CDate
                    @param jsd {Date} The JavaScript date to convert.
                    @return {CDate} The equivalent date. */
                fromJSDate: function(h) {
                  return this._calendar.fromJSDate(h);
                },
                /** Convert to a string for display.
                    @memberof CDate
                    @return {string} This date as a string. */
                toString: function() {
                  return (this.year() < 0 ? "-" : "") + f(Math.abs(this.year()), 4) + "-" + f(this.month(), 2) + "-" + f(this.day(), 2);
                }
              });
              function u() {
                this.shortYearCutoff = "+10";
              }
              a(u.prototype, {
                _validateLevel: 0,
                // "Stack" to turn validation on/off
                /** Create a new date within this calendar - today if no parameters given.
                    @memberof BaseCalendar
                    @param year {CDate|number} The date to duplicate or the year for the date.
                    @param [month] {number} The month for the date.
                    @param [day] {number} The day for the date.
                    @return {CDate} The new date.
                    @throws Error if not a valid date or a different calendar used. */
                newDate: function(h, i, b) {
                  return h == null ? this.today() : (h.year && (this._validate(
                    h,
                    i,
                    b,
                    d.local.invalidDate || d.regionalOptions[""].invalidDate
                  ), b = h.day(), i = h.month(), h = h.year()), new l(this, h, i, b));
                },
                /** Create a new date for today.
                    @memberof BaseCalendar
                    @return {CDate} Today's date. */
                today: function() {
                  return this.fromJSDate(/* @__PURE__ */ new Date());
                },
                /** Retrieve the epoch designator for this date.
                    @memberof BaseCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @return {string} The current epoch.
                    @throws Error if an invalid year or a different calendar used. */
                epoch: function(h) {
                  var i = this._validate(
                    h,
                    this.minMonth,
                    this.minDay,
                    d.local.invalidYear || d.regionalOptions[""].invalidYear
                  );
                  return i.year() < 0 ? this.local.epochs[0] : this.local.epochs[1];
                },
                /** Format the year, if not a simple sequential number
                    @memberof BaseCalendar
                    @param year {CDate|number} The date to format or the year to format.
                    @return {string} The formatted year.
                    @throws Error if an invalid year or a different calendar used. */
                formatYear: function(h) {
                  var i = this._validate(
                    h,
                    this.minMonth,
                    this.minDay,
                    d.local.invalidYear || d.regionalOptions[""].invalidYear
                  );
                  return (i.year() < 0 ? "-" : "") + f(Math.abs(i.year()), 4);
                },
                /** Retrieve the number of months in a year.
                    @memberof BaseCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @return {number} The number of months.
                    @throws Error if an invalid year or a different calendar used. */
                monthsInYear: function(h) {
                  return this._validate(
                    h,
                    this.minMonth,
                    this.minDay,
                    d.local.invalidYear || d.regionalOptions[""].invalidYear
                  ), 12;
                },
                /** Calculate the month's ordinal position within the year -
                    for those calendars that don't start at month 1!
                    @memberof BaseCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param month {number} The month to examine.
                    @return {number} The ordinal position, starting from <code>minMonth</code>.
                    @throws Error if an invalid year/month or a different calendar used. */
                monthOfYear: function(h, i) {
                  var b = this._validate(
                    h,
                    i,
                    this.minDay,
                    d.local.invalidMonth || d.regionalOptions[""].invalidMonth
                  );
                  return (b.month() + this.monthsInYear(b) - this.firstMonth) % this.monthsInYear(b) + this.minMonth;
                },
                /** Calculate actual month from ordinal position, starting from minMonth.
                    @memberof BaseCalendar
                    @param year {number} The year to examine.
                    @param ord {number} The month's ordinal position.
                    @return {number} The month's number.
                    @throws Error if an invalid year/month. */
                fromMonthOfYear: function(h, i) {
                  var b = (i + this.firstMonth - 2 * this.minMonth) % this.monthsInYear(h) + this.minMonth;
                  return this._validate(
                    h,
                    b,
                    this.minDay,
                    d.local.invalidMonth || d.regionalOptions[""].invalidMonth
                  ), b;
                },
                /** Retrieve the number of days in a year.
                    @memberof BaseCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @return {number} The number of days.
                    @throws Error if an invalid year or a different calendar used. */
                daysInYear: function(h) {
                  var i = this._validate(
                    h,
                    this.minMonth,
                    this.minDay,
                    d.local.invalidYear || d.regionalOptions[""].invalidYear
                  );
                  return this.leapYear(i) ? 366 : 365;
                },
                /** Retrieve the day of the year for a date.
                    @memberof BaseCalendar
                    @param year {CDate|number} The date to convert or the year to convert.
                    @param [month] {number} The month to convert.
                    @param [day] {number} The day to convert.
                    @return {number} The day of the year.
                    @throws Error if an invalid date or a different calendar used. */
                dayOfYear: function(h, i, b) {
                  var x = this._validate(
                    h,
                    i,
                    b,
                    d.local.invalidDate || d.regionalOptions[""].invalidDate
                  );
                  return x.toJD() - this.newDate(
                    x.year(),
                    this.fromMonthOfYear(x.year(), this.minMonth),
                    this.minDay
                  ).toJD() + 1;
                },
                /** Retrieve the number of days in a week.
                    @memberof BaseCalendar
                    @return {number} The number of days. */
                daysInWeek: function() {
                  return 7;
                },
                /** Retrieve the day of the week for a date.
                    @memberof BaseCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {number} The day of the week: 0 to number of days - 1.
                    @throws Error if an invalid date or a different calendar used. */
                dayOfWeek: function(h, i, b) {
                  var x = this._validate(
                    h,
                    i,
                    b,
                    d.local.invalidDate || d.regionalOptions[""].invalidDate
                  );
                  return (Math.floor(this.toJD(x)) + 2) % this.daysInWeek();
                },
                /** Retrieve additional information about a date.
                    @memberof BaseCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {object} Additional information - contents depends on calendar.
                    @throws Error if an invalid date or a different calendar used. */
                extraInfo: function(h, i, b) {
                  return this._validate(
                    h,
                    i,
                    b,
                    d.local.invalidDate || d.regionalOptions[""].invalidDate
                  ), {};
                },
                /** Add period(s) to a date.
                    Cater for no year zero.
                    @memberof BaseCalendar
                    @param date {CDate} The starting date.
                    @param offset {number} The number of periods to adjust by.
                    @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day.
                    @return {CDate} The updated date.
                    @throws Error if a different calendar used. */
                add: function(h, i, b) {
                  return this._validate(
                    h,
                    this.minMonth,
                    this.minDay,
                    d.local.invalidDate || d.regionalOptions[""].invalidDate
                  ), this._correctAdd(h, this._add(h, i, b), i, b);
                },
                /** Add period(s) to a date.
                    @memberof BaseCalendar
                    @private
                    @param date {CDate} The starting date.
                    @param offset {number} The number of periods to adjust by.
                    @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day.
                    @return {CDate} The updated date. */
                _add: function(h, i, b) {
                  if (this._validateLevel++, b === "d" || b === "w") {
                    var x = h.toJD() + i * (b === "w" ? this.daysInWeek() : 1), D = h.calendar().fromJD(x);
                    return this._validateLevel--, [D.year(), D.month(), D.day()];
                  }
                  try {
                    var C = h.year() + (b === "y" ? i : 0), w = h.monthOfYear() + (b === "m" ? i : 0), D = h.day(), S = function(A) {
                      for (; w < A.minMonth; )
                        C--, w += A.monthsInYear(C);
                      for (var R = A.monthsInYear(C); w > R - 1 + A.minMonth; )
                        C++, w -= R, R = A.monthsInYear(C);
                    };
                    b === "y" ? (h.month() !== this.fromMonthOfYear(C, w) && (w = this.newDate(C, h.month(), this.minDay).monthOfYear()), w = Math.min(w, this.monthsInYear(C)), D = Math.min(D, this.daysInMonth(C, this.fromMonthOfYear(C, w)))) : b === "m" && (S(this), D = Math.min(D, this.daysInMonth(C, this.fromMonthOfYear(C, w))));
                    var T = [C, this.fromMonthOfYear(C, w), D];
                    return this._validateLevel--, T;
                  } catch (k) {
                    throw this._validateLevel--, k;
                  }
                },
                /** Correct a candidate date after adding period(s) to a date.
                    Handle no year zero if necessary.
                    @memberof BaseCalendar
                    @private
                    @param date {CDate} The starting date.
                    @param ymd {number[]} The added date.
                    @param offset {number} The number of periods to adjust by.
                    @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day.
                    @return {CDate} The updated date. */
                _correctAdd: function(h, i, b, x) {
                  if (!this.hasYearZero && (x === "y" || x === "m") && (i[0] === 0 || // In year zero
                  h.year() > 0 != i[0] > 0)) {
                    var D = {
                      y: [1, 1, "y"],
                      m: [1, this.monthsInYear(-1), "m"],
                      w: [this.daysInWeek(), this.daysInYear(-1), "d"],
                      d: [1, this.daysInYear(-1), "d"]
                    }[x], C = b < 0 ? -1 : 1;
                    i = this._add(h, b * D[0] + C * D[1], D[2]);
                  }
                  return h.date(i[0], i[1], i[2]);
                },
                /** Set a portion of the date.
                    @memberof BaseCalendar
                    @param date {CDate} The starting date.
                    @param value {number} The new value for the period.
                    @param period {string} One of 'y' for year, 'm' for month, 'd' for day.
                    @return {CDate} The updated date.
                    @throws Error if an invalid date or a different calendar used. */
                set: function(h, i, b) {
                  this._validate(
                    h,
                    this.minMonth,
                    this.minDay,
                    d.local.invalidDate || d.regionalOptions[""].invalidDate
                  );
                  var x = b === "y" ? i : h.year(), D = b === "m" ? i : h.month(), C = b === "d" ? i : h.day();
                  return (b === "y" || b === "m") && (C = Math.min(C, this.daysInMonth(x, D))), h.date(x, D, C);
                },
                /** Determine whether a date is valid for this calendar.
                    @memberof BaseCalendar
                    @param year {number} The year to examine.
                    @param month {number} The month to examine.
                    @param day {number} The day to examine.
                    @return {boolean} <code>true</code> if a valid date, <code>false</code> if not. */
                isValid: function(h, i, b) {
                  this._validateLevel++;
                  var x = this.hasYearZero || h !== 0;
                  if (x) {
                    var D = this.newDate(h, i, this.minDay);
                    x = i >= this.minMonth && i - this.minMonth < this.monthsInYear(D) && b >= this.minDay && b - this.minDay < this.daysInMonth(D);
                  }
                  return this._validateLevel--, x;
                },
                /** Convert the date to a standard (Gregorian) JavaScript Date.
                    @memberof BaseCalendar
                    @param year {CDate|number} The date to convert or the year to convert.
                    @param [month] {number} The month to convert.
                    @param [day] {number} The day to convert.
                    @return {Date} The equivalent JavaScript date.
                    @throws Error if an invalid date or a different calendar used. */
                toJSDate: function(h, i, b) {
                  var x = this._validate(
                    h,
                    i,
                    b,
                    d.local.invalidDate || d.regionalOptions[""].invalidDate
                  );
                  return d.instance().fromJD(this.toJD(x)).toJSDate();
                },
                /** Convert the date from a standard (Gregorian) JavaScript Date.
                    @memberof BaseCalendar
                    @param jsd {Date} The JavaScript date.
                    @return {CDate} The equivalent calendar date. */
                fromJSDate: function(h) {
                  return this.fromJD(d.instance().fromJSDate(h).toJD());
                },
                /** Check that a candidate date is from the same calendar and is valid.
                    @memberof BaseCalendar
                    @private
                    @param year {CDate|number} The date to validate or the year to validate.
                    @param [month] {number} The month to validate.
                    @param [day] {number} The day to validate.
                    @param error {string} Rrror message if invalid.
                    @throws Error if different calendars used or invalid date. */
                _validate: function(h, i, b, x) {
                  if (h.year) {
                    if (this._validateLevel === 0 && this.name !== h.calendar().name)
                      throw (d.local.differentCalendars || d.regionalOptions[""].differentCalendars).replace(/\{0\}/, this.local.name).replace(/\{1\}/, h.calendar().local.name);
                    return h;
                  }
                  try {
                    if (this._validateLevel++, this._validateLevel === 1 && !this.isValid(h, i, b))
                      throw x.replace(/\{0\}/, this.local.name);
                    var D = this.newDate(h, i, b);
                    return this._validateLevel--, D;
                  } catch (C) {
                    throw this._validateLevel--, C;
                  }
                }
              });
              function c(h) {
                this.local = this.regionalOptions[h] || this.regionalOptions[""];
              }
              c.prototype = new u(), a(c.prototype, {
                /** The calendar name.
                    @memberof GregorianCalendar */
                name: "Gregorian",
                /** Julian date of start of Gregorian epoch: 1 January 0001 CE.
                   @memberof GregorianCalendar */
                jdEpoch: 17214255e-1,
                /** Days per month in a common year.
                   @memberof GregorianCalendar */
                daysPerMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
                /** <code>true</code> if has a year zero, <code>false</code> if not.
                   @memberof GregorianCalendar */
                hasYearZero: !1,
                /** The minimum month number.
                    @memberof GregorianCalendar */
                minMonth: 1,
                /** The first month in the year.
                    @memberof GregorianCalendar */
                firstMonth: 1,
                /** The minimum day number.
                   @memberof GregorianCalendar */
                minDay: 1,
                /** Localisations for the plugin.
                    Entries are objects indexed by the language code ('' being the default US/English).
                    Each object has the following attributes.
                    @memberof GregorianCalendar
                    @property name {string} The calendar name.
                    @property epochs {string[]} The epoch names.
                    @property monthNames {string[]} The long names of the months of the year.
                    @property monthNamesShort {string[]} The short names of the months of the year.
                    @property dayNames {string[]} The long names of the days of the week.
                    @property dayNamesShort {string[]} The short names of the days of the week.
                    @property dayNamesMin {string[]} The minimal names of the days of the week.
                    @property dateFormat {string} The date format for this calendar.
                            See the options on <a href="BaseCalendar.html#formatDate"><code>formatDate</code></a> for details.
                    @property firstDay {number} The number of the first day of the week, starting at 0.
                    @property isRTL {number} <code>true</code> if this localisation reads right-to-left. */
                regionalOptions: {
                  // Localisations
                  "": {
                    name: "Gregorian",
                    epochs: ["BCE", "CE"],
                    monthNames: [
                      "January",
                      "February",
                      "March",
                      "April",
                      "May",
                      "June",
                      "July",
                      "August",
                      "September",
                      "October",
                      "November",
                      "December"
                    ],
                    monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
                    dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
                    dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
                    dayNamesMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
                    digits: null,
                    dateFormat: "mm/dd/yyyy",
                    firstDay: 0,
                    isRTL: !1
                  }
                },
                /** Determine whether this date is in a leap year.
                    @memberof GregorianCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @return {boolean} <code>true</code> if this is a leap year, <code>false</code> if not.
                    @throws Error if an invalid year or a different calendar used. */
                leapYear: function(b) {
                  var i = this._validate(
                    b,
                    this.minMonth,
                    this.minDay,
                    d.local.invalidYear || d.regionalOptions[""].invalidYear
                  ), b = i.year() + (i.year() < 0 ? 1 : 0);
                  return b % 4 === 0 && (b % 100 !== 0 || b % 400 === 0);
                },
                /** Determine the week of the year for a date - ISO 8601.
                    @memberof GregorianCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {number} The week of the year, starting from 1.
                    @throws Error if an invalid date or a different calendar used. */
                weekOfYear: function(h, i, b) {
                  var x = this.newDate(h, i, b);
                  return x.add(4 - (x.dayOfWeek() || 7), "d"), Math.floor((x.dayOfYear() - 1) / 7) + 1;
                },
                /** Retrieve the number of days in a month.
                    @memberof GregorianCalendar
                    @param year {CDate|number} The date to examine or the year of the month.
                    @param [month] {number} The month.
                    @return {number} The number of days in this month.
                    @throws Error if an invalid month/year or a different calendar used. */
                daysInMonth: function(h, i) {
                  var b = this._validate(
                    h,
                    i,
                    this.minDay,
                    d.local.invalidMonth || d.regionalOptions[""].invalidMonth
                  );
                  return this.daysPerMonth[b.month() - 1] + (b.month() === 2 && this.leapYear(b.year()) ? 1 : 0);
                },
                /** Determine whether this date is a week day.
                    @memberof GregorianCalendar
                    @param year {CDate|number} The date to examine or the year to examine.
                    @param [month] {number} The month to examine.
                    @param [day] {number} The day to examine.
                    @return {boolean} <code>true</code> if a week day, <code>false</code> if not.
                    @throws Error if an invalid date or a different calendar used. */
                weekDay: function(h, i, b) {
                  return (this.dayOfWeek(h, i, b) || 7) < 6;
                },
                /** Retrieve the Julian date equivalent for this date,
                    i.e. days since January 1, 4713 BCE Greenwich noon.
                    @memberof GregorianCalendar
                    @param year {CDate|number} The date to convert or the year to convert.
                    @param [month] {number} The month to convert.
                    @param [day] {number} The day to convert.
                    @return {number} The equivalent Julian date.
                    @throws Error if an invalid date or a different calendar used. */
                toJD: function(h, i, b) {
                  var x = this._validate(
                    h,
                    i,
                    b,
                    d.local.invalidDate || d.regionalOptions[""].invalidDate
                  );
                  h = x.year(), i = x.month(), b = x.day(), h < 0 && h++, i < 3 && (i += 12, h--);
                  var D = Math.floor(h / 100), C = 2 - D + Math.floor(D / 4);
                  return Math.floor(365.25 * (h + 4716)) + Math.floor(30.6001 * (i + 1)) + b + C - 1524.5;
                },
                /** Create a new date from a Julian date.
                    @memberof GregorianCalendar
                    @param jd {number} The Julian date to convert.
                    @return {CDate} The equivalent date. */
                fromJD: function(h) {
                  var i = Math.floor(h + 0.5), b = Math.floor((i - 186721625e-2) / 36524.25);
                  b = i + 1 + b - Math.floor(b / 4);
                  var x = b + 1524, D = Math.floor((x - 122.1) / 365.25), C = Math.floor(365.25 * D), w = Math.floor((x - C) / 30.6001), S = x - C - Math.floor(w * 30.6001), T = w - (w > 13.5 ? 13 : 1), k = D - (T > 2.5 ? 4716 : 4715);
                  return k <= 0 && k--, this.newDate(k, T, S);
                },
                /** Convert this date to a standard (Gregorian) JavaScript Date.
                    @memberof GregorianCalendar
                    @param year {CDate|number} The date to convert or the year to convert.
                    @param [month] {number} The month to convert.
                    @param [day] {number} The day to convert.
                    @return {Date} The equivalent JavaScript date.
                    @throws Error if an invalid date or a different calendar used. */
                toJSDate: function(h, i, b) {
                  var x = this._validate(
                    h,
                    i,
                    b,
                    d.local.invalidDate || d.regionalOptions[""].invalidDate
                  ), D = new Date(x.year(), x.month() - 1, x.day());
                  return D.setHours(0), D.setMinutes(0), D.setSeconds(0), D.setMilliseconds(0), D.setHours(D.getHours() > 12 ? D.getHours() + 2 : 0), D;
                },
                /** Create a new date from a standard (Gregorian) JavaScript Date.
                    @memberof GregorianCalendar
                    @param jsd {Date} The JavaScript date to convert.
                    @return {CDate} The equivalent date. */
                fromJSDate: function(h) {
                  return this.newDate(h.getFullYear(), h.getMonth() + 1, h.getDate());
                }
              });
              var d = M.exports = new p();
              d.cdate = l, d.baseCalendar = u, d.calendars.gregorian = c;
            }
          ),
          /***/
          5168: (
            /***/
            function(M, L, r) {
              var a = r(896), p = r(8700);
              a(p.regionalOptions[""], {
                invalidArguments: "Invalid arguments",
                invalidFormat: "Cannot format a date from another calendar",
                missingNumberAt: "Missing number at position {0}",
                unknownNameAt: "Unknown name at position {0}",
                unexpectedLiteralAt: "Unexpected literal at position {0}",
                unexpectedText: "Additional text found at end"
              }), p.local = p.regionalOptions[""], a(p.cdate.prototype, {
                /** Format this date.
                    Found in the <code>jquery.calendars.plus.js</code> module.
                    @memberof CDate
                    @param [format] {string} The date format to use (see <a href="BaseCalendar.html#formatDate"><code>formatDate</code></a>).
                    @param [settings] {object} Options for the <code>formatDate</code> function.
                    @return {string} The formatted date. */
                formatDate: function(l, f) {
                  return typeof l != "string" && (f = l, l = ""), this._calendar.formatDate(l || "", this, f);
                }
              }), a(p.baseCalendar.prototype, {
                UNIX_EPOCH: p.instance().newDate(1970, 1, 1).toJD(),
                SECS_PER_DAY: 86400,
                TICKS_EPOCH: p.instance().jdEpoch,
                // 1 January 0001 CE
                TICKS_PER_DAY: 864e9,
                /** Date form for ATOM (RFC 3339/ISO 8601).
                    Found in the <code>jquery.calendars.plus.js</code> module.
                    @memberof BaseCalendar */
                ATOM: "yyyy-mm-dd",
                /** Date form for cookies.
                    Found in the <code>jquery.calendars.plus.js</code> module.
                    @memberof BaseCalendar */
                COOKIE: "D, dd M yyyy",
                /** Date form for full date.
                    Found in the <code>jquery.calendars.plus.js</code> module.
                    @memberof BaseCalendar */
                FULL: "DD, MM d, yyyy",
                /** Date form for ISO 8601.
                    Found in the <code>jquery.calendars.plus.js</code> module.
                    @memberof BaseCalendar */
                ISO_8601: "yyyy-mm-dd",
                /** Date form for Julian date.
                    Found in the <code>jquery.calendars.plus.js</code> module.
                    @memberof BaseCalendar */
                JULIAN: "J",
                /** Date form for RFC 822.
                    Found in the <code>jquery.calendars.plus.js</code> module.
                    @memberof BaseCalendar */
                RFC_822: "D, d M yy",
                /** Date form for RFC 850.
                    Found in the <code>jquery.calendars.plus.js</code> module.
                    @memberof BaseCalendar */
                RFC_850: "DD, dd-M-yy",
                /** Date form for RFC 1036.
                    Found in the <code>jquery.calendars.plus.js</code> module.
                    @memberof BaseCalendar */
                RFC_1036: "D, d M yy",
                /** Date form for RFC 1123.
                    Found in the <code>jquery.calendars.plus.js</code> module.
                    @memberof BaseCalendar */
                RFC_1123: "D, d M yyyy",
                /** Date form for RFC 2822.
                    Found in the <code>jquery.calendars.plus.js</code> module.
                    @memberof BaseCalendar */
                RFC_2822: "D, d M yyyy",
                /** Date form for RSS (RFC 822).
                    Found in the <code>jquery.calendars.plus.js</code> module.
                    @memberof BaseCalendar */
                RSS: "D, d M yy",
                /** Date form for Windows ticks.
                    Found in the <code>jquery.calendars.plus.js</code> module.
                    @memberof BaseCalendar */
                TICKS: "!",
                /** Date form for Unix timestamp.
                    Found in the <code>jquery.calendars.plus.js</code> module.
                    @memberof BaseCalendar */
                TIMESTAMP: "@",
                /** Date form for W3c (ISO 8601).
                    Found in the <code>jquery.calendars.plus.js</code> module.
                    @memberof BaseCalendar */
                W3C: "yyyy-mm-dd",
                /** Format a date object into a string value.
                    The format can be combinations of the following:
                    <ul>
                    <li>d  - day of month (no leading zero)</li>
                    <li>dd - day of month (two digit)</li>
                    <li>o  - day of year (no leading zeros)</li>
                    <li>oo - day of year (three digit)</li>
                    <li>D  - day name short</li>
                    <li>DD - day name long</li>
                    <li>w  - week of year (no leading zero)</li>
                    <li>ww - week of year (two digit)</li>
                    <li>m  - month of year (no leading zero)</li>
                    <li>mm - month of year (two digit)</li>
                    <li>M  - month name short</li>
                    <li>MM - month name long</li>
                    <li>yy - year (two digit)</li>
                    <li>yyyy - year (four digit)</li>
                    <li>YYYY - formatted year</li>
                    <li>J  - Julian date (days since January 1, 4713 BCE Greenwich noon)</li>
                    <li>@  - Unix timestamp (s since 01/01/1970)</li>
                    <li>!  - Windows ticks (100ns since 01/01/0001)</li>
                    <li>'...' - literal text</li>
                    <li>'' - single quote</li>
                    </ul>
                    Found in the <code>jquery.calendars.plus.js</code> module.
                    @memberof BaseCalendar
                    @param [format] {string} The desired format of the date (defaults to calendar format).
                    @param date {CDate} The date value to format.
                    @param [settings] {object} Addition options, whose attributes include:
                    @property [dayNamesShort] {string[]} Abbreviated names of the days from Sunday.
                    @property [dayNames] {string[]} Names of the days from Sunday.
                    @property [monthNamesShort] {string[]} Abbreviated names of the months.
                    @property [monthNames] {string[]} Names of the months.
                    @property [calculateWeek] {CalendarsPickerCalculateWeek} Function that determines week of the year.
                    @property [localNumbers=false] {boolean} <code>true</code> to localise numbers (if available),
                              <code>false</code> to use normal Arabic numerals.
                    @return {string} The date in the above format.
                    @throws Errors if the date is from a different calendar. */
                formatDate: function(l, f, u) {
                  if (typeof l != "string" && (u = f, f = l, l = ""), !f)
                    return "";
                  if (f.calendar() !== this)
                    throw p.local.invalidFormat || p.regionalOptions[""].invalidFormat;
                  l = l || this.local.dateFormat, u = u || {};
                  var c = u.dayNamesShort || this.local.dayNamesShort, d = u.dayNames || this.local.dayNames, h = u.monthNumbers || this.local.monthNumbers, i = u.monthNamesShort || this.local.monthNamesShort, b = u.monthNames || this.local.monthNames;
                  u.calculateWeek || this.local.calculateWeek;
                  for (var x = function(O, $) {
                    for (var Y = 1; I + Y < l.length && l.charAt(I + Y) === O; )
                      Y++;
                    return I += Y - 1, Math.floor(Y / ($ || 1)) > 1;
                  }, D = function(O, $, Y, ne) {
                    var q = "" + $;
                    if (x(O, ne))
                      for (; q.length < Y; )
                        q = "0" + q;
                    return q;
                  }, C = function(O, $, Y, ne) {
                    return x(O) ? ne[$] : Y[$];
                  }, w = this, S = function(O) {
                    return typeof h == "function" ? h.call(w, O, x("m")) : A(D("m", O.month(), 2));
                  }, T = function(O, $) {
                    return $ ? typeof b == "function" ? b.call(w, O) : b[O.month() - w.minMonth] : typeof i == "function" ? i.call(w, O) : i[O.month() - w.minMonth];
                  }, k = this.local.digits, A = function(O) {
                    return u.localNumbers && k ? k(O) : O;
                  }, R = "", g = !1, I = 0; I < l.length; I++)
                    if (g)
                      l.charAt(I) === "'" && !x("'") ? g = !1 : R += l.charAt(I);
                    else
                      switch (l.charAt(I)) {
                        case "d":
                          R += A(D("d", f.day(), 2));
                          break;
                        case "D":
                          R += C(
                            "D",
                            f.dayOfWeek(),
                            c,
                            d
                          );
                          break;
                        case "o":
                          R += D("o", f.dayOfYear(), 3);
                          break;
                        case "w":
                          R += D("w", f.weekOfYear(), 2);
                          break;
                        case "m":
                          R += S(f);
                          break;
                        case "M":
                          R += T(f, x("M"));
                          break;
                        case "y":
                          R += x("y", 2) ? f.year() : (f.year() % 100 < 10 ? "0" : "") + f.year() % 100;
                          break;
                        case "Y":
                          x("Y", 2), R += f.formatYear();
                          break;
                        case "J":
                          R += f.toJD();
                          break;
                        case "@":
                          R += (f.toJD() - this.UNIX_EPOCH) * this.SECS_PER_DAY;
                          break;
                        case "!":
                          R += (f.toJD() - this.TICKS_EPOCH) * this.TICKS_PER_DAY;
                          break;
                        case "'":
                          x("'") ? R += "'" : g = !0;
                          break;
                        default:
                          R += l.charAt(I);
                      }
                  return R;
                },
                /** Parse a string value into a date object.
                    See <a href="#formatDate"><code>formatDate</code></a> for the possible formats, plus:
                    <ul>
                    <li>* - ignore rest of string</li>
                    </ul>
                    Found in the <code>jquery.calendars.plus.js</code> module.
                    @memberof BaseCalendar
                    @param format {string} The expected format of the date ('' for default calendar format).
                    @param value {string} The date in the above format.
                    @param [settings] {object} Additional options whose attributes include:
                    @property [shortYearCutoff] {number} The cutoff year for determining the century.
                    @property [dayNamesShort] {string[]} Abbreviated names of the days from Sunday.
                    @property [dayNames] {string[]} Names of the days from Sunday.
                    @property [monthNamesShort] {string[]} Abbreviated names of the months.
                    @property [monthNames] {string[]} Names of the months.
                    @return {CDate} The extracted date value or <code>null</code> if value is blank.
                    @throws Errors if the format and/or value are missing,
                            if the value doesn't match the format, or if the date is invalid. */
                parseDate: function(l, f, u) {
                  if (f == null)
                    throw p.local.invalidArguments || p.regionalOptions[""].invalidArguments;
                  if (f = typeof f == "object" ? f.toString() : f + "", f === "")
                    return null;
                  l = l || this.local.dateFormat, u = u || {};
                  var c = u.shortYearCutoff || this.shortYearCutoff;
                  c = typeof c != "string" ? c : this.today().year() % 100 + parseInt(c, 10);
                  for (var d = u.dayNamesShort || this.local.dayNamesShort, h = u.dayNames || this.local.dayNames, i = u.parseMonth || this.local.parseMonth, b = u.monthNumbers || this.local.monthNumbers, x = u.monthNamesShort || this.local.monthNamesShort, D = u.monthNames || this.local.monthNames, C = -1, w = -1, S = -1, T = -1, k = -1, A = !1, R = !1, g = function(se, me) {
                    for (var J = 1; X + J < l.length && l.charAt(X + J) === se; )
                      J++;
                    return X += J - 1, Math.floor(J / (me || 1)) > 1;
                  }, I = function(se, me) {
                    var J = g(se, me), W = [2, 3, J ? 4 : 2, J ? 4 : 2, 10, 11, 20]["oyYJ@!".indexOf(se) + 1], ae = new RegExp("^-?\\d{1," + W + "}"), oe = f.substring(B).match(ae);
                    if (!oe)
                      throw (p.local.missingNumberAt || p.regionalOptions[""].missingNumberAt).replace(/\{0\}/, B);
                    return B += oe[0].length, parseInt(oe[0], 10);
                  }, O = this, $ = function() {
                    if (typeof b == "function") {
                      g("m");
                      var se = b.call(O, f.substring(B));
                      return B += se.length, se;
                    }
                    return I("m");
                  }, Y = function(se, me, J, W) {
                    for (var ae = g(se, W) ? J : me, oe = 0; oe < ae.length; oe++)
                      if (f.substr(B, ae[oe].length).toLowerCase() === ae[oe].toLowerCase())
                        return B += ae[oe].length, oe + O.minMonth;
                    throw (p.local.unknownNameAt || p.regionalOptions[""].unknownNameAt).replace(/\{0\}/, B);
                  }, ne = function() {
                    if (typeof D == "function") {
                      var se = g("M") ? D.call(O, f.substring(B)) : x.call(O, f.substring(B));
                      return B += se.length, se;
                    }
                    return Y("M", x, D);
                  }, q = function() {
                    if (f.charAt(B) !== l.charAt(X))
                      throw (p.local.unexpectedLiteralAt || p.regionalOptions[""].unexpectedLiteralAt).replace(/\{0\}/, B);
                    B++;
                  }, B = 0, X = 0; X < l.length; X++)
                    if (R)
                      l.charAt(X) === "'" && !g("'") ? R = !1 : q();
                    else
                      switch (l.charAt(X)) {
                        case "d":
                          T = I("d");
                          break;
                        case "D":
                          Y("D", d, h);
                          break;
                        case "o":
                          k = I("o");
                          break;
                        case "w":
                          I("w");
                          break;
                        case "m":
                          S = $();
                          break;
                        case "M":
                          S = ne();
                          break;
                        case "y":
                          var U = X;
                          A = !g("y", 2), X = U, w = I("y", 2);
                          break;
                        case "Y":
                          w = I("Y", 2);
                          break;
                        case "J":
                          C = I("J") + 0.5, f.charAt(B) === "." && (B++, I("J"));
                          break;
                        case "@":
                          C = I("@") / this.SECS_PER_DAY + this.UNIX_EPOCH;
                          break;
                        case "!":
                          C = I("!") / this.TICKS_PER_DAY + this.TICKS_EPOCH;
                          break;
                        case "*":
                          B = f.length;
                          break;
                        case "'":
                          g("'") ? q() : R = !0;
                          break;
                        default:
                          q();
                      }
                  if (B < f.length)
                    throw p.local.unexpectedText || p.regionalOptions[""].unexpectedText;
                  if (w === -1 ? w = this.today().year() : w < 100 && A && (w += c === -1 ? 1900 : this.today().year() - this.today().year() % 100 - (w <= c ? 0 : 100)), typeof S == "string" && (S = i.call(this, w, S)), k > -1) {
                    S = 1, T = k;
                    for (var te = this.daysInMonth(w, S); T > te; te = this.daysInMonth(w, S))
                      S++, T -= te;
                  }
                  return C > -1 ? this.fromJD(C) : this.newDate(w, S, T);
                },
                /** A date may be specified as an exact value or a relative one.
                    Found in the <code>jquery.calendars.plus.js</code> module.
                    @memberof BaseCalendar
                    @param dateSpec {CDate|number|string} The date as an object or string in the given format or
                            an offset - numeric days from today, or string amounts and periods, e.g. '+1m +2w'.
                    @param defaultDate {CDate} The date to use if no other supplied, may be <code>null</code>.
                    @param currentDate {CDate} The current date as a possible basis for relative dates,
                            if <code>null</code> today is used (optional)
                    @param [dateFormat] {string} The expected date format - see <a href="#formatDate"><code>formatDate</code></a>.
                    @param [settings] {object} Additional options whose attributes include:
                    @property [shortYearCutoff] {number} The cutoff year for determining the century.
                    @property [dayNamesShort] {string[]} Abbreviated names of the days from Sunday.
                    @property [dayNames] {string[]} Names of the days from Sunday.
                    @property [monthNamesShort] {string[]} Abbreviated names of the months.
                    @property [monthNames] {string[]} Names of the months.
                    @return {CDate} The decoded date. */
                determineDate: function(l, f, u, c, d) {
                  u && typeof u != "object" && (d = c, c = u, u = null), typeof c != "string" && (d = c, c = "");
                  var h = this, i = function(b) {
                    try {
                      return h.parseDate(c, b, d);
                    } catch {
                    }
                    b = b.toLowerCase();
                    for (var x = (b.match(/^c/) && u ? u.newDate() : null) || h.today(), D = /([+-]?[0-9]+)\s*(d|w|m|y)?/g, C = D.exec(b); C; )
                      x.add(parseInt(C[1], 10), C[2] || "d"), C = D.exec(b);
                    return x;
                  };
                  return f = f ? f.newDate() : null, l = l == null ? f : typeof l == "string" ? i(l) : typeof l == "number" ? isNaN(l) || l === 1 / 0 || l === -1 / 0 ? f : h.today().add(l, "d") : h.newDate(l), l;
                }
              });
            }
          )
          /******/
        }, z = {};
        function P(M) {
          var L = z[M];
          if (L !== void 0)
            return L.exports;
          var r = z[M] = {
            /******/
            // no module.id needed
            /******/
            // no module.loaded needed
            /******/
            exports: {}
            /******/
          };
          return E[M].call(r.exports, r, r.exports, P), r.exports;
        }
        (function() {
          P.d = function(M, L) {
            for (var r in L)
              P.o(L, r) && !P.o(M, r) && Object.defineProperty(M, r, { enumerable: !0, get: L[r] });
          };
        })(), function() {
          P.g = function() {
            if (typeof globalThis == "object")
              return globalThis;
            try {
              return this || new Function("return this")();
            } catch {
              if (typeof window == "object")
                return window;
            }
          }();
        }(), function() {
          P.o = function(M, L) {
            return Object.prototype.hasOwnProperty.call(M, L);
          };
        }(), function() {
          P.r = function(M) {
            typeof Symbol < "u" && Symbol.toStringTag && Object.defineProperty(M, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(M, "__esModule", { value: !0 });
          };
        }();
        var K = P(3472);
        return K;
      }()
    );
  });
})(z6);
var B_ = z6.exports;
const V_ = /* @__PURE__ */ lv(B_);
var _6 = {};
(function(s) {
  function o(C) {
    "@babel/helpers - typeof";
    return o = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(w) {
      return typeof w;
    } : function(w) {
      return w && typeof Symbol == "function" && w.constructor === Symbol && w !== Symbol.prototype ? "symbol" : typeof w;
    }, o(C);
  }
  Object.defineProperty(s, "__esModule", {
    value: !0
  }), s.default = D;
  var E = M((react__WEBPACK_IMPORTED_MODULE_1___default())), z = P(VS);
  function P(C) {
    return C && C.__esModule ? C : { default: C };
  }
  function K(C) {
    if (typeof WeakMap != "function")
      return null;
    var w = /* @__PURE__ */ new WeakMap(), S = /* @__PURE__ */ new WeakMap();
    return (K = function(k) {
      return k ? S : w;
    })(C);
  }
  function M(C, w) {
    if (C && C.__esModule)
      return C;
    if (C === null || o(C) !== "object" && typeof C != "function")
      return { default: C };
    var S = K(w);
    if (S && S.has(C))
      return S.get(C);
    var T = {}, k = Object.defineProperty && Object.getOwnPropertyDescriptor;
    for (var A in C)
      if (A !== "default" && Object.prototype.hasOwnProperty.call(C, A)) {
        var R = k ? Object.getOwnPropertyDescriptor(C, A) : null;
        R && (R.get || R.set) ? Object.defineProperty(T, A, R) : T[A] = C[A];
      }
    return T.default = C, S && S.set(C, T), T;
  }
  function L(C, w) {
    if (!(C instanceof w))
      throw new TypeError("Cannot call a class as a function");
  }
  function r(C, w) {
    for (var S = 0; S < w.length; S++) {
      var T = w[S];
      T.enumerable = T.enumerable || !1, T.configurable = !0, "value" in T && (T.writable = !0), Object.defineProperty(C, T.key, T);
    }
  }
  function a(C, w, S) {
    return w && r(C.prototype, w), Object.defineProperty(C, "prototype", { writable: !1 }), C;
  }
  function p(C, w) {
    if (typeof w != "function" && w !== null)
      throw new TypeError("Super expression must either be null or a function");
    C.prototype = Object.create(w && w.prototype, { constructor: { value: C, writable: !0, configurable: !0 } }), Object.defineProperty(C, "prototype", { writable: !1 }), w && l(C, w);
  }
  function l(C, w) {
    return l = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(T, k) {
      return T.__proto__ = k, T;
    }, l(C, w);
  }
  function f(C) {
    var w = d();
    return function() {
      var T = h(C), k;
      if (w) {
        var A = h(this).constructor;
        k = Reflect.construct(T, arguments, A);
      } else
        k = T.apply(this, arguments);
      return u(this, k);
    };
  }
  function u(C, w) {
    if (w && (o(w) === "object" || typeof w == "function"))
      return w;
    if (w !== void 0)
      throw new TypeError("Derived constructors may only return object or undefined");
    return c(C);
  }
  function c(C) {
    if (C === void 0)
      throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
    return C;
  }
  function d() {
    if (typeof Reflect > "u" || !Reflect.construct || Reflect.construct.sham)
      return !1;
    if (typeof Proxy == "function")
      return !0;
    try {
      return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
      })), !0;
    } catch {
      return !1;
    }
  }
  function h(C) {
    return h = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(S) {
      return S.__proto__ || Object.getPrototypeOf(S);
    }, h(C);
  }
  var i = ["AfterExport", "AfterPlot", "Animated", "AnimatingFrame", "AnimationInterrupted", "AutoSize", "BeforeExport", "BeforeHover", "ButtonClicked", "Click", "ClickAnnotation", "Deselect", "DoubleClick", "Framework", "Hover", "LegendClick", "LegendDoubleClick", "Relayout", "Relayouting", "Restyle", "Redraw", "Selected", "Selecting", "SliderChange", "SliderEnd", "SliderStart", "SunburstClick", "Transitioning", "TransitionInterrupted", "Unhover", "WebGlContextLost"], b = ["plotly_restyle", "plotly_redraw", "plotly_relayout", "plotly_relayouting", "plotly_doubleclick", "plotly_animated", "plotly_sunburstclick"], x = typeof window < "u";
  function D(C) {
    var w = /* @__PURE__ */ function(S) {
      p(k, S);
      var T = f(k);
      function k(A) {
        var R;
        return L(this, k), R = T.call(this, A), R.p = Promise.resolve(), R.resizeHandler = null, R.handlers = {}, R.syncWindowResize = R.syncWindowResize.bind(c(R)), R.syncEventHandlers = R.syncEventHandlers.bind(c(R)), R.attachUpdateEvents = R.attachUpdateEvents.bind(c(R)), R.getRef = R.getRef.bind(c(R)), R.handleUpdate = R.handleUpdate.bind(c(R)), R.figureCallback = R.figureCallback.bind(c(R)), R.updatePlotly = R.updatePlotly.bind(c(R)), R;
      }
      return a(k, [{
        key: "updatePlotly",
        value: function(R, g, I) {
          var O = this;
          this.p = this.p.then(function() {
            if (!O.unmounting) {
              if (!O.el)
                throw new Error("Missing element reference");
              return C.react(O.el, {
                data: O.props.data,
                layout: O.props.layout,
                config: O.props.config,
                frames: O.props.frames
              });
            }
          }).then(function() {
            O.unmounting || (O.syncWindowResize(R), O.syncEventHandlers(), O.figureCallback(g), I && O.attachUpdateEvents());
          }).catch(function($) {
            O.props.onError && O.props.onError($);
          });
        }
      }, {
        key: "componentDidMount",
        value: function() {
          this.unmounting = !1, this.updatePlotly(!0, this.props.onInitialized, !0);
        }
      }, {
        key: "componentDidUpdate",
        value: function(R) {
          this.unmounting = !1;
          var g = R.frames && R.frames.length ? R.frames.length : 0, I = this.props.frames && this.props.frames.length ? this.props.frames.length : 0, O = !(R.layout === this.props.layout && R.data === this.props.data && R.config === this.props.config && I === g), $ = R.revision !== void 0, Y = R.revision !== this.props.revision;
          !O && (!$ || $ && !Y) || this.updatePlotly(!1, this.props.onUpdate, !1);
        }
      }, {
        key: "componentWillUnmount",
        value: function() {
          this.unmounting = !0, this.figureCallback(this.props.onPurge), this.resizeHandler && x && (window.removeEventListener("resize", this.resizeHandler), this.resizeHandler = null), this.removeUpdateEvents(), C.purge(this.el);
        }
      }, {
        key: "attachUpdateEvents",
        value: function() {
          var R = this;
          !this.el || !this.el.removeListener || b.forEach(function(g) {
            R.el.on(g, R.handleUpdate);
          });
        }
      }, {
        key: "removeUpdateEvents",
        value: function() {
          var R = this;
          !this.el || !this.el.removeListener || b.forEach(function(g) {
            R.el.removeListener(g, R.handleUpdate);
          });
        }
      }, {
        key: "handleUpdate",
        value: function() {
          this.figureCallback(this.props.onUpdate);
        }
      }, {
        key: "figureCallback",
        value: function(R) {
          if (typeof R == "function") {
            var g = this.el, I = g.data, O = g.layout, $ = this.el._transitionData ? this.el._transitionData._frames : null, Y = {
              data: I,
              layout: O,
              frames: $
            };
            R(Y, this.el);
          }
        }
      }, {
        key: "syncWindowResize",
        value: function(R) {
          var g = this;
          x && (this.props.useResizeHandler && !this.resizeHandler ? (this.resizeHandler = function() {
            return C.Plots.resize(g.el);
          }, window.addEventListener("resize", this.resizeHandler), R && this.resizeHandler()) : !this.props.useResizeHandler && this.resizeHandler && (window.removeEventListener("resize", this.resizeHandler), this.resizeHandler = null));
        }
      }, {
        key: "getRef",
        value: function(R) {
          this.el = R, this.props.debug && x && (window.gd = this.el);
        }
        // Attach and remove event handlers as they're added or removed from props:
      }, {
        key: "syncEventHandlers",
        value: function() {
          var R = this;
          i.forEach(function(g) {
            var I = R.props["on" + g], O = R.handlers[g], $ = !!O;
            I && !$ ? R.addEventHandler(g, I) : !I && $ ? R.removeEventHandler(g) : I && $ && I !== O && (R.removeEventHandler(g), R.addEventHandler(g, I));
          });
        }
      }, {
        key: "addEventHandler",
        value: function(R, g) {
          this.handlers[R] = g, this.el.on(this.getPlotlyEventName(R), this.handlers[R]);
        }
      }, {
        key: "removeEventHandler",
        value: function(R) {
          this.el.removeListener(this.getPlotlyEventName(R), this.handlers[R]), delete this.handlers[R];
        }
      }, {
        key: "getPlotlyEventName",
        value: function(R) {
          return "plotly_" + R.toLowerCase();
        }
      }, {
        key: "render",
        value: function() {
          return /* @__PURE__ */ E.default.createElement("div", {
            id: this.props.divId,
            style: this.props.style,
            ref: this.getRef,
            className: this.props.className
          });
        }
      }]), k;
    }(E.Component);
    return w.propTypes = {
      data: z.default.arrayOf(z.default.object),
      config: z.default.object,
      layout: z.default.object,
      frames: z.default.arrayOf(z.default.object),
      revision: z.default.number,
      onInitialized: z.default.func,
      onPurge: z.default.func,
      onError: z.default.func,
      onUpdate: z.default.func,
      debug: z.default.bool,
      style: z.default.object,
      className: z.default.string,
      useResizeHandler: z.default.bool,
      divId: z.default.string
    }, i.forEach(function(S) {
      w.propTypes["on" + S] = z.default.func;
    }), w.defaultProps = {
      debug: !1,
      useResizeHandler: !1,
      data: [],
      style: {
        position: "relative",
        display: "inline-block"
      }
    }, w;
  }
})(_6);
const G_ = /* @__PURE__ */ lv(_6), U_ = {
  // data: {
  //   barpolar: [
  //     {
  //       marker: {
  //         line: {
  //           color: "rgb(17,17,17)",
  //           width: 0.5,
  //         },
  //         pattern: {
  //           fillmode: "overlay",
  //           size: 10,
  //           solidity: 0.2,
  //         },
  //       },
  //       type: "barpolar",
  //     },
  //   ],
  //   bar: [
  //     {
  //       error_x: {
  //         color: "#f2f5fa",
  //       },
  //       error_y: {
  //         color: "#f2f5fa",
  //       },
  //       marker: {
  //         line: {
  //           color: "rgb(17,17,17)",
  //           width: 0.5,
  //         },
  //         pattern: {
  //           fillmode: "overlay",
  //           size: 10,
  //           solidity: 0.2,
  //         },
  //       },
  //       type: "bar",
  //     },
  //   ],
  //   carpet: [
  //     {
  //       aaxis: {
  //         endlinecolor: "#A2B1C6",
  //         gridcolor: "#506784",
  //         linecolor: "#506784",
  //         minorgridcolor: "#506784",
  //         startlinecolor: "#A2B1C6",
  //       },
  //       baxis: {
  //         endlinecolor: "#A2B1C6",
  //         gridcolor: "#506784",
  //         linecolor: "#506784",
  //         minorgridcolor: "#506784",
  //         startlinecolor: "#A2B1C6",
  //       },
  //       type: "carpet",
  //     },
  //   ],
  //   choropleth: [
  //     {
  //       colorbar: {
  //         outlinewidth: 0,
  //         ticks: "",
  //       },
  //       type: "choropleth",
  //     },
  //   ],
  //   contourcarpet: [
  //     {
  //       colorbar: {
  //         outlinewidth: 0,
  //         ticks: "",
  //       },
  //       type: "contourcarpet",
  //     },
  //   ],
  //   contour: [
  //     {
  //       colorbar: {
  //         outlinewidth: 0,
  //         ticks: "",
  //       },
  //       colorscale: [
  //         [0.0, "#0d0887"],
  //         [0.1111111111111111, "#46039f"],
  //         [0.2222222222222222, "#7201a8"],
  //         [0.3333333333333333, "#9c179e"],
  //         [0.4444444444444444, "#bd3786"],
  //         [0.5555555555555556, "#d8576b"],
  //         [0.6666666666666666, "#ed7953"],
  //         [0.7777777777777778, "#fb9f3a"],
  //         [0.8888888888888888, "#fdca26"],
  //         [1.0, "#f0f921"],
  //       ],
  //       type: "contour",
  //     },
  //   ],
  //   heatmapgl: [
  //     {
  //       colorbar: {
  //         outlinewidth: 0,
  //         ticks: "",
  //       },
  //       colorscale: [
  //         [0.0, "#0d0887"],
  //         [0.1111111111111111, "#46039f"],
  //         [0.2222222222222222, "#7201a8"],
  //         [0.3333333333333333, "#9c179e"],
  //         [0.4444444444444444, "#bd3786"],
  //         [0.5555555555555556, "#d8576b"],
  //         [0.6666666666666666, "#ed7953"],
  //         [0.7777777777777778, "#fb9f3a"],
  //         [0.8888888888888888, "#fdca26"],
  //         [1.0, "#f0f921"],
  //       ],
  //       type: "heatmapgl",
  //     },
  //   ],
  //   heatmap: [
  //     {
  //       colorbar: {
  //         outlinewidth: 0,
  //         ticks: "",
  //       },
  //       colorscale: [
  //         [0.0, "#0d0887"],
  //         [0.1111111111111111, "#46039f"],
  //         [0.2222222222222222, "#7201a8"],
  //         [0.3333333333333333, "#9c179e"],
  //         [0.4444444444444444, "#bd3786"],
  //         [0.5555555555555556, "#d8576b"],
  //         [0.6666666666666666, "#ed7953"],
  //         [0.7777777777777778, "#fb9f3a"],
  //         [0.8888888888888888, "#fdca26"],
  //         [1.0, "#f0f921"],
  //       ],
  //       type: "heatmap",
  //     },
  //   ],
  //   histogram2dcontour: [
  //     {
  //       colorbar: {
  //         outlinewidth: 0,
  //         ticks: "",
  //       },
  //       colorscale: [
  //         [0.0, "#0d0887"],
  //         [0.1111111111111111, "#46039f"],
  //         [0.2222222222222222, "#7201a8"],
  //         [0.3333333333333333, "#9c179e"],
  //         [0.4444444444444444, "#bd3786"],
  //         [0.5555555555555556, "#d8576b"],
  //         [0.6666666666666666, "#ed7953"],
  //         [0.7777777777777778, "#fb9f3a"],
  //         [0.8888888888888888, "#fdca26"],
  //         [1.0, "#f0f921"],
  //       ],
  //       type: "histogram2dcontour",
  //     },
  //   ],
  //   histogram2d: [
  //     {
  //       colorbar: {
  //         outlinewidth: 0,
  //         ticks: "",
  //       },
  //       colorscale: [
  //         [0.0, "#0d0887"],
  //         [0.1111111111111111, "#46039f"],
  //         [0.2222222222222222, "#7201a8"],
  //         [0.3333333333333333, "#9c179e"],
  //         [0.4444444444444444, "#bd3786"],
  //         [0.5555555555555556, "#d8576b"],
  //         [0.6666666666666666, "#ed7953"],
  //         [0.7777777777777778, "#fb9f3a"],
  //         [0.8888888888888888, "#fdca26"],
  //         [1.0, "#f0f921"],
  //       ],
  //       type: "histogram2d",
  //     },
  //   ],
  //   histogram: [
  //     {
  //       marker: {
  //         pattern: {
  //           fillmode: "overlay",
  //           size: 10,
  //           solidity: 0.2,
  //         },
  //       },
  //       type: "histogram",
  //     },
  //   ],
  //   mesh3d: [
  //     {
  //       colorbar: {
  //         outlinewidth: 0,
  //         ticks: "",
  //       },
  //       type: "mesh3d",
  //     },
  //   ],
  //   parcoords: [
  //     {
  //       line: {
  //         colorbar: {
  //           outlinewidth: 0,
  //           ticks: "",
  //         },
  //       },
  //       type: "parcoords",
  //     },
  //   ],
  //   pie: [
  //     {
  //       automargin: true,
  //       type: "pie",
  //     },
  //   ],
  //   scatter3d: [
  //     {
  //       line: {
  //         colorbar: {
  //           outlinewidth: 0,
  //           ticks: "",
  //         },
  //       },
  //       marker: {
  //         colorbar: {
  //           outlinewidth: 0,
  //           ticks: "",
  //         },
  //       },
  //       type: "scatter3d",
  //     },
  //   ],
  //   scattercarpet: [
  //     {
  //       marker: {
  //         colorbar: {
  //           outlinewidth: 0,
  //           ticks: "",
  //         },
  //       },
  //       type: "scattercarpet",
  //     },
  //   ],
  //   scattergeo: [
  //     {
  //       marker: {
  //         colorbar: {
  //           outlinewidth: 0,
  //           ticks: "",
  //         },
  //       },
  //       type: "scattergeo",
  //     },
  //   ],
  //   scattergl: [
  //     {
  //       marker: {
  //         line: {
  //           color: "#283442",
  //         },
  //       },
  //       type: "scattergl",
  //     },
  //   ],
  //   scattermapbox: [
  //     {
  //       marker: {
  //         colorbar: {
  //           outlinewidth: 0,
  //           ticks: "",
  //         },
  //       },
  //       type: "scattermapbox",
  //     },
  //   ],
  //   scatterpolargl: [
  //     {
  //       marker: {
  //         colorbar: {
  //           outlinewidth: 0,
  //           ticks: "",
  //         },
  //       },
  //       type: "scatterpolargl",
  //     },
  //   ],
  //   scatterpolar: [
  //     {
  //       marker: {
  //         colorbar: {
  //           outlinewidth: 0,
  //           ticks: "",
  //         },
  //       },
  //       type: "scatterpolar",
  //     },
  //   ],
  //   scatter: [
  //     {
  //       marker: {
  //         line: {
  //           color: "#283442",
  //         },
  //       },
  //       type: "scatter",
  //     },
  //   ],
  //   scatterternary: [
  //     {
  //       marker: {
  //         colorbar: {
  //           outlinewidth: 0,
  //           ticks: "",
  //         },
  //       },
  //       type: "scatterternary",
  //     },
  //   ],
  //   surface: [
  //     {
  //       colorbar: {
  //         outlinewidth: 0,
  //         ticks: "",
  //       },
  //       colorscale: [
  //         [0.0, "#0d0887"],
  //         [0.1111111111111111, "#46039f"],
  //         [0.2222222222222222, "#7201a8"],
  //         [0.3333333333333333, "#9c179e"],
  //         [0.4444444444444444, "#bd3786"],
  //         [0.5555555555555556, "#d8576b"],
  //         [0.6666666666666666, "#ed7953"],
  //         [0.7777777777777778, "#fb9f3a"],
  //         [0.8888888888888888, "#fdca26"],
  //         [1.0, "#f0f921"],
  //       ],
  //       type: "surface",
  //     },
  //   ],
  //   table: [
  //     {
  //       cells: {
  //         fill: {
  //           color: "#506784",
  //         },
  //         line: {
  //           color: "rgb(17,17,17)",
  //         },
  //       },
  //       header: {
  //         fill: {
  //           color: "#2a3f5f",
  //         },
  //         line: {
  //           color: "rgb(17,17,17)",
  //         },
  //       },
  //       type: "table",
  //     },
  //   ],
  // },
  layout: {
    annotationdefaults: {
      arrowcolor: "#f2f5fa",
      arrowhead: 0,
      arrowwidth: 1
    },
    autotypenumbers: "strict",
    coloraxis: {
      colorbar: {
        outlinewidth: 0,
        ticks: ""
      }
    },
    colorscale: {
      diverging: [
        [0, "#8e0152"],
        [0.1, "#c51b7d"],
        [0.2, "#de77ae"],
        [0.3, "#f1b6da"],
        [0.4, "#fde0ef"],
        [0.5, "#f7f7f7"],
        [0.6, "#e6f5d0"],
        [0.7, "#b8e186"],
        [0.8, "#7fbc41"],
        [0.9, "#4d9221"],
        [1, "#276419"]
      ],
      sequential: [
        [0, "#0d0887"],
        [0.1111111111111111, "#46039f"],
        [0.2222222222222222, "#7201a8"],
        [0.3333333333333333, "#9c179e"],
        [0.4444444444444444, "#bd3786"],
        [0.5555555555555556, "#d8576b"],
        [0.6666666666666666, "#ed7953"],
        [0.7777777777777778, "#fb9f3a"],
        [0.8888888888888888, "#fdca26"],
        [1, "#f0f921"]
      ],
      sequentialminus: [
        [0, "#0d0887"],
        [0.1111111111111111, "#46039f"],
        [0.2222222222222222, "#7201a8"],
        [0.3333333333333333, "#9c179e"],
        [0.4444444444444444, "#bd3786"],
        [0.5555555555555556, "#d8576b"],
        [0.6666666666666666, "#ed7953"],
        [0.7777777777777778, "#fb9f3a"],
        [0.8888888888888888, "#fdca26"],
        [1, "#f0f921"]
      ]
    },
    colorway: [
      "#636efa",
      "#EF553B",
      "#00cc96",
      "#ab63fa",
      "#FFA15A",
      "#19d3f3",
      "#FF6692",
      "#B6E880",
      "#FF97FF",
      "#FECB52"
    ],
    font: {
      color: "#f2f5fa"
    },
    geo: {
      bgcolor: "rgb(17,17,17)",
      lakecolor: "rgb(17,17,17)",
      landcolor: "rgb(17,17,17)",
      showlakes: !0,
      showland: !0,
      subunitcolor: "#506784"
    },
    hoverlabel: {
      align: "left"
    },
    hovermode: "closest",
    mapbox: {
      style: "dark"
    },
    paper_bgcolor: "rgb(17,17,17)",
    plot_bgcolor: "rgb(17,17,17)",
    polar: {
      angularaxis: {
        gridcolor: "#506784",
        linecolor: "#506784",
        ticks: ""
      },
      bgcolor: "rgb(17,17,17)",
      radialaxis: {
        gridcolor: "#506784",
        linecolor: "#506784",
        ticks: ""
      }
    },
    scene: {
      xaxis: {
        backgroundcolor: "rgb(17,17,17)",
        gridcolor: "#506784",
        gridwidth: 2,
        linecolor: "#506784",
        showbackground: !0,
        ticks: "",
        zerolinecolor: "#C8D4E3"
      },
      yaxis: {
        backgroundcolor: "rgb(17,17,17)",
        gridcolor: "#506784",
        gridwidth: 2,
        linecolor: "#506784",
        showbackground: !0,
        ticks: "",
        zerolinecolor: "#C8D4E3"
      },
      zaxis: {
        backgroundcolor: "rgb(17,17,17)",
        gridcolor: "#506784",
        gridwidth: 2,
        linecolor: "#506784",
        showbackground: !0,
        ticks: "",
        zerolinecolor: "#C8D4E3"
      }
    },
    shapedefaults: {
      line: {
        color: "#f2f5fa"
      }
    },
    sliderdefaults: {
      bgcolor: "#C8D4E3",
      bordercolor: "rgb(17,17,17)",
      borderwidth: 1,
      tickwidth: 0
    },
    ternary: {
      aaxis: {
        gridcolor: "#506784",
        linecolor: "#506784",
        ticks: ""
      },
      baxis: {
        gridcolor: "#506784",
        linecolor: "#506784",
        ticks: ""
      },
      bgcolor: "rgb(17,17,17)",
      caxis: {
        gridcolor: "#506784",
        linecolor: "#506784",
        ticks: ""
      }
    },
    // title: {
    //   x: 0.05,
    // },
    updatemenudefaults: {
      bgcolor: "#506784",
      borderwidth: 0
    },
    xaxis: {
      automargin: !0,
      gridcolor: "#283442",
      linecolor: "#506784",
      ticks: "",
      title: {
        standoff: 15
      },
      zerolinecolor: "#283442",
      zerolinewidth: 2
    },
    yaxis: {
      automargin: !0,
      gridcolor: "#283442",
      linecolor: "#506784",
      ticks: "",
      title: {
        standoff: 15
      },
      zerolinecolor: "#283442",
      zerolinewidth: 2
    }
  }
}, W_ = G_(V_), hT = (s) => Pf({
  queryKey: ["results", s.project, s.field],
  queryFn: async () => s.httpPathHandler(`projects/${s.project}/?summarise=${s.field}`).then((o) => o.json()).then((o) => {
    const E = o.data.map(
      (P) => P[s.field]
    ), z = o.data.map(
      (P) => P.count
    );
    return { field_data: E, count_data: z };
  }),
  enabled: !!s.project
}), H6 = (s) => Pf({
  queryKey: ["results", s.project, s.field, s.groupBy],
  queryFn: async () => s.httpPathHandler(
    `projects/${s.project}/?summarise=${s.field}&summarise=${s.groupBy}`
  ).then((o) => o.json()).then((o) => {
    const E = /* @__PURE__ */ new Map();
    return o.data.forEach((z) => {
      var K, M;
      const P = z[s.groupBy].toString();
      E.has(P) || E.set(P, {
        field_data: [],
        count_data: []
      }), (K = E.get(P)) == null || K.field_data.push(z[s.field].toString()), (M = E.get(P)) == null || M.count_data.push(Number(z.count));
    }), E;
  }),
  enabled: !!s.project
});
function ap(s) {
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
    W_,
    {
      data: s.data,
      layout: {
        ...s.layout,
        autosize: !0,
        title: s.title || `Records by ${s.field}`,
        margin: {
          l: 50,
          r: 50,
          b: 50,
          t: 50,
          pad: 4
        },
        height: 330,
        template: s.darkMode ? U_ : void 0,
        xaxis: { title: s.xTitle },
        yaxis: { title: s.yTitle, fixedrange: !0 },
        legend: { title: { text: s.legendTitle } },
        showlegend: !!s.legendTitle
      },
      useResizeHandler: !0,
      style: { width: "100%", height: "100%" }
    }
  );
}
function Y_(s) {
  const {
    data: o = {
      field_data: [],
      count_data: []
    }
  } = hT(s);
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
    ap,
    {
      ...s,
      data: [
        {
          x: o.field_data,
          y: o.count_data,
          type: "scatter",
          mode: "lines+markers",
          marker: { color: "#00CC96" }
        }
      ],
      xTitle: s.field,
      yTitle: "count"
    }
  );
}
function X_(s) {
  const {
    data: o = /* @__PURE__ */ new Map()
  } = H6(s), E = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(
    () => Array.from(o.entries()).map(([z, { field_data: P, count_data: K }]) => ({
      x: P,
      y: K,
      name: z,
      type: "scatter",
      mode: "lines+markers"
    })),
    [o]
  );
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
    ap,
    {
      ...s,
      data: E,
      title: `Records by ${s.field}, grouped by ${s.groupBy}`,
      xTitle: s.field,
      yTitle: "count",
      legendTitle: s.groupBy
    }
  );
}
function j_(s) {
  const {
    data: o = {
      field_data: [],
      count_data: []
    }
  } = hT(s);
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
    ap,
    {
      ...s,
      data: [
        {
          x: o.field_data,
          y: o.count_data,
          type: "bar",
          marker: { color: "#00CC96" }
        }
      ],
      xTitle: s.field,
      yTitle: "count"
    }
  );
}
function Z_(s) {
  const {
    data: o = /* @__PURE__ */ new Map()
  } = H6(s), E = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(
    () => Array.from(o.entries()).map(([K, { field_data: M, count_data: L }]) => ({
      x: M,
      y: L,
      name: K,
      type: "bar"
    })),
    [o]
  );
  let z = {}, P = "count";
  return s.groupMode === "group" ? z = { barmode: "group" } : s.groupMode === "stack" ? z = { barmode: "stack" } : s.groupMode === "norm" && (z = { barmode: "stack", barnorm: "percent" }, P = "percentage"), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
    ap,
    {
      ...s,
      data: E,
      title: `Records by ${s.field}, grouped by ${s.groupBy}`,
      xTitle: s.field,
      yTitle: P,
      legendTitle: s.groupBy,
      layout: z
    }
  );
}
function $_(s) {
  const {
    data: o = {
      field_data: [],
      count_data: []
    }
  } = hT(s);
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
    ap,
    {
      ...s,
      data: [
        {
          labels: o.field_data,
          values: o.count_data,
          type: "pie",
          marker: { color: "#198754" }
        }
      ],
      legendTitle: s.field
    }
  );
}
function J_(s) {
  let o, E, z;
  const P = {
    line: {
      fields: ["date"],
      groupBy: ["choice", "bool"]
    },
    bar: {
      fields: ["choice", "date", "bool"],
      groupBy: ["choice", "bool"]
    },
    pie: {
      fields: ["choice", "bool"],
      groupBy: []
    }
  }, K = () => /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ap, { ...s, data: [], title: "Empty Graph" }), M = (r) => {
    var a;
    return ((a = s.projectFields.get(r)) == null ? void 0 : a.type) || "";
  }, L = Array.from(s.projectFields.keys());
  return s.type === "line" ? (E = L.filter(
    (r) => P.line.fields.includes(M(r)) && !r.includes("__")
  ), z = L.filter(
    (r) => P.line.groupBy.includes(M(r)) && !r.includes("__")
  ), s.field && s.groupBy ? o = /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
    X_,
    {
      ...s,
      field: s.field,
      groupBy: s.groupBy
    }
  ) : s.field ? o = /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Y_, { ...s, field: s.field }) : o = K()) : s.type === "bar" ? (E = L.filter(
    (r) => P.bar.fields.includes(M(r)) && !r.includes("__")
  ), z = L.filter(
    (r) => P.bar.groupBy.includes(M(r)) && !r.includes("__")
  ), s.field && s.groupBy ? o = /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
    Z_,
    {
      ...s,
      field: s.field,
      groupBy: s.groupBy,
      groupMode: s.groupMode
    }
  ) : s.field ? o = /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(j_, { ...s, field: s.field }) : o = K()) : s.type === "pie" ? (E = L.filter(
    (r) => P.pie.fields.includes(M(r)) && !r.includes("__")
  ), z = [], s.field ? o = /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)($_, { ...s, field: s.field }) : o = K()) : (o = K(), E = [], z = []), /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)($0, { className: "g-2", children: [
    /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(au, { xl: 9, children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Jl, { body: !0, children: o }) }),
    /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(au, { xl: 3, children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Jl, { style: { height: "100%" }, children: [
      /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Jl.Header, { children: [
        /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", { children: "Options" }),
        /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Ql, { direction: "horizontal", gap: 1, className: "float-end", children: [
          /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Kl, { variant: "dark", onClick: s.handleGraphConfigAdd, children: "+" }),
          /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Kl, { variant: "dark", onClick: s.handleGraphConfigRemove, children: "-" })
        ] })
      ] }),
      /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Jl.Body, { children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Ll, { children: [
        /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Ll.Group, { className: "mb-3", children: [
          /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Ll.Label, { children: "Graph Type" }),
          /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
            Hu,
            {
              isClearable: !0,
              options: ["line", "bar", "pie"],
              value: s.type,
              placeholder: "Select graph type...",
              onChange: s.handleGraphConfigTypeChange
            }
          )
        ] }),
        s.type && /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Ll.Group, { className: "mb-3", children: [
          /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Ll.Label, { children: "Field" }),
          /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
            Hu,
            {
              isClearable: !0,
              options: E,
              value: s.field,
              placeholder: "Select field...",
              onChange: s.handleGraphConfigFieldChange
            }
          )
        ] }),
        s.type === "bar" ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)($0, { className: "g-3", children: [
          /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(au, { children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Ll.Group, { className: "mb-3", children: [
            /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Ll.Label, { children: "Group By" }),
            /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
              Hu,
              {
                isClearable: !0,
                options: z,
                value: s.groupBy,
                placeholder: "Select field...",
                onChange: s.handleGraphConfigGroupByChange
              }
            )
          ] }) }),
          /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(au, { children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Ll.Group, { className: "mb-3", children: [
            /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Ll.Label, { children: "Mode" }),
            /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
              Hu,
              {
                options: ["group", "stack", "norm"],
                value: s.groupMode,
                onChange: s.handleGraphConfigGroupModeChange
              }
            )
          ] }) })
        ] }) : s.type === "line" && /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Ll.Group, { className: "mb-3", children: [
          /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Ll.Label, { children: "Group By" }),
          /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
            Hu,
            {
              isClearable: !0,
              options: z,
              value: s.groupBy,
              placeholder: "Select field...",
              onChange: s.handleGraphConfigGroupByChange
            }
          )
        ] })
      ] }) })
    ] }) })
  ] });
}
function Q_(s) {
  const [o, E] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([
    { type: "line", field: "published_date", groupBy: "" },
    { type: "line", field: "published_date", groupBy: "site" }
  ]);
  (0,react__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect)(() => {
    E([
      { type: "line", field: "published_date", groupBy: "", groupMode: "" },
      { type: "line", field: "published_date", groupBy: "site", groupMode: "" }
    ]);
  }, [s.project]);
  const z = (p, l) => {
    const f = [...o];
    f[l].type !== p.target.value && (f[l].field = "", f[l].groupBy = "", p.target.value === "bar" ? f[l].groupMode = "group" : f[l].groupMode = ""), f[l].type = p.target.value, E(f);
  }, P = (p, l) => {
    const f = [...o];
    f[l].field = p.target.value, E(f);
  }, K = (p, l) => {
    const f = [...o];
    f[l].groupBy = p.target.value, E(f);
  }, M = (p, l) => {
    const f = [...o];
    f[l].groupMode = p.target.value, E(f);
  }, L = (p) => {
    E([
      ...o.slice(0, p),
      { type: "", field: "", groupBy: "", groupMode: "" },
      ...o.slice(p)
    ]);
  }, r = (p) => {
    const l = [...o];
    l.splice(p, 1), E(l);
  }, a = () => {
    E([]);
  };
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_f, { fluid: !0, className: "g-2", children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Jl, { children: [
    /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Jl.Header, { children: [
      /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", { children: "Graphs" }),
      /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Ql, { direction: "horizontal", gap: 1, className: "float-end", children: [
        /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
          Kl,
          {
            size: "sm",
            variant: "dark",
            onClick: () => L(o.length),
            children: "Add Graph"
          }
        ),
        /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Kl, { size: "sm", variant: "dark", onClick: a, children: "Clear Graphs" })
      ] })
    ] }),
    /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_f, { fluid: !0, className: "graph-panel p-2", children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Ql, { gap: 2, children: o.map((p, l) => /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
      J_,
      {
        ...s,
        type: p.type,
        field: p.field,
        groupBy: p.groupBy,
        groupMode: p.groupMode,
        handleGraphConfigTypeChange: (f) => z(f, l),
        handleGraphConfigFieldChange: (f) => P(f, l),
        handleGraphConfigGroupByChange: (f) => K(f, l),
        handleGraphConfigGroupModeChange: (f) => M(f, l),
        handleGraphConfigAdd: () => L(l + 1),
        handleGraphConfigRemove: () => r(l)
      },
      l
    )) }) })
  ] }) });
}
const K_ = "0.11.1";
function q_(s) {
  const o = {}, E = (z, P = "") => {
    for (const [K, M] of Object.entries(z))
      o[P + K] = M, M.type === "relation" && E(
        M.fields,
        P + K + "__"
      );
  };
  return E(s), o;
}
function eH(s) {
  const [o, E] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(!1), [z, P] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(""), [K, M] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)("data");
  (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
    const u = document.querySelector("html");
    u == null || u.setAttribute("data-bs-theme", o ? "dark" : "light");
  }, [o]);
  const { data: L = [] } = Pf({
    queryKey: ["projects"],
    queryFn: async () => s.httpPathHandler("projects/").then((u) => u.json()).then((u) => [
      ...new Set(
        u.data.map(
          (c) => c.project
        )
      )
    ])
  });
  (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
    !z && L && P(L[0]);
  }, [z, L]);
  const { data: r = /* @__PURE__ */ new Map() } = Pf({
    queryKey: ["types"],
    queryFn: async () => s.httpPathHandler("projects/types/").then((u) => u.json()).then((u) => new Map(
      u.data.map((c) => [
        c.type,
        c.lookups
      ])
    ))
  }), { data: a = /* @__PURE__ */ new Map() } = Pf({
    queryKey: ["lookups"],
    queryFn: async () => s.httpPathHandler("projects/lookups/").then((u) => u.json()).then((u) => new Map(
      u.data.map((c) => [
        c.lookup,
        c.description
      ])
    ))
  }), {
    data: { projectName: p, projectFields: l, fieldDescriptions: f } = {
      projectName: "",
      projectFields: /* @__PURE__ */ new Map(),
      fieldDescriptions: /* @__PURE__ */ new Map()
    }
  } = Pf({
    queryKey: ["fields", z],
    queryFn: async () => s.httpPathHandler(`projects/${z}/fields/`).then((u) => u.json()).then((u) => {
      const c = q_(u.data.fields), d = u.data.name, h = new Map(
        Object.keys(c).map((b) => [
          b,
          {
            type: c[b].type,
            description: c[b].description,
            actions: c[b].actions,
            values: c[b].values
          }
        ])
      ), i = new Map(
        Array.from(h.entries()).map(([b, x]) => [
          b,
          x.description
        ])
      );
      return { projectName: d, projectFields: h, fieldDescriptions: i };
    }),
    enabled: !!z
  });
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Ql, { gap: 2, className: "Onyx", children: [
    /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
      XN,
      {
        ...s,
        projectName: p,
        projectList: L,
        handleProjectChange: P,
        guiVersion: K_,
        tabKey: K,
        setTabKey: M,
        darkMode: o,
        handleThemeChange: () => E(!o)
      }
    ),
    /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(z0.Container, { activeKey: K, children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(z0.Content, { children: [
      /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(z0.Pane, { eventKey: "data", children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
        H_,
        {
          ...s,
          project: z,
          projectFields: l,
          typeLookups: r,
          fieldDescriptions: f,
          lookupDescriptions: a
        }
      ) }),
      /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(z0.Pane, { eventKey: "stats", children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
        Q_,
        {
          ...s,
          project: z,
          projectFields: l,
          darkMode: o
        }
      ) })
    ] }) }),
    /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {})
  ] });
}
const tH = new HL({
  defaultOptions: {
    queries: {
      refetchOnWindowFocus: !1,
      refetchOnMount: !1
    }
  }
});
function lH(s) {
  return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ZL, { client: tH, children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(eH, { ...s }) });
}



/***/ }),

/***/ "./node_modules/object-assign/index.js":
/*!*********************************************!*\
  !*** ./node_modules/object-assign/index.js ***!
  \*********************************************/
/***/ ((module) => {

/*
object-assign
(c) Sindre Sorhus
@license MIT
*/


/* eslint-disable no-unused-vars */
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
var hasOwnProperty = Object.prototype.hasOwnProperty;
var propIsEnumerable = Object.prototype.propertyIsEnumerable;

function toObject(val) {
	if (val === null || val === undefined) {
		throw new TypeError('Object.assign cannot be called with null or undefined');
	}

	return Object(val);
}

function shouldUseNative() {
	try {
		if (!Object.assign) {
			return false;
		}

		// Detect buggy property enumeration order in older V8 versions.

		// https://bugs.chromium.org/p/v8/issues/detail?id=4118
		var test1 = new String('abc');  // eslint-disable-line no-new-wrappers
		test1[5] = 'de';
		if (Object.getOwnPropertyNames(test1)[0] === '5') {
			return false;
		}

		// https://bugs.chromium.org/p/v8/issues/detail?id=3056
		var test2 = {};
		for (var i = 0; i < 10; i++) {
			test2['_' + String.fromCharCode(i)] = i;
		}
		var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
			return test2[n];
		});
		if (order2.join('') !== '0123456789') {
			return false;
		}

		// https://bugs.chromium.org/p/v8/issues/detail?id=3056
		var test3 = {};
		'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
			test3[letter] = letter;
		});
		if (Object.keys(Object.assign({}, test3)).join('') !==
				'abcdefghijklmnopqrst') {
			return false;
		}

		return true;
	} catch (err) {
		// We don't expect any of the above to throw, but better to be safe.
		return false;
	}
}

module.exports = shouldUseNative() ? Object.assign : function (target, source) {
	var from;
	var to = toObject(target);
	var symbols;

	for (var s = 1; s < arguments.length; s++) {
		from = Object(arguments[s]);

		for (var key in from) {
			if (hasOwnProperty.call(from, key)) {
				to[key] = from[key];
			}
		}

		if (getOwnPropertySymbols) {
			symbols = getOwnPropertySymbols(from);
			for (var i = 0; i < symbols.length; i++) {
				if (propIsEnumerable.call(from, symbols[i])) {
					to[symbols[i]] = from[symbols[i]];
				}
			}
		}
	}

	return to;
};


/***/ }),

/***/ "./node_modules/react/cjs/react-jsx-runtime.development.js":
/*!*****************************************************************!*\
  !*** ./node_modules/react/cjs/react-jsx-runtime.development.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

/** @license React v17.0.2
 * react-jsx-runtime.development.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



if (true) {
  (function() {
'use strict';

var React = __webpack_require__(/*! react */ "webpack/sharing/consume/default/react");
var _assign = __webpack_require__(/*! object-assign */ "./node_modules/object-assign/index.js");

// ATTENTION
// When adding new symbols to this file,
// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'
// The Symbol used to tag the ReactElement-like types. If there is no native Symbol
// nor polyfill, then a plain number is used for performance.
var REACT_ELEMENT_TYPE = 0xeac7;
var REACT_PORTAL_TYPE = 0xeaca;
exports.Fragment = 0xeacb;
var REACT_STRICT_MODE_TYPE = 0xeacc;
var REACT_PROFILER_TYPE = 0xead2;
var REACT_PROVIDER_TYPE = 0xeacd;
var REACT_CONTEXT_TYPE = 0xeace;
var REACT_FORWARD_REF_TYPE = 0xead0;
var REACT_SUSPENSE_TYPE = 0xead1;
var REACT_SUSPENSE_LIST_TYPE = 0xead8;
var REACT_MEMO_TYPE = 0xead3;
var REACT_LAZY_TYPE = 0xead4;
var REACT_BLOCK_TYPE = 0xead9;
var REACT_SERVER_BLOCK_TYPE = 0xeada;
var REACT_FUNDAMENTAL_TYPE = 0xead5;
var REACT_SCOPE_TYPE = 0xead7;
var REACT_OPAQUE_ID_TYPE = 0xeae0;
var REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;
var REACT_OFFSCREEN_TYPE = 0xeae2;
var REACT_LEGACY_HIDDEN_TYPE = 0xeae3;

if (typeof Symbol === 'function' && Symbol.for) {
  var symbolFor = Symbol.for;
  REACT_ELEMENT_TYPE = symbolFor('react.element');
  REACT_PORTAL_TYPE = symbolFor('react.portal');
  exports.Fragment = symbolFor('react.fragment');
  REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');
  REACT_PROFILER_TYPE = symbolFor('react.profiler');
  REACT_PROVIDER_TYPE = symbolFor('react.provider');
  REACT_CONTEXT_TYPE = symbolFor('react.context');
  REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');
  REACT_SUSPENSE_TYPE = symbolFor('react.suspense');
  REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');
  REACT_MEMO_TYPE = symbolFor('react.memo');
  REACT_LAZY_TYPE = symbolFor('react.lazy');
  REACT_BLOCK_TYPE = symbolFor('react.block');
  REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');
  REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');
  REACT_SCOPE_TYPE = symbolFor('react.scope');
  REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');
  REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');
  REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');
  REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');
}

var MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
var FAUX_ITERATOR_SYMBOL = '@@iterator';
function getIteratorFn(maybeIterable) {
  if (maybeIterable === null || typeof maybeIterable !== 'object') {
    return null;
  }

  var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];

  if (typeof maybeIterator === 'function') {
    return maybeIterator;
  }

  return null;
}

var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;

function error(format) {
  {
    for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
      args[_key2 - 1] = arguments[_key2];
    }

    printWarning('error', format, args);
  }
}

function printWarning(level, format, args) {
  // When changing this logic, you might want to also
  // update consoleWithStackDev.www.js as well.
  {
    var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
    var stack = ReactDebugCurrentFrame.getStackAddendum();

    if (stack !== '') {
      format += '%s';
      args = args.concat([stack]);
    }

    var argsWithFormat = args.map(function (item) {
      return '' + item;
    }); // Careful: RN currently depends on this prefix

    argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it
    // breaks IE9: https://github.com/facebook/react/issues/13610
    // eslint-disable-next-line react-internal/no-production-logging

    Function.prototype.apply.call(console[level], console, argsWithFormat);
  }
}

// Filter certain DOM attributes (e.g. src, href) if their values are empty strings.

var enableScopeAPI = false; // Experimental Create Event Handle API.

function isValidElementType(type) {
  if (typeof type === 'string' || typeof type === 'function') {
    return true;
  } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).


  if (type === exports.Fragment || type === REACT_PROFILER_TYPE || type === REACT_DEBUG_TRACING_MODE_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) {
    return true;
  }

  if (typeof type === 'object' && type !== null) {
    if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) {
      return true;
    }
  }

  return false;
}

function getWrappedName(outerType, innerType, wrapperName) {
  var functionName = innerType.displayName || innerType.name || '';
  return outerType.displayName || (functionName !== '' ? wrapperName + "(" + functionName + ")" : wrapperName);
}

function getContextName(type) {
  return type.displayName || 'Context';
}

function getComponentName(type) {
  if (type == null) {
    // Host root, text node or just invalid type.
    return null;
  }

  {
    if (typeof type.tag === 'number') {
      error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');
    }
  }

  if (typeof type === 'function') {
    return type.displayName || type.name || null;
  }

  if (typeof type === 'string') {
    return type;
  }

  switch (type) {
    case exports.Fragment:
      return 'Fragment';

    case REACT_PORTAL_TYPE:
      return 'Portal';

    case REACT_PROFILER_TYPE:
      return 'Profiler';

    case REACT_STRICT_MODE_TYPE:
      return 'StrictMode';

    case REACT_SUSPENSE_TYPE:
      return 'Suspense';

    case REACT_SUSPENSE_LIST_TYPE:
      return 'SuspenseList';
  }

  if (typeof type === 'object') {
    switch (type.$$typeof) {
      case REACT_CONTEXT_TYPE:
        var context = type;
        return getContextName(context) + '.Consumer';

      case REACT_PROVIDER_TYPE:
        var provider = type;
        return getContextName(provider._context) + '.Provider';

      case REACT_FORWARD_REF_TYPE:
        return getWrappedName(type, type.render, 'ForwardRef');

      case REACT_MEMO_TYPE:
        return getComponentName(type.type);

      case REACT_BLOCK_TYPE:
        return getComponentName(type._render);

      case REACT_LAZY_TYPE:
        {
          var lazyComponent = type;
          var payload = lazyComponent._payload;
          var init = lazyComponent._init;

          try {
            return getComponentName(init(payload));
          } catch (x) {
            return null;
          }
        }
    }
  }

  return null;
}

// Helpers to patch console.logs to avoid logging during side-effect free
// replaying on render function. This currently only patches the object
// lazily which won't cover if the log function was extracted eagerly.
// We could also eagerly patch the method.
var disabledDepth = 0;
var prevLog;
var prevInfo;
var prevWarn;
var prevError;
var prevGroup;
var prevGroupCollapsed;
var prevGroupEnd;

function disabledLog() {}

disabledLog.__reactDisabledLog = true;
function disableLogs() {
  {
    if (disabledDepth === 0) {
      /* eslint-disable react-internal/no-production-logging */
      prevLog = console.log;
      prevInfo = console.info;
      prevWarn = console.warn;
      prevError = console.error;
      prevGroup = console.group;
      prevGroupCollapsed = console.groupCollapsed;
      prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099

      var props = {
        configurable: true,
        enumerable: true,
        value: disabledLog,
        writable: true
      }; // $FlowFixMe Flow thinks console is immutable.

      Object.defineProperties(console, {
        info: props,
        log: props,
        warn: props,
        error: props,
        group: props,
        groupCollapsed: props,
        groupEnd: props
      });
      /* eslint-enable react-internal/no-production-logging */
    }

    disabledDepth++;
  }
}
function reenableLogs() {
  {
    disabledDepth--;

    if (disabledDepth === 0) {
      /* eslint-disable react-internal/no-production-logging */
      var props = {
        configurable: true,
        enumerable: true,
        writable: true
      }; // $FlowFixMe Flow thinks console is immutable.

      Object.defineProperties(console, {
        log: _assign({}, props, {
          value: prevLog
        }),
        info: _assign({}, props, {
          value: prevInfo
        }),
        warn: _assign({}, props, {
          value: prevWarn
        }),
        error: _assign({}, props, {
          value: prevError
        }),
        group: _assign({}, props, {
          value: prevGroup
        }),
        groupCollapsed: _assign({}, props, {
          value: prevGroupCollapsed
        }),
        groupEnd: _assign({}, props, {
          value: prevGroupEnd
        })
      });
      /* eslint-enable react-internal/no-production-logging */
    }

    if (disabledDepth < 0) {
      error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');
    }
  }
}

var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;
var prefix;
function describeBuiltInComponentFrame(name, source, ownerFn) {
  {
    if (prefix === undefined) {
      // Extract the VM specific prefix used by each line.
      try {
        throw Error();
      } catch (x) {
        var match = x.stack.trim().match(/\n( *(at )?)/);
        prefix = match && match[1] || '';
      }
    } // We use the prefix to ensure our stacks line up with native stack frames.


    return '\n' + prefix + name;
  }
}
var reentry = false;
var componentFrameCache;

{
  var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;
  componentFrameCache = new PossiblyWeakMap();
}

function describeNativeComponentFrame(fn, construct) {
  // If something asked for a stack inside a fake render, it should get ignored.
  if (!fn || reentry) {
    return '';
  }

  {
    var frame = componentFrameCache.get(fn);

    if (frame !== undefined) {
      return frame;
    }
  }

  var control;
  reentry = true;
  var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.

  Error.prepareStackTrace = undefined;
  var previousDispatcher;

  {
    previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function
    // for warnings.

    ReactCurrentDispatcher.current = null;
    disableLogs();
  }

  try {
    // This should throw.
    if (construct) {
      // Something should be setting the props in the constructor.
      var Fake = function () {
        throw Error();
      }; // $FlowFixMe


      Object.defineProperty(Fake.prototype, 'props', {
        set: function () {
          // We use a throwing setter instead of frozen or non-writable props
          // because that won't throw in a non-strict mode function.
          throw Error();
        }
      });

      if (typeof Reflect === 'object' && Reflect.construct) {
        // We construct a different control for this case to include any extra
        // frames added by the construct call.
        try {
          Reflect.construct(Fake, []);
        } catch (x) {
          control = x;
        }

        Reflect.construct(fn, [], Fake);
      } else {
        try {
          Fake.call();
        } catch (x) {
          control = x;
        }

        fn.call(Fake.prototype);
      }
    } else {
      try {
        throw Error();
      } catch (x) {
        control = x;
      }

      fn();
    }
  } catch (sample) {
    // This is inlined manually because closure doesn't do it for us.
    if (sample && control && typeof sample.stack === 'string') {
      // This extracts the first frame from the sample that isn't also in the control.
      // Skipping one frame that we assume is the frame that calls the two.
      var sampleLines = sample.stack.split('\n');
      var controlLines = control.stack.split('\n');
      var s = sampleLines.length - 1;
      var c = controlLines.length - 1;

      while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {
        // We expect at least one stack frame to be shared.
        // Typically this will be the root most one. However, stack frames may be
        // cut off due to maximum stack limits. In this case, one maybe cut off
        // earlier than the other. We assume that the sample is longer or the same
        // and there for cut off earlier. So we should find the root most frame in
        // the sample somewhere in the control.
        c--;
      }

      for (; s >= 1 && c >= 0; s--, c--) {
        // Next we find the first one that isn't the same which should be the
        // frame that called our sample function and the control.
        if (sampleLines[s] !== controlLines[c]) {
          // In V8, the first line is describing the message but other VMs don't.
          // If we're about to return the first line, and the control is also on the same
          // line, that's a pretty good indicator that our sample threw at same line as
          // the control. I.e. before we entered the sample frame. So we ignore this result.
          // This can happen if you passed a class to function component, or non-function.
          if (s !== 1 || c !== 1) {
            do {
              s--;
              c--; // We may still have similar intermediate frames from the construct call.
              // The next one that isn't the same should be our match though.

              if (c < 0 || sampleLines[s] !== controlLines[c]) {
                // V8 adds a "new" prefix for native classes. Let's remove it to make it prettier.
                var _frame = '\n' + sampleLines[s].replace(' at new ', ' at ');

                {
                  if (typeof fn === 'function') {
                    componentFrameCache.set(fn, _frame);
                  }
                } // Return the line we found.


                return _frame;
              }
            } while (s >= 1 && c >= 0);
          }

          break;
        }
      }
    }
  } finally {
    reentry = false;

    {
      ReactCurrentDispatcher.current = previousDispatcher;
      reenableLogs();
    }

    Error.prepareStackTrace = previousPrepareStackTrace;
  } // Fallback to just using the name if we couldn't make it throw.


  var name = fn ? fn.displayName || fn.name : '';
  var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';

  {
    if (typeof fn === 'function') {
      componentFrameCache.set(fn, syntheticFrame);
    }
  }

  return syntheticFrame;
}
function describeFunctionComponentFrame(fn, source, ownerFn) {
  {
    return describeNativeComponentFrame(fn, false);
  }
}

function shouldConstruct(Component) {
  var prototype = Component.prototype;
  return !!(prototype && prototype.isReactComponent);
}

function describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {

  if (type == null) {
    return '';
  }

  if (typeof type === 'function') {
    {
      return describeNativeComponentFrame(type, shouldConstruct(type));
    }
  }

  if (typeof type === 'string') {
    return describeBuiltInComponentFrame(type);
  }

  switch (type) {
    case REACT_SUSPENSE_TYPE:
      return describeBuiltInComponentFrame('Suspense');

    case REACT_SUSPENSE_LIST_TYPE:
      return describeBuiltInComponentFrame('SuspenseList');
  }

  if (typeof type === 'object') {
    switch (type.$$typeof) {
      case REACT_FORWARD_REF_TYPE:
        return describeFunctionComponentFrame(type.render);

      case REACT_MEMO_TYPE:
        // Memo may contain any component type so we recursively resolve it.
        return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);

      case REACT_BLOCK_TYPE:
        return describeFunctionComponentFrame(type._render);

      case REACT_LAZY_TYPE:
        {
          var lazyComponent = type;
          var payload = lazyComponent._payload;
          var init = lazyComponent._init;

          try {
            // Lazy may contain any component type so we recursively resolve it.
            return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);
          } catch (x) {}
        }
    }
  }

  return '';
}

var loggedTypeFailures = {};
var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;

function setCurrentlyValidatingElement(element) {
  {
    if (element) {
      var owner = element._owner;
      var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);
      ReactDebugCurrentFrame.setExtraStackFrame(stack);
    } else {
      ReactDebugCurrentFrame.setExtraStackFrame(null);
    }
  }
}

function checkPropTypes(typeSpecs, values, location, componentName, element) {
  {
    // $FlowFixMe This is okay but Flow doesn't know it.
    var has = Function.call.bind(Object.prototype.hasOwnProperty);

    for (var typeSpecName in typeSpecs) {
      if (has(typeSpecs, typeSpecName)) {
        var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to
        // fail the render phase where it didn't fail before. So we log it.
        // After these have been cleaned up, we'll let them throw.

        try {
          // This is intentionally an invariant that gets caught. It's the same
          // behavior as without this statement except with a better message.
          if (typeof typeSpecs[typeSpecName] !== 'function') {
            var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');
            err.name = 'Invariant Violation';
            throw err;
          }

          error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');
        } catch (ex) {
          error$1 = ex;
        }

        if (error$1 && !(error$1 instanceof Error)) {
          setCurrentlyValidatingElement(element);

          error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);

          setCurrentlyValidatingElement(null);
        }

        if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {
          // Only monitor this failure once because there tends to be a lot of the
          // same error.
          loggedTypeFailures[error$1.message] = true;
          setCurrentlyValidatingElement(element);

          error('Failed %s type: %s', location, error$1.message);

          setCurrentlyValidatingElement(null);
        }
      }
    }
  }
}

var ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;
var hasOwnProperty = Object.prototype.hasOwnProperty;
var RESERVED_PROPS = {
  key: true,
  ref: true,
  __self: true,
  __source: true
};
var specialPropKeyWarningShown;
var specialPropRefWarningShown;
var didWarnAboutStringRefs;

{
  didWarnAboutStringRefs = {};
}

function hasValidRef(config) {
  {
    if (hasOwnProperty.call(config, 'ref')) {
      var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;

      if (getter && getter.isReactWarning) {
        return false;
      }
    }
  }

  return config.ref !== undefined;
}

function hasValidKey(config) {
  {
    if (hasOwnProperty.call(config, 'key')) {
      var getter = Object.getOwnPropertyDescriptor(config, 'key').get;

      if (getter && getter.isReactWarning) {
        return false;
      }
    }
  }

  return config.key !== undefined;
}

function warnIfStringRefCannotBeAutoConverted(config, self) {
  {
    if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {
      var componentName = getComponentName(ReactCurrentOwner.current.type);

      if (!didWarnAboutStringRefs[componentName]) {
        error('Component "%s" contains the string ref "%s". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentName(ReactCurrentOwner.current.type), config.ref);

        didWarnAboutStringRefs[componentName] = true;
      }
    }
  }
}

function defineKeyPropWarningGetter(props, displayName) {
  {
    var warnAboutAccessingKey = function () {
      if (!specialPropKeyWarningShown) {
        specialPropKeyWarningShown = true;

        error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);
      }
    };

    warnAboutAccessingKey.isReactWarning = true;
    Object.defineProperty(props, 'key', {
      get: warnAboutAccessingKey,
      configurable: true
    });
  }
}

function defineRefPropWarningGetter(props, displayName) {
  {
    var warnAboutAccessingRef = function () {
      if (!specialPropRefWarningShown) {
        specialPropRefWarningShown = true;

        error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);
      }
    };

    warnAboutAccessingRef.isReactWarning = true;
    Object.defineProperty(props, 'ref', {
      get: warnAboutAccessingRef,
      configurable: true
    });
  }
}
/**
 * Factory method to create a new React element. This no longer adheres to
 * the class pattern, so do not use new to call it. Also, instanceof check
 * will not work. Instead test $$typeof field against Symbol.for('react.element') to check
 * if something is a React Element.
 *
 * @param {*} type
 * @param {*} props
 * @param {*} key
 * @param {string|object} ref
 * @param {*} owner
 * @param {*} self A *temporary* helper to detect places where `this` is
 * different from the `owner` when React.createElement is called, so that we
 * can warn. We want to get rid of owner and replace string `ref`s with arrow
 * functions, and as long as `this` and owner are the same, there will be no
 * change in behavior.
 * @param {*} source An annotation object (added by a transpiler or otherwise)
 * indicating filename, line number, and/or other information.
 * @internal
 */


var ReactElement = function (type, key, ref, self, source, owner, props) {
  var element = {
    // This tag allows us to uniquely identify this as a React Element
    $$typeof: REACT_ELEMENT_TYPE,
    // Built-in properties that belong on the element
    type: type,
    key: key,
    ref: ref,
    props: props,
    // Record the component responsible for creating this element.
    _owner: owner
  };

  {
    // The validation flag is currently mutative. We put it on
    // an external backing store so that we can freeze the whole object.
    // This can be replaced with a WeakMap once they are implemented in
    // commonly used development environments.
    element._store = {}; // To make comparing ReactElements easier for testing purposes, we make
    // the validation flag non-enumerable (where possible, which should
    // include every environment we run tests in), so the test framework
    // ignores it.

    Object.defineProperty(element._store, 'validated', {
      configurable: false,
      enumerable: false,
      writable: true,
      value: false
    }); // self and source are DEV only properties.

    Object.defineProperty(element, '_self', {
      configurable: false,
      enumerable: false,
      writable: false,
      value: self
    }); // Two elements created in two different places should be considered
    // equal for testing purposes and therefore we hide it from enumeration.

    Object.defineProperty(element, '_source', {
      configurable: false,
      enumerable: false,
      writable: false,
      value: source
    });

    if (Object.freeze) {
      Object.freeze(element.props);
      Object.freeze(element);
    }
  }

  return element;
};
/**
 * https://github.com/reactjs/rfcs/pull/107
 * @param {*} type
 * @param {object} props
 * @param {string} key
 */

function jsxDEV(type, config, maybeKey, source, self) {
  {
    var propName; // Reserved names are extracted

    var props = {};
    var key = null;
    var ref = null; // Currently, key can be spread in as a prop. This causes a potential
    // issue if key is also explicitly declared (ie. <div {...props} key="Hi" />
    // or <div key="Hi" {...props} /> ). We want to deprecate key spread,
    // but as an intermediary step, we will use jsxDEV for everything except
    // <div {...props} key="Hi" />, because we aren't currently able to tell if
    // key is explicitly declared to be undefined or not.

    if (maybeKey !== undefined) {
      key = '' + maybeKey;
    }

    if (hasValidKey(config)) {
      key = '' + config.key;
    }

    if (hasValidRef(config)) {
      ref = config.ref;
      warnIfStringRefCannotBeAutoConverted(config, self);
    } // Remaining properties are added to a new props object


    for (propName in config) {
      if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {
        props[propName] = config[propName];
      }
    } // Resolve default props


    if (type && type.defaultProps) {
      var defaultProps = type.defaultProps;

      for (propName in defaultProps) {
        if (props[propName] === undefined) {
          props[propName] = defaultProps[propName];
        }
      }
    }

    if (key || ref) {
      var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;

      if (key) {
        defineKeyPropWarningGetter(props, displayName);
      }

      if (ref) {
        defineRefPropWarningGetter(props, displayName);
      }
    }

    return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);
  }
}

var ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;
var ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;

function setCurrentlyValidatingElement$1(element) {
  {
    if (element) {
      var owner = element._owner;
      var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);
      ReactDebugCurrentFrame$1.setExtraStackFrame(stack);
    } else {
      ReactDebugCurrentFrame$1.setExtraStackFrame(null);
    }
  }
}

var propTypesMisspellWarningShown;

{
  propTypesMisspellWarningShown = false;
}
/**
 * Verifies the object is a ReactElement.
 * See https://reactjs.org/docs/react-api.html#isvalidelement
 * @param {?object} object
 * @return {boolean} True if `object` is a ReactElement.
 * @final
 */

function isValidElement(object) {
  {
    return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
  }
}

function getDeclarationErrorAddendum() {
  {
    if (ReactCurrentOwner$1.current) {
      var name = getComponentName(ReactCurrentOwner$1.current.type);

      if (name) {
        return '\n\nCheck the render method of `' + name + '`.';
      }
    }

    return '';
  }
}

function getSourceInfoErrorAddendum(source) {
  {
    if (source !== undefined) {
      var fileName = source.fileName.replace(/^.*[\\\/]/, '');
      var lineNumber = source.lineNumber;
      return '\n\nCheck your code at ' + fileName + ':' + lineNumber + '.';
    }

    return '';
  }
}
/**
 * Warn if there's no key explicitly set on dynamic arrays of children or
 * object keys are not valid. This allows us to keep track of children between
 * updates.
 */


var ownerHasKeyUseWarning = {};

function getCurrentComponentErrorInfo(parentType) {
  {
    var info = getDeclarationErrorAddendum();

    if (!info) {
      var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;

      if (parentName) {
        info = "\n\nCheck the top-level render call using <" + parentName + ">.";
      }
    }

    return info;
  }
}
/**
 * Warn if the element doesn't have an explicit key assigned to it.
 * This element is in an array. The array could grow and shrink or be
 * reordered. All children that haven't already been validated are required to
 * have a "key" property assigned to it. Error statuses are cached so a warning
 * will only be shown once.
 *
 * @internal
 * @param {ReactElement} element Element that requires a key.
 * @param {*} parentType element's parent's type.
 */


function validateExplicitKey(element, parentType) {
  {
    if (!element._store || element._store.validated || element.key != null) {
      return;
    }

    element._store.validated = true;
    var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);

    if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {
      return;
    }

    ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a
    // property, it may be the creator of the child that's responsible for
    // assigning it a key.

    var childOwner = '';

    if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {
      // Give the component that originally created this child.
      childOwner = " It was passed a child from " + getComponentName(element._owner.type) + ".";
    }

    setCurrentlyValidatingElement$1(element);

    error('Each child in a list should have a unique "key" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);

    setCurrentlyValidatingElement$1(null);
  }
}
/**
 * Ensure that every element either is passed in a static location, in an
 * array with an explicit keys property defined, or in an object literal
 * with valid key property.
 *
 * @internal
 * @param {ReactNode} node Statically passed child of any type.
 * @param {*} parentType node's parent's type.
 */


function validateChildKeys(node, parentType) {
  {
    if (typeof node !== 'object') {
      return;
    }

    if (Array.isArray(node)) {
      for (var i = 0; i < node.length; i++) {
        var child = node[i];

        if (isValidElement(child)) {
          validateExplicitKey(child, parentType);
        }
      }
    } else if (isValidElement(node)) {
      // This element was passed in a valid location.
      if (node._store) {
        node._store.validated = true;
      }
    } else if (node) {
      var iteratorFn = getIteratorFn(node);

      if (typeof iteratorFn === 'function') {
        // Entry iterators used to provide implicit keys,
        // but now we print a separate warning for them later.
        if (iteratorFn !== node.entries) {
          var iterator = iteratorFn.call(node);
          var step;

          while (!(step = iterator.next()).done) {
            if (isValidElement(step.value)) {
              validateExplicitKey(step.value, parentType);
            }
          }
        }
      }
    }
  }
}
/**
 * Given an element, validate that its props follow the propTypes definition,
 * provided by the type.
 *
 * @param {ReactElement} element
 */


function validatePropTypes(element) {
  {
    var type = element.type;

    if (type === null || type === undefined || typeof type === 'string') {
      return;
    }

    var propTypes;

    if (typeof type === 'function') {
      propTypes = type.propTypes;
    } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.
    // Inner props are checked in the reconciler.
    type.$$typeof === REACT_MEMO_TYPE)) {
      propTypes = type.propTypes;
    } else {
      return;
    }

    if (propTypes) {
      // Intentionally inside to avoid triggering lazy initializers:
      var name = getComponentName(type);
      checkPropTypes(propTypes, element.props, 'prop', name, element);
    } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {
      propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:

      var _name = getComponentName(type);

      error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');
    }

    if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {
      error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');
    }
  }
}
/**
 * Given a fragment, validate that it can only be provided with fragment props
 * @param {ReactElement} fragment
 */


function validateFragmentProps(fragment) {
  {
    var keys = Object.keys(fragment.props);

    for (var i = 0; i < keys.length; i++) {
      var key = keys[i];

      if (key !== 'children' && key !== 'key') {
        setCurrentlyValidatingElement$1(fragment);

        error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);

        setCurrentlyValidatingElement$1(null);
        break;
      }
    }

    if (fragment.ref !== null) {
      setCurrentlyValidatingElement$1(fragment);

      error('Invalid attribute `ref` supplied to `React.Fragment`.');

      setCurrentlyValidatingElement$1(null);
    }
  }
}

function jsxWithValidation(type, props, key, isStaticChildren, source, self) {
  {
    var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to
    // succeed and there will likely be errors in render.

    if (!validType) {
      var info = '';

      if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {
        info += ' You likely forgot to export your component from the file ' + "it's defined in, or you might have mixed up default and named imports.";
      }

      var sourceInfo = getSourceInfoErrorAddendum(source);

      if (sourceInfo) {
        info += sourceInfo;
      } else {
        info += getDeclarationErrorAddendum();
      }

      var typeString;

      if (type === null) {
        typeString = 'null';
      } else if (Array.isArray(type)) {
        typeString = 'array';
      } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {
        typeString = "<" + (getComponentName(type.type) || 'Unknown') + " />";
        info = ' Did you accidentally export a JSX literal instead of a component?';
      } else {
        typeString = typeof type;
      }

      error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);
    }

    var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.
    // TODO: Drop this when these are no longer allowed as the type argument.

    if (element == null) {
      return element;
    } // Skip key warning if the type isn't valid since our key validation logic
    // doesn't expect a non-string/function type and can throw confusing errors.
    // We don't want exception behavior to differ between dev and prod.
    // (Rendering will throw with a helpful message and as soon as the type is
    // fixed, the key warnings will appear.)


    if (validType) {
      var children = props.children;

      if (children !== undefined) {
        if (isStaticChildren) {
          if (Array.isArray(children)) {
            for (var i = 0; i < children.length; i++) {
              validateChildKeys(children[i], type);
            }

            if (Object.freeze) {
              Object.freeze(children);
            }
          } else {
            error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');
          }
        } else {
          validateChildKeys(children, type);
        }
      }
    }

    if (type === exports.Fragment) {
      validateFragmentProps(element);
    } else {
      validatePropTypes(element);
    }

    return element;
  }
} // These two functions exist to still get child warnings in dev
// even with the prod transform. This means that jsxDEV is purely
// opt-in behavior for better messages but that we won't stop
// giving you warnings if you use production apis.

function jsxWithValidationStatic(type, props, key) {
  {
    return jsxWithValidation(type, props, key, true);
  }
}
function jsxWithValidationDynamic(type, props, key) {
  {
    return jsxWithValidation(type, props, key, false);
  }
}

var jsx =  jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.
// for now we can ship identical prod functions

var jsxs =  jsxWithValidationStatic ;

exports.jsx = jsx;
exports.jsxs = jsxs;
  })();
}


/***/ }),

/***/ "./node_modules/react/jsx-runtime.js":
/*!*******************************************!*\
  !*** ./node_modules/react/jsx-runtime.js ***!
  \*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {



if (false) {} else {
  module.exports = __webpack_require__(/*! ./cjs/react-jsx-runtime.development.js */ "./node_modules/react/cjs/react-jsx-runtime.development.js");
}


/***/ })

}]);
//# sourceMappingURL=vendors-node_modules_climb-onyx-gui_dist_climb-onyx-gui_js.1556457078af1f2dd6c6.js.map